/* ============================================
   PASCAL COACHING : V2 (direction claire)
   ============================================ */
:root{
  --bg:#FAF7F2;
  --bg-pure:#FFFFFF;
  --bg-warm:#F2EDE4;
  --bg-dark:#111111;
  --ink:#131313;
  --ink-soft:#5C5852;
  --ink-mute:#8A857D;
  --yellow:#FFD60A;
  --yellow-deep:#8A6B00;
  --clay:#8A6B00;   /* jaune Pascal assombri : lisible sur fond clair */
  --line:#E3DDD2;
  --display:'Anton',Impact,sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --r:18px;
  --maxw:1240px;
  /* sert uniquement aux deux hero : ils doivent occuper l'écran.
     Plafond relatif pour qu'un grand écran ne laisse pas de bandes vides. */
  --maxw-wide:min(94vw,1760px);
  --gut:clamp(20px,5vw,48px);
  --sect:clamp(90px,11vw,150px);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px;border-radius:4px}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.section{padding:var(--sect) 0}
.bg-pure{background:var(--bg-pure)}
.bg-warm{background:var(--bg-warm)}
.bg-dark{background:var(--bg-dark);color:#F5F2EC}

/* ---------- Typo ---------- */
h1,h2,h3{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:-.005em;line-height:.94}
h1{font-size:clamp(3rem,7vw,5.7rem)}
h2{font-size:clamp(2.1rem,4.5vw,3.5rem)}
h3{font-size:1.35rem;letter-spacing:.01em}
.it{font-family:var(--serif);font-style:italic;text-transform:none;color:var(--clay);letter-spacing:0}
.bg-dark .it{color:var(--yellow)}
p{color:var(--ink-soft)}
.bg-dark p{color:#BDB8AF}
.lead{font-size:1.1rem;max-width:56ch}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--clay);margin-bottom:20px;
}
.eyebrow::before{content:"";width:6px;height:6px;background:var(--clay);flex:none}
.bg-dark .eyebrow{color:var(--yellow)}
.bg-dark .eyebrow::before{background:var(--yellow)}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;border-radius:999px;
  font-size:.94rem;font-weight:600;letter-spacing:.01em;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s;
  white-space:nowrap;
}
.btn svg{transition:transform .25s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn--dark{background:var(--ink);color:var(--bg)}
.btn--dark:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(19,19,19,.18)}
.btn--yellow{background:var(--yellow);color:var(--ink)}
.btn--yellow:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(19,19,19,.16)}
.btn--line{border:1.5px solid var(--ink);color:var(--ink)}
.btn--line:hover{background:var(--ink);color:var(--bg)}
.bg-dark .btn--line{border-color:rgba(245,242,236,.35);color:#F5F2EC}
.bg-dark .btn--line:hover{background:#F5F2EC;color:var(--ink)}

/* ---------- Nav ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:100;padding:20px 0;transition:all .3s var(--ease)}
.nav.scrolled{background:rgba(250,247,242,.92);backdrop-filter:blur(14px);padding:12px 0;border-bottom:1px solid var(--line)}
.nav__in{max-width:var(--maxw-wide);margin:0 auto;padding-inline:var(--gut);display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:1.28rem;letter-spacing:.02em}
.logo__m{width:36px;height:36px;background:var(--ink);color:var(--yellow);border-radius:9px;display:grid;place-items:center;font-family:var(--body);font-weight:700;font-size:.82rem}
.logo__t span{color:var(--clay)}
.nav__l{display:flex;align-items:center;gap:6px}
.nav__l a{padding:9px 15px;font-size:.92rem;font-weight:500;border-radius:8px;transition:color .2s}
.nav__l a:hover{color:var(--clay)}
.nav__l a.on{color:var(--clay)}
.nav__cta{background:var(--ink);color:var(--bg)!important;padding:11px 22px!important;border-radius:999px!important;margin-left:10px;font-weight:600!important}
.nav__cta:hover{background:var(--clay)}
.burger{display:none;flex-direction:column;gap:5px;padding:8px}
.burger span{width:23px;height:2px;background:var(--ink);transition:.3s var(--ease)}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Nav posée sur le hero sombre : inversion des couleurs tant qu'on n'a pas scrollé */
.nav:not(.scrolled) .logo{color:#fff}
.nav:not(.scrolled) .logo__m{background:var(--yellow);color:var(--ink)}
.nav:not(.scrolled) .logo__t span{color:var(--yellow)}
.nav:not(.scrolled) .nav__l > a{color:#EDEAE4}
.nav:not(.scrolled) .nav__l > a:hover,
.nav:not(.scrolled) .nav__l > a.on{color:var(--yellow)}
.nav:not(.scrolled) .nav__cta{background:var(--yellow);color:var(--ink)!important}
.nav:not(.scrolled) .nav__cta:hover{background:#fff}
.nav:not(.scrolled) .burger span{background:#fff}
@media(max-width:980px){
  /* menu mobile ouvert : fond crème, on remet le texte sombre */
  .nav:not(.scrolled) .nav__l.open > a{color:var(--ink)}
  .nav:not(.scrolled) .nav__l.open > a.on{color:var(--clay)}
}

/* ---------- Hero (image de fond plein cadre) ---------- */
.hero{
  position:relative;min-height:min(96vh,1000px);display:flex;align-items:center;
  padding:clamp(150px,14vw,190px) 0 clamp(56px,6vw,84px);
  color:#fff;overflow:hidden;isolation:isolate;
}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(100deg, rgba(8,8,8,.95) 0%, rgba(8,8,8,.88) 40%, rgba(8,8,8,.74) 66%, rgba(8,8,8,.82) 100%),
    linear-gradient(180deg, rgba(8,8,8,.6) 0%, rgba(8,8,8,.15) 34%, rgba(8,8,8,.45) 100%);
}
/* raccord doux vers la section crème qui suit */
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:-1;
  background:linear-gradient(180deg,transparent,var(--bg));
}
.hero__in{position:relative;width:100%;max-width:var(--maxw-wide);margin-inline:auto;padding-inline:var(--gut)}
.hero .eyebrow{color:var(--yellow);margin-bottom:clamp(20px,2.4vw,32px)}
.hero .eyebrow::before{background:var(--yellow)}

/* titre à gauche · argumentaire + CTA à droite */
.hero__grid{
  display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);
  gap:clamp(36px,4.5vw,84px);align-items:end;
}
.hero h1{
  margin:0;color:#fff;text-shadow:0 2px 26px rgba(0,0,0,.38);
  font-size:clamp(2.7rem,7.3vw,6.9rem);line-height:.9;
}
.hero .it{color:var(--yellow);display:block;margin-top:.06em}
.hero__side{padding-bottom:6px}
.hero__sub{font-size:clamp(1.02rem,1.25vw,1.2rem);max-width:40ch;margin-bottom:30px;color:#EAE7E1;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.hero .btn--yellow{box-shadow:0 14px 34px rgba(0,0,0,.28)}
.hero .btn--line{border-color:rgba(255,255,255,.45);color:#fff}
.hero .btn--line:hover{background:#fff;color:var(--ink)}
.hero__note{display:flex;align-items:center;gap:11px;font-size:.89rem;color:#C9C5BE;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.hero__dot{width:7px;height:7px;border-radius:50%;background:#4ED07B;box-shadow:0 0 0 4px rgba(78,208,123,.22)}

/* bandeau de preuve posé dans le hero */
.hero__stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);
  margin-top:clamp(46px,6vw,80px);padding-top:clamp(24px,2.6vw,34px);
  border-top:1px solid rgba(255,255,255,.18);
}
.hero__stat b{display:block;font-family:var(--display);font-size:clamp(1.7rem,3vw,2.6rem);line-height:1;color:#fff}
.hero__stat b em{font-style:normal;color:var(--yellow)}
.hero__stat span{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:#B3AFA8;text-shadow:0 1px 10px rgba(0,0,0,.5)}

/* ---------- Bande preuve ---------- */
.proof{border-block:1px solid var(--line);padding:34px 0}
.proof__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.proof__i{display:flex;flex-direction:column;gap:3px}
.proof__i b{font-family:var(--display);font-size:clamp(1.7rem,3vw,2.4rem);line-height:1}
.proof__i span{font-size:.79rem;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-mute)}
.proof__i:nth-child(2) b,.proof__i:nth-child(4) b{color:var(--clay)}

/* ---------- À propos ---------- */
.about{overflow:hidden}
.about__grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(40px,6vw,96px);align-items:center}

/* chiffre en filigrane derrière le bloc images */
.about__media{position:relative;padding:0 0 clamp(50px,7vw,88px) 0}
.about__media::before{
  content:"08";position:absolute;left:-.09em;top:-.34em;z-index:0;
  font-family:var(--display);font-size:clamp(9rem,15vw,15rem);line-height:.8;
  color:var(--line);opacity:.55;pointer-events:none;user-select:none;
}

/* cadres : révélation par masque qui s'ouvre */
.about__frame{
  position:relative;z-index:1;overflow:hidden;border-radius:var(--r);
  clip-path:inset(100% 0 0 0);
  transition:clip-path 1.15s cubic-bezier(.22,1,.36,1);
  will-change:clip-path;
}
.about__frame img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.92) contrast(1.04);
  transform:scale(1.12);transition:transform 1.5s cubic-bezier(.22,1,.36,1);
}
.about__media.in .about__frame{clip-path:inset(0 0 0 0)}
.about__media.in .about__frame img{transform:scale(1)}
.about__frame--main{aspect-ratio:4/5}
/* Les photos de Pascal sont verticales : sans point de cadrage,
   "cover" rogne le haut et lui coupe la tete. */
.about__frame--main img{object-position:center 18%}
.about__frame--sec img{object-position:center 28%}
.about__frame--sec{
  position:absolute;right:clamp(-26px,-2vw,-10px);bottom:0;z-index:2;
  width:clamp(140px,42%,230px);aspect-ratio:1/1;
  border:6px solid var(--bg-pure);border-radius:16px;
  box-shadow:0 20px 48px rgba(19,19,19,.16);
  transition-delay:.22s;
}
.about__media.in .about__frame--sec img{transition-delay:.22s}

.about__tag{
  position:absolute;left:clamp(-20px,-1.4vw,-8px);top:26px;z-index:3;
  background:var(--yellow);color:var(--ink);
  padding:11px 17px;border-radius:11px;font-weight:700;font-size:.8rem;letter-spacing:.02em;
  box-shadow:0 10px 26px rgba(19,19,19,.16);
  opacity:0;transform:translateY(-10px) scale(.94);
  transition:opacity .5s var(--ease) .55s,transform .5s cubic-bezier(.34,1.5,.64,1) .55s;
}
.about__media.in .about__tag{opacity:1;transform:none}

.about p+p{margin-top:15px}

/* citation mise en avant */
.about__quote{
  position:relative;margin:26px 0 24px;padding:4px 0 4px 26px;
  border-left:3px solid var(--yellow);
  font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,1.7vw,1.42rem);
  line-height:1.45;color:var(--ink);
}

/* liste en cascade */
.about__list{list-style:none;display:grid;gap:11px;margin:28px 0 32px}
.about__list li{
  display:flex;gap:13px;align-items:flex-start;font-size:.97rem;
  opacity:0;transform:translateX(-14px);
  transition:opacity .55s var(--ease),transform .55s var(--ease);
}
.about__list.in li{opacity:1;transform:none}
.about__list.in li:nth-child(1){transition-delay:.05s}
.about__list.in li:nth-child(2){transition-delay:.15s}
.about__list.in li:nth-child(3){transition-delay:.25s}
.about__list.in li:nth-child(4){transition-delay:.35s}
.about__list b{flex:none;width:23px;height:23px;border-radius:7px;background:var(--yellow);display:grid;place-items:center;font-size:.72rem;margin-top:2px}

/* ---------- Programmes ---------- */
.head{max-width:62ch;margin-bottom:clamp(38px,5vw,60px)}
.head--split{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;max-width:none}
.prog__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.prog{
  background:var(--bg-pure);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  display:flex;flex-direction:column;
}
.prog:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(19,19,19,.1)}
.prog--tall{margin-top:-22px}
.prog__img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:saturate(.9) contrast(1.04)}
.prog--tall .prog__img{aspect-ratio:3/2.35}
.prog__b{padding:26px 24px 28px;display:flex;flex-direction:column;flex:1}
.prog__n{font-size:.74rem;letter-spacing:.14em;color:var(--ink-mute);margin-bottom:9px}
.prog h3{margin-bottom:9px}
.prog p{font-size:.93rem;margin-bottom:18px}
.prog__f{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid var(--line);font-size:.87rem}
.prog__f em{font-style:normal;color:var(--ink-mute)}
.prog__f a{font-weight:600;color:var(--clay);display:inline-flex;align-items:center;gap:6px}
.prog__f a:hover{gap:10px}

/* ---------- Méthode ---------- */
.step{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(20px,4vw,52px);align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}
.step:first-of-type{border-top:1px solid var(--line)}
.step__n{font-family:var(--display);font-size:clamp(2.6rem,6vw,4.4rem);line-height:.8;color:var(--line)}
.step:hover .step__n{color:var(--clay);transition:color .3s}
.step__c h3{margin-bottom:7px}
.step__c p{font-size:.96rem;max-width:62ch}
.step__img{width:112px;height:80px;object-fit:cover;border-radius:12px;filter:saturate(.9)}

/* ---------- Alimentation ---------- */
.nut__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,76px);align-items:center}
.nut__img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r);filter:saturate(.95) contrast(1.02)}
.nut__list{list-style:none;display:grid;gap:13px;margin-top:28px}
.nut__list li{display:flex;gap:14px;padding:16px 18px;background:var(--bg-pure);border:1px solid var(--line);border-radius:13px;transition:transform .28s var(--ease)}
.nut__list li:hover{transform:translateX(5px)}
.nut__list b{display:block;font-size:.95rem;margin-bottom:2px}
.nut__list span{font-size:.87rem;color:var(--ink-soft);line-height:1.55}
.nut__ic{flex:none;width:34px;height:34px;border-radius:10px;background:var(--bg-warm);display:grid;place-items:center;color:var(--clay)}

/* ---------- Stack : cartes qui se déplient au scroll ---------- */
.stack{position:relative}
.stack__sticky{
  position:sticky;top:0;min-height:100svh;display:flex;align-items:center;
  padding:clamp(86px,10vw,120px) 0;
}
.stack__grid{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(34px,4.5vw,76px);align-items:center;width:100%;
}
.stack__left .head{margin-bottom:26px}
.stack__count{
  display:inline-flex;align-items:baseline;gap:6px;margin-top:8px;
  font-family:var(--display);font-size:1.1rem;letter-spacing:.06em;color:var(--ink-mute);
}
.stack__count b{font-size:2rem;color:var(--ink);line-height:1}
.stack__count i{font-style:normal;color:var(--clay)}

.stack__list{display:flex;flex-direction:column;gap:10px}
.scard{
  background:var(--bg-pure);border:1px solid var(--line);border-radius:15px;overflow:hidden;
  transition:border-color .45s var(--ease),box-shadow .45s var(--ease),transform .45s var(--ease);
}
.scard.on{border-color:rgba(255,214,10,.6);box-shadow:0 16px 44px rgba(19,19,19,.11)}
.scard__head{display:flex;align-items:center;gap:16px;padding:17px 22px}
.scard__num{
  font-family:var(--display);font-size:1.45rem;line-height:1;color:var(--line);
  transition:color .4s var(--ease);flex:none;
}
.scard.on .scard__num{color:var(--clay)}
.scard__t{font-family:var(--display);font-size:clamp(1.1rem,1.5vw,1.42rem);letter-spacing:.02em;flex:1}
.scard__dot{
  flex:none;width:9px;height:9px;border-radius:50%;background:var(--line);
  transition:background .4s var(--ease),transform .4s var(--ease);
}
.scard.on .scard__dot{background:var(--yellow);transform:scale(1.35)}
.scard__body{
  display:grid;grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows .6s var(--ease),opacity .45s var(--ease);
}
.scard.on .scard__body{grid-template-rows:1fr;opacity:1}
.scard__inner{overflow:hidden;min-height:0}
.scard__media{
  position:relative;height:clamp(170px,25vh,255px);overflow:hidden;margin:0 14px;border-radius:11px;
}
.scard__media img{
  width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.04);
  transform:scale(1.14);transition:transform 1.1s var(--ease);
}
.scard.on .scard__media img{transform:scale(1)}
.scard__p{padding:15px 22px 20px;font-size:.95rem;color:var(--ink-soft);line-height:1.6}

/* barre de progression du stack */
.stack__bar{height:3px;background:var(--line);border-radius:99px;margin-top:22px;overflow:hidden}
.stack__bar i{display:block;height:100%;width:0;background:var(--yellow);transition:width .4s var(--ease)}

/* sans JS / animations réduites : tout est ouvert */
.no-js .scard__body,
.stack--static .scard__body{grid-template-rows:1fr;opacity:1}

/* ---------- Résultats ---------- */
.res__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.res{background:var(--bg-pure);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.res__ph{
  aspect-ratio:3/2;display:grid;grid-template-columns:1fr 1fr;
  background:var(--bg-warm);
}
/* Les montages avant/apres de Pascal contiennent deja les deux etats :
   une seule image par carte, affichee entiere (contain) pour ne rien couper. */
.res__ph--img{display:block;aspect-ratio:4/5;background:#141414}
.res__ph--img img{width:100%;height:100%;object-fit:contain;display:block}
.res__half{display:grid;place-items:center;gap:6px;text-align:center;padding:12px;border-right:1px solid var(--line)}
.res__half:last-child{border-right:0;background:rgba(255,214,10,.07)}
.res__half i{font-style:normal;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.res__half svg{color:var(--line)}
.res__b{padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.res__b b{font-size:.95rem}
.res__b em{font-style:normal;font-weight:600;font-size:.89rem;color:var(--clay)}
.res__note{margin-top:26px;font-size:.87rem;color:var(--ink-mute);text-align:center}

/* ---------- CTA ---------- */
.cta{text-align:center}
.cta h2{margin-bottom:18px}
.cta p{max-width:52ch;margin:0 auto 32px;font-size:1.06rem}
.cta__b{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.cta__n{margin-top:24px;font-size:.85rem;color:#8F8A81}

/* ---------- Footer ---------- */
.foot{background:var(--bg-dark);color:#F5F2EC;padding:clamp(56px,7vw,80px) 0 0}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:38px;padding-bottom:46px}
.foot .logo__m{background:var(--yellow);color:var(--ink)}
.foot .logo__t span{color:var(--yellow)}
.foot p{font-size:.9rem;margin-top:15px;color:#A9A49B}
.foot h4{font-family:var(--display);font-size:1.02rem;letter-spacing:.06em;color:var(--yellow);margin-bottom:15px}
.foot ul{list-style:none;display:grid;gap:9px}
.foot li,.foot a{font-size:.89rem;color:#A9A49B}
.foot a:hover{color:var(--yellow)}
.foot__bot{border-top:1px solid rgba(245,242,236,.1);padding:20px 0;font-size:.83rem;color:#7D786F;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ---------- Reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  /* "fixed" + "top:100%" placait le menu a 100% de la hauteur de l'ECRAN,
     donc juste en dessous : il etait invisible et les autres pages
     inaccessibles. En "absolute", le 100% se compte a partir de la barre
     de navigation, le menu se deroule donc juste sous elle. */
  .nav__l{
    position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:3px;
    background:rgba(250,247,242,.985);backdrop-filter:blur(16px);padding:24px var(--gut);
    border-top:1px solid var(--line);transform:translateY(-14px);opacity:0;pointer-events:none;transition:.3s var(--ease);
  }
  .nav__l.open{transform:none;opacity:1;pointer-events:auto}
  .nav__l a{padding:13px 15px}
  .nav__cta{margin-left:0;margin-top:9px;text-align:center}
  .burger{display:flex}
  .about__grid,.nut__grid,.stack__grid{grid-template-columns:1fr}
  .stack__sticky{position:static;min-height:0;padding:var(--sect) 0}
  .stack__list{margin-top:28px}
  .hero__grid{grid-template-columns:1fr;gap:34px;align-items:start}
  .hero__stats{grid-template-columns:repeat(2,1fr);gap:26px 20px}
  .about__media{max-width:440px}
  .about__media::before{font-size:8rem}
  .prog__grid,.res__grid{grid-template-columns:repeat(2,1fr)}
  .prog--tall{margin-top:0}
  .head--split{flex-direction:column;align-items:flex-start}
  .foot__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .prog__grid,.res__grid{grid-template-columns:1fr}
  .step{grid-template-columns:auto 1fr;gap:18px}
  .step__img{display:none}
  .foot__grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
  .about__frame{clip-path:none!important}
  .about__frame img{transform:none!important}
  .about__tag{opacity:1!important;transform:none!important}
  .about__list li{opacity:1!important;transform:none!important}
}

/* ═══════════════════════════════════════════
   PAGES INTERNES
   ═══════════════════════════════════════════ */

/* ---------- Hero de page (Programme / Contact) ---------- */
.phero{
  position:relative;display:flex;align-items:flex-end;
  min-height:min(70vh,640px);padding:clamp(150px,15vw,185px) 0 clamp(84px,8vw,112px);
  color:#fff;overflow:hidden;isolation:isolate;
}
.phero__bg{position:absolute;inset:0;z-index:-2}
.phero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
/* La photo de Pascal est verticale : cadree au milieu, on ne voyait que ses
   jambes. On remonte le point de cadrage pour avoir le visage. */
.phero__bg img[src*="pascal-cordes"]{object-position:center 20%}
.phero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(8,8,8,.93) 0%,rgba(8,8,8,.84) 42%,rgba(8,8,8,.7) 100%),
    linear-gradient(180deg,rgba(8,8,8,.6) 0%,transparent 40%,rgba(8,8,8,.5) 100%);
}
.phero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;z-index:-1;background:linear-gradient(180deg,transparent,var(--bg))}
.phero__in{position:relative;width:100%;max-width:var(--maxw-wide);margin-inline:auto;padding-inline:var(--gut)}
.phero .eyebrow{color:var(--yellow);margin-bottom:16px}
.phero .eyebrow::before{background:var(--yellow)}
.phero h1{color:#fff;font-size:clamp(2.6rem,6.2vw,5.2rem);line-height:.92;margin-bottom:18px;text-shadow:0 2px 24px rgba(0,0,0,.4)}
.phero .it{color:var(--yellow)}
.phero__lead{max-width:46ch;color:#E4E1DB;font-size:clamp(1rem,1.2vw,1.14rem);text-shadow:0 1px 12px rgba(0,0,0,.5)}

/* Composition deux colonnes : le titre occupe la gauche, le texte la droite.
   Sans ça le bloc reste centré et laisse du vide des deux côtés. */
.phero__grid{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(28px,4.5vw,76px);align-items:end;width:100%;
}
.phero__l{min-width:0}
.phero__r{min-width:0;padding-bottom:6px}
.phero h1{margin-bottom:0}
.phero__pts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.phero__pts li{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 13px;border:1px solid rgba(255,255,255,.22);border-radius:999px;
  background:rgba(255,255,255,.06);backdrop-filter:blur(6px);
  font-size:.79rem;letter-spacing:.03em;color:#EDEAE4;white-space:nowrap;
}
.phero__pts li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--yellow);flex:none}
@media (max-width:900px){
  .phero__grid{grid-template-columns:1fr;gap:20px;align-items:start}
  .phero__r{padding-bottom:0}
  .phero h1{margin-bottom:4px}
}
.phero__crumb{margin-bottom:auto;font-size:.8rem;color:#A8A49D;letter-spacing:.04em}
.phero__crumb a{color:#CFCBC4}
.phero__crumb a:hover{color:var(--yellow)}

/* ---------- Bloc "ce qui est inclus" ---------- */
.incl{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}
.incl__i{
  display:flex;gap:14px;align-items:flex-start;padding:19px 20px;
  background:var(--bg-pure);border:1px solid var(--line);border-radius:13px;
  transition:transform .3s var(--ease),border-color .3s var(--ease);
}
.incl__i:hover{transform:translateY(-3px);border-color:rgba(255,214,10,.5)}
.incl__ic{flex:none;width:34px;height:34px;border-radius:10px;background:var(--yellow);display:grid;place-items:center;color:var(--ink)}
.incl__i b{display:block;font-size:.96rem;margin-bottom:2px}
.incl__i span{font-size:.87rem;color:var(--ink-soft);line-height:1.55}

/* ---------- Timeline 90 jours ---------- */
.tl{display:grid;gap:0;margin-top:8px}
.tl__i{display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,3vw,38px);padding:26px 0;border-bottom:1px solid var(--line)}
.tl__i:first-child{border-top:1px solid var(--line)}
.tl__w{font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1;color:var(--clay);white-space:nowrap}
.tl__c h3{font-size:1.2rem;margin-bottom:6px}
.tl__c p{font-size:.95rem;max-width:64ch}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin:0 auto;display:grid;gap:10px}
.faq details{
  background:var(--bg-pure);border:1px solid var(--line);border-radius:13px;overflow:hidden;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.faq details[open]{border-color:rgba(255,214,10,.6);box-shadow:0 10px 30px rgba(19,19,19,.07)}
.faq summary{
  padding:19px 22px;font-weight:600;font-size:1.01rem;cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:18px;transition:color .2s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--clay)}
.faq summary::after{content:"+";font-family:var(--display);font-size:1.7rem;line-height:1;color:var(--clay);transition:transform .3s var(--ease);flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq__a{padding:0 22px 21px;color:var(--ink-soft);font-size:.96rem;line-height:1.68}
.faq__a strong{color:var(--ink)}

/* ---------- Clubs ---------- */
.clubs{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:18px}
.club{
  padding:26px 24px;background:var(--bg-pure);border:1px solid var(--line);border-radius:var(--r);
  transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.club:hover{transform:translateY(-5px);border-color:rgba(255,214,10,.55);box-shadow:0 16px 40px rgba(19,19,19,.1)}
.club__n{font-family:var(--display);font-size:1.32rem;letter-spacing:.03em;margin-bottom:11px}
.club__n i{font-style:normal;color:var(--clay)}
.club__a{color:var(--ink-soft);font-size:.92rem;line-height:1.62;margin-bottom:14px}
.club__t{display:flex;flex-wrap:wrap;gap:7px}
.club__t span{font-size:.71rem;text-transform:uppercase;letter-spacing:.11em;font-weight:600;padding:5px 11px;border-radius:99px;background:var(--bg-warm);color:var(--ink-soft)}

/* ---------- Formulaire ---------- */
.fgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5vw,72px);align-items:start}
.form{background:var(--bg-pure);border:1px solid var(--line);border-radius:var(--r);padding:clamp(26px,3.4vw,38px);box-shadow:0 4px 26px rgba(19,19,19,.05)}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.field{display:block;margin-bottom:15px}
.field > span{display:block;font-size:.85rem;font-weight:600;margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;background:var(--bg);border:1px solid var(--line);border-radius:10px;
  color:var(--ink);font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,214,10,.22);
}
.field textarea{resize:vertical;min-height:88px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.87rem;color:var(--ink-soft);margin-bottom:18px;cursor:pointer}
.check input{accent-color:var(--yellow);margin-top:3px;cursor:pointer}
.form .btn{width:100%;justify-content:center}
.form__ok{
  display:none;margin-top:15px;padding:14px;border-radius:11px;text-align:center;font-weight:600;font-size:.93rem;
  background:rgba(60,160,90,.1);border:1px solid rgba(60,160,90,.45);color:#2F7A4A;
}
.form__ok.on{display:block;animation:fadeUp .4s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---------- Contact direct ---------- */
.direct{display:grid;gap:11px;margin-top:26px}
.direct a{
  display:flex;align-items:center;gap:15px;padding:16px 19px;
  background:var(--bg-pure);border:1px solid var(--line);border-radius:12px;
  transition:transform .3s var(--ease),border-color .3s var(--ease);
}
.direct a:hover{transform:translateX(4px);border-color:rgba(255,214,10,.6)}
.direct svg{flex:none;color:var(--clay)}
.direct b{display:block;font-size:.93rem}
.direct span{font-size:.86rem;color:var(--ink-soft)}
.perks{list-style:none;display:grid;gap:11px;margin:24px 0 0}
.perks li{display:flex;gap:12px;align-items:flex-start;font-size:.96rem}
.perks b{flex:none;width:22px;height:22px;border-radius:7px;background:var(--yellow);display:grid;place-items:center;font-size:.7rem;margin-top:2px}

/* ---------- Carte ---------- */
.map{margin-top:30px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.map iframe{display:block;width:100%;height:330px;border:0;filter:grayscale(.25) contrast(1.05)}

/* ---------- Responsive pages internes ---------- */
@media(max-width:980px){
  .fgrid{grid-template-columns:1fr}
  .tl__i{grid-template-columns:1fr;gap:8px}
}
@media(max-width:600px){
  .form__row{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════
   CLASSES MANQUANTES + CARTES IMAGE DE FOND
   ═══════════════════════════════════════════ */

.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal.in,.reveal.is-visible{opacity:1;transform:none}
.about__txt{min-width:0}

/* ---------- CARTE IMAGE DE FOND (composant clé) ---------- */
.mcards{display:grid;gap:16px}
.mcards--3{grid-template-columns:repeat(3,1fr)}
.mcards--bento{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(210px,auto)}
.mcards--bento .mcard--wide{grid-column:span 2}
.mcards--bento .mcard--tall{grid-row:span 2}

.mcard{
  position:relative;isolation:isolate;overflow:hidden;border-radius:18px;
  min-height:clamp(250px,30vh,330px);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(22px,2.4vw,30px);color:#fff;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.mcard:hover{transform:translateY(-5px);box-shadow:0 22px 52px rgba(19,19,19,.22)}
.mcard__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s var(--ease);filter:saturate(.92) contrast(1.05)}
.mcard:hover .mcard__img{transform:scale(1.06)}
.mcard::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(6,6,6,.22) 0%,rgba(6,6,6,.42) 42%,rgba(6,6,6,.88) 100%);
}
.mcard__n{
  position:absolute;top:clamp(18px,2vw,24px);left:clamp(22px,2.4vw,30px);
  font-family:var(--display);font-size:clamp(2.1rem,3.4vw,3rem);line-height:1;
  color:rgba(255,255,255,.92);text-shadow:0 2px 16px rgba(0,0,0,.4);
}
.mcard__tag{
  position:absolute;top:clamp(20px,2.1vw,26px);right:clamp(20px,2.2vw,26px);
  background:var(--yellow);color:var(--ink);
  font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 12px;border-radius:99px;
}
.mcard h3{
  font-family:var(--display);font-size:clamp(1.25rem,1.9vw,1.65rem);letter-spacing:.02em;
  margin-bottom:7px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.mcard p{color:rgba(255,255,255,.84);font-size:.92rem;line-height:1.55;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.mcard p strong{color:#fff}
.mcard__meta{
  display:inline-flex;align-items:center;gap:7px;margin-top:12px;
  font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--yellow);
}
.mcard__link{margin-top:14px;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:#fff}
.mcard__link:hover{gap:12px;color:var(--yellow)}

/* carte CTA pleine (façon "ta première séance est offerte") */
.mcard--cta{justify-content:center;align-items:center;text-align:center}
.mcard--cta::after{background:linear-gradient(180deg,rgba(6,6,6,.5),rgba(6,6,6,.72))}
.mcard--cta h3{font-size:clamp(1.5rem,2.8vw,2.4rem);margin-bottom:18px;max-width:18ch}
.mcard--cta h3 .it{color:var(--yellow)}

/* ---------- Vidéo ---------- */
.video-block{background:var(--bg-warm)}
.video-frame{
  position:relative;max-width:960px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;
  border-radius:20px;border:1px solid var(--line);background:var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  box-shadow:0 22px 60px rgba(19,19,19,.16);
}
.video-frame iframe,.video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-play{
  width:82px;height:82px;border-radius:50%;background:var(--yellow);color:var(--ink);
  display:grid;place-items:center;box-shadow:0 14px 40px rgba(0,0,0,.35);
  transition:transform .35s var(--ease);
}
.video-frame:hover .video-play{transform:scale(1.08)}
.video-frame__label{
  font-family:var(--display);font-size:clamp(.95rem,2vw,1.35rem);letter-spacing:.22em;
  color:rgba(255,255,255,.45);text-align:center;padding:0 24px;
}
.video-caption{text-align:center;color:var(--ink-mute);font-size:.9rem;margin-top:20px}

/* ---------- Témoignages ---------- */
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:18px}
.testimonial{
  padding:28px 26px;background:var(--bg-pure);border:1px solid var(--line);border-radius:var(--r);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.testimonial:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(19,19,19,.09)}
.testimonial__stars{color:var(--yellow);letter-spacing:3px;font-size:.95rem;margin-bottom:14px}
.testimonial p{font-size:.97rem;line-height:1.7;margin-bottom:18px;font-style:italic}
.testimonial__author{display:flex;align-items:center;gap:12px}
.testimonial__avatar{
  width:42px;height:42px;border-radius:50%;background:var(--yellow);color:var(--ink);
  display:grid;place-items:center;font-family:var(--display);font-size:1.2rem;
}
.testimonial__author strong{display:block;font-size:.93rem}
.testimonial__author span{font-size:.8rem;color:var(--ink-mute)}

/* ---------- Bande CTA ---------- */
.cta-band{
  position:relative;padding:clamp(76px,10vw,124px) 0;text-align:center;overflow:hidden;
  background:var(--bg-dark);color:#F5F2EC;
}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,214,10,.13),transparent 62%);
}
.cta-band__inner{position:relative;z-index:1;max-width:760px;margin:0 auto}
.cta-band h2{font-size:clamp(2.1rem,5vw,3.6rem);margin-bottom:18px;color:#fff}
.cta-band .it{color:var(--yellow)}
.cta-band p{color:#BDB8AF;font-size:1.06rem;margin-bottom:32px}
.cta-band p strong{color:#fff}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.cta-band__note{margin-top:24px;font-size:.85rem;color:#8F8A81}

/* ---------- Note visio ---------- */
.visio-note{
  display:inline-flex;align-items:flex-start;gap:11px;margin-top:22px;
  padding:14px 18px;background:var(--bg-warm);border:1px solid var(--line);
  border-left:3px solid var(--yellow);border-radius:11px;
  font-size:.9rem;color:var(--ink-soft);line-height:1.55;
}
.visio-note strong{color:var(--ink)}
.nut__list-icon{font-size:1.45rem;flex:none;line-height:1.2}

/* ---------- WhatsApp flottant ---------- */
.wa-float{
  position:fixed;bottom:22px;right:22px;width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;display:grid;place-items:center;z-index:90;
  box-shadow:0 10px 28px rgba(37,211,102,.4);transition:transform .3s var(--ease);
}
.wa-float:hover{transform:scale(1.08)}
.wa-float__pulse{
  position:absolute;inset:0;border-radius:50%;background:#25D366;opacity:.55;z-index:-1;
  animation:waPulse 2.2s infinite;
}
@keyframes waPulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.7);opacity:0}}

/* ---------- Responsive cartes ---------- */
@media(max-width:980px){
  .mcards--3,.mcards--bento{grid-template-columns:repeat(2,1fr)}
  .mcards--bento .mcard--wide{grid-column:span 2}
  .mcards--bento .mcard--tall{grid-row:span 1}
}
@media(max-width:620px){
  .mcards--3,.mcards--bento{grid-template-columns:1fr}
  .mcards--bento .mcard--wide{grid-column:span 1}
  .wa-float{width:52px;height:52px;bottom:16px;right:16px}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none}
  .mcard__img{transform:none!important}
}

/* ═══════════════════════════════════════════
   PAGE PROGRAMME : BLOCS DE CONVERSION
   ═══════════════════════════════════════════ */

/* ---------- Bandeau de réassurance ---------- */
.assure{background:var(--bg-pure);border-bottom:1px solid var(--line)}
.assure__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,34px);padding:30px 0}
.assure__i{display:flex;align-items:flex-start;gap:12px}
.assure__ic{flex:none;width:34px;height:34px;border-radius:10px;background:var(--yellow);color:var(--ink);display:grid;place-items:center}
.assure__i b{display:block;font-size:.93rem;line-height:1.3}
.assure__i span{font-size:.82rem;color:var(--ink-mute);line-height:1.45}

/* ---------- Timeline en cartes image ---------- */
.phases{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.phase{
  position:relative;isolation:isolate;overflow:hidden;border-radius:18px;
  min-height:clamp(240px,27vh,300px);display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(22px,2.4vw,30px);color:#fff;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.phase:hover{transform:translateY(-5px);box-shadow:0 22px 52px rgba(19,19,19,.2)}
.phase img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.05);transition:transform 1.1s var(--ease)}
.phase:hover img{transform:scale(1.05)}
.phase::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(6,6,6,.25) 0%,rgba(6,6,6,.5) 45%,rgba(6,6,6,.9) 100%)}
.phase__w{
  align-self:flex-start;background:var(--yellow);color:var(--ink);
  font-family:var(--display);font-size:1.02rem;letter-spacing:.06em;
  padding:6px 14px;border-radius:99px;margin-bottom:auto;
}
.phase h3{font-family:var(--display);font-size:clamp(1.25rem,1.9vw,1.6rem);letter-spacing:.02em;margin:16px 0 7px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.phase p{color:rgba(255,255,255,.85);font-size:.92rem;line-height:1.56;text-shadow:0 1px 10px rgba(0,0,0,.5)}

/* ---------- Preuve sociale ---------- */
.proofblock{
  position:relative;isolation:isolate;overflow:hidden;border-radius:22px;
  display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(28px,4vw,60px);
  padding:clamp(32px,4.5vw,58px);color:#fff;
}
.proofblock img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.proofblock::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(95deg,rgba(6,6,6,.93) 0%,rgba(6,6,6,.8) 52%,rgba(6,6,6,.55) 100%)}
.proofblock__q{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.3vw,1.85rem);line-height:1.45;margin-bottom:20px;color:#fff}
.proofblock__a{display:flex;align-items:center;gap:13px}
.proofblock__av{width:44px;height:44px;border-radius:50%;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font-family:var(--display);font-size:1.2rem}
.proofblock__a strong{display:block;font-size:.95rem}
.proofblock__a span{font-size:.83rem;color:rgba(255,255,255,.7)}
.proofblock__n{display:grid;gap:18px}
.proofblock__stat{border-left:2px solid var(--yellow);padding-left:16px}
.proofblock__stat b{display:block;font-family:var(--display);font-size:clamp(2rem,3.6vw,2.9rem);line-height:1;color:var(--yellow)}
.proofblock__stat span{font-size:.83rem;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.72)}

/* ---------- CTA intermédiaire ---------- */
.midcta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;
  background:var(--bg-pure);border:1px solid var(--line);border-left:4px solid var(--yellow);
  border-radius:16px;padding:clamp(22px,2.8vw,32px) clamp(24px,3vw,38px);
  box-shadow:0 6px 28px rgba(19,19,19,.05);
}
.midcta__t{font-family:var(--display);font-size:clamp(1.25rem,2.1vw,1.7rem);letter-spacing:.02em;margin-bottom:5px}
.midcta__t .it{color:var(--clay)}
.midcta p{font-size:.92rem;max-width:52ch}
.midcta .btn{flex:none}

/* ---------- Clubs en cartes image ---------- */
.clubcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.clubcard{
  position:relative;isolation:isolate;overflow:hidden;border-radius:18px;
  min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:26px;color:#fff;transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.clubcard:hover{transform:translateY(-5px);box-shadow:0 20px 48px rgba(19,19,19,.2)}
.clubcard img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.05);transition:transform 1s var(--ease)}
.clubcard:hover img{transform:scale(1.05)}
.clubcard::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(6,6,6,.2) 0%,rgba(6,6,6,.5) 48%,rgba(6,6,6,.92) 100%)}
.clubcard__c{align-self:flex-start;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.22);font-size:.7rem;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;padding:6px 12px;border-radius:99px;margin-bottom:auto}
.clubcard h3{font-family:var(--display);font-size:1.45rem;letter-spacing:.03em;margin-bottom:8px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.clubcard p{color:rgba(255,255,255,.84);font-size:.89rem;line-height:1.55;margin-bottom:12px;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.clubcard__t{display:flex;flex-wrap:wrap;gap:6px}
.clubcard__t span{font-size:.69rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;
  padding:4px 10px;border-radius:99px;background:rgba(255,255,255,.15);color:#fff}

/* ---------- Inclus : version compacte ---------- */
.incl__i{background:var(--bg-pure)}

@media(max-width:980px){
  .assure__grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .phases,.clubcards{grid-template-columns:repeat(2,1fr)}
  .proofblock{grid-template-columns:1fr}
  .midcta{flex-direction:column;align-items:flex-start}
}
@media(max-width:640px){
  .assure__grid{grid-template-columns:1fr}
  .phases,.clubcards{grid-template-columns:1fr}
}

/* ---------- "Ce qui est inclus" : version large ---------- */
.incl{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.incl__i{
  position:relative;display:flex;flex-direction:column;
  padding:clamp(26px,2.7vw,34px);min-height:225px;
  background:var(--bg-pure);border:1px solid var(--line);border-radius:18px;
  transition:transform .38s var(--ease),border-color .38s var(--ease),box-shadow .38s var(--ease);
}
.incl__i:hover{transform:translateY(-5px);border-color:rgba(255,214,10,.6);box-shadow:0 16px 40px rgba(19,19,19,.09)}
.incl__n{
  position:absolute;top:22px;right:26px;font-family:var(--display);
  font-size:2.2rem;line-height:1;color:var(--line);
}
.incl__ic{
  width:54px;height:54px;border-radius:15px;background:var(--yellow);color:var(--ink);
  display:grid;place-items:center;margin-bottom:auto;flex:none;
}
.incl__i b{font-family:var(--display);font-size:clamp(1.15rem,1.6vw,1.38rem);letter-spacing:.02em;margin:22px 0 8px}
.incl__i span{font-size:.93rem;color:var(--ink-soft);line-height:1.6}

/* carte avec image, sur 2 colonnes */
.incl__i--img{
  grid-column:span 2;isolation:isolate;overflow:hidden;color:#fff;border-color:transparent;
  justify-content:flex-end;
}
.incl__i--img img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.05);transition:transform 1s var(--ease)}
.incl__i--img:hover img{transform:scale(1.05)}
.incl__i--img::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(6,6,6,.28) 0%,rgba(6,6,6,.52) 45%,rgba(6,6,6,.9) 100%)}
.incl__i--img b{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.incl__i--img span{color:rgba(255,255,255,.86);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.incl__i--img .incl__ic{margin-bottom:0}

@media(max-width:980px){
  .incl{grid-template-columns:repeat(2,1fr)}
  .incl__i--img{grid-column:span 2}
}
@media(max-width:640px){
  .incl{grid-template-columns:1fr}
  .incl__i--img{grid-column:span 1}
}

/* ---------- Fix liste nutrition : titre / description ---------- */
.nut__list strong{display:block;font-size:1rem;margin-bottom:4px;color:var(--ink)}
.nut__list li > div{min-width:0}
.nut__list-icon{font-size:1.6rem;line-height:1.1}

/* ═══════════════════════════════════════════
   ALIMENTATION : BLOCS DE CONVICTION
   ═══════════════════════════════════════════ */

/* 3 piliers */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pillar{
  position:relative;padding:clamp(26px,2.8vw,34px);border-radius:18px;
  background:var(--bg-pure);border:1px solid var(--line);
  transition:transform .38s var(--ease),border-color .38s var(--ease),box-shadow .38s var(--ease);
}
.pillar:hover{transform:translateY(-5px);border-color:rgba(255,214,10,.6);box-shadow:0 16px 40px rgba(19,19,19,.09)}
.pillar__k{
  font-family:var(--display);font-size:clamp(2.4rem,4vw,3.4rem);line-height:.9;
  color:var(--clay);margin-bottom:14px;
}
.pillar h3{font-family:var(--display);font-size:1.28rem;letter-spacing:.02em;margin-bottom:9px}
.pillar p{font-size:.94rem;line-height:1.62}
.pillar p + p{margin-top:9px}

/* Journée type */
.day{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:var(--bg-pure);border:1px solid var(--line);border-radius:18px;overflow:hidden;
}
.day__i{padding:clamp(22px,2.4vw,30px);border-right:1px solid var(--line);position:relative}
.day__img{
  display:block;width:100%;height:clamp(118px,10vw,148px);
  object-fit:cover;border-radius:11px;margin-bottom:16px;
  background:var(--bg-warm);
}
.day__i:last-child{border-right:0}
.day__h{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);
}
.day__h::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--yellow)}
.day__i h4{font-family:var(--display);font-size:1.15rem;letter-spacing:.02em;margin-bottom:9px}
.day__i ul{list-style:none;display:grid;gap:7px}
.day__i li{font-size:.9rem;color:var(--ink-soft);padding-left:15px;position:relative;line-height:1.5}
.day__i li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--line)}
.day__note{
  margin-top:16px;font-size:.84rem;color:var(--ink-mute);font-style:italic;line-height:1.5;
}

/* Comparatif on fait / on ne fait pas */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vs__col{padding:clamp(26px,2.8vw,34px);border-radius:18px;border:1px solid var(--line);background:var(--bg-pure)}
.vs__col--no{background:var(--bg-warm)}
.vs__t{
  display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;
  font-family:var(--display);font-size:1.22rem;letter-spacing:.02em;
}
.vs__b{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:none;font-size:.85rem;font-weight:700}
.vs__col--yes .vs__b{background:var(--yellow);color:var(--ink)}
.vs__col--no .vs__b{background:var(--ink);color:var(--bg)}
.vs__col ul{list-style:none;display:grid;gap:12px}
.vs__col li{display:flex;gap:11px;align-items:flex-start;font-size:.94rem;line-height:1.55}
.vs__col li i{flex:none;font-style:normal;font-weight:700;margin-top:1px}
.vs__col--yes li i{color:var(--clay)}
.vs__col--no li i{color:var(--ink-mute)}
.vs__col--no li{color:var(--ink-mute)}

/* Bandeau produits locaux */
.local{
  display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:26px;
}
.local span{
  padding:9px 17px;border-radius:99px;background:var(--bg-pure);border:1px solid var(--line);
  font-size:.87rem;font-weight:500;transition:border-color .25s,transform .25s var(--ease);
}
.local span:hover{border-color:var(--yellow);transform:translateY(-2px)}

@media(max-width:980px){
  .pillars{grid-template-columns:1fr}
  .day{grid-template-columns:repeat(2,1fr)}
  .day__i:nth-child(2){border-right:0}
  .day__i:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .vs{grid-template-columns:1fr}
}
@media(max-width:600px){
  .day{grid-template-columns:1fr}
  .day__i{border-right:0;border-bottom:1px solid var(--line)}
  .day__i:last-child{border-bottom:0}
}

/* ═══════════════════════════════════════════
   STACK v2 : texte sur image + respiration
   ═══════════════════════════════════════════ */

/* le bloc de gauche remonte, les cartes restent centrées */
.stack__grid{
  align-items:center;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(44px,6vw,110px);
}
.stack__left{align-self:start;padding-top:clamp(16px,5vh,74px)}
.stack__left .head{margin-bottom:22px}
.stack__left > p{font-size:1.02rem;line-height:1.7}
.stack__count{margin-top:18px}
.stack__bar{margin-top:26px}

/* plus d'air dans le sticky */
.stack__sticky{padding:clamp(100px,12vw,150px) 0}
.stack__list{gap:13px}

/* en-tête de carte plus aérée */
.scard__head{padding:21px 26px}
.scard__num{font-size:1.55rem}
.scard__t{font-size:clamp(1.15rem,1.55vw,1.48rem)}

/* ---- média : le texte passe PAR-DESSUS l'image ---- */
.scard__media{
  position:relative;overflow:hidden;
  height:clamp(250px,34vh,360px);
  margin:0 16px 16px;border-radius:14px;
}
.scard__media img{width:100%;height:100%;object-fit:cover}
.scard__media::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(6,6,6,.05) 0%,rgba(6,6,6,.34) 42%,rgba(6,6,6,.9) 100%);
}
.scard__over{
  position:absolute;z-index:2;left:0;right:0;bottom:0;
  padding:clamp(20px,2.2vw,28px) clamp(22px,2.4vw,30px);
  color:#fff;
}
.scard__over p{
  color:rgba(255,255,255,.93);font-size:.97rem;line-height:1.62;margin:0 0 10px;
  text-shadow:0 1px 12px rgba(0,0,0,.55);
}
.scard__over strong{
  display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--yellow);text-shadow:0 1px 10px rgba(0,0,0,.6);
}
/* l'ancien paragraphe sous l'image n'est plus utilisé */
.scard__p{display:none}

/* ---- CTA intermédiaire : moins de vide au-dessus ---- */
.midcta-wrap{padding:0 0 clamp(44px,5vw,70px)}
.midcta-wrap--tight{margin-top:calc(-1 * clamp(30px,5vh,72px))}

@media(max-width:980px){
  .stack__left{padding-top:0}
  .stack__grid{gap:30px}
  .scard__media{height:clamp(210px,30vh,280px)}
}

/* ═══════════════════════════════════════════
   ACCORDÉON HORIZONTAL (option B validée)
   ═══════════════════════════════════════════ */
.acc{display:flex;gap:14px;height:clamp(420px,56vh,560px)}
.acc__p{
  position:relative;isolation:isolate;overflow:hidden;border-radius:20px;cursor:pointer;
  flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(24px,2.6vw,36px);color:#fff;
  transition:flex .75s cubic-bezier(.22,1,.36,1);
}
.acc__p.on{flex:2.6}
.acc__p img{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.05);transition:transform 1s var(--ease),filter .55s var(--ease);
}
.acc__p.on img{transform:scale(1.04)}
.acc__p:not(.on) img{filter:saturate(.3) contrast(1.06) brightness(.72)}
.acc__p::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(6,6,6,.18) 0%,rgba(6,6,6,.45) 45%,rgba(6,6,6,.93) 100%);
}
.acc__n{
  position:absolute;top:clamp(22px,2.4vw,30px);left:clamp(24px,2.6vw,36px);
  font-family:var(--display);font-size:clamp(2rem,2.9vw,2.6rem);line-height:1;
  color:rgba(255,255,255,.92);text-shadow:0 2px 16px rgba(0,0,0,.45);
}
.acc__tag{
  position:absolute;top:clamp(24px,2.5vw,32px);right:clamp(24px,2.6vw,34px);
  background:var(--yellow);color:var(--ink);font-size:.67rem;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;padding:6px 12px;border-radius:99px;
  opacity:0;transition:opacity .4s var(--ease);
}
.acc__p.on .acc__tag{opacity:1}
.acc__t{
  font-family:var(--display);font-size:clamp(1.1rem,1.65vw,1.62rem);letter-spacing:.02em;
  color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.55);transition:margin .5s var(--ease);margin:0;
}
.acc__p.on .acc__t{margin-bottom:13px}
.acc__c{
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .7s var(--ease),opacity .5s var(--ease) .12s;
}
.acc__p.on .acc__c{max-height:260px;opacity:1}
.acc__c p{
  color:rgba(255,255,255,.92);font-size:.97rem;line-height:1.62;margin:0 0 11px;
  text-shadow:0 1px 12px rgba(0,0,0,.6);max-width:52ch;
}
.acc__c strong{
  font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--yellow);text-shadow:0 1px 10px rgba(0,0,0,.65);
}
.acc__hint{
  display:flex;align-items:center;justify-content:center;gap:9px;margin-top:20px;
  font-size:.84rem;color:var(--ink-mute);
}
.acc__hint i{font-style:normal;color:var(--clay)}

/* en-tête de section sur deux colonnes, bien aérée */
.sechead{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);
  align-items:end;margin-bottom:clamp(34px,4.2vw,56px);
}
.sechead__r{padding-bottom:4px}
.sechead__r p{font-size:1.02rem;line-height:1.7;max-width:46ch}
.sechead__c{
  display:inline-flex;align-items:baseline;gap:7px;margin-top:16px;
  font-family:var(--display);font-size:1.05rem;letter-spacing:.06em;color:var(--ink-mute);
}
.sechead__c b{font-size:1.9rem;color:var(--ink);line-height:1}
.sechead__c i{font-style:normal;color:var(--clay)}

@media(max-width:980px){
  .acc{flex-direction:column;height:auto}
  .acc__p{min-height:140px}
  .acc__p.on{min-height:340px}
  .acc__p:not(.on) img{filter:saturate(.55) brightness(.8)}
  .sechead{grid-template-columns:1fr;gap:20px;align-items:start}
}


/* Les blocs en attente d'animation sont décalés hors écran :
   on clippe l'axe horizontal. `clip` (et non `hidden`) pour ne pas
   créer de conteneur de défilement, ce qui casserait l'épinglage. */
html{overflow-x:clip}
body{overflow-x:clip}

/* ═══ BANDEAU DÉFILANT (effet scroll 6) ═══════════════════ */
.mq{padding:clamp(32px,3.8vw,52px) 0;background:var(--bg-warm);
  border-block:1px solid var(--line);overflow:hidden}
.mq--dark{background:var(--bg-dark);border-color:#242424}
/* Le contenu est répété quatre fois : un décalage de -25 % (une série)
   ramène exactement au point de départ, la boucle est donc invisible.
   Quatre séries plutôt que deux pour qu'aucun trou n'apparaisse
   en fin de cycle sur les grands écrans. Pas de padding ici :
   il décalerait la reprise. */
.mq__track{display:flex;align-items:center;gap:clamp(26px,3vw,44px);
  width:max-content;will-change:transform;
  animation:mq-defile 48s linear infinite}
@keyframes mq-defile{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-25%,0,0)}
}
.mq:hover .mq__track{animation-play-state:paused}
.mq__i{font-family:var(--display);font-size:clamp(1.75rem,4vw,3.15rem);
  line-height:1;letter-spacing:.012em;text-transform:uppercase;
  color:var(--ink);white-space:nowrap}
.mq--dark .mq__i{color:#fff}
.mq__i--o{color:transparent;-webkit-text-stroke:1.4px var(--ink-mute);
  -webkit-text-fill-color:transparent}
.mq--dark .mq__i--o{-webkit-text-stroke-color:#585858}
.mq__d{width:10px;height:10px;border-radius:50%;background:var(--yellow);flex:none}
@media (max-width:640px){.mq__track{gap:20px;animation-duration:30s}}
@media (prefers-reduced-motion:reduce){.mq__track{animation:none}}


/* ═══ LECTEUR VIDEO (une seule a la fois) ═════════════════ */
/* La colonne video se dimensionne a partir de sa HAUTEUR : une video
   verticale calee sur la largeur debordait de l'ecran. */
.vp{
  display:grid;grid-template-columns:auto auto;
  gap:clamp(36px,5vw,84px);align-items:center;justify-content:center;
  margin-top:clamp(30px,3.4vw,44px);
}
.vp__stage{position:relative}
.vp__v{
  display:none;height:min(78vh,720px);width:auto;
  aspect-ratio:9/16;object-fit:cover;
  border-radius:var(--r);background:#111;
  box-shadow:0 22px 54px rgba(19,19,19,.16);
}
.vp__v.is-on{display:block}

.vp__nav{
  position:absolute;top:50%;right:clamp(-22px,-1.6vw,-16px);
  transform:translateY(-50%);display:grid;gap:11px;z-index:2;
}
.vp__arrow{
  width:44px;height:44px;border-radius:50%;cursor:pointer;
  display:grid;place-items:center;color:var(--ink);
  background:var(--bg-pure);border:1px solid var(--line);
  box-shadow:0 6px 18px rgba(19,19,19,.13);
  transition:transform .2s var(--ease),background .2s var(--ease);
}
.vp__arrow:hover{background:var(--yellow);border-color:var(--yellow);transform:scale(1.07)}
.vp__arrow:focus-visible{outline:2px solid var(--clay);outline-offset:3px}

.vp__info{max-width:52ch}
.vp__t{font-family:var(--display);font-size:clamp(1.8rem,3.6vw,3.3rem);
  letter-spacing:.01em;line-height:1.06;margin-bottom:18px}
.vp__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.vp__tags span{
  padding:8px 16px;border-radius:999px;font-size:.84rem;font-weight:600;
  background:var(--bg-warm);border:1px solid var(--line);color:var(--ink-soft);
}
.vp__tags span:first-child{background:var(--ink);border-color:var(--ink);color:#fff}
.vp__d{font-size:clamp(1.02rem,1.35vw,1.24rem);color:var(--ink-soft);line-height:1.68}
.vp__count{margin-top:20px;font-size:.82rem;color:var(--ink-mute);letter-spacing:.04em}
.vp__count b{color:var(--ink);font-weight:700}

@media (max-width:820px){
  /* la video est verticale : bridee en hauteur pour que les fleches et le
     titre restent visibles sans avoir a faire defiler */
  .vp{grid-template-columns:1fr;gap:20px;max-width:296px;margin-inline:auto}
  .vp__v{height:auto;width:100%;max-height:54vh}
  .vp__info{max-width:none}
  .vp__nav{
    position:static;transform:none;display:flex;justify-content:center;
    gap:14px;margin-top:16px;
  }
  .vp__info{text-align:center}
  .vp__tags{justify-content:center}
  .vp__d{margin-inline:auto}
}


/* ═══ FLUIDITE DU SCROLL SUR MOBILE ═══════════════════════
   Un flou d'arriere-plan sur un element fixe est recalcule a chaque
   image pendant le defilement : c'est la premiere cause de saccade sur
   telephone. On le remplace par un fond opaque, visuellement equivalent. */
@media (max-width:900px){
  .nav.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(250,247,242,.985)}
  .nav__l{backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(250,247,242,.995)}
  .phero__pts li{backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(255,255,255,.12)}
  .clubcard__c{backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(255,255,255,.2)}
}


/* ═══ HAUTEURS STABLES SUR TELEPHONE ══════════════════════
   Sur mobile, la barre d'adresse du navigateur se retracte pendant le
   defilement : "vh" change alors en pleine course, le hero change de
   hauteur et tout le contenu en dessous se decale. D'ou l'impression
   que le scroll accroche. L'unite "svh" est figee sur la hauteur barre
   visible : elle ne bouge jamais. */
@supports (height: 100svh){
  .hero{min-height:min(96svh,1000px)}
  .phero{min-height:min(70svh,640px)}
  @media (max-width:820px){
    .vp__v{max-height:54svh}
  }
}


/* ═══ FOND DES BLOCS A IMAGE ══════════════════════════════
   Ces blocs n'avaient aucune couleur de fond : l'image est derriere,
   avec un voile sombre par dessus. Tant que l'image n'est pas chargee,
   le voile s'applique sur le creme de la page, le bloc apparait donc
   clair avec du texte blanc, puis bascule au sombre quand l'image
   arrive. D'ou l'impression de clignotement au defilement.
   Un fond sombre en dur supprime completement cette bascule. */
.mcard,
.phase,
.clubcard,
.acc__p,
.proofblock{background-color:#1a1a1c}


/* ═══ APPARITIONS SUR TELEPHONE ═══════════════════════════
   Trois variantes douces, pour que le defilement ait de la vie sans
   jamais donner l'impression de saccade. Seules l'opacite et la
   translation sont animees : ce sont les deux proprietes que le
   telephone rend sans recalculer la mise en page. Aucune cascade de
   delais, et le declenchement a lieu 220 px avant l'arrivee du bloc,
   pour qu'il finisse d'apparaitre au moment ou on le decouvre. */
@media (max-width:900px){
  .rv{
    /* on part de 0.25 et non de 0 : le bloc n'est jamais totalement
       absent, donc pas d'effet de vide, et le mouvement reste visible */
    opacity:.25;transform:translateY(26px);
    transition:opacity .8s cubic-bezier(.22,1,.36,1),
               transform .8s cubic-bezier(.22,1,.36,1);
    transition-delay:0s !important;
    clip-path:none !important;
  }
  .rv.in{opacity:1;transform:none}

  /* les cartes arrivent avec un souffle a peine perceptible */
  .mcard.rv, .res.rv, .phase.rv, .clubcard.rv{
    transform:translateY(28px) scale(.975)}
  .mcard.rv.in, .res.rv.in, .phase.rv.in, .clubcard.rv.in{transform:none}

  /* les titres montent d'un peu plus bas, sans zoom */
  h2.rv, .vp__t.rv{transform:translateY(32px)}
  h2.rv.in, .vp__t.rv.in{transform:none}

  /* les blocs media apparaissent en fondu seul, sans mouvement */
  [data-reveal-media], [data-reveal-list]{
    opacity:.25;transform:none !important;clip-path:none !important;
    transition:opacity .85s ease}
  [data-reveal-media].in, [data-reveal-list].in{opacity:1}
}


/* ═══ MENU MOBILE : REPERABLE ET OPAQUE ═══════════════════ */
@media(max-width:980px){
  /* fond totalement opaque : rien ne doit transparaitre du hero */
  .nav__l{background:#FAF7F2 !important}
  /* trois traits fins sur une photo se reperent mal, et 39x32 est
     trop petit pour un doigt : on donne une pastille de 44x44 */
  .burger{
    width:44px;height:44px;justify-content:center;align-items:center;
    border-radius:13px;background:rgba(19,19,19,.30);padding:0;
    transition:background .25s var(--ease);
  }
  .nav.scrolled .burger{background:rgba(19,19,19,.07)}
  .burger[aria-expanded=true]{background:rgba(19,19,19,.07)}
  .nav:not(.scrolled) .burger[aria-expanded=true] span{background:var(--ink)}
}


/* ═══ LES IMAGES RESPIRENT EN APPARAISSANT ════════════════
   Seul le bloc apparaissait, l'image restait figee : l'effet passait
   inapercu. On lui donne un leger zoom qui se resorbe, comme dans la
   section "qui je suis". La regle ne vaut que tant que le bloc n'est
   pas revele : une fois en place, l'image reprend son comportement
   normal et le survol continue de fonctionner sur ordinateur. */
.mcard.rv:not(.in) .mcard__img,
.res.rv:not(.in) .res__ph--img img,
.phase.rv:not(.in) img,
.clubcard.rv:not(.in) img,
.club.rv:not(.in) img,
.day.rv:not(.in) .day__img,
.nut__grid .rv:not(.in) .nut__img,
.rv:not(.in) > .nut__img,
.vid.rv:not(.in) video{
  transform:scale(1.06);
}
.mcard .mcard__img,
.res__ph--img img,
.phase img,
.clubcard img,
.club img,
.day__img,
.nut__img{
  transition:transform 1s cubic-bezier(.22,1,.36,1);
}

/* les quatre assiettes arrivent l'une apres l'autre */
.day.rv .day__i:nth-child(1) .day__img{transition-delay:.05s}
.day.rv .day__i:nth-child(2) .day__img{transition-delay:.15s}
.day.rv .day__i:nth-child(3) .day__img{transition-delay:.25s}
.day.rv .day__i:nth-child(4) .day__img{transition-delay:.35s}

@media (max-width:900px){
  /* un peu plus court et plus discret au doigt */
  .mcard.rv:not(.in) .mcard__img,
  .res.rv:not(.in) .res__ph--img img,
  .phase.rv:not(.in) img,
  .clubcard.rv:not(.in) img,
  .club.rv:not(.in) img,
  .day.rv:not(.in) .day__img,
  .nut__grid .rv:not(.in) .nut__img{transform:scale(1.07)}
  .mcard .mcard__img,.res__ph--img img,.phase img,
  .clubcard img,.club img,.day__img,.nut__img{
    transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
}


/* Regle generale : toute image d'un bloc encore non revele respire.
   Les cas particuliers plus haut (section "qui je suis", accordeon)
   restent prioritaires grace a leur specificite. */
.rv:not(.in) img,
.rv:not(.in) .acc__p img{transform:scale(1.05)}
.rv img{transition:transform .9s cubic-bezier(.22,1,.36,1)}

/* la section "qui je suis" garde son ouverture plus ample */
.about__media:not(.in) .about__frame img{transform:scale(1.12)}
.about__media.in .about__frame img{transform:scale(1)}

/* l'accordeon garde son propre comportement une fois en place */
.acc__p.on img,.acc__p:hover img{transform:none}

@media (max-width:900px){
  .rv:not(.in) img{transform:scale(1.07)}
  .rv img{transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
}
