:root{
  --bg:#0d0d0f; --bg2:#141416; --card:#1a1a1e; --line:#2a2a30;
  --txt:#f4f4f5; --muted:#9b9ba3; --lime:#c6f432; --lime-d:#aee01c; --orange:#ff5e1a;
  --r:8px; --sans:'Barlow',sans-serif; --display:'Anton',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--txt);line-height:1.6;overflow-x:hidden}
.container{width:90%;max-width:1180px;margin:0 auto}
h1,h2,h3,.brand{font-family:var(--display);font-weight:400;letter-spacing:1px;text-transform:uppercase;line-height:1}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
section{padding:96px 0}
.kicker{display:inline-block;color:var(--lime);font-weight:700;text-transform:uppercase;letter-spacing:3px;font-size:.8rem;margin-bottom:12px;font-family:var(--sans)}
.sec-head{text-align:center;margin-bottom:54px}
.sec-head h2{font-size:clamp(2.4rem,6vw,4rem)}
.btn{display:inline-flex;align-items:center;gap:9px;padding:15px 32px;font-family:var(--display);font-weight:400;letter-spacing:1.5px;text-transform:uppercase;font-size:1rem;cursor:pointer;border:2px solid transparent;border-radius:var(--r);transition:.25s}
.btn-primary{background:var(--lime);color:#0d0d0f}
.btn-primary:hover{background:var(--lime-d);transform:translateY(-3px)}
.btn-outline{background:transparent;color:#fff;border-color:#fff}
.btn-outline:hover{background:#fff;color:#0d0d0f}
.btn-outline-dark{background:transparent;color:var(--txt);border-color:var(--line)}
.btn-outline-dark:hover{border-color:var(--lime);color:var(--lime)}

#navbar{position:fixed;top:0;width:100%;z-index:1000;padding:18px 0;transition:.3s}
#navbar.scrolled{background:rgba(13,13,15,.92);backdrop-filter:blur(12px);padding:12px 0;border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.brand{font-size:1.8rem;color:#fff}
.brand span{color:var(--lime)}
.nav-menu{display:flex;align-items:center;gap:6px;list-style:none}
.nav-link{padding:8px 14px;border-radius:var(--r);color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:1px;font-size:.85rem;transition:.2s}
.nav-link:hover,.nav-link.active{color:var(--lime)}
.nav-cta{background:var(--lime);color:#0d0d0f!important;font-family:var(--display);letter-spacing:1px}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer}
.hamburger span{width:26px;height:3px;background:var(--txt);transition:.3s}
.hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* hero */
.hero{position:relative;height:100vh;min-height:640px;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-veil{position:absolute;inset:0;background:linear-gradient(110deg,rgba(13,13,15,.92) 30%,rgba(13,13,15,.5))}
.hero-inner{position:relative;z-index:2;max-width:720px}
.pill{display:inline-flex;align-items:center;gap:9px;background:var(--lime);color:#0d0d0f;padding:7px 18px;border-radius:50px;font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.78rem;margin-bottom:22px}
.hero h1{font-size:clamp(3rem,10vw,6.5rem);margin-bottom:18px}
.hl{color:var(--lime);-webkit-text-stroke:1px var(--lime)}
.hero>.hero-inner>p{font-size:1.18rem;max-width:500px;margin-bottom:32px;color:#d4d4d8}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}

/* stats bar */
.stats-bar{background:var(--lime);padding:44px 0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stats-bar .stats .count{color:#0d0d0f}
.stats .count{font-family:var(--display);font-size:3rem;display:block}
.stats-bar .stats small{color:#0d0d0f;font-weight:700;text-transform:uppercase;letter-spacing:1px;opacity:.8}
.stats small{font-size:.85rem}

/* classes */
.class-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cls{position:relative;border-radius:var(--r);overflow:hidden;height:420px}
.cls img{width:100%;height:100%;object-fit:cover;transition:.5s}
.cls:hover img{transform:scale(1.08)}
.cls-ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:26px;background:linear-gradient(transparent 30%,rgba(13,13,15,.92))}
.cls-ov span{color:var(--lime);font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.78rem;margin-bottom:6px;display:flex;align-items:center;gap:7px}
.cls-ov h3{font-size:1.6rem;margin-bottom:8px}
.cls-ov p{color:#d4d4d8;font-size:.9rem;opacity:0;max-height:0;transition:.4s}
.cls:hover .cls-ov p{opacity:1;max-height:60px}

/* schedule */
.schedule{background:var(--bg2)}
.day-tabs{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:36px}
.dtab{background:var(--card);border:1px solid var(--line);color:var(--muted);padding:12px 28px;border-radius:var(--r);cursor:pointer;font-family:var(--display);letter-spacing:1px;text-transform:uppercase;transition:.2s}
.dtab:hover{color:var(--txt)}
.dtab.active{background:var(--lime);color:#0d0d0f;border-color:var(--lime)}
.sched-panels{max-width:760px;margin:0 auto}
.spanel{display:none}
.spanel.active{display:block}
.slot{display:flex;align-items:center;gap:24px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--lime);border-radius:var(--r);padding:18px 24px;margin-bottom:12px;transition:.2s}
.slot:hover{transform:translateX(6px)}
.time{font-family:var(--display);font-size:1.5rem;color:var(--lime);min-width:70px}
.slot div{flex:1}
.slot h4{font-size:1.3rem}
.slot p{color:var(--muted);font-size:.88rem}
.lvl{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:5px 14px;border-radius:50px;background:rgba(198,244,50,.12);color:var(--lime)}

/* coaches */
.coach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.coach{position:relative;border-radius:var(--r);overflow:hidden}
.coach img{width:100%;height:360px;object-fit:cover;transition:.4s}
.coach:hover img{transform:scale(1.06)}
.coach figcaption{position:absolute;left:0;bottom:0;width:100%;padding:22px;background:linear-gradient(transparent,rgba(13,13,15,.95))}
.coach figcaption strong{display:block;font-family:var(--display);font-size:1.4rem;letter-spacing:.5px}
.coach figcaption span{color:var(--lime);font-size:.82rem;text-transform:uppercase;letter-spacing:1px;font-weight:600}
.c-soc{display:flex;gap:10px;margin-top:10px}
.c-soc a{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;transition:.2s}
.c-soc a:hover{background:var(--lime);color:#0d0d0f}

/* pricing */
.pricing{background:var(--bg2)}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.plan{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:38px 30px;position:relative;transition:.3s}
.plan:hover{transform:translateY(-8px)}
.plan.feat{background:linear-gradient(160deg,#1c1c0a,var(--card));border-color:var(--lime)}
.badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--lime);color:#0d0d0f;font-family:var(--display);letter-spacing:1px;text-transform:uppercase;font-size:.72rem;padding:5px 18px;border-radius:50px}
.plan h3{font-size:1.6rem;margin-bottom:8px}
.amt{font-family:var(--display);font-size:3rem;color:var(--lime);margin-bottom:20px}
.amt em{font-family:var(--sans);font-size:1rem;font-style:normal;color:var(--muted)}
.plan ul{list-style:none;margin-bottom:26px}
.plan ul li{display:flex;align-items:center;gap:10px;padding:8px 0;color:#d4d4d8;font-size:.95rem;border-bottom:1px solid var(--line)}
.plan ul li i{color:var(--lime)}
.plan ul li.off{color:var(--muted)}
.plan ul li.off i{color:#555}
.plan .btn{width:100%;justify-content:center}

/* join */
.join{background:var(--lime);color:#0d0d0f}
.join-inner{display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap}
.join-text h2{font-size:clamp(2rem,5vw,3.2rem)}
.join-text p{font-weight:600;max-width:420px;margin-top:8px}
.join-form{display:flex;gap:10px;flex-wrap:wrap}
.join-form input{padding:15px 18px;border:2px solid #0d0d0f;border-radius:var(--r);font-family:var(--sans);font-weight:600;min-width:200px;background:#fff}
.join-form input:focus{outline:none}
.join-form button{background:#0d0d0f;color:var(--lime);border:none;padding:15px 28px;border-radius:var(--r);font-family:var(--display);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:8px;transition:.2s}
.join-form button:hover{background:#000}

/* footer */
.footer{background:#0a0a0c;color:var(--muted);padding:70px 0 26px}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:36px;margin-bottom:42px}
.footer .brand{font-size:1.8rem;margin-bottom:14px}
.footer-grid>div>p{font-size:.92rem;margin-bottom:16px}
.footer h4{color:#fff;font-family:var(--display);letter-spacing:1px;margin-bottom:16px;font-size:1.2rem}
.footer ul{list-style:none}
.footer ul li{margin-bottom:10px;font-size:.92rem}
.footer ul li a{color:var(--muted);transition:.2s}
.footer ul li a:hover{color:var(--lime)}
.footer ul li i{color:var(--lime);margin-right:8px}
.socials{display:flex;gap:10px}
.socials a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#fff;transition:.25s}
.socials a:hover{background:var(--lime);color:#0d0d0f;transform:translateY(-3px)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--line);font-size:.86rem;flex-wrap:wrap;gap:10px}
.footer-bottom a{color:var(--lime);font-weight:600}

.reveal{opacity:0;transform:translateY(32px);transition:.7s cubic-bezier(.2,.7,.3,1)}
.reveal.visible{opacity:1;transform:none}
.back-to-top{position:fixed;bottom:28px;right:28px;width:50px;height:50px;border-radius:var(--r);background:var(--lime);color:#0d0d0f;border:none;cursor:pointer;opacity:0;pointer-events:none;transition:.3s;z-index:900}
.back-to-top.visible{opacity:1;pointer-events:auto}
.back-to-top:hover{transform:translateY(-4px)}

@media(max-width:980px){
  .class-grid,.coach-grid{grid-template-columns:repeat(2,1fr)}
  .price-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .nav-menu{position:fixed;top:0;right:-100%;height:100vh;width:74%;background:var(--bg2);flex-direction:column;justify-content:center;gap:18px;transition:.35s}
  .nav-menu.open{right:0}.hamburger{display:flex;z-index:1001}
  .class-grid,.coach-grid,.footer-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .slot{flex-wrap:wrap;gap:10px}section{padding:72px 0}
}
