/* Pied de page Prime Vision Solutions (préfixe ft-) : fond clair, compact, cohérent avec la charte du site */
.ft{--ft-ink:#061230;--ft-mut:#4B5568;--ft-line:#D5DAE5;--ft-ac:#0B5CFF;--ft-ac2:#00B8FF;--ft-soft:#E1EBFF;--ft-ease:cubic-bezier(.2,.7,.2,1);
  position:relative;isolation:isolate;overflow:hidden;margin-top:0;color:var(--ft-mut);font-size:.93rem;line-height:1.5;
  border-top:1px solid var(--ft-line);
  background:radial-gradient(60% 140% at 0% 0%,rgba(11,92,255,.07),transparent 60%),radial-gradient(50% 120% at 100% 100%,rgba(0,184,255,.07),transparent 60%),linear-gradient(180deg,#FFFFFF,#F3F6FC)}
.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:1;background:linear-gradient(90deg,transparent,#0B5CFF,#00B8FF,#0B5CFF,transparent);background-size:200% 100%;animation:ftflow 8s linear infinite}
@keyframes ftflow{to{background-position:-200% 0}}
.ft p{margin:0}
.ft a,.ft button{-webkit-tap-highlight-color:transparent}
.ft a:focus-visible,.ft button:focus-visible{outline:2px solid var(--ft-ac);outline-offset:3px;border-radius:6px}

/* Grille principale */
.ft-grid{display:grid;grid-template-columns:1.45fr .8fr 1.05fr 1.35fr;gap:2rem 2.5rem;padding:2.75rem 0 2.1rem;align-items:start}
.ft-col{display:flex;flex-direction:column;min-width:0}
.ft .ft-h{position:relative;margin:0 0 1.1rem;padding-bottom:.6rem;font:700 .75rem/1.2 "Public Sans",system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:var(--ft-ink)}
.ft .ft-h::after{content:"";position:absolute;left:0;bottom:0;width:1.6rem;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--ft-ac),var(--ft-ac2));transition:width .4s var(--ft-ease)}
.ft-col:hover .ft-h::after{width:2.6rem}

/* Marque */
.ft-logo{display:inline-block;margin:0 0 .85rem;transition:transform .45s var(--ft-ease),filter .3s}
.ft-logo img{display:block;width:150px;height:auto}
.ft-logo:hover,.ft-logo:focus-visible{transform:translateY(-2px);filter:brightness(1.06)}
.ft-brand p{max-width:30ch;margin:0 0 1.1rem}

/* Réseaux sociaux */
.ft-social{display:flex;gap:.55rem;margin:0;padding:0;list-style:none}
.ft .ft-s{--c:var(--ft-ac);position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;overflow:hidden;isolation:isolate;color:var(--ft-ink);text-decoration:none;border:1px solid var(--ft-line);background:#fff;box-shadow:0 1px 2px rgba(6,18,48,.05);transition:transform .35s var(--ft-ease),border-color .3s,box-shadow .35s,color .3s}
.ft .ft-s::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c);transform:translateY(100%);transition:transform .4s var(--ft-ease)}
.ft .ft-s svg{width:18px;height:18px;transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.ft .ft-s:hover,.ft .ft-s:focus-visible{transform:translateY(-3px);border-color:transparent;color:#fff;box-shadow:0 10px 20px -8px var(--sh,var(--ft-ac))}
.ft .ft-s:hover::before,.ft .ft-s:focus-visible::before{transform:translateY(0)}
.ft .ft-s:hover svg,.ft .ft-s:focus-visible svg{transform:scale(1.15) rotate(-8deg)}
.ft .ft-s-facebook{--c:#1877F2;--sh:#1877F2}
.ft .ft-s-linkedin{--c:#0A66C2;--sh:#0A66C2}
.ft .ft-s-instagram{--c:linear-gradient(45deg,#F9A03F,#E1306C 50%,#7B3FE4);--sh:#E1306C}

/* Listes de liens (le sélecteur double écrase « nav a » du thème) */
.ft-list{display:grid;gap:.05rem;margin:0;padding:0;list-style:none}
.ft .ft-list a{position:relative;display:inline-flex;align-items:center;min-height:0;padding:.25rem 0;opacity:1;font-size:.86rem;font-weight:450;letter-spacing:.005em;color:var(--ft-mut);text-decoration:none;transition:color .25s,transform .3s var(--ft-ease)}
.ft .ft-list a::before{content:"";flex:none;width:0;height:2px;margin-right:0;border-radius:2px;background:linear-gradient(90deg,var(--ft-ac),var(--ft-ac2));transition:width .3s var(--ft-ease),margin .3s var(--ft-ease)}
.ft .ft-list a:hover,.ft .ft-list a:focus-visible{color:var(--ft-ac)}
.ft .ft-list a:hover::before,.ft .ft-list a:focus-visible::before{width:.75rem;margin-right:.5rem}

/* Contact */
.ft address{display:grid;gap:.15rem;font-style:normal}
.ft .ft-line{display:flex;align-items:center;gap:.75rem;padding:.25rem 0;color:var(--ft-ink);text-decoration:none;min-width:0}
.ft .ft-ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:.7rem;color:var(--ft-ac);background:var(--ft-soft);border:1px solid rgba(11,92,255,.18);transition:background .3s,color .3s,border-color .3s,transform .35s var(--ft-ease),box-shadow .35s}
.ft .ft-ico svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.ft .ft-txt{min-width:0;overflow-wrap:anywhere;transition:color .25s,transform .3s var(--ft-ease)}
.ft .ft-line:hover .ft-ico,.ft .ft-line:focus-visible .ft-ico{background:var(--ft-ac);border-color:var(--ft-ac);color:#fff;transform:translateY(-2px);box-shadow:0 10px 18px -10px var(--ft-ac)}
.ft .ft-line:hover .ft-ico svg,.ft .ft-line:focus-visible .ft-ico svg{transform:scale(1.12) rotate(-6deg)}
.ft .ft-line:hover .ft-txt,.ft .ft-line:focus-visible .ft-txt{color:var(--ft-ac);transform:translateX(3px)}

/* Bouton devis */
.ft .ft-cta{position:relative;overflow:hidden;align-self:flex-start;display:inline-flex;align-items:center;gap:.55rem;margin-top:.8rem;padding:.5rem 1.15rem;border-radius:980px;font-weight:600;font-size:.92rem;color:#fff;text-decoration:none;background:linear-gradient(110deg,var(--ft-ac),color-mix(in srgb,var(--ft-ac) 60%,var(--ft-ac2)));box-shadow:0 12px 24px -14px var(--ft-ac);transition:transform .3s var(--ft-ease),box-shadow .3s}
.ft .ft-cta::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%)}
.ft .ft-cta span,.ft .ft-cta svg{position:relative}
.ft .ft-cta svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s}
.ft .ft-cta:hover,.ft .ft-cta:focus-visible{transform:translateY(-2px);box-shadow:0 16px 28px -14px var(--ft-ac)}
.ft .ft-cta:hover::before{transform:translateX(120%);transition:transform .8s ease}
.ft .ft-cta:hover svg{transform:translateX(4px)}

/* Barre inférieure */
.ft-bar{position:relative;border-top:1px solid var(--ft-line);background:rgba(255,255,255,.7)}
.ft-bar-in{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.5rem;padding:.7rem 0;font-size:.85rem}
.ft-bar-in p{margin-right:auto}
.ft .ft-legal{display:flex;flex-wrap:wrap;align-items:center;gap:0 1.4rem}
.ft .ft-legal a,.ft .ft-link{display:inline-flex;align-items:center;min-height:0;padding:.4rem 0;opacity:1;background:none;border:0;font:inherit;font-size:.85rem;color:var(--ft-mut);text-decoration:none;cursor:pointer;transition:color .25s}
.ft .ft-legal a:hover,.ft .ft-legal a:focus-visible,.ft .ft-link:hover,.ft .ft-link:focus-visible{color:var(--ft-ac);text-decoration:underline;text-underline-offset:.3em}
.ft .ft-top{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--ft-ink);border:1px solid var(--ft-line);background:#fff;transition:transform .35s var(--ft-ease),background .3s,color .3s,border-color .3s}
.ft .ft-top svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ft .ft-top:hover,.ft .ft-top:focus-visible{transform:translateY(-3px);background:var(--ft-ac);border-color:var(--ft-ac);color:#fff}

/* Responsive */
@media (max-width:980px){
  .ft-grid{grid-template-columns:1fr 1fr 1fr;gap:1.8rem 2rem}
  .ft-brand{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem 1.5rem}
  .ft-logo{margin:0}.ft-brand p{max-width:none;margin:0}
  .ft-contact{grid-column:1/-1}
  .ft-contact address{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));column-gap:1.5rem}
}
@media (max-width:640px){
  .ft-grid{grid-template-columns:1fr 1fr;padding:2.2rem 0 1.6rem}
  .ft-brand{grid-template-columns:1fr;justify-items:start}
  .ft-brand p{margin-bottom:.3rem}
  .ft-contact address{grid-template-columns:1fr}
  .ft-bar-in{flex-direction:column;align-items:flex-start;gap:.2rem}
  .ft-bar-in p{margin-right:0}
  .ft .ft-top{position:absolute;right:1.25rem;bottom:.8rem}
}
@media (max-width:400px){.ft-grid{grid-template-columns:1fr}}
@media (pointer:coarse){.ft .ft-list a{padding:.5rem 0}.ft .ft-legal a,.ft .ft-link{padding:.55rem 0}}

@media (prefers-reduced-motion:reduce){
  .ft::before{animation:none}
  .ft *,.ft *::before,.ft *::after{transition:none!important}
  .ft .ft-s:hover,.ft .ft-s:focus-visible,.ft .ft-line:hover .ft-ico,.ft .ft-line:hover .ft-txt,.ft .ft-cta:hover,.ft .ft-top:hover,.ft-logo:hover{transform:none}
  .ft .ft-cta::before{display:none}
}