/* ============================================================
   MATS — Site design system (redesign 2026)
   Dark, brutalist, oversized condensed type, restrained orange.
   Mobile-first (375px) with real desktop layouts (≥1024px).
   Shared by index.html, clubs.html, day-pass.html.
   ============================================================ */

@font-face { font-family:'GeneralSans'; src:url('../fonts/generalsans-regular.otf')  format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'GeneralSans'; src:url('../fonts/generalsans-medium.otf')   format('opentype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'GeneralSans'; src:url('../fonts/generalsans-semibold.otf') format('opentype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'GeneralSans'; src:url('../fonts/generalsans-bold.otf')     format('opentype'); font-weight:700; font-style:normal; font-display:swap; }

:root{
  --bg:#0a0a0a;
  --surface:#121210;
  --surface-2:#191917;
  --fg:#f5f2ec;
  --muted:rgba(245,242,236,0.64);
  --faint:rgba(245,242,236,0.42);
  --line:rgba(245,242,236,0.15);
  --line-strong:rgba(245,242,236,0.32);
  --accent:#EB5C1B;
  --accent-deep:#B73517;

  --display:'Archivo','GeneralSans',ui-sans-serif,system-ui,sans-serif;
  --sans:'GeneralSans',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;

  --maxw:1200px;
  --pad:20px;
}

*{ box-sizing:border-box; -webkit-font-smoothing:antialiased; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

html,body{ margin:0; padding:0; }
body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.5;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:var(--accent); }
a:hover{ color:var(--fg); }

/* ---- shared type helpers ---- */
.display{
  font-family:var(--display);
  font-weight:900;
  letter-spacing:-0.04em;
  line-height:0.86;
  text-transform:uppercase;
}
.mono{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }
@media (min-width:768px){ :root{ --pad:40px; } }

/* small orange kicker used above section titles */
.kicker{
  font-family:var(--mono); font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--faint); display:flex; align-items:center; gap:12px; margin:0 0 18px;
}
.kicker .idx{ color:var(--accent); }
.kicker::after{ content:''; flex:1; height:1px; background:var(--line); }

/* ============================================================
   NAV — thin sticky bar
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:60;
  background:rgba(10,10,10,0.82);
  backdrop-filter:saturate(140%) blur(12px);
  -webkit-backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  height:60px;
}
.nav-logo{ display:flex; align-items:center; gap:0; text-decoration:none; }
.nav-logo img{ height:22px; width:auto; }
.nav-logo .wordmark{
  font-family:var(--display); font-weight:900; font-size:22px; letter-spacing:-0.05em;
  color:var(--fg); line-height:1; display:flex; align-items:baseline;
}
.nav-logo .wordmark .dot{ width:6px; height:6px; background:var(--accent); margin-left:2px; }
.nav-anchors{ display:none; align-items:center; gap:26px; }
.nav-anchors a{
  font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--muted); text-decoration:none; transition:color 120ms ease;
}
.nav-anchors a:hover{ color:var(--fg); }
.nav-right{ display:flex; align-items:center; gap:14px; }
.nav-cta{
  font-family:var(--sans); font-weight:700; font-size:13px;
  background:var(--accent); color:#fff; text-decoration:none;
  padding:9px 16px; white-space:nowrap; letter-spacing:-0.01em;
  transition:background 120ms ease;
}
.nav-cta:hover{ background:var(--accent-deep); color:#fff; }
.nav-en{
  font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--accent); text-decoration:none;
}
@media (min-width:900px){ .nav-anchors{ display:flex; } }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; }
.store-btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:15px 20px; text-decoration:none;
  border:1.5px solid var(--fg); color:var(--fg); background:transparent;
  transition:background 120ms ease, color 120ms ease, border-color 120ms ease;
  min-width:190px;
}
.store-btn:hover{ background:var(--fg); color:var(--bg); }
.store-btn svg{ flex-shrink:0; }
.store-btn .txt{ display:flex; flex-direction:column; line-height:1; text-align:left; }
.store-btn .badge{ font-size:10px; letter-spacing:0.06em; opacity:0.7; text-transform:uppercase; margin-bottom:4px; }
.store-btn .lg{ font-size:16px; font-weight:700; }
.store-btn.solid{ background:var(--fg); color:var(--bg); }
.store-btn.solid:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }

.ghost-cta{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:600; font-size:15px;
  color:var(--fg); text-decoration:none; padding:6px 0;
  border-bottom:1.5px solid var(--accent);
  transition:gap 120ms ease, color 120ms ease;
}
.ghost-cta:hover{ gap:16px; color:var(--accent); }
.ghost-cta svg{ flex-shrink:0; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--accent); text-decoration:none;
}
.link-arrow:hover{ color:var(--fg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; overflow:hidden;
  min-height:88vh; display:flex; align-items:flex-end;
  border-bottom:1px solid var(--line);
}
.hero-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:grayscale(1) contrast(1.08);
}
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,0.35) 0%, rgba(10,10,10,0.72) 55%, rgba(10,10,10,0.96) 100%);
}
.hero-inner{ position:relative; z-index:2; padding-top:56px; padding-bottom:44px; width:100%; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:9px; margin-bottom:26px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted);
}
.hero-eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--accent); animation:pulse 1.5s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:0.4; transform:scale(0.7);} }
.hero h1{
  font-family:var(--display); font-weight:900; text-transform:uppercase;
  letter-spacing:-0.045em; line-height:0.84; margin:0;
  font-size:clamp(58px, 15vw, 168px);
}
.hero h1 .accent{ color:var(--accent); }
.hero-sub{
  font-size:clamp(16px,2.4vw,21px); line-height:1.45; color:var(--muted);
  margin:24px 0 0; max-width:44ch;
}
.hero-sub strong{ color:var(--fg); font-weight:600; }
.hero-affiliation{
  margin:22px 0 0; font-family:var(--mono); font-size:12px; letter-spacing:0.08em;
  text-transform:uppercase; line-height:1.6; color:var(--muted);
}
.hero-affiliation strong{ color:var(--accent); font-weight:600; }
.hero-ctas{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 20px; margin-top:34px; }
@media (min-width:1024px){
  .hero{ min-height:92vh; }
  .hero h1{ max-width:14ch; }
  .hero-inner{ padding-bottom:56px; }
}

/* ============================================================
   SOCIAL PROOF BAND
   ============================================================ */
.proofband{ background:var(--accent); color:#fff; }
.proofband-inner{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1px; background:rgba(255,255,255,0.28);
}
.proofband .cell{
  background:var(--accent); padding:22px var(--pad);
  display:flex; flex-direction:column; gap:6px;
}
.proofband .v{ font-family:var(--display); font-weight:900; font-size:clamp(30px,7vw,46px); letter-spacing:-0.03em; line-height:0.9; }
.proofband .k{ font-family:var(--mono); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; opacity:0.82; }
@media (min-width:768px){
  .proofband-inner{ grid-template-columns:repeat(4,1fr); max-width:var(--maxw); margin:0 auto; }
  .proofband .cell{ align-items:flex-start; }
}

/* ============================================================
   SECTION scaffold
   ============================================================ */
.section{ padding:72px 0; }
.section.tight{ padding:56px 0; }
.section-title{
  font-family:var(--display); font-weight:900; text-transform:uppercase;
  letter-spacing:-0.035em; line-height:0.9; margin:0;
  font-size:clamp(34px,6vw,68px);
}
.section-lead{ font-size:clamp(16px,2vw,19px); line-height:1.55; color:var(--muted); margin:20px 0 0; max-width:56ch; }
.section-lead strong{ color:var(--fg); font-weight:600; }

.section.alt{ background:var(--surface); }
.section-head-row{ display:flex; flex-direction:column; gap:8px; margin-bottom:44px; }
@media (min-width:1024px){
  .section{ padding:104px 0; }
  .section-head-row{ margin-bottom:56px; }
}

/* ============================================================
   CONCEPT — bento grid
   ============================================================ */
.bento{ display:grid; grid-template-columns:1fr; gap:14px; }
.bento .cell{
  border:1px solid var(--line); background:var(--surface);
  padding:26px 24px; display:flex; flex-direction:column; gap:12px;
  min-height:180px; transition:border-color 160ms ease, transform 160ms ease;
}
.bento .cell:hover{ border-color:var(--line-strong); }
.bento .cell .n{ font-family:var(--display); font-weight:900; font-size:22px; color:var(--accent); letter-spacing:-0.02em; }
.bento .cell h3{ font-family:var(--display); font-weight:800; font-size:21px; text-transform:uppercase; letter-spacing:-0.01em; margin:0; line-height:1; }
.bento .cell p{ font-size:15px; line-height:1.55; color:var(--muted); margin:0; }
@media (min-width:640px){ .bento{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){
  .bento{ grid-template-columns:repeat(6,1fr); grid-auto-rows:1fr; }
  .bento .cell:nth-child(1){ grid-column:span 3; }
  .bento .cell:nth-child(2){ grid-column:span 3; }
  .bento .cell:nth-child(3){ grid-column:span 2; }
  .bento .cell:nth-child(4){ grid-column:span 2; }
  .bento .cell:nth-child(5){ grid-column:span 2; }
}

/* ============================================================
   APP IN ACTION — phone row
   ============================================================ */
.app-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px 16px; }
.app-card{ display:flex; flex-direction:column; gap:14px; }
.app-card .phone{
  aspect-ratio:9/19; background:#000; border:1px solid var(--line-strong);
  border-radius:26px; overflow:hidden; position:relative; padding:7px;
}
.app-card .phone::before{
  content:''; position:absolute; top:8px; left:50%; transform:translateX(-50%);
  width:46px; height:5px; background:#000; border-radius:99px; z-index:2;
}
.app-card .phone .screen{ position:absolute; inset:5px; border-radius:20px; overflow:hidden; background:#0d0d0d; }
.app-card .phone img{ width:100%; height:100%; object-fit:cover; }
.app-card .cap strong{ display:block; font-family:var(--display); font-weight:800; font-size:15px; text-transform:uppercase; letter-spacing:-0.01em; margin-bottom:4px; }
.app-card .cap span{ font-size:13.5px; line-height:1.45; color:var(--muted); }
@media (min-width:768px){ .app-row{ grid-template-columns:repeat(4,1fr); gap:24px; } }

/* ============================================================
   TESTIMONIALS — Google review style
   ============================================================ */
.reviews{ display:grid; grid-template-columns:1fr; gap:14px; }
.review{
  border:1px solid var(--line); background:var(--surface);
  padding:24px; display:flex; flex-direction:column; gap:14px;
}
.review-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.review-who{ display:flex; align-items:center; gap:12px; }
.review-avatar{
  width:40px; height:40px; border-radius:50%; background:var(--surface-2);
  border:1px solid var(--line-strong); display:grid; place-items:center;
  font-family:var(--display); font-weight:800; font-size:16px; color:var(--fg);
}
.review-name{ font-weight:600; font-size:15px; color:var(--fg); }
.review-meta{ font-family:var(--mono); font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--faint); margin-top:3px; }
.review-stars{ display:flex; gap:2px; color:#FFC107; }
.review-body{ font-size:15px; line-height:1.6; color:var(--muted); margin:0; }
.review-body strong{ color:var(--fg); font-weight:600; }
.review-src{ display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--faint); margin-top:auto; }
@media (min-width:768px){ .reviews{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .reviews{ grid-template-columns:repeat(4,1fr); } }

/* placeholder marker */
.ph-flag{
  display:inline-block; font-family:var(--mono); font-size:9px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent); border:1px solid var(--accent); padding:2px 6px; margin-bottom:14px;
}

/* photo avatars + 3-up reviews */
.review-avatar{ overflow:hidden; padding:0; }
.review-avatar img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); }
@media (min-width:1024px){ .reviews.cols-3{ grid-template-columns:repeat(3,1fr); } }

/* ============================================================
   LES COACHS
   ============================================================ */
.coach-roster{
  display:grid; grid-auto-flow:column; grid-auto-columns:76%; gap:12px;
  overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  padding-bottom:8px; margin-bottom:32px;
}
.coach-roster::-webkit-scrollbar{ height:0; }
.coach-card{ scroll-snap-align:start; display:flex; flex-direction:column; border:1px solid var(--line-strong); background:var(--surface); }
.coach-photo{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--surface-2); display:grid; place-items:center; }
.coach-photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); }
.coach-ph-label{ font-family:var(--mono); font-size:9px; letter-spacing:0.12em; text-transform:uppercase; color:var(--faint); }
.coach-info{ padding:16px 16px 14px; display:flex; flex-direction:column; gap:9px; }
.coach-name{ font-family:var(--display); font-weight:800; font-size:22px; text-transform:uppercase; letter-spacing:-0.01em; line-height:1; }
.coach-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.coach-tags span{ font-family:var(--mono); font-size:9px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line); padding:3px 7px; }
.coach-spec{ font-size:14px; line-height:1.4; color:var(--fg); }
.coach-slot{ font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); }
.coach-card.ph .coach-name,.coach-card.ph .coach-spec,.coach-card.ph .coach-tags span{ color:var(--faint); }
.coach-intro{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); margin:12px 0 0; }
.coach-card.mystery{ position:relative; }
.mystery-photo{ background:radial-gradient(120% 100% at 50% 0%, #1e1e1e 0%, #0b0b0b 72%); overflow:hidden; }
.mystery-photo .sil{ width:76%; height:auto; color:#000; opacity:.5; filter:blur(2px); }
.mystery-photo::after{ content:'?'; position:absolute; font-family:var(--display); font-weight:900; font-size:104px; line-height:1; color:rgba(255,255,255,.05); }
.mystery-badge{ position:absolute; top:10px; left:10px; z-index:2; font-family:var(--mono); font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); border:1px solid var(--accent); padding:3px 7px; background:rgba(11,11,11,.55); }
.coach-card.mystery .coach-name{ color:var(--faint); letter-spacing:0.14em; }
.coach-tags .masked{ filter:blur(4px); user-select:none; color:var(--muted); }
.mystery-reveal{ font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); }
.coach-cta.ghost{ color:var(--muted); }
.coach-cta{
  display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto;
  padding:14px 16px; border-top:1px solid var(--line);
  font-family:var(--sans); font-weight:700; font-size:13px; color:var(--fg); text-decoration:none;
  transition:background 140ms ease, color 140ms ease;
}
.coach-cta .arw{ transition:transform 140ms ease; }
.coach-cta:hover{ background:var(--accent); color:#fff; }
.coach-cta:hover .arw{ transform:translateX(4px); }
.coach-quote{ margin:0 0 22px; border-left:2px solid var(--accent); padding:2px 0 2px 22px; max-width:62ch; }
.coach-quote blockquote{ margin:0; font-size:clamp(17px,2.3vw,22px); line-height:1.5; color:var(--fg); font-weight:500; }
.coach-quote figcaption{ margin-top:14px; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--faint); }
@media (min-width:768px){
  .coach-roster{ grid-auto-flow:row; grid-template-columns:repeat(2,1fr); grid-auto-columns:auto; overflow:visible; scroll-snap-type:none; }
}
@media (min-width:1024px){ .coach-roster{ grid-template-columns:repeat(4,1fr); } }

/* ============================================================
   COMMUNITY stats (dark)
   ============================================================ */
.commstats{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.commstats .s{ background:var(--bg); padding:26px 22px; }
.commstats .v{ font-family:var(--display); font-weight:900; font-size:clamp(34px,7vw,52px); letter-spacing:-0.03em; line-height:0.9; }
.commstats .k{ font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--faint); margin-top:10px; }
@media (min-width:768px){ .commstats{ grid-template-columns:repeat(4,1fr); } }
.comm-sub{ font-size:clamp(15px,1.8vw,18px); line-height:1.6; color:var(--muted); margin:28px 0 0; max-width:60ch; }
.comm-sub strong{ color:var(--fg); font-weight:600; }

/* ============================================================
   LOCATION
   ============================================================ */
.lieu-grid{ display:grid; grid-template-columns:1fr; gap:20px; }
.map-frame{ position:relative; aspect-ratio:16/10; border:1px solid var(--line); overflow:hidden; background:var(--surface); }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(1) contrast(1.05) invert(0.92) hue-rotate(180deg); }
.addr-bar{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 22px; background:var(--fg); color:var(--bg); text-decoration:none;
}
.addr-bar:hover{ color:var(--bg); }
.addr-bar .ad{ font-weight:700; font-size:16px; }
.addr-bar .ad small{ display:block; font-family:var(--mono); font-size:10px; letter-spacing:0.08em; text-transform:uppercase; opacity:0.6; font-weight:400; margin-top:4px; }
.addr-bar .arw{ font-size:24px; }
.gallery{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:start; }
.gallery .ph{ position:relative; overflow:hidden; border:1px solid var(--line); }
.gallery .ph.tall{ aspect-ratio:3/4; }
.gallery-quad{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:10px; }
.gallery-quad .ph{ position:relative; overflow:hidden; border:1px solid var(--line); aspect-ratio:1; }
.gallery .ph img,.gallery-quad .ph img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); }
.gallery image-slot{ width:100%; height:100%; display:block; }
.gallery .ph .lbl{ position:absolute; bottom:8px; left:8px; font-family:var(--mono); font-size:9px; letter-spacing:0.12em; text-transform:uppercase; background:var(--bg); color:var(--fg); padding:3px 7px; }
.hours{
  display:flex; align-items:center; gap:16px; padding:18px 22px; border:1.5px solid var(--line-strong); margin-top:8px;
}
.hours .clock{ font-family:var(--display); font-weight:900; font-size:32px; letter-spacing:-0.02em; }
.hours .info{ font-size:14px; line-height:1.45; }
.hours .info strong{ display:block; font-size:15px; margin-bottom:2px; }
.hours .info span{ color:var(--muted); }
@media (min-width:1024px){
  .lieu-grid{ grid-template-columns:1.35fr 1fr; align-items:start; gap:24px; }
  .lieu-col-a{ display:flex; flex-direction:column; gap:0; }
  .gallery{ height:100%; align-items:stretch; }
  .gallery .ph.tall{ aspect-ratio:auto; height:100%; }
  .gallery-quad{ height:100%; }
  .gallery-quad .ph{ aspect-ratio:auto; }
}

/* ============================================================
   INSTAGRAM reels
   ============================================================ */
.ig-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.ig-post{ position:relative; aspect-ratio:9/16; overflow:hidden; background:var(--surface-2); cursor:pointer; display:block; }
.ig-post video,.ig-post img{ width:100%; height:100%; object-fit:cover; filter:grayscale(0.85); transition:filter 240ms ease; }
.ig-post:hover video,.ig-post:hover img{ filter:grayscale(0); }
.ig-post .tag{ position:absolute; top:8px; right:8px; font-family:var(--mono); font-size:8px; letter-spacing:0.1em; color:#fff; background:rgba(0,0,0,0.6); padding:2px 5px; }
.ig-post .play{ position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; opacity:0.9; transition:opacity 200ms ease; }
.ig-post.playing .play{ opacity:0; }
.ig-post .play svg{ filter:drop-shadow(0 2px 8px rgba(0,0,0,0.5)); }
@media (min-width:768px){ .ig-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1024px){ .ig-grid{ grid-template-columns:repeat(6,1fr); } }

/* ============================================================
   CODE OF CONDUCT — condensed
   ============================================================ */
.conduct-list{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--line); }
.conduct-item{
  display:grid; grid-template-columns:44px 1fr; gap:16px; align-items:baseline;
  padding:18px 0; border-bottom:1px solid var(--line);
}
.conduct-item .n{ font-family:var(--display); font-weight:900; font-size:20px; color:var(--accent); }
.conduct-item p{ margin:0; font-size:15px; line-height:1.5; color:var(--muted); }
.conduct-item p strong{ color:var(--fg); font-weight:700; }
@media (min-width:768px){ .conduct-list{ grid-template-columns:1fr 1fr; column-gap:40px; } }

/* ============================================================
   FAQ
   ============================================================ */
.faq{ border-top:1px solid var(--line); max-width:900px; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:24px 0; background:transparent; border:0; cursor:pointer; text-align:left; color:var(--fg);
  font-family:var(--display); font-weight:800; font-size:clamp(17px,2.2vw,22px);
  text-transform:uppercase; letter-spacing:-0.01em;
}
.faq-q .plus{ font-family:var(--display); font-weight:400; font-size:28px; line-height:1; flex-shrink:0; color:var(--accent); transition:transform 220ms ease; }
.faq-item.open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height 300ms ease; }
.faq-item.open .faq-a{ max-height:400px; }
.faq-a-inner{ font-size:15.5px; line-height:1.65; color:var(--muted); padding:0 0 24px; max-width:70ch; }

/* ============================================================
   SEGMENT grid (au-delà des membres)
   ============================================================ */
.seg-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.seg-card{
  display:flex; flex-direction:column; gap:14px; min-height:160px;
  border:1px solid var(--line-strong); padding:22px; text-decoration:none; color:var(--fg);
  transition:background 140ms ease, border-color 140ms ease, color 140ms ease;
}
.seg-card:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.seg-card .sc-k{ font-family:var(--mono); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; opacity:0.7; display:flex; align-items:center; gap:8px; }
.seg-card:hover .sc-k{ opacity:0.9; }
.seg-card .sc-en{ font-size:8px; letter-spacing:0.1em; border:1px solid currentColor; padding:1px 4px; }
.seg-card .sc-mid{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; }
.seg-card .sc-t{ font-family:var(--display); font-weight:800; font-size:24px; text-transform:uppercase; line-height:1; }
.seg-card .sc-b{ font-size:13px; line-height:1.4; opacity:0.72; }
.seg-card:hover .sc-b{ opacity:0.95; }
@media (min-width:1024px){ .seg-grid{ grid-template-columns:repeat(4,1fr); } }

/* ============================================================
   FINAL BAND — early members + email
   ============================================================ */
.finalband{ background:var(--accent); color:#fff; position:relative; overflow:hidden; }
.finalband .label-tag{
  display:inline-block; background:#fff; color:var(--accent-deep); padding:5px 10px;
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:24px;
}
.finalband h2{ font-family:var(--display); font-weight:900; text-transform:uppercase; letter-spacing:-0.035em; line-height:0.86; margin:0; font-size:clamp(44px,9vw,104px); }
.finalband p{ font-size:clamp(16px,2vw,20px); line-height:1.5; margin:20px 0 0; max-width:52ch; color:rgba(255,255,255,0.92); }
.finalband .fb-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
.finalband .store-btn{ border-color:#fff; color:#fff; }
.finalband .store-btn:hover{ background:#fff; color:var(--accent-deep); }
.finalband .store-btn.solid{ background:#fff; color:var(--accent-deep); border-color:#fff; }
.finalband .store-btn.solid:hover{ background:var(--bg); color:#fff; border-color:var(--bg); }

.email-block{ margin-top:40px; max-width:520px; }
.email-divider{ display:flex; align-items:center; gap:14px; font-family:var(--mono); font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.75); margin-bottom:16px; }
.email-divider::before,.email-divider::after{ content:''; flex:1; height:1px; background:rgba(255,255,255,0.4); }
.email-form .field{ display:flex; border:1.5px solid #fff; background:transparent; }
.email-form input{ flex:1; background:transparent; border:0; color:#fff; padding:15px 16px; font-family:var(--sans); font-size:15px; outline:none; }
.email-form input::placeholder{ color:rgba(255,255,255,0.7); }
.email-form button{ background:#fff; color:var(--accent-deep); border:0; padding:0 22px; font-family:var(--sans); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.06em; cursor:pointer; }
.email-form button:hover{ background:var(--bg); color:#fff; }
.email-form .small{ display:block; font-size:11px; color:rgba(255,255,255,0.8); margin-top:8px; }
.mats-msg{ display:none; padding:14px 16px; margin-bottom:16px; font-size:13px; line-height:1.4; max-width:520px; }
.mats-msg-success{ background:var(--bg); color:#fff; }
.mats-msg-error{ background:#fff; color:var(--accent-deep); }
.input--hidden{ position:absolute; left:-9999px; }
#sib-form-container{ background:transparent!important; border:0!important; max-width:none!important; padding:0!important; }
#sib-form{ background:transparent!important; padding:0!important; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--bg); border-top:1px solid var(--line); padding:56px 0 40px; }
.footer-logo{ width:150px; height:auto; margin:0 0 32px; }
.footer-cols{ display:grid; grid-template-columns:1fr 1fr; gap:32px 24px; margin-bottom:40px; }
.footer h4{ font-family:var(--mono); font-size:10px; letter-spacing:0.18em; text-transform:uppercase; font-weight:500; color:var(--faint); margin:0 0 12px; }
.footer ul{ list-style:none; padding:0; margin:0; font-size:14px; line-height:2; }
.footer ul li{ color:var(--muted); }
.footer ul a{ color:var(--muted); text-decoration:none; }
.footer ul a:hover{ color:var(--accent); }
.footer .bottom{ display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; padding-top:24px; border-top:1px solid var(--line); font-family:var(--mono); font-size:9px; letter-spacing:0.16em; text-transform:uppercase; color:var(--faint); }
@media (min-width:768px){ .footer-cols{ grid-template-columns:repeat(5,1fr); } }

/* ============================================================
   FLOATING WHATSAPP + STICKY MOBILE CTA
   ============================================================ */
.fab-wa{
  position:fixed; bottom:20px; right:20px; z-index:80;
  width:52px; height:52px; border-radius:50%;
  background:var(--surface); color:var(--fg); border:2px solid var(--accent);
  display:grid; place-items:center; text-decoration:none;
  box-shadow:0 8px 24px rgba(0,0,0,0.45);
}
.fab-wa:hover{ color:var(--fg); background:var(--surface-2); }
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:75;
  background:rgba(10,10,10,0.94); backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:12px 16px; transform:translateY(120%); transition:transform 260ms ease;
}
.sticky-cta.show{ transform:translateY(0); }
.sticky-cta .lbl{ font-family:var(--display); font-weight:800; font-size:15px; text-transform:uppercase; letter-spacing:-0.01em; }
.sticky-cta .lbl small{ display:block; font-family:var(--mono); font-size:9px; letter-spacing:0.1em; color:var(--muted); font-weight:400; margin-top:2px; }
.sticky-cta a.dl{ background:var(--accent); color:#fff; text-decoration:none; font-weight:700; font-size:14px; padding:12px 18px; white-space:nowrap; }
@media (min-width:900px){ .sticky-cta{ display:none; } }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity 620ms cubic-bezier(.2,.7,.2,1), transform 620ms cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   SUB-PAGE (clubs / day-pass) content column helpers
   ============================================================ */
.subpage-hero{ border-bottom:1px solid var(--line); padding:72px 0 56px; }
.subpage-hero.imgbg{ position:relative; overflow:hidden; }
.subpage-hero .eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--faint); display:flex; align-items:center; gap:9px; margin:0 0 22px; }
.subpage-hero .eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--accent); }
.subpage-hero h1{ font-family:var(--display); font-weight:900; text-transform:uppercase; letter-spacing:-0.035em; line-height:0.9; margin:0; font-size:clamp(38px,7vw,88px); max-width:18ch; }
.subpage-hero .lead{ font-size:clamp(16px,2vw,20px); line-height:1.55; color:var(--muted); margin:26px 0 0; max-width:56ch; }
.subpage-hero .lead strong{ color:var(--fg); font-weight:600; }
@media (min-width:1024px){ .subpage-hero{ padding:104px 0 80px; } }

.args2{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--line); }
.arg2{ display:grid; grid-template-columns:64px 1fr; gap:20px; padding:32px 0; border-bottom:1px solid var(--line); align-items:start; }
.arg2 .n{ font-family:var(--display); font-weight:900; font-size:34px; color:var(--accent); letter-spacing:-0.02em; line-height:0.9; }
.arg2 h3{ font-family:var(--display); font-weight:800; font-size:clamp(20px,2.6vw,28px); text-transform:uppercase; letter-spacing:-0.01em; margin:0 0 10px; line-height:1; }
.arg2 p{ font-size:16px; line-height:1.6; color:var(--muted); margin:0; max-width:62ch; }
.arg2 p strong{ color:var(--fg); font-weight:600; }
@media (min-width:1024px){
  .args2{ grid-template-columns:1fr 1fr; column-gap:56px; }
  .arg2{ border-top:0; }
}

.steps2{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--line); }
.step2{ display:grid; grid-template-columns:52px 1fr; gap:18px; padding:26px 0; border-bottom:1px solid var(--line); align-items:start; }
.step2 .num{ width:38px; height:38px; border-radius:50%; border:1.5px solid var(--line-strong); display:grid; place-items:center; font-family:var(--display); font-weight:900; font-size:16px; }
.step2 h3{ font-family:var(--display); font-weight:800; font-size:19px; text-transform:uppercase; margin:0 0 5px; }
.step2 p{ font-size:15px; line-height:1.55; color:var(--muted); margin:0; }
@media (min-width:768px){ .steps2{ grid-template-columns:repeat(3,1fr); gap:0 32px; } .step2{ border-bottom:0; border-top:1px solid var(--line); } }

.price-card2{ border:1.5px solid var(--line-strong); padding:32px; max-width:640px; }
.price-card2 .tag{ display:inline-block; background:var(--accent); color:#fff; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; padding:5px 10px; margin-bottom:20px; }
.price-card2 .amount{ font-family:var(--display); font-weight:900; font-size:clamp(48px,8vw,72px); letter-spacing:-0.03em; line-height:1; }
.price-card2 .amount .per{ font-size:18px; color:var(--faint); }
.price-card2 ul{ list-style:none; padding:0; margin:22px 0 0; }
.price-card2 li{ display:grid; grid-template-columns:20px 1fr; gap:12px; font-size:15px; line-height:1.5; padding:8px 0; color:var(--muted); }
.price-card2 li .ck{ color:var(--accent); font-weight:800; }
.price-card2 li strong{ color:var(--fg); font-weight:600; }

.rules2{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--line); }
.rule2{ display:grid; grid-template-columns:40px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.rule2 .ck{ font-family:var(--display); font-weight:900; font-size:20px; color:var(--accent); }
.rule2 strong{ display:block; font-family:var(--display); font-weight:800; font-size:15px; text-transform:uppercase; margin-bottom:3px; }
.rule2 span{ font-size:15px; line-height:1.5; color:var(--muted); }
@media (min-width:768px){ .rules2{ grid-template-columns:1fr 1fr; column-gap:44px; } }

.rich2 p{ font-size:16px; line-height:1.65; color:var(--muted); margin:0 0 16px; max-width:64ch; }
.rich2 p strong{ color:var(--fg); font-weight:600; }

/* CTA card (clubs) */
.cta-card{ border:1.5px solid var(--line-strong); background:var(--surface); padding:36px 32px; max-width:680px; }
.cta-card h2{ font-family:var(--display); font-weight:900; font-size:clamp(28px,4vw,44px); text-transform:uppercase; letter-spacing:-0.03em; line-height:0.92; margin:0 0 14px; }
.cta-card p{ font-size:16px; line-height:1.6; color:var(--muted); margin:0 0 26px; max-width:52ch; }
.cta-card .btn-row{ gap:14px; }
.cta-card .contact-btn{
  display:inline-flex; align-items:center; gap:10px; padding:16px 24px; text-decoration:none; font-weight:700; font-size:16px;
  background:var(--accent); color:#fff; transition:background 120ms ease;
}
.cta-card .contact-btn:hover{ background:var(--accent-deep); color:#fff; }
.cta-card .contact-btn.alt{ background:transparent; color:var(--fg); border:1.5px solid var(--line-strong); }
.cta-card .contact-btn.alt:hover{ background:var(--fg); color:var(--bg); border-color:var(--fg); }

.back-band{ border-top:1px solid var(--line); padding:24px 0; }
.back-band .wrap{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.back-band a{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); text-decoration:none; }
.back-band a:hover{ color:var(--accent); }
