/* ===================== Homepage V2 : refonte design (octobre 2026) =====================
   Principes : un seul système typographique, titres en romain (l’italique est réservé
   au mot qui défile du hero et aux citations), en-têtes de section alignés à gauche,
   filets plutôt que cartes, alternance de fonds pour rythmer la lecture. */
.v2{--band:clamp(96px,9.4vw,152px);--rule:var(--line-strong)}
.v2 .x-band{position:relative;padding:var(--band) 0;background:var(--paper)}
.v2 .x-white{background:var(--white)}
.v2 .x-dark{background:var(--umber-deep);color:var(--on-dark)}
.v2 .x-dark .lead{color:var(--on-dark-muted)}
.v2 .h2{font-size:clamp(38px,4.3vw,62px);line-height:1.04;letter-spacing:-.022em}
.v2 .lead{font-size:clamp(16.5px,1.2vw,18.5px);line-height:1.62}
.v2 .x-mute{color:var(--taupe)}
.v2 .x-dark .x-mute,.v2 .on-dark .x-mute,.v2 .final .x-mute{color:rgba(245,244,241,.55)}
.v2 .x-em{text-decoration:underline;text-decoration-thickness:.05em;text-underline-offset:.13em;text-decoration-color:var(--line-strong);text-decoration-skip-ink:auto}

/* en-tête de section : titre à gauche, texte à droite, alignés */
.v2 .x-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:22px clamp(40px,6vw,112px);align-items:end;margin-bottom:clamp(48px,5.4vw,84px)}
.v2 .x-head .h2{max-width:15ch}
.v2 .x-head .lead{max-width:48ch}
.v2 .x-head.x-top{align-items:start}
.v2 .x-head.x-top .h2{max-width:14.5ch}
.v2 .x-head.x-top .lead{padding-top:.5em;max-width:54ch}
.v2 .x-link{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;font-size:15px;color:var(--ink);text-decoration:none;padding-bottom:4px;border-bottom:1px solid currentColor;transition:gap .35s var(--ease)}
@media (hover:hover){.v2 .x-link:hover{gap:14px}}
.v2 .x-cta{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-top:clamp(40px,4vw,56px)}
.v2 .x-cta p{font-size:14px;color:var(--subtle)}
.v2 .x-cta-c{justify-content:center}

/* ---------- 1. hero : promesse, texte, repères ---------- */
.v2 .x-hero{min-height:clamp(700px,100svh,960px)}
.v2 .x-hero .hero-body{padding-top:calc(var(--hdr) + 64px);padding-bottom:clamp(28px,3vw,44px)}
.v2 .hero h1.hero-h1{font-size:clamp(46px,6.5vw,102px);line-height:1;letter-spacing:-.025em;max-width:none}
.v2 .x-hero .rule{margin:clamp(34px,3.8vw,54px) 0 clamp(26px,2.8vw,38px)}
.v2 .x-hero-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:24px clamp(40px,7vw,128px);align-items:start}
.v2 .x-hero-sub{font-family:var(--serif);font-size:clamp(24px,2.1vw,32px);line-height:1.2;color:var(--white);max-width:21ch}
.v2 .x-hero-sub span{color:rgba(255,255,255,.58)}
.v2 .x-hero-r{display:flex;flex-direction:column;gap:22px;max-width:560px}
.v2 .x-hero-lead{font-size:clamp(16px,1.2vw,18px);line-height:1.6;color:rgba(255,255,255,.84)}
.v2 .x-hero-cta{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px}
.v2 .x-hero-meta{font-size:13.5px;color:rgba(255,255,255,.64);margin-top:-8px}
.v2 .x-trust{list-style:none;margin:clamp(36px,4vw,56px) 0 0;padding:clamp(20px,2.2vw,26px) 0 0;border-top:1px solid rgba(255,255,255,.16);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.v2 .x-trust li{display:flex;align-items:center;gap:14px;min-width:0}
.v2 .x-ti{flex:none;width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.26);display:flex;align-items:center;justify-content:center;color:var(--white)}
.v2 .x-trust b{display:block;font-weight:500;font-size:15px;line-height:1.35;color:var(--white)}
.v2 .x-trust small{display:block;font-size:13px;line-height:1.4;color:rgba(255,255,255,.62);margin-top:2px}

/* ---------- 3. capital santé : chiffres sur filets ---------- */
.v2 .x-figs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);border-top:1px solid var(--rule)}
.v2 .x-fig{display:flex;flex-direction:column;gap:14px;padding:30px 36px 4px 0}
.v2 .x-fig+.x-fig{border-left:1px solid var(--line);padding-left:36px}
.v2 .x-fig b{font-family:var(--serif);font-weight:400;font-size:clamp(54px,5.2vw,80px);line-height:.92;letter-spacing:-.03em}
.v2 .x-fig p{font-size:15px;line-height:1.55;color:var(--muted);max-width:34ch}
.v2 .x-figq{margin:0;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:30px 0 4px 36px;border-left:1px solid var(--line)}
.v2 .x-figq blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.1vw,31px);line-height:1.24;letter-spacing:-.01em;color:var(--ink)}
.v2 .x-figq figcaption{font-size:13.5px;color:var(--subtle)}

/* ---------- 4. étapes ---------- */
.v2 .s3{border-radius:22px}
@media (min-width:1181px){.v2 .s3{min-height:560px}}
.v2 .s3 h3{font-size:clamp(25px,2.1vw,29px)}
.v2 .s3 .n{border-width:1px;font-size:13px}

/* ---------- 5. ce que nous mesurons ---------- */
.v2 .x-sys{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,5vw,88px);align-items:start}
.v2 .x-sys-l{display:flex;flex-direction:column;gap:26px}
.v2 .x-sys-n{display:flex;align-items:flex-end;gap:22px;padding-bottom:26px;border-bottom:1px solid var(--rule)}
.v2 .x-sys-n b{font-family:var(--serif);font-weight:400;font-size:clamp(88px,8.4vw,132px);line-height:.8;letter-spacing:-.035em}
.v2 .x-sys-n p{font-size:15px;line-height:1.5;color:var(--muted);max-width:26ch;padding-bottom:4px}
.v2 .x-sys-list{list-style:none;margin:-26px 0 0;padding:0}
.v2 .x-sys-list li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 20px;padding:15px 0;border-bottom:1px solid var(--line)}
.v2 .x-sl-h{font-family:var(--serif);font-size:19px;line-height:1.3}
.v2 .x-sl-m{font-size:14px;line-height:1.55;color:var(--muted);padding-top:2px}
.v2 .x-sys-r{position:sticky;top:calc(var(--hdr) + 28px)}
.v2 .x-shot{height:clamp(440px,44vw,640px);border-radius:22px}

/* ---------- 6. tendance ---------- */
.v2 .x-split .split-text{gap:26px}
.v2 .x-split .h2{max-width:15ch}
.v2 .x-split .ui-top .t{font-style:normal;color:var(--subtle)}
/* graphique : la courbe se trace, les bilans apparaissent un à un, l’aire se remplit,
   puis le point repéré passe en ambre et continue de pulser doucement */
.v2 #tendance .tr-lim{opacity:0}
.v2 #tendance .tr-line{stroke-width:2.4;stroke-dasharray:640;stroke-dashoffset:640;transition:none}
.v2 #tendance .tr-area{opacity:0}
.v2 #tendance .tr-dot{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.2);transition:none}
.v2 #tendance .tr-hot{fill:var(--surv)}
.v2 #tendance .tr-ring{stroke:var(--surv);stroke-width:1.6;opacity:0;transform-box:fill-box;transform-origin:center;transition:none}
.v2 #tendance .tr-halo{fill:var(--surv);stroke:none;opacity:0;transform-box:fill-box;transform-origin:center}
.v2 #tendance .tr-flag{opacity:0;transform:translateY(-10px);transition:none}
.v2 #tendance .go .tr-lim{animation:trFade .8s var(--ease) .1s forwards}
.v2 #tendance .go .tr-line{animation:trDraw 1.9s cubic-bezier(.45,.05,.25,1) .3s forwards}
.v2 #tendance .go .tr-area{animation:trFade 1.2s var(--ease) 1.4s forwards}
.v2 #tendance .go .tr-dot{animation:trPop .55s cubic-bezier(.2,.9,.3,1.35) forwards}
.v2 #tendance .go .tr-dot:nth-of-type(1){animation-delay:.3s}
.v2 #tendance .go .tr-dot:nth-of-type(2){animation-delay:.9s}
.v2 #tendance .go .tr-dot:nth-of-type(3){animation-delay:1.5s}
.v2 #tendance .go .tr-dot:nth-of-type(4){animation-delay:2.1s}
.v2 #tendance .go .tr-ring{animation:trRing .6s var(--ease) 1.75s forwards,trBlink 2.4s ease-in-out 2.6s infinite}
.v2 #tendance .go .tr-halo{animation:trPing 2.4s ease-out 2.6s infinite}
.v2 #tendance .go .tr-flag{animation:trFlag .7s cubic-bezier(.2,.9,.3,1.2) 2s forwards}
@keyframes trDraw{to{stroke-dashoffset:0}}
@keyframes trFade{to{opacity:1}}
@keyframes trPop{to{opacity:1;transform:scale(1)}}
@keyframes trRing{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes trBlink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes trPing{0%{opacity:.3;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
@keyframes trFlag{to{opacity:1;transform:none}}

/* ---------- 7. médecin ---------- */
.v2 .x-doc .h2{max-width:14ch}
.v2 .x-doc .shot-stage{border-radius:22px}
.v2 .x-ia{border-radius:22px;border-color:var(--line);box-shadow:0 30px 60px -48px rgba(27,26,24,.4)}
.v2 .x-ia h3 .x-mute{color:var(--taupe)}

/* ---------- 8. coaching : l’équipe, lisible d’un coup d’œil ---------- */
.v2 .x-coach-l{display:flex;flex-direction:column;gap:28px}
.v2 .x-coach-l .h2{max-width:13ch}
.v2 #suivi .stabs{background:var(--mist)}
.v2 #suivi .shot-stage{border-radius:22px}
.v2 .x-team{display:flex;flex-direction:column;gap:14px;padding:clamp(18px,1.8vw,24px);border-radius:20px;background:var(--paper)}
.v2 .x-team-t{font-family:var(--serif);font-size:clamp(20px,1.6vw,23px);line-height:1.25;color:var(--ink);max-width:30ch}
.v2 .x-team-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v2 .x-team-l li{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;background:var(--white);border:1px solid var(--line);min-width:0}
.v2 .x-team-i{flex:none;width:46px;height:46px;border-radius:999px;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center}
.v2 .x-team-l b{display:block;font-weight:600;font-size:15px;line-height:1.3;color:var(--ink)}
.v2 .x-team-l small{display:block;font-size:13px;line-height:1.4;color:var(--subtle);margin-top:3px}

/* ---------- 9. histoires de membres ---------- */
.v2 .x-stories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule)}
/* les trois parties de chaque histoire s’alignent d’une colonne à l’autre */
.v2 .x-story{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:18px;align-content:start;padding:28px 28px 6px 0;min-width:0}
.v2 .x-story+.x-story{border-left:1px solid var(--line);padding-left:28px}
.v2 .x-story-k{justify-self:start;align-self:start;display:inline-flex;align-items:center;font-size:13px;font-weight:500;line-height:1;color:var(--white);background:var(--ink);padding:8px 14px;border-radius:999px}
.v2 .x-story-q{font-family:var(--serif);font-size:clamp(22px,1.75vw,26px);line-height:1.22;letter-spacing:-.005em;color:var(--ink)}
.v2 .x-story-a{align-self:start;display:flex;flex-direction:column;gap:6px;padding-top:16px;border-top:1px solid var(--line)}
.v2 .x-story-a span{font-size:13px;font-weight:600;color:var(--ink)}
.v2 .x-story-a p{font-size:15px;line-height:1.55;color:var(--muted)}

/* ---------- 10. calcul sur fond sombre ---------- */
.v2 .x-dark .roi{margin-top:0}
.v2 .x-dark .roi-calc{background:var(--umber);border:1px solid var(--line-dark);border-radius:22px}
.v2 .x-dark .fund{border-radius:22px;border:0;color:var(--ink)}
.v2 .x-dark sup.fn{opacity:.6}

/* ---------- 11. tarifs : ce que comprend l’adhésion, à côté du prix ---------- */
.v2 .x-price{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,5vw,88px);align-items:start}
.v2 .x-incl{position:sticky;top:calc(var(--hdr) + 28px)}
.v2 .x-incl-t{font-family:var(--serif);font-size:clamp(26px,2.2vw,32px);line-height:1.15;margin-bottom:18px}
.v2 .x-incl ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.v2 .x-incl li{display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.5;color:var(--muted)}
.v2 .x-incl b{font-weight:600;color:var(--ink)}
.v2 .x-incl .ck{flex:0 0 22px;width:22px;height:22px;border-radius:999px;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;margin-top:1px}
.v2 .x-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.v2 .x-plan{display:flex;flex-direction:column;gap:12px;padding:clamp(26px,2.6vw,36px);border-radius:22px;background:var(--white);border:1px solid var(--line);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.v2 .x-plan h3{font-family:var(--serif);font-size:clamp(26px,2.2vw,31px);line-height:1.1}
.v2 .x-plan-d{font-size:15px;line-height:1.5;color:var(--muted);max-width:36ch}
.v2 .x-plan-p{font-family:var(--serif);font-size:clamp(44px,4vw,58px);line-height:1;letter-spacing:-.02em;margin-top:auto;padding-top:14px}
.v2 .x-plan-p .unit{font-family:var(--sans);font-size:15px;letter-spacing:0;margin-left:6px;color:var(--muted)}
.v2 .x-plan-per{font-size:13.5px;color:var(--muted)}
.v2 .x-plan .pill{align-self:flex-start;margin-top:10px}
.v2 .x-plan:last-of-type .pill{margin-top:auto}
.v2 .x-plan-main{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;background:var(--umber-deep);border-color:var(--umber-deep);color:var(--on-dark);padding:clamp(30px,3.2vw,44px)}
.v2 .x-plan-main h3{font-size:clamp(32px,2.8vw,40px)}
.v2 .x-plan-a{display:flex;flex-direction:column;gap:12px;align-self:start}
.v2 .x-plan-main .x-plan-d{color:var(--on-dark-muted)}
.v2 .x-plan-b{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.v2 .x-plan-main .x-plan-p{font-size:clamp(54px,5vw,76px);padding-top:0}
.v2 .x-plan-main .x-plan-p .unit,.v2 .x-plan-main .x-plan-per{color:var(--on-dark-muted)}
.v2 .x-plan-main .pill{margin-top:12px}
.v2 .x-plans-note{grid-column:1/-1;font-size:14px;color:var(--subtle);padding-top:4px}
@media (hover:hover){.v2 .x-plan:not(.x-plan-main):hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(27,26,24,.07)}}

/* ---------- 12. comparatif ---------- */
.v2 #comparatif .cmp{margin-top:0}
.v2 #comparatif .x-head .h2{max-width:16ch}

/* ---------- 13. questions ---------- */
.v2 #questions .sources{margin-top:clamp(56px,6vw,96px)}

/* ---------- 14. contact ---------- */
.v2 .final .h1{letter-spacing:-.025em}

/* ---------- tablette ---------- */
@media (max-width:1180px){
  .v2 .x-stories{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .v2 .x-story:nth-child(3){border-left:0;padding-left:0}
  .v2 .x-sys-list li{grid-template-columns:130px minmax(0,1fr)}
}
@media (max-width:1000px){
  .v2 .x-head,.v2 .x-sys,.v2 .x-price,.v2 .x-hero-row{grid-template-columns:minmax(0,1fr)}
  .v2 .x-head{align-items:start}
  .v2 .x-head.x-top .lead{padding-top:0}
  .v2 .x-sys-r,.v2 .x-incl{position:static}
  .v2 .x-figs{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .v2 .x-figq{grid-column:1/-1;border-left:0;padding-left:0;border-top:1px solid var(--line);margin-top:30px}
  .v2 .x-trust{grid-template-columns:minmax(0,1fr);gap:14px}
}
/* ---------- mobile ---------- */
@media (max-width:760px){
  .v2{--band:84px}
  .v2 .x-hero{min-height:0}
  .v2 .x-hero .hero-body{padding-top:calc(var(--hdr) + 120px)}
  .v2 .hero h1.hero-h1{font-size:clamp(36px,10.6vw,46px)}
  .v2 .x-hero .rule{margin:28px 0 24px}
  .v2 .x-hero-sub{display:none}
  .v2 .x-hero-lead{font-size:16px;color:rgba(255,255,255,.86)}
  .v2 .x-hero-cta .pill{flex:1 1 100%;justify-content:space-between}
  .v2 .x-hero-meta{margin-top:-6px}
  .v2 .x-trust{margin-top:30px}
  .v2 .x-ti{width:38px;height:38px}
  .v2 .x-trust small{display:none}
  .v2 .x-figs{grid-template-columns:minmax(0,1fr)}
  .v2 .x-fig{padding:24px 0 22px}
  .v2 .x-fig+.x-fig{border-left:0;padding-left:0;border-top:1px solid var(--line)}
  .v2 .x-figq{margin-top:0;padding-top:24px}
  .v2 .x-sys-n b{font-size:88px}
  .v2 .x-sys-list li{grid-template-columns:minmax(0,1fr);gap:2px}
  .v2 .x-shot{height:400px}
  .v2 .x-team-l{grid-template-columns:minmax(0,1fr)}
  .v2 .x-stories{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 6px;scroll-padding:0 var(--gutter);scrollbar-width:none;border-top:0}
  .v2 .x-stories::-webkit-scrollbar{display:none}
  .v2 .x-story,.v2 .x-story+.x-story{display:flex;flex-direction:column;flex:0 0 84%;scroll-snap-align:start;border:1px solid var(--line);border-radius:18px;padding:22px;background:var(--white)}
  .v2 .x-story-k{align-self:flex-start}
  .v2 .x-story-a{margin-top:auto}
  .v2 .x-plans{grid-template-columns:minmax(0,1fr)}
  .v2 .x-plan-main{grid-template-columns:minmax(0,1fr)}
  .v2 .x-plan .pill{align-self:stretch;justify-content:space-between}
  .v2 .x-plan .pill-ghost{justify-content:center}
  .v2 .x-cta .pill{flex:1 1 100%;justify-content:space-between}
  .v2 .x-cta-c .pill{flex:0 1 auto}
}
