/* =========================================================
   OLD SCHOOL — Fighting Club Wrocław — Prototype Stylesheet
   ========================================================= */

:root{
  --bg: #0D1014;
  --bg-2: #14181D;
  --blue: #3564A7;
  --blue-deep: #24466F;
  --yellow: #F7CE46;
  --graphite: #2D3136;
  --text: #F5F5F2;
  --text-dim: #ACB2BA;
  --line: rgba(245,245,242,0.12);
  --radius: 2px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  background:
    radial-gradient(circle at 88% 0%, rgba(45,103,166,.16), transparent 32%),
    radial-gradient(circle at 8% 100%, rgba(45,103,166,.1), transparent 28%),
    var(--bg);
  color:var(--text);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
h1,h2,h3, .display{
  font-family:'Bebas Neue', 'Oswald', sans-serif;
  letter-spacing:0.5px;
  line-height:1.05;
  text-transform:uppercase;
}
.eyebrow{
  font-family:'Oswald', sans-serif;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  font-size:13px;
  color:var(--yellow);
  display:inline-block;
}
.section-title{ font-size:clamp(32px,4.5vw,52px); margin-bottom:14px; }
.section-lede{ color:var(--text-dim); max-width:560px; font-size:16px; }
.container{ max-width:1200px; margin:0 auto; padding:0 24px; }
.container-narrow{ max-width:860px; margin:0 auto; padding:0 24px; }
section{ padding:96px 0; }
@media(max-width:768px){ section{ padding:64px 0; } }
.head-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:48px; flex-wrap:wrap; }

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:16px 28px;
  font-family:'Oswald', sans-serif; font-weight:600; font-size:14px;
  letter-spacing:1.5px; text-transform:uppercase;
  border-radius:var(--radius); border:2px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn:focus-visible{ outline:2px solid var(--yellow); outline-offset:3px; }
.btn-primary{ background:var(--yellow); color:#191305; }
.btn-primary:hover{ transform:translateY(-2px); background:#ffdb63; }
.btn-outline{ background:transparent; color:var(--text); border-color:var(--line); }
.btn-outline:hover{ border-color:var(--yellow); color:var(--yellow); transform:translateY(-2px); }
.btn-outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,0.5); }
.btn-outline-light:hover{ border-color:var(--yellow); color:var(--yellow); }
.btn-block{ width:100%; }
.btn-small{ padding:10px 18px; font-size:13px; }
.btn:disabled{ opacity:.5; cursor:not-allowed; }

/* ---------- CORNER-FRAME SIGNATURE MOTIF ---------- */
.corner-frame{ position:relative; isolation:isolate; }
.corner-frame::before, .corner-frame::after,
.corner-frame .cf-br, .corner-frame .cf-bl{
  content:""; position:absolute; width:28px; height:28px; z-index:2; pointer-events:none;
}
.corner-frame::before{ top:-1px; left:-1px; border-top:3px solid var(--yellow); border-left:3px solid var(--yellow); }
.corner-frame::after{ top:-1px; right:-1px; border-top:3px solid var(--yellow); border-right:3px solid var(--yellow); }
.corner-frame .cf-bl{ bottom:-1px; left:-1px; border-bottom:3px solid var(--yellow); border-left:3px solid var(--yellow); }
.corner-frame .cf-br{ bottom:-1px; right:-1px; border-bottom:3px solid var(--yellow); border-right:3px solid var(--yellow); }

/* ---------- HEADER ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:900;
  background:rgba(13,16,20,0.97);
  border-bottom:1px solid var(--line);
}
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; height:72px; }
.logo{ display:flex; align-items:center; gap:10px; font-family:'Bebas Neue', sans-serif; font-size:24px; letter-spacing:1px; }
.logo>span:last-child{ white-space:nowrap; }
.logo .mark{
  width:42px; height:42px; background:transparent;
  display:flex; align-items:center; justify-content:center;
  border:0; border-radius:50%; overflow:hidden;
  font-family:'Bebas Neue', sans-serif; font-size:20px; color:var(--yellow);
  flex-shrink:0;
}
.logo .mark img{ width:100%; height:100%; object-fit:cover; border-radius:50%; clip-path:circle(49% at 50% 50%); }
.logo .name-sub{ display:block; font-family:'Oswald', sans-serif; font-size:9px; letter-spacing:2.5px; color:var(--text-dim); font-weight:500; margin-top:-2px; }
nav.main-nav ul{ display:flex; gap:clamp(12px,1.6vw,24px); }
nav.main-nav a{
  font-family:'Oswald', sans-serif; font-size:13px; font-weight:500; letter-spacing:1px; text-transform:uppercase;
  color:var(--text-dim); position:relative; padding:6px 0; transition:color .2s;
}
nav.main-nav a:hover, nav.main-nav a.active{ color:var(--text); }
nav.main-nav a.active::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--yellow); }
.header-right{ display:flex; align-items:center; gap:20px; }
.header-quick-call{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border:1px solid var(--line); border-radius:50%;
  font-size:15px; color:var(--text-dim); flex-shrink:0; transition:border-color .2s, color .2s;
}
.header-quick-call:hover{ border-color:var(--yellow); color:var(--yellow); }
@media(max-width:600px){ .header-quick-call{ width:32px; height:32px; font-size:13px; } }
.lang-switch{ display:flex; gap:2px; font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; }
.lang-switch button,.lang-switch a{ background:none; border:1px solid var(--line); color:var(--text-dim); padding:5px 9px; cursor:pointer; letter-spacing:1px; text-decoration:none; display:inline-block; }
.lang-switch button.active,.lang-switch a.active{ background:var(--yellow); color:#191305; border-color:var(--yellow); }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.burger span{ width:26px; height:2px; background:var(--text); }
@media(max-width:1180px){
  nav.main-nav{ display:none; }
  .header-right .btn{ display:none; }
  .burger{ display:flex; }
}
@media(max-width:600px){
  .nav-wrap{ padding-left:18px; padding-right:12px; }
  .logo{ font-size:21px; gap:8px; }
  .logo .mark{ width:36px; height:36px; }
  .logo .name-sub{ display:none; }
  .header-right{ gap:4px; }
}
/* mobile drawer */
.mobile-drawer{
  position:fixed; top:72px; left:0; right:0; bottom:0; z-index:901;
  background:#0d1014;
  transform:translateX(100%);
  transition:transform .25s ease;
  overflow-y:auto;
  padding:32px 24px;
  box-shadow:0 24px 60px rgba(0,0,0,.55);
}
.mobile-drawer.open{ transform:translateX(0); }
body.menu-open{ overflow:hidden; }
.mobile-drawer ul{ display:flex; flex-direction:column; gap:4px; margin-bottom:28px; }
.mobile-drawer a{
  font-family:'Oswald',sans-serif; font-size:20px; text-transform:uppercase; letter-spacing:1px;
  padding:16px 4px; border-bottom:1px solid var(--line); display:block;
}
.mobile-drawer .lang-switch{ margin-bottom:20px; }

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{
  position:relative; padding-top:150px; padding-bottom:64px; overflow:hidden;
}
.page-hero-bg{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
  filter:grayscale(25%) contrast(1.05);
}
.page-hero-bg::after{ content:""; }
.page-hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(13,16,20,0.55) 0%, rgba(13,16,20,0.92) 100%);
}
.page-hero .container{ position:relative; z-index:2; }
.breadcrumb{ font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:1px; color:var(--text-dim); margin-bottom:18px; text-transform:uppercase; }
.breadcrumb a:hover{ color:var(--yellow); }
.page-hero h1{ font-size:clamp(40px,7vw,72px); margin-bottom:16px; }
.page-hero p{ color:var(--text-dim); max-width:600px; font-size:17px; }

/* simple page hero without photo */
.page-hero.plain{
  background:
    radial-gradient(circle at 88% 0%, rgba(45,103,166,.22), transparent 32%),
    var(--bg-2);
  border-bottom:1px solid var(--line);
}

/* ---------- STUB / COMING SOON NOTE ---------- */
.ph-note{ display:inline-block; margin-top:6px; font-size:12px; color:#8a8f96; font-style:italic; }
.stub-banner{
  background:var(--graphite); border:1px dashed var(--line); padding:14px 18px;
  font-size:13px; color:var(--text-dim); margin-top:14px; display:flex; align-items:center; gap:10px;
}
.stub-banner .dot{ width:6px;height:6px; background:var(--yellow); flex-shrink:0; }

/* ---------- CARDS: DISCIPLINES / ZAJĘCIA ---------- */
.cards-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media(max-width:1000px){ .cards-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .cards-4{ grid-template-columns:1fr; } }
.discipline-card{
  background:var(--graphite); border:1px solid var(--line);
  display:flex; flex-direction:column;
  transition:transform .2s ease, border-color .2s ease;
}
.discipline-card:hover{ transform:translateY(-4px); border-color:var(--yellow); }
.discipline-card:focus-visible{ outline:2px solid var(--yellow); outline-offset:3px; transform:translateY(-4px); border-color:var(--yellow); }
.discipline-photo{ position:relative; height:200px; overflow:hidden; }
.discipline-photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(30%); transition:transform .35s ease; }
.discipline-card:hover .discipline-photo img{ transform:scale(1.06); }
.level-tag{
  position:absolute; top:10px; left:10px; background:rgba(13,16,20,0.85); color:var(--yellow);
  font-family:'Oswald',sans-serif; font-size:11px; font-weight:600; letter-spacing:1.5px; padding:5px 9px; text-transform:uppercase;
}
.discipline-body{ padding:22px 20px 24px; flex:1; display:flex; flex-direction:column; }
.discipline-body h3{ font-size:26px; margin-bottom:8px; }
.discipline-body p{ color:var(--text-dim); font-size:14px; margin-bottom:14px; }
.discipline-meta{ display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.discipline-meta span{ font-size:13px; color:var(--text-dim); font-family:'Oswald',sans-serif; letter-spacing:0.3px; }
.discipline-meta span b{ color:var(--text); font-weight:600; }
.discipline-body .link-arrow{ margin-top:auto; }
.link-arrow{ font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--yellow); display:inline-flex; align-items:center; gap:6px; }
.link-arrow:hover{ gap:10px; }

/* ---------- WHOM / 3-COL BLUE BLOCK ---------- */
.whom{ background:linear-gradient(135deg, var(--blue-deep), var(--blue)); }
.whom .section-lede{ color:rgba(245,245,242,0.85); }
.whom-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.15); margin-top:48px; }
.whom-item{ background:var(--blue-deep); padding:36px 30px; }
.whom-item .num{ font-family:'Bebas Neue',sans-serif; font-size:15px; color:var(--yellow); letter-spacing:2px; margin-bottom:14px; display:block; }
.whom-item h3{ font-size:24px; margin-bottom:10px; }
.whom-item p{ color:rgba(245,245,242,0.75); font-size:14px; }
@media(max-width:800px){ .whom-grid{ grid-template-columns:1fr; } }

/* ---------- SCHEDULE ---------- */
.filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px; }
.filter-group{ margin-bottom:16px; }
.filter-group-label{ font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-dim); margin-bottom:10px; display:block; }
.filter-btn{
  font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase;
  padding:9px 18px; border:1px solid var(--line); background:transparent; color:var(--text-dim); cursor:pointer;
  white-space:nowrap;
}
.filter-btn.active{ background:var(--yellow); color:#191305; border-color:var(--yellow); }
.schedule-summary{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0 18px; border-bottom:1px solid var(--line); color:var(--text-dim); font-size:13px; }
.schedule-summary strong{ color:var(--text); font:600 14px/1 'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase; }
.schedule-table{ width:100%; border-collapse:collapse; }
.schedule-table th{
  text-align:left; font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--text-dim); padding:12px 16px; border-bottom:1px solid var(--line);
}
.schedule-table td{ padding:16px; border-bottom:1px solid var(--line); font-size:14px; }
.schedule-table tr.hidden-row{ display:none; }
.schedule-table tr:hover td{ background:rgba(255,255,255,0.02); }
.pill{ display:inline-block; padding:4px 10px; font-size:12px; font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; border:1px solid var(--line); color:var(--text-dim); }
.pill.boks{ border-color:var(--yellow); color:var(--yellow); }
.pill.kick{ border-color:var(--blue); color:#7ea6dd; }
.pill.mma{ border-color:#8a8f96; color:#c9cdd2; }
.pill.indyw{ border-color:#7ea6dd; color:#7ea6dd; }
.pill.stretch{ border-color:#7ea6dd; color:#7ea6dd; }
.pill.kobiety{ border-color:#e8a4c0; color:#e8a4c0; }
.pill.wydarzenie{ border-color:#c9a86a; color:#c9a86a; }
.day-strong{ font-family:'Oswald',sans-serif; font-weight:600; color:var(--text); }
@media(max-width:800px){ .schedule-table{ display:none; } }
.schedule-cards{ display:none; flex-direction:column; gap:12px; }
@media(max-width:800px){ .schedule-cards{ display:flex; } }
.schedule-cards .sched-card.hidden-row{ display:none; }
.schedule-empty{ display:none; padding:40px 20px; border:1px solid var(--line); color:var(--text-dim); text-align:center; }
.schedule-empty.show{ display:block; }
.sched-card{ background:var(--graphite); border:1px solid var(--line); padding:16px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.sched-card .time{ font-family:'Bebas Neue',sans-serif; font-size:22px; color:var(--yellow); min-width:64px; }
.sched-card .info{ flex:1; }
.sched-card .info b{ display:block; font-family:'Oswald',sans-serif; font-size:15px; margin-bottom:2px; }
.sched-card .info span{ font-size:13px; color:var(--text-dim); }
@media(max-width:800px){
  .filters{ flex-wrap:wrap; }
}
@media(max-width:560px){
  .filters{ gap:7px; margin-bottom:20px; }
  .filter-btn{ padding:8px 14px; font-size:12px; }
  .schedule-summary{ align-items:flex-start; flex-direction:column; gap:5px; }
  .sched-card{ display:grid; grid-template-columns:60px 1fr; padding:18px; }
  .sched-card .btn{ grid-column:2; width:max-content; }
}
.schedule-footer{ display:flex; justify-content:center; margin-top:36px; }
.week-tabs{ display:flex; gap:8px; overflow-x:auto; margin-bottom:32px; padding-bottom:4px; }
.week-tabs button{
  font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase;
  padding:10px 16px; border:1px solid var(--line); background:transparent; color:var(--text-dim); cursor:pointer; flex-shrink:0;
}
.week-tabs button.active{ border-color:var(--yellow); color:var(--yellow); }

/* ---------- TRAINERS ---------- */
.trainers-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media(max-width:1000px){ .trainers-grid-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .trainers-grid-4{ grid-template-columns:1fr; } }
.trainer-card{ background:var(--graphite); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .2s ease, border-color .2s ease; }
.trainer-card:hover{ transform:translateY(-4px); border-color:var(--yellow); }
.trainer-card-photo{ height:260px; overflow:hidden; }
.trainer-card-photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(25%); transition:transform .35s ease; }
.trainer-card:hover .trainer-card-photo img{ transform:scale(1.05); }
.trainer-card-body{ padding:20px; flex:1; display:flex; flex-direction:column; }
.trainer-card-body h4{ font-family:'Oswald',sans-serif; font-size:18px; font-weight:600; margin-bottom:4px; text-transform:none; }
.trainer-card-body .spec{ color:var(--yellow); font-size:13px; font-family:'Oswald',sans-serif; margin-bottom:10px; }
.trainer-card-body p{ color:var(--text-dim); font-size:13px; margin-bottom:16px; flex:1; }

.trainer-main{ display:grid; grid-template-columns:0.8fr 1fr; gap:56px; align-items:center; margin-bottom:56px; }
.trainer-photo{ position:relative; }
.trainer-photo img{ width:100%; height:480px; object-fit:cover; filter:grayscale(20%); }
.trainer-info .eyebrow{ margin-bottom:14px; display:block; }
.trainer-info h3{ font-size:42px; margin-bottom:6px; }
.trainer-spec{ font-family:'Oswald',sans-serif; color:var(--yellow); font-size:15px; font-weight:500; letter-spacing:0.5px; margin-bottom:20px; }
.trainer-info p.bio{ color:var(--text-dim); margin-bottom:28px; max-width:480px; }
.trainer-meta{ display:flex; gap:36px; margin-bottom:30px; flex-wrap:wrap; }
.trainer-meta div b{ display:block; font-family:'Bebas Neue',sans-serif; font-size:28px; color:var(--yellow); }
.trainer-meta div span{ font-size:13px; color:var(--text-dim); text-transform:uppercase; letter-spacing:1px; }
@media(max-width:860px){ .trainer-main{ grid-template-columns:1fr; } .trainer-photo img{ height:340px; } }
.tag-row{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.tag{ font-family:'Oswald',sans-serif; font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; border:1px solid var(--line); padding:6px 12px; color:var(--text-dim); }

/* ---------- ADVANTAGES ---------- */
.adv-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); }
.adv-item{ background:var(--bg); padding:36px 26px; }
.adv-item .adv-num{ font-family:'Bebas Neue',sans-serif; font-size:40px; color:var(--yellow); line-height:1; margin-bottom:16px; }
.adv-item h4{ font-family:'Oswald',sans-serif; font-size:16px; font-weight:600; letter-spacing:0.3px; text-transform:none; }
@media(max-width:900px){ .adv-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .adv-grid{ grid-template-columns:1fr; } }

/* ---------- GALLERY ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:220px; gap:8px; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; filter:grayscale(25%); transition:transform .3s ease, filter .3s ease; }
.gallery-grid a{ overflow:hidden; display:block; }
.gallery-grid a:hover img{ transform:scale(1.05); filter:grayscale(0%); }
.gallery-grid .g-big{ grid-row:span 2; }
@media(max-width:800px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:160px; } .gallery-grid .g-big{ grid-row:span 1; } }
.gallery-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.gallery-grid-3 a{ overflow:hidden; display:block; height:280px; }
.gallery-grid-3 img{ width:100%; height:100%; object-fit:cover; filter:grayscale(25%); transition:transform .3s ease, filter .3s ease; }
.gallery-grid-3 a:hover img{ transform:scale(1.05); filter:grayscale(0%); }
@media(max-width:700px){ .gallery-grid-3{ grid-template-columns:1fr; } .gallery-grid-3 a{ height:240px; } }

/* ---------- TESTIMONIALS ---------- */
.test-note{ font-size:13px; color:var(--text-dim); font-style:italic; margin-top:28px; }
.test-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:860px){ .test-grid{ grid-template-columns:1fr; } }
.test-card{ background:var(--graphite); border:1px solid var(--line); padding:28px; }
.test-card .stars{ color:var(--yellow); font-size:14px; letter-spacing:2px; margin-bottom:16px; }
.test-card p{ color:var(--text-dim); font-size:14px; margin-bottom:20px; }
.test-author{ display:flex; align-items:center; gap:12px; }
.test-author .avatar{ width:38px;height:38px; background:var(--blue); display:flex;align-items:center;justify-content:center; font-family:'Oswald',sans-serif; font-weight:600; font-size:14px; }
.test-author b{ display:block; font-family:'Oswald',sans-serif; font-size:14px; font-weight:600; }
.test-author span{ font-size:13px; color:var(--text-dim); }

/* ---------- FINAL CTA ---------- */
.final-cta{ background:var(--yellow); color:#14100a; text-align:center; padding:96px 0; }
.final-cta h2{ color:#14100a; font-size:clamp(36px,6vw,64px); margin-bottom:16px; }
.final-cta p{ max-width:520px; margin:0 auto 36px; font-size:16px; color:#3a3016; }
.final-cta .hero-ctas{ justify-content:center; margin-bottom:0; }
.final-cta .btn-outline{ border-color:#14100a; color:#14100a; }
.final-cta .btn-outline:hover{ background:#14100a; color:var(--yellow); }
.final-cta .btn-primary{ background:#14100a; color:var(--yellow); }
.final-cta .btn-primary:hover{ background:#221b0f; }
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; }

/* ---------- FOOTER ---------- */
footer{ background:var(--bg-2); border-top:1px solid var(--line); padding:64px 0 28px; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
@media(max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-col h5{ font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--yellow); margin-bottom:18px; }
.foot-col p, .foot-col a{ color:var(--text-dim); font-size:14px; margin-bottom:10px; display:block; }
.foot-col a:hover{ color:var(--yellow); }
.foot-social{ display:flex; gap:10px; margin-top:14px; }
.foot-social a{ width:28px; height:28px; display:flex; align-items:center; justify-content:center; opacity:0.88; transition:opacity .2s ease, transform .2s ease; }
.foot-social a:hover{ opacity:1; transform:translateY(-2px); }
.foot-social img{ width:100%; height:100%; display:block; }
.foot-bottom{ border-top:1px solid var(--line); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; color:var(--text-dim); }

/* ---------- STICKY MOBILE CTA ---------- */
.sticky-mobile-cta{ display:none; position:fixed; bottom:0; left:0; right:0; z-index:500; background:var(--bg-2); border-top:1px solid var(--line); padding:12px 16px; gap:10px; }
@media(max-width:760px){ .sticky-mobile-cta{ display:flex; } body{ padding-bottom:70px; } }
.sticky-mobile-cta .btn{ flex:1; padding:14px; }

/* ---------- FADE IN ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* =========================================================
   INNER PAGE SPECIFIC COMPONENTS
   ========================================================= */

/* ---- Numbered content rows (for whom / what you'll learn) ---- */
.num-list{ display:flex; flex-direction:column; gap:0; }
.num-row{ display:flex; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); }
.num-row .num{ font-family:'Bebas Neue',sans-serif; font-size:32px; color:var(--yellow); min-width:56px; }
.num-row h4{ font-family:'Oswald',sans-serif; font-size:17px; font-weight:600; margin-bottom:6px; text-transform:none; }
.num-row p{ color:var(--text-dim); font-size:14px; }

/* ---- Level cards (3) ---- */
.levels-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:800px){ .levels-grid{ grid-template-columns:1fr; } }
.level-card{ background:var(--graphite); border:1px solid var(--line); padding:28px; position:relative; }
.level-card.active-level{ border-color:var(--yellow); }
.level-card .lv-badge{ font-family:'Oswald',sans-serif; font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--yellow); margin-bottom:14px; display:block; }
.level-card h4{ font-family:'Oswald',sans-serif; font-size:19px; font-weight:600; margin-bottom:10px; text-transform:none; }
.level-card p{ color:var(--text-dim); font-size:14px; }

/* ---- Timeline / example training steps ---- */
.timeline{ display:flex; flex-direction:column; }
.timeline-step{ display:grid; grid-template-columns:110px 1fr; gap:24px; padding:20px 0; border-bottom:1px solid var(--line); }
.timeline-step .ts-time{ font-family:'Bebas Neue',sans-serif; font-size:20px; color:var(--yellow); }
.timeline-step h4{ font-family:'Oswald',sans-serif; font-size:16px; font-weight:600; margin-bottom:6px; text-transform:none; }
.timeline-step p{ color:var(--text-dim); font-size:14px; }
@media(max-width:560px){ .timeline-step{ grid-template-columns:1fr; gap:6px; } }

/* ---- Checklist (co zabrać) ---- */
.checklist{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 32px; }
@media(max-width:600px){ .checklist{ grid-template-columns:1fr; } }
.checklist li{ display:flex; gap:12px; align-items:flex-start; font-size:14px; color:var(--text-dim); }
.checklist li::before{ content:"—"; color:var(--yellow); font-weight:700; flex-shrink:0; }

/* ---- FAQ accordion ---- */
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; color:var(--text); cursor:pointer;
  padding:22px 0; font-family:'Oswald',sans-serif; font-size:16px; font-weight:500;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-q .plus{ font-family:'Bebas Neue',sans-serif; font-size:24px; color:var(--yellow); transition:transform .2s ease; flex-shrink:0; }
.faq-item.open .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq-item.open .faq-a{ max-height:240px; }
.faq-a p{ padding-bottom:22px; color:var(--text-dim); font-size:14px; max-width:640px; }

/* ---- Contact form ---- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media(max-width:600px){ .form-grid{ grid-template-columns:1fr; } }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field.full{ grid-column:1 / -1; }
.form-field label{ font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--text-dim); }
.form-field input, .form-field select, .form-field textarea{
  background:var(--graphite); border:1px solid var(--line); color:var(--text);
  padding:13px 14px; font-family:'Inter',sans-serif; font-size:14px; border-radius:var(--radius);
}
.form-field input, .form-field select, .form-field textarea{ width:100%; min-width:0; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ outline:none; border-color:var(--yellow); box-shadow:0 0 0 3px rgba(247,206,70,0.25); }
.form-field input:focus-visible, .form-field select:focus-visible, .form-field textarea:focus-visible{ outline:2px solid var(--yellow); outline-offset:1px; }
.form-field textarea{ resize:vertical; min-height:100px; }
.form-check{ display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--text-dim); grid-column:1 / -1; }
.form-check input{ margin-top:3px; accent-color:var(--yellow); }
.form-note{ font-size:13px; color:#8a8f96; font-style:italic; margin-top:14px; }
.form-success{ display:none; margin-top:16px; padding:16px 18px; border:1px solid rgba(247,206,70,.45); background:rgba(247,206,70,.08); color:var(--yellow); font:600 13px/1.5 'Oswald',sans-serif; letter-spacing:.5px; }
.form-success.show{ display:block; }

/* ---- Contact page layout ---- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:48px; } }
.contact-info-list{ display:flex; flex-direction:column; gap:22px; margin-bottom:32px; }
.contact-info-item{ display:flex; gap:16px; align-items:flex-start; }
.contact-info-item .ci-icon{ width:40px;height:40px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; color:var(--yellow); }
.contact-info-item b{ display:block; font-family:'Oswald',sans-serif; font-size:14px; font-weight:600; margin-bottom:2px; }
.contact-info-item span, .contact-info-item a{ font-size:14px; color:var(--text-dim); }
.map-placeholder{
  background:var(--graphite); border:1px dashed var(--line);
  min-height:340px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px;
  color:var(--text-dim); font-family:'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase; font-size:14px;
}
.map-placeholder .pin{ font-size:28px; color:var(--yellow); }
.map-embed{ position:relative; width:100%; padding-top:38%; border:1px solid var(--line); overflow:hidden; background:var(--graphite); }
@media(max-width:700px){ .map-embed{ padding-top:62%; } }
.map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(35%) contrast(1.05); }
.map-embed-link{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--yellow); }
.hp-field{ position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.contact-role{ font-size:13px; color:var(--text-dim); font-family:'Oswald',sans-serif; letter-spacing:0.3px; margin-top:2px; display:block; }
.contact-info-item a + span.contact-role, .contact-info-item div > span.contact-role{ margin-top:0; }
.price-table{ width:100%; border-collapse:collapse; margin-top:8px; }
.price-table th{ text-align:left; font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-dim); padding:12px 16px; border-bottom:1px solid var(--line); }
.price-table td{ padding:16px; border-bottom:1px solid var(--line); font-size:14px; }
.price-table td.price-value{ font-family:'Bebas Neue',sans-serif; font-size:22px; color:var(--yellow); white-space:nowrap; }
.price-table td.price-note{ color:var(--text-dim); font-size:13px; }
@media(max-width:700px){ .price-table thead{ display:none; } .price-table tr{ display:block; border-bottom:1px solid var(--line); padding:14px 0; } .price-table td{ display:flex; justify-content:space-between; border:none; padding:4px 0; } .price-table td.price-value{ font-size:20px; } .price-table td:first-child::before{ content:""; } }
.pricing-note{ font-size:13px; color:#8a8f96; font-style:italic; margin-top:16px; }

/* ---- Pricing package cards (cennik.html) ---- */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
@media(max-width:1000px){ .pricing-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .pricing-grid{ grid-template-columns:1fr; } }
.price-card{
  position:relative;
  background:var(--graphite); border:1px solid var(--line);
  padding:28px 24px; display:flex; flex-direction:column;
}
.price-card h3{ font-family:'Oswald',sans-serif; font-size:19px; font-weight:600; text-transform:none; margin-bottom:8px; }
.price-card-desc{ color:var(--text-dim); font-size:13px; margin-bottom:18px; min-height:36px; }
.price-card-amount{ font-family:'Bebas Neue',sans-serif; font-size:40px; color:var(--yellow); line-height:1; margin-bottom:6px; }
.price-card-amount span{ font-family:'Oswald',sans-serif; font-size:13px; color:var(--text-dim); font-weight:500; margin-left:4px; }
.price-card-savings{ font-size:13px; color:#8fd19e; font-weight:600; margin-bottom:16px; }
.price-card-list{ list-style:none; margin:0 0 24px; padding:0; flex:1; }
.price-card-list li{ font-size:13px; color:var(--text-dim); padding:8px 0; border-top:1px solid var(--line); }
.price-card-list li:first-child{ border-top:none; }
.price-card-featured{ border-color:var(--yellow); background:linear-gradient(180deg, rgba(247,206,70,0.06), var(--graphite) 40%); }
.price-badge{
  position:absolute; top:-1px; right:20px;
  background:var(--yellow); color:#191305;
  font-family:'Oswald',sans-serif; font-size:12px; font-weight:600; letter-spacing:0.5px;
  padding:5px 12px; text-transform:uppercase;
}
.price-single-note{
  margin-top:24px; padding:22px 26px; background:var(--bg-2); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.price-single-note b{ font-family:'Oswald',sans-serif; font-size:15px; font-weight:600; display:block; margin-bottom:2px; }
.price-single-note span{ font-size:13px; color:var(--text-dim); }
.price-single-amount{ font-family:'Bebas Neue',sans-serif; font-size:28px; color:var(--yellow); white-space:nowrap; }
.price-single-amount span{ font-family:'Oswald',sans-serif; font-size:13px; color:var(--text-dim); }

/* ---- Modal ---- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(13,16,20,0.8); z-index:9000;
  display:none; align-items:center; justify-content:center; padding:24px;
}
.modal-overlay.open{ display:flex; }
.modal-box{
  background:var(--bg-2); border:1px solid var(--line); max-width:520px; width:100%;
  padding:36px; max-height:88vh; overflow-y:auto; overflow-x:hidden; position:relative; overscroll-behavior:contain;
}
.modal-close{ position:absolute; top:16px; right:16px; background:none; border:none; color:var(--text-dim); font-size:22px; cursor:pointer; line-height:1; }
.modal-close:hover{ color:var(--yellow); }
.modal-box h3{ font-size:28px; margin-bottom:6px; }
.modal-box .modal-sub{ color:var(--text-dim); font-size:14px; margin-bottom:24px; }
.modal-success{ display:none; text-align:center; padding:24px 0; }
.modal-success.show{ display:block; }
.modal-success .check{ font-family:'Bebas Neue',sans-serif; font-size:48px; color:var(--yellow); margin-bottom:14px; }
@media(max-width:600px){
  .modal-overlay{ padding:12px; align-items:flex-start; }
  .modal-box{ margin-top:12px; padding:28px 20px 22px; max-height:calc(100dvh - 24px); }
  .modal-box h3{ padding-right:32px; font-size:26px; }
  .modal-box .form-grid{ grid-template-columns:minmax(0,1fr); gap:14px; }
  .modal-box .form-field,.modal-box .form-field.full,.modal-box .form-check,.modal-box .btn{ grid-column:1!important; min-width:0; }
}

/* ---- Toast ---- */
.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(120%);
  background:var(--yellow); color:#191305; padding:16px 24px; z-index:9100;
  font-family:'Oswald',sans-serif; font-weight:600; font-size:14px; letter-spacing:0.5px;
  transition:transform .3s ease; max-width:90vw; text-align:center;
}
.toast.show{ transform:translateX(-50%) translateY(0); }

/* ---- Shop grid ---- */
.shop-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.shop-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media(max-width:900px){ .shop-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .shop-grid{ grid-template-columns:1fr; } }
.product-card{ background:var(--graphite); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .2s ease, border-color .2s ease; }
.product-card:hover{ transform:translateY(-4px); border-color:var(--yellow); }
.product-photo{ height:220px; overflow:hidden; position:relative; background:#1b1e22; }
.product-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.product-card:hover .product-photo img{ transform:scale(1.06); }
.product-cat{ position:absolute; top:10px; left:10px; background:rgba(13,16,20,0.85); color:var(--yellow); font-family:'Oswald',sans-serif; font-size:11px; font-weight:600; letter-spacing:1.5px; padding:5px 9px; text-transform:uppercase; }
.product-body{ padding:20px; flex:1; display:flex; flex-direction:column; }
.product-body h4{ font-family:'Oswald',sans-serif; font-size:17px; font-weight:600; margin-bottom:6px; text-transform:none; }
.product-price{ color:var(--yellow); font-family:'Bebas Neue',sans-serif; font-size:22px; margin-bottom:16px; }
.shop-banner{
  background:var(--blue); background:linear-gradient(120deg, var(--blue-deep), var(--blue));
  padding:22px 28px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:48px;
}
.shop-banner p{ font-family:'Oswald',sans-serif; font-size:14px; letter-spacing:0.3px; color:var(--text); }
.shop-banner b{ color:var(--yellow); }

/* ---- Product page ---- */
.product-main{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media(max-width:860px){ .product-main{ grid-template-columns:1fr; gap:36px; } }
.product-gallery-main{ height:420px; background:#1b1e22; overflow:hidden; margin-bottom:12px; }
.product-gallery-main img{ width:100%; height:100%; object-fit:cover; }
.product-thumbs{ display:flex; gap:10px; }
.product-thumbs button{ width:76px; height:76px; padding:0; border:2px solid transparent; background:#1b1e22; cursor:pointer; overflow:hidden; }
.product-thumbs button.active{ border-color:var(--yellow); }
.product-thumbs img{ width:100%; height:100%; object-fit:cover; }
.product-detail-cat{ margin-bottom:10px; }
.product-detail h1{ font-size:40px; margin-bottom:14px; }
.product-detail-price{ font-family:'Bebas Neue',sans-serif; font-size:34px; color:var(--yellow); margin-bottom:22px; }
.product-detail p.desc{ color:var(--text-dim); font-size:15px; margin-bottom:26px; max-width:480px; }
.variant-group{ margin-bottom:26px; }
.variant-label{ font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--text-dim); margin-bottom:10px; display:block; }
.variant-options{ display:flex; gap:8px; flex-wrap:wrap; }
.variant-btn{ min-width:48px; padding:10px 14px; border:1px solid var(--line); background:transparent; color:var(--text); font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; cursor:pointer; }
.variant-btn.active{ border-color:var(--yellow); color:var(--yellow); }
.specs-list{ margin-top:32px; border-top:1px solid var(--line); }
.specs-row{ display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); font-size:14px; }
.specs-row span:first-child{ color:var(--text-dim); }
.delivery-note{ display:flex; gap:12px; align-items:flex-start; margin-top:22px; font-size:13px; color:var(--text-dim); }
.delivery-note .di{ color:var(--yellow); font-family:'Oswald',sans-serif; font-weight:600; flex-shrink:0; }

/* misc utility */
.mt-24{ margin-top:24px; } .mt-32{ margin-top:32px; } .mt-48{ margin-top:48px; }
.mb-24{ margin-bottom:24px; }
.text-center{ text-align:center; }
.divider{ height:1px; background:var(--line); margin:56px 0; }

/* =========================================================
   HOMEPAGE 2.0 — editorial, responsive conversion layout
   ========================================================= */
.home-page{ --home-max:1320px; background:#0c0f13; }
.home-page .container{ max-width:var(--home-max); padding-left:clamp(20px,4vw,56px); padding-right:clamp(20px,4vw,56px); }
.home-page section{ padding:clamp(76px,9vw,132px) 0; }
.home-page .site-header{ background:rgba(9,12,16,.92); }
.home-page .nav-wrap{ max-width:1440px; height:80px; }
.home-page .mobile-drawer{ top:80px; }
.home-page .logo{ font-size:25px; }
.home-page .logo .mark{ width:42px; height:42px; background:var(--blue-deep); }
.home-page nav.main-nav ul{ gap:clamp(18px,2vw,34px); }
.home-page nav.main-nav a{ font-size:13px; }
.home-page .header-right{ gap:16px; }
.home-page .btn{ border-radius:0; }
.home-page .btn-primary{ box-shadow:0 8px 28px rgba(247,206,70,.14); }
.home-page .section-index{ font-family:'Oswald',sans-serif; font-size:12px; line-height:1; color:var(--yellow); letter-spacing:2.4px; font-weight:600; text-transform:uppercase; }

/* hero */
.home-hero{ position:relative; min-height:820px; height:min(940px,100vh); padding:80px 0 0!important; display:flex; align-items:center; isolation:isolate; overflow:hidden; }
.home-hero-media{ position:absolute; inset:0; z-index:-3; background-image:url('../assets/img/real/gym-06.jpg'); background-size:cover; background-position:center 30%; filter:grayscale(15%) contrast(1.1); }
.home-hero::before{ content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(8,11,15,.98) 0%,rgba(8,11,15,.90) 38%,rgba(8,11,15,.22) 72%),linear-gradient(0deg,rgba(8,11,15,.92),transparent 42%); }
.home-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(105deg,transparent 0 57%,rgba(53,100,167,.18) 57.1% 58%,transparent 58.1%); }
.home-hero-grid{ position:absolute; inset:0; z-index:-1; opacity:.35; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(90deg,#000,transparent 72%); }
.home-hero-inner{ width:100%; display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:70px; align-items:end; padding-top:48px; }
.home-hero-copy{ max-width:800px; }
.hero-kicker{ display:flex; gap:14px; align-items:center; margin-bottom:28px; font:600 11px/1 'Oswald',sans-serif; color:var(--yellow); letter-spacing:2.4px; }
.hero-kicker span+span{ color:rgba(255,255,255,.62); border-left:1px solid rgba(255,255,255,.28); padding-left:14px; }
.home-hero h1{ max-width:760px; font-size:clamp(68px,6.7vw,104px); letter-spacing:-1px; line-height:.9; margin-bottom:30px; }
.home-hero h1 em{ color:var(--yellow); font-style:normal; }
.home-hero-copy>p{ max-width:590px; color:#c2c6cb; font-size:clamp(16px,1.5vw,19px); line-height:1.75; }
.hero-actions{ display:flex; align-items:center; gap:20px; margin:38px 0 44px; flex-wrap:wrap; }
.hero-text-link{ display:inline-flex; align-items:center; gap:18px; color:#f5f5f2; font:600 12px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.25); padding:12px 0; }
.hero-text-link:hover{ color:var(--yellow); border-color:var(--yellow); }
.hero-trust{ display:flex; gap:24px; flex-wrap:wrap; color:#9da4ad; font:500 11px/1.3 'Oswald',sans-serif; letter-spacing:.7px; text-transform:uppercase; }
.hero-trust span{ display:flex; gap:8px; align-items:center; }
.hero-trust b{ color:var(--yellow); font-size:11px; }
.next-class{ background:rgba(12,15,19,.9); border:1px solid rgba(255,255,255,.14); padding:26px 28px 0; backdrop-filter:blur(15px); box-shadow:0 28px 70px rgba(0,0,0,.35); }
.next-class-top{ display:flex; align-items:center; justify-content:space-between; color:#9da4ad; font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.8px; }
.next-class-top i{ width:7px; height:7px; background:var(--yellow); border-radius:50%; box-shadow:0 0 0 5px rgba(247,206,70,.12); }
.next-class-time{ display:flex; align-items:flex-end; gap:16px; margin:26px 0 18px; }
.next-class-time strong{ font:400 66px/.8 'Bebas Neue',sans-serif; }
.next-class-time span{ color:var(--yellow); font:600 11px/1.4 'Oswald',sans-serif; letter-spacing:1px; }
.next-class h2{ font-size:28px; margin-bottom:6px; }
.next-class p{ color:#8f969e; font-size:13px; }
.next-class-link{ display:flex; justify-content:space-between; margin:24px -28px 0; padding:18px 28px; background:var(--yellow); color:#17130a; font:600 12px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; }
.hero-scroll{ position:absolute; bottom:28px; left:28px; writing-mode:vertical-rl; display:flex; gap:12px; align-items:center; font:600 9px/1 'Oswald',sans-serif; letter-spacing:2px; color:#747b84; }

/* intro */
.home-intro{ background:#f0eee8; color:#11151a; }
.home-intro-grid{ display:grid; grid-template-columns:180px 1fr; gap:30px; }
.home-intro .section-index{ color:var(--blue-deep); padding-top:12px; }
.home-intro h2{ font-size:clamp(42px,5.3vw,76px); letter-spacing:-.5px; text-transform:uppercase; max-width:960px; margin-bottom:52px; }
.home-intro h2 span{ color:#6f7479; }
.intro-columns{ display:grid; grid-template-columns:1fr 1fr; gap:70px; max-width:850px; margin-left:auto; color:#4d535a; }
.intro-columns p{ font-size:15px; line-height:1.8; }
.club-stats{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #c8c7c1; margin-top:64px; }
.club-stats div{ padding:26px 0 0; border-right:1px solid #c8c7c1; }
.club-stats div+div{ padding-left:28px; }
.club-stats div:last-child{ border:0; }
.club-stats strong{ display:block; font:400 48px/.9 'Bebas Neue',sans-serif; color:var(--blue-deep); }
.club-stats span{ font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; color:#676c71; }

/* about — photographic editorial block */
.home-intro{ background:#eceae4; }
.about-feature-grid{ display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); gap:clamp(42px,6vw,88px); align-items:center; }
.about-feature-photo{ position:relative; min-height:650px; overflow:hidden; background:#171b20; }
.about-feature-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.72),transparent 46%); }
.about-feature-photo img{ width:100%; height:100%; position:absolute; inset:0; object-fit:cover; filter:grayscale(38%) contrast(1.08); }
.about-photo-caption{ position:absolute; z-index:1; left:30px; bottom:28px; display:flex; flex-direction:column; color:#fff; }
.about-photo-caption strong{ font:400 28px/1 'Bebas Neue',sans-serif; letter-spacing:1px; }
.about-photo-caption span{ font:600 9px/1 'Oswald',sans-serif; letter-spacing:2.2px; color:#c9cdd1; margin-top:7px; }
.about-year-badge{ position:absolute; z-index:2; top:0; right:0; width:112px; height:112px; display:grid; place-content:center; text-align:center; background:var(--yellow); color:#17130a; }
.about-year-badge small{ font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.6px; }.about-year-badge strong{ font:400 35px/1 'Bebas Neue',sans-serif; margin-top:4px; }
.about-feature-copy .section-index{ color:var(--blue-deep); }
.about-feature-copy h2{ font-size:clamp(50px,5.8vw,78px); line-height:.93; margin:22px 0 28px; }
.about-feature-copy h2 span{ color:var(--blue-deep); }
.about-lede{ max-width:530px; font:500 clamp(19px,2vw,25px)/1.5 'Oswald',sans-serif; color:var(--yellow); margin-bottom:22px; }
.about-feature-copy>p:not(.about-lede){ max-width:560px; color:#555b61; font-size:14px; line-height:1.8; }
.about-values{ display:flex; gap:8px; flex-wrap:wrap; margin:32px 0 40px; }
.about-values span{ border:1px solid #bfc0bb; padding:9px 12px; color:#3c4248; font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; }
.about-stats{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c5c5bf; }
.about-stats div{ padding:24px 12px 0 0; border-right:1px solid #c5c5bf; }
.about-stats div+div{ padding-left:24px; }.about-stats div:last-child{ border:0; }
.about-stats strong{ display:block; font:400 42px/.9 'Bebas Neue',sans-serif; color:var(--blue-deep); }
.about-stats span{ font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.1px; text-transform:uppercase; color:#666c72; }

/* reusable section heading */
.section-heading{ display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:52px; }
.section-heading h2,.benefit-head h2{ font-size:clamp(44px,5.2vw,72px); margin-top:16px; }
.section-heading>p{ max-width:410px; color:var(--text-dim); }

/* classes */
.home-classes{ background:#0c0f13; }
.class-feature-grid{ display:grid; grid-template-columns:1.22fr .78fr .78fr; grid-template-rows:305px 305px; gap:16px; }
.class-feature{ position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.11); grid-row:span 1; min-height:280px; }
.class-feature-main{ grid-row:span 2; }
.class-feature-light{ background:var(--blue-deep); }
.class-feature img{ width:100%; height:100%; object-fit:cover; filter:grayscale(35%) contrast(1.08); transition:transform .5s ease,filter .4s ease; }
.class-feature:hover img{ transform:scale(1.035); filter:grayscale(5%) contrast(1.05); }
.class-shade{ position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.96),rgba(8,11,15,.08) 75%); }
.class-number{ position:absolute; top:20px; left:22px; font:400 18px/1 'Bebas Neue',sans-serif; color:var(--yellow); }
.class-level{ position:absolute; top:18px; right:18px; border:1px solid rgba(255,255,255,.3); padding:7px 9px; font:600 8px/1 'Oswald',sans-serif; letter-spacing:1.2px; }
.class-copy{ position:absolute; left:22px; right:22px; bottom:22px; }
.class-copy h3{ font-size:clamp(32px,3.4vw,55px); margin-bottom:8px; }
.class-copy p{ color:#bec3c8; font-size:13px; max-width:440px; margin-bottom:18px; }
.class-copy a{ color:var(--yellow); display:flex; justify-content:space-between; border-top:1px solid rgba(255,255,255,.18); padding-top:14px; font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.4px; text-transform:uppercase; }
.class-feature-light .class-copy p{ color:#d2dae6; }

/* benefits */
.benefit-band{ background:linear-gradient(115deg,#213f66,#3564a7); padding-bottom:0!important; }
.benefit-head{ display:grid; grid-template-columns:180px 1fr; gap:30px; align-items:start; margin-bottom:64px; }
.benefit-head h2{ margin:0; }
.benefit-grid{ display:grid; grid-template-columns:repeat(4,1fr); padding-left:0!important; padding-right:0!important; max-width:none!important; border-top:1px solid rgba(255,255,255,.18); }
.benefit-grid article{ padding:42px clamp(24px,3vw,48px) 52px; border-right:1px solid rgba(255,255,255,.18); }
.benefit-grid article:first-child{ padding-left:clamp(24px,3vw,48px); }
.benefit-grid article:last-child{ padding-right:clamp(24px,3vw,48px); border:0; }
.benefit-grid span{ color:var(--yellow); font:400 18px/1 'Bebas Neue',sans-serif; }
.benefit-grid h3{ font-size:25px; margin:22px 0 12px; }
.benefit-grid p{ font-size:13px; color:#cbd5e2; }

/* schedule */
.home-schedule{ background:#f0eee8; color:#11151a; }
.home-schedule .section-index{ color:var(--blue-deep); }
.home-schedule .section-heading>p{ color:#4d535a; }
.home-schedule .btn-outline{ color:#11151a; border-color:#a7a6a1; }
.schedule-strip{ display:flex; border-top:1px solid #c3c3bd; border-bottom:1px solid #c3c3bd; margin-bottom:12px; flex-wrap:wrap; }
.schedule-day{ min-width:110px; flex:1; padding:18px 20px; display:flex; align-items:center; justify-content:center; gap:12px; border:none; border-right:1px solid #c3c3bd; color:#7b7d7e; cursor:pointer; background:none; font-family:inherit; white-space:nowrap; }
.schedule-day b{ white-space:nowrap; }
.schedule-day span{ font:600 10px/1 'Oswald',sans-serif; letter-spacing:1px; }
.schedule-day b{ font:400 25px/1 'Bebas Neue',sans-serif; }
.schedule-day.active{ background:#11151a; color:#fff; }
.schedule-day.active b{ color:var(--yellow); }
.schedule-list article{ display:grid; grid-template-columns:110px 1.5fr 1fr 1fr 100px; gap:20px; align-items:center; min-height:106px; border-bottom:1px solid #c3c3bd; padding:18px 8px; }
.schedule-list time{ font:400 38px/1 'Bebas Neue',sans-serif; }
.schedule-list h3{ font:600 18px/1.2 'Oswald',sans-serif; text-transform:none; margin-top:5px; }
.schedule-list p{ color:#686c70; font-size:13px; }
.schedule-list a{ color:var(--blue-deep); font:600 11px/1 'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase; }
.schedule-tag{ font:600 8px/1 'Oswald',sans-serif; letter-spacing:1.3px; padding:5px 7px; border:1px solid; }
.schedule-tag.yellow{ color:#806700; border-color:#d3ad20; }.schedule-tag.blue{ color:#28598f; border-color:#5f8dbc;}.schedule-tag.white{ color:#555b61; border-color:#999; }

/* trainers */
.home-trainers{ background:#0c0f13; }
.trainer-editorial-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.trainer-image{ position:relative; aspect-ratio:3/4; overflow:hidden; background:#181c21; }
.trainer-image::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.55),transparent 40%); }
.trainer-image img{ width:100%; height:100%; object-fit:cover; filter:grayscale(55%) contrast(1.06); transition:filter .35s ease,transform .4s ease; }
.trainer-editorial:hover img{ filter:grayscale(10%); transform:scale(1.025); }
.trainer-image span{ position:absolute; z-index:1; left:18px; bottom:16px; color:var(--yellow); font:400 20px/1 'Bebas Neue',sans-serif; }
.trainer-line{ display:flex; justify-content:space-between; gap:18px; padding-top:20px; }
.trainer-line h3{ font:600 20px/1.2 'Oswald',sans-serif; text-transform:none; }
.trainer-line p{ color:#8d949c; font-size:13px; margin-top:5px; }
.trainer-line>a{ width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--line); color:var(--yellow); flex-shrink:0; }
.trainer-owner .trainer-image img{ object-position:center 24%; transform:scale(1.12); filter:grayscale(22%) contrast(1.04); }
.trainer-owner:hover .trainer-image img{ transform:scale(1.15); filter:grayscale(5%); }
.trainer-owner .trainer-image::before{ display:none; }
.owner-badge{ position:absolute; z-index:2; top:14px; right:14px; width:auto; max-width:calc(100% - 28px); min-height:0; padding:7px 12px; display:inline-flex; align-items:center; justify-content:flex-end; background:var(--yellow); color:#17130a; border-radius:2px; font:600 10px/1.3 'Oswald',sans-serif; letter-spacing:1px; text-align:right; white-space:nowrap; }

/* homepage shop */
.home-shop{ background:#eceae4; color:#11151a; }
.home-shop .section-index{ color:var(--blue-deep); }
.home-shop .section-heading{ align-items:end; }
.home-shop .section-heading h2{ color:#11151a; }
.shop-heading-side{ max-width:410px; }
.shop-heading-side p{ color:#5d6268; font-size:14px; margin-bottom:22px; }
.home-shop .btn-outline{ border-color:#aaa9a3; color:#11151a; }
.home-shop .btn-outline:hover{ background:#11151a; border-color:#11151a; color:var(--yellow); }
.home-shop-grid{ display:grid; grid-template-columns:1fr 1fr .82fr; gap:16px; }
.home-product{ min-width:0; }
.home-product-photo{ position:relative; aspect-ratio:1/1; overflow:hidden; background:#d7d6d1; }
.home-product-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.28),transparent 45%); }
.home-product-photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(15%); transition:transform .4s ease,filter .35s ease; }
.home-product:hover .home-product-photo img{ transform:scale(1.035); filter:grayscale(0); }
.home-product-photo>span{ position:absolute; z-index:1; top:15px; left:15px; padding:7px 9px; background:#11151a; color:var(--yellow); font:600 8px/1 'Oswald',sans-serif; letter-spacing:1.2px; }
.home-product-info{ display:flex; align-items:start; justify-content:space-between; gap:18px; padding:18px 2px 0; }
.home-product-info h3{ font:600 18px/1.2 'Oswald',sans-serif; text-transform:none; }
.home-product-info p{ color:#707479; font-size:12px; margin-top:4px; }.home-product-info strong{ color:var(--blue-deep); white-space:nowrap; font:400 21px/1 'Bebas Neue',sans-serif; }
.home-product-cta{ min-height:100%; padding:34px; display:flex; flex-direction:column; justify-content:space-between; background:var(--blue-deep); color:#fff; }
.home-product-cta span{ color:var(--yellow); font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.5px; }.home-product-cta h3{ font-size:clamp(34px,3.5vw,52px); margin:25px 0 16px; }.home-product-cta p{ color:#c9d4e1; font-size:13px; }.home-product-cta>b{ display:flex; justify-content:space-between; padding-top:18px; border-top:1px solid rgba(255,255,255,.25); color:var(--yellow); font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.2px; }

/* testimonials */
.home-testimonials{ background:#171b20; }
.testimonial-layout{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,8vw,120px); }
.testimonial-heading h2{ font-size:clamp(44px,5vw,70px); margin-top:20px; }
.testimonial-heading h2 span{ color:#767d85; }
.quote-mark{ font:400 150px/.7 Georgia,serif; color:var(--yellow); opacity:.25; margin-top:65px; }
.featured-quote{ border-top:3px solid var(--yellow); padding-top:28px; }
.featured-quote>p{ font:400 clamp(21px,2.4vw,31px)/1.55 'Oswald',sans-serif; color:#e1e3e4; }
.featured-quote footer{ display:flex; align-items:center; gap:14px; margin-top:36px; }
.featured-quote footer .avatar{ width:43px; height:43px; display:grid; place-items:center; background:var(--blue); font:600 13px/1 'Oswald',sans-serif; }
.featured-quote footer b,.featured-quote footer span{ display:block; font-size:13px; }.featured-quote footer span{ color:#818992; margin-top:2px; }.featured-quote footer strong{ color:var(--yellow); letter-spacing:2px; font-size:12px; margin-left:auto; }
.mini-quotes{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:50px; }
.mini-quotes blockquote{ padding:22px; border:1px solid var(--line); color:#adb3b9; font-size:13px; }
.mini-quotes cite{ display:block; color:var(--yellow); font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.2px; margin-top:18px; }

/* faq */
.home-faq{ background:#0c0f13; }
.faq-layout{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,9vw,140px); }
.faq-heading h2{ font-size:clamp(46px,5vw,68px); margin:18px 0 24px; }
.faq-heading>p{ max-width:390px; color:var(--text-dim); font-size:14px; margin-bottom:24px; }
.faq-list{ border-top:1px solid var(--line); }
.home-faq .faq-q{ padding:26px 0; font-size:18px; }
.home-faq .faq-a p{ padding-bottom:26px; }

/* final CTA */
.trial-cta{ min-height:620px; position:relative; display:flex; align-items:center; isolation:isolate; overflow:hidden; }
.trial-cta-photo{ position:absolute; inset:0; z-index:-2; background:url('../assets/img/club/community.jpg') center/cover; filter:grayscale(55%) contrast(1.15); }

/* real training stories */
.training-stories{ background:#12161b; }
.stories-cta{ max-width:410px; }.stories-cta p{ color:var(--text-dim); font-size:14px; margin-bottom:22px; }
.story-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.story-card{ position:relative; min-height:510px; overflow:hidden; border:1px solid var(--line); background:#20252b; }
.story-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,8,11,.94),transparent 58%); }
.story-card img{ width:100%; height:100%; object-fit:cover; filter:grayscale(18%) contrast(1.05); transition:transform .45s ease,filter .35s ease; }
.story-card:hover img{ transform:scale(1.035); filter:grayscale(0); }
.story-card figcaption{ position:absolute; z-index:1; left:20px; right:20px; bottom:20px; }
.story-card figcaption>span{ color:var(--yellow); font:400 17px/1 'Bebas Neue',sans-serif; }.story-card h3{ font-size:30px; margin:8px 0 5px; }.story-card small{ color:#9ea5ad; font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; }
.story-card>.story-kicker{ position:absolute; z-index:1; left:20px; bottom:66px; color:var(--yellow); font:400 17px/1 'Bebas Neue',sans-serif; }.story-card>h3{ position:absolute; z-index:1; left:20px; right:20px; bottom:20px; margin:0; }

/* SEO landing pages */
.seo-page-hero{ position:relative; min-height:640px; display:flex; align-items:flex-end; padding:150px 0 80px; overflow:hidden; }
.seo-page-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; filter:grayscale(28%) contrast(1.1); }
.seo-page-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,11,15,.98),rgba(8,11,15,.72) 60%,rgba(8,11,15,.2)),linear-gradient(0deg,rgba(8,11,15,.9),transparent 55%); }
.seo-page-hero .container{ width:100%; }.seo-page-hero h1{ font-size:clamp(54px,8vw,94px); max-width:900px; margin:14px 0 18px; }.seo-page-hero p{ max-width:650px; color:#c2c7cc; font-size:17px; }
.seo-content-grid{ display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(46px,8vw,110px); align-items:start; }
.seo-content-grid h2{ font-size:clamp(38px,4.5vw,58px); margin:14px 0 24px; }.seo-content-grid .lead{ color:#d7dadd; font-size:18px; line-height:1.75; }.seo-content-grid p{ color:var(--text-dim); margin-bottom:18px; }
.seo-side-card{ background:var(--bg-2); border:1px solid var(--line); padding:30px; position:sticky; top:104px; }.seo-side-card h3{ font-size:30px; margin-bottom:18px; }.seo-side-card ul{ display:grid; gap:14px; margin-bottom:28px; }.seo-side-card li{ color:var(--text-dim); font-size:14px; display:flex; gap:10px; }.seo-side-card li::before{ content:"✓"; color:var(--yellow); }
.feature-check-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.feature-check,.feature-check-grid>div{ padding:26px; border:1px solid var(--line); background:var(--bg-2); }.feature-check span{ color:var(--yellow); font:400 20px/1 'Bebas Neue',sans-serif; }.feature-check h3{ font-size:24px; margin:14px 0 8px; }.feature-check p,.feature-check-grid>div p{ color:var(--text-dim); font-size:13px; margin:10px 0 16px; }.feature-check-grid>div>b{ font:400 24px/1.1 'Bebas Neue',sans-serif; }
.first-training-steps{ counter-reset:firststep; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); }.first-training-steps article{ counter-increment:firststep; background:var(--bg-2); padding:30px 24px; }.first-training-steps article::before{ content:"0" counter(firststep); color:var(--yellow); font:400 24px/1 'Bebas Neue',sans-serif; }.first-training-steps h3{ font-size:23px; margin:18px 0 8px; }.first-training-steps p{ color:var(--text-dim); font-size:13px; }
.first-training-steps article>span{ display:none; }
.community-band{ background:linear-gradient(115deg,var(--blue-deep),var(--blue)); }.community-band .seo-content-grid{ align-items:center; }.community-photo{ min-height:480px; }.community-photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(18%); }
.community-band .seo-content-grid>img{ width:100%; min-height:480px; max-height:620px; object-fit:cover; filter:grayscale(18%); }
@media(max-width:900px){ .story-grid{ grid-template-columns:repeat(2,1fr); }.seo-content-grid{ grid-template-columns:1fr; }.seo-side-card{ position:static; }.first-training-steps{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .story-grid{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; margin-right:-20px; padding-right:20px; }.story-card{ min-width:78vw; min-height:500px; scroll-snap-align:start; }.feature-check-grid{ grid-template-columns:1fr; }.first-training-steps{ grid-template-columns:1fr; }.seo-page-hero{ min-height:0; padding-top:110px; padding-bottom:32px; }.seo-page-hero h1{ font-size:clamp(30px,9vw,40px); line-height:1.05; margin:10px 0 12px; }.seo-page-hero p{ font-size:15px; } }
.trial-cta::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,11,15,.98),rgba(8,11,15,.78) 52%,rgba(8,11,15,.25)); }
.trial-cta-inner{ width:100%; }
.trial-cta-inner>span{ color:var(--yellow); font:600 11px/1 'Oswald',sans-serif; letter-spacing:2px; }
.trial-cta h2{ font-size:clamp(58px,7vw,96px); max-width:830px; margin:18px 0 24px; }
.trial-cta p{ max-width:520px; color:#b7bdc4; margin-bottom:34px; }
.trial-cta-inner>div{ display:flex; gap:14px; flex-wrap:wrap; }
.home-page footer{ padding-top:78px; }.home-page .footer-pitch{ margin-top:18px; max-width:300px; }

/* responsive */
@media(max-width:1100px){
  .home-hero-inner{ grid-template-columns:1fr 290px; gap:34px; }
  .class-feature-grid{ grid-template-columns:1fr 1fr; grid-template-rows:none; grid-auto-rows:320px; }.class-feature-main{ grid-column:1/-1; grid-row:auto; }.class-feature-light{ grid-column:auto; grid-row:auto; }
  .benefit-grid{ grid-template-columns:repeat(2,1fr); }.benefit-grid article:nth-child(2){ border-right:0; }.benefit-grid article:first-child{ padding-left:clamp(24px,4vw,56px); }.benefit-grid article:last-child{ padding-right:clamp(24px,4vw,56px); }
  .about-feature-photo{ min-height:560px; }
  .home-shop-grid{ grid-template-columns:1fr 1fr; }.home-product-cta{ grid-column:1/-1; min-height:340px; }
  .trainer-editorial-grid{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:900px){
  .home-page .nav-wrap{ height:72px; }.home-page .mobile-drawer{ top:72px; left:0; right:0; bottom:0; }
  .home-hero{ height:auto; min-height:860px; padding-top:120px!important; align-items:flex-start; }.home-hero-inner{ grid-template-columns:1fr; }.home-hero-copy{ max-width:720px; }.home-hero::before{ background:linear-gradient(90deg,rgba(8,11,15,.96),rgba(8,11,15,.58)),linear-gradient(0deg,rgba(8,11,15,.94),transparent 55%); }.next-class{ max-width:360px; margin-left:auto; }
  .home-intro-grid,.benefit-head{ grid-template-columns:1fr; }.intro-columns{ gap:32px; }.home-intro .section-index{ padding:0; }
  .about-feature-grid{ grid-template-columns:1fr; }.about-feature-photo{ min-height:520px; }.about-feature-copy{ max-width:720px; }
  .schedule-list article{ grid-template-columns:90px 1.5fr 1fr 80px; }.schedule-list article p:nth-of-type(2){ display:none; }
  .testimonial-layout,.faq-layout{ grid-template-columns:1fr; }.quote-mark{ display:none; }.testimonial-heading h2{ max-width:700px; }
}
@media(max-width:700px){
  .home-page{ padding-bottom:70px; }.home-page section{ padding:72px 0; }.home-page .container{ padding-left:20px; padding-right:20px; }
  .home-page .logo{ font-size:22px; }.home-page .logo .mark{ width:38px;height:38px; }.home-page .header-right{ gap:4px; }
  .home-hero{ min-height:760px; padding:118px 0 80px!important; }.home-hero-media{ background-position:61% center; }.home-hero::before{ background:linear-gradient(90deg,rgba(8,11,15,.97),rgba(8,11,15,.52)),linear-gradient(0deg,rgba(8,11,15,.98),transparent 55%); }.home-hero h1{ font-size:clamp(56px,18vw,80px); }.home-hero-copy>p{ font-size:15px; line-height:1.65; }.hero-actions{ align-items:flex-start; flex-direction:column; gap:12px; margin:30px 0; }.hero-actions .btn{ width:100%; }.hero-trust{ display:none; }.next-class{ display:none; }.hero-scroll{ display:none; }
  .home-intro h2{ font-size:42px; }.intro-columns{ grid-template-columns:1fr; }.club-stats{ grid-template-columns:1fr 1fr; }.club-stats div{ border-bottom:1px solid #c8c7c1; padding:22px 0!important; }.club-stats div:nth-child(2){ border-right:0; padding-left:18px!important; }.club-stats div:nth-child(4){ padding-left:18px!important; }
  .about-feature-grid{ gap:34px; }.about-feature-photo{ min-height:430px; }.about-feature-copy h2{ font-size:48px; }.about-year-badge{ width:86px; height:86px; }.about-year-badge strong{ font-size:29px; }.about-stats div+div{ padding-left:15px; }.about-stats strong{ font-size:36px; }
  .section-heading{ align-items:flex-start; flex-direction:column; margin-bottom:34px; }.section-heading h2,.benefit-head h2{ font-size:43px; }.section-heading>p{ font-size:14px; }
  .class-feature-grid{ display:grid; grid-template-columns:1fr; grid-template-rows:none; overflow:visible; margin-right:0; padding-right:0; gap:14px; }.class-feature{ min-width:0; width:100%; height:430px; min-height:430px; }.class-feature-main,.class-feature-light{ grid-column:auto; grid-row:auto; }.class-feature-light{ height:auto; min-height:300px; }.class-copy h3{ font-size:42px; }
  .benefit-head{ margin-bottom:36px; }.benefit-grid{ grid-template-columns:1fr; }.benefit-grid article{ border-right:0; border-bottom:1px solid rgba(255,255,255,.18); padding:28px 20px!important; }.benefit-grid h3{ margin:10px 0 8px; }
  .home-schedule .section-heading .btn{ width:100%; }.schedule-strip{ margin-right:0; }.schedule-day{ min-width:0; flex:0 0 33.333%; padding:12px 6px; font-size:13px; }.schedule-list article{ grid-template-columns:70px 1fr; gap:10px; padding:22px 4px; }.schedule-list article p{ display:none; }.schedule-list article>a{ grid-column:2; }
  .trainer-editorial-grid{ display:grid; grid-template-columns:1fr; overflow:visible; margin-right:0; padding-right:0; gap:24px; }.trainer-editorial{ min-width:0; width:100%; }.trainer-image{ aspect-ratio:4/5; }
  .home-shop-grid{ display:grid; grid-template-columns:1fr; overflow:visible; margin-right:0; padding-right:0; gap:18px; }.home-product{ min-width:0; width:100%; }.home-product-cta{ grid-column:auto; min-height:320px; aspect-ratio:auto; }
  .mini-quotes{ grid-template-columns:1fr; }.featured-quote>p{ font-size:21px; }.featured-quote footer strong{ display:none; }
  .faq-layout{ gap:42px; }.home-faq .faq-q{ font-size:16px; text-align:left; }
  .trial-cta{ min-height:650px; }.trial-cta h2{ font-size:58px; }.trial-cta-inner>div{ flex-direction:column; }.trial-cta .btn{ width:100%; }
  .modal-box{ padding:28px 20px; }.home-page .modal-box .form-grid{ display:flex; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce){ .home-page *{ scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
/* ---- Shop showcase v2 ---- */
.store-showcase{
  --store-surface:#14181d;
  --store-line:rgba(255,255,255,.13);
  padding:clamp(72px,8vw,118px) 0;
  background:
    radial-gradient(circle at 84% 8%,rgba(45,103,166,.22),transparent 30%),
    #0b0e12;
  color:#f4f3ef;
}
.store-showcase__head{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);
  gap:48px; align-items:end; margin-bottom:44px;
}
.store-showcase__kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:16px;
  color:var(--yellow); font:600 10px/1 'Oswald',sans-serif;
  letter-spacing:2px; text-transform:uppercase;
}
.store-showcase__kicker::before{ content:""; width:34px; height:2px; background:var(--yellow); }
.store-showcase__head h2{
  max-width:780px; font-size:clamp(52px,6.5vw,92px); line-height:.92;
}
.store-showcase__intro{ max-width:450px; padding-bottom:4px; }
.store-showcase__intro p{ color:#aeb4bb; font-size:14px; line-height:1.75; }
.store-showcase__meta{
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding:18px 0; margin-bottom:22px;
  border-top:1px solid var(--store-line); border-bottom:1px solid var(--store-line);
}
.store-showcase__filters{ display:flex; flex-wrap:wrap; gap:8px; }
.store-filter{
  min-height:40px; padding:0 16px; border:1px solid var(--store-line);
  background:transparent; color:#9da4ac; cursor:pointer;
  font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.store-filter:hover,.store-filter.active{ background:var(--yellow); border-color:var(--yellow); color:#17130a; }
.store-showcase__count{ color:#7f8790; font:500 10px/1 'Oswald',sans-serif; letter-spacing:1.4px; white-space:nowrap; }
.store-grid{
  display:grid; grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:310px; gap:16px;
}
.store-card{
  position:relative; grid-column:span 4; min-width:0; overflow:hidden;
  border:1px solid var(--store-line); background:var(--store-surface); color:#fff;
  isolation:isolate;
}
.store-card--featured{ grid-column:span 7; grid-row:span 2; }
.store-card--wide{ grid-column:span 5; }
.store-card__media,.store-card__media::after{ position:absolute; inset:0; }
.store-card__media::after{
  content:""; z-index:1;
  background:linear-gradient(180deg,rgba(5,7,9,.06) 22%,rgba(5,7,9,.9) 100%);
}
.store-card__media img{
  width:100%; height:100%; object-fit:cover; filter:saturate(.78) contrast(1.06);
  transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease;
}
.store-card:hover .store-card__media img{ transform:scale(1.035); filter:saturate(1) contrast(1.04); }
.store-card__top{
  position:absolute; z-index:2; top:18px; left:18px; right:18px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.store-card__tag{
  padding:8px 10px; background:rgba(11,14,18,.88); color:var(--yellow);
  font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.5px; text-transform:uppercase;
}
.store-card__stock{
  display:flex; align-items:center; gap:7px; color:#e1e4e7;
  font:500 8px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase;
}
.store-card__stock::before{ content:""; width:6px; height:6px; border-radius:50%; background:#71bd75; box-shadow:0 0 0 4px rgba(113,189,117,.13); }
.store-card__body{
  position:absolute; z-index:2; left:0; right:0; bottom:0;
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:end;
  padding:22px;
}
.store-card__body h3{
  font:600 clamp(23px,2vw,31px)/1.05 'Oswald',sans-serif;
  text-transform:none; letter-spacing:-.3px;
}
.store-card__body p{ display:none; max-width:490px; margin-top:10px; color:#b8bec5; font-size:12px; line-height:1.55; }
.store-card--featured .store-card__body{ padding:32px; }
.store-card--featured .store-card__body h3{ font-size:clamp(36px,4vw,58px); }
.store-card--featured .store-card__body p{ display:block; }
.store-card__price{
  margin-top:15px; color:var(--yellow);
  font:400 28px/1 'Bebas Neue',sans-serif; letter-spacing:.4px;
}
.store-card--featured .store-card__price{ font-size:36px; }
.store-card__action{
  width:50px; height:50px; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.34); background:rgba(10,13,17,.42);
  color:var(--yellow); font-size:20px; backdrop-filter:blur(8px);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.store-card:hover .store-card__action{ background:var(--yellow); border-color:var(--yellow); color:#17130a; }
.shop-block-preview{ margin:0; background:#0b0e12; }
@media(max-width:980px){
  .store-showcase__head{ grid-template-columns:1fr; gap:24px; }
  .store-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:390px; }
  .store-card,.store-card--wide{ grid-column:span 1; }
  .store-card--featured{ grid-column:1/-1; grid-row:span 1; min-height:520px; }
}
@media(max-width:640px){
  .store-showcase{ padding:64px 0 96px; }
  .store-showcase__head{ margin-bottom:32px; }
  .store-showcase__head h2{ font-size:54px; }
  .store-showcase__meta{ align-items:flex-start; flex-direction:column; }
  .store-showcase__count{ display:none; }
  .store-showcase__filters{ width:100%; }
  .store-filter{ flex:1 1 calc(50% - 4px); }
  .store-grid{ grid-template-columns:1fr; grid-auto-rows:420px; }
  .store-card,.store-card--wide,.store-card--featured{ grid-column:1; grid-row:auto; min-height:0; }
  .store-card--featured{ min-height:520px; }
  .store-card__body,.store-card--featured .store-card__body{ padding:22px; }
  .store-card--featured .store-card__body h3{ font-size:39px; }
  .store-card--featured .store-card__body p{ display:none; }
}

/* ---- Product page ---- */
.product-main{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media(max-width:860px){ .product-main{ grid-template-columns:1fr; gap:36px; } }
.product-gallery-main{ height:420px; background:#1b1e22; overflow:hidden; margin-bottom:12px; }
.product-gallery-main img{ width:100%; height:100%; object-fit:cover; }
.product-thumbs{ display:flex; gap:10px; }
.product-thumbs button{ width:76px; height:76px; padding:0; border:2px solid transparent; background:#1b1e22; cursor:pointer; overflow:hidden; }
.product-thumbs button.active{ border-color:var(--yellow); }
.product-thumbs img{ width:100%; height:100%; object-fit:cover; }
.product-detail-cat{ margin-bottom:10px; }
.product-detail h1{ font-size:40px; margin-bottom:14px; }
.product-detail-price{ font-family:'Bebas Neue',sans-serif; font-size:34px; color:var(--yellow); margin-bottom:22px; }
.product-detail p.desc{ color:var(--text-dim); font-size:15px; margin-bottom:26px; max-width:480px; }
.variant-group{ margin-bottom:26px; }
.variant-label{ font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--text-dim); margin-bottom:10px; display:block; }
.variant-options{ display:flex; gap:8px; flex-wrap:wrap; }
.variant-btn{ min-width:48px; padding:10px 14px; border:1px solid var(--line); background:transparent; color:var(--text); font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; cursor:pointer; }
.variant-btn.active{ border-color:var(--yellow); color:var(--yellow); }
.specs-list{ margin-top:32px; border-top:1px solid var(--line); }
.specs-row{ display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); font-size:14px; }
.specs-row span:first-child{ color:var(--text-dim); }
.delivery-note{ display:flex; gap:12px; align-items:flex-start; margin-top:22px; font-size:13px; color:var(--text-dim); }
.delivery-note .di{ color:var(--yellow); font-family:'Oswald',sans-serif; font-weight:600; flex-shrink:0; }

/* misc utility */
.mt-24{ margin-top:24px; } .mt-32{ margin-top:32px; } .mt-48{ margin-top:48px; }
.mb-24{ margin-bottom:24px; }
.text-center{ text-align:center; }
.divider{ height:1px; background:var(--line); margin:56px 0; }

/* =========================================================
   HOMEPAGE 2.0 — editorial, responsive conversion layout
   ========================================================= */
.home-page{ --home-max:1320px; background:#0c0f13; }
.home-page .container{ max-width:var(--home-max); padding-left:clamp(20px,4vw,56px); padding-right:clamp(20px,4vw,56px); }
.home-page section{ padding:clamp(76px,9vw,132px) 0; }
.home-page .site-header{ background:rgba(9,12,16,.92); }
.home-page .nav-wrap{ max-width:1440px; height:80px; }
.home-page .logo{ font-size:25px; }
.home-page .logo .mark{ width:42px; height:42px; background:var(--blue-deep); }
.home-page nav.main-nav ul{ gap:clamp(18px,2vw,34px); }
.home-page nav.main-nav a{ font-size:12px; }
.home-page .header-right{ gap:16px; }
.home-page .btn{ border-radius:0; }
.home-page .btn-primary{ box-shadow:0 8px 28px rgba(247,206,70,.14); }
.home-page .section-index{ font-family:'Oswald',sans-serif; font-size:11px; line-height:1; color:var(--yellow); letter-spacing:2.4px; font-weight:600; text-transform:uppercase; }

/* hero */
.home-hero{ position:relative; min-height:820px; height:min(940px,100vh); padding:80px 0 0!important; display:flex; align-items:center; isolation:isolate; overflow:hidden; }
.home-hero-media{ position:absolute; inset:0; z-index:-3; background-image:url('../assets/img/club/sparring-action.jpg'); background-size:cover; background-position:center 46%; filter:grayscale(22%) contrast(1.12); }
.home-hero::before{ content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(8,11,15,.98) 0%,rgba(8,11,15,.90) 38%,rgba(8,11,15,.22) 72%),linear-gradient(0deg,rgba(8,11,15,.92),transparent 42%); }
.home-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(105deg,transparent 0 57%,rgba(53,100,167,.18) 57.1% 58%,transparent 58.1%); }
.home-hero-grid{ position:absolute; inset:0; z-index:-1; opacity:.35; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(90deg,#000,transparent 72%); }
.home-hero-inner{ width:100%; display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:70px; align-items:end; padding-top:48px; }
.home-hero-copy{ max-width:800px; }
.hero-kicker{ display:flex; gap:14px; align-items:center; margin-bottom:28px; font:600 11px/1 'Oswald',sans-serif; color:var(--yellow); letter-spacing:2.4px; }
.hero-kicker span+span{ color:rgba(255,255,255,.62); border-left:1px solid rgba(255,255,255,.28); padding-left:14px; }
.home-hero h1{ max-width:760px; font-size:clamp(68px,6.7vw,104px); letter-spacing:-1px; line-height:.9; margin-bottom:30px; }
.home-hero h1 em{ color:var(--yellow); font-style:normal; }
.home-hero-copy>p{ max-width:590px; color:#c2c6cb; font-size:clamp(16px,1.5vw,19px); line-height:1.75; }
.hero-actions{ display:flex; align-items:center; gap:20px; margin:38px 0 44px; flex-wrap:wrap; }
.hero-text-link{ display:inline-flex; align-items:center; gap:18px; color:#f5f5f2; font:600 12px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.25); padding:12px 0; }
.hero-text-link:hover{ color:var(--yellow); border-color:var(--yellow); }
.hero-trust{ display:flex; gap:24px; flex-wrap:wrap; color:#9da4ad; font:500 11px/1.3 'Oswald',sans-serif; letter-spacing:.7px; text-transform:uppercase; }
.hero-trust span{ display:flex; gap:8px; align-items:center; }
.hero-trust b{ color:var(--yellow); font-size:10px; }
.next-class{ background:rgba(12,15,19,.9); border:1px solid rgba(255,255,255,.14); padding:26px 28px 0; backdrop-filter:blur(15px); box-shadow:0 28px 70px rgba(0,0,0,.35); }
.next-class-top{ display:flex; align-items:center; justify-content:space-between; color:#9da4ad; font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.8px; }
.next-class-top i{ width:7px; height:7px; background:var(--yellow); border-radius:50%; box-shadow:0 0 0 5px rgba(247,206,70,.12); }
.next-class-time{ display:flex; align-items:flex-end; gap:16px; margin:26px 0 18px; }
.next-class-time strong{ font:400 66px/.8 'Bebas Neue',sans-serif; }
.next-class-time span{ color:var(--yellow); font:600 11px/1.4 'Oswald',sans-serif; letter-spacing:1px; }
.next-class h2{ font-size:28px; margin-bottom:6px; }
.next-class p{ color:#8f969e; font-size:12px; }
.next-class-link{ display:flex; justify-content:space-between; margin:24px -28px 0; padding:18px 28px; background:var(--yellow); color:#17130a; font:600 12px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; }
.hero-scroll{ position:absolute; bottom:28px; left:28px; writing-mode:vertical-rl; display:flex; gap:12px; align-items:center; font:600 9px/1 'Oswald',sans-serif; letter-spacing:2px; color:#747b84; }

/* intro */
.home-intro{ background:#f0eee8; color:#11151a; }
.home-intro-grid{ display:grid; grid-template-columns:180px 1fr; gap:30px; }
.home-intro .section-index{ color:var(--blue-deep); padding-top:12px; }
.home-intro h2{ font-size:clamp(42px,5.3vw,76px); letter-spacing:-.5px; text-transform:uppercase; max-width:960px; margin-bottom:52px; }
.home-intro h2 span{ color:#6f7479; }
.intro-columns{ display:grid; grid-template-columns:1fr 1fr; gap:70px; max-width:850px; margin-left:auto; color:#4d535a; }
.intro-columns p{ font-size:15px; line-height:1.8; }
.club-stats{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #c8c7c1; margin-top:64px; }
.club-stats div{ padding:26px 0 0; border-right:1px solid #c8c7c1; }
.club-stats div+div{ padding-left:28px; }
.club-stats div:last-child{ border:0; }
.club-stats strong{ display:block; font:400 48px/.9 'Bebas Neue',sans-serif; color:var(--blue-deep); }
.club-stats span{ font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; color:#676c71; }

/* about — photographic editorial block */
.home-intro{ background:#eceae4; }

.about-feature-photo{ position:relative; min-height:650px; overflow:hidden; background:#171b20; }
.about-feature-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.72),transparent 46%); }
.about-feature-photo img{ width:100%; height:100%; position:absolute; inset:0; object-fit:cover; filter:grayscale(38%) contrast(1.08); }
.about-photo-caption{ position:absolute; z-index:1; left:30px; bottom:28px; display:flex; flex-direction:column; color:#fff; }
.about-photo-caption strong{ font:400 28px/1 'Bebas Neue',sans-serif; letter-spacing:1px; }
.about-photo-caption span{ font:600 9px/1 'Oswald',sans-serif; letter-spacing:2.2px; color:#c9cdd1; margin-top:7px; }
.about-year-badge{ position:absolute; z-index:2; top:0; right:0; width:112px; height:112px; display:grid; place-content:center; text-align:center; background:var(--yellow); color:#17130a; }
.about-year-badge small{ font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.6px; }.about-year-badge strong{ font:400 35px/1 'Bebas Neue',sans-serif; margin-top:4px; }
.about-feature-copy .section-index{ color:var(--blue-deep); }
.about-feature-copy h2{ font-size:clamp(50px,5.8vw,78px); line-height:.93; margin:22px 0 28px; }
.about-feature-copy h2 span{ color:var(--blue-deep); }
.about-lede{ max-width:530px; font:500 clamp(19px,2vw,25px)/1.5 'Oswald',sans-serif; color:var(--yellow); margin-bottom:22px; }
.about-feature-copy>p:not(.about-lede){ max-width:560px; color:#555b61; font-size:14px; line-height:1.8; }
.about-values{ display:flex; gap:8px; flex-wrap:wrap; margin:32px 0 40px; }
.about-values span{ border:1px solid #bfc0bb; padding:9px 12px; color:#3c4248; font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; }
.about-stats{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c5c5bf; }
.about-stats div{ padding:24px 12px 0 0; border-right:1px solid #c5c5bf; }
.about-stats div+div{ padding-left:24px; }.about-stats div:last-child{ border:0; }
.about-stats strong{ display:block; font:400 42px/.9 'Bebas Neue',sans-serif; color:var(--blue-deep); }
.about-stats span{ font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.1px; text-transform:uppercase; color:#666c72; }

/* reusable section heading */
.section-heading{ display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:52px; }
.section-heading h2,.benefit-head h2{ font-size:clamp(44px,5.2vw,72px); margin-top:16px; }
.section-heading>p{ max-width:410px; color:var(--text-dim); }

/* classes */
.home-classes{ background:#0c0f13; }
.class-feature-grid{ display:grid; grid-template-columns:1.22fr .78fr .78fr; grid-template-rows:305px 305px; gap:16px; }
.class-feature{ position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.11); grid-row:span 1; min-height:280px; }
.class-feature-main{ grid-row:span 2; }
.class-feature-light{ background:var(--blue-deep); }
.class-feature img{ width:100%; height:100%; object-fit:cover; filter:grayscale(35%) contrast(1.08); transition:transform .5s ease,filter .4s ease; }
.class-feature:hover img{ transform:scale(1.035); filter:grayscale(5%) contrast(1.05); }
.class-shade{ position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.96),rgba(8,11,15,.08) 75%); }
.class-number{ position:absolute; top:20px; left:22px; font:400 18px/1 'Bebas Neue',sans-serif; color:var(--yellow); }
.class-level{ position:absolute; top:18px; right:18px; border:1px solid rgba(255,255,255,.3); padding:7px 9px; font:600 8px/1 'Oswald',sans-serif; letter-spacing:1.2px; }
.class-copy{ position:absolute; left:22px; right:22px; bottom:22px; }
.class-copy h3{ font-size:clamp(32px,3.4vw,55px); margin-bottom:8px; }
.class-copy p{ color:#bec3c8; font-size:13px; max-width:440px; margin-bottom:18px; }
.class-copy a{ color:var(--yellow); display:flex; justify-content:space-between; border-top:1px solid rgba(255,255,255,.18); padding-top:14px; font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.4px; text-transform:uppercase; }
.class-feature-light .class-copy p{ color:#d2dae6; }

/* classes/program showcase v2 */
.program-showcase{ --program-line:rgba(255,255,255,.13); padding:clamp(76px,8vw,118px) 0; background:radial-gradient(circle at 88% 12%,rgba(45,103,166,.2),transparent 30%),#0b0e12; }
.program-showcase__head{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:48px; align-items:end; margin-bottom:38px; }
.program-showcase__kicker{ display:flex; align-items:center; gap:12px; margin-bottom:17px; color:var(--yellow); font:600 10px/1 'Oswald',sans-serif; letter-spacing:2px; text-transform:uppercase; }
.program-showcase__kicker::before{ content:""; width:34px; height:2px; background:var(--yellow); }
.program-showcase__head h2{ max-width:800px; font-size:clamp(52px,6.3vw,90px); line-height:.94; }
.program-showcase__intro{ max-width:460px; }
.program-showcase__intro p{ color:#aeb4bb; font-size:14px; line-height:1.75; }
.program-showcase__help{ display:inline-flex; align-items:center; gap:12px; margin-top:22px; color:var(--yellow); font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; }
.program-showcase__tools{ display:flex; align-items:center; justify-content:space-between; gap:22px; padding:18px 0; margin-bottom:22px; border-top:1px solid var(--program-line); border-bottom:1px solid var(--program-line); }
.program-showcase__filters{ display:flex; flex-wrap:wrap; gap:8px; }
.program-filter{ min-height:40px; padding:0 16px; border:1px solid var(--program-line); background:transparent; color:#9da4ac; cursor:pointer; font:600 10px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.program-filter:hover,.program-filter.active{ background:var(--yellow); border-color:var(--yellow); color:#17130a; }
.program-showcase__hint{ color:#7f8790; font:500 10px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; white-space:nowrap; }
.program-grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-rows:315px; gap:16px; }
.program-card{ position:relative; grid-column:span 4; min-width:0; overflow:hidden; border:1px solid var(--program-line); background:#161a1f; color:#fff; isolation:isolate; }
.program-card--lead{ grid-column:span 7; grid-row:span 2; }
.program-card--wide{ grid-column:span 5; }
.program-card__media,.program-card__media::after{ position:absolute; inset:0; }
.program-card__media::after{ content:""; z-index:1; background:linear-gradient(180deg,rgba(5,7,9,.04) 22%,rgba(5,7,9,.92) 100%); }
.program-card__media img{ width:100%; height:100%; object-fit:cover; filter:grayscale(34%) contrast(1.08) saturate(.8); transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease; }
.program-card:hover .program-card__media img{ transform:scale(1.035); filter:grayscale(4%) contrast(1.04) saturate(1); }
.program-card__top{ position:absolute; z-index:2; top:18px; left:18px; right:18px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.program-card__number{ color:var(--yellow); font:400 20px/1 'Bebas Neue',sans-serif; }
.program-card__level{ padding:8px 10px; background:rgba(11,14,18,.86); color:#fff; font:600 8px/1 'Oswald',sans-serif; letter-spacing:1.3px; text-transform:uppercase; }
.program-card__content{ position:absolute; z-index:2; left:0; right:0; bottom:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:18px; padding:22px; }
.program-card--lead .program-card__content{ padding:32px; }
.program-card__content h3{ font:600 clamp(27px,2.4vw,36px)/1.03 'Oswald',sans-serif; text-transform:none; letter-spacing:-.4px; }
.program-card--lead .program-card__content h3{ font-size:clamp(48px,5vw,70px); }
.program-card__content p{ margin-top:10px; max-width:500px; color:#bdc2c8; font-size:12px; line-height:1.55; }
.program-card:not(.program-card--lead) .program-card__content p{ display:none; }
.program-card__chips{ display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }
.program-card__chips span{ padding:6px 8px; border:1px solid rgba(255,255,255,.22); color:#d6d9dd; font:500 8px/1 'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase; }
.program-card__next{ display:flex; align-items:center; gap:8px; margin-top:16px; color:var(--yellow); font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.1px; text-transform:uppercase; }
.program-card__next::before{ content:""; width:6px; height:6px; border-radius:50%; background:#71bd75; box-shadow:0 0 0 4px rgba(113,189,117,.13); }
.program-card__action{ width:50px; height:50px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.34); background:rgba(10,13,17,.42); color:var(--yellow); font-size:20px; backdrop-filter:blur(8px); transition:background .2s ease,color .2s ease,border-color .2s ease; }
.program-card:hover .program-card__action{ background:var(--yellow); border-color:var(--yellow); color:#17130a; }
.program-card[hidden]{ display:none!important; }

@media(max-width:980px){
  .program-showcase__head{ grid-template-columns:1fr; gap:24px; }
  .program-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:430px; }
  .program-card,.program-card--wide{ grid-column:span 1; }
  .program-card--lead{ grid-column:1/-1; grid-row:span 1; min-height:560px; }
}
@media(max-width:640px){
  .program-showcase{ padding:64px 0 96px; }
  .program-showcase__head{ margin-bottom:30px; }
  .program-showcase__head h2{ font-size:54px; }
  .program-showcase__tools{ align-items:flex-start; flex-direction:column; }
  .program-showcase__filters{ width:100%; }
  .program-filter{ flex:1 1 calc(50% - 4px); }
  .program-showcase__hint{ display:none; }
  .program-grid{ grid-template-columns:1fr; grid-auto-rows:470px; }
  .program-card,.program-card--wide,.program-card--lead{ grid-column:1; grid-row:auto; min-height:0; }
  .program-card--lead{ min-height:580px; }
  .program-card__content,.program-card--lead .program-card__content{ padding:22px; }
  .program-card--lead .program-card__content h3{ font-size:48px; }
  .program-card--lead .program-card__content p{ display:none; }
}

/* benefits */
.benefit-band{ background:linear-gradient(115deg,#213f66,#3564a7); padding-bottom:0!important; }
.benefit-head{ display:grid; grid-template-columns:180px 1fr; gap:30px; align-items:start; margin-bottom:64px; }
.benefit-head h2{ margin:0; }
.benefit-grid{ display:grid; grid-template-columns:repeat(4,1fr); padding-left:0!important; padding-right:0!important; max-width:none!important; border-top:1px solid rgba(255,255,255,.18); }
.benefit-grid article{ padding:42px clamp(24px,3vw,48px) 52px; border-right:1px solid rgba(255,255,255,.18); }
.benefit-grid article:first-child{ padding-left:clamp(24px,3vw,48px); }
.benefit-grid article:last-child{ padding-right:clamp(24px,3vw,48px); border:0; }
.benefit-grid span{ color:var(--yellow); font:400 18px/1 'Bebas Neue',sans-serif; }
.benefit-grid h3{ font-size:25px; margin:22px 0 12px; }
.benefit-grid p{ font-size:13px; color:#cbd5e2; }

/* schedule */
.home-schedule{ background:#f0eee8; color:#11151a; }
.home-schedule .section-index{ color:var(--blue-deep); }
.home-schedule .section-heading>p{ color:#4d535a; }
.home-schedule .btn-outline{ color:#11151a; border-color:#a7a6a1; }
.schedule-day span{ font:600 10px/1 'Oswald',sans-serif; letter-spacing:1px; }
.schedule-day b{ font:400 25px/1 'Bebas Neue',sans-serif; }
.schedule-day.active{ background:#11151a; color:#fff; }
.schedule-day.active b{ color:var(--yellow); }
.schedule-list article{ display:grid; grid-template-columns:110px 1.5fr 1fr 1fr 100px; gap:20px; align-items:center; min-height:106px; border-bottom:1px solid #c3c3bd; padding:18px 8px; }
.schedule-list time{ font:400 38px/1 'Bebas Neue',sans-serif; }
.schedule-list h3{ font:600 18px/1.2 'Oswald',sans-serif; text-transform:none; margin-top:5px; }
.schedule-list p{ color:#686c70; font-size:13px; }
.schedule-list a{ color:var(--blue-deep); font:600 11px/1 'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase; }
.schedule-tag{ font:600 8px/1 'Oswald',sans-serif; letter-spacing:1.3px; padding:5px 7px; border:1px solid; }
.schedule-tag.yellow{ color:#806700; border-color:#d3ad20; }.schedule-tag.blue{ color:#28598f; border-color:#5f8dbc;}.schedule-tag.white{ color:#555b61; border-color:#999; }

/* trainers */
.home-trainers{ background:#0c0f13; }
.trainer-editorial-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.trainer-image{ position:relative; aspect-ratio:3/4; overflow:hidden; background:#181c21; }
.trainer-image::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,11,15,.55),transparent 40%); }
.trainer-image img{ width:100%; height:100%; object-fit:cover; filter:grayscale(55%) contrast(1.06); transition:filter .35s ease,transform .4s ease; }
.trainer-editorial:hover img{ filter:grayscale(10%); transform:scale(1.025); }
.trainer-image span{ position:absolute; z-index:1; left:18px; bottom:16px; color:var(--yellow); font:400 20px/1 'Bebas Neue',sans-serif; }
.trainer-line{ display:flex; justify-content:space-between; gap:18px; padding-top:20px; }
.trainer-line h3{ font:600 20px/1.2 'Oswald',sans-serif; text-transform:none; }
.trainer-line p{ color:#8d949c; font-size:12px; margin-top:5px; }
.trainer-line>a{ width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--line); color:var(--yellow); flex-shrink:0; }
.trainer-owner .trainer-image img{ object-position:center 24%; transform:scale(1.12); filter:grayscale(22%) contrast(1.04); }
.trainer-owner:hover .trainer-image img{ transform:scale(1.15); filter:grayscale(5%); }
.trainer-owner .trainer-image::before{ display:none; }
.owner-badge{ position:absolute; z-index:2; top:14px; right:14px; width:auto; max-width:calc(100% - 28px); min-height:0; padding:7px 12px; display:inline-flex; align-items:center; justify-content:flex-end; background:var(--yellow); color:#17130a; border-radius:2px; font:600 10px/1.3 'Oswald',sans-serif; letter-spacing:1px; text-align:right; white-space:nowrap; }

/* trainers showcase v2 */
.coach-showcase{
  --coach-line:rgba(255,255,255,.13);
  padding:clamp(76px,8vw,118px) 0;
  background:
    radial-gradient(circle at 10% 12%,rgba(45,103,166,.2),transparent 30%),
    #0b0e12;
}
.coach-showcase__head{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:48px; align-items:end; margin-bottom:44px;
}
.coach-showcase__kicker{
  display:flex; align-items:center; gap:12px; margin-bottom:17px;
  color:var(--yellow); font:600 10px/1 'Oswald',sans-serif;
  letter-spacing:2px; text-transform:uppercase;
}
.coach-showcase__kicker::before{ content:""; width:34px; height:2px; background:var(--yellow); }
.coach-showcase__head h2{ max-width:820px; font-size:clamp(52px,6.3vw,90px); line-height:.94; }
.coach-showcase__intro{ max-width:460px; padding-bottom:4px; }
.coach-showcase__intro p{ color:#aeb4bb; font-size:14px; line-height:1.75; }
.coach-showcase__intro a{
  display:inline-flex; align-items:center; gap:12px; margin-top:22px;
  color:var(--yellow); font:600 10px/1 'Oswald',sans-serif;
  letter-spacing:1.3px; text-transform:uppercase;
}
.coach-grid{
  display:grid; grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:315px; gap:16px;
}
.coach-card{
  position:relative; grid-column:span 3; overflow:hidden; min-width:0;
  border:1px solid var(--coach-line); background:#161a1f; color:#fff;
  isolation:isolate;
}
.coach-card--lead{ grid-column:span 6; grid-row:span 2; }
.coach-card--wide{ grid-column:span 6; }
.coach-card__media,.coach-card__media::after{ position:absolute; inset:0; }
.coach-card__media::after{
  content:""; z-index:1;
  background:linear-gradient(180deg,rgba(6,8,11,.02) 34%,rgba(6,8,11,.78) 100%);
}
.coach-card__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 24%;
  filter:grayscale(25%) contrast(1.04);
  transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease;
}
.coach-card:hover .coach-card__media img{ transform:scale(1.035); filter:grayscale(5%) contrast(1.02); }
.coach-card__number{
  position:absolute; z-index:2; top:18px; left:18px;
  color:var(--yellow); font:400 20px/1 'Bebas Neue',sans-serif;
}
.coach-card__badge{
  position:absolute; z-index:2; top:14px; right:14px; max-width:calc(100% - 60px);
  padding:7px 12px; background:var(--yellow); color:#17130a; border-radius:2px;
  font:600 10px/1.3 'Oswald',sans-serif; letter-spacing:1px;
  text-align:right; text-transform:uppercase; white-space:nowrap;
}
.coach-card__content{
  position:absolute; z-index:2; left:0; right:0; bottom:0;
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:end;
  padding:22px;
}
.coach-card--lead .coach-card__content{ padding:32px; }
.coach-card__role{
  display:block; margin-bottom:9px; color:var(--yellow);
  font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.5px; text-transform:uppercase;
}
.coach-card__content h3{
  font:600 clamp(25px,2.2vw,34px)/1.05 'Oswald',sans-serif;
  text-transform:none; letter-spacing:-.4px;
}
.coach-card--lead .coach-card__content h3{ font-size:clamp(44px,5vw,68px); }
.coach-card__content p{ margin-top:10px; color:#b6bcc3; font-size:12px; line-height:1.55; }
.coach-card:not(.coach-card--lead) .coach-card__content p{ display:none; }
.coach-card__meta{
  display:flex; flex-wrap:wrap; gap:7px; margin-top:16px;
}
.coach-card__meta span{
  padding:6px 8px; border:1px solid rgba(255,255,255,.22); color:#d6d9dd;
  font:500 8px/1 'Oswald',sans-serif; letter-spacing:1px; text-transform:uppercase;
}
.coach-card__action{
  width:50px; height:50px; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.34); background:rgba(10,13,17,.42);
  color:var(--yellow); font-size:20px; backdrop-filter:blur(8px);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.coach-card:hover .coach-card__action{ background:var(--yellow); border-color:var(--yellow); color:#17130a; }
@media(max-width:980px){
  .coach-showcase__head{ grid-template-columns:1fr; gap:24px; }
  .coach-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:minmax(280px, auto); gap:16px; }
  .coach-card,.coach-card--wide{ grid-column:span 1; grid-row:span 1; }
  .coach-card--lead{ grid-column:1/-1; grid-row:span 1; min-height:420px; }
}
@media(max-width:640px){
  .coach-showcase{ padding:64px 0 96px; }
  .coach-showcase__head h2{ font-size:48px; }
  .coach-grid{ grid-template-columns:1fr; grid-auto-rows:minmax(340px, auto); row-gap:24px; }
  .coach-card,.coach-card--wide,.coach-card--lead{ grid-column:1; grid-row:auto; min-height:0; }
  .coach-card--lead{ min-height:420px; }
  .coach-card__content,.coach-card--lead .coach-card__content{ padding:20px; }
  .coach-card--lead .coach-card__content h3{ font-size:42px; }
}

.section-tinted{
  background:
    radial-gradient(circle at 90% 0%, rgba(45,103,166,.16), transparent 30%),
    var(--bg-2);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}

/* ===== Pricing showcase (cennik.html redesign) ===== */
.pricing-showcase{ --pricing-line:rgba(255,255,255,.14); padding:clamp(76px,8vw,118px) 0; background:radial-gradient(circle at 50% 8%,rgba(45,103,166,.22),transparent 34%),#0b0e12; }
.pricing-showcase__head{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:48px; align-items:end; margin-bottom:46px; }
.pricing-showcase__kicker{ display:flex; align-items:center; gap:12px; margin-bottom:17px; color:var(--yellow); font:600 10px/1 'Oswald',sans-serif; letter-spacing:2px; text-transform:uppercase; }
.pricing-showcase__kicker::before{ content:""; width:34px; height:2px; background:var(--yellow); }
.pricing-showcase__head h2{ max-width:820px; font-size:clamp(52px,6.2vw,88px); line-height:.94; }
.pricing-showcase__intro{ max-width:450px; }
.pricing-showcase__intro p{ color:#aeb4bb; font-size:14px; line-height:1.75; }
.pricing-showcase__note{ display:inline-flex; align-items:center; gap:8px; margin-top:18px; color:#d5d9dd; font:500 9px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; }
.pricing-showcase__note::before{ content:""; width:6px; height:6px; border-radius:50%; background:#71bd75; box-shadow:0 0 0 4px rgba(113,189,117,.13); }
.pricing-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; }
.pricing-card{ position:relative; min-width:0; min-height:570px; padding:34px; display:flex; flex-direction:column; border:1px solid var(--pricing-line); background:#171b20; color:#f4f3ef; }
.pricing-card--featured{ border-color:var(--yellow); background:linear-gradient(145deg,#274d7d,#1c3658 70%,#17263a); box-shadow:0 24px 70px rgba(0,0,0,.28); transform:translateY(-12px); }
.pricing-card__badge{ position:absolute; top:0; right:0; padding:12px 16px; background:var(--yellow); color:#17130a; font:700 9px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; }
.pricing-card__index{ color:#707780; font:400 19px/1 'Bebas Neue',sans-serif; }
.pricing-card--featured .pricing-card__index{ color:#a9c5e7; }
.pricing-card h3{ margin:30px 0 8px; font:600 30px/1.05 'Oswald',sans-serif; text-transform:none; letter-spacing:-.3px; }
.pricing-card__desc{ min-height:48px; color:#9fa6ae; font-size:13px; line-height:1.55; }
.pricing-card--featured .pricing-card__desc{ color:#d1ddeb; }
.pricing-card__price{ display:flex; align-items:flex-end; gap:9px; margin:30px 0 12px; }
.pricing-card__price strong{ color:var(--yellow); font:400 68px/.82 'Bebas Neue',sans-serif; }
.pricing-card__price span{ color:#aeb4bb; font:600 10px/1 'Oswald',sans-serif; letter-spacing:.8px; text-transform:uppercase; }
.pricing-card--featured .pricing-card__price span{ color:#d3deeb; }
.pricing-card__saving{ min-height:22px; color:#7bc482; font:600 11px/1.2 'Oswald',sans-serif; letter-spacing:.4px; }
.pricing-card__features{ display:grid; gap:13px; margin:28px 0 34px; padding-top:24px; border-top:1px solid var(--pricing-line); }
.pricing-card__features li{ display:flex; gap:10px; color:#c6cbd0; font-size:12px; line-height:1.4; }
.pricing-card__features li::before{ content:"✓"; color:var(--yellow); font-weight:700; }
.pricing-card--featured .pricing-card__features li{ color:#edf3f9; }
.pricing-card__button{ min-height:58px; margin-top:auto; padding:0 20px; display:flex; align-items:center; justify-content:space-between; gap:18px; border:1px solid rgba(255,255,255,.25); color:#f3f3ef; font:600 11px/1 'Oswald',sans-serif; letter-spacing:1.4px; text-transform:uppercase; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.pricing-card__button:hover{ border-color:var(--yellow); color:var(--yellow); }
.pricing-card--featured .pricing-card__button{ background:var(--yellow); border-color:var(--yellow); color:#17130a; }
.pricing-card--featured .pricing-card__button:hover{ background:#fff0a5; border-color:#fff0a5; }
.pricing-dropin{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:24px; align-items:center; margin-top:16px; padding:22px 26px; border:1px solid var(--pricing-line); background:#12161b; }
.pricing-dropin h3{ font:600 20px/1.15 'Oswald',sans-serif; text-transform:none; }
.pricing-dropin p{ margin-top:5px; color:#8f969e; font-size:12px; }
.pricing-dropin__price{ color:var(--yellow); font:400 35px/1 'Bebas Neue',sans-serif; white-space:nowrap; }
.pricing-dropin__action{ padding:13px 18px; border:1px solid var(--pricing-line); color:#f4f3ef; font:600 9px/1 'Oswald',sans-serif; letter-spacing:1.2px; text-transform:uppercase; white-space:nowrap; }
.pricing-block-preview{ margin:0; background:#0b0e12; }
.pricing-block-preview .pricing-showcase{ min-height:100vh; }
@media(max-width:900px){
  .pricing-showcase__head{ grid-template-columns:1fr; gap:24px; }
  .pricing-grid{ grid-template-columns:1fr; }
  .pricing-card{ min-height:520px; }
  .pricing-card--featured{ transform:none; }
}
@media(max-width:600px){
  .pricing-showcase{ padding:64px 0 96px; }
  .pricing-showcase__head h2{ font-size:54px; }
  .pricing-card{ min-height:0; padding:28px 24px; }
  .pricing-card__desc{ min-height:0; }
  .pricing-card__price strong{ font-size:62px; }
  .pricing-dropin{ grid-template-columns:1fr auto; }
  .pricing-dropin__action{ grid-column:1/-1; text-align:center; }
}
.cta-split{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start; }
@media(max-width:860px){ .cta-split{ grid-template-columns:1fr; gap:32px; } }

.trainer-spotlight{ display:grid; grid-template-columns:220px 1fr; gap:32px; align-items:center; border:1px solid var(--line); background:var(--bg-2); padding:28px; }
.trainer-spotlight__photo{ width:100%; aspect-ratio:3/4; overflow:hidden; }
.trainer-spotlight__photo img{ width:100%; height:100%; object-fit:cover; filter:grayscale(15%); }
.trainer-spotlight__role{ color:var(--yellow); font:600 11px/1 'Oswald',sans-serif; letter-spacing:1.5px; text-transform:uppercase; }
.trainer-spotlight h3{ font-family:'Bebas Neue',sans-serif; font-size:34px; margin:8px 0 10px; }
.trainer-spotlight p{ color:var(--text-dim); font-size:14px; line-height:1.6; margin-bottom:16px; max-width:520px; }
@media(max-width:700px){
  .trainer-spotlight{ grid-template-columns:1fr; text-align:center; padding:24px; }
  .trainer-spotlight__photo{ max-width:200px; margin:0 auto; }
  .trainer-spotlight p{ max-width:none; }
}

.trainer-stats-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:28px 0 8px; }
.trainer-stat{ border:1px solid var(--line); background:var(--bg-2); padding:22px 18px; text-align:center; }
.trainer-stat strong{ display:block; font-family:'Bebas Neue',sans-serif; font-size:40px; color:var(--yellow); line-height:1; }
.trainer-stat span{ display:block; margin-top:8px; font:500 11px/1.3 'Oswald',sans-serif; letter-spacing:.5px; color:var(--text-dim); text-transform:uppercase; }
@media(max-width:640px){ .trainer-stats-grid{ grid-template-columns:1fr 1fr; } }

/* ===== v31: HEADER FIX (RU/UA long labels) + HERO FIT VIEWPORT HEIGHT ===== */
/* -- Header: never wrap items, controlled shrink for longer RU/UA labels -- */
.nav-wrap{ gap:16px; }
.logo{ flex-shrink:0; }
.header-right{ flex-shrink:0; }
/* nav.main-nav intentionally keeps the default min-width:auto (content-based) —
   it must never shrink below its own text, or the overflow silently spills
   onto the header-right zone instead of triggering the compacting rules below. */
nav.main-nav ul{ flex-wrap:nowrap; }
nav.main-nav a{ white-space:nowrap; }
@media (min-width:1181px) and (max-width:1600px){
  nav.main-nav a, .home-page nav.main-nav a{ font-size:12px; letter-spacing:.8px; }
  nav.main-nav ul, .home-page nav.main-nav ul{ gap:clamp(10px,1.15vw,20px); }
}
@media (min-width:1181px) and (max-width:1400px){
  nav.main-nav a, .home-page nav.main-nav a{ font-size:11px; letter-spacing:.5px; }
  nav.main-nav ul, .home-page nav.main-nav ul{ gap:clamp(8px,.95vw,14px); }
  .header-right, .home-page .header-right{ gap:12px; }
  .lang-switch button,.lang-switch a{ padding:4px 7px; font-size:12px; }
  .header-right .btn-small{ padding:10px 16px; font-size:11px; }
}
@media (min-width:1181px) and (max-width:1310px){
  .header-quick-call{ display:none; }
  .logo, .home-page .logo{ font-size:22px; }
  .logo .mark, .home-page .logo .mark{ width:38px; height:38px; }
}

/* -- Home hero: first screen fits viewport height on desktop -- */
@media (min-width:1181px){
  .home-hero{ height:100vh; height:100svh; min-height:640px; max-height:none; }
  .home-hero-inner{ align-items:center; padding-top:24px; }
}
@media (min-width:1181px) and (max-height:920px){
  .home-hero h1{ font-size:clamp(54px,9.5vh,92px); margin-bottom:22px; }
  .hero-kicker{ margin-bottom:18px; }
  .home-hero-copy>p{ font-size:16px; line-height:1.6; }
  .hero-actions{ margin:26px 0 28px; }
  .next-class{ padding:20px 24px 0; }
  .next-class-time{ margin:18px 0 14px; }
  .next-class-time strong{ font-size:54px; }
  .next-class h2{ font-size:24px; }
  .next-class-link{ margin:18px -24px 0; padding:15px 24px; }
}
@media (min-width:1181px) and (max-height:800px){
  .home-hero h1{ font-size:clamp(46px,8.5vh,72px); margin-bottom:16px; }
  .hero-kicker{ margin-bottom:12px; }
  .home-hero-copy>p{ font-size:15px; }
  .hero-actions{ margin:20px 0 20px; }
  .hero-trust{ gap:18px; }
  .next-class-time strong{ font-size:46px; }
  .next-class h2{ font-size:21px; }
}

/* -- Desktop: cap nav gaps + guaranteed spacing before header-right (all langs) -- */
@media (min-width:1181px){
  .header-right, .home-page .header-right{ margin-left:20px; }
  nav.main-nav ul{ gap:clamp(10px,1.2vw,20px); }
  .home-page nav.main-nav ul{ gap:clamp(12px,1.3vw,22px); }
}
/* -- RU/UA: compact nav at all desktop widths (longer Cyrillic labels) -- */
@media (min-width:1181px){
  html[lang="ru"] nav.main-nav ul, html[lang="uk"] nav.main-nav ul,
  html[lang="ru"] .home-page nav.main-nav ul, html[lang="uk"] .home-page nav.main-nav ul{
    gap:clamp(10px,1.05vw,18px);
  }
  html[lang="ru"] nav.main-nav a, html[lang="uk"] nav.main-nav a,
  html[lang="ru"] .home-page nav.main-nav a, html[lang="uk"] .home-page nav.main-nav a{
    font-size:12px; letter-spacing:.7px;
  }
  html[lang="ru"] .header-right, html[lang="uk"] .header-right,
  html[lang="ru"] .home-page .header-right, html[lang="uk"] .home-page .header-right{ gap:14px; margin-left:20px; }
  html[lang="ru"] nav.main-nav ul, html[lang="uk"] nav.main-nav ul,
  html[lang="ru"] .home-page nav.main-nav ul, html[lang="uk"] .home-page nav.main-nav ul{ gap:clamp(10px,1vw,16px); }
}

/* ================================================================
   v32 — MOBILE HARDENING
   Placed last so it overrides the duplicated .home-page block that
   otherwise reverts mobile grids back to multi-column (overflow).
   ================================================================ */
@media (max-width:900px){
  .class-feature-grid{ grid-template-columns:1fr; grid-template-rows:none; grid-auto-rows:auto; }
  .trainer-editorial-grid{ grid-template-columns:repeat(2,1fr); }
  .benefit-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
  html,body{ overflow-x:hidden; }

  /* --- HERO: single column, fits under fixed header, no word-per-line --- */
  .home-hero{ min-height:auto!important; height:auto!important; padding:92px 0 40px!important; align-items:flex-start!important; }
  .home-hero-inner{ grid-template-columns:1fr!important; gap:28px; padding-top:0; align-items:start; }
  .home-hero-copy{ max-width:100%; }
  .home-hero h1{ font-size:clamp(42px,12.5vw,58px)!important; line-height:.96; max-width:100%; margin-bottom:20px; }
  .home-hero-copy>p{ max-width:100%; font-size:16px; line-height:1.6; }
  .hero-actions{ margin:24px 0 22px; gap:16px; }
  .hero-trust{ gap:16px; }
  .hero-scroll{ display:none; }
  .next-class{ max-width:100%; margin-left:0; }

  /* --- DISCIPLINES: stack vertically, full width, readable --- */
  .class-feature-grid{ grid-template-columns:1fr!important; grid-template-rows:none!important; grid-auto-rows:auto!important; gap:14px; overflow:visible; margin-right:0; padding-right:0; }
  .class-feature{ min-width:0!important; width:100%!important; min-height:270px; }

  /* --- WHY / BENEFITS: single column, no giant side padding --- */
  .benefit-grid{ grid-template-columns:1fr!important; }
  .benefit-grid article{ border-right:0!important; border-bottom:1px solid rgba(255,255,255,.18); padding:26px 22px!important; }
  .benefit-grid article:first-child,.benefit-grid article:last-child{ padding-left:22px!important; padding-right:22px!important; }
  .benefit-grid h3{ font-size:23px; margin:10px 0 8px; }

  /* --- TRAINERS: single column, name + arrow inline, no overlap --- */
  .trainer-editorial-grid{ grid-template-columns:1fr!important; gap:26px; overflow:visible; margin-right:0; padding-right:0; }
  .trainer-editorial{ min-width:0!important; width:100%!important; }
  .trainer-image{ aspect-ratio:4/5; }
  .trainer-line{ display:flex; flex-direction:row; align-items:flex-start; justify-content:space-between; gap:14px; padding-top:14px; }
  .trainer-line h3{ font-size:20px; line-height:1.2; min-width:0; overflow-wrap:anywhere; }
  .trainer-line>a{ width:36px; height:36px; flex-shrink:0; }
}

/* v32.1 — tablet guard + long RU/UA hero button/H1 wrapping */
@media (max-width:900px){ html,body{ overflow-x:hidden; } }
@media (max-width:820px){
  .home-hero-inner{ grid-template-columns:1fr!important; gap:36px; }
  .next-class{ max-width:440px; }
}
@media (max-width:600px){
  .home-hero h1{ font-size:clamp(38px,11vw,54px)!important; }
  .hero-actions{ width:100%; }
  .hero-actions .btn{ white-space:normal; text-align:center; font-size:12px; line-height:1.35; padding:15px 18px; }
  .hero-actions .btn-block{ width:100%; }
  .hero-text-link{ font-size:11px; gap:10px; }
}

/* ================================================================
   v33 — VISUAL SYSTEM REFINEMENT
   Preserves the existing brand and structure while unifying depth,
   hierarchy, cards, infographics, icons and responsive rhythm.
   ================================================================ */
:root{
  --bg:#090c10;
  --bg-2:#11161c;
  --surface:#171d24;
  --surface-raised:#1c232b;
  --blue:#2d67a6;
  --blue-deep:#1d416d;
  --yellow:#f5d254;
  --graphite:#1a2027;
  --text:#f6f5f0;
  --text-dim:#a8b0ba;
  --line:rgba(229,235,241,.13);
  --line-strong:rgba(229,235,241,.24);
  --radius:4px;
  --shadow-card:0 22px 54px rgba(0,0,0,.22);
}
html{ scroll-padding-top:92px; }
body{
  background:
    radial-gradient(circle at 86% -8%,rgba(45,103,166,.18),transparent 30%),
    radial-gradient(circle at -8% 92%,rgba(45,103,166,.1),transparent 28%),
    var(--bg);
  font-size:15.5px;
  line-height:1.68;
  text-rendering:optimizeLegibility;
}
::selection{ background:var(--yellow); color:#16130a; }
.container{ max-width:1240px; padding-left:clamp(20px,3.2vw,40px); padding-right:clamp(20px,3.2vw,40px); }
section{ padding:clamp(76px,8vw,112px) 0; }
.section-title{ max-width:820px; font-size:clamp(40px,4.8vw,64px); letter-spacing:-.3px; margin-bottom:18px; }
.section-lede{ max-width:620px; color:#aeb5be; font-size:15px; line-height:1.75; }
.eyebrow,.section-index{ display:inline-flex; align-items:center; gap:12px; }
.eyebrow::before,.section-index::before{ content:""; width:28px; height:2px; background:currentColor; opacity:.9; }
.head-row{ margin-bottom:clamp(34px,5vw,58px); }

/* Header and navigation */
header,.site-header{
  background:rgba(7,10,14,.88);
  border-color:rgba(255,255,255,.1);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  box-shadow:0 10px 34px rgba(0,0,0,.16);
}
.nav-wrap{ height:78px; }
.logo{ gap:12px; letter-spacing:1.4px; }
.logo .mark{ width:44px; height:44px; box-shadow:0 0 0 1px rgba(245,210,84,.32),0 8px 22px rgba(0,0,0,.32); }
.logo .name-sub{ color:#939ca6; letter-spacing:2.35px; }
nav.main-nav a{ color:#a9b0b8; font-weight:600; letter-spacing:.75px; }
nav.main-nav a::before{ content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--yellow); transition:right .2s ease; }
nav.main-nav a:hover::before{ right:0; }
nav.main-nav a.active::after{ height:2px; }
.lang-switch button,.lang-switch a{ min-width:34px; text-align:center; border-color:rgba(255,255,255,.13); }
.header-quick-call{ border-color:rgba(255,255,255,.16); background:rgba(255,255,255,.025); }
.header-quick-call svg,.header-quick-call .ui-svg{ width:16px; height:16px; }
.ci-icon .ui-svg{ width:20px; height:20px; }
.mobile-drawer{ top:78px; padding-top:26px; background:linear-gradient(150deg,#0d1218,#090c10 68%); }
.mobile-drawer a{ border-color:rgba(255,255,255,.1); }

/* Buttons and icon language */
.btn{
  min-height:50px;
  padding:14px 25px;
  border-radius:var(--radius);
  letter-spacing:1.35px;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.btn-primary{ box-shadow:0 12px 34px rgba(245,210,84,.13); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 38px rgba(245,210,84,.2); }
.btn-outline{ border-color:var(--line-strong); background:rgba(255,255,255,.015); }
.ui-icon-wrap{ display:inline-flex; align-items:center; justify-content:center; }
.ui-svg{ display:block; object-fit:contain; }
.ui-icon-wrap svg,.ui-icon-wrap .ui-svg,.link-arrow svg,.link-arrow .ui-svg,.next-class-link svg,.next-class-link .ui-svg,.hero-text-link svg,.hero-text-link .ui-svg{ width:16px; height:16px; }
.coach-card__action svg,.coach-card__action .ui-svg,.program-card__action svg,.program-card__action .ui-svg,.store-card__action svg,.store-card__action .ui-svg,.trainer-line>a svg,.trainer-line>a .ui-svg{ width:20px; height:20px; }
.btn-primary .ui-svg,.next-class-link .ui-svg,.store-card:hover .store-card__action .ui-svg,.coach-card:hover .coach-card__action .ui-svg,.program-card:hover .program-card__action .ui-svg{ filter:brightness(0) saturate(100%); }
.info-icon{ width:30px; height:30px; color:var(--yellow); margin-top:20px; }
.list-check-icon{ width:16px; height:16px; color:var(--yellow); flex:0 0 auto; margin-top:1px; }
.pricing-card__features li::before{ display:none; }

/* Cinematic inner-page intro */
.page-hero{
  min-height:500px;
  padding-top:178px;
  padding-bottom:84px;
  display:flex;
  align-items:flex-end;
  border-bottom:1px solid var(--line);
}
.page-hero-bg{ filter:grayscale(32%) contrast(1.12) saturate(.86); transform:scale(1.015); }
.page-hero-overlay{
  background:
    linear-gradient(90deg,rgba(6,9,13,.97) 0%,rgba(6,9,13,.78) 48%,rgba(6,9,13,.32) 78%),
    linear-gradient(0deg,rgba(6,9,13,.98),transparent 66%);
}
.page-hero .container::before{ content:""; display:block; width:54px; height:4px; margin-bottom:24px; background:var(--yellow); }
.page-hero h1{ max-width:920px; font-size:clamp(54px,7vw,90px); letter-spacing:-.8px; margin-bottom:20px; }
.page-hero p{ max-width:680px; color:#c2c7cd; font-size:clamp(15px,1.35vw,18px); line-height:1.72; }
.page-hero.plain{ background:radial-gradient(circle at 84% 0%,rgba(45,103,166,.32),transparent 36%),linear-gradient(135deg,#141a21,#0c1015); }
.breadcrumb{ display:inline-flex; padding:7px 10px; margin-bottom:22px; border:1px solid rgba(255,255,255,.14); color:#b0b7c0; background:rgba(7,10,14,.28); }

/* Unified cards */
.discipline-card,.trainer-card,.advantage-card,.testimonial-card,.seo-side-card,.feature-check,.feature-check-grid>div,.trainer-stat,.schedule-card,.blog-card,.contact-card{
  border-color:var(--line);
  background:linear-gradient(145deg,var(--surface-raised),var(--surface));
  box-shadow:0 1px 0 rgba(255,255,255,.025) inset;
}
.discipline-card,.trainer-card,.program-card,.coach-card,.store-card,.story-card,.blog-card{ overflow:hidden; }
.discipline-card:hover,.trainer-card:hover,.program-card:hover,.coach-card:hover,.store-card:hover{
  border-color:rgba(245,210,84,.7);
  box-shadow:var(--shadow-card);
}
.discipline-photo img,.trainer-card-photo img,.gallery-grid img{ filter:grayscale(24%) contrast(1.07); }
.level-tag,.program-card__level,.store-card__tag{ backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.pill{ border-radius:999px; padding:5px 11px; background:rgba(255,255,255,.02); }

/* Infographic and proof blocks */
.whom{ background:linear-gradient(125deg,#18385f 0%,#2d67a6 68%,#386fac 100%); }
.whom-grid{ gap:0; border:1px solid rgba(255,255,255,.16); background:transparent; }
.whom-item{ position:relative; background:rgba(8,19,33,.25); padding:38px 34px 42px; border-right:1px solid rgba(255,255,255,.16); }
.whom-item:last-child{ border-right:0; }
.whom-item .num{ position:absolute; top:22px; right:24px; color:rgba(255,255,255,.38); font-size:20px; }
.whom-item .info-icon{ margin-top:0; width:32px; height:32px; }
.whom-item h3{ margin-top:22px; font-size:27px; }
.about-stats{ gap:0; border:1px solid currentColor; border-color:rgba(74,82,90,.24); }
.about-stats div{ min-height:112px; padding:24px!important; display:flex; flex-direction:column; justify-content:center; border-right:1px solid rgba(74,82,90,.24); }
.about-stats strong{ font-size:46px; }
.trainer-stats-grid{ gap:0; border:1px solid var(--line); }
.trainer-stat{ min-height:130px; display:grid; align-content:center; border-width:0 1px 0 0; }
.trainer-stat:last-child{ border-right:0; }
.first-training-steps{ position:relative; }
.first-training-steps article{ position:relative; background:linear-gradient(145deg,var(--surface-raised),var(--surface)); border-color:var(--line); }
.first-training-steps .info-icon{ margin:0 0 20px; }
.feature-check-grid{ gap:16px; }
.seo-content-grid .feature-check-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.feature-check,.feature-check-grid>div{ position:relative; min-height:170px; padding:30px; }
.benefit-grid article{ position:relative; min-height:238px; }
.benefit-grid .info-icon{ margin-top:22px; }
.benefit-grid h3{ margin-top:18px; }

/* Editorial media blocks */
.about-feature-photo,.trainer-photo,.gallery-grid img,.map-embed,.product-gallery-main{ border-radius:var(--radius); }
.about-feature-photo{ box-shadow:0 34px 80px rgba(0,0,0,.25); }
.about-feature-photo img{ filter:grayscale(22%) contrast(1.08); }
.about-year-badge{ width:104px; height:104px; }
.about-values span{ border-radius:999px; padding:9px 14px; }
.gallery-grid{ gap:12px; }
.gallery-grid img{ border:1px solid var(--line); }
.story-card{ border-radius:var(--radius); box-shadow:0 18px 42px rgba(0,0,0,.18); }
.story-card::after{ background:linear-gradient(0deg,rgba(5,8,11,.96),rgba(5,8,11,.08) 70%); }

/* Schedule, FAQ, forms and overlays */
.filters{ gap:8px; }
.filter-btn{ border-radius:999px; padding:10px 17px; background:rgba(255,255,255,.02); }
.schedule-table{ border:1px solid var(--line); background:rgba(255,255,255,.012); }
.schedule-table th{ background:rgba(255,255,255,.025); }
.schedule-table td{ padding-top:18px; padding-bottom:18px; }
.faq-item{ border-color:var(--line); }
.faq-q{ min-height:68px; padding:20px 4px; }
.faq-q::after{ border-radius:50%; background:rgba(255,255,255,.04); }
.form-field input,.form-field select,.form-field textarea{
  min-height:54px;
  border-color:rgba(255,255,255,.16);
  border-radius:var(--radius);
  background:#0d1218;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{ border-color:var(--yellow); box-shadow:0 0 0 3px rgba(245,210,84,.1); }
.modal{ backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.modal-box{ border:1px solid var(--line-strong); border-radius:6px; background:linear-gradient(145deg,#171d24,#0f141a); box-shadow:0 34px 100px rgba(0,0,0,.55); }

/* Store, coaches and pricing */
.store-showcase,.coach-showcase,.program-showcase,.pricing-showcase{ background:radial-gradient(circle at 76% 0%,rgba(45,103,166,.18),transparent 32%),var(--bg); }
.store-card,.coach-card,.program-card,.pricing-card{ border-radius:var(--radius); }
.store-card__action,.coach-card__action,.program-card__action,.trainer-line>a{ border-radius:50%; }
.coach-card__content,.program-card__content,.store-card__body{ background:linear-gradient(0deg,rgba(5,8,11,.22),transparent); }
.pricing-grid{ gap:18px; }
.pricing-card{ min-height:540px; border-color:var(--line); border-radius:var(--radius); background:linear-gradient(155deg,#1a2129,#12171d); }
.pricing-card--featured{ border-color:var(--yellow); background:linear-gradient(145deg,#2d67a6,#1c416e 66%,#142945); box-shadow:0 30px 78px rgba(0,0,0,.34); }
.pricing-card__button{ border-radius:var(--radius); }
.pricing-dropin{ border-radius:var(--radius); }

/* Footer */
footer{ padding-top:72px; background:#0c1116; }
.map-embed{ overflow:hidden; border:1px solid var(--line); box-shadow:0 20px 50px rgba(0,0,0,.2); }
.foot-grid{ gap:clamp(28px,4vw,54px); }
.foot-col h5{ color:var(--yellow); letter-spacing:1.7px; }
.foot-col a{ transition:color .18s ease; }
.foot-col a:hover{ color:var(--yellow); }
.foot-social a{ width:40px; height:40px; padding:5px; border:1px solid transparent; border-radius:50%; }
.foot-social a:hover{ border-color:var(--yellow); transform:translateY(-2px); }
.foot-social img{ width:100%; height:100%; }
.sticky-mobile-cta{ background:rgba(9,12,16,.94); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }

/* Homepage polish */
.home-page{ --home-max:1360px; }
.home-page .site-header{ background:rgba(7,10,14,.86); }
.home-hero::before{ background:linear-gradient(90deg,rgba(5,8,12,.98) 0%,rgba(5,8,12,.88) 42%,rgba(5,8,12,.18) 78%),linear-gradient(0deg,rgba(5,8,12,.92),transparent 48%); }
.home-hero-grid{ opacity:.22; background-size:96px 96px; }
.home-hero h1{ letter-spacing:-1.2px; text-wrap:balance; }
.home-hero-copy>p{ color:#c9ced4; }
.next-class{ border:1px solid rgba(255,255,255,.18); border-radius:var(--radius); background:rgba(11,15,20,.82); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:0 28px 70px rgba(0,0,0,.34); }
.next-class-link{ border-radius:0 0 var(--radius) var(--radius); }
.hero-trust{ padding-top:22px; border-top:1px solid rgba(255,255,255,.12); }
.hero-trust span{ color:#c9ced3; }
.home-intro{ background:#f2f0e9; }
.class-feature{ border-radius:var(--radius); border-color:rgba(255,255,255,.14); }
.class-feature::after{ background:linear-gradient(0deg,rgba(5,8,11,.96),rgba(5,8,11,.08) 68%); }
.trainer-image,.home-product-photo{ border-radius:var(--radius); }
.trainer-line>a{ background:rgba(255,255,255,.02); }
.home-shop{ background:#f2f0e9; }
.featured-quote{ position:relative; padding:34px 34px 28px; border:1px solid var(--line); border-top:4px solid var(--yellow); background:linear-gradient(145deg,#1c232a,#13181e); }
.featured-quote footer{ padding:0; border:0; background:transparent; }

@media(max-width:900px){
  header,.site-header{ background:#090d12; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .page-hero{ min-height:420px; padding-top:148px; padding-bottom:68px; }
  .whom-item{ border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .whom-item:last-child{ border-bottom:0; }
  .story-grid{ grid-template-columns:repeat(2,1fr); }
  .story-card{ min-height:430px; }
  .pricing-card--featured{ transform:none; }
}
@media(max-width:600px){
  html{ scroll-padding-top:76px; }
  body{ font-size:15px; }
  section{ padding:64px 0; }
  .container{ padding-left:20px; padding-right:20px; }
  .nav-wrap{ height:74px; }
  .mobile-drawer,.home-page .mobile-drawer{ top:74px; }
  .logo .mark{ width:38px; height:38px; }
  .page-hero{ min-height:0; padding-top:110px; padding-bottom:32px; }
  .page-hero .container::before{ width:42px; height:3px; margin-bottom:18px; }
  .page-hero h1{ font-size:clamp(30px,9vw,42px); line-height:1.08; }
  .page-hero p{ font-size:15px; }
  .breadcrumb{ margin-bottom:18px; font-size:11px; }
  .section-title{ font-size:clamp(38px,12vw,52px); }
  .head-row{ align-items:flex-start; margin-bottom:34px; }
  .head-row .btn{ width:100%; }
  .about-feature-photo{ min-height:430px; }
  .about-feature-grid{ gap:34px; }
  .about-stats{ grid-template-columns:repeat(3,1fr); }
  .about-stats div{ min-height:94px; padding:16px 10px!important; }
  .about-stats strong{ font-size:34px; }
  .about-stats span{ font-size:8px; letter-spacing:.6px; }
  .story-grid{ grid-template-columns:1fr; }
  .seo-content-grid .feature-check-grid{ grid-template-columns:1fr; }
  .story-card{ min-height:440px; }
  .trainer-stats-grid{ grid-template-columns:1fr; }
  .trainer-stat{ min-height:106px; border-right:0; border-bottom:1px solid var(--line); }
  .trainer-stat:last-child{ border-bottom:0; }
  .schedule-table{ border:0; background:transparent; }
  .filter-btn{ padding:9px 14px; }
  .pricing-card{ min-height:0; }
  .featured-quote{ padding:28px 22px 24px; }
  .foot-social a{ width:38px; height:38px; }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{ scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}

/* ================================================================
   v34.1 — HEADER WIDTH FIX (root cause of nav/switcher overlap)
   Inner pages' header (.nav-wrap) inherited the generic .container
   max-width (1240px), while the homepage header got 1440px. Same
   content, less room -> phone icon / switcher / CTA collided with
   nav items on EVERY inner page at ANY desktop width once RU/UA
   labels (longer than PL) were used. Give every page's header the
   same generous, single budget so this can't happen again.
   ================================================================ */
header .nav-wrap{ max-width:1440px; }

/* v34.2 — benefit icon #1 ("users") visually smaller than the others:
   identical 30x30 box, but the two-person glyph has more internal
   negative space than route/shield/heart. Compensate visual weight. */
.benefit-grid article:first-child .info-icon{ transform:scale(1.2); transform-origin:left center; }

/* v34.3 — contrast fix: form/labels on .final-cta (yellow background).
   .seo-content-grid p and .form-field label default to a light-grey
   tone tuned for dark sections; on the yellow final-cta band that
   grey is unreadable. Scope dark, high-contrast overrides here. */
.final-cta .eyebrow{ color:#4a3c12; }
.final-cta .seo-content-grid p{ color:#3a3016; }
.final-cta .seo-content-grid .lead{ color:#2a2210; }
.final-cta .form-field label{ color:#4a3c12; }
.final-cta .form-check{ color:#3a3016; }
.final-cta .form-check a{ color:#14100a; text-decoration-color:#14100a; }
.final-cta .form-note{ color:#4a3c12; }
.final-cta .form-success{ background:rgba(20,16,10,.08); border-color:rgba(20,16,10,.35); color:#14100a; }

/* ================================================================
   v34.8 — SITEWIDE CARD CLICKABILITY UNIFICATION
   .discipline-card (blog.html) was already a full <a> wrapper — the
   correct, accessible pattern. Every other card type only had a
   small arrow/link clickable. A pure-CSS stretched-link (::after on
   the action link) does NOT work here: .coach-card__action,
   .program-card__action and .store-card__action are nested INSIDE
   an absolutely-positioned bottom strip (__content/__body), which
   becomes their containing block — inset:0 only covers that strip,
   not the full card. Fixed via one small JS handler instead (see
   old-school-site-v5.js) that makes the whole card navigate to its
   existing action link on click, consistently across every type.
   ================================================================ */
.trainer-editorial{ position:relative; cursor:pointer; }
.coach-card{ cursor:pointer; }
.program-card{ cursor:pointer; }
.store-card{ cursor:pointer; }
.class-feature{ cursor:pointer; }

/* ================================================================
   v34.5 — BENEFIT CARD HEADING: stop erratic line-wrapping
   At specific viewport widths (1024, 1181, 1600, 1920px...) different
   cards would unpredictably wrap to 2 lines while neighbours stayed
   on 1 — not tied to text length, just borderline column-width vs
   clamp() font-size math. Headings are short 2-3 word labels that
   were never meant to wrap; force one line everywhere for a
   consistent look across all four cards at every screen size.
   ================================================================ */
.benefit-grid h3{ white-space:nowrap; }
@media (max-width:480px){
  .benefit-grid h3{ white-space:normal; } /* narrow phones: allow wrap rather than clip/overflow */
}

/* v34.6 — benefit-grid: extend 2-column layout to cover the RU/UA
   overflow gap (~1000-1300px) where longer Cyrillic labels no longer
   fit 4 columns without wrapping, now that wrapping is disabled. */
@media (min-width:901px) and (max-width:1300px){
  .benefit-grid{ grid-template-columns:repeat(2,1fr); }
}

/* ================================================================
   v34.7 — MOBILE DRAWER HORIZONTAL OVERFLOW FIX
   .mobile-drawer is position:fixed with left:0/right:0 (should be
   viewport-width), but had only overflow-y set. Its flex <ul> has
   no explicit width, so long unwrapped UA nav labels could force
   the drawer's rendered box wider than the viewport, expanding
   document.scrollWidth and creating page-wide horizontal overflow
   at tablet/narrow-desktop widths (~950-1350px, burger-menu range).
   ================================================================ */
.mobile-drawer a{ white-space:normal; overflow-wrap:break-word; }
/* Real fix for the horizontal-overflow bug: the closed drawer is
   translateX(100%) off-screen, which still occupies layout space and
   can expand document scrollWidth at any viewport width unless the
   page itself clips horizontal overflow. See html,body rule below. */

/* ================================================================
   v34.9 — Fight Camp promo banner: was reusing .community-band's
   blue gradient, which sat directly above the also-blue benefit-band
   section (two different blues back-to-back read as a layout
   mistake). Give it its own warm, dark identity instead — ties into
   the "mountain campfire" theme and reads as a distinct promo block,
   not a mismatched repeat of the neighbouring section.
   ================================================================ */
.fight-camp-band{ background:#f0eee8; color:#11151a; }
.fight-camp-band .eyebrow{ color:var(--blue-deep)!important; }
.fight-camp-band .section-title{ color:#11151a; }
.fight-camp-band p{ color:#4d535a; }
.fight-camp-band .seo-content-grid{ align-items:center; }
.fight-camp-band .community-photo{ min-height:480px; border:1px solid #c8c7c1; }
.fight-camp-band .community-photo img{ width:100%; height:100%; object-fit:cover; }
.fight-camp-band .btn-outline-light{ border-color:#11151a; color:#11151a; }
.fight-camp-band .btn-outline-light:hover{ background:#11151a; color:#f0eee8; }

/* v35 — Grafik: larger day-of-week tab labels for readability */
[data-filter-group="day"] .filter-btn{ font-size:15px; padding:11px 20px; }
@media(max-width:700px){
  [data-filter-group="day"] .filters{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  [data-filter-group="day"] .filter-btn{ font-size:12px; padding:10px 6px; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}
@media(max-width:420px){
  [data-filter-group="day"] .filters{ grid-template-columns:repeat(2,1fr); }
}

/* ================================================================
   v36 — Keep the language switcher visible in the header on mobile
   (previously hidden below 900/600px, reachable only via the burger
   drawer). Compact sizing so PL/UA/RU fits cleanly next to the
   phone icon and burger button at narrow widths.
   ================================================================ */
@media(max-width:600px){
  .header-right, .home-page .header-right{ gap:5px; margin-left:0; }
  .header-right .lang-switch{ gap:2px; }
  .header-right .lang-switch button,
  .header-right .lang-switch a{ padding:5px 5px; font-size:10px; }
  .header-quick-call{ width:28px!important; height:28px!important; font-size:12px!important; }
  .burger{ padding:6px; }
  .logo, .home-page .logo{ font-size:17px; gap:6px; }
  .logo .mark, .home-page .logo .mark{ width:30px!important; height:30px!important; }
}
@media(max-width:390px){
  .header-right, .home-page .header-right{ gap:4px; }
  .header-right .lang-switch button,
  .header-right .lang-switch a{ padding:4px 4px; font-size:9px; }
  .logo, .home-page .logo{ font-size:15px; gap:5px; }
  .header-quick-call{ width:26px!important; height:26px!important; font-size:11px!important; }
  .burger{ padding:5px; }
}
@media(max-width:340px){
  .header-quick-call{ display:none; }
  .header-right, .home-page .header-right{ gap:3px; }
  .header-right .lang-switch button,
  .header-right .lang-switch a{ padding:4px 3px; }
  .logo, .home-page .logo{ font-size:13px; gap:4px; }
  .logo .mark, .home-page .logo .mark{ width:26px!important; height:26px!important; }
}
