
:root{--page:#fff;--alt:#F7F9FC;--fg:#14202E;--fg2:#5A6675;--fg3:#8A94A1;
  --line:#E6EAF0;--line2:#C6CEDA;--acc:#014E75;--acc2:#B89416;
  --band:#0E3A79;--band-fg:#fff;--sp:0;--hd-h:79px;}
body{background:#fff;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);}
.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),border-color .18s var(--ease);}
.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:#E2EBF7;}
.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);}
.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:#fff;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),box-shadow .22s var(--ease);}
.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),border-color .2s var(--ease),transform .18s var(--ease);}
.btn--p{background:var(--band);color:#fff;}
.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),transform .22s var(--ease);}
.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),border-color .2s var(--ease);}
.fl:hover .fl__go{background:var(--band);border-color:var(--band);color:#fff;}
@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:#fff;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:#fff;}
.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:#fff;}
.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:#fff;}
.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),background .18s var(--ease);}
.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));}}

.an__h{position:relative;overflow:hidden;padding:104px 0 96px;}
.an__ring{position:absolute;top:50%;right:-12%;width:min(700px,86vw);transform:translateY(-50%);
  pointer-events:none;}
.an__ring svg{width:100%;height:auto;}
.an__a1{transform-origin:center;animation:anspin 34s linear infinite;}
.an__a2{transform-origin:center;animation:anspin2 25s linear infinite;}
.an__a3{transform-origin:center;animation:anspin 18s 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;}}
.an__h-in{position:relative;z-index:1;max-width:1220px;margin:0 auto;padding:0 26px;}
.an__h h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,5.6vw,4.2rem);
  line-height:1.05;letter-spacing:-.038em;max-width:14ch;color:var(--navy-800);}
.an__ph{margin-top:26px;font-size:1.14rem;line-height:1.58;color:var(--fg2);max-width:50ch;}
.an__a{margin-top:34px;display:flex;gap:12px;flex-wrap:wrap;}
.an__cs{margin-top:38px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.an__c{border:1px solid var(--line);border-radius:22px;padding:30px 28px;background:#fff;
  transition:box-shadow .26s var(--ease),transform .26s var(--ease),border-color .26s var(--ease);}
.an__c:hover{box-shadow:0 16px 40px rgba(14,58,121,.1);transform:translateY(-3px);
  border-color:var(--navy-200);}
.an__c b{display:block;font-family:var(--font-display);font-weight:700;font-size:1.24rem;
  letter-spacing:-.022em;color:var(--navy-800);}
.an__c p{margin-top:10px;color:var(--fg2);}
.an__c a{display:inline-block;margin-top:18px;font-family:var(--font-display);font-weight:600;
  font-size:.93rem;color:var(--acc);text-decoration:none;border-bottom:2px solid currentColor;}
@media(max-width:820px){.an__cs{grid-template-columns:minmax(0,1fr);}
  .an__ring{opacity:.4;right:-40%;}}
