:root{
  --charcoal:#1a1a1a;
  --charcoal-2:#242424;
  --orange:#ff5722;
  --white:#ffffff;
  --text-dim:#b8b8b8;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--charcoal);color:var(--white);font-family:'Rubik',Tahoma,sans-serif;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none}
h1,h2,.brand__mark{font-family:'Changa',sans-serif}

.back-pill{position:fixed;inset-block-start:16px;inset-inline-start:16px;z-index:200;background:rgba(0,0,0,.75);color:var(--orange);padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--orange)}

/* ---- Panel nav dots (archetype I: showcase slider) ---- */
.panel-nav{position:fixed;inset-block-start:50%;inset-inline-end:24px;transform:translateY(-50%);z-index:200;display:flex;flex-direction:column;gap:12px}
.panel-dot{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.3);padding:0}
.panel-dot.is-active{background:var(--orange);transform:scale(1.3)}

/* ---- Panels: full-screen scroll-snap ---- */
.panels{scroll-snap-type:y mandatory;overflow-y:auto;height:100vh}
.panel{scroll-snap-align:start;min-height:100vh;position:relative;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.panel__inner{max-width:1100px;width:100%;margin:0 auto;text-align:center}
.panel__inner--form{max-width:480px}
.eyebrow{color:var(--orange);font-weight:700;font-size:14px;letter-spacing:.5px}
.panel__title{font-size:clamp(30px,5vw,52px);margin:12px 0 16px;line-height:1.15}
.panel__title--sm{font-size:clamp(26px,4vw,38px)}
.panel__title span{color:var(--orange)}
.panel__lead{color:var(--text-dim);font-size:16px;max-width:520px;margin:0 auto 26px;line-height:1.7}

/* ---- Hero panel ---- */
.panel--hero{padding:0}
.panel__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5)}
.panel__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,.4),rgba(26,26,26,.85))}
.panel--hero .panel__content{position:relative;z-index:2;text-align:center;max-width:640px;padding:0 24px}
.brand__mark{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--orange);color:var(--charcoal);border-radius:12px;font-size:28px;font-weight:700;margin-block-end:20px}
.btn{display:inline-block;padding:15px 34px;font-weight:700;font-size:15px;border-radius:8px}
.btn--orange{background:var(--orange);color:var(--white)}
.btn--block{width:100%}
.scroll-hint{margin-block-start:40px;color:var(--text-dim);font-size:13px;animation:bob 2s infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

/* ---- Schedule ---- */
.table-wrap{overflow-x:auto;margin-block-end:24px}
.schedule-table{width:100%;border-collapse:collapse;background:var(--charcoal-2);border-radius:12px;overflow:hidden}
.schedule-table th,.schedule-table td{padding:14px 16px;text-align:center;font-size:14px;border-block-end:1px solid #333}
.schedule-table th{background:#000;color:var(--orange);font-weight:700}
.schedule-table td:first-child{text-align:start;font-weight:700}
.panel__side-img{border-radius:14px;height:220px;width:100%;object-fit:cover}
.panel__side-img--wide{margin-block-start:30px;height:260px}

/* ---- Pricing ---- */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:start}
.price-card{background:var(--charcoal-2);border-radius:14px;padding:26px;border:1px solid #333}
.price-card.is-featured{border-color:var(--orange);position:relative}
.price-card__badge{position:absolute;inset-block-start:-12px;inset-inline-start:20px;background:var(--orange);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:999px}
.price-card__name{font-size:15px;color:var(--text-dim);margin:0 0 8px}
.price-card__price{font-size:28px;font-weight:700;color:var(--orange);margin:0 0 4px;font-family:'Changa',sans-serif}
.price-card__per{color:var(--text-dim);font-size:13px;margin:0 0 18px}
.price-card__save{color:#4caf50;font-size:12.5px;font-weight:600;margin-block-end:12px}
.price-card ul{list-style:none;padding:0;margin:0;font-size:13.5px;color:var(--text-dim);line-height:2}
.price-card li::before{content:'✓ ';color:var(--orange)}

/* ---- Coaches ---- */
.coach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;text-align:start}
.coach-card{background:var(--charcoal-2);border-radius:14px;overflow:hidden}
.coach-card img{width:100%;aspect-ratio:3/4;object-fit:cover}
.coach-card__body{padding:16px}
.coach-card__name{font-weight:700;margin:0 0 4px;font-size:16px}
.coach-card__role{color:var(--orange);font-size:13px;margin:0 0 8px}
.coach-card__bio{color:var(--text-dim);font-size:13px;line-height:1.6;margin:0}

/* ---- Join form ---- */
#join-form{display:flex;flex-direction:column;gap:14px}
#join-form input,#join-form select{padding:14px 16px;border-radius:8px;border:1px solid #444;background:var(--charcoal-2);color:var(--white);font-size:14px;font-family:inherit}
.form-success{display:none;background:var(--charcoal-2);border-radius:14px;padding:30px;border:1px solid var(--orange)}
.form-success.is-visible{display:block}
.form-success__icon{width:50px;height:50px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 14px}
.form-success p{color:var(--text-dim);font-size:14px;line-height:1.7}
.form-success strong{color:var(--orange);font-size:18px}

/* ---- WhatsApp FAB ---- */
.wa-fab{position:fixed;inset-block-end:24px;inset-inline-end:24px;width:54px;height:54px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.4);z-index:200}

/* ---- Footer (own panel-flow, after last snap section) ---- */
.site-footer{background:#0f0f0f;padding:40px 24px 24px;scroll-snap-align:start}
.footer-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.footer-grid h4{color:var(--orange);font-size:14px;margin:0 0 10px}
.footer-grid p{color:var(--text-dim);font-size:13px;line-height:1.8;margin:0 0 6px}
.tax-line{opacity:.7;font-size:11.5px}
.footer-bottom{text-align:center;color:#666;font-size:12px;margin-block-start:26px;padding-block-start:20px;border-block-start:1px solid #2a2a2a}

/* ---- Responsive ---- */
@media (max-width:1024px){
  .pricing-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;text-align:center}
}
@media (max-width:768px){
  .panel{padding:30px 18px}
  .panel-nav{inset-inline-end:12px}
  .schedule-table th,.schedule-table td{padding:10px 8px;font-size:12.5px}
}
@media (max-width:420px){
  .panel__title{font-size:28px}
  .coach-grid{grid-template-columns:1fr 1fr}
}
