/* ============================================================
   GOD-INFO — Système de design v1
   Palette dérivée du logo officiel (#04619A / #329FD7 / argent)
   Typo : Archivo (titres) + Figtree (texte)
   ============================================================ */

:root{
  --c-primary:#04619A;
  --c-primary-dark:#034B78;
  --c-accent:#329FD7;
  --c-accent-soft:#E3F1FA;
  --c-navy:#062B47;
  --c-navy-deep:#041D31;
  --c-ink:#0E1720;
  --c-slate:#46586A;
  --c-silver:#C7CFD6;
  --c-line:#DCE5EC;
  --c-mist:#F2F6FA;
  --c-white:#FFFFFF;
  --c-ok:#1B7F4D;
  --c-err:#B3261E;

  --ff-display:"Archivo",system-ui,sans-serif;
  --ff-body:"Figtree",system-ui,sans-serif;

  --fs-hero:clamp(2.1rem,4.6vw,3.6rem);
  --fs-h2:clamp(1.6rem,3vw,2.35rem);
  --fs-h3:clamp(1.15rem,1.8vw,1.4rem);
  --fs-body:1.0625rem;
  --fs-small:.9rem;
  --fs-eyebrow:.8rem;

  --radius:14px;
  --radius-lg:22px;
  --shadow-sm:0 1px 3px rgba(6,43,71,.08),0 1px 2px rgba(6,43,71,.06);
  --shadow-md:0 6px 20px rgba(6,43,71,.10);
  --shadow-lg:0 18px 44px rgba(6,43,71,.16);
  --container:1180px;
  --header-h:92px;
  --ease:cubic-bezier(.22,.8,.3,1);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
body{
  margin:0;
  font-family:var(--ff-body);
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--c-ink);
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-primary)}
a:hover{color:var(--c-primary-dark)}
h1,h2,h3,h4{font-family:var(--ff-display);line-height:1.15;margin:0 0 .6em;color:var(--c-ink);letter-spacing:-.015em}
h1{font-size:var(--fs-hero);font-weight:800}
h2{font-size:var(--fs-h2);font-weight:800}
h3{font-size:var(--fs-h3);font-weight:700}
p{margin:0 0 1em}
ul{margin:0 0 1em;padding-left:1.2em}
.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.section{padding-block:clamp(3.2rem,7vw,5.5rem)}
.section--mist{background:var(--c-mist)}
.section--navy{background:linear-gradient(160deg,var(--c-navy) 0%,var(--c-navy-deep) 100%);color:#E8F1F8}
.section--navy h2,.section--navy h3{color:var(--c-white)}
.section--navy p{color:#C4D6E4}
.lead{font-size:1.15rem;color:var(--c-slate);max-width:46rem}
.section--navy .lead{color:#C4D6E4}
.center{text-align:center}
.center .lead{margin-inline:auto}

/* Fil conducteur visuel : l'arc du logo */
.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--ff-display);font-size:.92rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--c-primary);
  margin-bottom:1rem;line-height:1.4;padding:.1em 0;overflow:visible;
}
.eyebrow::before{
  content:"";width:30px;height:16px;flex:none;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 16"><path d="M3 13a12 12 0 0 1 24 0" fill="none" stroke="%23329FD7" stroke-width="4.5" stroke-linecap="round"/></svg>') no-repeat center/contain;
}
.section--navy .eyebrow{color:var(--c-accent)}

/* Focus visible partout */
:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:-999px;top:0;background:var(--c-navy);color:#fff;padding:.6rem 1rem;z-index:200;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--ff-display);font-weight:700;font-size:1rem;
  padding:.85rem 1.5rem;border-radius:999px;border:2px solid transparent;
  cursor:pointer;text-decoration:none;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s,color .18s,border-color .18s;
  min-height:48px;
}
.btn svg{flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--c-primary);color:#fff;box-shadow:var(--shadow-sm)}
.btn--primary:hover{background:var(--c-primary-dark);color:#fff;box-shadow:var(--shadow-md)}
.btn--ghost{background:transparent;color:var(--c-primary);border-color:var(--c-primary)}
.btn--ghost:hover{background:var(--c-primary);color:#fff}
.btn--light{background:#fff;color:var(--c-primary)}
.btn--light:hover{color:var(--c-primary-dark);box-shadow:var(--shadow-md)}
.btn--accent{background:var(--c-accent);color:var(--c-navy-deep)}
.btn--accent:hover{background:#4BB0E3;color:var(--c-navy-deep)}
.btn--sm{padding:.55rem 1.1rem;font-size:.92rem;min-height:40px}
.btn--xl{padding:1.3rem 2.6rem;font-size:1.35rem;min-height:64px;box-shadow:var(--shadow-lg)}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}

/* ---------- Header ---------- */
.header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--c-line);
  transition:box-shadow .2s;
}
.header.is-scrolled{box-shadow:var(--shadow-sm)}
.header.is-scrolled .header__inner{height:76px}
.header.is-scrolled .header__logo img{height:50px}
.header__inner{transition:height .2s var(--ease)}
.header__inner{display:flex;align-items:center;gap:1.2rem;height:var(--header-h)}
.header__logo img{height:60px;width:auto;transition:height .2s var(--ease)}
.nav{display:flex;align-items:center;gap:.2rem;margin-left:.5rem}
/* Uniquement les entrées de PREMIER NIVEAU du menu (pas le contenu du mega-menu) */
.nav > a,.nav__item > button{
  font-family:var(--ff-body);font-weight:600;font-size:.95rem;color:var(--c-ink);
  text-decoration:none;padding:.55rem .65rem;border-radius:8px;background:none;border:0;cursor:pointer;
  white-space:nowrap;line-height:1.2;display:inline-flex;align-items:center;
}
.nav > a:hover,.nav__item > button:hover,.nav > a[aria-current="page"]{color:var(--c-primary);background:var(--c-accent-soft)}
.nav__item{position:relative}
.nav__caret{display:inline-block;margin-left:.3rem;transition:transform .2s}
.nav__item.is-open .nav__caret{transform:rotate(180deg)}
.dropdown{
  position:absolute;top:calc(100% + .6rem);left:50%;
  transform:translateX(-50%) translateY(6px);
  width:min(660px,calc(100vw - 40px));
  background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:.8rem;
  display:grid;grid-template-columns:1fr 1fr;gap:.2rem;
  opacity:0;visibility:hidden;
  transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s;
}
.nav__item.is-open .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

/* Un item = [icône 40px] [texte] alignés sur la même ligne de base visuelle */
.dropdown .dropdown__item{
  display:grid;
  grid-template-columns:40px 1fr;
  align-items:center;
  column-gap:.75rem;
  padding:.6rem .7rem;
  border-radius:10px;
  text-decoration:none;
  white-space:normal;      /* annule tout nowrap hérité */
  font-family:var(--ff-body);
  font-weight:400;
  font-size:1rem;
  line-height:1.4;
  color:var(--c-ink);
}
.dropdown .dropdown__item:hover{background:var(--c-mist);color:var(--c-ink)}

.dropdown .dropdown__ico{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--c-accent-soft);
  color:var(--c-primary);
  display:flex;align-items:center;justify-content:center;
  padding:0;margin:0;line-height:0;
}
.dropdown .dropdown__ico > svg{
  width:20px;height:20px;
  display:block;
  flex:0 0 auto;
}
.dropdown .dropdown__txt{display:block;min-width:0}
.dropdown .dropdown__txt strong{
  display:block;font-family:var(--ff-body);font-size:.95rem;font-weight:700;
  color:var(--c-ink);line-height:1.3;
}
.dropdown .dropdown__txt span{
  display:block;font-size:.82rem;font-weight:400;color:var(--c-slate);line-height:1.35;
}
.header__cta{display:flex;align-items:center;gap:.55rem;margin-left:auto;flex:none}
.header__phone{font-family:var(--ff-display);font-weight:700;font-size:.95rem;color:var(--c-ink);text-decoration:none;white-space:nowrap}
.header__phone:hover{color:var(--c-primary)}
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:.5rem}
.burger span{display:block;width:26px;height:3px;background:var(--c-ink);border-radius:2px;margin:5px 0;transition:transform .25s var(--ease),opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Menu mobile */
.mobile-menu{
  display:none;position:fixed;inset:var(--header-h) 0 0 0;background:#fff;z-index:99;
  overflow-y:auto;padding:1.2rem 1.4rem 3rem;
}
.mobile-menu.is-open{display:block}
.mobile-menu a{display:block;padding:.85rem .4rem;font-weight:600;font-size:1.08rem;color:var(--c-ink);text-decoration:none;border-bottom:1px solid var(--c-line)}
.mobile-menu a:hover{color:var(--c-primary)}
.mobile-menu__group{font-family:var(--ff-display);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-slate);margin:1.4rem 0 .3rem}
.mobile-menu .btn{width:100%;margin-top:.9rem}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(60rem 30rem at 110% -10%, rgba(50,159,215,.14), transparent 60%),
    radial-gradient(46rem 26rem at -12% 110%, rgba(4,97,154,.10), transparent 60%),
    var(--c-white);
  padding-block:clamp(3.4rem,7vw,6rem);
}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.hero h1 .accent{color:var(--c-primary)}
.hero .lead{margin-bottom:1.6rem}
.hero__note{display:flex;align-items:center;gap:.5rem;margin-top:1.1rem;color:var(--c-slate);font-size:var(--fs-small)}
.hero__art{position:relative;min-height:340px}
.hero__art svg{width:100%;height:auto}

/* ---------- Barre de confiance ---------- */
.trustbar{border-block:1px solid var(--c-line);background:var(--c-white)}
.trustbar__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;padding-block:1.3rem}
.trust{display:flex;align-items:center;gap:.7rem;font-size:.93rem;color:var(--c-slate);font-weight:500}
.trust svg{flex:none;color:var(--c-primary)}
.trust strong{color:var(--c-ink);font-family:var(--ff-display)}

/* ---------- Parcours entreprise / particulier ---------- */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.path{
  position:relative;display:flex;flex-direction:column;gap:.6rem;
  padding:2rem;border-radius:var(--radius-lg);text-decoration:none;overflow:hidden;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease);
  box-shadow:var(--shadow-sm);
}
.path:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.path--biz{background:linear-gradient(150deg,var(--c-navy) 0%,var(--c-primary) 120%);color:#fff}
.path--home{background:#fff;border:1px solid var(--c-line);color:var(--c-ink)}
.path h3{margin:0;font-size:1.5rem}
.path--biz h3,.path--biz p{color:#fff}
.path--biz p{opacity:.9}
.path p{margin:0;font-size:.98rem}
.path--home p{color:var(--c-slate)}
.path__go{margin-top:.9rem;font-family:var(--ff-display);font-weight:700;display:inline-flex;align-items:center;gap:.4rem}
.path--biz .path__go{color:var(--c-accent)}
.path--home .path__go{color:var(--c-primary)}
.path__arc{position:absolute;right:-40px;top:-40px;width:170px;height:170px;border-radius:50%;border:22px solid rgba(50,159,215,.22);border-left-color:transparent;border-bottom-color:transparent;transform:rotate(35deg)}
.path--home .path__arc{border-color:rgba(4,97,154,.10);border-left-color:transparent;border-bottom-color:transparent}

/* ---------- Cartes de services ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.card{
  display:flex;flex-direction:column;gap:.55rem;padding:1.7rem;background:#fff;
  border:1px solid var(--c-line);border-radius:var(--radius-lg);text-decoration:none;color:var(--c-ink);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--c-accent);color:var(--c-ink)}
.card__ico{
  width:52px;height:52px;border-radius:14px;background:var(--c-accent-soft);color:var(--c-primary);
  display:inline-flex;align-items:center;justify-content:center;line-height:0;margin-bottom:.4rem;flex:none;
}
.card__ico svg{width:26px;height:26px;display:block;flex:none}
.card h3{margin:0;font-size:1.18rem}
.card p{margin:0;color:var(--c-slate);font-size:.96rem;flex-grow:1}
.card__go{font-family:var(--ff-display);font-weight:700;color:var(--c-primary);display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem}
.card:hover .card__go{gap:.6rem}
.card__go svg{transition:transform .2s var(--ease)}
.card:hover .card__go svg{transform:translateX(3px)}

/* ---------- Sélecteur interactif ---------- */
.selector{
  background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);padding:clamp(1.6rem,4vw,2.6rem);max-width:860px;margin-inline:auto;
}
.selector fieldset{border:0;padding:0;margin:0 0 1.4rem}
.selector legend{font-family:var(--ff-display);font-weight:700;font-size:1.05rem;margin-bottom:.7rem;padding:0}
.chip-group{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.chip label{
  display:inline-block;padding:.6rem 1.15rem;border-radius:999px;border:2px solid var(--c-line);
  font-weight:600;font-size:.95rem;cursor:pointer;transition:all .16s var(--ease);background:#fff;
}
.chip input:checked + label{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.chip input:focus-visible + label{outline:3px solid var(--c-accent);outline-offset:2px}
.chip label:hover{border-color:var(--c-accent)}
.selector__result{
  display:none;margin-top:.4rem;padding:1.3rem 1.4rem;border-radius:var(--radius);
  background:var(--c-accent-soft);border:1px solid #BBDDF1;
}
.selector__result.is-visible{display:block;animation:fadeUp .35s var(--ease)}
.selector__result h3{font-size:1.08rem;margin-bottom:.3rem}
.selector__result p{color:var(--c-slate);margin-bottom:1rem}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Bandes de contenu (features) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.split__media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);background:var(--c-mist)}
.split__media img{width:100%;height:100%;object-fit:cover}
.split__media--portrait{aspect-ratio:4/5;max-height:540px;margin-inline:auto;width:100%}
.checklist{list-style:none;padding:0;margin:0 0 1.4rem;display:grid;gap:.65rem}
.checklist li{display:flex;gap:.65rem;align-items:flex-start}
.checklist svg{flex:none;color:var(--c-primary);margin-top:.2rem}
.section--navy .checklist svg{color:var(--c-accent)}

/* ---------- Étapes / processus ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.2rem;counter-reset:step}
.step{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.4rem;counter-increment:step;position:relative}
.step::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--ff-display);font-weight:800;font-size:.95rem;color:var(--c-accent);
  display:block;margin-bottom:.5rem;letter-spacing:.06em;
}
.step h3{font-size:1.05rem;margin-bottom:.3rem}
.step p{font-size:.92rem;color:var(--c-slate);margin:0}

/* ---------- Témoignages ---------- */
.tslider{position:relative;max-width:900px;margin-inline:auto}
.tslider__track{overflow:hidden}
.tslider__list{display:flex;transition:transform .45s var(--ease)}
.tcard{
  flex:0 0 100%;padding:2.2rem clamp(1.4rem,4vw,3rem);text-align:center;
}
.tcard blockquote{margin:0 0 1.1rem;font-size:1.12rem;line-height:1.7;color:var(--c-ink)}
.section--navy .tcard blockquote{color:#E8F1F8}
.tcard cite{font-style:normal;font-family:var(--ff-display);font-weight:700;color:var(--c-primary)}
.section--navy .tcard cite{color:var(--c-accent)}
.tcard .tcard__tag{display:block;font-size:.82rem;color:var(--c-slate);margin-top:.2rem}
.section--navy .tcard__tag{color:#8FB0C8}
.tstars{color:#F5A623;letter-spacing:.18em;font-size:1rem;margin-bottom:.9rem}
.tslider__nav{display:flex;justify-content:center;gap:.6rem;margin-top:.6rem}
.tslider__btn{
  width:44px;height:44px;border-radius:50%;border:2px solid var(--c-line);background:#fff;color:var(--c-primary);
  cursor:pointer;display:grid;place-items:center;transition:all .16s;
}
.tslider__btn:hover{border-color:var(--c-primary);background:var(--c-primary);color:#fff}
.section--navy .tslider__btn{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}
.section--navy .tslider__btn:hover{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-navy-deep)}
.tslider__dots{display:flex;justify-content:center;gap:.45rem;margin-top:1rem}
.tslider__dots button{width:9px;height:9px;border-radius:50%;border:0;background:var(--c-silver);cursor:pointer;padding:0}
.tslider__dots button[aria-current="true"]{background:var(--c-accent);transform:scale(1.25)}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto}
.faq details{border:1px solid var(--c-line);border-radius:var(--radius);background:#fff;margin-bottom:.8rem;overflow:hidden}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.1rem 1.3rem;font-family:var(--ff-display);font-weight:700;font-size:1.02rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";flex:none;width:12px;height:12px;
  border-right:3px solid var(--c-primary);border-bottom:3px solid var(--c-primary);
  transform:rotate(45deg);transition:transform .2s var(--ease);margin-top:-4px;
}
.faq details[open] summary::after{transform:rotate(225deg);margin-top:4px}
.faq details[open] summary{color:var(--c-primary)}
.faq .faq__body{padding:0 1.3rem 1.2rem;color:var(--c-slate)}

/* ---------- Bande CTA finale ---------- */
.cta-band{
  background:linear-gradient(140deg,var(--c-primary) 0%,var(--c-navy) 100%);
  border-radius:var(--radius-lg);padding:clamp(2.2rem,5vw,3.6rem);color:#fff;
  display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;position:relative;overflow:hidden;
}
.cta-band::after{
  content:"";position:absolute;right:-70px;bottom:-90px;width:280px;height:280px;border-radius:50%;
  border:34px solid rgba(50,159,215,.28);border-left-color:transparent;border-top-color:transparent;transform:rotate(20deg);
}
.cta-band h2{color:#fff;margin-bottom:.4rem}
.cta-band p{color:#CFE3F2;margin:0}
.cta-band .btn-row{justify-content:flex-end;position:relative;z-index:1}

/* ---------- Footer ---------- */
.footer{background:var(--c-navy-deep);color:#B9CCDC;padding:3.4rem 0 1.6rem;margin-top:0}
.footer a{color:#DCE9F4;text-decoration:none}
.footer a:hover{color:var(--c-accent)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.2rem;margin-bottom:2.4rem}
.footer h4{color:#fff;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem;font-size:.95rem}
.footer__brand img{height:44px;width:auto;background:#fff;border-radius:10px;padding:6px 10px;margin-bottom:1rem}
.footer__brand p{font-size:.93rem;line-height:1.6}
.footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.4rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.85rem;color:#7E97AB}
.footer__legal{display:flex;flex-wrap:wrap;gap:1.2rem}

/* ---------- Pages intérieures ---------- */
.page-hero{
  background:
    radial-gradient(50rem 24rem at 105% -20%, rgba(50,159,215,.16), transparent 60%),
    var(--c-mist);
  padding-block:clamp(2.6rem,5vw,4rem);border-bottom:1px solid var(--c-line);
}
.breadcrumb{font-size:.85rem;color:var(--c-slate);margin-bottom:1rem}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0}
.breadcrumb li+li::before{content:"/";margin-right:.4rem;color:var(--c-silver)}
.breadcrumb a{color:var(--c-slate);text-decoration:none}
.breadcrumb a:hover{color:var(--c-primary)}

/* ---------- Formulaires ---------- */
.form{display:grid;gap:1.1rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field label{display:block;font-weight:600;font-size:.93rem;margin-bottom:.35rem}
.field .req{color:var(--c-err)}
.field input,.field select,.field textarea{
  width:100%;padding:.8rem 1rem;border:2px solid var(--c-line);border-radius:10px;
  font:inherit;color:var(--c-ink);background:#fff;transition:border-color .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-accent);outline:none}
.field .hint{font-size:.82rem;color:var(--c-slate);margin-top:.3rem}
.field .error{display:none;font-size:.85rem;color:var(--c-err);margin-top:.3rem;font-weight:600}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--c-err)}
.field.is-invalid .error{display:block}
.hp{position:absolute!important;left:-9999px!important;opacity:0;height:0;overflow:hidden}
.form__ok{display:none;background:#E6F5EC;border:1px solid #BFE5CE;color:var(--c-ok);border-radius:var(--radius);padding:1.2rem 1.4rem;font-weight:600}
.form__ok.is-visible{display:block}

/* ---------- Animations d'apparition ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* ---------- Responsive ---------- */
@media (max-width:1200px){
  .nav{display:none}
  .header__cta .btn--ghost,.header__phone{display:none}
  .burger{display:block}
  .hero__grid{grid-template-columns:1fr}
  .hero__art{min-height:0;max-width:460px;margin-inline:auto}
  .cards{grid-template-columns:1fr 1fr}
  .trustbar__grid{grid-template-columns:repeat(3,1fr)}
  .footer__grid{grid-template-columns:1fr 1fr}
  .cta-band{grid-template-columns:1fr}
  .cta-band .btn-row{justify-content:flex-start}
  .split{grid-template-columns:1fr}
}
@media (max-width:640px){
  :root{--header-h:78px}
  .header__logo img{height:48px}
  .cards{grid-template-columns:1fr}
  .paths{grid-template-columns:1fr}
  .trustbar__grid{grid-template-columns:1fr 1fr}
  .form__row{grid-template-columns:1fr}
  .header__cta .btn--primary{padding:.6rem 1rem;font-size:.9rem}
}

/* ---------- Chatbot God-info ---------- */
.gibot-btn{
  position:fixed;right:20px;bottom:20px;z-index:120;
  width:62px;height:62px;border-radius:50%;border:0;cursor:pointer;
  background:linear-gradient(140deg,var(--c-accent),var(--c-primary));color:#fff;
  box-shadow:var(--shadow-lg);display:grid;place-items:center;
  transition:transform .2s var(--ease),box-shadow .2s;
}
.gibot-btn:hover{transform:translateY(-3px)}
.gibot-btn svg{width:28px;height:28px}
.gibot{
  position:fixed;right:20px;bottom:94px;z-index:121;
  width:min(380px,calc(100vw - 32px));height:min(560px,calc(100dvh - 130px));
  background:#fff;border:1px solid var(--c-line);border-radius:18px;box-shadow:var(--shadow-lg);
  display:none;flex-direction:column;overflow:hidden;
}
.gibot.is-open{display:flex;animation:fadeUp .25s var(--ease)}
.gibot__head{background:linear-gradient(140deg,var(--c-primary),var(--c-navy));color:#fff;padding:.9rem 1.1rem;display:flex;align-items:center;gap:.7rem}
.gibot__head strong{font-family:var(--ff-display);font-size:1rem}
.gibot__head small{display:block;font-size:.75rem;opacity:.85}
.gibot__close{margin-left:auto;background:none;border:0;color:#fff;cursor:pointer;font-size:1.3rem;line-height:1;padding:.3rem}
.gibot__msgs{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;background:var(--c-mist)}
.gibot__msg{max-width:85%;padding:.65rem .9rem;border-radius:14px;font-size:.93rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word}
.gibot__msg--bot{background:#fff;border:1px solid var(--c-line);border-bottom-left-radius:4px;align-self:flex-start}
.gibot__msg--user{background:var(--c-primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.gibot__msg a{color:var(--c-primary);font-weight:600}
.gibot__quick{display:flex;flex-wrap:wrap;gap:.4rem;padding:.4rem 0 0}
.gibot__quick button{border:1.5px solid var(--c-accent);background:#fff;color:var(--c-primary);border-radius:999px;padding:.4rem .8rem;font:600 .82rem var(--ff-body);cursor:pointer;transition:all .15s}
.gibot__quick button:hover{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.gibot__typing{align-self:flex-start;color:var(--c-slate);font-size:.85rem;padding:.4rem .2rem}
.gibot__typing span{display:inline-block;animation:gibotDot 1.2s infinite}
.gibot__typing span:nth-child(2){animation-delay:.2s}
.gibot__typing span:nth-child(3){animation-delay:.4s}
@keyframes gibotDot{0%,60%,100%{opacity:.3}30%{opacity:1}}
.gibot__form{display:flex;gap:.5rem;padding:.8rem;border-top:1px solid var(--c-line);background:#fff}
.gibot__form input{flex:1;border:2px solid var(--c-line);border-radius:999px;padding:.6rem 1rem;font:inherit;font-size:.93rem}
.gibot__form input:focus{border-color:var(--c-accent);outline:none}
.gibot__form button{width:44px;height:44px;flex:none;border-radius:50%;border:0;background:var(--c-primary);color:#fff;cursor:pointer;display:grid;place-items:center}
.gibot__form button:hover{background:var(--c-primary-dark)}
.gibot__lead{display:grid;gap:.5rem;background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:.8rem;align-self:stretch}
.gibot__lead input,.gibot__lead select,.gibot__lead textarea{width:100%;border:2px solid var(--c-line);border-radius:8px;padding:.5rem .7rem;font:inherit;font-size:.9rem}
.gibot__lead button{justify-self:start}
.gibot__note{font-size:.72rem;color:var(--c-slate);text-align:center;padding:.35rem .8rem .6rem;background:#fff}
@media (max-width:640px){.gibot{right:8px;bottom:86px}.gibot-btn{right:14px;bottom:14px}}
@media (prefers-reduced-motion:reduce){.gibot.is-open{animation:none}}

/* ============================================================
   ANIMATIONS DE LA PAGE D'ACCUEIL (sobres, désactivées si
   l'utilisateur a demandé de réduire les animations)
   ============================================================ */

/* --- 1. Entrée en cascade du hero --- */
@keyframes giUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.gi-in{opacity:0;animation:giUp .7s var(--ease) forwards}
.gi-in-1{animation-delay:.05s}
.gi-in-2{animation-delay:.18s}
.gi-in-3{animation-delay:.31s}
.gi-in-4{animation-delay:.44s}
.gi-in-5{animation-delay:.57s}

/* --- 2. Arcs du logo qui tournent lentement dans le hero --- */
@keyframes giOrbit{to{transform:rotate(360deg)}}
@keyframes giOrbitRev{to{transform:rotate(-360deg)}}
.gi-orbit{transform-origin:260px 210px;animation:giOrbit 46s linear infinite}
.gi-orbit-rev{transform-origin:260px 210px;animation:giOrbitRev 64s linear infinite}

/* --- 3. Flottement très léger du bouclier et du nuage --- */
@keyframes giFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.gi-float{animation:giFloat 5.5s ease-in-out infinite}
.gi-float-slow{animation:giFloat 7s ease-in-out infinite .8s}

/* --- 4. Le crochet du bouclier se dessine --- */
@keyframes giDraw{from{stroke-dashoffset:60}to{stroke-dashoffset:0}}
.gi-draw{stroke-dasharray:60;stroke-dashoffset:60;animation:giDraw 1.1s var(--ease) 1s forwards}

/* --- 5. Barre d'accent de l'écran qui pulse doucement --- */
@keyframes giPulse{0%,100%{opacity:1}50%{opacity:.45}}
.gi-pulse{animation:giPulse 3.4s ease-in-out infinite}

/* --- 6. Mot qui change sous le hero --- */
.rotator{
  display:inline-block;color:var(--c-primary);font-weight:700;
  transition:opacity .35s var(--ease),transform .35s var(--ease);
  min-width:1ch;
}
.rotator.is-out{opacity:0;transform:translateY(-8px)}
.hero__specialites{
  margin-top:1.3rem;color:var(--c-slate);font-size:1.02rem;
  display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;
}
.visuellement-cache{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* --- 7. Banderole défilante --- */
.marquee{
  background:linear-gradient(100deg,var(--c-navy),var(--c-primary));
  overflow:hidden;position:relative;padding:.85rem 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.marquee__track{
  display:flex;width:max-content;gap:0;
  animation:giMarquee 42s linear infinite;
}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes giMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee__group{display:flex;align-items:center;flex:none}
.marquee__item{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--ff-display);font-weight:700;font-size:.98rem;
  color:#fff;letter-spacing:.03em;white-space:nowrap;padding:0 1.6rem;
}
.marquee__item::after{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--c-accent);flex:none;margin-left:1.4rem;
}

/* --- 8. Compteur --- */
.compteur{font-variant-numeric:tabular-nums}

/* --- Respect de prefers-reduced-motion --- */
@media (prefers-reduced-motion:reduce){
  .gi-in{opacity:1;animation:none}
  .gi-orbit,.gi-orbit-rev,.gi-float,.gi-float-slow,.gi-pulse{animation:none}
  .gi-draw{stroke-dasharray:none;stroke-dashoffset:0;animation:none}
  .marquee__track{animation:none;transform:none}
  .marquee{-webkit-mask-image:none;mask-image:none}
  .rotator{transition:none}
}
