/* =====================================================================
   GROUPE CA · CLINICAIR — Prototype v2
   « Le scroll comme mise en scène »  —  sombre, sobre, commercial, haut de gamme
   ===================================================================== */

:root{
  --bg:        #0E1417;   /* noir bleuté — sol continu */
  --bg-2:      #121A1E;
  --bg-3:      #172127;
  --ink-line:  #26333A;
  --fg:        #EAF0F1;
  --fg-soft:   #9DB0B4;
  --fg-dim:    #7D9297;

  --anthra:    #2F353B;   /* anthracite du logo */
  --teal:      #3C8089;   /* teal d'identité Groupe CA — unique */
  --teal-lite: #3C8089;   /* (aligné : une seule teinte teal) */
  --teal-glow: #3C8089;
  --teal-soft: rgba(60,128,137,.14);

  --maxw: 1320px;
  --gut: clamp(22px, 5.2vw, 96px);
  --f-display: "Archivo", "Arial Narrow", system-ui, sans-serif;
  --f-body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --ease: cubic-bezier(.22,1,.36,1);
  --header-h: 78px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ background:var(--bg); -webkit-text-size-adjust:100%; }
html.pin-ready{ scroll-behavior:auto; }
body{
  font-family:var(--f-body);
  background:var(--bg);
  color:var(--fg);
  line-height:1.6;
  font-size:17px;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--teal); color:#fff; }

h1,h2,h3,h4{ font-family:var(--f-display); font-weight:800; line-height:1.02; letter-spacing:-.022em; }
.u-display{ text-transform:uppercase; }

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gut); }
.kicker{
  font-family:var(--f-body); font-weight:600; font-size:.74rem;
  letter-spacing:.28em; text-transform:uppercase; color:var(--teal-lite);
  display:inline-flex; align-items:center; gap:.85em;
}
.kicker::before{ content:""; width:30px; height:1px; background:currentColor; opacity:.6; }
.lead{ color:var(--fg-soft); font-size:clamp(1.02rem,1.6vw,1.28rem); max-width:60ch; }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em;
  padding:1.05em 1.75em; border-radius:2px;
  font-weight:600; font-size:.9rem; letter-spacing:.02em;
  background:#EAF0F1; color:#0E1417;
  position:relative; overflow:hidden; isolation:isolate;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), color .4s var(--ease);
}
.btn > *{ position:relative; z-index:1; }
.btn::after{ content:""; position:absolute; inset:0; z-index:0; background:var(--teal);
  transform:translateY(101%); transition:transform .45s var(--ease); }
.btn:hover{ transform:translateY(-3px); box-shadow:0 20px 50px -18px rgba(60,128,137,.4); color:#04121a; }
.btn:hover::after{ transform:translateY(0); }
.btn .arw{ transition:transform .35s var(--ease); }
.btn:hover .arw{ transform:translateX(5px); }
.btn--line{ background:transparent; color:var(--fg); border:1px solid rgba(234,240,241,.26); }
.btn--line::after{ background:#EAF0F1; }
.btn--line:hover{ color:#04121a; }

/* =====================================================================
   HEADER  — masqué pendant l'intro, révélé quand le logo « se pose »
   ===================================================================== */
.header{
  position:fixed; inset:0 0 auto 0; z-index:80; height:var(--header-h);
  display:flex; align-items:center;
  opacity:0; pointer-events:none;
  transition:opacity .5s var(--ease), background .4s var(--ease), height .4s var(--ease);
}
.header.is-live{ opacity:1; pointer-events:auto; }
.header.solid{ background:rgba(14,20,23,.82); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--ink-line); height:66px; }
.header .wrap{ max-width:1460px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.header__logo{ display:flex; align-items:center; gap:12px; flex:none; }
.header__logo svg{ height:30px; width:auto; }
.header__logo .mark__ink{ fill:#EAF0F1; stroke:none; }
.header__logo .mark__teal{ fill:var(--teal-lite); stroke:none; }
.nav{ display:flex; align-items:center; gap:clamp(16px,2vw,30px); }
.nav a{ font-weight:500; font-size:.9rem; color:var(--fg-soft); white-space:nowrap; position:relative; padding:6px 0; transition:color .3s; }
.nav a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--teal-lite); transition:width .35s var(--ease); }
.nav a:hover{ color:var(--fg); } .nav a:hover::after{ width:100%; }
.header__aside{ display:flex; align-items:center; gap:16px; flex:none; }
.header__phone{ display:flex; align-items:center; gap:9px; font-weight:600; font-size:.9rem; color:var(--fg); white-space:nowrap; }
.header__phone .dot{ width:7px; height:7px; border-radius:50%; background:var(--teal-lite); box-shadow:0 0 0 0 rgba(60,128,137,.5); animation:pulse 2.6s infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(60,128,137,.5)} 70%{box-shadow:0 0 0 12px rgba(60,128,137,0)} 100%{box-shadow:0 0 0 0 rgba(60,128,137,0)} }
.header__aside .btn{ padding:.8em 1.25em; font-size:.82rem; }
.burger{ display:none; width:44px; height:44px; position:relative; z-index:120; }
.burger i{ position:absolute; left:10px; right:10px; height:2px; background:var(--fg); transition:.35s var(--ease); }
.burger i:nth-child(1){ top:16px; } .burger i:nth-child(2){ top:22px; } .burger i:nth-child(3){ top:28px; }
body.menu-open .burger i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
body.menu-open .burger i:nth-child(2){ opacity:0; }
body.menu-open .burger i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* =====================================================================
   STAGE — la séquence d'intro pilotée au scroll
   ===================================================================== */
.stage{ position:relative; background:var(--bg); }
.stage__track{ height:280vh; position:relative; }         /* longueur de la scène : se termine peu après que le hero se soit stabilisé (~p=.78), avec une courte pause naturelle, pour éviter tout long scroll « mort » avant le relâchement de l'épinglage */
.stage__vp{
  position:sticky; top:0; height:100svh; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}

.layer{ position:absolute; inset:0; }
.layer--bgA,.layer--bgB{
  will-change:transform,opacity; background-size:cover; background-position:center;
  filter:brightness(.8) contrast(1.05) saturate(.92);
}
#bgA{ background-image:url('../img/roof-units.jpg'); }
#bgB{ background-image:url('../img/roof-skyline.jpg'); }
.layer--bgA{ z-index:1; }
.layer--bgB{ z-index:2; opacity:0; }
.layer--tint{ z-index:3; background:
  linear-gradient(180deg, rgba(14,20,23,.48) 0%, rgba(14,20,23,.28) 42%, rgba(14,20,23,.80) 100%),
  radial-gradient(120% 90% at 50% 18%, rgba(14,20,23,.10), rgba(14,20,23,.55) 62%, rgba(14,20,23,.86) 100%); }
.layer--grain{ z-index:6; opacity:.12; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E"); }

/* plateau sombre : donne au logo un fond propre pour ses vraies couleurs */
.brand-plate{
  position:absolute; left:50%; top:50%; z-index:4;
  width:130vw; height:124vh;
  transform:translate(-50%,-50%);
  background:radial-gradient(ellipse 36% 44% at center,
    #454F57 0%, #333B42 32%, rgba(28,35,41,.6) 52%, rgba(14,20,23,.22) 68%, transparent 80%);
  pointer-events:none;
}

/* le logo, pièce maîtresse — PLEIN et coloré dès le départ */
.mark-wrap{
  position:absolute; left:50%; top:50%; z-index:5;
  width:min(60vw, 58vh); aspect-ratio:700/429;
  transform:translate(-50%,-50%); transform-origin:center center;
  will-change:transform,opacity;
  filter:drop-shadow(0 0 16px rgba(60,128,137,.14));
}
.mark{ width:100%; height:100%; overflow:visible; }
.mark-wrap .mark__ink{ fill:#2F353B; }   /* anthracite réel — éclairci en JS quand le fond devient chargé */
.mark-wrap .mark__teal{ fill:#3C8089; }  /* turquoise réel */
.mark-wrap.lit{ filter:drop-shadow(0 0 30px rgba(60,128,137,.4)) drop-shadow(0 0 90px rgba(60,128,137,.22)); }

/* signature « GROUPE CA » sous le logo */
.stage__brand{
  position:absolute; left:0; right:0; top:calc(50% + min(20vw, 19vh)); z-index:8;
  text-align:center; pointer-events:none; opacity:0;
}
.stage__brand .word{
  font-family:var(--f-display); font-weight:800; text-transform:uppercase;
  letter-spacing:.34em; font-size:clamp(1.15rem, 2.3vw, 1.9rem); color:var(--fg);
  padding-left:.34em;
}

/* élément de premier plan qui traverse la composition */
.layer--slab{
  z-index:7; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,12,14,0) 0%, rgba(8,12,14,.55) 22%, #05090B 55%);
  transform:translateY(100%);
}
.layer--slab::before{ /* arête lumineuse */
  content:""; position:absolute; left:0; right:0; top:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(60,128,137,.7) 30%, rgba(60,128,137,.7) 70%, transparent);
}

/* typographie de scène */
.stage__type{ position:relative; z-index:8; text-align:center; padding:0 var(--gut); pointer-events:none; margin-top:clamp(-90px,-8vh,-40px); }
.stage__type .kkr{ display:block; font-family:var(--f-body); font-weight:600; font-size:clamp(.94rem,1.3vw,1.12rem); letter-spacing:.4em; text-transform:uppercase; color:var(--teal-lite); opacity:0; margin-bottom:clamp(36px,6vh,56px); }
.stage__h1{ font-size:clamp(2.6rem, 7vw, 6.6rem); text-transform:uppercase; color:var(--fg); }
.stage__h1 span{ display:block; overflow:hidden; }
.stage__h1 span b{ display:block; font-weight:800; transform:translateY(110%); }

/* contenu « au repos » (hero final) */
.stage__rest{ position:absolute; left:var(--gut); right:var(--gut); bottom:clamp(48px,9vh,120px); z-index:9; max-width:760px; opacity:0; transform:translateY(30px); pointer-events:none; }
.stage__rest.on{ pointer-events:auto; }
.stage__rest h2{ font-size:clamp(2.4rem,5.6vw,4.6rem); text-transform:uppercase; margin:.35em 0 .5em; }
.stage__rest p{ color:var(--fg-soft); max-width:52ch; font-size:clamp(1rem,1.5vw,1.2rem); }
.stage__rest .cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }

/* bascule vers les divisions */
.stage__div{ position:absolute; left:var(--gut); right:var(--gut); top:50%; transform:translateY(-50%); z-index:9; display:grid; gap:2px; max-width:900px; opacity:0; pointer-events:none; }
.stage__div a{ display:flex; align-items:baseline; gap:20px; padding:22px 4px; border-top:1px solid var(--ink-line); overflow:hidden; }
.stage__div a:last-child{ border-bottom:1px solid var(--ink-line); }
.stage__div .di{ font-family:var(--f-display); font-weight:800; font-size:clamp(1.5rem,3.4vw,2.6rem); text-transform:uppercase; color:var(--fg); transform:translateY(105%); }
.stage__div .dl{ color:var(--fg-soft); font-size:.92rem; transform:translateY(105%); }
.stage__div a:hover .di{ color:var(--teal-lite); }

.stage__cue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:9; display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.62rem; letter-spacing:.34em; text-transform:uppercase; color:var(--fg-dim); }
.stage__cue i{ width:1px; height:46px; background:linear-gradient(var(--teal-lite), transparent); animation:cue 2s var(--ease) infinite; transform-origin:top; }
@keyframes cue{ 0%{transform:scaleY(0)} 45%{transform:scaleY(1)} 100%{transform:scaleY(0);transform-origin:bottom} }

/* =====================================================================
   CONTINUITÉ — colonne vertébrale + HUD de section
   ===================================================================== */
.spine{ position:fixed; left:max(18px, calc((100vw - var(--maxw))/2 - 26px)); top:0; bottom:0; width:1px; z-index:70; background:var(--ink-line); opacity:0; transition:opacity .6s var(--ease); }
.spine.on{ opacity:1; }
.spine__fill{ position:absolute; left:0; top:0; width:1px; background:linear-gradient(var(--teal-lite), var(--teal)); height:0; }
.spine__dot{ position:absolute; left:-3px; width:7px; height:7px; border-radius:50%; background:var(--teal-lite); box-shadow:0 0 12px var(--teal-lite); top:0; }
.hud{ position:fixed; left:max(30px, calc((100vw - var(--maxw))/2 - 12px)); bottom:34px; z-index:70; font-family:var(--f-display); font-weight:800; font-size:.8rem; letter-spacing:.06em; color:var(--fg-dim); opacity:0; transition:opacity .6s var(--ease); }
.hud.on{ opacity:1; }
.hud b{ color:var(--teal-lite); }
.hud{ background:rgba(14,20,23,.82); border:1px solid var(--ink-line); border-radius:2px; padding:.55em .9em; backdrop-filter:blur(4px); }
@media (max-width:760px){ .hud{ display:none; } }
@media (max-width:1120px){
  .spine{ display:none; }
  .hud{ left:20px; bottom:20px; }
}

/* =====================================================================
   SOUS-PAGES (CONSULTAIR / CLINICAIR)
   ===================================================================== */
.header__logo img{ height:26px; width:auto; display:block; }
body.subpage{ padding-top:var(--header-h); }
body.subpage .spine.on{ opacity:1; }
body.subpage .spine__fill{ height:0; } /* pas de jauge dynamique hors accueil */

.page-hero{ position:relative; overflow:hidden; padding:clamp(70px,14vh,150px) 0 clamp(50px,8vh,90px); display:flex; align-items:flex-end; min-height:56vh; }
.page-hero__bg{ position:absolute; inset:0; z-index:0; }
.page-hero__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.4) grayscale(.3); }
.page-hero::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(14,20,23,.6), rgba(14,20,23,.4) 40%, rgba(14,20,23,.92)); }
.page-hero .wrap{ position:relative; z-index:2; }
/* ---- Registres par division : même structure, traitement différent ---- */
.page-hero--sober .page-hero__bg img{ filter:brightness(.26) grayscale(.7); }
.page-hero--sober::after{ background:linear-gradient(180deg, rgba(14,20,23,.78), rgba(14,20,23,.6) 40%, rgba(14,20,23,.96)); }
.page-hero--visual .page-hero__bg img{ filter:brightness(.33) grayscale(.2) blur(2px); transform:scale(1.03); }
.page-hero--visual::after{ background:linear-gradient(180deg, rgba(14,20,23,.56), rgba(14,20,23,.44) 45%, rgba(14,20,23,.9)); }
.backlink{ display:inline-block; margin-bottom:22px; font-size:.82rem; letter-spacing:.06em; color:var(--fg-soft); transition:color .3s; }
.backlink:hover{ color:var(--teal-lite); }
.page-hero .kicker{ margin-bottom:22px; }
.page-hero h1{ font-size:clamp(3rem,9vw,7rem); text-transform:uppercase; letter-spacing:-.02em; line-height:.95; }
.page-hero h1.page-hero__statement{ font-size:clamp(1.9rem,4.4vw,3.4rem); text-transform:none; letter-spacing:-.01em; line-height:1.18; max-width:20ch; }
.page-hero__name{ line-height:1; }
.page-hero__name img{ width:auto; display:block; }
/* Les deux fichiers logo n'ont pas la même densité d'encre dans leur viewBox
   (CONSULTAIR remplit ~96% de sa hauteur, CLINICAIR seulement ~61%) : à hauteur
   CSS égale, CLINICAIR paraît nettement plus petit. Les valeurs ci-dessous sont
   calibrées (mesure de bounding box réelle du rendu) pour une taille visuelle
   équivalente, avant d'appliquer l'agrandissement de +30% demandé. */
.page-hero__name-img--consultair{ height:clamp(4.68rem,9.75vw,9.36rem); }
/* CLINICAIR : voir l'explication complète juste avant .logo-crop plus bas. */
.page-hero__name .logo-crop--clinicair{ height:clamp(4.68rem,9.75vw,9.36rem); width:clamp(10.34rem,21.55vw,20.69rem); }
.page-hero__name .logo-crop--clinicair img{ height:clamp(7.57rem,15.78vw,15.15rem); }
.page-hero__lead{ margin-top:26px; max-width:56ch; color:var(--fg-soft); font-size:clamp(1.02rem,1.6vw,1.28rem); }

.page-cta{ background:var(--bg-2); border-top:1px solid var(--ink-line); padding:clamp(64px,10vh,120px) 0; }
.page-cta .wrap{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.page-cta h2{ font-size:clamp(1.8rem,4vw,3rem); text-transform:uppercase; letter-spacing:-.02em; }

/* =====================================================================
   SECTIONS  (sol sombre continu, pas de blocs blancs)
   ===================================================================== */
.section{ position:relative; padding:clamp(90px,14vh,190px) 0; }
.section--edge{ background:var(--bg-2); }
.sec-head{ display:grid; gap:20px; max-width:820px; margin-bottom:clamp(48px,7vw,96px); }
.sec-head .num{ font-family:var(--f-display); font-weight:800; font-size:clamp(2.6rem,6vw,4.6rem); color:var(--ink-line); line-height:.8; letter-spacing:-.04em; }
.sec-head h2{ font-size:clamp(2rem,4.6vw,3.5rem); text-transform:uppercase; }

.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:calc(var(--i,0)*.07s); }
.reveal.in{ opacity:1; transform:none; }

/* Le groupe — Groupe CA + deux divisions parallèles */
.divisions{ background:var(--bg); position:relative; overflow:hidden; }
.divisions__intro{ margin-bottom:clamp(40px,6vw,80px); max-width:46ch; }
.divisions__intro .kicker{ margin-bottom:22px; }
.divisions__intro h2{ font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(2rem,5.4vw,4.2rem); line-height:1.04; letter-spacing:-.02em; }
.divisions__intro h2 .g{ color:var(--teal-lite); display:block; }
/* Les accents restent liés au groupe de mots qu'ils colorent, pas à une position de ligne :
   en boîte inline-block, un accent se déplace ENTIER à la ligne suivante s'il ne tient pas,
   plutôt que de se couper au milieu (un mot rejoignant la ligne blanche précédente pendant
   que le reste bascule seul en dessous). Sur desktop, où la composition tient déjà sur la
   ligne prévue, ça ne change rien au rendu déjà approuvé ; ça n'agit qu'au point de rupture
   où le responsive aurait autrement cassé le groupe de façon accidentelle. Si l'accent est
   lui-même trop large pour tenir sur une seule ligne à une largeur donnée, il continue de se
   replier normalement à l'intérieur de sa propre boîte, sans déborder. */
.hl{ color:var(--teal-lite); display:inline-block; }
.hl-off{ color:var(--fg); display:inline-block; }
.divisions__lead{ margin-top:22px; color:var(--fg-soft); font-size:clamp(1rem,1.5vw,1.16rem); max-width:52ch; }

.div-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,22px); }
.div-card{
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column; gap:16px;
  padding:clamp(30px,3.6vw,52px);
  min-height:clamp(340px,36vw,460px);
  border:1px solid var(--ink-line); background:var(--bg-2);
  transition:border-color .45s var(--ease), transform .45s var(--ease);
}
.div-card:hover{ border-color:var(--teal); transform:translateY(-4px); }
.div-card__bg{ position:absolute; inset:0; z-index:-1; opacity:.16; transition:opacity .6s var(--ease); }
.div-card__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.5) grayscale(.2) contrast(1.05); transform:translateY(var(--py,0)) scale(1.08); will-change:transform; }
.div-card:hover .div-card__bg{ opacity:.34; }
.div-card__k{ font-family:var(--f-body); font-weight:600; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--teal-lite); }
.div-card__logo img{ width:auto; display:block; }
.div-card__logo-img--consultair{ height:clamp(3.12rem,5.72vw,4.68rem); }
/* CLINICAIR : le fichier a un fond transparent baké avec une marge interne asymétrique
   (mesurée : ~15% en haut, ~23% en bas, ~7% à gauche, ~14% à droite du viewBox), contrairement
   à CONSULTAIR qui remplit son viewBox à ~96%. Une simple mise à l'échelle agrandit cette marge
   invisible avec le reste, ce qui gonfle les espaces autour du logo et décale le mot-symbole par
   rapport au texte. Solution sans toucher au fichier : agrandir l'image comme avant (pour que
   l'encre visible atteigne la même hauteur que CONSULTAIR), puis la recadrer avec un conteneur
   overflow:hidden + un déplacement en pourcentage (relatif à la taille de l'image elle-même,
   donc valide à toutes les largeurs d'écran) pour ne garder que la zone réellement encrée. */
.logo-crop{ overflow:hidden; display:block; }
.logo-crop img{ display:block; width:auto; max-width:none; transform:translate(-6.89%,-15.2%); }
.div-card__logo .logo-crop--clinicair{ height:clamp(3.12rem,5.72vw,4.68rem); width:clamp(6.9rem,12.64vw,10.34rem); }
.div-card__logo .logo-crop--clinicair img{ height:clamp(5.05rem,9.26vw,7.57rem); }
.div-card__desc{ color:var(--fg-soft); font-size:clamp(.96rem,1.35vw,1.1rem); max-width:34ch; }
.div-card__go{ margin-top:auto; display:flex; align-items:center; gap:12px; color:var(--fg-soft); font-size:.86rem; transition:color .4s var(--ease); }
.div-card__go svg{ width:22px; height:22px; padding:8px; border:1px solid var(--ink-line); border-radius:50%; box-sizing:content-box; transition:.4s var(--ease); }
.div-card__go em{ font-style:normal; letter-spacing:.02em; }
.div-card:hover .div-card__go{ color:var(--fg); }
.div-card:hover .div-card__go svg{ background:var(--teal); color:#04121a; border-color:var(--teal); transform:translateX(3px); }
@media (max-width:760px){ .div-grid{ grid-template-columns:1fr; } .div-card{ min-height:0; } }

/* ---------- Lockup de marque (mark CA + mot-symbole) ---------- */
.brand-lockup{ display:inline-flex; flex-direction:column; align-items:center; gap:.42em; line-height:1; }
.brand-lockup img{ height:3em; width:auto; }
.brand-lockup .bl__word{
  font-family:"Poppins", var(--f-display); font-weight:800; text-transform:uppercase;
  font-size:1em; letter-spacing:-.005em;
}
.brand-lockup .bl__word b{ font-weight:800; color:var(--fg); }
.brand-lockup .bl__word i{ font-style:normal; color:var(--teal); }
.brand-lockup--start{ align-items:flex-start; }

/* =====================================================================
   NOTRE HISTOIRE — associés + récit + clin d'œil (disquette)
   ===================================================================== */

/* --- Les associés --- */
.assoc{ margin:0; }
.assoc__photo{ position:relative; border:1px solid var(--ink-line); overflow:hidden; }
.assoc__photo::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--teal); z-index:2; }
.assoc__photo::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(14,20,23,.10), rgba(14,20,23,0) 22%, rgba(14,20,23,0) 74%, rgba(14,20,23,.34)); }
.assoc__photo img{ width:100%; height:clamp(300px, 42vw, 560px); object-fit:cover; object-position:center 30%; display:block; }
.assoc__names{ position:absolute; left:0; right:0; bottom:0; height:64px; z-index:3; pointer-events:none; }
.assoc__names span{
  position:absolute; bottom:12px; left:var(--x); transform:translateX(-50%);
  font:600 .68rem/1 var(--f-body); letter-spacing:.16em; text-transform:uppercase; color:var(--fg);
  padding:5px 10px; background:rgba(10,14,16,.55); backdrop-filter:blur(3px); white-space:nowrap;
}
@media (max-width:560px){ .assoc__names span{ font-size:.58rem; letter-spacing:.1em; padding:4px 7px; } }
.assoc figcaption{ margin-top:14px; font-size:.82rem; letter-spacing:.02em; color:var(--fg-dim); }

.assoc__bios{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:clamp(36px,5vw,60px); border-top:1px solid var(--ink-line); }
.bio{ padding:26px clamp(18px,2.2vw,32px) 26px 0; border-bottom:1px solid var(--ink-line); }
.bio h3{ font-size:1.5rem; letter-spacing:-.01em; }
.bio__role{ display:block; margin:6px 0 14px; font:600 .68rem/1 var(--f-body); letter-spacing:.2em; text-transform:uppercase; color:var(--teal); }
.bio p{ color:var(--fg-soft); font-size:.94rem; line-height:1.6; }
@media (max-width:820px){ .assoc__bios{ grid-template-columns:1fr; } .bio{ padding-right:0; } }

/* --- Le récit --- */
.recit{ margin-top:clamp(64px,10vh,128px); display:grid; grid-template-columns:clamp(180px,22vw,280px) 1fr; gap:clamp(28px,5vw,72px); }
.recit__kicker{ font:800 clamp(1.4rem,2.6vw,2rem)/1.05 var(--f-display); text-transform:uppercase; letter-spacing:-.02em; color:var(--fg); }
.recit__body{ max-width:64ch; border-left:2px solid var(--teal); padding-left:clamp(22px,3vw,40px); }
.recit__body p{ color:var(--fg-soft); font-size:clamp(1rem,1.4vw,1.12rem); line-height:1.72; margin-bottom:1.35em; }
.recit__body p:first-child{ color:var(--fg); }
.recit__close{ color:var(--fg) !important; font-weight:500; }
@media (max-width:820px){ .recit{ grid-template-columns:1fr; gap:20px; } }

/* --- Clin d'œil : la disquette (déclencheur easter egg) --- */
.origine{ margin:clamp(56px,9vh,110px) 0 0; display:grid; grid-template-columns:300px 1fr; gap:clamp(28px,4vw,56px); align-items:center; max-width:760px; }
.origine__card{
  display:block; width:100%; padding:0; cursor:pointer; position:relative; overflow:hidden;
  aspect-ratio:4/5; border:1px solid #10161a; background:#0a0f11;
  box-shadow:0 34px 80px -36px rgba(0,0,0,.85);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.origine__card::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--teal); z-index:2; }
.origine__slides{ position:absolute; inset:0; }
.origine__slide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; opacity:0; transition:opacity 1.8s ease-in-out; }
.origine__slide.is-active{ opacity:1; }
.origine__card:hover{ transform:translateY(-4px); box-shadow:0 50px 110px -40px rgba(0,0,0,.95); }
.origine__hint{
  position:absolute; top:14px; right:14px; z-index:3;
  font:600 .58rem/1 var(--f-body); letter-spacing:.16em; text-transform:uppercase; color:#2f6a72;
  background:rgba(244,241,233,.92); padding:6px 9px;
  opacity:0; transform:translateY(-4px); transition:.4s var(--ease);
}
.origine__card:hover .origine__hint{ opacity:1; transform:none; }
.origine figcaption{ font-size:.92rem; color:var(--fg-soft); line-height:1.6; }
.origine figcaption b{ color:var(--fg); font-weight:600; }
@media (max-width:640px){ .origine{ grid-template-columns:1fr; gap:22px; } .origine__card{ max-width:300px; } }

/* Liste numérotée (utilisée sur la page CONSULTAIR) */
.philo{ list-style:none; display:grid; gap:2px; border-top:1px solid var(--ink-line); }
.philo li{ display:grid; grid-template-columns:auto 1fr; gap:22px; padding:24px 0; border-bottom:1px solid var(--ink-line); }
.philo__n{ font-family:var(--f-display); font-weight:800; color:var(--teal-lite); font-size:.9rem; }
.philo p{ color:var(--fg-soft); font-size:.98rem; }
.philo p b{ color:var(--fg); font-weight:600; }

/* Easter egg — révélation discrète de l'ancien site */
.egg-modal{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px; }
.egg-modal[hidden]{ display:none; }
.egg-modal__backdrop{ position:absolute; inset:0; background:rgba(6,9,11,.78); backdrop-filter:blur(4px); animation:eggFade .3s var(--ease); }
.egg-modal__win{
  position:relative; width:min(700px,94vw); margin:0; background:#c9c9c2;
  border:1px solid #6f6f68; box-shadow:0 40px 120px -30px rgba(0,0,0,.7);
  animation:eggIn .4s var(--ease); font-family:var(--f-body);
}
@keyframes eggFade{ from{ opacity:0 } } @keyframes eggIn{ from{ opacity:0; transform:translateY(14px) scale(.98) } }
.egg-modal__chrome{ display:flex; align-items:center; gap:7px; padding:7px 10px; background:linear-gradient(#3a5f8f,#2c4a73); color:#fff; font-size:.78rem; }
.egg-modal__chrome span{ width:11px; height:11px; border-radius:2px; background:#d8d8d0; border:1px solid #7a7a72; }
.egg-modal__chrome b{ font-weight:600; letter-spacing:.02em; }
.egg-modal__x{ margin-left:auto; width:20px; height:18px; background:#d8d8d0; border:1px solid #7a7a72; color:#333; font-size:.7rem; line-height:1; }
.egg-modal__screen{ background:#0a0f11; display:grid; max-height:70vh; overflow:auto; }
.egg-modal__screen img{ width:100%; display:block; }
.egg-modal figcaption{ padding:11px 14px; background:#c9c9c2; border-top:1px solid #9a9a92; font-size:.78rem; color:#3a3a34; }
.egg-modal figcaption span{ color:#7a7a72; }

/* ---- Pop-up promotionnel contextuel ---- */
.promo-modal{ position:fixed; inset:0; z-index:300; display:grid; place-items:center; padding:20px; }
.promo-modal[hidden]{ display:none; }
.promo-modal__backdrop{ position:absolute; inset:0; background:rgba(6,9,11,.8); backdrop-filter:blur(6px); animation:eggFade .3s var(--ease); }
.promo-modal__card{
  position:relative; width:min(460px,100%); background:var(--bg-2); border:1px solid var(--ink-line);
  overflow:hidden; animation:eggIn .35s var(--ease); box-shadow:0 30px 90px -20px rgba(0,0,0,.7); max-height:92vh; overflow-y:auto;
}
.promo-modal__x{
  position:absolute; top:14px; right:14px; z-index:2; width:34px; height:34px; border-radius:50%;
  background:rgba(6,9,11,.55); backdrop-filter:blur(4px); color:#fff; font-size:.85rem;
  display:grid; place-items:center; border:1px solid rgba(234,240,241,.2); transition:.3s var(--ease);
}
.promo-modal__x:hover{ background:var(--teal); color:#04121a; border-color:var(--teal); }
.promo-modal__bg{ position:relative; height:180px; }
.promo-modal__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.6); }
.promo-modal__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(14,20,23,0) 45%, var(--bg-2) 100%); }
.promo-modal__body{ padding:6px 28px 28px; }
.promo-modal__badge{
  display:inline-block; margin-bottom:14px; padding:.42em .95em; background:var(--teal); color:#04121a;
  font:800 .72rem/1 var(--f-display); letter-spacing:.05em; text-transform:uppercase; border-radius:100px;
}
.promo-modal__title{ font-size:clamp(1.25rem,3vw,1.55rem); line-height:1.2; margin-bottom:8px; }
.promo-modal__subtitle{ color:var(--fg-soft); font-size:.92rem; line-height:1.5; margin-bottom:20px; }
.promo-modal__prices{ display:flex; align-items:baseline; gap:14px; margin-bottom:22px; flex-wrap:wrap; }
.promo-modal__regular{ color:var(--fg-dim); text-decoration:line-through; font-size:1rem; }
.promo-modal__regular:empty{ display:none; }
.promo-modal__promo{ font:800 2rem/1 var(--f-display); color:var(--teal-lite); }
.promo-modal__btn{ width:100%; justify-content:center; }
@media (max-width:520px){ .promo-modal__bg{ height:140px; } .promo-modal__body{ padding:6px 20px 22px; } }

/* Approche */
.vgrid{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--ink-line); }
.vcard{ padding:clamp(26px,3vw,40px); border-right:1px solid var(--ink-line); background:var(--bg); transition:background .4s var(--ease); }
.vcard:last-child{ border-right:0; }
.vcard:hover{ background:var(--bg-3); }
.vcard .vi{ width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--bg-3); color:var(--teal-lite); margin-bottom:22px; transition:.4s var(--ease); }
.vcard:hover .vi{ background:var(--teal); color:#04121a; }
.vcard .vi svg{ width:20px; height:20px; }
.vcard h3{ font-size:1.12rem; margin-bottom:10px; }
.vcard p{ color:var(--fg-soft); font-size:.94rem; }
.focus-note{ margin-top:32px; padding:26px 30px; border:1px solid var(--ink-line); border-left:2px solid var(--teal); background:var(--bg-2); }
.focus-note strong{ color:var(--teal-lite); }
.focus-note p{ color:var(--fg-soft); font-size:.98rem; max-width:74ch; }

/* Services */
.svc-layout{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,72px); align-items:start; }
.svc-list{ border-top:1px solid var(--ink-line); }
.svc-row{ border-bottom:1px solid var(--ink-line); padding:26px 0; display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center; cursor:pointer; position:relative; transition:padding .4s var(--ease); }
.svc-row::before{ content:""; position:absolute; left:calc(var(--gut)*-1); right:100%; top:-1px; bottom:-1px; background:var(--teal); opacity:.12; transition:right .45s var(--ease); }
.svc-row:hover,.svc-row.active{ padding-left:18px; }
.svc-row:hover::before,.svc-row.active::before{ right:calc(var(--gut)*-1); }
.svc-row__idx{ font-family:var(--f-display); font-weight:800; color:var(--fg-dim); font-size:.9rem; }
.svc-row.active .svc-row__idx{ color:var(--teal-lite); }
.svc-row__name{ font-family:var(--f-display); font-weight:800; font-size:clamp(1.1rem,2vw,1.55rem); text-transform:uppercase; }
.svc-row__price{ font-size:.8rem; color:var(--fg-soft); font-weight:600; white-space:nowrap; }
.svc-row__price b{ color:var(--fg); font-size:1rem; }
.svc-row__body{ grid-column:1/-1; overflow:hidden; max-height:0; opacity:0; transition:max-height .5s var(--ease), opacity .4s var(--ease); }
.svc-row.active .svc-row__body{ max-height:360px; opacity:1; }
.svc-row__body p{ padding-top:14px; color:var(--fg-soft); font-size:.95rem; max-width:52ch; }
.svc-row__body ul{ padding-top:14px; display:flex; flex-wrap:wrap; gap:8px 10px; list-style:none; }
.svc-row__body li{ font-size:.78rem; background:var(--bg-3); color:var(--teal-lite); padding:5px 12px; border-radius:100px; }
.svc-panel{ position:sticky; top:100px; }
.svc-panel__media{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--bg-3); border:1px solid var(--ink-line); }
.svc-panel__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.06); transition:opacity .7s var(--ease), transform 1.2s var(--ease); filter:brightness(.86) contrast(1.05); }
.svc-panel__media img.on{ opacity:1; transform:scale(1); }
.svc-panel__tag{ position:absolute; left:16px; bottom:16px; z-index:2; background:rgba(8,12,14,.6); backdrop-filter:blur(6px); padding:9px 15px; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
.svc-panel__note{ margin-top:16px; font-size:.8rem; color:var(--fg-dim); }
.svc-cta{ margin-top:24px; }

/* Parallaxe / citation */
.cut{ position:relative; overflow:hidden; padding:clamp(120px,20vw,260px) 0; text-align:center; }
.cut__bg{ position:absolute; inset:-10% 0; z-index:0; }
.cut__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.4) grayscale(.3); will-change:transform; }
.cut::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(rgba(14,20,23,.6), rgba(14,20,23,.86)); }
.cut .wrap{ position:relative; z-index:2; }
.cut blockquote{ font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(1.9rem,5vw,3.8rem); line-height:1.05; letter-spacing:-.02em; max-width:22ch; margin:0 auto; }
.cut cite{ display:block; margin-top:24px; font-style:normal; font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-dim); }

/* Processus */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); counter-reset:s; }
.step{ padding-right:32px; position:relative; }
.step::before{ counter-increment:s; content:"0" counter(s); font-family:var(--f-display); font-weight:800; color:var(--teal-lite); font-size:1rem; }
.step::after{ content:""; position:absolute; top:34px; left:0; right:32px; height:1px; background:var(--ink-line); }
.step .tk{ position:absolute; top:28px; left:0; width:10px; height:10px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 5px var(--bg-3); }
.step h3{ margin:22px 0 10px; font-size:1.1rem; }
.step p{ color:var(--fg-soft); font-size:.92rem; }

/* Secteurs */
.sgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.sector{ position:relative; aspect-ratio:3/4; overflow:hidden; display:flex; align-items:flex-end; border:1px solid var(--ink-line); }
.sector img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.62) grayscale(.25); transition:transform 1s var(--ease), filter .6s; transform:translateY(var(--py,0)) scale(1.04); will-change:transform; }
.sector::after{ content:""; position:absolute; inset:0; background:linear-gradient(rgba(14,20,23,0) 35%, rgba(14,20,23,.92)); }
.sector:hover img{ transform:translateY(var(--py,0)) scale(1.09); filter:brightness(.8) grayscale(0); }
.sector__c{ position:relative; z-index:1; padding:20px; }
.sector__c h3{ font-size:1.1rem; text-transform:uppercase; }
.sector__c p{ color:var(--fg-soft); font-size:.83rem; margin-top:6px; }

/* CONSULTAIR */
.consult{ background:var(--bg-2); }
.consult .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,80px); align-items:center; }
.consult h2{ font-size:clamp(1.9rem,4vw,3rem); text-transform:uppercase; }
.consult p{ color:var(--fg-soft); margin:18px 0 28px; max-width:44ch; }
.consult__side{ border:1px solid var(--ink-line); padding:34px; background:var(--bg); }
.consult__side ul{ list-style:none; display:grid; gap:14px; }
.consult__side li{ display:flex; gap:12px; font-size:.94rem; color:var(--fg-soft); }
.consult__side svg{ width:18px; height:18px; color:var(--teal-lite); flex:none; margin-top:3px; }

/* Témoignages */
.tgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.tcard{ border:1px solid var(--ink-line); padding:32px; background:var(--bg-2); }
.tcard .st{ color:var(--teal); letter-spacing:3px; margin-bottom:14px; }
.tcard p{ font-size:.98rem; }
.tcard .who{ margin-top:20px; font-size:.84rem; color:var(--fg-dim); }
.tcard .who b{ display:block; color:var(--fg); font-size:.94rem; }
.ph-badge{ display:inline-flex; gap:8px; align-items:center; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-lite); border:1px solid var(--ink-line); padding:7px 13px; }

/* Contact */
.contact{ background:var(--bg-2); }
.contact .wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(34px,6vw,84px); }
.contact h2{ font-size:clamp(2rem,4.4vw,3.4rem); text-transform:uppercase; }
.contact__intro{ color:var(--fg-soft); margin:18px 0 34px; max-width:40ch; }
.cinfo{ display:flex; gap:16px; margin-bottom:22px; }
.cinfo svg{ width:20px; height:20px; color:var(--teal-lite); flex:none; margin-top:4px; }
.cinfo b{ display:block; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-dim); margin-bottom:3px; }
.cinfo a,.cinfo span{ font-size:1.03rem; }
.form{ background:var(--bg); border:1px solid var(--ink-line); padding:clamp(26px,4vw,44px); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ margin-bottom:16px; }
.field label{ font-size:.74rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--fg-dim); display:block; margin-bottom:7px; }
.field input,.field select,.field textarea{ width:100%; font:inherit; font-size:.94rem; padding:13px 14px; background:var(--bg-2); border:1px solid var(--ink-line); color:var(--fg); border-radius:2px; transition:border-color .3s, background .3s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--teal-lite); background:var(--bg-3); }
.field textarea{ resize:vertical; min-height:110px; }
.form__consent{ display:flex; gap:10px; font-size:.82rem; color:var(--fg-dim); margin:6px 0 18px; }
.form button[type=submit]{ width:100%; justify-content:center; }
.form button[type=submit][disabled]{ opacity:.6; cursor:progress; }
.form__privacy{ margin-top:14px; font-size:.76rem; line-height:1.55; color:var(--fg-dim); text-align:center; }
.form__privacy a{ color:var(--teal-lite); text-decoration:underline; text-underline-offset:2px; }
.form__note{ margin:2px 0 0; font-size:.82rem; line-height:1.55; color:var(--fg-dim); }
/* ---- Pages légales : lisibilité avant tout ---- */
.legal{ padding-top:clamp(120px,18vh,170px); }
.legal__wrap{ max-width:760px; }
.legal h1{ font-size:clamp(2rem,5vw,3.2rem); text-transform:none; letter-spacing:-.02em; line-height:1.1; margin-bottom:14px; }
.legal__meta{ color:var(--fg-dim); font-size:.86rem; margin-bottom:clamp(28px,4vw,44px); }
.legal h2{ font-size:clamp(1.15rem,2.2vw,1.45rem); text-transform:none; letter-spacing:-.01em; margin:clamp(30px,4vw,44px) 0 12px; }
.legal h3{ font-size:1rem; margin:20px 0 8px; color:var(--teal-lite); }
.legal p, .legal li{ color:var(--fg-soft); font-size:1rem; line-height:1.7; }
.legal p{ margin-bottom:14px; }
.legal ul{ margin:0 0 16px 1.2em; padding:0; list-style:disc; }
.legal li{ margin-bottom:6px; }
.legal a{ color:var(--teal-lite); text-decoration:underline; text-underline-offset:2px; }
.legal__card{ margin:18px 0 0; padding:20px 24px; border:1px solid var(--ink-line); border-left:3px solid var(--teal); background:var(--bg-2); }
.legal__card p{ margin-bottom:6px; }
.tbc{ color:#e0b87a; font-weight:600; }
.form__err{ margin-top:14px; font-size:.86rem; color:#e08a7d; text-align:center; }
.form__ok{ display:none; text-align:center; padding:26px 8px; }
.form__ok svg{ width:50px; height:50px; color:var(--teal-lite); margin:0 auto 16px; }
.form.sent .form__fields{ display:none; }
.form.sent .form__ok{ display:block; }

/* Footer */
.footer{ background:#0A0F11; padding:clamp(64px,9vw,110px) 0 38px; color:var(--fg-dim); }
.footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid var(--ink-line); }
.footer__brand svg{ height:40px; margin-bottom:20px; }
.footer__brand .mark__ink{ fill:#EAF0F1; stroke:none; } .footer__brand .mark__teal{ fill:var(--teal-lite); stroke:none; }
.footer__brand p{ font-size:.88rem; max-width:32ch; }
.footer h4{ font-family:var(--f-body); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--fg); margin-bottom:16px; }
.footer ul{ list-style:none; display:grid; gap:10px; }
.footer a:hover{ color:var(--fg); }
.footer__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:24px; font-size:.78rem; }
.footer__legal{ color:var(--fg-dim); }
.footer__social{ display:flex; gap:12px; }
.footer__social a{ width:34px; height:34px; border:1px solid var(--ink-line); border-radius:50%; display:grid; place-items:center; transition:.3s; }
.footer__social a:hover{ background:var(--teal); color:#04121a; border-color:var(--teal); }
.footer__social svg{ width:15px; height:15px; }
.proto-tag{ margin-top:20px; font-size:.7rem; color:#3A464B; }

/* Menu mobile */
.mobile-menu{ position:fixed; inset:0; z-index:110; background:var(--bg); display:flex; flex-direction:column; justify-content:center; padding:0 var(--gut); clip-path:circle(0 at calc(100% - 44px) 44px); transition:clip-path .6s var(--ease); pointer-events:none; }
body.menu-open .mobile-menu{ clip-path:circle(150% at calc(100% - 44px) 44px); pointer-events:auto; }
.mobile-menu a{ font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:2rem; padding:14px 0; border-bottom:1px solid var(--ink-line); opacity:0; transform:translateY(16px); transition:.5s var(--ease); }
body.menu-open .mobile-menu a{ opacity:1; transform:none; }
body.menu-open .mobile-menu a:nth-child(1){ transition-delay:.12s }
body.menu-open .mobile-menu a:nth-child(2){ transition-delay:.17s }
body.menu-open .mobile-menu a:nth-child(3){ transition-delay:.22s }
body.menu-open .mobile-menu a:nth-child(4){ transition-delay:.27s }
body.menu-open .mobile-menu a:nth-child(5){ transition-delay:.32s }
body.menu-open .mobile-menu a:nth-child(6){ transition-delay:.37s }
.mobile-menu .mm-foot{ margin-top:36px; color:var(--teal-lite); font-size:1rem; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1120px){
  .nav,.header__phone{ display:none; }
  .burger{ display:block; }
  .header.is-live{ }
}
@media (max-width:1000px){
  .vgrid{ grid-template-columns:1fr 1fr; }
  .vcard:nth-child(2){ border-right:0; }
  .vcard:nth-child(1),.vcard:nth-child(2){ border-bottom:1px solid var(--ink-line); }
  .steps{ grid-template-columns:1fr 1fr; gap:38px 0; }
  .sgrid{ grid-template-columns:1fr 1fr; }
  .tgrid{ grid-template-columns:1fr; }
  .consult .wrap,.contact .wrap{ grid-template-columns:1fr; }
  .svc-layout{ grid-template-columns:1fr; }
  .svc-panel{ display:none; }
  .footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .vgrid,.steps,.sgrid,.footer__top,.form__row{ grid-template-columns:1fr; }
  .vcard{ border-right:0; border-bottom:1px solid var(--ink-line); }
  .stage__track{ height:245vh; }
}

/* Accessibilité — mouvement réduit : on montre l'état final, sans pin */
@media (prefers-reduced-motion:reduce){
  .stage__track{ height:auto; }
  .stage__vp{ position:relative; height:auto; min-height:100svh; padding:130px 0 90px; flex-direction:column; }
  .layer--bgB,.layer--slab,.stage__cue,.brand-plate{ display:none; }
  .mark-wrap{ position:relative; left:auto; top:auto; transform:none; opacity:1; width:min(58vw,380px); margin:0 auto 26px; clip-path:none; }
  .stage__type{ display:none; }
  .stage__brand{ position:static; opacity:1; transform:none; margin-bottom:44px; }
  .stage__rest{ position:static; opacity:1; transform:none; max-width:none; text-align:center; }
  .stage__rest .cta{ justify-content:center; }
  .reveal{ opacity:1; transform:none; }
}

/* =====================================================================
   CONTENU ADMINISTRABLE — pastilles, cartes de service, blocs libres,
   navigation de secteurs, bloc corporatif temporaire
   ===================================================================== */
.tag-pills{ display:flex; flex-wrap:wrap; align-items:baseline; row-gap:8px; margin-top:16px; }
.tag-pill{
  font:700 .78rem/1.3 var(--f-body); letter-spacing:.16em; text-transform:uppercase;
  color:var(--teal-lite); white-space:nowrap;
}
.tag-pill:not(:last-child){ margin-right:14px; }
.tag-pill:not(:last-child)::after{ content:"·"; margin-left:14px; letter-spacing:0; color:var(--fg-dim); font-weight:400; }
@media (max-width:420px){ .tag-pill{ font-size:.72rem; } .tag-pill:not(:last-child){ margin-right:10px; } .tag-pill:not(:last-child)::after{ margin-left:10px; } }

/* ---- Navigation de secteurs (page CLINICAIR) ---- */
.sector-nav{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:-1px; position:relative; z-index:2; }
.sector-nav__item{
  display:flex; flex-direction:column; gap:10px; padding:26px clamp(18px,2.4vw,30px);
  background:var(--bg-2); border:1px solid var(--ink-line); border-top:2px solid var(--teal);
  transition:background .35s var(--ease), transform .35s var(--ease);
}
.sector-nav__item:hover{ background:var(--bg-3); transform:translateY(-3px); }
.sector-nav__k{ font:600 .68rem/1 var(--f-body); letter-spacing:.2em; text-transform:uppercase; color:var(--fg-dim); }
.sector-nav__name{ font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:clamp(1.2rem,2.2vw,1.6rem); letter-spacing:-.01em; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sector-nav__name svg{ width:18px; height:18px; color:var(--teal-lite); flex:none; transition:transform .35s var(--ease); }
.sector-nav__item:hover .sector-nav__name svg{ transform:translateY(3px); }
@media (max-width:760px){ .sector-nav{ grid-template-columns:1fr; } }

/* ---- Cartes de service (structurées, administrables) ---- */
.offer-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:18px; }
.offer-card{
  display:flex; flex-direction:column; background:var(--bg-2); border:1px solid var(--ink-line);
  overflow:hidden; transition:border-color .35s var(--ease), transform .35s var(--ease);
}
.offer-card:hover{ border-color:rgba(60,128,137,.5); transform:translateY(-3px); }
.offer-card__media{ aspect-ratio:4/3; overflow:hidden; }
.offer-card__media img{ width:100%; height:100%; object-fit:cover; filter:brightness(.82) saturate(.92); }
.offer-card__body{ padding:clamp(18px,2.2vw,26px); display:flex; flex-direction:column; gap:10px; flex:1; }
.offer-card__top{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.offer-card__top h3{ font-size:1.08rem; letter-spacing:-.01em; }
.offer-card__price{ font:700 .82rem/1 var(--f-display); color:var(--teal-lite); white-space:nowrap; }
.offer-card__body p{ color:var(--fg-soft); font-size:.92rem; line-height:1.55; flex:1; }
.offer-card__btn{ align-self:flex-start; margin-top:6px; padding:.7em 1.1em; font-size:.8rem; }

/* ---- Blocs de contenu libres (annonces, offres en développement) ---- */
.content-blocks{ display:grid; gap:14px; margin-top:clamp(28px,4vw,48px); }
.content-block{
  display:grid; grid-template-columns:auto 1fr; gap:0 24px; align-items:center;
  padding:clamp(22px,3vw,34px); background:var(--bg-2); border:1px solid var(--ink-line); border-left:2px solid var(--teal);
}
.content-block__media{ width:120px; aspect-ratio:1; overflow:hidden; }
.content-block__media img{ width:100%; height:100%; object-fit:cover; }
.content-block:not(:has(.content-block__media)){ grid-template-columns:1fr; }
.content-block__body h3{ font-size:1.1rem; margin-bottom:8px; }
.content-block__body p{ color:var(--fg-soft); font-size:.94rem; line-height:1.6; max-width:62ch; }
.content-block__btn{ margin-top:14px; padding:.75em 1.2em; font-size:.82rem; }
@media (max-width:560px){ .content-block{ grid-template-columns:1fr; } .content-block__media{ width:100%; aspect-ratio:16/9; } }

/* ---- Bloc corporatif temporaire (sans photo d'individus) ---- */
.corporate-block{ display:grid; grid-template-columns:auto 1fr; gap:clamp(30px,5vw,64px); align-items:center; }
.corporate-block__mark{ width:clamp(120px,14vw,180px); aspect-ratio:700/429; opacity:.92; }
.corporate-block__mark .mark__ink{ fill:var(--fg); } .corporate-block__mark .mark__teal{ fill:var(--teal-lite); }
.corporate-block__body h3{ font-size:clamp(1.6rem,3.4vw,2.4rem); text-transform:uppercase; margin-bottom:14px; }
.corporate-block__body p{ color:var(--fg-soft); font-size:clamp(1rem,1.4vw,1.14rem); line-height:1.7; max-width:62ch; }

/* ---- Bannière d'accroche vers les forfaits (CONSULTAIR) ---- */
.promo-band{
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:clamp(20px,3vw,40px);
  padding:clamp(30px,3.6vw,48px) clamp(28px,3.4vw,52px);
  background:var(--bg-2); border:1px solid var(--ink-line); border-left:3px solid var(--teal);
}
.promo-band::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(ellipse 60% 100% at 100% 0%, var(--teal-soft), transparent 70%);
}
.promo-band__text{ max-width:640px; }
.promo-band__text .kicker{ margin-bottom:14px; }
.promo-band__text h2{ font-size:clamp(1.5rem,2.8vw,2.2rem); text-transform:none; letter-spacing:-.01em; margin-bottom:12px; }
.promo-band__text p{ color:var(--fg-soft); font-size:clamp(.96rem,1.3vw,1.08rem); max-width:56ch; }
.promo-band__btn{ flex:none; white-space:nowrap; }
.promo-band + .promo-band{ margin-top:18px; }
@media (max-width:640px){ .promo-band{ flex-direction:column; align-items:flex-start; } .promo-band__btn{ width:100%; justify-content:center; } }

/* ---- Forfaits mensuels (CONSULTAIR) ---- */
.forfait-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,26px); align-items:stretch; }
.forfait-card{
  position:relative; display:flex; flex-direction:column;
  padding:clamp(28px,3vw,40px) clamp(24px,2.6vw,32px);
  background:var(--bg-2); border:1px solid var(--ink-line);
  transition:border-color .4s var(--ease), transform .4s var(--ease), background .4s var(--ease);
}
.forfait-card--highlight{ border-color:var(--teal); background:var(--bg-3); transform:translateY(-6px); }
@media (min-width:761px){ .forfait-card--highlight{ z-index:2; } }
.forfait-card__badge{
  align-self:flex-start; margin-bottom:16px; padding:.4em .9em; font:700 .68rem/1 var(--f-body);
  letter-spacing:.12em; text-transform:uppercase; color:#04121a; background:var(--teal-lite);
}
.forfait-card__name{ font-size:clamp(1.2rem,1.8vw,1.5rem); text-transform:uppercase; letter-spacing:-.01em; }
.forfait-card__subtitle{ color:var(--fg); font-size:.94rem; font-weight:600; margin-top:10px; }
.forfait-card__desc{ color:var(--fg-soft); font-size:.9rem; line-height:1.6; margin-top:10px; }
.forfait-card__price{
  margin:22px 0; padding:16px 0; font:800 1.3rem/1 var(--f-display); color:var(--fg);
  border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line);
}
.forfait-card__features{ display:grid; gap:11px; list-style:none; flex:1; margin-bottom:24px; }
.forfait-card__features li{ position:relative; padding-left:26px; color:var(--fg-soft); font-size:.88rem; line-height:1.5; }
.forfait-card__features li::before{
  content:""; position:absolute; left:0; top:.35em; width:14px; height:9px;
  border-left:2px solid var(--teal-lite); border-bottom:2px solid var(--teal-lite); transform:rotate(-45deg);
}
.forfait-card__btn{ justify-content:center; width:100%; margin-top:auto; }
@media (max-width:900px){ .forfait-grid{ grid-template-columns:1fr; } .forfait-card--highlight{ transform:none; } }

/* ---- Mention associée aux prix (discrète, sous la section concernée) ---- */
.price-note{ margin-top:18px; font-size:.78rem; line-height:1.6; color:var(--fg-dim); max-width:76ch; }
.price-note[hidden]{ display:none; }

/* ---- Sélecteur de facturation mensuel / annuel ---- */
.billing-toggle{ display:flex; justify-content:center; margin-bottom:clamp(28px,3.6vw,40px); }
.billing-toggle__group{ display:inline-flex; border:1px solid var(--ink-line); border-radius:100px; padding:4px; gap:4px; background:var(--bg-2); }
.billing-toggle__btn{ padding:.6em 1.4em; border-radius:100px; font:700 .8rem/1 var(--f-body); letter-spacing:.04em; color:var(--fg-soft); transition:background .3s var(--ease), color .3s var(--ease); }
.billing-toggle__btn.is-active{ background:var(--teal); color:#04121a; }
.billing-toggle__save{ margin-left:.6em; font-weight:700; opacity:.85; }

/* ---- Bloc de prix : variante annuelle (même bande, mêmes tokens que le prix mensuel) ---- */
.forfait-card__price--annual{ display:flex; flex-direction:column; gap:6px; }
.forfait-card__price-row{ display:flex; align-items:center; gap:10px; }
.forfait-card__price-old{ color:var(--fg-dim); text-decoration:line-through; font:600 .92rem/1 var(--f-display); }
.forfait-card__price-badge{ padding:.25em .6em; font:700 .68rem/1 var(--f-body); letter-spacing:.06em; color:#04121a; background:var(--teal-lite); }
.forfait-card__price-new{ font:800 1.3rem/1 var(--f-display); color:var(--fg); }

/* ---- Services à la carte (CONSULTAIR) ---- */
.alacarte-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px;
  background:var(--ink-line); border:1px solid var(--ink-line); margin-top:clamp(28px,4vw,44px);
}
.alacarte-card{ padding:clamp(24px,2.8vw,34px); background:var(--bg); transition:background .4s var(--ease); }
.alacarte-card__icon{ width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--bg-3); color:var(--teal-lite); margin-bottom:18px; }
.alacarte-card__icon svg{ width:20px; height:20px; }

/* ---- Chaîne causale (Expertise-conseils) ---- */
.chain{ position:relative; margin:clamp(28px,4vw,44px) 0; padding-left:32px; max-width:64ch; }
.chain::before{ content:""; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:var(--ink-line); }
.chain__item{ position:relative; padding-bottom:clamp(20px,2.6vw,28px); }
.chain__item:last-child{ padding-bottom:0; }
.chain__dot{ position:absolute; left:-32px; top:2px; width:20px; height:20px; border-radius:50%; background:var(--bg-2); border:2px solid var(--teal); }
.chain__item p{ font:700 1.02rem/1.4 var(--f-display); color:var(--fg); }
.chain__item:last-child .chain__dot{ border-color:var(--teal-lite); background:var(--teal-lite); }
.chain__item:last-child p{ color:var(--teal-lite); }
.section-close{ text-align:center; margin-top:clamp(32px,4.6vw,52px); font:800 clamp(1.3rem,2.6vw,1.9rem) var(--f-display); color:var(--fg); }
.alacarte-card:hover{ background:var(--bg-3); }
.alacarte-card h3{ font-size:1.02rem; color:var(--teal-lite); margin-bottom:10px; letter-spacing:-.01em; }
.alacarte-card p{ color:var(--fg-soft); font-size:.9rem; line-height:1.55; }
.alacarte-cta{ margin-top:clamp(28px,4vw,44px); text-align:center; }
.alacarte-cta p{ color:var(--fg-soft); font-size:1.02rem; margin-bottom:18px; }

@media (max-width:700px){ .corporate-block{ grid-template-columns:1fr; text-align:center; } .corporate-block__mark{ margin:0 auto; } }

/* Accessibilité : focus clavier visible + lien d'évitement */
:focus-visible{ outline:2px solid var(--teal-lite); outline-offset:3px; border-radius:2px; }
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{ outline:2px solid var(--teal-lite); outline-offset:1px; }
.skip-link{ position:absolute; left:12px; top:-60px; z-index:200; background:var(--teal); color:#04121a; padding:10px 16px; font-weight:700; border-radius:0 0 8px 8px; transition:top .15s; }
.skip-link:focus{ top:0; }

/* Sélecteur de langue FR | EN : mêmes angles vifs, trait fin et typo que les boutons du site */
.lang-switch{ display:inline-flex; align-items:stretch; border:1px solid rgba(234,240,241,.26); border-radius:2px; overflow:hidden; font-family:var(--f-display); font-weight:800; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; flex:none; }
.lang-switch a{ padding:.85em 1em; color:var(--fg); line-height:1; transition:background .25s var(--ease), color .25s var(--ease); }
.lang-switch a + a{ border-left:1px solid rgba(234,240,241,.26); }
.lang-switch a:hover{ background:rgba(234,240,241,.12); }
.lang-switch a[aria-current="true"]{ background:#EAF0F1; color:#04121a; }
.mobile-menu .lang-switch--mobile{ align-self:flex-start; margin-top:22px; }
.mobile-menu .lang-switch--mobile a{ font-family:var(--f-display); font-size:.85rem; text-transform:uppercase; padding:1em 1.4em; border-bottom:0; opacity:1; transform:none; }
.mobile-menu .lang-switch--mobile a + a{ border-left:1px solid rgba(234,240,241,.26); }
@media (max-width:560px){ .header__aside{ gap:10px; } .lang-switch a{ padding:.8em .75em; } }

/* ===== Offre CONSULTAIR : onglets sobres, clientèles, forfaits, mandat ponctuel, ligne Modalités ===== */
.offer-tabs{ display:flex; gap:clamp(20px,4vw,40px); border-bottom:1px solid var(--ink-line); margin-bottom:clamp(26px,3.4vw,40px); overflow-x:auto; }
.offer-tab{ background:none; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; padding:14px 2px; font:600 clamp(.95rem,1.4vw,1.1rem)/1.2 var(--f-body); color:var(--fg-dim); cursor:pointer; white-space:nowrap; transition:color .25s var(--ease), border-color .25s var(--ease); }
.offer-tab:hover{ color:var(--fg); }
.offer-tab.is-active{ color:var(--fg); border-bottom-color:var(--teal-lite); }
.offer-panel[hidden]{ display:none; }
.offer-panel{ animation:panelIn .35s var(--ease); }
@keyframes panelIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .offer-panel{ animation:none; } }
.offer-intro{ color:var(--fg-soft); max-width:64ch; margin-bottom:26px; font-size:clamp(1rem,1.4vw,1.1rem); line-height:1.6; }
.clienteles{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.cliente{ border:1px solid var(--ink-line); border-top:2px solid var(--teal); background:var(--bg-2); padding:clamp(22px,3vw,34px); display:flex; flex-direction:column; }
.cliente h3{ font-size:clamp(1.2rem,1.9vw,1.5rem); text-transform:none; letter-spacing:-.01em; line-height:1.2; }
.cliente__sub{ margin-top:8px; color:var(--teal-lite); font-size:.92rem; font-weight:600; }
.cliente__list{ list-style:none; display:grid; gap:12px; margin:22px 0 24px; flex:1; }
.cliente__list li{ position:relative; padding-left:22px; color:var(--fg-soft); font-size:.96rem; line-height:1.55; }
.cliente__list li::before{ content:""; position:absolute; left:0; top:.62em; width:8px; height:2px; background:var(--teal-lite); }
.offer .focus-note{ margin-top:22px; }
.unit-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.unit-card{ border:1px solid var(--ink-line); background:var(--bg-2); padding:clamp(22px,3vw,32px); display:flex; flex-direction:column; gap:10px; }
.unit-card__k{ font:600 .85rem/1.2 var(--f-body); color:var(--teal-lite); }
.unit-card h3{ font-size:clamp(1.1rem,1.7vw,1.35rem); text-transform:none; letter-spacing:-.01em; line-height:1.25; }
.unit-card p{ color:var(--fg-soft); font-size:.96rem; line-height:1.65; }
.unit-card__link{ margin-top:auto; padding-top:12px; display:inline-flex; gap:8px; align-items:center; font-weight:600; color:var(--teal-lite); }
.unit-card__link .arw{ transition:transform .3s var(--ease); }
.unit-card__link:hover .arw{ transform:translateX(4px); }
.offer-cta{ margin-top:clamp(26px,3.6vw,40px); padding-top:24px; border-top:1px solid var(--ink-line); display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.offer-cta p{ max-width:58ch; color:var(--fg-soft); font-size:1.02rem; line-height:1.6; }
.offer-cta .btn:hover, .promo-band .btn:hover{ transform:none; box-shadow:none; }
.billing-toggle{ display:flex; margin-bottom:clamp(22px,3vw,32px); }
.billing-toggle__group{ display:inline-flex; border:1px solid var(--ink-line); border-radius:2px; padding:0; gap:0; }
.billing-toggle__btn{ padding:.75em 1.3em; border-radius:0; font:600 .95rem/1.2 var(--f-body); letter-spacing:0; text-transform:none; color:var(--fg-soft); background:transparent; border:0; cursor:pointer; }
.billing-toggle__btn + .billing-toggle__btn{ border-left:1px solid var(--ink-line); }
.billing-toggle__btn:hover{ color:var(--fg); }
.billing-toggle__btn.is-active{ background:var(--bg-4); color:var(--fg); box-shadow:inset 0 -2px 0 var(--teal-lite); }
.forfait-card__was{ margin-top:20px; font:600 1rem/1 var(--f-body); color:var(--fg-dim); }
.forfait-card__was s{ text-decoration-thickness:2px; }
.forfait-card__was + .forfait-card__rate{ margin-top:6px; }
.forfait-card__rate{ font:800 clamp(2.2rem,4vw,3rem)/1 var(--f-display); margin-top:20px; letter-spacing:-.02em; }
.forfait-card__ratenote{ margin-top:10px; color:var(--teal-lite); font-size:.92rem; font-weight:600; }
.forfait-card__line{ margin:18px 0 22px; font-weight:700; font-size:1rem; }
.forfait-card__name{ text-transform:none; font-size:clamp(1.25rem,1.9vw,1.55rem); }
.offer-annual-note{ margin:18px 0 0; padding:14px 18px; border:1px solid var(--ink-line); border-left:3px solid var(--teal); background:var(--bg-2); color:var(--fg-soft); font-size:.94rem; line-height:1.6; max-width:none; }
.offer-annual-note[hidden]{ display:none; }
.overtime{ margin-top:clamp(20px,2.6vw,28px); border:1px solid var(--ink-line); background:var(--bg-2); padding:20px 24px; }
.overtime h3{ font-size:1rem; text-transform:none; letter-spacing:0; margin-bottom:8px; }
.overtime p{ color:var(--fg-soft); font-size:.94rem; line-height:1.65; max-width:70ch; }
.price-note--plain{ margin-top:14px; font-size:.86rem; color:var(--fg-soft); max-width:none; }
.forfait-card__note{ margin-top:auto; padding-top:18px; border-top:1px solid var(--ink-line); }
.forfait-card__note p{ color:var(--fg-soft); font-size:.88rem; line-height:1.55; }
.forfait-card__note .unit-card__link{ padding-top:10px; }
.mod-line{ margin-top:clamp(20px,2.6vw,28px); border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line); }
.mod-line summary{ cursor:pointer; list-style:none; position:relative; padding:16px 44px 16px 2px; font:600 1rem/1.3 var(--f-body); }
.mod-line summary::-webkit-details-marker{ display:none; }
.mod-line summary::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); color:var(--teal-lite); font-size:1.5rem; font-weight:400; }
.mod-line[open] summary::after{ content:"\2212"; }
.mod-line__body{ padding:4px 2px 26px; max-width:860px; }
.mod-line__intro{ color:var(--fg-soft); margin-bottom:14px; font-size:.95rem; }
.mod-dl dt{ font:700 .98rem/1.3 var(--f-display); margin-top:18px; }
.mod-dl dd{ margin:6px 0 0; color:var(--fg-soft); line-height:1.7; font-size:.94rem; max-width:72ch; }
@media (max-width:760px){
  .clienteles,.unit-grid{ grid-template-columns:1fr; }
  .offer-tabs{ gap:18px; }
  .offer-cta{ flex-direction:column; align-items:flex-start; }
  .offer-cta .btn{ width:100%; justify-content:center; }
}
.offer-tabs{ scrollbar-width:none; }
.offer-tabs::-webkit-scrollbar{ display:none; }
.inline-link{ color:var(--teal-lite); text-decoration:underline; text-underline-offset:3px; }
.unit-note{ margin-top:18px; color:var(--fg-dim); font-size:.86rem; }
.finder{ margin:0 0 clamp(20px,2.6vw,28px); }
.finder__q{ font-weight:600; margin-bottom:12px; color:var(--fg); }
.finder__opts{ display:flex; flex-wrap:wrap; gap:8px; }
.finder__opt{ padding:.7em 1.1em; border:1px solid var(--ink-line); border-radius:2px; background:transparent; color:var(--fg-soft); font:600 .94rem/1.2 var(--f-body); cursor:pointer; transition:border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease); }
.finder__opt:hover{ border-color:var(--teal); color:var(--fg); }
.finder__opt.is-on{ border-color:var(--teal); background:var(--bg-3); color:var(--fg); box-shadow:inset 0 -2px 0 var(--teal-lite); }
.finder__res{ margin-top:12px; min-height:1.5em; color:var(--teal-lite); font-weight:600; }
.forfait-card{ cursor:pointer; }
.forfait-card:hover{ border-color:var(--teal); transform:translateY(-4px); }
.forfait-card--highlight:hover{ transform:translateY(-10px); }
.forfait-card.is-suggested{ border-color:var(--teal); }
.forfait-card.is-selected{ border-color:var(--teal-lite); background:var(--bg-3); box-shadow:0 0 0 1px var(--teal-lite); }
.forfait-card:focus-visible{ outline:2px solid var(--teal-lite); outline-offset:3px; }
.forfait-card__tag{ align-self:flex-start; margin-bottom:14px; padding:.4em .8em; font:700 .8rem/1 var(--f-body); color:var(--teal-lite); border:1px solid var(--teal); }
.forfait-card__tagline{ margin-top:8px; color:var(--fg-soft); font-size:.94rem; line-height:1.5; }
.forfait-card__rebate{ position:absolute; top:16px; right:16px; padding:.45em .75em; border:1px solid var(--teal-lite); color:var(--teal-lite); font:800 1rem/1 var(--f-display); background:rgba(60,128,137,.12); }
.forfait-card__saving{ margin:-10px 0 20px; color:var(--teal-lite); font-weight:600; font-size:.92rem; }
.forfait-card__cta{ justify-content:center; margin:0 0 18px; }
.forfait-card__cta:hover{ transform:none; box-shadow:none; }

/* ===== Forfaits : un seul point focal à la fois ===== */
.forfait-card--highlight{ transform:none; border-color:var(--ink-line); background:var(--bg-2); }
.forfait-card--highlight:hover{ transform:translateY(-4px); }
.forfait-grid{ transition:none; }
.forfait-card{ transition:opacity .35s var(--ease), transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease), filter .35s var(--ease); }
.forfait-grid.has-focus .forfait-card:not(.is-focus){ opacity:.45; transform:scale(.975); filter:saturate(.6); }
.forfait-grid.has-focus .forfait-card:not(.is-focus):hover{ opacity:.9; transform:translateY(-2px); filter:none; }
.forfait-card.is-focus{ transform:translateY(-8px) scale(1.025); z-index:3; border:2px solid var(--teal-lite); background:linear-gradient(180deg, rgba(60,128,137,.28), var(--bg-3) 62%); box-shadow:0 34px 80px -34px rgba(60,128,137,.85), 0 0 0 5px rgba(60,128,137,.14); }
.forfait-card.is-focus .forfait-card__rate{ color:#fff; }
@media (max-width:900px){ .forfait-card.is-focus{ transform:scale(1.015); } }
.forfait-card__badge{ border-radius:4px; }

/* ===== Mensuel / Annuel anticipé : gros contour, du flash ===== */
.billing-toggle{ justify-content:center; margin:6px 0 clamp(26px,3.4vw,38px); }
.billing-toggle__group{ border:2px solid var(--teal-lite); border-radius:9px; padding:5px; gap:6px; background:var(--bg-2); box-shadow:0 0 0 5px rgba(60,128,137,.14), 0 18px 50px -20px rgba(60,128,137,.65); }
.billing-toggle__btn{ position:relative; padding:1em 1.9em; border-radius:6px; font:700 clamp(1rem,1.5vw,1.12rem)/1.1 var(--f-body); color:var(--fg-soft); display:inline-flex; align-items:center; gap:.7em; transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
.billing-toggle__btn + .billing-toggle__btn{ border-left:0; }
.billing-toggle__btn:hover{ color:var(--fg); background:var(--bg-3); }
.billing-toggle__btn.is-active{ background:linear-gradient(135deg, var(--teal) 0%, #62b9c4 100%); color:#04121a; box-shadow:0 10px 26px -10px rgba(98,185,196,.9); transform:scale(1.03); }
.billing-toggle__save{ display:inline-block; padding:.3em .6em; border-radius:4px; background:#EAF0F1; color:#04121a; font:800 .8rem/1 var(--f-display); letter-spacing:0; }
.billing-toggle__btn.is-active .billing-toggle__save{ background:#04121a; color:#EAF0F1; }
@keyframes billingNudge{ 0%,100%{ box-shadow:0 0 0 0 rgba(98,185,196,.0); } 50%{ box-shadow:0 0 0 6px rgba(98,185,196,.28); } }
.billing-toggle__btn[data-billing="annual"]:not(.is-active){ animation:billingNudge 2.2s ease-in-out infinite; }
@media (prefers-reduced-motion:reduce){ .billing-toggle__btn[data-billing="annual"]:not(.is-active){ animation:none; } }
@keyframes rebatePop{ 0%{ transform:scale(.4) rotate(-8deg); opacity:0; } 60%{ transform:scale(1.18) rotate(2deg); opacity:1; } 100%{ transform:none; } }
@keyframes rateIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.forfait-card.is-fresh .forfait-card__rebate{ animation:rebatePop .55s var(--ease) both; }
.forfait-card.is-fresh .forfait-card__rate, .forfait-card.is-fresh .forfait-card__was{ animation:rateIn .45s var(--ease) both; }
.forfait-card__rebate{ top:14px; right:14px; padding:.5em .8em; border:2px solid var(--teal-lite); border-radius:6px; background:var(--teal); color:#04121a; font-size:1.05rem; box-shadow:0 10px 24px -12px rgba(98,185,196,.9); }
.forfait-card__saving{ display:inline-block; padding:.45em .8em; margin:-8px 0 20px; border-radius:5px; background:rgba(98,185,196,.16); color:#8fd3dc; font-weight:700; }
.offer-annual-note{ border:2px solid var(--teal); border-left-width:2px; border-radius:7px; background:linear-gradient(135deg, rgba(60,128,137,.28), rgba(60,128,137,.08)); color:var(--fg); font-size:1rem; font-weight:500; padding:18px 22px; }
@media (prefers-reduced-motion:reduce){ .forfait-card.is-fresh *{ animation:none !important; } }

/* ===== Arrondis légers (réglables ici) ===== */
:root{ --r:7px; --r-sm:5px; }
.btn, .btn--line, .content-block__btn{ border-radius:var(--r-sm); }
.field input, .field select, .field textarea{ border-radius:var(--r-sm); }
.div-card, .origine__card, .egg-modal__win, .promo-modal__card, .vgrid, .focus-note, .assoc__photo, .svc-panel__media,
.sector, .consult__side, .tcard, .form, .legal__card, .sector-nav__item, .offer-card, .content-block, .forfait-card,
.promo-band, .cliente, .unit-card, .overtime, .alacarte-grid, .step-card{ border-radius:var(--r); }
.div-card, .vgrid, .assoc__photo, .svc-panel__media, .sector, .promo-modal__card, .egg-modal__win, .alacarte-grid{ overflow:hidden; }
.content-block__media{ border-radius:5px; }
.hud, .lang-switch, .finder__opt, .skip-link{ border-radius:var(--r-sm); }
:focus-visible{ border-radius:4px; }
.finder__opt{ border-radius:var(--r-sm); }
.forfait-card__tag{ border-radius:4px; }
.mod-line{ border-radius:0; }
.page-hero__name img, .logo-crop{ border-radius:0; }

/* ===== Services en lignes dépliables ===== */
.svc-list{ display:grid; gap:0; margin:20px 0 22px; flex:1; border-top:1px solid var(--ink-line); }
.svc-item{ border-bottom:1px solid var(--ink-line); }
.svc-item summary, .svc-item__head{ list-style:none; cursor:pointer; position:relative; display:block; padding:16px 36px 16px 2px; }
.svc-item--flat .svc-item__head{ cursor:default; padding-right:2px; }
.svc-item summary::-webkit-details-marker{ display:none; }
.svc-item summary::after{ content:"+"; position:absolute; right:4px; top:16px; color:var(--teal-lite); font-size:1.4rem; font-weight:400; line-height:1; }
.svc-item[open] summary::after{ content:"\2212"; }
.svc-item summary:hover .svc-item__t{ color:var(--teal-lite); }
.svc-item__t{ display:block; font:700 1rem/1.3 var(--f-display); color:var(--fg); transition:color .25s var(--ease); }
.svc-item__d{ display:block; margin-top:5px; color:var(--fg-dim); font-size:.9rem; line-height:1.5; }
.svc-item__body{ padding:2px 2px 20px; }
.svc-item__body ul{ list-style:none; display:grid; gap:8px; margin:0 0 14px; }
.svc-item__body li{ position:relative; padding-left:18px; color:var(--fg-soft); font-size:.92rem; line-height:1.5; }
.svc-item__body li::before{ content:""; position:absolute; left:0; top:.62em; width:7px; height:2px; background:var(--teal-lite); }
.svc-item__deliv{ margin:0 0 12px; padding:10px 12px; background:rgba(60,128,137,.12); border-radius:var(--r-sm); color:var(--fg); font-size:.9rem; line-height:1.55; }
.svc-item__deliv b{ color:var(--teal-lite); }
.svc-item__note{ margin:0; padding-left:12px; border-left:2px solid var(--ink-line); color:var(--fg-dim); font-size:.86rem; line-height:1.55; }
.mod-group{ margin:30px 0 0; padding-bottom:8px; border-bottom:1px solid var(--ink-line); color:var(--teal-lite); font:700 .95rem/1.2 var(--f-body); }
.mod-group:first-child{ margin-top:6px; }
.mod-dl dd p{ margin:0 0 10px; }
.mod-dl dd ul{ margin:0 0 10px; padding-left:20px; }
.mod-dl dd li{ margin:3px 0; }
/* Les deux blocs de clientèles gardent chacun leur hauteur : ouvrir une ligne n'étire plus l'autre bloc */
.clienteles{ align-items:start; }
/* À l'état neutre (rien d'ouvert), les deux blocs ont la même hauteur; dès qu'une ligne s'ouvre, chacun garde la sienne */
.clienteles:not(:has(.svc-item[open])){ align-items:stretch; }

/* ===== Forfaits : plus d'air entre les éléments, la lueur ne déborde plus sur les boîtes voisines ===== */
.offer-intro{ margin-bottom:clamp(30px,4vw,44px); }
.billing-toggle{ margin:0 0 clamp(32px,4.4vw,48px); }
.finder{ margin:0 0 clamp(36px,5vw,56px); }
.forfait-grid{ padding-top:14px; margin-bottom:clamp(40px,5.4vw,64px); }
.forfait-card.is-focus{ box-shadow:0 22px 44px -30px rgba(60,128,137,.8), 0 0 0 4px rgba(60,128,137,.14); }
.offer-annual-note{ margin:0 0 clamp(26px,3.4vw,36px); }
.overtime{ position:relative; z-index:6; margin-top:0; background:var(--bg-2); }

/* ===== Fenêtre « Nous appeler / Nous envoyer un message » ===== */
.choice-modal{ position:fixed; inset:0; z-index:300; display:grid; place-items:center; padding:20px; }
.choice-modal[hidden]{ display:none; }
.choice-modal__backdrop{ position:absolute; inset:0; background:rgba(6,9,11,.8); backdrop-filter:blur(6px); animation:eggFade .3s var(--ease); }
.choice-modal__card{ position:relative; width:min(480px,100%); background:var(--bg-2); border:1px solid var(--ink-line); border-radius:var(--r); padding:clamp(26px,4vw,36px); box-shadow:0 30px 90px -20px rgba(0,0,0,.7); animation:eggIn .35s var(--ease); max-height:92vh; overflow-y:auto; }
.choice-modal__card h3{ font-size:clamp(1.25rem,2.4vw,1.6rem); text-transform:none; letter-spacing:-.01em; line-height:1.2; padding-right:34px; }
.choice-modal__plan{ margin-top:8px; color:var(--teal-lite); font-weight:600; }
.choice-modal__x{ position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; background:rgba(6,9,11,.55); color:#fff; font-size:.85rem; display:grid; place-items:center; border:1px solid rgba(234,240,241,.2); transition:.3s var(--ease); cursor:pointer; }
.choice-modal__x:hover{ background:var(--teal); color:#04121a; border-color:var(--teal); }
.choice-modal__opts{ display:grid; gap:12px; margin-top:22px; }
.choice-opt{ display:block; padding:18px 20px; border:1px solid var(--ink-line); border-radius:var(--r); background:var(--bg-3); transition:border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease); }
.choice-opt:hover, .choice-opt:focus-visible{ border-color:var(--teal-lite); background:var(--bg-4); transform:translateY(-2px); }
.choice-opt__k{ display:block; font:700 1.05rem/1.2 var(--f-display); color:var(--fg); }
.choice-opt__v{ display:block; margin-top:6px; color:var(--teal-lite); font-weight:600; font-size:.95rem; line-height:1.45; }
#choiceMsg .choice-opt__v{ color:var(--fg-soft); font-weight:400; }

/* ===== CLINICAIR résidentiel ===== */
.res{ display:grid; gap:clamp(30px,4vw,48px); }
.res-sub{ font:700 clamp(1.15rem,1.9vw,1.4rem)/1.2 var(--f-display); text-transform:none; letter-spacing:-.01em; margin-bottom:14px; }
.res-includes__list{ list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; max-width:720px; }
.res-includes__list li{ position:relative; padding-left:26px; color:var(--fg-soft); font-size:.96rem; }
.res-includes__list li::before{ content:""; position:absolute; left:2px; top:.35em; width:12px; height:7px; border-left:2px solid var(--teal-lite); border-bottom:2px solid var(--teal-lite); transform:rotate(-45deg); }
.res-unit__q{ font-weight:600; margin-bottom:12px; }
.res-unit__opts{ display:flex; flex-wrap:wrap; gap:10px; }
.res-unit__btn{ padding:.85em 1.3em; border:1px solid var(--ink-line); border-radius:var(--r-sm); background:var(--bg-2); color:var(--fg-soft); font:600 1rem/1.2 var(--f-body); cursor:pointer; transition:border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease); }
.res-unit__btn:hover{ border-color:var(--teal); color:var(--fg); }
.res-unit__btn.is-on{ border-color:var(--teal-lite); background:var(--bg-3); color:var(--fg); box-shadow:inset 0 -2px 0 var(--teal-lite); }
.res-unit__tag{ margin-left:.5em; padding:.2em .55em; border-radius:4px; background:rgba(98,185,196,.18); color:#8fd3dc; font-size:.82rem; font-weight:700; }
.res-unit__note{ margin-top:12px; color:var(--fg-dim); font-size:.9rem; }
.res-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2.4vw,26px); align-items:stretch; }
.res-card{ display:flex; flex-direction:column; padding:clamp(24px,3vw,34px); background:var(--bg-2); border:1px solid var(--ink-line); border-radius:var(--r); transition:border-color .3s var(--ease), transform .3s var(--ease); }
.res-card:hover{ border-color:var(--teal); transform:translateY(-4px); }
.res-card__name{ font-size:clamp(1.25rem,1.9vw,1.55rem); text-transform:none; letter-spacing:-.01em; }
.res-card__price{ font:800 clamp(2rem,3.6vw,2.7rem)/1 var(--f-display); letter-spacing:-.02em; margin-top:16px; }
.res-card__line{ margin-top:10px; color:var(--teal-lite); font-weight:600; font-size:.92rem; }
.res-card__list{ list-style:none; display:grid; gap:10px; margin:20px 0 24px; flex:1; }
.res-card__list li{ position:relative; padding-left:24px; color:var(--fg-soft); font-size:.93rem; line-height:1.5; }
.res-card__list li::before{ content:""; position:absolute; left:2px; top:.4em; width:11px; height:6px; border-left:2px solid var(--teal-lite); border-bottom:2px solid var(--teal-lite); transform:rotate(-45deg); }
.res-card__cta{ justify-content:center; }
.res-card__cta:hover{ transform:none; box-shadow:none; }
.res-conditions{ margin-top:-12px; color:var(--fg); font-size:.95rem; line-height:1.6; padding:14px 18px; border:1px solid var(--ink-line); border-left:3px solid var(--teal); border-radius:var(--r-sm); background:var(--bg-2); }
.res-ponctuel__card{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:clamp(22px,3vw,32px); border:1px solid var(--ink-line); border-radius:var(--r); background:var(--bg-2); }
.res-ponctuel__card h4{ font-size:clamp(1.1rem,1.7vw,1.35rem); text-transform:none; letter-spacing:-.01em; margin:8px 0 6px; }
.res-ponctuel__card p{ color:var(--fg-soft); }
.res-ponctuel__side{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.res-ponctuel__side .res-card__price{ margin-top:0; }
.res-trust{ padding:clamp(22px,3vw,34px); border:2px solid var(--teal); border-radius:var(--r); background:linear-gradient(135deg, rgba(60,128,137,.24), rgba(60,128,137,.06)); }
.res-trust h3{ font-size:clamp(1.2rem,2vw,1.55rem); text-transform:none; letter-spacing:-.01em; margin-bottom:10px; }
.res-trust p{ color:var(--fg); font-size:1.02rem; line-height:1.65; max-width:70ch; }
.res-steps{ list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:22px; }
.res-step{ display:flex; gap:14px; padding:18px; border:1px solid var(--ink-line); border-radius:var(--r); background:var(--bg-2); }
.res-step__n{ flex:none; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--teal); color:#04121a; font:800 .95rem var(--f-display); }
.res-step b{ display:block; font:700 1rem/1.3 var(--f-display); margin-bottom:4px; }
.res-step p{ color:var(--fg-soft); font-size:.9rem; line-height:1.5; }
.res-why h4{ font:700 1.05rem/1.3 var(--f-display); margin-bottom:6px; }
.res-why p{ color:var(--fg-soft); max-width:70ch; line-height:1.65; }
.res-faq .svc-list{ max-width:860px; margin-top:6px; }
.svc-item__body p{ margin:0; color:var(--fg-soft); font-size:.94rem; line-height:1.65; }
@media (max-width:900px){ .res-grid{ grid-template-columns:1fr; } .res-steps{ grid-template-columns:1fr; } }
@media (max-width:560px){ .res-includes__list{ grid-template-columns:1fr; } .res-unit__btn{ flex:1 1 100%; text-align:left; } }

/* Rappel de la nature des services (aucun service sous licence) */
.scope-note{ padding:18px 22px; border:1px solid var(--ink-line); border-left:3px solid var(--teal-lite); border-radius:var(--r-sm); background:var(--bg-2); margin:0 0 clamp(22px,3vw,32px); }
.scope-note h3{ font:700 1rem/1.3 var(--f-display); text-transform:none; letter-spacing:0; margin-bottom:6px; color:var(--teal-lite); }
.scope-note p{ color:var(--fg); font-size:.96rem; line-height:1.6; max-width:78ch; }
.res .scope-note{ margin:0; }
.forfait-card__rate + .forfait-card__features{ margin-top:20px; }
.res-unit .billing-toggle{ justify-content:flex-start; margin:0 0 14px; }

/* ===== Page CLINICAIR : rythme vertical plus régulier ===== */
#secteurs-nav, #residentiel, #commercial, #industriel, #filtres, #processus{ padding-top:clamp(44px,6vw,68px); padding-bottom:clamp(44px,6vw,68px); }
#filtres .sec-head{ margin-bottom:clamp(22px,3vw,30px); }
.res{ gap:clamp(28px,3.6vw,40px); }
.res .finder{ margin:0; }
.res .billing-toggle{ margin:0 0 14px; }
.res .res-sub{ margin:0 0 -12px; }
.res #mount-res-plans{ margin-bottom:-14px; padding-top:6px; }
.res .price-note{ margin-top:0; }
.res .res-conditions{ margin-top:-14px; }
.sector-nav{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1100px){ .sector-nav{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .sector-nav{ grid-template-columns:1fr; } }
.band-link{ margin-top:12px; font-size:.95rem; }

/* ===== Entrée « Nettoyage résidentiel » du menu : mise en valeur ===== */
.nav a[href$="#residentiel"]{ color:var(--teal-lite); font-weight:600; padding:7px 13px; border:1px solid rgba(98,185,196,.5); border-radius:var(--r-sm); background:rgba(60,128,137,.1); transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.nav a[href$="#residentiel"]::after{ display:none; }
.nav a[href$="#residentiel"]:hover{ background:var(--teal); border-color:var(--teal); color:#04121a; }
.mobile-menu a[href$="#residentiel"]{ color:var(--teal-lite); }

/* ===== Boutons du haut de l'accueil : rangée bien alignée sur téléphone ===== */
@media (max-width:700px){
  .stage__rest .cta{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .stage__rest .cta .btn{ width:100%; justify-content:center; padding-left:1em; padding-right:1em; }
}

/* ===== Questionnaire d'entrée (forfait ou nettoyage ponctuel) ===== */
.res-branch{ display:grid; gap:clamp(28px,3.6vw,40px); }
.res-branch[hidden]{ display:none; }
.res-intent__opts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.res-intent__btn{ display:flex; flex-direction:column; gap:8px; text-align:left; padding:clamp(18px,2.4vw,26px); border:1px solid var(--ink-line); border-radius:var(--r); background:var(--bg-2); color:var(--fg); cursor:pointer; transition:border-color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
.res-intent__btn b{ font:700 clamp(1.05rem,1.7vw,1.3rem)/1.25 var(--f-display); }
.res-intent__btn span{ color:var(--fg-soft); font-size:.94rem; line-height:1.55; }
.res-intent__btn:hover{ border-color:var(--teal); transform:translateY(-3px); }
.res-intent__btn.is-on{ border:2px solid var(--teal-lite); padding:calc(clamp(18px,2.4vw,26px) - 1px); background:linear-gradient(180deg, rgba(60,128,137,.26), var(--bg-3) 70%); box-shadow:0 22px 44px -30px rgba(60,128,137,.8), 0 0 0 4px rgba(60,128,137,.14); }
.res-intent__btn.is-on span{ color:var(--fg); }
.res-footnote{ margin:-8px 0 20px; color:var(--fg-dim); font-size:.86rem; line-height:1.55; max-width:78ch; }
@media (max-width:700px){ .res-intent__opts{ grid-template-columns:1fr; } }

/* ===== Correctifs d'espacement du résidentiel ===== */
.res .res-sub{ margin:0 0 16px; }
.res #res-branch-forfaits > .res-sub{ margin:0 0 -12px; }
.res-includes__list{ margin-top:2px; }
.res-includes__list li{ line-height:1.5; }
.res-unit__q{ margin:0 0 16px; }
.res .res-unit .billing-toggle{ margin:0 0 26px; padding:4px 0; }
.res-unit__note{ margin:0; line-height:1.6; }
.res-intent .res-unit__q{ margin-bottom:16px; }

/* ===== Cartes de divisions : lien étendu + boutons rapides ===== */
.div-card__link{ position:absolute; inset:0; z-index:1; }
.div-card__actions{ position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:8px; }
.div-chip{ display:inline-block; padding:.55em .95em; border:1px solid rgba(234,240,241,.24); border-radius:var(--r-sm); background:rgba(14,20,23,.55); backdrop-filter:blur(4px); color:var(--fg); font:600 .86rem/1.2 var(--f-body); transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.div-chip:hover, .div-chip:focus-visible{ background:var(--teal); border-color:var(--teal); color:#04121a; transform:translateY(-2px); }

/* Boutons rapides des cartes de divisions : masqués en attendant la refonte */
.div-card__actions{ display:none !important; }

/* ===== Résidentiel : services sur mesure ===== */
.res-custom{ display:grid; gap:14px; }
.res .res-custom .res-sub{ margin:0; }
.res-custom__lead{ margin:0; color:var(--fg-soft); max-width:70ch; line-height:1.6; }
.res-custom .offer-grid{ margin-top:10px; }

/* ===== Résidentiel : allègement visuel (moins de cadres empilés) ===== */
.res{ gap:clamp(40px,5vw,60px); }
/* (les boutons de choix : questionnaire, appareil, aide au choix, gardent leur style d'origine) */
/* programme en 3 étapes : texte sur fond de page */
.res-step{ border:0; background:transparent; padding:0; }
/* rappels : texte simple avec un trait d'accent */
.res-conditions{ border:0; border-left:2px solid var(--teal); border-radius:0; background:transparent; padding:2px 0 2px 16px; }
.scope-note{ border:0; border-left:2px solid var(--teal-lite); border-radius:0; background:transparent; padding:2px 0 2px 18px; }
.res-ponctuel__card{ border:0; border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line); border-radius:0; background:transparent; padding-left:2px; padding-right:2px; }
.res-trust{ border:1px solid rgba(60,128,137,.5); background:rgba(60,128,137,.1); }
/* cartes de forfaits : bordure discrète, pas de zoom ni de halo en sélection */
.res .forfait-card{ border-color:rgba(234,240,241,.1); }
.res .forfait-card.is-focus{ transform:translateY(-4px); box-shadow:none; border-width:1px; border-color:var(--teal-lite); }

.res-custom{ scroll-margin-top:96px; }

/* ===== Notre approche : quatre principes numérotés ===== */
.vgrid{ border:0; border-top:1px solid var(--ink-line); counter-reset:pr; gap:0; }
.vcard{ background:transparent; border-right:0; padding:30px 28px 10px 0; counter-increment:pr; }
.vcard + .vcard{ border-left:1px solid var(--ink-line); padding-left:28px; }
.vcard:hover{ background:transparent; }
.vcard .vi{ display:none; }
.vcard::before{ content:counter(pr,decimal-leading-zero); display:block; font:800 clamp(2.4rem,4vw,3.4rem)/1 var(--f-display); color:var(--teal); margin-bottom:20px; }
.vcard h3{ font-size:1.25rem; }
@media (max-width:980px){ .vgrid{ grid-template-columns:1fr 1fr; } .vcard{ border-bottom:1px solid var(--ink-line); padding-bottom:26px; } .vcard + .vcard{ border-left:0; padding-left:0; } .vcard:nth-child(even){ border-left:1px solid var(--ink-line); padding-left:28px; } }
@media (max-width:640px){ .vgrid{ grid-template-columns:1fr; } .vcard:nth-child(even){ border-left:0; padding-left:0; } }

/* ===== Offre CONSULTAIR : menu fixe + blocs à la suite ===== */
.offer-nav{ position:sticky; top:var(--header-h); z-index:60; display:flex; gap:clamp(18px,3vw,38px); margin:0 calc(var(--gut) * -1) clamp(34px,4.4vw,56px); padding:0 var(--gut); background:rgba(14,20,23,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--ink-line); border-top:1px solid var(--ink-line); overflow-x:auto; }
.offer-nav .offer-tab{ display:inline-block; padding:16px 0; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; }
.offer-nav .offer-tab.is-active{ color:var(--fg); border-bottom-color:var(--teal); }
.offer-panel + .offer-panel{ margin-top:clamp(64px,8vw,110px); }
.offer-panel{ scroll-margin-top:calc(var(--header-h) + 70px); }
.offer-head{ margin-bottom:clamp(26px,3.4vw,40px); display:grid; gap:16px; }
.offer-head h2{ font-size:clamp(2rem,4.2vw,3.4rem); text-transform:uppercase; }
.offer-head h2 .hl{ color:var(--teal); }
.offer .billing-toggle{ margin:6px 0 clamp(30px,4vw,46px); }
.forfait-grid{ gap:clamp(18px,2.4vw,30px); }

/* ===== Page CLINICAIR : menu fixe, contenus repliés, commercial centré sur l'appel ===== */
.page-nav{ position:sticky; top:var(--header-h); z-index:60; background:rgba(14,20,23,.94); backdrop-filter:blur(10px); border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line); }
.page-nav .wrap{ display:flex; gap:clamp(18px,3vw,38px); overflow-x:auto; scrollbar-width:none; }
.page-nav .wrap::-webkit-scrollbar{ display:none; }
.page-nav a{ display:inline-block; padding:16px 0; margin-bottom:-1px; border-bottom:2px solid transparent; font:600 clamp(.9rem,1.3vw,1.02rem)/1.2 var(--f-body); color:var(--fg-dim); white-space:nowrap; transition:color .25s var(--ease), border-color .25s var(--ease); }
.page-nav a:hover{ color:var(--fg); }
.page-nav a.is-active{ color:var(--fg); border-bottom-color:var(--teal); }
.page-flow #residentiel, .page-flow #commercial, .page-flow #autres-services, .page-flow #filtres{ scroll-margin-top:calc(var(--header-h) + 60px); padding-top:clamp(56px,7vw,96px); padding-bottom:clamp(56px,7vw,96px); }
.res-more{ border-top:1px solid var(--ink-line); }
.more{ border-bottom:1px solid var(--ink-line); }
.more > summary{ list-style:none; cursor:pointer; padding:18px 44px 18px 2px; position:relative; font:600 1rem/1.3 var(--f-body); }
.more > summary::-webkit-details-marker{ display:none; }
.more > summary::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); color:var(--teal-lite); font-size:1.5rem; font-weight:400; }
.more[open] > summary::after{ content:"\2212"; }
.more > summary:hover{ color:var(--teal-lite); }
.more__b{ padding:4px 2px 28px; display:grid; gap:22px; }
.res-more .mod-line{ margin-top:0; border-top:0; }
.res-more .steps{ margin-top:0; }
.call-band{ display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; padding:clamp(26px,3.6vw,44px) 0; border-top:1px solid var(--ink-line); border-bottom:1px solid var(--ink-line); margin-bottom:clamp(30px,4vw,48px); }
.call-band__tel{ display:block; margin-top:14px; font:800 clamp(2rem,5vw,3.6rem)/1 var(--f-display); color:var(--teal); }
.call-band__tel:hover{ color:var(--fg); }
@media (max-width:760px){ .call-band{ grid-template-columns:1fr; } }
/* services en lignes (commercial, autres services) */
.offer-grid--rows{ display:block; border-top:1px solid var(--ink-line); }
.offer-grid--rows .offer-card{ display:block; background:transparent; border:0; border-bottom:1px solid var(--ink-line); border-radius:0; transform:none; }
.offer-grid--rows .offer-card:hover{ transform:none; border-color:var(--ink-line); }
.offer-grid--rows .offer-card__media{ display:none; }
.offer-grid--rows .offer-card__body{ padding:22px 0; display:grid; grid-template-columns:1fr auto; gap:6px 24px; align-items:baseline; }
.offer-grid--rows .offer-card__top{ display:contents; }
.offer-grid--rows .offer-card__top h3{ font-size:1.1rem; grid-column:1; }
.offer-grid--rows .offer-card__price{ grid-column:2; grid-row:1; font-size:.9rem; }
.offer-grid--rows .offer-card__body p{ grid-column:1; flex:none; }
.offer-grid--rows .offer-card__btn{ grid-column:1; margin-top:8px; }
@media (max-width:640px){ .offer-grid--rows .offer-card__body{ grid-template-columns:1fr; } .offer-grid--rows .offer-card__price{ grid-column:1; grid-row:auto; } }

/* ===== Expertise-conseils : moins de texte d'un coup ===== */
.evol-list{ max-width:860px; margin:0; }
.evol-list .svc-item__t{ font-size:clamp(1.05rem,1.8vw,1.2rem); }
#technologie .vgrid{ grid-template-columns:repeat(2,1fr); border-top:0; gap:0 clamp(24px,4vw,56px); }
#technologie .vcard, #technologie .vcard + .vcard{ border:0; border-top:1px solid var(--ink-line); padding:22px 0 18px; }
#technologie .vcard::before{ font-size:1.5rem; margin-bottom:10px; }
#technologie .vcard h3{ font-size:1.05rem; margin-bottom:6px; }
#technologie .vcard p{ font-size:.92rem; line-height:1.55; }
@media (max-width:560px){ #technologie .vgrid{ grid-template-columns:1fr; } #technologie .vcard:nth-child(even){ padding-left:0; } }

/* ===== Forfaits mensuels : astérisque et calendrier de facturation ===== */
.monthly-notes{ display:grid; gap:22px; margin-top:clamp(22px,3vw,34px); }
.monthly-notes[hidden]{ display:none; }
.monthly-notes__asterisk{ color:var(--fg-dim); font-size:.9rem; line-height:1.65; max-width:96ch; }
.bill-cal{ padding-top:20px; border-top:1px solid var(--ink-line); }
.bill-cal h3{ font:700 1rem/1.3 var(--f-display); margin-bottom:10px; }
.bill-cal ul{ list-style:none; display:grid; gap:6px; }
.bill-cal li{ color:var(--fg-soft); font-size:.95rem; line-height:1.55; padding-left:16px; position:relative; }
.bill-cal li::before{ content:""; position:absolute; left:0; top:.7em; width:7px; height:2px; background:var(--teal); }

/* astérisques des prix : un tiers de la taille du texte */
sup.ast{ font-size:.33em; line-height:0; vertical-align:top; position:relative; top:.12em; margin-left:.12em; font-weight:700; color:var(--teal-lite); }
.monthly-notes{ margin-top:clamp(22px,3vw,34px); display:block; }
.monthly-notes .mod-line__body{ display:grid; gap:22px; }

/* Forfaits : le choix Mensuel / Annuel vient après « Combien d'heures de soutien par mois ? » */
#forfaits .finder{ margin-bottom:clamp(30px,4vw,44px); }
#forfaits .billing-toggle{ margin:0 0 clamp(26px,3.4vw,38px); }

/* ===== Heures supplémentaires : blocs de 5 heures mis en valeur ===== */
.overtime{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(22px,4vw,56px); align-items:center; margin:clamp(34px,4.4vw,52px) 0 clamp(22px,3vw,34px); padding:clamp(24px,3.2vw,40px); border:0; border-left:3px solid var(--teal); border-radius:var(--r); background:linear-gradient(90deg, rgba(60,128,137,.16), rgba(60,128,137,.04)); }
.overtime h3{ font-size:clamp(1.4rem,2.4vw,1.9rem); text-transform:none; letter-spacing:-.015em; margin:12px 0 10px; }
.overtime p{ max-width:56ch; }
.overtime__offer{ text-align:right; display:grid; gap:6px; justify-items:end; }
.overtime__rate{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; justify-content:flex-end; }
.overtime__rate b{ font:800 clamp(2.4rem,4.6vw,3.6rem)/1 var(--f-display); color:var(--fg); }
.overtime__rate s{ color:var(--fg-dim); font-size:1.05rem; }
.overtime__offer p{ color:var(--teal-lite); font-weight:700; font-size:1rem; }
@media (max-width:760px){ .overtime{ grid-template-columns:1fr; } .overtime__offer{ text-align:left; justify-items:start; } .overtime__rate{ justify-content:flex-start; } }

/* ===== Modalités : tout dans une seule ligne dépliante ===== */
.mod-line__body > .monthly-notes{ display:grid; gap:22px; margin:0 0 24px; }
.mod-line__body > .monthly-notes[hidden]{ display:none; }
.mod-line__body > .offer-annual-note{ margin:0 0 18px; }
.mod-line__body > .price-note{ margin:0 0 22px; }

/* ===== CONSULTAIR : plus d'air autour du menu fixe ===== */
#consultair-presentation .offer-nav{ margin-top:clamp(46px,6.4vw,80px); margin-bottom:clamp(56px,7.4vw,96px); }
#consultair-presentation .offer-nav .offer-tab{ padding-top:20px; padding-bottom:20px; }
#consultair-presentation .offer-head{ margin-bottom:clamp(30px,4vw,48px); }

/* ===== Forfaits CONSULTAIR : accents métalliques (Bronze, Argent, Or) au survol, au défilement mobile et à la sélection ===== */

/* palette de chaque forfait : variables seulement, aucun effet visible au repos */
#mount-consultair-forfaits .forfait-card[data-plan="forfait-bronze"]{ --m:#CD8750; --m2:#E8B488; --mdeep:#8F572C; --mg:205,135,80; }
#mount-consultair-forfaits .forfait-card[data-plan="forfait-argent"]{ --m:#C7CFD4; --m2:#EEF2F4; --mdeep:#8996A0; --mg:199,207,212; }
#mount-consultair-forfaits .forfait-card[data-plan="forfait-or"]{ --m:#D9BE8B; --m2:#F1E2BF; --mdeep:#A88F5B; --mg:217,190,139; }
#mount-consultair-forfaits .forfait-card{ --ring:2px; }

/* transitions douces sur tout ce qui change de couleur */
#mount-consultair-forfaits .forfait-card .forfait-card__name, #mount-consultair-forfaits .forfait-card .forfait-card__rate, #mount-consultair-forfaits .forfait-card .forfait-card__ratenote, #mount-consultair-forfaits .forfait-card .forfait-card__line{ transition:color .35s var(--ease); }
#mount-consultair-forfaits .forfait-card .forfait-card__features li::before{ transition:border-color .35s var(--ease); }

/* ---------- SURVOL : contour uniforme (1 px de bordure + anneau = 3 px partout) et accents de couleur ---------- */
@media (hover:hover){
  #mount-consultair-forfaits .forfait-card:hover{
    border:1px solid var(--m);
    box-shadow:0 0 0 var(--ring) var(--m), 0 16px 38px -26px rgba(var(--mg),.55);
  }
  #mount-consultair-forfaits .forfait-card:hover .forfait-card__name{ color:var(--m); }
  #mount-consultair-forfaits .forfait-card:hover .forfait-card__rate{ color:var(--m2); }
  #mount-consultair-forfaits .forfait-card:hover .forfait-card__ratenote{ color:var(--m); }
  #mount-consultair-forfaits .forfait-card:hover .forfait-card__line{ color:var(--m2); }
  #mount-consultair-forfaits .forfait-card:hover .forfait-card__features li::before{ border-color:var(--m); }
  #mount-consultair-forfaits .forfait-card:hover .forfait-card__badge{ background:linear-gradient(135deg, var(--mdeep), var(--m2)); color:#16100a; }
  #mount-consultair-forfaits .forfait-card[data-plan="forfait-or"]:hover .forfait-card__name{ background:linear-gradient(100deg, var(--mdeep) 0%, var(--m2) 45%, var(--m) 65%, var(--mdeep) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
}
/* aperçu fixe du survol (maquette seulement) */
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live){
  border:1px solid var(--m);
  box-shadow:0 0 0 var(--ring) var(--m), 0 16px 38px -26px rgba(var(--mg),.55);
}
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live) .forfait-card__name{ color:var(--m); }
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live) .forfait-card__rate{ color:var(--m2); }
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live) .forfait-card__ratenote{ color:var(--m); }
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live) .forfait-card__line{ color:var(--m2); }
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live) .forfait-card__features li::before{ border-color:var(--m); }
#mount-consultair-forfaits .forfait-card:is(.is-hover, .is-live) .forfait-card__badge{ background:linear-gradient(135deg, var(--mdeep), var(--m2)); color:#16100a; }
#mount-consultair-forfaits .forfait-card[data-plan="forfait-or"]:is(.is-hover, .is-live) .forfait-card__name{ background:linear-gradient(100deg, var(--mdeep) 0%, var(--m2) 45%, var(--m) 65%, var(--mdeep) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }

/* ---------- SÉLECTION (clic ou toucher) : mêmes accents + fond métallique + reflet ---------- */
#mount-consultair-forfaits .forfait-card.is-focus{
  border:1px solid var(--m);
  background:
    linear-gradient(165deg, rgba(var(--mg),.22) 0%, rgba(var(--mg),.09) 42%, rgba(var(--mg),.03) 70%, rgba(var(--mg),.14) 100%),
    var(--bg-3);
  box-shadow:0 0 0 var(--ring) var(--m), 0 28px 56px -28px rgba(var(--mg),.8), inset 0 1px 0 rgba(255,255,255,.14), inset 0 0 60px -30px rgba(var(--mg),.36);
}
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__name{ color:var(--m); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__rate{ color:var(--m2); text-shadow:0 0 26px rgba(var(--mg),.4); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__ratenote{ color:var(--m); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__line{ color:var(--m2); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__features li::before{ border-color:var(--m); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__saving{ background:rgba(var(--mg),.2); color:var(--m2); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__rebate{ border-color:var(--m); background:linear-gradient(135deg, var(--mdeep), var(--m)); color:#16100a; box-shadow:0 10px 24px -12px rgba(var(--mg),.9); }
/* Or Prestige : traitement légèrement supérieur */
#mount-consultair-forfaits .forfait-card[data-plan="forfait-or"].is-focus{
  background:
    linear-gradient(165deg, rgba(var(--mg),.28) 0%, rgba(var(--mg),.10) 42%, rgba(var(--mg),.03) 70%, rgba(var(--mg),.18) 100%),
    var(--bg-3);
  box-shadow:0 0 0 var(--ring) var(--m), 0 32px 64px -28px rgba(var(--mg),.95), inset 0 1px 0 rgba(255,255,255,.2), inset 0 0 70px -28px rgba(var(--mg),.45);
}
#mount-consultair-forfaits .forfait-card[data-plan="forfait-or"].is-focus .forfait-card__name{ background:linear-gradient(100deg, var(--mdeep) 0%, var(--m2) 45%, var(--m) 65%, var(--mdeep) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
#mount-consultair-forfaits .forfait-card[data-plan="forfait-or"].is-focus .forfait-card__badge{ background:linear-gradient(135deg, var(--mdeep), var(--m2)); color:#16100a; }
/* reflet discret, une seule fois, à la sélection (les trois forfaits) */
#mount-consultair-forfaits .forfait-card.is-focus::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:linear-gradient(105deg, transparent 32%, rgba(255,255,255,.2) 50%, transparent 68%); background-size:260% 100%; animation:metalSheen 1.4s var(--ease) 1 both; }
#mount-consultair-forfaits .forfait-card[data-plan="forfait-or"].is-focus::after{ background:linear-gradient(105deg, transparent 32%, rgba(241,226,191,.32) 50%, transparent 68%); background-size:260% 100%; }
@keyframes metalSheen{ from{ background-position:130% 0; opacity:1; } to{ background-position:-40% 0; opacity:0; } }
@media (prefers-reduced-motion:reduce){ #mount-consultair-forfaits .forfait-card.is-focus::after{ animation:none; opacity:0; } }

/* Bouton « Choisir ce forfait » : blanc par défaut, prend la couleur du forfait au survol */
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta{ animation:ctaMetalIn .55s var(--ease) both; transition:background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease); }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta:hover,
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta:focus-visible{
  color:#16100a; border-color:var(--m);
  box-shadow:0 14px 30px -14px rgba(var(--mg),1), inset 0 1px 0 rgba(255,255,255,.42);
  transform:translateY(-2px);
}
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta::after{ background:linear-gradient(135deg, var(--mdeep), var(--m2) 55%, var(--m)); }
@keyframes ctaMetalIn{ from{ opacity:0; transform:translateY(8px) scale(.97); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ #mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta{ animation:none; } }

/* ===== Accueil : cartes des divisions (piste A, éditorial) ===== */
.dvs{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,22px); }
.dv__c{ position:relative; isolation:isolate; min-height:0; padding-top:clamp(68px,5.8vw,84px); display:flex; flex-direction:column; justify-content:flex-end; border:1px solid var(--ink-line); border-radius:var(--r); overflow:hidden; transition:border-color .45s var(--ease); }
.dv__c:hover{ border-color:var(--teal); }
.dv__img{ position:absolute; inset:0; z-index:-2; }
.dv__img img{ width:100%; height:100%; object-fit:cover; filter:brightness(.4) saturate(.8) blur(2.5px); transform:scale(1.08); transition:transform 1.4s var(--ease), filter .8s var(--ease); }
.dv__c:hover .dv__img img{ transform:scale(1.1); filter:brightness(.5) saturate(.9) blur(1.5px); }
.dv__c::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(14,20,23,.45) 0%, rgba(14,20,23,.15) 22%, rgba(14,20,23,.7) 58%, rgba(14,20,23,.94) 100%); }
.dv__top{ position:absolute; top:0; left:0; right:0; display:flex; justify-content:flex-start; padding:clamp(20px,2.4vw,30px) clamp(22px,2.6vw,36px); font:600 .7rem/1 var(--f-body); letter-spacing:.22em; text-transform:uppercase; color:var(--fg); }
.dv__in{ padding:clamp(22px,2.6vw,36px); display:grid; gap:15px; }
.dv__logo{ display:block; margin-bottom:12px; }
.dv__logo img{ height:clamp(3.8rem,6.2vw,5rem); width:auto; }
.dv__logo .logo-crop--clinicair{ height:clamp(3.6rem,5.8vw,4.7rem); width:clamp(8.2rem,13.3vw,10.8rem); }
.dv__logo .logo-crop--clinicair img{ height:clamp(5.8rem,9.4vw,7.6rem); }
.dv__txt{ color:#D3DEE0; max-width:44ch; font-size:clamp(1rem,1.3vw,1.1rem); line-height:1.55; }
.dv__idx{ list-style:none; counter-reset:dvn; border-top:1px solid rgba(234,240,241,.22); margin-top:2px; position:relative; z-index:2; }
.dv__idx li{ counter-increment:dvn; }
.dv__idx li a{ display:grid; grid-template-columns:34px 1fr auto; gap:6px; align-items:center; padding:11px 2px; border-bottom:1px solid rgba(234,240,241,.16); font-weight:600; transition:color .25s var(--ease), padding .3s var(--ease); }
.dv__idx li a::before{ content:counter(dvn, decimal-leading-zero); color:var(--teal); font:700 .8rem var(--f-display); letter-spacing:.06em; }
.dv__idx li a i{ font-style:normal; color:var(--teal); transition:transform .3s var(--ease); }
.dv__idx li a:hover{ color:#fff; padding-left:8px; }
.dv__idx li a:hover i{ transform:translateX(5px); }
.dv__go{ position:relative; z-index:2; justify-self:start; display:inline-flex; gap:12px; align-items:center; padding-top:4px; font:700 .92rem/1 var(--f-body); letter-spacing:.04em; }
.dv__go u{ text-decoration:none; border-bottom:1px solid var(--teal); padding-bottom:5px; }
.dv__go i{ font-style:normal; color:var(--teal); transition:transform .3s var(--ease); }
.dv__c:hover .dv__go i{ transform:translateX(6px); }
.dv__main{ position:absolute; inset:0; z-index:1; }
@media (max-width:900px){ .dvs{ grid-template-columns:1fr; } }

/* ===== Pages CONSULTAIR et CLINICAIR : en-tête compact (la bande rétrécit d'environ un tiers, le logo remonte) ===== */
.page-hero--compact{ min-height:0; padding:clamp(60px,9vh,88px) 0 clamp(42px,6.2vh,60px); align-items:flex-start; }
.page-hero--compact .backlink{ display:inline-block; margin-bottom:20px; }
.page-hero--compact .kicker{ margin-bottom:18px; }
.page-hero--compact .page-hero__name{ margin:0; }
.page-hero--compact .page-hero__name-img--consultair{ height:clamp(4.2rem,8.8vw,8.4rem); }
.page-hero--compact .page-hero__name .logo-crop--clinicair{ height:clamp(4.2rem,8.8vw,8.4rem); width:clamp(9.3rem,19.4vw,18.6rem); }
.page-hero--compact .page-hero__name .logo-crop--clinicair img{ height:clamp(6.8rem,14.2vw,13.6rem); }
@media (max-width:700px){ .page-hero--compact{ padding:68px 0 48px; } }

/* ===== Accueil : texte d'ouverture centré, sans les mots de la jauge (le fil vertical est conservé) ===== */
.hud{ display:none !important; }
.stage__rest{ max-width:none; text-align:center; }
.stage__rest p{ margin-left:auto; margin-right:auto; }
.stage__rest .cta{ justify-content:center; }
.stage__rest .kicker{ justify-content:center; }
.stage__rest .kicker::after{ content:""; width:30px; height:1px; background:currentColor; opacity:.6; }

/* ===== Expertise-conseils : chapitres (texte à gauche, contenu à droite) ===== */
.x-flow{ }
.x-ch{ padding:clamp(64px,8vw,110px) 0; }
.x-ch + .x-ch{ border-top:1px solid var(--ink-line); }
.x-g{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:clamp(30px,6vw,90px); align-items:start; }
.x-side{ position:sticky; top:calc(var(--header-h) + 90px); display:grid; gap:16px; }
.x-n{ font:800 clamp(2.4rem,4vw,3.4rem)/1 var(--f-display); color:var(--teal); }
.x-ch h2{ font-size:clamp(1.6rem,2.8vw,2.3rem); text-transform:uppercase; }
.x-ch h2 .hl{ color:var(--teal); }
.x-lead{ color:var(--fg-soft); max-width:46ch; }
@media (max-width:900px){ .x-g{ grid-template-columns:1fr; } .x-side{ position:static; } }
.x-tabs{ display:flex; gap:clamp(16px,2.4vw,30px); border-bottom:1px solid var(--ink-line); overflow-x:auto; scrollbar-width:none; margin-bottom:26px; }
.x-tabs::-webkit-scrollbar{ display:none; }
.x-tabs button{ padding:14px 0; margin-bottom:-1px; border-bottom:2px solid transparent; font:600 .96rem/1.2 var(--f-body); color:var(--fg-dim); white-space:nowrap; transition:color .25s var(--ease), border-color .25s var(--ease); }
.x-tabs button:hover{ color:var(--fg); }
.x-tabs button.on{ color:var(--fg); border-bottom-color:var(--teal); }
.x-pane{ display:none; }
.x-pane.on{ display:block; animation:xPaneIn .45s var(--ease) both; }
@keyframes xPaneIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .x-pane.on{ animation:none; } }
.x-pane h3{ font-size:clamp(1.25rem,2vw,1.6rem); margin-bottom:12px; }
.x-pane p, .x-body{ color:var(--fg-soft); max-width:62ch; line-height:1.7; }
.x-body{ margin-bottom:14px; }
.x-strong{ color:var(--fg); font-weight:600; }
.x-chain{ list-style:none; margin-bottom:28px; }
.x-chain li{ position:relative; display:grid; grid-template-columns:34px 1fr; gap:16px; padding:0 0 18px; }
.x-chain li::before{ content:""; position:absolute; left:16px; top:34px; bottom:0; width:1px; background:var(--teal); opacity:.5; }
.x-chain li:last-child::before{ display:none; }
.x-chain li b{ display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--teal); color:#fff; font:800 .85rem var(--f-display); }
.x-chain li span{ padding-top:6px; font-weight:600; }
.x-defs{ display:grid; border-top:1px solid var(--ink-line); }
.x-defs.x-two{ grid-template-columns:1fr 1fr; column-gap:clamp(24px,4vw,56px); }
.x-defs > div{ padding:20px 0; border-bottom:1px solid var(--ink-line); }
.x-defs dt{ font:700 1.05rem/1.3 var(--f-display); margin-bottom:8px; }
.x-defs dd{ color:var(--fg-soft); line-height:1.65; }
@media (max-width:760px){ .x-defs.x-two{ grid-template-columns:1fr; } }
.x-note{ margin-top:22px; padding-left:16px; border-left:2px solid var(--teal); color:var(--fg-dim); font-size:.92rem; max-width:62ch; }
.x-note b{ color:var(--fg); font-weight:600; }
.x-cta{ margin-top:34px; padding-top:26px; border-top:1px solid var(--ink-line); }
.x-cta h3{ font-size:1.3rem; margin-bottom:10px; }
.x-cta p{ color:var(--fg-soft); max-width:58ch; margin-bottom:12px; line-height:1.65; }
.x-cta .btn{ margin-top:8px; }
.x-end{ padding:clamp(70px,9vw,120px) 0; text-align:center; border-top:1px solid var(--ink-line); }
.x-end h2{ font-size:clamp(1.8rem,4vw,3.2rem); text-transform:uppercase; }
.x-end h2 em{ font-style:normal; color:var(--teal); display:block; }
.x-end p{ color:var(--fg-soft); max-width:58ch; margin:20px auto 30px; }

/* Menu des chapitres (Expertise-conseils) : sur téléphone, deux rangées, aucun mot coupé */
@media (max-width:760px){
  #expertiseNav .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 8px; overflow:visible; padding-top:4px; padding-bottom:4px; }
  #expertiseNav a{ font-size:.76rem; line-height:1.2; padding:11px 0; text-align:center; white-space:normal; display:flex; align-items:center; justify-content:center; }
}

/* ===== Boutons : même hauteur (bordure transparente sur le bouton plein) et même survol (remplissage teal) ===== */
.btn{ border:1px solid transparent; }
.btn--line{ border:1px solid rgba(234,240,241,.26); }
.btn--line::after{ background:var(--teal); }

/* ===== Boutons : plus de « levée » au survol (les deux restent alignés) ; le bouton à contour se remplit de blanc comme à l'origine ===== */
.btn:hover, .btn--line:hover{ transform:none; }
.btn--line::after{ background:#EAF0F1; }
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta:hover,
#mount-consultair-forfaits .forfait-card.is-focus .forfait-card__cta:focus-visible{ transform:none; }

/* Accueil, ouverture : les deux boutons (Nos divisions, Nous joindre) se remplissent de la même couleur au survol (blanc, sans teal) */
.stage__rest .cta .btn::after{ background:#EAF0F1; }
.stage__rest .cta .btn:hover{ color:#04121a; }
