/* Hallmark · macrostructure: Stat-Led (carte-led) · genre: editorial
 * tone: technique, sobre · anchor hue: navy 250 + or 45
 * nav: N1b (menu a gauche + coordonnees) — impose par la cliente
 * footer: Ft5 Statement · enrichment: anneau SVG (Tier B)
 * pre-emit critique: P4 H4 E4 S5 R5 V4
 * contrast: coût 5.86, tertiaire 5.03, inter 5.29
 */

:root{--page:#fff;--alt:#F7F9FC;--fg:#14202E;--fg2:#5A6675;--fg3:#66707D;
  --line:#E6EAF0;--line2:#C6CEDA;--acc:#014E75;--acc2:#7A620E;
  --band:#0E3A79;--band-fg:#fff;--sp:0;--hd-h:79px;
  --surface:#fff;--tel-hover:#E2EBF7;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.4,0,.2,1);}
body{background:var(--surface);color:var(--fg);}

/* ---- en-tête : les coordonnées se lisent d'emblée ---- */
.hd{position:sticky;top:0;z-index:300;background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.hd__in{max-width:1220px;margin:0 auto;padding:12px 26px;display:flex;align-items:center;
  justify-content:flex-start;gap:26px;}
.hd__brand{display:flex;align-items:center;gap:11px;text-decoration:none;}
.hd__brand b{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--band);
  letter-spacing:-.01em;}
.hd__nav{display:flex;gap:24px;}   /* collé au logo */
.hd__nav a{font-size:14.5px;font-weight:500;color:var(--fg2);text-decoration:none;white-space:nowrap;
  transition:color .18s var(--ease-out);}
.hd__nav a:hover{color:var(--band);}
.hd__coord{display:flex;gap:10px;margin-left:auto;}   /* repoussé à droite */
.hd__coord a{display:block;padding:7px 15px;border-radius:12px;text-decoration:none;white-space:nowrap;
  transition:background .18s var(--ease-out),border-color .18s var(--ease-out);}
.hd__coord span{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--fg3);line-height:1.3;}
.hd__coord b{display:block;margin-top:2px;font-family:var(--font-display);font-weight:600;
  font-size:14.5px;color:var(--band);}
.hd__tel{background:var(--navy-50);}
.hd__tel:hover{background:var(--tel-hover);}
.hd__mail{border:1px solid var(--line);}
.hd__mail:hover{border-color:var(--navy-300);}
.hd__burger{display:none;margin-left:auto;width:40px;height:40px;border:1px solid var(--line2);background:none;
  border-radius:9px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;}
.hd__burger i{width:17px;height:1.5px;background:var(--fg);transition:transform .26s var(--ease-out);}
.hd__burger[aria-expanded="true"] i:first-child{transform:translateY(3.25px) rotate(45deg);}
.hd__burger[aria-expanded="true"] i:last-child{transform:translateY(-3.25px) rotate(-45deg);}
.hd__sheet{display:none;flex-direction:column;padding:6px 26px 18px;border-top:1px solid var(--line);}
.hd__sheet a{padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.02rem;}
.hd.is-open .hd__sheet{display:flex;}
/* Le burger apparaît exactement là où le menu disparaît : entre les deux seuils
   précédents (821-1080 px) il n'y avait plus AUCUNE navigation — iPad paysage compris. */
@media(max-width:1080px){.hd__nav{display:none;}.hd__burger{display:flex;}}
@media(max-width:820px){.hd__coord{display:none;}}

/* ---- bouton de devis, toujours accessible ---- */
.fixe{position:fixed;right:22px;bottom:22px;z-index:320;display:inline-flex;align-items:center;gap:9px;
  padding:14px 22px;border-radius:999px;background:var(--band);color:var(--band-fg);text-decoration:none;
  font-family:var(--font-display);font-weight:600;font-size:14.5px;
  box-shadow:0 10px 30px rgba(14,58,121,.28);
  transition:transform .22s var(--ease-out),box-shadow .22s var(--ease-out);}
.fixe:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(14,58,121,.34);}
/* Elle flotte au-dessus du contenu : on lui réserve sa place en bas de page
   plutôt que de la laisser recouvrir des champs ou des liens. */
.pd,.pds{padding-bottom:120px;}
@media(max-width:560px){.fixe{right:14px;bottom:14px;padding:13px 18px;}
  .fixe span{display:none;} }

/* ---- blocs communs ---- */
.bl{padding:92px 0;border-top:1px solid var(--line);}
.bl__in{max-width:1220px;margin:0 auto;padding:0 26px;}
.bl__t{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,4vw,2.8rem);
  line-height:1.08;letter-spacing:-.032em;color:var(--navy-800);}
.bl__s{margin-top:16px;max-width:68ch;color:var(--fg2);font-size:1.05rem;}
.bl__more{margin-top:30px;}
.bl__more a{font-family:var(--font-display);font-weight:600;color:var(--acc);text-decoration:none;
  border-bottom:2px solid currentColor;padding-bottom:2px;}

.btn{font-family:var(--font-display);font-weight:600;font-size:15px;text-decoration:none;
  padding:14px 28px;border-radius:999px;display:inline-block;white-space:nowrap;
  transition:background .2s var(--ease-out),border-color .2s var(--ease-out),transform .18s var(--ease-out);}
.btn--p{background:var(--band);color:var(--band-fg);}
.btn--p:hover{background:var(--navy-800);}
.btn--p:active{transform:scale(.985);}
.btn--g{border:1px solid var(--line2);color:var(--navy-800);}
.btn--g:hover{border-color:var(--band);}

/* ---- catalogue ---- */
.fls{margin-top:38px;border-top:1px solid var(--line);}
.fl{display:grid;grid-template-columns:140px minmax(0,1fr) 112px 92px 156px 132px;gap:16px;align-items:center;
  padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;
  transition:background .22s var(--ease-out),transform .22s var(--ease-out);}
.fl:hover{background:var(--alt);transform:translateX(10px);}
.fl__th{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--acc);line-height:1.35;}
.fl__n b{display:block;font-family:var(--font-display);font-weight:600;font-size:1.06rem;
  letter-spacing:-.016em;color:var(--navy-800);}
.fl__n em{display:block;margin-top:4px;font-style:normal;font-size:.93rem;color:var(--fg2);}
.fl__m{display:flex;gap:5px;flex-wrap:wrap;}
.md{font-style:normal;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;line-height:1.4;padding:4px 8px;border-radius:5px;white-space:nowrap;}
.md--intra{background:var(--navy-50);color:var(--navy-700);}
.md--inter{background:var(--gold-50);color:var(--gold-700);}
.fl__d{font-size:.9rem;color:var(--fg2);font-variant-numeric:tabular-nums;}
.fl__c{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--acc2);
  text-align:right;font-variant-numeric:tabular-nums;}
/* Affordance explicite vers la fiche. Contenue dans le lien de ligne :
   pas de lien imbriqué, toute la ligne reste cliquable. */
.fl__go{justify-self:end;white-space:nowrap;font-family:var(--font-display);font-weight:600;
  font-size:.85rem;color:var(--band);border:1px solid var(--line2);border-radius:999px;
  padding:9px 16px;transition:background .2s var(--ease-out),border-color .2s var(--ease-out);}
.fl:hover .fl__go{background:var(--band);border-color:var(--band);color:var(--band-fg);}
@media(max-width:900px){.fl{grid-template-columns:minmax(0,1fr);gap:8px;align-items:start;}
  .fl__c{text-align:left;} .fl__go{justify-self:start;}}

/* ---- indicateurs et satisfaction ---- */
.pv{padding:80px 0;border-top:1px solid var(--line);background:var(--alt);}
.pv__in{max-width:1220px;margin:0 auto;padding:0 26px;}
.ind__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:center;}
.ind__t h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,3vw,2.1rem);
  letter-spacing:-.028em;color:var(--navy-800);}
.ind__t p{margin-top:12px;color:var(--fg2);max-width:52ch;font-size:.99rem;}
.ind__g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
@media(max-width:900px){.ind__in{grid-template-columns:minmax(0,1fr);gap:26px;}}
.ind__c{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px 24px;}
.ind__c b{display:block;font-family:var(--font-display);font-weight:800;
  font-size:clamp(2rem,4.4vw,2.9rem);line-height:1;letter-spacing:-.04em;color:var(--navy-700);
  font-variant-numeric:tabular-nums;}
.ind__c span{display:block;margin-top:10px;font-size:.92rem;color:var(--fg2);}
@media(max-width:520px){.ind__g{grid-template-columns:minmax(0,1fr);}}

/* ---- carte ---- (classe « zn » : « ct » est déjà pris par le bloc contact) */
.zn{padding:92px 0;border-top:1px solid var(--line);}
.zn__in{max-width:1220px;margin:0 auto;padding:0 26px;display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:52px;align-items:center;}
.zn__t h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,4vw,2.8rem);
  letter-spacing:-.032em;color:var(--navy-800);}
.zn__t p{margin-top:16px;color:var(--fg2);}
.zn__dep{margin-top:16px !important;font-family:var(--font-display);font-weight:700;
  color:var(--navy-700) !important;}
.zn__note{font-size:.92rem;color:var(--fg3) !important;}
.zn__m{margin:0;border:1px solid var(--line);border-radius:20px;padding:16px;background:var(--surface);}
.zn__m svg{width:100%;height:auto;}
@media(max-width:900px){.zn__in{grid-template-columns:minmax(0,1fr);gap:30px;}}

/* ---- appel final et pied ---- */
.ap{padding:88px 0;border-top:1px solid var(--line);background:var(--navy-800);color:var(--band-fg);}
.ap__in{max-width:1220px;margin:0 auto;padding:0 26px;text-align:center;}
.ap h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,3.6vw,2.6rem);
  letter-spacing:-.03em;}
.ap p{margin:14px auto 0;max-width:48ch;color:var(--navy-100);}
.ap__b{margin-top:28px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.ap__n{margin-top:18px !important;font-size:.88rem;color:var(--navy-200) !important;}
.ap .btn--p{background:var(--gold-500);color:var(--navy-900);}
.ap .btn--g{border-color:rgba(255,255,255,.45);color:var(--band-fg);}
.ap .btn--g:hover{background:rgba(255,255,255,.1);}
.pd{padding:40px 0 96px;border-top:1px solid var(--line);font-size:.9rem;color:var(--fg2);}
.pd__in{max-width:1220px;margin:0 auto;padding:0 26px;display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.pd b{font-family:var(--font-display);color:var(--navy-800);}
.pd a{color:var(--acc);text-decoration:none;}
.pd__li{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:9px;margin:8px 0 0 -7px;color:var(--fg2);
  transition:color .18s var(--ease-out),background .18s var(--ease-out);}
.pd__li:hover{color:var(--band);background:var(--alt);}
.pd a:hover{text-decoration:underline;}
@media(max-width:760px){.pd__in{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---- ouverture : l'anneau tient le rôle de l'ancienne photo plein cadre ---- */
.an__h{position:relative;overflow:hidden;padding:72px 0 88px;}
.an__h-in{max-width:1280px;margin:0 auto;padding:0 26px;display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:52px;align-items:center;}
.an__h-t h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,5.4vw,4rem);
  line-height:1.04;letter-spacing:-.038em;max-width:13ch;color:var(--navy-800);}
.an__ph{margin-top:26px;font-size:1.14rem;line-height:1.58;color:var(--fg2);max-width:48ch;}
.an__a{margin-top:34px;display:flex;gap:12px;flex-wrap:wrap;}
.an__ring{justify-self:center;width:100%;max-width:540px;}
.an__ring svg{width:100%;height:auto;display:block;}
.an__a1{transform-origin:center;animation:anspin 36s linear infinite;}
.an__a2{transform-origin:center;animation:anspin2 26s linear infinite;}
.an__a3{transform-origin:center;animation:anspin 19s linear infinite;}
@keyframes anspin{to{transform:rotate(360deg);}}
@keyframes anspin2{to{transform:rotate(-360deg);}}
@media(prefers-reduced-motion:reduce){.an__a1,.an__a2,.an__a3{animation:none;}}

/* ---- la carte, aussitôt après ---- */
.an__z{padding:88px 0;border-top:1px solid var(--line);background:var(--alt);}
.an__z-in{max-width:1280px;margin:0 auto;padding:0 26px;display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:52px;align-items:center;}
.an__z-t h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,4vw,2.8rem);
  letter-spacing:-.032em;color:var(--navy-800);}
.an__z-t p{margin-top:16px;color:var(--fg2);}
.an__dep{margin-top:16px !important;font-family:var(--font-display);font-weight:700;
  color:var(--navy-700) !important;}
.an__note{font-size:.92rem;color:var(--fg3) !important;}
.an__m{margin:0;border:1px solid var(--line);border-radius:22px;padding:18px;background:var(--surface);
  box-shadow:0 20px 52px rgba(14,58,121,.09);}
.an__m svg{width:100%;height:auto;}

/* ---- séquence de la 13 : colonne collante, étapes en flux ---- */
.an__pin{border-top:1px solid var(--line);padding:84px 0;}
.an__pin-in{max-width:1280px;margin:0 auto;padding:0 26px;display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start;}
.an__pin-t{position:sticky;top:calc(var(--hd-h) + 26px);}
.an__pin-t h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,3.6vw,2.5rem);
  line-height:1.06;letter-spacing:-.032em;color:var(--navy-800);}
.an__pin-t p{margin-top:16px;color:var(--fg2);max-width:36ch;}
.an__pin-lien{display:inline-block;margin-top:22px;font-family:var(--font-display);font-weight:600;
  color:var(--acc);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px;}
.an__es{display:flex;flex-direction:column;gap:14px;}
.an__e{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px 28px;
  transition:border-color .34s var(--ease-out),box-shadow .34s var(--ease-out);}
.an__e.est-actif{border-color:var(--navy-300);box-shadow:0 14px 38px rgba(14,58,121,.12);}
.an__e-n{font-family:var(--font-mono);font-size:11px;letter-spacing:.13em;color:var(--acc2);}
.an__e h3{margin-top:9px;font-family:var(--font-display);font-weight:700;font-size:1.22rem;
  letter-spacing:-.022em;color:var(--navy-800);}
.an__e p{margin-top:9px;color:var(--fg2);}
.an__e a{display:inline-block;margin-top:16px;font-family:var(--font-display);font-weight:600;
  font-size:.92rem;color:var(--acc);text-decoration:none;border-bottom:2px solid currentColor;
  padding-bottom:2px;}

/* ---- appel final en formulaire, dans l'esprit de la fin de la 32 ---- */
.an__cta{border-top:1px solid var(--line);background:var(--navy-800);color:var(--band-fg);padding:86px 0;}
.an__cta-in{max-width:1280px;margin:0 auto;padding:0 26px;display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:56px;align-items:start;}
.an__cta h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,3.8vw,2.7rem);
  letter-spacing:-.032em;}
.an__cta-t p{margin-top:16px;color:var(--navy-100);max-width:40ch;}
.an__cta-n{margin-top:20px !important;font-size:.92rem;color:var(--navy-200) !important;}
.an__f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.an__f label{display:flex;flex-direction:column;gap:7px;font-size:.87rem;font-weight:500;
  color:var(--navy-100);}
.an__f-full{grid-column:1/-1;}
.an__f input,.an__f textarea{font-family:var(--font-body);font-size:1rem;padding:13px 15px;
  border-radius:12px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);
  color:var(--band-fg);width:100%;transition:border-color .2s var(--ease-out),background .2s var(--ease-out);}
.an__f input::placeholder,.an__f textarea::placeholder{color:rgba(255,255,255,.45);}
.an__f input:hover,.an__f textarea:hover{border-color:rgba(255,255,255,.5);}
.an__f input:focus,.an__f textarea:focus{background:rgba(255,255,255,.14);}
.an__f textarea{resize:vertical;}
.an__f button{grid-column:1/-1;justify-self:start;background:var(--gold-500);color:var(--navy-900);
  border:0;cursor:pointer;}
.an__f button:hover{background:var(--gold-300);}
.an__ok{font-family:var(--font-display);font-weight:600;font-size:1.05rem;}

@media(max-width:960px){
  .an__h-in,.an__z-in,.an__pin-in,.an__cta-in{grid-template-columns:minmax(0,1fr);gap:36px;}
  .an__pin-t{position:static;}
  .an__ring{max-width:340px;}
}
@media(max-width:560px){.an__f{grid-template-columns:minmax(0,1fr);}}


/* ---- reprises anti-slop propres a la 35 ---- */

/* Le badge « inter » est du petit texte : l'or du systeme donnait 4,27
   sur son fond clair, sous le seuil. */
.md--inter{color:var(--acc2);}

/* Pied « declaration » : une phrase de tete, puis une ligne de bas de page.
   Sort de la grille a quatre colonnes egales, empreinte trop reconnaissable. */
.pds{border-top:1px solid var(--line);padding:56px 0 120px;}
.pds__in{max-width:1280px;margin:0 auto;padding:0 26px;}
.pds__t{font-family:var(--font-display);font-weight:600;font-size:clamp(1.05rem,2vw,1.35rem);
  line-height:1.45;letter-spacing:-.016em;color:var(--navy-800);max-width:34ch;}
.pds__b{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;
  font-size:.88rem;color:var(--fg2);}
.pds__b a{color:var(--acc);text-decoration:none;}
.pds__b a:hover{text-decoration:underline;}
.pds__li{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:9px;margin-left:auto;color:var(--fg2);
  transition:color .18s var(--ease-out),background .18s var(--ease-out);}
.pds__li:hover{color:var(--band);background:var(--alt);}
@media(max-width:640px){.pds__li{margin-left:0;}}
