*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%}
body{overflow-x:hidden;width:100%;position:relative}
/* Hard stop — nothing can exceed viewport width */
html, body { max-width:100vw; }
section, div, article, aside, header, footer, nav, main {
  max-width:100%;
  min-width:0;
}

:root{
  --black:#080808;
  --black2:#0f0f0f;
  --black3:#161616;
  --black4:#1e1e1e;
  --red:#e8000d;
  --red2:#c0000b;
  --red3:#ff1a24;
  --white:#f0f0f0;
  --white2:#b8b8b8;
  --white3:#666;
}

body{
  background:var(--black);
  color:var(--white);
  font-family:'Rubik',sans-serif;
  overflow-x:hidden;
}

/* ─── SCANLINE OVERLAY ─── */
body::after{
  content:'';
  position:fixed;inset:0;
  pointer-events:none;z-index:9999;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.03) 2px,rgba(0,0,0,0.03) 4px);
}

/* ─── NAV ─── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  height:56px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;
  background:rgba(8,8,8,0.97);
  border-bottom:1px solid rgba(232,0,13,0.3);
}
.nav-logo{
  font-family:'Rubik',sans-serif;
  font-size:1rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white);text-decoration:none;
  display:flex;align-items:center;gap:10px;
}
.nav-logo::before{
  content:'';display:block;
  width:3px;height:22px;background:var(--red);
}
.nav-links{
  display:none;list-style:none;gap:28px;
}
.nav-links a{
  font-family:'Rubik',sans-serif;
  font-size:0.72rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--white3);text-decoration:none;
  transition:color .15s;
}
.nav-links a:hover{color:var(--red)}
@media(min-width:820px){.nav-links{display:flex}}
.nav-cta{
  font-family:'Rubik',sans-serif;
  font-size:0.72rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--white);
  background:var(--red);
  padding:9px 20px;
  text-decoration:none;
  transition:background .15s;
  clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
}
.nav-cta:hover{background:var(--red3)}

/* ─── HERO ─── */
.hero{
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:56px 0 0;
  position:relative;overflow:hidden;
  background:var(--black);
}

/* diagonal grid lines */
.hero::before{
  content:'';position:absolute;inset:0;
  background:
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 60px,
      rgba(232,0,13,0.03) 60px,
      rgba(232,0,13,0.03) 61px
    );
}

.hero-bg-text{
  position:absolute;
  font-family:'Anton',sans-serif;
  font-size:clamp(12rem,30vw,26rem);
  font-weight:900;
  text-transform:uppercase;
  color:rgba(255,255,255,0.025);
  right:-20px;top:50%;
  transform:translateY(-55%);
  line-height:1;
  user-select:none;pointer-events:none;
  letter-spacing:-10px;
  white-space:nowrap;
  overflow:hidden;
  max-width:100%;
}

.hero-content{
  position:relative;
  padding:60px 32px 56px;
  max-width:1100px;
  display:flex;flex-direction:column;gap:0;
}

.hero-eyebrow{
  font-family:'Rubik',sans-serif;
  font-size:0.72rem;font-weight:700;
  letter-spacing:6px;text-transform:uppercase;
  color:var(--red);
  display:flex;align-items:center;gap:12px;
  margin-bottom:16px;
}
.hero-eyebrow::before{
  content:'';display:block;
  width:40px;height:2px;background:var(--red);
}

.hero-h1{
  font-family:'Anton',sans-serif;
  font-size:clamp(4.5rem,14vw,12rem);
  font-weight:400;
  text-transform:uppercase;
  line-height:0.95;
  letter-spacing:2px;
  color:var(--white);
  margin-bottom:4px;
}
.hero-h1 .knockout{
  -webkit-text-stroke:2px var(--white);
  color:transparent;
}
.hero-h1 .red-word{color:var(--red)}

.hero-tagline{
  font-family:'Rubik',sans-serif;
  font-size:clamp(1.1rem,2.5vw,1.8rem);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:6px;
  color:var(--white2);
  margin-top:16px;margin-bottom:40px;
}
.hero-tagline span{color:var(--red)}

.hero-actions{
  display:flex;flex-wrap:wrap;gap:12px;
  margin-bottom:56px;
}
.btn-fight{
  font-family:'Rubik',sans-serif;
  font-size:0.82rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white);background:var(--red);
  padding:16px 36px;
  text-decoration:none;
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  transition:background .15s;
  display:inline-block;
}
.btn-fight:hover{background:var(--red3)}
.btn-ghost{
  font-family:'Rubik',sans-serif;
  font-size:0.85rem;font-weight:700;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--white2);
  background:transparent;
  padding:15px 36px;
  text-decoration:none;
  border:1px solid rgba(255,255,255,0.15);
  transition:border-color .15s,color .15s;
  display:inline-block;
}
.btn-ghost:hover{border-color:rgba(255,255,255,0.4);color:var(--white)}

/* hero stats bar */
.hero-stats{
  display:flex;
  border-top:1px solid rgba(255,255,255,0.06);
}
.hstat{
  flex:1;
  padding:20px 24px;
  border-right:1px solid rgba(255,255,255,0.06);
  position:relative;
}
.hstat:last-child{border-right:none}
.hstat::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:2px;background:transparent;
  transition:background .2s;
}
.hstat:hover::before{background:var(--red)}
.hstat-n{
  font-family:'Anton',sans-serif;
  font-size:clamp(1.6rem,4vw,2.6rem);
  font-weight:900;color:var(--white);
  line-height:1;display:block;
}
.hstat-l{
  font-size:0.65rem;font-weight:600;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white3);margin-top:4px;display:block;
}

/* award badge */
.award-badge{
  position:absolute;top:80px;right:32px;
  text-align:center;
  border:1px solid rgba(232,0,13,0.4);
  padding:14px 18px;
  background:rgba(232,0,13,0.06);
  display:none;
}
@media(min-width:900px){.award-badge{display:block}}
.award-stars{color:var(--red);font-size:0.8rem;letter-spacing:4px;display:block;margin-bottom:6px}
.award-line1{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:900;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white);display:block;
}
.award-line2{
  font-size:0.6rem;letter-spacing:1px;
  color:var(--white3);display:block;margin-top:4px;
}

/* ─── ALERT BAR ─── */
.alert-bar{
  background:var(--red);
  padding:0;
  overflow:hidden;
}
.alert-ticker{
  display:flex;flex-wrap:wrap;
  align-items:stretch;
}
.alert-chunk{
  font-family:'Rubik',sans-serif;
  font-size:0.75rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,0.9);
}
.alert-chunk:last-child{border-right:none}
.alert-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
}
.dot-go{background:#4ade80}
.dot-stop{background:rgba(0,0,0,0.4)}
.alert-chunk a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.4)}

/* ─── SECTION BASE ─── */
.section{padding:80px 24px}
.container{max-width:1100px;margin:0 auto;width:100%}

.s-eyebrow{
  font-family:'Rubik',sans-serif;
  font-size:0.68rem;font-weight:700;
  letter-spacing:5px;text-transform:uppercase;
  color:var(--red);
  display:flex;align-items:center;gap:10px;
  margin-bottom:12px;
}
.s-eyebrow::before{
  content:'';width:24px;height:2px;
  background:var(--red);display:block;flex-shrink:0;
}

.s-heading{
  font-family:'Anton',sans-serif;
  font-size:clamp(2.4rem,5vw,4.8rem);
  font-weight:400;
  text-transform:uppercase;
  line-height:1;
  color:var(--white);
  margin-bottom:48px;
  letter-spacing:2px;
}
.s-heading .dim{
  -webkit-text-stroke:1px rgba(255,255,255,0.15);
  color:transparent;
}

/* ─── PROGRAMS ─── */
.programs{background:var(--black2)}

.prog-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2px;
}
@media(min-width:700px){.prog-grid{grid-template-columns:repeat(3,1fr)}}

.prog-card{
  background:var(--black3);
  padding:40px 32px;
  position:relative;overflow:hidden;
  border-top:3px solid var(--black4);
  transition:border-color .2s,background .2s;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;
}
.prog-card:hover{border-top-color:var(--red);background:var(--black4)}
.prog-card::after{
  content:attr(data-num);
  position:absolute;right:-8px;top:-16px;
  font-family:'Anton',sans-serif;
  font-size:7rem;font-weight:900;
  color:rgba(255,255,255,0.025);
  line-height:1;user-select:none;
}
.prog-num{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:900;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--red);margin-bottom:20px;
}
.prog-title{
  font-family:'Anton',sans-serif;
  font-size:2rem;font-weight:900;
  text-transform:uppercase;
  color:var(--white);line-height:1;
  margin-bottom:14px;
}
.prog-ages{
  font-family:'Rubik',sans-serif;
  font-size:0.7rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--red);
  background:rgba(232,0,13,0.1);
  display:inline-block;padding:4px 12px;
  margin-bottom:16px;
}
.prog-desc{
  font-size:0.9rem;font-weight:400;
  color:var(--white2);line-height:1.75;
  flex-grow:1;margin-bottom:24px;
}
.prog-status{
  font-family:'Rubik',sans-serif;
  font-size:0.68rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  margin-bottom:20px;
}
.status-open{color:#4ade80}
.status-full{color:#f87171}
.prog-link{
  font-family:'Rubik',sans-serif;
  font-size:0.72rem;font-weight:900;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white3);
  display:flex;align-items:center;gap:8px;
  transition:color .15s,gap .15s;
}
.prog-card:hover .prog-link{color:var(--red);gap:14px}

/* ─── SCHEDULE ─── */
.schedule{background:var(--black)}

.sched-layout{
  display:grid;grid-template-columns:1fr;gap:2px;
}
@media(min-width:820px){.sched-layout{grid-template-columns:1fr 1fr}}

.sched-block{
  background:var(--black3);
  border-left:3px solid var(--red);
  padding:32px 28px;
}
.sched-name{
  font-family:'Rubik',sans-serif;
  font-size:1.1rem;font-weight:900;
  text-transform:uppercase;letter-spacing:1px;
  color:var(--white);margin-bottom:16px;
}
.sched-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,0.05);
  font-size:0.88rem;
}
.sched-row:last-of-type{border-bottom:none}
.sched-days{font-weight:700;color:var(--red)}
.sched-time{font-weight:300;color:var(--white2);letter-spacing:1px}
.sched-note{
  margin-top:12px;
  font-size:0.72rem;font-weight:400;
  color:var(--white3);
}

/* ─── INSTRUCTOR ─── */
.instructor{
  background:var(--black2);
  position:relative;overflow:hidden;
}
.instructor::before{
  content:'師';
  position:absolute;right:-30px;top:50%;
  transform:translateY(-50%);
  font-size:28rem;font-weight:900;
  color:rgba(255,255,255,0.015);
  font-family:'Anton',sans-serif;
  user-select:none;pointer-events:none;
  line-height:1;
}

.inst-layout{
  display:grid;grid-template-columns:1fr;gap:56px;
}
@media(min-width:860px){.inst-layout{grid-template-columns:1fr 1fr;align-items:start}}

.inst-body{
  font-size:0.95rem;font-weight:400;
  color:var(--white2);line-height:1.85;
  margin-bottom:20px;
  border-left:2px solid rgba(232,0,13,0.3);
  padding-left:16px;
}

.cred-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
  margin-top:32px;
}
.cred-cell{
  background:var(--black3);
  padding:20px 18px;
  border-top:2px solid transparent;
  transition:border-color .15s;
}
.cred-cell:hover{border-top-color:var(--red)}
.cred-label{
  font-family:'Rubik',sans-serif;
  font-size:0.62rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--red);margin-bottom:6px;
}
.cred-val{
  font-size:0.83rem;font-weight:400;
  color:var(--white2);line-height:1.5;
}

.inst-bigstats{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
  margin-bottom:2px;
}
.inst-bigstat{
  background:var(--black3);
  padding:36px 28px;
  position:relative;overflow:hidden;
}
.inst-bigstat:first-child{background:var(--red)}
.inst-bigstat::after{
  content:attr(data-n);
  position:absolute;right:-10px;bottom:-20px;
  font-family:'Anton',sans-serif;
  font-size:5rem;font-weight:900;
  color:rgba(255,255,255,0.06);
  user-select:none;line-height:1;
}
.ibs-n{
  font-family:'Anton',sans-serif;
  font-size:3rem;font-weight:900;
  color:var(--white);line-height:1;
}
.ibs-l{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,0.5);margin-top:6px;
}

.inst-quote{
  background:var(--black3);
  padding:28px 28px;
  border-left:3px solid var(--red);
}
.inst-quote p{
  font-family:'Rubik',sans-serif;
  font-size:1.05rem;font-weight:400;
  color:var(--white2);line-height:1.6;
}
.inst-quote cite{
  font-family:'Rubik',sans-serif;
  font-size:0.62rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--red);margin-top:10px;font-style:normal;
}

/* ─── WHY ─── */
.why{background:var(--black)}

.why-grid{
  display:grid;grid-template-columns:1fr;gap:2px;
}
@media(min-width:600px){.why-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.why-grid{grid-template-columns:repeat(3,1fr)}}

.why-item{
  background:var(--black3);
  padding:32px 28px;
  border-top:2px solid transparent;
  transition:border-top-color .15s,background .15s;
  position:relative;overflow:hidden;
}
.why-item:hover{border-top-color:var(--red);background:var(--black4)}
.why-n{
  font-family:'Anton',sans-serif;
  font-size:4rem;font-weight:900;
  color:rgba(255,255,255,0.04);
  line-height:1;margin-bottom:8px;
}
.why-t{
  font-family:'Rubik',sans-serif;
  font-size:1rem;font-weight:900;
  text-transform:uppercase;letter-spacing:1px;
  color:var(--white);margin-bottom:10px;
}
.why-d{
  font-size:0.87rem;font-weight:400;
  color:var(--white3);line-height:1.75;
}

/* ─── LOCATION ─── */
.location{background:var(--black2)}

.loc-layout{
  display:grid;grid-template-columns:1fr;gap:40px;
}
@media(min-width:820px){.loc-layout{grid-template-columns:1fr 1fr;align-items:start}}

.loc-item{margin-bottom:28px}
.loc-label{
  font-family:'Rubik',sans-serif;
  font-size:0.62rem;font-weight:700;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--red);margin-bottom:6px;
}
.loc-val{
  font-size:0.95rem;font-weight:500;color:var(--white);line-height:1.5;
}
.loc-sub{font-size:0.83rem;font-weight:300;color:var(--white3);margin-top:2px;line-height:1.6}

.loc-box{
  background:var(--black3);
  padding:48px 32px;
  text-align:center;
  border:1px solid rgba(255,255,255,0.05);
  position:relative;overflow:hidden;
}
.loc-box::before{
  content:'';
  position:absolute;inset:0;
  background:repeating-linear-gradient(
    -45deg,transparent,transparent 20px,
    rgba(232,0,13,0.02) 20px,rgba(232,0,13,0.02) 21px
  );
}
.loc-box-inner{position:relative}
.loc-pin{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:700;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--red);margin-bottom:8px;display:block;
}
.loc-addr{
  font-family:'Anton',sans-serif;
  font-size:1.5rem;font-weight:900;
  text-transform:uppercase;color:var(--white);
  line-height:1.2;margin-bottom:4px;
}
.loc-city{
  font-size:0.82rem;font-weight:300;
  color:var(--white3);margin-bottom:28px;
}
.btn-maps{
  font-family:'Rubik',sans-serif;
  font-size:0.72rem;font-weight:900;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white);background:var(--red);
  padding:12px 28px;text-decoration:none;
  clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
  transition:background .15s;
}
.btn-maps:hover{background:var(--red3)}

/* ─── ENROLL / FAQ ─── */
.enroll{background:var(--black2);padding:80px 32px}
.enroll-layout{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:48px;
}
@media(min-width:860px){.enroll-layout{grid-template-columns:1.1fr 1fr;align-items:start}}
.faq-list{display:flex;flex-direction:column;gap:2px}
.faq-item{background:var(--black3);border-left:3px solid transparent;transition:border-color .2s}
.faq-item.open{border-left-color:var(--red)}
.faq-q{
  width:100%;background:none;border:none;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 24px;cursor:pointer;text-align:left;
}
.faq-q-text{
  font-family:'Rubik',sans-serif;
  font-size:0.95rem;font-weight:600;
  color:var(--white);line-height:1.4;
}
.faq-icon{
  width:26px;height:26px;flex-shrink:0;
  border:1px solid rgba(255,255,255,0.15);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;line-height:1;color:var(--red);
  transition:transform .2s,background .2s,border-color .2s;
}
.faq-item.open .faq-icon{transform:rotate(45deg);background:var(--red);border-color:var(--red);color:#fff}
.faq-a{
  display:none;
  padding:0 24px 20px;
  border-top:1px solid rgba(255,255,255,0.05);
  padding-top:14px;
  font-size:0.88rem;font-weight:400;
  color:var(--white3);line-height:1.8;
}
.faq-item.open .faq-a{display:block}
.faq-highlight{color:var(--white2);font-weight:600}
.enroll-cta{display:flex;flex-direction:column;gap:2px}
.enroll-top{
  background:var(--red);padding:40px 36px;
  position:relative;overflow:hidden;
}
.enroll-top::before{
  content:'READY?';
  position:absolute;right:-12px;top:-16px;
  font-family:'Anton',sans-serif;font-size:6rem;
  color:rgba(0,0,0,0.12);user-select:none;pointer-events:none;line-height:1;
}
.enroll-top-inner{position:relative}
.enroll-label{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:700;
  letter-spacing:4px;text-transform:uppercase;
  color:rgba(255,255,255,0.6);margin-bottom:8px;display:block;
}
.enroll-top h3{
  font-family:'Anton',sans-serif;
  font-size:2.8rem;letter-spacing:2px;text-transform:uppercase;
  color:#fff;line-height:1;margin-bottom:12px;
}
.enroll-top p{font-size:0.88rem;font-weight:400;color:rgba(255,255,255,0.75);line-height:1.7;margin-bottom:20px}
.enroll-phone{
  display:block;font-family:'Anton',sans-serif;
  font-size:2rem;letter-spacing:2px;
  color:#fff;text-decoration:none;transition:opacity .15s;
}
.enroll-phone:hover{opacity:0.85}
.enroll-btns{display:flex;flex-direction:column;gap:8px;margin-top:20px}
.btn-enroll-white{
  display:block;text-align:center;
  font-family:'Rubik',sans-serif;font-size:0.78rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--red);background:#fff;padding:14px 24px;text-decoration:none;
  clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
  transition:background .15s;
}
.btn-enroll-white:hover{background:rgba(255,255,255,0.88)}
.btn-enroll-outline{
  display:block;text-align:center;
  font-family:'Rubik',sans-serif;font-size:0.78rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,0.7);background:transparent;
  padding:13px 24px;text-decoration:none;
  border:1px solid rgba(255,255,255,0.3);transition:border-color .15s,color .15s;
}
.btn-enroll-outline:hover{border-color:#fff;color:#fff}
.enroll-details{background:var(--black3);padding:28px 36px;display:flex;flex-direction:column;gap:0}
.enroll-detail-row{
  display:flex;gap:14px;align-items:flex-start;
  padding:16px 0;border-bottom:1px solid rgba(255,255,255,0.05);
}
.enroll-detail-row:last-child{border-bottom:none}
.edr-icon{
  width:32px;height:32px;flex-shrink:0;
  background:rgba(232,0,13,0.1);border:1px solid rgba(232,0,13,0.2);
  display:flex;align-items:center;justify-content:center;font-size:0.85rem;
}
.edr-label{
  font-family:'Rubik',sans-serif;font-size:0.62rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;color:var(--red);margin-bottom:3px;
}
.edr-val{font-size:0.88rem;font-weight:400;color:var(--white2);line-height:1.5}
.edr-sub{font-size:0.78rem;color:var(--white3);margin-top:2px}

/* ─── FOOTER ─── */
footer{
  background:#030303;
  padding:48px 32px 24px;
  border-top:1px solid rgba(232,0,13,0.2);
}
.footer-inner{
  max-width:1100px;margin:0 auto;
  display:flex;flex-wrap:wrap;gap:32px;
  justify-content:space-between;align-items:flex-start;
  border-bottom:1px solid rgba(255,255,255,0.05);
  padding-bottom:32px;margin-bottom:24px;
}
.footer-logo{
  font-family:'Rubik',sans-serif;
  font-size:1.4rem;font-weight:900;
  text-transform:uppercase;letter-spacing:3px;
  color:var(--white);display:flex;align-items:center;gap:10px;
}
.footer-logo::before{
  content:'';width:3px;height:26px;background:var(--red);display:block;
}
.footer-sub{
  font-size:0.68rem;font-weight:400;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--white3);margin-top:4px;
}
.footer-nav{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-nav a{
  font-family:'Rubik',sans-serif;
  font-size:0.75rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white3);text-decoration:none;
  transition:color .15s;
}
.footer-nav a:hover{color:var(--red)}
.footer-contact a{
  display:block;
  font-size:0.83rem;font-weight:400;
  color:var(--white3);text-decoration:none;
  transition:color .15s;
  margin-bottom:6px;
}
.footer-contact a:hover{color:var(--white)}
.footer-copy{
  max-width:1100px;margin:0 auto;
  font-size:0.68rem;letter-spacing:1px;
  color:rgba(255,255,255,0.12);text-align:center;
}

/* ─── MOBILE STICKY ─── */
.mobile-bar{display:none}

/* ─── DIVIDER ─── */
.slash-divider{
  height:3px;background:var(--red);
  clip-path:polygon(0 0,calc(100% - 20px) 0,100% 100%,20px 100%);
}

/* ─── ABOUT ─── */
.about{background:var(--black2)}

.about-layout{
  display:grid;grid-template-columns:1fr;gap:56px;
  width:100%;overflow:hidden;
}
@media(min-width:860px){.about-layout{grid-template-columns:1fr 1fr;align-items:start}}

.about-lead{
  font-size:1.05rem;font-weight:400;
  color:var(--white2);line-height:1.85;
  margin-bottom:24px;
}
.about-body{
  font-size:0.9rem;font-weight:400;
  color:var(--white3);line-height:1.85;
  margin-bottom:20px;
}
.about-highlight{
  background:var(--black3);
  border-left:3px solid var(--red);
  padding:20px 24px;
  margin:28px 0;
}
.about-highlight p{
  font-size:0.9rem;font-weight:500;
  color:var(--white2);line-height:1.7;
}
.about-highlight strong{color:var(--white)}

/* Lineage chart */
.lineage{
  background:var(--black3);
  padding:32px 28px;
  margin-bottom:2px;
}
.lineage-title{
  font-family:'Rubik',sans-serif;
  font-size:1rem;letter-spacing:4px;
  color:var(--red);margin-bottom:24px;
  text-transform:uppercase;
}
.lineage-tree{
  display:flex;flex-direction:column;gap:0;
}
.lin-row{
  display:flex;align-items:center;gap:0;
  position:relative;
}
.lin-name{
  font-family:'Rubik',sans-serif;
  font-size:1rem;letter-spacing:2px;
  color:var(--white);
  background:var(--black4);
  padding:10px 16px;
  white-space:normal;
  word-break:break-word;
  border:1px solid rgba(255,255,255,0.06);
  position:relative;z-index:1;
  max-width:100%;
}
.lin-name.founder{
  border-color:rgba(232,0,13,0.4);
  color:var(--red);
}
.lin-name.hanshi{
  border-color:rgba(232,0,13,0.6);
  background:var(--red);
  color:#fff;
}
.lin-arrow{
  font-size:0.75rem;color:var(--red);
  padding:0 8px;flex-shrink:0;
}
.lin-note{
  font-size:0.68rem;font-weight:500;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--white3);
  padding:0 12px;
}
.lin-branch{
  display:flex;flex-direction:column;gap:8px;
  margin:8px 0 8px 24px;
  padding-left:16px;
  border-left:2px solid rgba(232,0,13,0.25);
}
.lin-sub{
  display:flex;align-items:center;gap:8px;
}

/* Price callout */
.price-box{
  background:var(--black3);
  padding:32px 28px;
  border-top:3px solid var(--red);
  margin-top:2px;
}
.price-label{
  font-family:'Rubik',sans-serif;
  font-size:0.75rem;letter-spacing:5px;
  text-transform:uppercase;color:var(--red);
  margin-bottom:10px;display:block;
}
.price-amount{
  font-family:'Anton',sans-serif;
  font-size:3.5rem;letter-spacing:2px;
  color:var(--white);line-height:1;
}
.price-period{
  font-size:0.85rem;font-weight:400;
  color:var(--white3);margin-left:4px;
}
.price-includes{
  margin-top:16px;
  font-size:0.85rem;font-weight:400;
  color:var(--white2);line-height:1.7;
}
.price-includes li{
  list-style:none;padding:5px 0;
  border-bottom:1px solid rgba(255,255,255,0.05);
  display:flex;align-items:center;gap:8px;
}
.price-includes li::before{
  content:'';display:block;
  width:6px;height:6px;border-radius:50%;
  background:var(--red);flex-shrink:0;
}
.price-includes li:last-child{border-bottom:none}

/* About program tabs */
.about-progs{
  display:flex;flex-direction:column;gap:2px;
  margin-top:32px;
  width:100%;overflow:hidden;
}
.about-prog{
  background:var(--black3);
  padding:28px 28px;
  border-left:3px solid var(--black4);
  transition:border-color .15s;
  width:100%;overflow:hidden;
}
.about-prog:hover{border-left-color:var(--red)}
.ap-title{
  font-family:'Anton',sans-serif;
  font-size:1.3rem;letter-spacing:1px;
  text-transform:uppercase;
  color:var(--white);margin-bottom:6px;
  word-break:break-word;
}
.ap-ages{
  display:inline-block;
  font-size:0.62rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--red);
  background:rgba(232,0,13,0.1);
  padding:3px 10px;margin-bottom:12px;
}
.ap-body{
  font-size:0.88rem;font-weight:400;
  color:var(--white3);line-height:1.75;
  word-break:break-word;overflow-wrap:break-word;
}

/* ─── INSTRUCTORS ─── */
.instructors{background:var(--black)}

.staff-intro{
  display:grid;grid-template-columns:1fr;gap:40px;
  margin-bottom:56px;
  padding:36px 32px;
  background:var(--black3);
  border-left:3px solid var(--red);
}
@media(min-width:700px){.staff-intro{grid-template-columns:1fr 1fr 1fr}}
.si-stat{text-align:left}
.si-n{
  font-family:'Anton',sans-serif;
  font-size:3rem;letter-spacing:2px;
  color:var(--white);line-height:1;
}
.si-l{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:600;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white3);margin-top:4px;
}

.staff-grid{
  display:grid;grid-template-columns:1fr;gap:2px;
  margin-bottom:48px;
}
@media(min-width:600px){.staff-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.staff-grid{grid-template-columns:repeat(3,1fr)}}

.staff-card{
  background:var(--black3);
  padding:36px 28px;
  border-top:3px solid var(--black4);
  transition:border-top-color .2s,background .2s;
  position:relative;overflow:hidden;
}
.staff-card:hover{border-top-color:var(--red);background:var(--black4)}
.staff-card.featured{
  border-top-color:var(--red);
  background:var(--black2);
}
.staff-rank-badge{
  display:inline-block;
  font-family:'Rubik',sans-serif;
  font-size:0.6rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--red);
  background:rgba(232,0,13,0.1);
  padding:4px 12px;
  margin-bottom:14px;
}
.staff-card.featured .staff-rank-badge{
  background:var(--red);color:#fff;
}
.staff-name{
  font-family:'Anton',sans-serif;
  font-size:1.5rem;letter-spacing:2px;
  text-transform:uppercase;
  color:var(--white);line-height:1.05;
  margin-bottom:4px;
}
.staff-title{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:700;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--white3);
  margin-bottom:16px;
}
.staff-nickname{
  font-family:'Rubik',sans-serif;
  font-size:0.72rem;font-weight:500;
  color:var(--red);
  font-style:italic;
  margin-bottom:14px;
  display:block;
}
.staff-belt{
  font-family:'Rubik',sans-serif;
  font-size:0.7rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--white2);
  margin-bottom:14px;
  padding:6px 12px;
  background:var(--black4);
  display:inline-block;
  border-left:2px solid var(--red);
}
.staff-bio{
  font-size:0.85rem;font-weight:400;
  color:var(--white3);line-height:1.75;
}

/* Part-time section */
.parttime-heading{
  font-family:'Anton',sans-serif;
  font-size:1.4rem;letter-spacing:3px;
  text-transform:uppercase;color:var(--white);
  margin-bottom:20px;
  display:flex;align-items:center;gap:14px;
}
.parttime-heading::after{
  content:'';flex:1;height:1px;
  background:rgba(255,255,255,0.08);
}
.parttime-grid{
  display:grid;grid-template-columns:1fr;gap:2px;
}
@media(min-width:700px){.parttime-grid{grid-template-columns:1fr 1fr}}

.pt-card{
  background:var(--black3);
  padding:24px 24px;
  display:flex;gap:16px;align-items:flex-start;
  border-top:2px solid transparent;
  transition:border-color .15s;
}
.pt-card:hover{border-top-color:var(--red)}
.pt-initial{
  width:44px;height:44px;flex-shrink:0;
  background:rgba(232,0,13,0.12);
  border:1px solid rgba(232,0,13,0.25);
  display:flex;align-items:center;justify-content:center;
  font-family:'Anton',sans-serif;
  font-size:1.1rem;letter-spacing:1px;
  color:var(--red);
}
.pt-name{
  font-family:'Anton',sans-serif;
  font-size:1rem;letter-spacing:2px;
  text-transform:uppercase;color:var(--white);
  margin-bottom:2px;
}
.pt-rank{
  font-family:'Rubik',sans-serif;
  font-size:0.65rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--red);margin-bottom:6px;
}
.pt-bio{
  font-size:0.82rem;font-weight:400;
  color:var(--white3);line-height:1.65;
}

/* ─── ANIMATIONS ─── */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
.hero-eyebrow{animation:fadeUp .5s ease both}
.hero-h1{animation:fadeUp .6s .1s ease both}
.hero-tagline{animation:fadeUp .6s .2s ease both}
.hero-actions{animation:fadeUp .6s .3s ease both}

/* ═══════════════════════════════════════
   MOBILE OVERRIDES  (max-width: 640px)
   ═══════════════════════════════════════ */
@media(max-width:640px){

  /* Universal text + box overflow prevention */
  p,h1,h2,h3,h4,div,span,li,a { word-break:break-word; overflow-wrap:break-word; }

  /* Remove clip-paths that cause side scroll */
  .nav-cta,.btn-fight,.btn-ghost,.btn-enroll-white,.btn-enroll-outline,.btn-maps,.slash-divider { clip-path:none !important; }
  .slash-divider { height:2px; background:var(--red); }

  /* Nav */
  .nav-cta { display:none; }
  .nav-logo { font-size:0.85rem; letter-spacing:2px; }

  /* All sections: 16px sides only */
  .section,.enroll,.about { padding:48px 16px !important; }
  .hero-content { padding:32px 16px 36px; }
  .container { padding:0; width:100%; }

  /* Hero */
  .hero-bg-text { display:none; }
  .hero-eyebrow { font-size:0.6rem; letter-spacing:2px; }
  .hero-h1 { font-size:clamp(2.8rem,14vw,4.5rem); letter-spacing:0px; }
  .hero-tagline { font-size:0.88rem; letter-spacing:2px; margin-bottom:24px; }
  .hero-actions { flex-direction:column; gap:8px; }
  .btn-fight,.btn-ghost { padding:14px 20px; font-size:0.75rem; letter-spacing:2px; width:100%; text-align:center; display:block; }

  /* Stats bar — 2 col grid */
  .hero-stats { display:grid; grid-template-columns:1fr 1fr; }
  .hstat { padding:14px 10px; }
  .hstat-n { font-size:1.4rem; }
  .hstat-l { font-size:0.52rem; letter-spacing:1px; }

  /* Alert bar */
  .alert-ticker { flex-direction:column; }
  .alert-chunk { border-right:none; border-bottom:1px solid rgba(255,255,255,0.1); padding:9px 16px; font-size:0.65rem; }
  .alert-chunk:last-child { border-bottom:none; }

  /* Headings */
  .s-heading { font-size:1.9rem; margin-bottom:24px; letter-spacing:1px; }
  .s-eyebrow { font-size:0.58rem; }

  /* Program cards */
  .prog-card { padding:22px 16px; }
  .prog-title { font-size:1.4rem; }

  /* Schedule */
  .sched-block { padding:18px 14px; }
  .sched-row { font-size:0.8rem; }
  .sched-name { font-size:0.95rem; }

  /* Instructor */
  .inst-layout { gap:32px; }
  .inst-bigstats { grid-template-columns:1fr 1fr; }
  .inst-bigstat { padding:18px 14px; }
  .ibs-n { font-size:1.8rem; }
  .cred-grid { grid-template-columns:1fr; }
  .inst-body { font-size:0.87rem; }
  .inst-quote { padding:18px 16px; }

  /* Instructors */
  .staff-intro { grid-template-columns:1fr 1fr; gap:12px; padding:18px 14px; }
  .si-n { font-size:1.8rem; }
  .staff-card { padding:20px 14px; }
  .staff-name { font-size:1.1rem; }
  .pt-card { padding:14px 12px; }
  .pt-initial { width:36px; height:36px; font-size:0.9rem; }

  /* Why */
  .why-item { padding:20px 14px; }
  .why-n { font-size:2.5rem; }

  /* Location */
  .loc-box { padding:28px 16px; }
  .loc-addr { font-size:1rem; }

  /* About */
  .about-layout { grid-template-columns:1fr; }
  .lineage { padding:18px 14px; }
  .lin-name { font-size:0.78rem; padding:6px 9px; }
  .lin-branch { margin-left:10px; padding-left:8px; }
  .lin-note { font-size:0.6rem; padding:0 6px; }
  .price-box { padding:20px 16px; }
  .price-amount { font-size:2.2rem; }
  .about-prog { padding:18px 14px; }
  .about-highlight { padding:14px; }

  /* Enroll / FAQ */
  .enroll-layout { grid-template-columns:1fr; }
  .faq-q { padding:14px 14px; }
  .faq-q-text { font-size:0.85rem; }
  .faq-a { padding:10px 14px 14px; font-size:0.82rem; }
  .enroll-top { padding:26px 18px; }
  .enroll-top h3 { font-size:1.9rem; }
  .enroll-phone { font-size:1.4rem; }
  .enroll-details { padding:18px 16px; }
  .btn-enroll-white,.btn-enroll-outline { padding:13px 18px; font-size:0.75rem; }

  /* Footer */
  .footer-inner { flex-direction:column; gap:20px; }
  footer { padding:32px 16px 24px; }

  /* Reduce ALL letter-spacing on mobile — main cause of text overflow */
  [class*="eyebrow"], .s-eyebrow, .hero-eyebrow,
  .prog-num, .prog-ages, .prog-status, .prog-link,
  .sched-name, .cred-label, .ibs-l,
  .inst-quote cite, .why-t, .loc-label, .loc-pin,
  .btn-fight, .btn-ghost, .btn-maps,
  .btn-enroll-white, .btn-enroll-outline,
  .nav-cta, .nav-logo, .nav-links a,
  .staff-rank-badge, .staff-title, .staff-belt,
  .pt-rank, .price-label, .ap-ages,
  .alert-chunk, .award-line1, .hstat-l,
  .footer-nav a, .footer-logo, .mob-btn,
  .lineage-title, .enroll-label, .edr-label,
  .parttime-heading, .si-l {
    letter-spacing:1px !important;
  }
  /* Headings with Anton need tighter spacing too */
  .ap-title, .staff-name, .prog-title, .sched-name,
  .why-t, .inst-quote p, .loc-addr, .enroll-top h3,
  .ibs-n, .si-n, .price-amount, .s-heading, .hero-h1 {
    letter-spacing:0px !important;
  }
}

/* ═══════════════════════════════════════
   SMALL-MEDIUM  (641px – 767px)
   ═══════════════════════════════════════ */
@media(min-width:641px) and (max-width:767px){
  .nav-cta { font-size:0.68rem; padding:8px 14px; }
  .section { padding:64px 28px; }
  .enroll { padding:64px 28px; }
  .hero-content { padding:48px 28px 48px; }
  .hero-h1 { font-size:clamp(3.5rem,13vw,6rem); }
  .hero-stats { display:grid; grid-template-columns:1fr 1fr; }
  .hstat { padding:18px 20px; }
  .staff-intro { grid-template-columns:1fr; gap:20px; }
  .cred-grid { grid-template-columns:1fr; }
}

/* ─── HAMBURGER + MOBILE DRAWER ─── */
.nav-hamburger{
  display:none;
  flex-direction:column;justify-content:center;gap:5px;
  width:36px;height:36px;
  background:none;border:none;cursor:pointer;padding:4px;
}
.nav-hamburger span{
  display:block;width:22px;height:2px;
  background:var(--white);border-radius:2px;
  transition:transform .2s,opacity .2s;
}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:819px){.nav-hamburger{display:flex}}

.mobile-menu{
  display:none;
  position:fixed;top:56px;left:0;right:0;bottom:0;
  background:rgba(8,8,8,0.98);
  z-index:490;
  overflow-y:auto;
  padding:24px 0 100px;
}
.mobile-menu.open{display:block}
.mobile-menu ul{list-style:none}
.mobile-menu li{border-bottom:1px solid rgba(255,255,255,0.05)}
.mobile-menu a{
  display:block;padding:18px 28px;
  font-family:'Rubik',sans-serif;
  font-size:1rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--white2);text-decoration:none;
  transition:color .15s,padding-left .15s;
}
.mobile-menu a:hover{color:var(--white);padding-left:36px}
.mobile-menu .menu-call{
  color:var(--red);font-size:1.1rem;
  border-top:2px solid rgba(232,0,13,0.3);
  margin-top:8px;
}