/* =========================================================
   Studio On — Design system (repris fidèlement du design Claude)
   + extensions multi-pages (hero de page, aperçus, formulaire, menu mobile)
   ========================================================= */

:root {
  --noir: #0C0C0C;
  --ecru: #FFFFFF;
  --ecru-2: #E1E1E1;
  --ivoire: #F1EBDE;
  --vanille: #FAF0BB;
  --vanille-soft: #FAF0BB;
  --blanc: #F1EBDE;
  --line: rgba(12,12,12,.12);
  --line-d: rgba(239,231,216,.14);
  --f-display: "Clash Display", "Helvetica Neue", Helvetica, Inter, system-ui, sans-serif;
  --f-body: "Inter", "Helvetica Neue", system-ui, sans-serif;
  --pad: clamp(20px, 4vw, 56px);
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overflow-x: hidden; max-width: 100%; }
body {
  font-family: var(--f-body);
  color: var(--noir);
  background: #FFFFFF;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
* { -webkit-tap-highlight-color: transparent; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-display); font-weight: 600; letter-spacing: -0.02em; }
img { display: block; max-width: 100%; }

.h-mega { font-family: var(--f-display); font-weight: 600; font-size: clamp(68px, 14vw, 220px); line-height: 0.88; letter-spacing: -0.045em; text-transform: uppercase; }
.h-xl { font-family: var(--f-display); font-weight: 600; font-size: clamp(48px, 9vw, 148px); line-height: 0.95; letter-spacing: -0.04em; text-transform: uppercase; }
.h-lg { font-family: var(--f-display); font-weight: 600; font-size: clamp(32px, 4vw, 56px); line-height: 0.98; letter-spacing: -0.03em; text-transform: uppercase; }
.h-md { font-family: var(--f-display); font-weight: 600; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.05; letter-spacing: -0.02em; text-transform: uppercase; }
.eyebrow { font-family: var(--f-body); font-weight: 500; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 10px; }
.eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; display: inline-block; opacity: .6; }
.eyebrow--no-dot::before { display: none; }

/* Logo texte (fallback) */
.logo { display: inline-flex; align-items: center; gap: 0.22em; line-height: 1; font-family: var(--f-display); font-weight: 700; letter-spacing: -0.035em; text-transform: uppercase; }
.logo__text { line-height: .78; }
.logo__pill { display: inline-flex; align-items: center; justify-content: flex-end; background: currentColor; border-radius: 999px; height: 0.78em; width: 1.45em; padding: 0 0.1em; margin: 0 0.08em 0 0.1em; flex-shrink: 0; }
.logo__pill::before { content: ""; display: inline-block; width: 0.58em; height: 0.58em; border-radius: 50%; background: var(--ecru); }
.logo--dark .logo__pill::before { background: var(--noir); }
.logo--light .logo__pill::before { background: var(--noir); }
.logo--inline-yellow { color: var(--vanille); }
.logo--inline-yellow .logo__pill::before { background: var(--noir); }
/* Toggle "O" du logo, en SVG (reprend la géométrie du vrai logo, couleur via currentColor) */
.logo-toggle { display: inline-block; height: 0.72em; width: auto; vertical-align: baseline; position: relative; top: 0; }
/* Logo image (quand le vrai logo est fourni) */
.logo-img { display: block; height: auto; width: auto; max-width: 100%; }
.nav__logo .logo-img { height: 24px; width: auto; max-width: none; }
.foot-logo .logo-img { height: auto; width: min(280px, 66vw); max-width: 100%; margin-bottom: 20px; }
@media (max-width: 520px) { .nav__logo .logo-img { height: 21px; } }

/* Navigation */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; padding: 18px var(--pad); display: flex; align-items: center; justify-content: space-between; background: rgba(12,12,12,0.92); color: var(--ecru); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: background .3s; }
.nav--dark { background: rgba(12,12,12,0.92); color: var(--ecru); }
.nav__logo, .nav__logo:link, .nav__logo:visited { font-size: 22px; gap: 0.08em; color: #FFFFFF; -webkit-text-fill-color: #FFFFFF; }
.foot-logo, .foot-logo:link, .foot-logo:visited { color: #FFFFFF; -webkit-text-fill-color: #FFFFFF; }
.nav__logo .logo__pill { margin-right: 0.02em; }
.nav__logo .logo__pill::before { background: var(--noir); }
.nav__links { display: flex; gap: 36px; font-size: 13px; font-weight: 500; letter-spacing: .04em; }
.nav__links a { opacity: .82; transition: opacity .2s; }
.nav__links a:hover, .nav__links a.is-current { opacity: 1; }
.nav__cta { display: inline-flex; align-items: center; gap: 10px; background: var(--vanille); color: var(--noir); padding: 10px 18px; border-radius: 999px; font-size: 13px; font-weight: 500; transition: transform .2s; }
.nav__cta:hover { transform: translateY(-1px); }
.nav__cta .toggle { width: 22px; height: 12px; border-radius: 999px; background: var(--noir); position: relative; display: inline-block; }
.nav__cta .toggle::after { content: ""; position: absolute; right: 2px; top: 2px; width: 8px; height: 8px; border-radius: 50%; background: var(--vanille); }
.nav__actions { display: flex; align-items: center; gap: 10px; }
.nav__cta--ghost { background: transparent; color: var(--ecru); border: 1px solid rgba(240,236,225,0.4); }
.nav__cta--ghost:hover { background: rgba(240,236,225,0.10); }
.nav__mobile .nav__cta--ghost, .nav__mobile .nav__cta--ghost:link, .nav__mobile .nav__cta--ghost:visited { background: transparent; color: var(--ecru); -webkit-text-fill-color: var(--ecru); border: 1px solid rgba(240,236,225,0.4); margin-top: 10px; }
/* Section Télécharge l'app */
.app-dl { text-align: center; display: flex; flex-direction: column; align-items: center; gap: clamp(18px, 2.6vw, 30px); }
.app-dl--page { min-height: 86vh; justify-content: center; padding-top: clamp(110px, 15vh, 190px); }
.app-dl__icon { width: clamp(92px, 10vw, 124px); height: clamp(92px, 10vw, 124px); border-radius: 20px; object-fit: contain; border: 1px solid rgba(240,236,225,0.18); box-shadow: 0 10px 34px rgba(0,0,0,.35); }
.app-dl__kicker { font: 500 13px var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--vanille); }
.app-dl__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(48px, 9vw, 120px); line-height: .95; letter-spacing: -.04em; margin: 0 0 clamp(16px, 2.4vw, 30px); }
.app-dl__p { max-width: 46ch; margin: 0 auto; font-family: var(--f-display); font-weight: 600; font-size: clamp(18px, 1.6vw, 26px); line-height: 1.25; letter-spacing: -.01em; }
.app-dl__list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; max-width: 920px; }
.app-dl__list li { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border: 1px solid var(--line-d); border-radius: 999px; font: 500 13px var(--f-body); letter-spacing: .04em; text-transform: uppercase; }
.app-dl__list li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--vanille); flex-shrink: 0; }
.app-dl__stores { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 32px; }
.store-btn { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1px; background: var(--vanille); color: var(--noir); padding: 11px 26px; border-radius: 999px; transition: transform .2s; }
.store-btn:hover { transform: translateY(-2px); }
.store-btn span { font: 600 10px var(--f-body); letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.store-btn strong { font-family: var(--f-display); font-weight: 600; font-size: 20px; letter-spacing: -.02em; line-height: 1.1; }
/* App - pastilles : une seule ligne sur ordi */
@media (min-width: 1000px) {
  .app-dl__list { flex-wrap: nowrap; gap: 10px; }
  .app-dl__list li { white-space: nowrap; font-size: 12px; padding: 10px 15px; }
}
/* App - pastilles : 2 colonnes (2 lignes max) sur mobile, plus compactes */
@media (max-width: 640px) {
  .app-dl__list { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
  .app-dl__list li { white-space: nowrap; justify-content: center; text-align: center; gap: 8px; padding: 9px 16px; font-size: 11px; letter-spacing: .03em; line-height: 1.15; }
  .app-dl__list li::before { width: 5px; height: 5px; }
  /* Mobile : boutons de téléchargement au-dessus des badges */
  .app-dl__stores { order: 2; margin-top: 8px; }
  .app-dl__list { order: 3; margin-top: 20px; }
}

/* Menu mobile (ajout pour la navigation multi-pages) */
.nav__burger { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 8px; color: var(--ecru); }
.nav__burger span { display: block; width: 24px; height: 2px; background: #FFFFFF; transition: transform .25s, opacity .25s; }
/* Conteneur du menu mobile : plein écran, overflow masqué → le tiroir hors-écran ne déborde jamais la page */
.nav__drawer-wrap { display: none; position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 55; }
.nav__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.5); opacity: 0; pointer-events: none; transition: opacity .3s; }
.nav__overlay.is-open { opacity: 1; pointer-events: auto; }
.nav__mobile { position: absolute; top: 0; right: 0; bottom: 0; width: min(78vw, 320px); background: var(--noir); color: var(--ecru); transform: translateX(100%); transition: transform .3s ease; display: flex; flex-direction: column; padding: 90px 32px 32px; gap: 6px; pointer-events: auto; }
.nav__mobile.is-open { transform: translateX(0); }
.nav__mobile a:not(.nav__cta) { font-family: var(--f-display); font-weight: 600; font-size: 20px; text-transform: uppercase; letter-spacing: -0.02em; padding: 11px 0; border-bottom: 1px solid var(--line-d); }
.nav__mobile .nav__cta, .nav__mobile .nav__cta:link, .nav__mobile .nav__cta:visited { display: inline-flex; align-items: center; justify-content: center; gap: 10px; align-self: stretch; width: 100%; margin-top: 12px; font-family: var(--f-body); font-weight: 600; font-size: 14px; text-transform: none; letter-spacing: normal; line-height: 1; padding: 15px 20px; border: 1px solid transparent; color: var(--noir); -webkit-text-fill-color: var(--noir); }
/* Les deux boutons du menu mobile : même taille (pleine largeur), placés plus bas */
.nav__mobile .nav__cta.nav__cta--ghost, .nav__mobile .nav__cta.nav__cta--ghost:link, .nav__mobile .nav__cta.nav__cta--ghost:visited { background: transparent; color: var(--ecru); -webkit-text-fill-color: var(--ecru); border: 1px solid rgba(240,236,225,0.45); margin-top: auto; }
@media (max-width: 1000px) {
  .nav__links { display: none; }
  .nav > .nav__cta { display: none; }
  .nav__actions { display: none; }
  .nav__burger { display: flex; }
  .nav__drawer-wrap { display: block; }
  body.menu-open { overflow: hidden; }
}

/* Hero manifeste (accueil) */
.intro-statement { background: var(--noir); color: var(--ecru); padding: clamp(120px, 14vw, 170px) var(--pad) clamp(60px, 7vw, 90px); display: flex; flex-direction: column; gap: 18px; }
.intro-statement__screen { display: flex; flex-direction: column; gap: clamp(40px, 5vw, 64px); }
.intro-statement__kicker-top { font: 500 13px var(--f-body); letter-spacing: .16em; text-transform: uppercase; opacity: .75; }
.intro-statement__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(48px, 9vw, 148px); line-height: 0.95; letter-spacing: -0.04em; margin: 0; max-width: 1500px; }
.intro-statement__h em { color: var(--vanille); font-style: normal; }
.intro-statement__lede-kicker { font-family: var(--f-display); font-weight: 600; font-size: clamp(18px, 1.4vw, 22px); letter-spacing: -0.01em; text-transform: uppercase; line-height: 1.15; margin: 0; white-space: nowrap; }
.intro-statement__lede-kicker em { color: var(--vanille); font-style: normal; }
.intro-statement__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font: 500 13px/1.4 var(--f-body); letter-spacing: .04em; text-transform: uppercase; opacity: .85; max-width: 46ch; }
.intro-statement__list li { display: flex; align-items: center; gap: 12px; padding-top: 10px; border-top: 1px solid var(--line-d); }
.intro-statement__list li::before { content: ""; flex-shrink: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--vanille); }
/* Mobile : hero plein écran — titre centré, accroche en bas sur une ligne, la suite au scroll */
@media (max-width: 900px) {
  .intro-statement { padding: 0; gap: 0; min-height: 100vh; min-height: 100svh; }
  .intro-statement__screen { min-height: 100vh; min-height: 100svh; gap: 0; padding: 88px var(--pad) 14px; }
  .intro-statement__h { margin-top: auto; }
  .intro-statement__lede-kicker { margin-top: auto; font-size: clamp(12px, 3.7vw, 22px); }
  .intro-statement__list { padding: 10px var(--pad) 56px; }
}

/* Hero des pages intérieures (ajout multi-pages) */
.page-hero { background: var(--noir); color: var(--ecru); padding: clamp(120px, 15vw, 170px) var(--pad) clamp(48px, 6vw, 72px); text-align: center; }
.page-hero__kicker { font: 500 12px var(--f-body); letter-spacing: .18em; text-transform: uppercase; opacity: .7; margin-bottom: 22px; display: inline-block; }
.page-hero__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(36px, 6vw, 64px); line-height: .96; letter-spacing: -0.035em; text-transform: uppercase; margin: 0; }
.page-hero__h em { color: var(--vanille); font-style: normal; }
.page-hero__p { margin: 22px auto 0; font-family: var(--f-display); font-weight: 500; font-size: clamp(16px, 2vw, 21px); letter-spacing: -0.015em; opacity: .85; max-width: 44ch; }
.page-hero__p em { color: var(--vanille); font-style: normal; }
/* La page réserver garde l'alignement à gauche (bloc contact) */
.page-hero--reserve { text-align: left; }
.page-hero--reserve .page-hero__p { margin-left: 0; margin-right: 0; }
.page-hero--reserve .page-hero__contact { justify-content: flex-start; }

/* Banderole défilante */
.marquee { overflow: hidden; background: var(--noir); color: var(--ecru); padding: 20px 0; font-family: var(--f-display); font-weight: 500; text-transform: uppercase; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -0.01em; white-space: nowrap; }
.marquee__track { display: inline-flex; gap: 48px; padding-left: 48px; animation: marquee 28s linear infinite; }
.marquee__track > span { display: inline-flex; align-items: center; gap: 48px; }
.marquee__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--vanille); display: inline-block; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

section { padding: clamp(80px, 10vw, 140px) var(--pad); }
.section--dark { background: var(--noir); color: var(--ecru); }
.section--ivoire { background: #FFFFFF; }
.section-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 40px; flex-wrap: wrap; margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.section--dark .section-meta { border-bottom-color: var(--line-d); }
.section-head { display: block; text-align: center; border-bottom: none; padding-bottom: 56px; }
.section-head__h { margin: 0 auto; max-width: 16ch; font-size: clamp(40px, 6vw, 65px); }
.section-head__p { margin: 24px auto 0; font-family: var(--f-display); font-weight: 600; font-size: clamp(16px, 2vw, 22px); letter-spacing: -0.02em; }
.section-head__p em { color: var(--vanille); font-style: normal; }
.section-head__h em { color: var(--vanille); font-style: normal; }
/* Aérer le bloc Tarifs */
#tarifs { padding-top: clamp(120px, 13vw, 200px); }
#tarifs .section-head { padding-bottom: clamp(64px, 7vw, 104px); }
@media (max-width: 640px) {
  #tarifs { padding-top: 172px; }
  #tarifs .section-head { padding-bottom: 128px; }
}
/* Aérer la section Séances sur ordinateur uniquement (mobile inchangé) */
@media (min-width: 641px) {
  #seances .section-head { padding-top: clamp(70px, 8vw, 120px) !important; padding-bottom: clamp(64px, 7vw, 104px); }
}
/* Mobile : éviter le double espace entre la galerie Séances et le titre Coachs */
@media (max-width: 640px) {
  #seances { padding-bottom: 34px; }
  #coachs { padding-top: 56px; }
  /* Moins d'espace entre les badges et les images (Séances) sur mobile */
  #seances .section-head { padding-bottom: 22px; }
  /* Moins d'espace entre le sous-titre et les onglets villes (Studios) sur mobile */
  #studios .section-head { padding-bottom: 20px; }
  #studios .city-chips { margin-bottom: 24px; }
}
.hl-box { display: inline-block; background: var(--vanille); color: var(--noir); border-radius: 0.24em; padding: 0.06em 0.16em; line-height: 1; font-style: normal; vertical-align: baseline; }
.section-head__h--oneline { max-width: none !important; }
@media (min-width: 700px) { .section-head__h--oneline { white-space: nowrap; } }

/* Aperçus accueil condensé (ajout) */
.overview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 900px) { .overview { grid-template-columns: 1fr; } }
.ov-card { position: relative; background: #1E1E1E; color: var(--ecru); border-radius: 16px; padding: 30px 28px; min-height: 260px; display: flex; flex-direction: column; justify-content: space-between; gap: 30px; transition: transform .3s ease; overflow: hidden; }
.ov-card:hover { transform: translateY(-4px); }
.ov-card__num { font: 500 11px var(--f-body); letter-spacing: .2em; text-transform: uppercase; opacity: .6; }
.ov-card__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(28px, 3vw, 40px); line-height: .98; letter-spacing: -0.03em; text-transform: uppercase; }
.ov-card__p { font-size: 14px; line-height: 1.55; opacity: .75; }
.ov-card__link { display: inline-flex; align-items: center; gap: 10px; font: 500 12px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--vanille); margin-top: auto; }
.ov-card__link span { transition: transform .2s; }
.ov-card:hover .ov-card__link span { transform: translateX(4px); }

/* Concept — étapes */
.principes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
@media (max-width: 900px) { .principes { grid-template-columns: 1fr; } }
.principe { padding: 48px 40px; min-height: 340px; display: flex; flex-direction: column; justify-content: flex-start; gap: 22px; }
@media (max-width: 900px) { .principe { padding: 40px 0; } }
.principe__top { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 22px; }
.step-num { display: inline-flex; align-items: center; gap: 9px; height: 40px; padding: 0 5px 0 15px; background: var(--vanille); color: var(--noir); border-radius: 999px; font-family: var(--f-display); font-weight: 600; font-size: 22px; letter-spacing: -0.02em; line-height: 1; }
.step-num::after { content: ""; width: 30px; height: 30px; border-radius: 50%; background: var(--noir); }
.step-label { font: 500 12px var(--f-body); letter-spacing: .22em; text-transform: uppercase; opacity: .9; }
.principe__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(36px, 4vw, 56px); line-height: .95; letter-spacing: -0.035em; text-transform: uppercase; margin: 0; }
.principe__p { font-size: 14px; line-height: 1.55; opacity: .75; max-width: 32ch; margin: 0; }

/* Brique « Chiffres clés » (durées, niveaux, coachs, nouveautés) */
.blk--stats { padding-top: clamp(48px, 6vw, 90px); padding-bottom: clamp(48px, 6vw, 90px); }
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; max-width: 1200px; margin: 0 auto; border-top: 1px solid var(--line-d); }
.stats-cell { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 34px clamp(14px, 2vw, 30px) 0; text-align: center; }
.stats-cell__fig { font-family: var(--f-display); font-weight: 600; font-size: clamp(44px, 5vw, 68px); line-height: 1; letter-spacing: -0.03em; color: var(--vanille); }
.stats-cell__kick { font: 500 12px var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--noir); margin-top: 10px; }
.blk--stats.section--dark .stats-cell__kick { color: var(--ecru); }
.stats-cell__p { font: 400 14px/1.6 var(--f-body); margin: 4px 0 0; max-width: 30ch; color: var(--noir); opacity: .65; }
.blk--stats.section--dark .stats-cell__p { color: var(--ecru); opacity: .65; }
@media (max-width: 900px) { .stats-row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .stats-row { grid-template-columns: 1fr; } .stats-cell { padding: 26px 0 0; } }

/* Brique « accroche » (grande phrase + texte de soutien) */
.blk--claim { padding-top: clamp(40px, 5vw, 70px); padding-bottom: clamp(48px, 6vw, 90px); }
.sea__claim { max-width: 1120px; margin: 0 auto; padding-top: clamp(30px, 3.6vw, 46px); border-top: 1px solid var(--line-d); display: flex; align-items: baseline; justify-content: space-between; gap: 20px 44px; flex-wrap: wrap; }
.sea__claim p { font-family: var(--f-display); font-weight: 600; font-size: clamp(22px, 2.8vw, 38px); line-height: 1.06; letter-spacing: -0.035em; text-transform: uppercase; margin: 0; max-width: 24ch; }
.sea__claim em { color: var(--vanille); font-style: normal; }
.sea__claim span { font: 400 13.5px/1.6 var(--f-body); opacity: .62; max-width: 32ch; }

/* Brique « Grille coachs » (crew) */
.blk--crew { padding-top: clamp(40px, 5vw, 70px); padding-bottom: clamp(48px, 6vw, 90px); }
.crew { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; max-width: 1180px; margin: 0 auto; }
@media (max-width: 1000px) { .crew { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .crew { grid-template-columns: 1fr; } }
.crew-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 26px; min-height: 260px; padding: 22px 22px 24px; border-radius: 16px; background: #1E1E1E; border: 1px solid rgba(255,255,255,.09); overflow: hidden; color: var(--ecru); transition: transform .3s ease, border-color .3s ease; }
.crew-card:hover { transform: translateY(-4px); border-color: rgba(250,240,187,.4); }
.crew-card__initial { position: absolute; right: -8px; bottom: -34px; font-family: var(--f-display); font-weight: 600; font-size: 190px; line-height: 1; letter-spacing: -0.06em; color: rgba(255,255,255,.05); pointer-events: none; transition: color .4s ease; text-transform: uppercase; }
.crew-card:hover .crew-card__initial { color: rgba(250,240,187,.12); }
.crew-card__top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.crew-card__mood { font: 500 9px var(--f-body); letter-spacing: .16em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; background: var(--vanille); color: var(--noir); }
.crew-card__body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 10px; }
.crew-card__name { font-family: var(--f-display); font-weight: 600; font-size: clamp(26px, 2.8vw, 34px); line-height: .95; letter-spacing: -0.035em; text-transform: uppercase; margin: 0; }
.crew-card__tag { font: 500 10px var(--f-body); letter-spacing: .16em; text-transform: uppercase; opacity: .55; }
.crew-card__p { font: 400 13px/1.55 var(--f-body); opacity: .68; margin: 0; }
.crew-card--note { background: var(--vanille); color: var(--noir); border-color: var(--vanille); justify-content: flex-start; gap: 14px; }
.crew-card--note:hover { border-color: var(--vanille); }
.crew-card--note .crew-card__kick { font: 500 10px var(--f-body); letter-spacing: .2em; text-transform: uppercase; opacity: .55; }
.crew-card--note h3 { font-family: var(--f-display); font-weight: 600; font-size: clamp(21px, 2.2vw, 27px); line-height: 1.02; letter-spacing: -0.03em; text-transform: uppercase; margin: 0; }
.crew-card--note p { font: 400 13px/1.55 var(--f-body); opacity: .72; margin: 0; }

/* Petite phrase discrète au-dessus du curseur de la formule */
.lvl__hint { font: 400 12.5px var(--f-body); letter-spacing: .01em; color: inherit; opacity: .5; text-align: center; margin: 0 0 16px; }

/* Séances : 3 colonnes d'intro (Première fois / Confirmé / Objectifs) */
.sea__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; max-width: 1120px; margin: 0 auto clamp(40px, 5vw, 62px); }
@media (max-width: 860px) { .sea__cols { grid-template-columns: 1fr; } }
.sea-col { display: flex; flex-direction: column; gap: 10px; padding: 24px clamp(20px, 2.6vw, 38px) 6px; border-top: 1px solid var(--line-d); text-align: left; }
@media (max-width: 860px) { .sea-col { padding: 22px 0 4px; } }
.sea-col__kick { font: 500 10px var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--vanille); }
.sea-col__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(19px, 2vw, 25px); line-height: 1.08; letter-spacing: -0.028em; text-transform: uppercase; margin: 0; color: var(--ecru); }
.sea-col__p { font: 400 13.5px/1.6 var(--f-body); opacity: .68; margin: 0; max-width: 32ch; color: var(--ecru); }

/* Galerie séances */
.filter-pills { display: flex; gap: 8px; margin-top: 28px; flex-wrap: nowrap; justify-content: center; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }
.filter-pills::-webkit-scrollbar { display: none; }
.filter-pill { font-family: var(--f-display); font-weight: 500; font-size: 13px; letter-spacing: .02em; border: 1px solid rgba(239,231,216,.3); color: var(--ecru); padding: 7px 14px; border-radius: 999px; white-space: nowrap; flex-shrink: 0; background: transparent; }
button.filter-pill { cursor: pointer; font-family: var(--f-display); }
.filter-pill--active { background: var(--vanille); color: var(--noir); border-color: var(--vanille); }
/* Filtres séances : tout tient sur une seule ligne sur mobile, sans défilement */
@media (max-width: 640px) {
  .filter-pills { flex-wrap: nowrap; overflow-x: visible; gap: 6px; margin-top: 20px; padding-bottom: 0; }
  .filter-pill { font-size: clamp(9.5px, 2.7vw, 12px); letter-spacing: 0; padding: 6px clamp(7px, 2.2vw, 12px); flex: 0 1 auto; min-width: 0; }
}
.gallery { display: grid; grid-template-columns: 2fr 1.3fr 1fr 1fr; grid-auto-rows: 220px; gap: 14px; }
@media (max-width: 900px) { .gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 180px; gap: 10px; } }
.gal-cell { position: relative; background-color: var(--ecru-2); border-radius: 14px; overflow: hidden; display: flex; align-items: flex-end; padding: 16px; background-size: cover; background-position: center; background-repeat: no-repeat; }
.gal-cell--dark { background-color: var(--noir); color: var(--ecru); }
.gal-cell--tall { grid-row: span 2; }
.gal-cell--wide { grid-column: span 2; }
@media (max-width: 900px) { .gal-cell--tall, .gal-cell--wide { grid-row: auto; grid-column: auto; } }
.gal-cell::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(12,12,12,.04) 0 2px, transparent 2px 8px); pointer-events: none; }
.gal-cell--dark::before { background: repeating-linear-gradient(135deg, rgba(239,231,216,.04) 0 2px, transparent 2px 8px); }
.gal-cell .ph-label { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: rgba(12,12,12,.3); font: 500 11px var(--f-body); letter-spacing: .12em; text-transform: uppercase; pointer-events: none; }
.gal-cell--dark .ph-label { color: rgba(239,231,216,.25); }
.gal-badge { position: absolute; top: 14px; left: 14px; background: var(--vanille); color: var(--noir); padding: 6px 10px; border-radius: 4px; font: 700 10px var(--f-display); letter-spacing: .1em; text-transform: uppercase; z-index: 2; }
.gal-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 56px; height: 56px; border-radius: 50%; border: 1.5px solid var(--ecru); display: flex; align-items: center; justify-content: center; color: var(--ecru); backdrop-filter: blur(4px); z-index: 2; }
.gal-play::after { content: ""; width: 0; height: 0; border-left: 10px solid currentColor; border-top: 6px solid transparent; border-bottom: 6px solid transparent; margin-left: 3px; }
.gal-switch { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 6px; color: var(--ecru); }
.gal-cell:not(.gal-cell--dark) .gal-switch { color: var(--noir); }
.gal-switch__text { font: 700 14px var(--f-display); letter-spacing: .08em; text-transform: uppercase; }
.gal-switch__text em { color: var(--vanille); font-style: normal; }
.gal-switch__meta { font: 500 10px var(--f-body); letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
/* Texte lisible sur les tuiles avec image (fond souvent sombre) */
.gal-cell[style*="background-image"]::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(12,12,12,.72) 0%, rgba(12,12,12,.15) 45%, rgba(12,12,12,0) 72%); pointer-events: none; z-index: 1; }
.gal-cell[style*="background-image"] .gal-switch { position: relative; z-index: 2; color: #FFFFFF; }
.gal-cell[style*="background-image"] .gal-switch__text { color: #FFFFFF; }
.gal-cell[style*="background-image"] .gal-switch__text em { color: var(--vanille); }
.gal-cell[style*="background-image"] .gal-switch__meta { color: #FFFFFF; opacity: .85; }

/* Coachs */
.coachs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 1100px) { .coachs { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .coachs { grid-template-columns: repeat(2, 1fr); } }
.coach { position: relative; aspect-ratio: 4/5; background-color: var(--ecru-2); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; transition: transform .3s ease; background-size: cover; background-position: center; background-repeat: no-repeat; }
.coach:hover { transform: translateY(-4px); }
.coach--dark { background-color: #1E1E1E; color: var(--ecru); }
.coach::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(12,12,12,.04) 0 2px, transparent 2px 8px); pointer-events: none; }
.coach--dark::before { background: repeating-linear-gradient(135deg, rgba(239,231,216,.04) 0 2px, transparent 2px 8px); }
.coach__ph { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: rgba(12,12,12,.25); font: 500 11px var(--f-body); letter-spacing: .14em; text-transform: uppercase; pointer-events: none; }
.coach--dark .coach__ph { color: rgba(239,231,216,.25); }
.coach__body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 6px; }
.coach__h { font-family: var(--f-display); font-weight: 600; font-size: 22px; letter-spacing: -0.02em; line-height: 1; text-transform: uppercase; }
.coach__tag { font: 500 11px var(--f-body); letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
/* Mobile : coachs en carrousel horizontal (swipe droite→gauche) */
@media (max-width: 860px) {
  .coachs { display: flex; grid-template-columns: none; overflow-x: auto; gap: 12px; scroll-snap-type: x mandatory; padding-bottom: 10px; -webkit-overflow-scrolling: touch; scrollbar-width: none; scroll-padding-left: var(--pad); }
  .coachs::-webkit-scrollbar { display: none; }
  .coach { flex: 0 0 70%; scroll-snap-align: start; }
  .coach:last-child { margin-right: var(--pad); }
}

/* Tarifs */
.tarifs-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.tarifs-grid--subs { grid-template-columns: 1fr 1fr; margin-top: 14px; }
@media (max-width: 900px) { .tarifs-grid, .tarifs-grid--subs { grid-template-columns: 1fr; } }
.plan { background: #1E1E1E; border-radius: 14px; padding: 24px 22px 22px; display: flex; flex-direction: column; gap: 16px; min-height: 0; color: var(--ecru); }
.plan--feature { background: #1E1E1E; color: var(--ecru); border: 1.5px solid var(--vanille); }
.plan--feature .plan__cta { background: var(--vanille); color: var(--noir); }
.plan--light { background: #FFFFFF; color: var(--noir); }
.plan--light .plan__name { opacity: 1; }
.plan--light .plan__sub { opacity: .7; }
.plan--light .plan__list li { opacity: 1; }
.plan--light .plan__list li::before { background: var(--noir); }
.plan--light .plan__cta { background: var(--noir); color: #FFFFFF; }
.plan--light.plan--feature { background: #FFFFFF; color: var(--noir); border: 1.5px solid var(--noir); }
.plan--light.plan--feature .plan__cta { background: var(--noir); color: #FFFFFF; }
.plan--light.plan--feature .plan__badge { background: var(--noir); color: #FFFFFF; }
.plan__name { font-family: var(--f-display); font-weight: 600; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; display: block; opacity: .85; }
.plan__badge { display: inline-block; white-space: nowrap; vertical-align: middle; margin-left: 8px; font: 700 9px var(--f-display); letter-spacing: .12em; text-transform: uppercase; padding: 3px 7px; border-radius: 3px; background: var(--vanille); color: var(--noir); }
.plan__badge--pop { display: inline-block; width: auto; max-width: 100%; margin: 0 0 0 8px; vertical-align: middle; }
@media (max-width: 900px) { .plan__badge--pop { display: block; width: fit-content; margin: 6px 0 0; } }
/* Tarif "le plus populaire" : carte blanche, accents jaunes */
.plan--pop, .plan--light.plan--pop, .plan--light.plan--feature.plan--pop { background: #FFFFFF; color: var(--noir); border: 2px solid var(--vanille); }
.plan--pop .plan__list li::before, .plan--light.plan--feature.plan--pop .plan__list li::before { background: var(--vanille); }
.plan--pop .plan__cta, .plan--light.plan--feature.plan--pop .plan__cta { background: var(--vanille); color: var(--noir); }
.plan--pop .plan__badge--pop, .plan--light.plan--feature.plan--pop .plan__badge--pop { background: var(--vanille); color: var(--noir); }
.plan__price { font-family: var(--f-display); font-weight: 600; font-size: clamp(48px, 5vw, 64px); line-height: .9; letter-spacing: -0.04em; display: flex; align-items: flex-start; gap: 4px; }
.plan__price sup { font-size: 0.32em; font-weight: 500; margin-top: 0.25em; letter-spacing: 0; }
.plan__price .per { font-size: 0.25em; font-weight: 400; letter-spacing: 0; opacity: .6; align-self: end; margin-left: 8px; margin-bottom: 16px; }
.plan__sub { font: 500 12px/1.4 var(--f-body); opacity: .6; margin-top: -8px; }
.plan__list { display: flex; flex-direction: column; gap: 6px; font: 500 12px/1.4 var(--f-body); }
.plan__list li { padding-left: 22px; position: relative; opacity: .85; }
.plan__list li::before { content: ""; position: absolute; left: 0; top: 6px; width: 10px; height: 5px; border-radius: 999px; background: var(--vanille); }
.plan--feature .plan__list li::before { background: var(--vanille); }
.plan--light.plan--feature .plan__list li::before { background: var(--noir); }
.plan__cta { margin-top: auto; display: inline-flex; justify-content: space-between; align-items: center; padding: 11px 16px; border-radius: 999px; background: var(--ecru); color: var(--noir); font: 500 12px var(--f-body); transition: transform .2s; border: 0; cursor: pointer; width: 100%; text-align: left; }
.plan__cta:hover { transform: translateY(-2px); }

/* Studios */
.city-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; max-width: 820px; margin: 0 auto 40px; padding: 0 16px; }
.city-chip { font-family: var(--f-display); font-weight: 500; font-size: 13px; letter-spacing: .01em; border: 1px solid rgba(12,12,12,.18); background: transparent; color: var(--noir); padding: 8px 16px; border-radius: 999px; cursor: pointer; transition: all .2s ease; white-space: nowrap; }
.city-chip sup { font-size: 0.65em; }
.city-chip:hover { border-color: var(--noir); }
.city-chip.is-active { background: var(--noir); color: var(--ecru); border-color: var(--noir); }
.studio-card { display: grid; grid-template-columns: 1.1fr 1fr; gap: 0; max-width: 1080px; margin: 0 auto; background: var(--blanc); border-radius: 22px; overflow: hidden; border: 1px solid var(--line); min-height: 460px; }
@media (max-width: 820px) { .studio-card { grid-template-columns: 1fr; min-height: 0; } }
.studio-card__img { background: var(--ecru-2); background-size: cover; background-position: center; position: relative; min-height: 320px; }
.studio-card__img.is-placeholder::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(12,12,12,.04) 0 2px, transparent 2px 8px); }
.studio-card__img.is-placeholder::after { content: "Bientôt"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 500 11px var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: rgba(12,12,12,.35); }
.studio-card__body { padding: 44px 44px 40px; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
@media (max-width: 820px) { .studio-card__body { padding: 32px 28px; } }
.studio-card__status { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; font: 500 11px var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--noir); opacity: .7; }
.studio-card__status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--noir); }
.studio-card__status.is-soon::before { background: transparent; border: 1.5px dashed var(--noir); }
.studio-card__name { font: 600 clamp(28px, 3.4vw, 40px)/0.95 var(--f-display); letter-spacing: -0.025em; text-transform: uppercase; margin: 0; }
.studio-card__name sup { font-size: 0.5em; }
.studio-card__adr { font-size: 14px; line-height: 1.55; color: #4a4a4a; max-width: 32ch; }
.studio-card__meta { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.studio-card__cta { margin-top: 12px; }
.studio-card__cta .btn { background: var(--noir); color: var(--ecru); padding: 12px 22px; border-radius: 999px; font: 500 12px var(--f-body); letter-spacing: .14em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 10px; transition: background .2s; }
.studio-card__cta .btn:hover { background: #2a2a2a; }
.studio-card.is-fading { opacity: .35; transition: opacity .15s ease; }

/* Pages légales */
.legal-doc { max-width: 760px; margin: 0 auto; }
.legal-note { font-size: 16px; line-height: 1.7; opacity: .85; }
.legal-meta { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); font: 500 12px/1.7 var(--f-body); letter-spacing: .04em; text-transform: uppercase; opacity: .55; }
.legal-doc h2 { font-family: var(--f-display); font-weight: 600; font-size: clamp(20px, 2.4vw, 26px); letter-spacing: -0.02em; text-transform: uppercase; margin: 44px 0 14px; }
.legal-doc h2:first-child { margin-top: 0; }
.legal-doc h3 { font-family: var(--f-display); font-weight: 600; font-size: clamp(17px, 2vw, 20px); letter-spacing: -0.01em; margin: 30px 0 10px; }
.legal-doc h4 { font-family: var(--f-body); font-weight: 600; font-size: 15px; margin: 22px 0 8px; }
.legal-doc p { font-size: 15px; line-height: 1.75; opacity: .85; margin: 0 0 14px; }
.legal-doc ul { margin: 0 0 16px; padding-left: 22px; }
.legal-doc li { font-size: 15px; line-height: 1.7; opacity: .85; margin: 0 0 6px; }
.legal-doc strong { font-weight: 600; opacity: 1; }

/* Réservation — choix du studio */
.studio-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1100px; margin: 0 auto; }
@media (max-width: 900px) { .studio-pick { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .studio-pick { grid-template-columns: 1fr; } }
.studio-pick--links .studio-pick__card { text-decoration: none; color: var(--noir); }
button.studio-pick__card { width: 100%; font-family: var(--f-body); cursor: pointer; }
.studio-pick__info { display: block; font-size: 13px; opacity: .6; margin-top: 6px; line-height: 1.4; }
.studio-card__info { display: block; font-size: 14px; opacity: .7; margin-top: 6px; line-height: 1.4; }
.studio-pick__go { margin-top: auto; padding-top: 16px; font: 600 12px var(--f-display); letter-spacing: .04em; text-transform: uppercase; display: inline-flex; gap: 6px; align-items: center; }
.studio-pick--links .studio-pick__card.is-soon .studio-pick__go { opacity: .8; }
/* Page Réserver : titre sur une ligne, liste juste en dessous */
.page-hero--reserve { padding-bottom: clamp(18px, 2.5vw, 30px); position: relative; }
.reserve-title { white-space: nowrap; font-size: clamp(30px, 7vw, 60px); }
@media (max-width: 380px) { .reserve-title { white-space: normal; } }
.reserve-back { display: inline-flex; align-items: center; gap: 7px; font: 500 13px var(--f-body); color: var(--ecru); opacity: .65; text-decoration: none; margin-bottom: 18px; transition: opacity .2s; }
.reserve-back:hover { opacity: 1; }
/* Bloc infos studio (nom + adresse + contact) déplacé avant les tarifs */
.reserve-info { text-align: left; }
.reserve-info__name { font-family: var(--f-display); font-weight: 600; font-size: clamp(34px, 6vw, 60px); line-height: .96; letter-spacing: -0.035em; text-transform: uppercase; margin: 0 0 18px; color: var(--ecru); }
.reserve-info__adr { font-family: var(--f-display); font-weight: 500; font-size: clamp(16px, 2vw, 21px); opacity: .85; margin: 0; color: var(--ecru); max-width: 44ch; }
.reserve-info__adr .studio-card__adr-link { color: inherit; }
/* Adresse cliquable (Google Maps) + contacts studio */
.studio-pick__adr-link, .studio-card__adr-link { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(12,12,12,.35); transition: opacity .2s; }
.studio-pick__adr-link:hover, .studio-card__adr-link:hover { opacity: .65; }
.studio-pick__contact, .studio-card__contact { display: block; text-decoration: none; color: inherit; opacity: .75; margin-top: 3px; }
.studio-pick__contact { font-size: 13px; }
.studio-card__contact { font-size: 14px; }
.studio-pick__contact:hover, .studio-card__contact:hover { opacity: 1; text-decoration: underline; }
.studio-pick__btn { margin-top: 14px; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; font: 600 12px var(--f-display); letter-spacing: .04em; text-transform: uppercase; text-decoration: none; color: var(--noir); background: var(--vanille); padding: 10px 18px; border-radius: 999px; transition: transform .2s; }
.studio-pick__btn:hover { transform: translateY(-2px); }
.page-hero__contact { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
.page-hero__contact a { color: inherit; opacity: .75; text-decoration: none; font-size: 15px; }
.page-hero__contact a:hover { opacity: 1; text-decoration: underline; }
.studio-pick__card { text-align: left; background: #FFFFFF; border: 1.5px solid var(--line); border-radius: 18px; padding: 26px 24px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; transition: border-color .2s, transform .2s; font-family: var(--f-body); color: var(--noir); }
.studio-pick__card:hover { transform: translateY(-2px); }
.studio-pick__card[aria-pressed="true"] { border-color: var(--noir); box-shadow: 0 0 0 1.5px var(--noir); }
.studio-pick__card.is-soon { opacity: .72; }
.studio-pick__status { align-self: flex-start; font: 500 10px var(--f-body); letter-spacing: .18em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: var(--vanille); color: var(--noir); margin-bottom: 8px; }
.studio-pick__card.is-soon .studio-pick__status { background: transparent; border: 1px dashed rgba(12,12,12,.4); }
.studio-pick__name { font-family: var(--f-display); font-weight: 600; font-size: clamp(24px, 3vw, 32px); letter-spacing: -0.025em; text-transform: uppercase; line-height: 1; }
.studio-pick__adr { font-size: 14px; opacity: .75; margin-top: 4px; }
.studio-pick__meta { font: 500 11px var(--f-body); letter-spacing: .08em; text-transform: uppercase; opacity: .6; margin-top: 6px; }
.studio-pick__hint { text-align: center; margin: 28px auto 0; max-width: 600px; font-size: 14px; opacity: .6; }
.planning-wrap { max-width: 1400px; margin: 0 auto; background: #FFFFFF; border-radius: 18px; overflow: hidden; min-height: 200px; }
#reserverPanel { padding-left: clamp(12px, 2.5vw, 32px); padding-right: clamp(12px, 2.5vw, 32px); }

/* FAQ */
.faq { max-width: 900px; border-top: 1px solid var(--line); margin: 0 auto; }
.faq details { border-bottom: 1px solid var(--line); padding: 28px 0; }
.faq summary { cursor: pointer; font: 600 clamp(22px, 2.4vw, 32px)/1.15 var(--f-display); letter-spacing: -0.025em; text-transform: uppercase; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--f-display); font-weight: 500; font-size: 24px; opacity: .55; transition: transform .25s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq__body { margin-top: 14px; font-size: 15px; line-height: 1.55; opacity: .8; }

/* Bande CTA */
.cta-band { background: var(--noir); color: var(--ecru); padding: clamp(100px, 14vw, 180px) var(--pad); display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; }
@media (max-width: 900px) { .cta-band { grid-template-columns: 1fr; gap: 48px; } }
.cta-band__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(48px, 9vw, 148px); line-height: .88; letter-spacing: -0.045em; text-transform: uppercase; margin: 0; }
.cta-band__h em { color: var(--vanille); font-style: normal; }
.cta-band__side { display: flex; flex-direction: column; gap: 24px; }
.cta-band__p { font-family: var(--f-display); font-weight: 500; font-size: clamp(18px, 1.7vw, 24px); line-height: 1.3; letter-spacing: -0.015em; opacity: .85; max-width: 34ch; }
.cta-band__actions { display: flex; flex-direction: column; gap: 12px; align-items: center; }
@media (min-width: 901px) { .cta-band__actions { align-items: flex-end; margin-right: clamp(16px, 3vw, 48px); } }
.cta-band .btn--ecru { background: var(--ecru); color: var(--noir); }
.btn { display: inline-flex; align-items: center; gap: 14px; padding: 16px 24px; border-radius: 999px; font-size: 13px; font-weight: 500; letter-spacing: .02em; transition: transform .2s ease, background .2s ease, color .2s ease; cursor: pointer; }
.btn:hover { transform: translateY(-2px); }
.btn--noir { background: var(--noir); color: var(--ecru); }
.btn--vanille { background: var(--vanille); color: var(--noir); }
.btn__toggle { display:inline-flex; width: 22px; height: 12px; border-radius: 999px; background: var(--noir); position: relative; }
.btn__toggle::after { content:""; position:absolute; right:2px; top:2px; width:8px; height:8px; border-radius:50%; background:var(--vanille); }
.btn--ecru .btn__toggle { background: var(--noir); }
.switch-big__logo { display: inline-flex; vertical-align: baseline; line-height: 1; gap: 0.04em; align-items: center; }
.switch-big__logo .logo__pill { height: 0.72em; padding-left: 0.18em; padding-right: 0.12em; margin-right: 0; align-self: baseline; position: relative; top: -0.02em; }
.switch-big__logo .logo__pill::before { width: 0.4em; height: 0.4em; }

/* Formulaire (Franchises / Contact) */
.form-wrap { max-width: 720px; margin: 0 auto; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .form { grid-template-columns: 1fr; } }
.form .full { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field label { font: 500 12px var(--f-body); letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
.field input, .field textarea, .field select { font-family: var(--f-body); font-size: 15px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #FFFFFF; color: var(--noir); transition: border-color .2s; }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--noir); }
.field textarea { min-height: 130px; resize: vertical; }
.form__submit { grid-column: 1 / -1; display: flex; justify-content: flex-start; margin-top: 6px; }
.form__note { grid-column: 1/-1; font-size: 12px; opacity: .6; }
.form-success { display: none; text-align: center; padding: 40px; border: 1px solid var(--line); border-radius: 16px; }
.form-success.is-visible { display: block; }

/* Pied de page */
footer { background: var(--noir); color: var(--ecru); padding: 60px var(--pad) 36px; border-top: 1px solid var(--line-d); }
.foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 48px; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
.foot-col h5 { font: 500 11px var(--f-body); letter-spacing: .18em; text-transform: uppercase; opacity: .55; margin: 0 0 14px; }
.foot-col a, .foot-col p { display: block; font-size: 13px; line-height: 1.8; opacity: .85; margin: 0; }
.foot-col a:hover { opacity: 1; }
.foot-soon { display: block; font-size: 13px; line-height: 1.8; opacity: .5; cursor: default; }
.foot-logo { font-size: 44px; display: inline-flex; margin-bottom: 20px; }
.foot-tag { font: 500 13px/1.5 var(--f-body); max-width: 32ch; opacity: .65; }
.foot-legal { display: flex; flex-wrap: wrap; gap: 10px 22px; padding-top: 28px; border-top: 1px solid var(--line-d); }
.foot-legal a { font: 500 11px var(--f-body); letter-spacing: .08em; text-transform: uppercase; opacity: .6; transition: opacity .2s; }
.foot-legal a:hover { opacity: 1; }
.foot-bottom { padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--line-d); display: flex; justify-content: space-between; align-items: center; gap: 20px; font: 500 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; opacity: .55; }

/* Anti-débordement mobile : les éléments de grille peuvent rétrécir sous leur contenu */
.tarifs-grid, .tarifs-grid--subs, .gallery, .coachs, .overview, .principes { max-width: 100%; }
.plan, .gal-cell, .coach, .ov-card, .principe { min-width: 0; }
.plan__list li, .coach__tag, .gal-switch__meta { overflow-wrap: anywhere; }

/* Fenêtre de paiement (Sportigo) */
.pay-modal { position: fixed; inset: 0; z-index: 200; display: none; }
.pay-modal.is-open { display: block; }
.pay-modal__backdrop { position: absolute; inset: 0; background: rgba(12,12,12,.62); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.pay-modal__panel { position: relative; z-index: 1; background: #fff; width: min(1060px, 96vw); margin: 4vh auto; border-radius: 22px; padding: 20px; max-height: 92vh; overflow: auto; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.pay-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 6px; }
.pay-modal__title { font-family: var(--f-display); font-weight: 600; font-size: 20px; letter-spacing: -0.02em; text-transform: uppercase; }
.pay-modal__close { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--noir); font-size: 22px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pay-modal__close:hover { background: #f4f4f4; }
.pay-modal__body { min-height: 120px; }
.pay-modal__msg { padding: 40px 10px; text-align: center; font-size: 14px; opacity: .7; }

/* Parcours d'achat intégré (studio -> récap -> paiement) */
.pay-modal--flow .pay-modal__panel { width: min(1100px, 96vw); margin: 3vh auto; max-height: 94vh; padding: clamp(20px, 3vw, 40px); }
.pay-modal--flow .pay-modal__head { border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 4px; position: relative; }
.pay-modal--flow .pay-modal__title { flex: 1; text-align: center; }
.pay-modal__back { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; cursor: pointer; font: 500 13px var(--f-body); color: var(--noir); opacity: .7; padding: 6px 4px; flex-shrink: 0; }
.pay-modal__back:hover { opacity: 1; }
.pay-modal__back[hidden] { display: none; }
.pay-flow__steps { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 18px 0 6px; }
.pay-flow__step { display: inline-flex; align-items: center; gap: 7px; font: 500 11px var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--noir); opacity: .4; }
.pay-flow__step i { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; border: 1px solid currentColor; font-style: normal; font-size: 10px; }
.pay-flow__step:not(:last-child)::after { content: ""; width: 20px; height: 1px; background: currentColor; margin-left: 8px; opacity: .5; }
.pay-flow__step.is-active { opacity: 1; }
.pay-flow__step.is-active i { background: var(--vanille); border-color: var(--vanille); color: var(--noir); }
.pay-flow__lead { text-align: center; font-size: 15px; line-height: 1.5; margin: 8px auto 24px; max-width: 44ch; opacity: .8; }
.pay-flow__studios { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; max-width: 760px; margin: 0 auto 10px; }
.pay-flow__studio { text-align: left; background: #fff; border: 1.5px solid var(--line); border-radius: 18px; padding: 22px 22px; cursor: pointer; display: flex; flex-direction: column; gap: 5px; transition: border-color .2s, transform .2s, box-shadow .2s; font-family: var(--f-body); color: var(--noir); }
.pay-flow__studio:hover { transform: translateY(-2px); border-color: var(--noir); box-shadow: 0 12px 30px rgba(0,0,0,.1); }
.pay-flow__studio-badge { align-self: flex-start; font: 500 10px var(--f-body); letter-spacing: .16em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: var(--vanille); color: var(--noir); margin-bottom: 6px; }
.pay-flow__studio.is-earlybird .pay-flow__studio-badge { background: transparent; border: 1px solid var(--vanille); color: var(--noir); }
.pay-flow__studio-name { font-family: var(--f-display); font-weight: 600; font-size: clamp(20px, 2.4vw, 26px); letter-spacing: -0.02em; text-transform: uppercase; line-height: 1; }
.pay-flow__studio-adr { font-size: 13px; opacity: .7; line-height: 1.4; }
.pay-flow__studio-go { margin-top: 10px; font: 600 12px var(--f-display); letter-spacing: .04em; text-transform: uppercase; display: inline-flex; gap: 6px; }
.pay-flow__recap { max-width: 560px; margin: 12px auto 24px; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.pay-flow__recap-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.pay-flow__recap-k { font: 500 11px var(--f-body); letter-spacing: .12em; text-transform: uppercase; opacity: .55; }
.pay-flow__recap-v { font-family: var(--f-display); font-weight: 600; font-size: 17px; letter-spacing: -0.01em; text-align: right; }
.pay-flow__recap-adr { padding: 0 20px 16px; font-size: 13px; opacity: .65; line-height: 1.4; }
.pay-flow__continue { display: flex; justify-content: center; gap: 12px; width: min(360px, 100%); margin: 0 auto; }
.pay-flow__change { display: block; margin: 14px auto 0; background: none; border: 0; cursor: pointer; font: 500 13px var(--f-body); text-decoration: underline; opacity: .65; color: var(--noir); }
.pay-flow__change:hover { opacity: 1; }
.pay-flow__paystudio { text-align: center; font-size: 13px; opacity: .7; margin: 0 0 14px; }
.pay-flow__paystudio strong { font-weight: 600; }
@media (max-width: 640px) {
  .pay-modal--flow .pay-modal__panel { width: 100vw; height: 100%; min-height: 100vh; margin: 0; border-radius: 0; max-height: none; }
  .pay-flow__step:not(:last-child)::after { display: none; }
  .pay-flow__steps { gap: 14px; }
}

strong { font-weight: 600; }
/* Amélioration progressive : le contenu reste visible sans JS. */
.js .reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s ease, transform .8s ease; }
.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; transition: none; }
  .marquee__track { animation: none; }
}

/* ============================================================
   BRIQUES RÉUTILISABLES (moteur de blocs)
   ============================================================ */

/* --- Brique CARDS (bento) --- */
.blk--cards { padding-top: clamp(80px, 10vw, 140px); padding-bottom: clamp(80px, 10vw, 140px); }
.blk-cards__head { text-align: center; padding-bottom: clamp(40px, 6vw, 56px); }
.blk-cards__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(40px, 9vw, 82px); line-height: .95; letter-spacing: -0.04em; text-transform: uppercase; margin: 0 auto; max-width: 16ch; }
.blk-cards__hl { color: var(--vanille); }
.blk-cards__sub { margin: 22px auto 0; font-family: var(--f-display); font-weight: 600; font-size: clamp(17px, 2vw, 22px); letter-spacing: -0.02em; color: var(--ecru); max-width: 40ch; }
.blk-cards__sub-hl { color: var(--vanille); }
.kit { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 14px; max-width: 100%; }
.kit-cell { background: #1E1E1E; border-radius: 14px; padding: 26px 24px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.kit-cell--hero { grid-row: span 2; justify-content: flex-start; gap: 20px; border: 1.5px solid var(--vanille); padding: 30px 28px; }
.kit-cell__top { display: flex; flex-direction: column; gap: 10px; }
.kit-cell__kick { font: 500 10px var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--vanille); }
.kit-cell__fig { font-family: var(--f-display); font-weight: 600; font-size: clamp(44px, 5vw, 68px); line-height: .88; letter-spacing: -0.04em; color: var(--vanille); }
.kit-cell--hero .kit-cell__fig { font-size: clamp(56px, 7vw, 96px); }
.kit-cell__sub { font: 500 10px var(--f-body); letter-spacing: .18em; text-transform: uppercase; opacity: .65; margin-top: -2px; }
.kit-cell__h { font-family: var(--f-display); font-weight: 600; font-size: 20px; line-height: 1; letter-spacing: -0.025em; text-transform: uppercase; margin: 0; }
.kit-cell--hero .kit-cell__h { font-size: clamp(24px, 2.4vw, 32px); }
.kit-cell__p { font: 400 13px/1.55 var(--f-body); opacity: .7; margin: 0; max-width: 36ch; }
.kit-cell--hero .kit-cell__p { font-size: 14px; }
.kit-cell__specs { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; padding-top: 18px; border-top: 1px solid var(--line-d); font: 500 12px/1.4 var(--f-body); letter-spacing: .04em; text-transform: uppercase; list-style: none; padding-left: 0; margin-bottom: 0; }
.kit-cell__specs li { display: flex; align-items: center; gap: 11px; opacity: .8; }
.kit-cell__specs li::before { content: ""; flex-shrink: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--vanille); }
@media (max-width: 900px) { .kit { grid-template-columns: 1fr; } .kit-cell--hero { grid-row: auto; } }

/* --- Brique SWITCH (interrupteur Off/On) --- */
.switch-sec { background: #FFFFFF; color: var(--noir); padding: clamp(80px, 10vw, 140px) var(--pad); transition: background .55s cubic-bezier(.4,0,.2,1), color .55s cubic-bezier(.4,0,.2,1); overflow: hidden; }
.switch-sec[data-state="on"] { background: var(--vanille); color: var(--noir); }
.switch-sec__inner { display: grid; grid-template-columns: minmax(280px, .8fr) 1fr; gap: clamp(40px, 6vw, 80px); align-items: center; max-width: 1180px; margin: 0 auto; }
.switch-sec__left { display: flex; flex-direction: column; align-items: flex-start; gap: 26px; }
.switch-sec__kick { font: 500 11px var(--f-body); letter-spacing: .2em; text-transform: uppercase; opacity: .6; }
.switch-sec__hint { font: 500 11px var(--f-body); letter-spacing: .16em; text-transform: uppercase; opacity: .65; }
.giant-toggle { appearance: none; -webkit-appearance: none; border: 0; background: none; padding: 0; cursor: grab; display: flex; align-items: center; gap: 20px; color: inherit; font-family: var(--f-display); touch-action: none; }
.giant-toggle.is-dragging { cursor: grabbing; }
.giant-toggle.is-dragging .giant-toggle__knob { transition: none; }
.giant-toggle__track { position: relative; width: 148px; height: 74px; border-radius: 999px; background: rgba(12,12,12,.10); border: 1.5px solid rgba(12,12,12,.20); flex-shrink: 0; transition: background .45s ease, border-color .45s ease; }
.switch-sec[data-state="on"] .giant-toggle__track { background: var(--noir); border-color: var(--noir); }
.giant-toggle__knob { position: absolute; top: 6px; left: 6px; width: 58px; height: 58px; border-radius: 50%; background: var(--noir); transition: transform .45s cubic-bezier(.34,1.4,.5,1), background .45s ease; }
.switch-sec[data-state="on"] .giant-toggle__knob { transform: translateX(72px); background: var(--vanille); }
.giant-toggle__word { font-weight: 600; font-size: clamp(48px, 6vw, 84px); line-height: .82; letter-spacing: -0.05em; text-transform: uppercase; transition: opacity .4s ease; }
.giant-toggle__word--on { display: none; }
.switch-sec[data-state="on"] .giant-toggle__word--off { display: none; }
.switch-sec[data-state="on"] .giant-toggle__word--on { display: block; }
.switch-panes { position: relative; display: grid; }
.switch-pane { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 22px; transition: opacity .45s ease, transform .45s ease; }
.switch-pane[hidden] { display: flex; visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(8px); }
.switch-pane__h { font-family: var(--f-display); font-weight: 600; font-size: clamp(28px, 3.4vw, 46px); line-height: .96; letter-spacing: -0.035em; text-transform: uppercase; margin: 0; }
@media (min-width: 901px) { .switch-pane__h { white-space: nowrap; } }
.switch-pane__list { display: flex; flex-direction: column; gap: 0; list-style: none; padding: 0; margin: 0; }
.switch-pane__list li { display: grid; grid-template-columns: 128px 1fr; gap: 8px 26px; align-items: baseline; padding: 16px 0; border-top: 1px solid rgba(12,12,12,.15); }
.switch-pane__list li:last-child { border-bottom: 1px solid rgba(12,12,12,.15); }
.switch-pane__list b { font: 500 10px var(--f-body); letter-spacing: .16em; text-transform: uppercase; opacity: .6; }
.switch-pane__list span { font-family: var(--f-display); font-weight: 600; font-size: clamp(19px, 2vw, 26px); line-height: 1.12; letter-spacing: -0.025em; }
.switch-pane__note { font-family: var(--f-display); font-weight: 500; font-size: clamp(16px, 1.5vw, 20px); line-height: 1.3; letter-spacing: -0.015em; opacity: .7; margin: 0; max-width: 34ch; }
@media (max-width: 900px) { .switch-sec__inner { grid-template-columns: 1fr; gap: 44px; } }
@media (max-width: 620px) {
  .switch-pane__list li { grid-template-columns: 1fr; }
  .switch-sec { padding-left: var(--pad); padding-right: var(--pad); }
  .switch-sec__left { gap: 18px; }
  .giant-toggle { gap: 14px; }
  .giant-toggle__word { font-size: clamp(30px, 11vw, 46px); }
  .giant-toggle__track { width: 104px; height: 52px; }
  .giant-toggle__knob { width: 40px; height: 40px; top: 6px; left: 6px; }
  .switch-sec[data-state="on"] .giant-toggle__knob { transform: translateX(52px); }
}

/* --- Briques génériques (richtext / image / bouton) --- */
.blk--rich { padding: clamp(70px, 9vw, 120px) var(--pad); }
.blk-rich__wrap { max-width: 760px; margin: 0 auto; }
.blk-rich__h { font-size: clamp(34px, 6vw, 64px); margin: 0 0 22px; }
.blk-rich__h em { color: var(--vanille); font-style: normal; }
.blk-rich__body { font-size: clamp(15px, 1.6vw, 18px); line-height: 1.6; opacity: .82; }
.blk-rich__body p { margin: 0 0 1em; }
.blk--image { padding: clamp(40px, 6vw, 80px) var(--pad); text-align: center; }
.blk-image__wrap { position: relative; display: inline-block; width: 100%; max-width: 1100px; margin: 0 auto; overflow: hidden; line-height: 0; }
.blk-image__wrap.is-rounded { border-radius: 16px; }
.blk-image__img { display: block; width: 100%; height: auto; }
.blk-image__dark { position: absolute; inset: 0; background: rgba(12,12,12,.45); }
.blk-image__hatch { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.10) 0 2px, transparent 2px 8px); }
.blk-image__overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 var(--pad); font-family: var(--f-display); font-weight: 600; font-size: clamp(28px, 5vw, 64px); letter-spacing: -0.03em; text-transform: uppercase; color: #FFFFFF; line-height: 1; }
.blk-image__cap { margin: 16px auto 0; font-size: 13px; opacity: .6; max-width: 60ch; }
.blk--button { padding: clamp(50px, 7vw, 90px) var(--pad); text-align: center; }
.blk--heading { padding: clamp(60px, 9vw, 120px) var(--pad) clamp(20px, 3vw, 40px); }
.blk--heading .section-head { padding-bottom: 0; }

/* Lien Instagram des coachs (Inter gras) */
.coach__insta { display: inline-block; margin-top: 8px; font-family: var(--f-body); font-weight: 700; font-size: 13px; letter-spacing: 0; color: var(--vanille); text-decoration: none; }
.coach__insta:hover { text-decoration: underline; }

/* Brique « Trouve ta formule » (curseur interactif) */
.lvl { background: var(--noir); color: #FFFFFF; padding: clamp(80px, 10vw, 140px) var(--pad); }
.lvl__head { text-align: center; max-width: 1060px; margin: 0 auto clamp(40px, 6vw, 56px); }
.lvl__h { font-size: clamp(40px, 9vw, 82px); margin: 0 auto; max-width: 16ch; }
.lvl__h-hl { color: var(--vanille); }
.lvl__lead { margin: 22px auto 0; font-family: var(--f-display); font-weight: 600; font-size: clamp(17px, 2vw, 22px); letter-spacing: -0.02em; color: var(--ecru); }
.lvl__lead-hl { color: var(--vanille); }
.lvl__flex { display: inline-flex; gap: 10px; margin: 22px auto 0; }
.lvl__flex-btn { appearance: none; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #FFFFFF; font: 600 12px var(--f-body); letter-spacing: .1em; text-transform: uppercase; padding: 10px 24px; border-radius: 999px; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.lvl__flex-btn:hover { border-color: var(--vanille); }
.lvl__flex-btn.is-on { background: var(--vanille); color: var(--noir); border-color: var(--vanille); }
.lvl__stage { max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: 1fr; gap: clamp(40px, 5vw, 64px); }
.lvl__card { background: #1E1E1E; border-radius: 20px; padding: clamp(28px, 3.5vw, 44px); display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: center; min-height: 268px; }
@media (max-width: 820px) { .lvl__card { grid-template-columns: 1fr; gap: 26px; } }
.lvl__card-l { display: flex; flex-direction: column; gap: 14px; }
.lvl__kick { font: 500 10px var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: var(--vanille); }
.lvl__title { font-family: var(--f-display); font-weight: 600; font-size: clamp(30px, 5vw, 52px); line-height: .9; letter-spacing: -0.04em; text-transform: uppercase; margin: 0; }
.lvl__p { font: 400 14px/1.55 var(--f-body); opacity: .72; margin: 0; max-width: 38ch; }
.lvl__cta { display: inline-flex; align-items: center; gap: 12px; align-self: flex-start; margin-top: 8px; padding: 13px 24px; border-radius: 999px; background: var(--vanille); color: var(--noir); font: 500 11px var(--f-body); letter-spacing: .16em; text-transform: uppercase; transition: transform .2s ease; }
.lvl__cta:hover { transform: translateY(-2px); }
.lvl__cta i { display: inline-flex; width: 22px; height: 12px; border-radius: 999px; background: var(--noir); position: relative; }
.lvl__cta i::after { content: ""; position: absolute; right: 2px; top: 2px; width: 8px; height: 8px; border-radius: 50%; background: var(--vanille); }
.lvl__price { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; padding-left: clamp(20px, 3vw, 40px); border-left: 1px solid var(--line-d); }
@media (max-width: 820px) { .lvl__price { align-items: flex-start; padding-left: 0; padding-top: 22px; border-left: 0; border-top: 1px solid var(--line-d); } }
.lvl__price-fig { font-family: var(--f-display); font-weight: 600; font-size: clamp(48px, 6vw, 82px); line-height: .85; letter-spacing: -0.05em; color: var(--vanille); }
.lvl__price-unit { font: 500 11px var(--f-body); letter-spacing: .16em; text-transform: uppercase; opacity: .55; }
.lvl__price-eq { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-d); font-family: var(--f-display); font-weight: 600; font-size: 17px; letter-spacing: -0.02em; }
.lvl__slider { display: flex; flex-direction: column; gap: 4px; max-width: 1060px; margin: 0 auto; width: 100%; }
.lvl__range { -webkit-appearance: none; appearance: none; width: 100%; height: 46px; background: transparent; cursor: grab; margin: 0; --p: 40; }
.lvl__range:active { cursor: grabbing; }
.lvl__range::-webkit-slider-runnable-track { height: 8px; border-radius: 999px; background: linear-gradient(90deg, var(--vanille) calc(var(--p) * 1%), rgba(255,255,255,.16) calc(var(--p) * 1%)); }
.lvl__range::-webkit-slider-thumb { -webkit-appearance: none; width: 40px; height: 40px; margin-top: -16px; border: 0; border-radius: 50%; background: var(--vanille); box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.lvl__range::-moz-range-track { height: 8px; border-radius: 999px; background: rgba(255,255,255,.16); }
.lvl__range::-moz-range-progress { height: 8px; border-radius: 999px; background: var(--vanille); }
.lvl__range::-moz-range-thumb { width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--vanille); box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.lvl__ticks { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; }
.lvl__ticks button { appearance: none; border: 0; background: none; padding: 4px 0 0; cursor: pointer; font: 600 13px var(--f-display); letter-spacing: -0.01em; color: #FFFFFF; opacity: .45; transition: opacity .2s ease, color .2s ease; font-variant-numeric: tabular-nums; text-align: center; }
.lvl__ticks button:first-child { text-align: left; }
.lvl__ticks button:last-child { text-align: right; }
.lvl__ticks button.is-on { opacity: 1; color: var(--vanille); }
.lvl__ticks button:hover { opacity: .85; }

/* Contact studio : format libellé (Téléphone / E-mail) */
.studio-contact { display: flex; flex-wrap: wrap; gap: 24px 56px; border-top: 1px solid rgba(140,140,140,.35); padding-top: 18px; margin-top: 18px; }
.studio-contact__item { display: flex; flex-direction: column; gap: 6px; }
.studio-contact__label { font: 500 11px var(--f-body); letter-spacing: .16em; text-transform: uppercase; opacity: .55; }
.studio-contact__val { font-family: var(--f-body); font-weight: 500; font-size: 15px; letter-spacing: 0; color: inherit; }

/* Photos studios & coachs : flou / assombrir / hachures */
.coach__media { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
.coach__media.is-blur { filter: blur(var(--imgblur, 8px)); transform: scale(1.08); }
.coach__fx { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.coach__fx.is-dark { background-color: rgba(12,12,12,.45); }
.coach__fx.is-hatch { background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.10) 0 2px, transparent 2px 8px); }
.coach__body, .coach__ph { position: relative; z-index: 2; }
.studio-card__img.is-blur { filter: blur(var(--imgblur, 8px)); }
.studio-card__img.is-dark::after { content: ""; position: absolute; inset: 0; background: rgba(12,12,12,.45); }
.studio-card__img.is-hatch::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.10) 0 2px, transparent 2px 8px); }

/* Fond personnalisé d'une partie de l'accueil (noir / blanc / crème) */
.secbg--noir > section { background: var(--noir) !important; color: var(--ecru) !important; }
.secbg--blanc > section { background: #FFFFFF !important; color: var(--noir) !important; }
.secbg--creme > section { background: var(--ecru-2) !important; color: var(--noir) !important; }
.secbg--noir .section-head__h, .secbg--noir .section-head__p { color: var(--ecru) !important; }
.secbg--blanc .section-head__h, .secbg--blanc .section-head__p,
.secbg--creme .section-head__h, .secbg--creme .section-head__p { color: var(--noir) !important; }

/* Titres de page : partie jaune + option une seule ligne (comme l'accueil) */
.page-hero__h .hl-box { background: var(--vanille); color: var(--noir); }
.page-hero__h--oneline { max-width: none !important; }
@media (min-width: 700px) { .page-hero__h--oneline { white-space: nowrap; } }
