/* ==========================================================================
   Powerformer — thème premium (chargé après styles.css)
   Univers : vert Powerformer, crème, encre, photographie éditoriale.
   styles.css garde la mécanique des pages membres (planning, compte, panier) ;
   ce fichier redéfinit la palette, la typographie et l'habillage.
   ========================================================================== */

:root{
  --green:#3F5A50; --green-dark:#2B3E37; --green-light:#7E958B;
  --panel:#ECE7DE; --cream:#F4F1EA; --text:#1C2420; --text-soft:#5C6862;
  --border:#E2DCD1; --white:#FFFFFF; --gold:#B08D57;
  --ink:#121715; --ink-2:#1B2420; --sand:#E7DFD1; --clay:#8A6A55; --sage:#B7C6B5;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Inter', system-ui, -apple-system, sans-serif;
  --radius:18px; --ease:cubic-bezier(.2,.7,.2,1);
}

body{font-family:var(--sans); background:var(--cream); color:var(--text); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
h1,h2,h3{font-family:var(--serif); font-weight:500; letter-spacing:-.015em; line-height:1.05;}
h1 em,h2 em,h3 em{font-style:italic; font-weight:500;}
::selection{background:var(--green); color:#fff;}
.wrap{max-width:1240px; padding:0 28px;}
section{padding:120px 0;}
img{height:auto;}

/* ---------- Eyebrow / titres ---------- */
.eyebrow{background:none; padding:0; border-radius:0; color:var(--green); font-size:11.5px; font-weight:600; letter-spacing:.28em; display:inline-flex; align-items:center; gap:12px;}
.eyebrow::before{content:""; width:28px; height:1px; background:currentColor; opacity:.7;}
.section-head{max-width:720px; margin-bottom:64px;}
.section-head h2{font-size:clamp(38px,4.6vw,62px); font-weight:500; margin-bottom:18px;}
.section-head p{font-size:17px; line-height:1.7;}
.section-head.left{margin-left:0; text-align:left;}

/* ---------- Boutons ---------- */
.btn{border-radius:999px; padding:15px 28px; font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; background:var(--green); gap:10px; transition:background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);}
.btn:hover{background:var(--ink); transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(18,23,21,.55);}
.btn.ghost{border:1px solid currentColor; background:transparent; color:var(--text);}
.btn.ghost:hover{background:var(--ink); border-color:var(--ink); color:#fff;}
.btn.light{background:var(--cream); color:var(--ink);}
.btn.light:hover{background:#fff; color:var(--ink);}
.btn.ghost-light{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55);}
.btn.ghost-light:hover{background:#fff; color:var(--ink); border-color:#fff;}
.btn.small{padding:11px 20px; font-size:11.5px;}
.btn .arrow{transition:transform .3s var(--ease);}
.btn:hover .arrow{transform:translateX(4px);}
.link-arrow{display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; border-bottom:1px solid currentColor; padding-bottom:6px;}
.link-arrow:hover{color:var(--green);}

/* ---------- Header ---------- */
header{background:rgba(244,241,234,.86); backdrop-filter:saturate(1.3) blur(14px); -webkit-backdrop-filter:saturate(1.3) blur(14px); border-bottom:1px solid rgba(28,36,32,.07); transition:background .4s var(--ease), border-color .4s, color .4s;}
header .wrap{height:84px; max-width:1360px;}
.logo{font-size:0; gap:0;}
.logo img{width:auto; height:30px; border-radius:0; object-fit:contain;}
.logo .logo-dark{display:block;} .logo .logo-light{display:none;}
nav.main-nav{gap:34px; font-size:12px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--text);}
nav.main-nav a{position:relative; padding:6px 0; opacity:.78; transition:opacity .25s;}
nav.main-nav a::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);}
nav.main-nav a:hover, nav.main-nav a.active{opacity:1; color:inherit;}
nav.main-nav a:hover::after, nav.main-nav a.active::after{transform:scaleX(1);}
.header-actions{gap:12px;}
.header-actions .btn.small{padding:11px 20px;}
.account-dot{width:7px; height:7px; border-radius:50%; background:#8FD19E; display:inline-block;}
.menu-toggle{width:44px; height:44px; border-radius:50%; border:1px solid rgba(28,36,32,.18); font-size:18px; color:inherit; display:none; align-items:center; justify-content:center;}

/* Header posé sur la photo (page d'accueil et pages à visuel) */
body.overlay header{position:fixed; left:0; right:0; background:transparent; border-bottom-color:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; color:#fff;}
body.overlay header nav.main-nav{color:#fff;}
body.overlay header .logo .logo-dark{display:none;} body.overlay header .logo .logo-light{display:block;}
body.overlay header .btn.ghost{color:#fff; border-color:rgba(255,255,255,.5);}
body.overlay header .btn.ghost:hover{background:#fff; color:var(--ink);}
body.overlay header .btn:not(.ghost){background:var(--cream); color:var(--ink);}
body.overlay header .menu-toggle{border-color:rgba(255,255,255,.4); color:#fff;}
body.overlay header.scrolled{background:rgba(18,23,21,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom-color:rgba(255,255,255,.08);}

/* ---------- Page hero (sous-pages) ---------- */
.page-hero{position:relative; text-align:left; padding:170px 0 80px; background:var(--ink); color:#fff; overflow:hidden; isolation:isolate;}
.page-hero::before{content:""; position:absolute; inset:0; z-index:-2; background:var(--hero-img, none) center/cover no-repeat; opacity:.55; transform:scale(1.04);}
.page-hero::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(18,23,21,.55) 0%, rgba(18,23,21,.25) 45%, rgba(18,23,21,.85) 100%);}
.page-hero .wrap{max-width:1240px;}
.page-hero .eyebrow{color:var(--sage); margin-bottom:22px;}
.page-hero h1{font-size:clamp(46px,7vw,96px); font-weight:500; line-height:.98; margin-bottom:22px; max-width:900px;}
.page-hero p{color:rgba(255,255,255,.78); font-size:17px; max-width:560px; margin:0;}
.breadcrumb{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:28px;}
.breadcrumb a:hover{color:#fff;}
.page-hero.compact{padding:150px 0 56px;}
.page-hero.compact h1{font-size:clamp(40px,5vw,68px);}

/* ---------- Cartes & éléments communs ---------- */
.feature{border-radius:var(--radius); border-color:var(--border); padding:34px; background:#fff;}
.feature h3{font-size:26px; margin:18px 0 10px;}
.feature p{color:var(--text-soft); font-size:15px; line-height:1.7;}
.feature .ic{width:auto; height:auto; background:none; font-size:12px; font-weight:600; letter-spacing:.2em; color:var(--green);}
.chip{border-radius:999px;}
.panel, .kpi, .auth-card, .pack-card, .family-tab, .testi, .info-card{border-radius:var(--radius);}
.panel-head h2, .family-head h2{font-family:var(--serif); font-weight:500; font-size:30px;}
.kpi-value, .pack-tile-count b, .stats b{font-family:var(--serif); font-weight:500;}
.kpi-value{font-size:36px;}
input, select, textarea{font-family:var(--sans);}
.field input, .field select, .field textarea, .contact-form input, .contact-form textarea{border-radius:12px;}
.toast{border-radius:999px; background:var(--ink);}

/* ---------- Footer ---------- */
footer.pf-footer{background:var(--ink); color:rgba(255,255,255,.72); border:0; padding:110px 0 36px; margin-top:0;}
.pf-footer .foot-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px; padding-bottom:72px; border-bottom:1px solid rgba(255,255,255,.1);}
.pf-footer .foot-brand img{height:44px; width:auto; margin-bottom:26px;}
.pf-footer .foot-brand p{font-size:14px; line-height:1.8; max-width:300px; color:rgba(255,255,255,.6);}
.pf-footer .foot-social{display:flex; gap:10px; margin-top:26px;}
.pf-footer .foot-social a{width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; color:#fff; transition:background .3s, border-color .3s;}
.pf-footer .foot-social a:hover{background:var(--green); border-color:var(--green);}
.pf-footer h4{font-family:var(--sans); color:#fff; font-size:11px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; margin-bottom:24px;}
.pf-footer ul{list-style:none; font-size:14px; color:rgba(255,255,255,.62);}
.pf-footer li{margin-bottom:13px;}
.pf-footer li a:hover{color:#fff;}
.pf-footer .foot-big{font-family:var(--serif); font-size:clamp(56px,12vw,190px); line-height:.9; color:rgba(255,255,255,.06); letter-spacing:-.02em; margin:48px 0 10px; white-space:nowrap; overflow:hidden; user-select:none;}
.pf-footer .foot-bottom{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:0; border:0; font-size:12.5px; color:rgba(255,255,255,.45);}
.pf-footer .foot-bottom a:hover{color:#fff;}

/* ---------- Bandeau CTA (toutes pages) ---------- */
.cta-x{position:relative; isolation:isolate; overflow:hidden; background:var(--ink); color:#fff; padding:150px 0; text-align:center;}
.cta-x::before{content:""; position:absolute; inset:0; z-index:-2; background:var(--cta-img, url('/img/pf/vestiaire.jpg')) center 30%/cover no-repeat; opacity:.42;}
.cta-x::after{content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at center, rgba(18,23,21,.35), rgba(18,23,21,.9) 75%);}
.cta-x .eyebrow{color:var(--sage); margin-bottom:26px;}
.cta-x h2{font-size:clamp(44px,6.4vw,92px); line-height:.98; margin:0 auto 24px; max-width:900px;}
.cta-x p{color:rgba(255,255,255,.75); max-width:520px; margin:0 auto 38px; font-size:17px;}
.cta-x .actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

/* ---------- Accueil : hero ---------- */
.hx{position:relative; min-height:100svh; display:flex; align-items:flex-end; color:#fff; background:var(--ink); overflow:hidden; isolation:isolate; padding:0;}
.hx-media{position:absolute; inset:0; z-index:-2;}
.hx-media img{width:100%; height:100%; object-fit:cover; object-position:center 30%; transform:scale(1.08); animation:hx-zoom 14s var(--ease) forwards;}
@keyframes hx-zoom{to{transform:scale(1);}}
.hx::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(18,23,21,.82) 0%, rgba(18,23,21,.45) 48%, rgba(18,23,21,.15) 100%), linear-gradient(0deg, rgba(18,23,21,.85) 0%, transparent 45%);}
.hx .wrap{width:100%; padding-bottom:110px; padding-top:160px; max-width:1360px;}
.hx .eyebrow{color:var(--sage); margin-bottom:30px;}
.hx h1{font-size:clamp(54px,9vw,138px); line-height:.92; font-weight:500; max-width:1000px; margin-bottom:30px;}
.hx h1 em{color:var(--sage);}
.hx p.lead{font-size:clamp(16px,1.4vw,19px); line-height:1.7; color:rgba(255,255,255,.8); max-width:520px; margin-bottom:40px;}
.hx .actions{display:flex; gap:12px; flex-wrap:wrap;}
.hx-info{position:absolute; right:28px; bottom:110px; display:grid; gap:18px; text-align:right; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.75);}
.hx-info b{display:block; font-family:var(--serif); font-size:34px; letter-spacing:0; text-transform:none; color:#fff; font-weight:500;}
.hx-scroll{position:absolute; left:50%; bottom:28px; transform:translateX(-50%); width:1px; height:56px; background:linear-gradient(rgba(255,255,255,.7), transparent); animation:scroll-cue 2.2s ease-in-out infinite;}
@keyframes scroll-cue{0%,100%{opacity:.25; transform:translate(-50%,0);} 50%{opacity:1; transform:translate(-50%,10px);}}

/* Bandeau défilant des disciplines */
.marquee{background:var(--green); color:#fff; overflow:hidden; padding:22px 0; white-space:nowrap;}
.marquee-track{display:inline-flex; gap:48px; animation:marquee 38s linear infinite; padding-left:48px;}
.marquee span{font-family:var(--serif); font-size:28px; font-style:italic; display:inline-flex; align-items:center; gap:48px;}
.marquee span::after{content:"✦"; font-style:normal; font-size:13px; opacity:.6;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* Split éditorial */
.split{display:grid; grid-template-columns:1fr 1fr; gap:96px; align-items:center;}
.split.reverse .split-media{order:2;}
.split-media{position:relative;}
.split-media img{width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:4px;}
.split-media .tag{position:absolute; left:-28px; bottom:48px; background:var(--cream); color:var(--ink); padding:22px 26px; border-radius:4px; box-shadow:0 30px 60px -30px rgba(18,23,21,.45); max-width:240px;}
.split-media .tag b{display:block; font-family:var(--serif); font-size:40px; font-weight:500; line-height:1;}
.split-media .tag span{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-soft);}
.split-media .inset{position:absolute; right:-36px; top:-36px; width:42%; aspect-ratio:3/4; object-fit:cover; border:8px solid var(--cream); border-radius:4px;}
.split-text h2{font-size:clamp(40px,4.8vw,68px); margin:22px 0 26px;}
.split-text p{color:var(--text-soft); font-size:17px; line-height:1.8; margin-bottom:18px;}
.split-text .facts{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:40px 0; padding:30px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.split-text .facts b{display:block; font-family:var(--serif); font-size:44px; font-weight:500; line-height:1; color:var(--green);}
.split-text .facts span{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-soft);}

/* Deux univers */
.univers{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.univers-card{position:relative; min-height:640px; border-radius:4px; overflow:hidden; color:#fff; display:flex; align-items:flex-end; isolation:isolate;}
.univers-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease);}
.univers-card::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(18,23,21,.92) 0%, rgba(18,23,21,.35) 55%, rgba(18,23,21,.1) 100%);}
.univers-card:hover img{transform:scale(1.05);}
.univers-body{padding:44px;}
.univers-body .room{font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--sage);}
.univers-body h3{font-size:clamp(40px,4vw,58px); margin:12px 0 14px;}
.univers-body p{color:rgba(255,255,255,.78); max-width:420px; margin-bottom:22px;}
.univers-body .chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px;}
.univers-body .chips span{font-size:12px; padding:7px 13px; border:1px solid rgba(255,255,255,.28); border-radius:999px; color:rgba(255,255,255,.9);}
.univers-body .price{display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:24px; border-top:1px solid rgba(255,255,255,.18);}
.univers-body .price b{font-family:var(--serif); font-size:34px; font-weight:500;}
.univers-body .price small{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); display:block;}

/* Étapes */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--border);}
.step{padding:44px 40px 10px 0; border-right:1px solid var(--border); margin-right:40px;}
.step:last-child{border-right:0; margin-right:0;}
.step .num{font-family:var(--serif); font-size:72px; line-height:1; color:var(--green); font-style:italic;}
.step h3{font-size:30px; margin:22px 0 12px;}
.step p{color:var(--text-soft); font-size:15.5px; line-height:1.75; max-width:320px;}

/* Prochains cours (live) */
.live{background:var(--ink-2); color:#fff;}
.live .section-head h2{color:#fff;} .live .section-head p{color:rgba(255,255,255,.65);} .live .eyebrow{color:var(--sage);}
.live-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:48px;}
.live-head .section-head{margin:0;}
.live-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:14px;}
.live-item{display:flex; flex-direction:column; gap:12px; padding:26px; border:1px solid rgba(255,255,255,.1); border-radius:var(--radius); background:rgba(255,255,255,.03); transition:background .3s, border-color .3s, transform .3s var(--ease);}
.live-item:hover{background:rgba(255,255,255,.07); border-color:rgba(183,198,181,.4); transform:translateY(-3px);}
.live-item .when{display:flex; justify-content:space-between; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--sage);}
.live-item h3{font-size:30px; color:#fff;}
.live-item .meta{font-size:13.5px; color:rgba(255,255,255,.6);}
.live-item .seats{margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12.5px; color:rgba(255,255,255,.75);}
.live-item .bar{flex:1; height:3px; background:rgba(255,255,255,.12); border-radius:3px; overflow:hidden;}
.live-item .bar i{display:block; height:100%; background:var(--sage);}
.live-item.full .bar i{background:#D98C7A;}
.live-skel{height:190px; border-radius:var(--radius); background:linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.09), rgba(255,255,255,.04)); background-size:200% 100%; animation:skel 1.4s linear infinite;}
@keyframes skel{to{background-position:-200% 0;}}

/* Galerie Instagram */
.ig-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:280px; gap:12px;}
.ig-grid a{position:relative; overflow:hidden; border-radius:4px; display:block; background:var(--sand);}
.ig-grid a.tall{grid-row:span 2;} .ig-grid a.wide{grid-column:span 2;}
.ig-grid img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease), filter .6s;}
.ig-grid a::after{content:"Voir sur Instagram"; position:absolute; inset:auto 16px 16px 16px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:#fff; opacity:0; transform:translateY(8px); transition:.4s var(--ease);}
.ig-grid a:hover img{transform:scale(1.06); filter:brightness(.7);}
.ig-grid a:hover::after{opacity:1; transform:none;}

/* Citations */
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.quote{padding:40px 36px; background:#fff; border:1px solid var(--border); border-radius:var(--radius); display:flex; flex-direction:column;}
.quote .mark{font-family:var(--serif); font-size:80px; line-height:.6; color:var(--green); height:40px;}
.quote p{font-family:var(--serif); font-size:24px; line-height:1.4; margin:18px 0 30px; color:var(--text);}
.quote .who{margin-top:auto; display:flex; align-items:center; gap:12px; font-size:13px;}
.quote .who i{width:40px; height:40px; border-radius:50%; background:var(--sand); display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:600; color:var(--green);}
.quote .who span{display:block; color:var(--text-soft); font-size:12px;}

/* Équipe */
.team{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px;}
.coach{padding:30px; border:1px solid var(--border); border-radius:var(--radius); background:#fff; display:flex; gap:18px; align-items:center;}
.coach i{flex:none; width:58px; height:58px; border-radius:50%; background:var(--green); color:#fff; font-style:normal; font-family:var(--serif); font-size:24px; display:flex; align-items:center; justify-content:center;}
.coach b{display:block; font-family:var(--serif); font-size:23px; font-weight:500; line-height:1.15;}
.coach span{font-size:12.5px; color:var(--text-soft);}

/* Mosaïque photos (studio) */
.mosaic{display:grid; grid-template-columns:repeat(12,1fr); gap:12px;}
.mosaic img{width:100%; height:100%; object-fit:cover; border-radius:4px;}
.mosaic .m1{grid-column:span 7; aspect-ratio:7/6;} .mosaic .m2{grid-column:span 5; aspect-ratio:5/6;}
.mosaic .m3{grid-column:span 4; aspect-ratio:4/5;} .mosaic .m4{grid-column:span 4; aspect-ratio:4/5;} .mosaic .m5{grid-column:span 4; aspect-ratio:4/5;}

/* Valeurs */
.values{display:grid; grid-template-columns:repeat(3,1fr); gap:56px;}
.value b{font-family:var(--serif); font-size:16px; font-style:italic; color:var(--green);}
.value h3{font-size:32px; margin:12px 0 12px;}
.value p{color:var(--text-soft); line-height:1.75;}

/* Contact */
.contact-x{display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:stretch;}
.contact-list{display:grid; gap:0; border-top:1px solid var(--border);}
.contact-row{display:grid; grid-template-columns:140px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--border); align-items:baseline;}
.contact-row dt{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-soft);}
.contact-row dd{font-family:var(--serif); font-size:26px; line-height:1.3;}
.contact-row dd a:hover{color:var(--green);}
.contact-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:32px;}
.map-x{border-radius:4px; overflow:hidden; min-height:520px; background:var(--sand);}
.map-x iframe{width:100%; height:100%; min-height:520px; border:0; filter:grayscale(.35) contrast(1.05);}
.contact-form-x{display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:820px;}
.contact-form-x .full{grid-column:1/-1;}
.contact-form-x label{display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-soft); margin-bottom:8px;}
.contact-form-x input, .contact-form-x textarea, .contact-form-x select{width:100%; padding:16px 18px; border:1px solid var(--border); border-radius:12px; background:#fff; font:inherit; font-size:15px; color:var(--text); outline:none; transition:border-color .2s, box-shadow .2s;}
.contact-form-x input:focus, .contact-form-x textarea:focus, .contact-form-x select:focus{border-color:var(--green); box-shadow:0 0 0 4px rgba(63,90,80,.12);}
.contact-form-x textarea{min-height:150px; resize:vertical;}

/* Bouton WhatsApp flottant */
.wa-float{position:fixed; right:22px; bottom:22px; z-index:60; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -10px rgba(0,0,0,.45); transition:transform .3s var(--ease);}
.wa-float:hover{transform:scale(1.08);}
.wa-float svg{width:28px; height:28px;}

/* Apparition au défilement */
.reveal{opacity:0; transform:translateY(34px); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal.d1{transition-delay:.1s;} .reveal.d2{transition-delay:.2s;} .reveal.d3{transition-delay:.3s;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  .marquee-track, .hx-media img, .hx-scroll{animation:none;}
}

/* Sections claires alternées */
.bg-sand{background:var(--sand);} .bg-white{background:#fff;}
.pf-alt{background:var(--sand);}

/* ---------- Pages membres : ajustements ---------- */
.auth-section, .account-section, .checkout-section, .planning-section{padding-top:150px;}
.page-hero + .planning-section, .page-hero + .checkout-section, .page-hero + section{padding-top:72px;}
.auth-side h1{font-size:clamp(40px,4.6vw,60px); font-weight:500;}
.account-head h1{font-size:44px; font-weight:500;}
.family-tab.active{background:var(--ink); border-color:var(--ink);}
.pack-card:hover{border-color:var(--green);}
.pack-price{font-family:var(--serif);}
.compare-section{background:var(--sand);}

/* ---------- Responsive ---------- */
@media (max-width: 1100px){
  nav.main-nav{gap:22px;}
  .hx-info{display:none;}
  .split{gap:64px;}
}
@media (max-width: 960px){
  section{padding:88px 0;}
  .menu-toggle{display:flex;}
  nav.main-nav{position:fixed; inset:0; top:0; bottom:0; height:100dvh; transform:none; border:0; z-index:-1; background:var(--ink); color:#fff !important; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; padding:110px 32px 40px; font-size:0; letter-spacing:0; text-transform:none; opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s;}
  nav.main-nav.open{opacity:1; visibility:visible; display:flex;}
  nav.main-nav a{font-family:var(--serif); font-size:42px; opacity:.85; padding:4px 0; border:0;}
  nav.main-nav a::after{display:none;}
  header:has(nav.main-nav.open){background:transparent !important; color:#fff; border-color:transparent; backdrop-filter:none;}
  header:has(nav.main-nav.open) .logo .logo-dark{display:none;} header:has(nav.main-nav.open) .logo .logo-light{display:block;}
  header:has(nav.main-nav.open) .menu-toggle{color:#fff; border-color:rgba(255,255,255,.4);}
  .split, .split.reverse{grid-template-columns:1fr; gap:56px;}
  .split.reverse .split-media{order:0;}
  .split-media .inset{display:none;}
  .split-media .tag{left:16px; bottom:16px;}
  .univers{grid-template-columns:1fr;}
  .univers-card{min-height:560px;}
  .steps{grid-template-columns:1fr;}
  .step{border-right:0; margin-right:0; border-bottom:1px solid var(--border); padding:36px 0;}
  .quotes{grid-template-columns:1fr;}
  .values{grid-template-columns:1fr; gap:40px;}
  .ig-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:220px;}
  .contact-x{grid-template-columns:1fr;}
  .pf-footer .foot-top{grid-template-columns:1fr 1fr; gap:40px;}
  .mosaic .m1,.mosaic .m2{grid-column:span 12;} .mosaic .m3,.mosaic .m4,.mosaic .m5{grid-column:span 6;}
  .mosaic .m5{grid-column:span 12; aspect-ratio:16/10;}
}
@media (max-width: 640px){
  .wrap{padding:0 20px;}
  header .wrap{height:72px;}
  .logo img{height:24px;}
  .header-actions .btn.small:not(.account-link){display:none;}
  .header-actions .account-link{padding:10px 14px; font-size:10.5px;}
  .hx .wrap{padding-bottom:84px;}
  .hx .actions .btn{flex:1; justify-content:center;}
  .split-text .facts{grid-template-columns:repeat(3,1fr); gap:10px;}
  .split-text .facts b{font-size:34px;}
  .univers-body{padding:30px 24px;}
  .ig-grid{grid-auto-rows:170px; gap:8px;}
  .ig-grid a.wide{grid-column:span 2;}
  .pf-footer .foot-top{grid-template-columns:1fr;}
  .contact-row{grid-template-columns:1fr; gap:6px;}
  .contact-form-x{grid-template-columns:1fr;}
  .page-hero{padding:130px 0 56px;}
  .cta-x{padding:110px 0;}
  .marquee span{font-size:22px;}
}

/* Règlement en 4 colonnes (infos pratiques) */
.steps.rules{grid-template-columns:repeat(4,1fr);}
.steps.rules .step{margin-right:28px; padding-right:28px;}
@media (max-width: 960px){ .steps.rules{grid-template-columns:1fr 1fr;} .steps.rules .step{margin-right:0; border-right:0;} }
@media (max-width: 640px){ .steps.rules{grid-template-columns:1fr;} }
.family-tabs{grid-template-columns:repeat(2,minmax(0,320px));}
@media (max-width: 640px){ .family-tabs{grid-template-columns:1fr 1fr;} }
body:has(nav.main-nav.open) .wa-float{display:none;}
@media (max-width: 640px){
  .hx .actions .btn, .cta-x .actions .btn{padding:14px 16px; letter-spacing:.08em; white-space:nowrap; font-size:11.5px;}
}
@media (max-width: 640px){
  .family-tab{min-width:0; padding:12px 14px; gap:8px;}
  .family-tab .ft-icon{display:none;}
  .family-tab .ft-text{min-width:0;}
}
