
:root{
  --red:#E10600; --red-deep:#8f0f14; --bg:#0C0C0C; --panel:#151515; --panel2:#1B1B1B;
  --line:#262626; --text:#EDEAE4; --muted:#9C968D;
  --font-display:'Bebas Neue',sans-serif; --font-body:'Barlow',sans-serif;
  --radius:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.7;font-size:16.5px}
img,video{max-width:100%;display:block}
a{color:var(--text);text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:.98;text-transform:uppercase;letter-spacing:1px}
::selection{background:var(--red);color:#fff}
/* language toggle */
body.fr .en{display:none!important}
body.en .fr{display:none!important}
/* ---------- header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,box-shadow .3s;background:linear-gradient(180deg,rgba(0,0,0,.75),transparent)}
.header.scrolled{background:rgba(10,10,10,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.header-inner{max-width:1280px;margin:0 auto;padding:.7rem 1.4rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.7rem}
.brand-logo{width:46px;height:46px;border-radius:50%;background:#fff;padding:2px}
.brand-title{display:block;font-family:var(--font-display);font-size:1.35rem;letter-spacing:2.5px;line-height:1}
.brand-sub{display:block;font-size:.62rem;letter-spacing:3.5px;color:var(--red);font-weight:700;text-transform:uppercase}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:.75rem}
.lang-toggle{background:transparent;border:1.5px solid rgba(255,255,255,.5);color:#fff;font-family:var(--font-display);font-size:.95rem;letter-spacing:2px;padding:.28rem .75rem;border-radius:999px;cursor:pointer;transition:.2s}
.lang-toggle:hover{background:var(--red);border-color:var(--red)}
.burger{display:none;background:none;border:none;cursor:pointer;width:34px;height:26px;position:relative}
.burger span{position:absolute;left:0;width:100%;height:2.5px;background:#fff;border-radius:2px;transition:.25s}
.burger span:nth-child(1){top:2px}.burger span:nth-child(2){top:11.5px}.burger span:nth-child(3){top:21px}
.nav{display:flex;align-items:center;gap:.15rem;flex-basis:100%;flex-wrap:wrap;padding-top:.2rem}
.nav-link{color:#d7d2ca;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;padding:.5rem .7rem;border-radius:6px;transition:.2s;white-space:nowrap}
.nav-link:hover{color:#fff}
.nav-link.active{color:var(--red)}
.nav-cta{margin-left:auto}
.dropdown{position:relative}
.dropdown-menu{position:absolute;top:100%;left:0;background:#121212;border:1px solid var(--line);border-radius:12px;min-width:250px;box-shadow:0 20px 50px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s;padding:.45rem;z-index:50}
.dropdown:hover .dropdown-menu,.dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{display:block;color:#cfc9c1;padding:.55rem .8rem;font-size:.8rem;font-weight:600;letter-spacing:.8px;text-transform:uppercase;border-radius:8px}
.dropdown-menu a:hover,.dropdown-menu a.active{color:#fff;background:var(--red)}
.caret{font-size:.65rem;opacity:.7}
/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--font-display);text-transform:uppercase;letter-spacing:2.5px;padding:.8rem 1.9rem;border-radius:999px;transition:.25s;font-size:1rem;border:1.5px solid transparent;cursor:pointer}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:#fff;color:#0c0c0c;transform:translateY(-2px)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:#fff;color:#0c0c0c}
.btn-sm{padding:.5rem 1.2rem;font-size:.85rem;letter-spacing:2px;margin-top:.7rem}
.nav-cta.btn{padding:.45rem 1.2rem;font-size:.85rem}
/* ---------- video hero ---------- */
.vhero{position:relative;height:100svh;min-height:620px;display:flex;align-items:flex-end;overflow:hidden}
.vhero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vhero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,12,.55) 0%,rgba(12,12,12,.25) 40%,rgba(12,12,12,.92) 100%)}
.vhero-content{position:relative;z-index:2;max-width:1280px;margin:0 auto;width:100%;padding:0 1.4rem 5.5rem}
.kicker{color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:5px;font-size:.85rem}
.vhero h1{font-size:clamp(3.4rem,10vw,8.5rem);margin:.35rem 0 .8rem;text-shadow:0 4px 40px rgba(0,0,0,.5)}
.vhero h1 .accent{color:var(--red)}
.vhero p.lead{max-width:36rem;color:#d8d3cb;font-size:1.1rem;font-weight:400}
.hero-cta{margin-top:1.8rem;display:flex;gap:.9rem;flex-wrap:wrap}
.scroll-cue{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);z-index:2;color:#fff;opacity:.7;font-size:1.4rem;animation:bob 1.8s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,10px)}}
/* ---------- marquee ---------- */
.marquee{background:var(--red);overflow:hidden;padding:.7rem 0;transform:rotate(0deg)}
.marquee-track{display:flex;gap:3rem;white-space:nowrap;animation:scroll 28s linear infinite;width:max-content}
.marquee span{font-family:var(--font-display);font-size:1.5rem;letter-spacing:3px;color:#fff}
.marquee span.o{color:rgba(0,0,0,.45)}
@keyframes scroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none}.scroll-cue{animation:none}}
/* ---------- sections ---------- */
.section{max-width:1280px;margin:0 auto;padding:5rem 1.4rem}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem;flex-wrap:wrap}
.section-title{font-size:clamp(2.4rem,5.5vw,4.2rem)}
.section-title .accent{color:var(--red)}
.section-sub{color:var(--muted);max-width:46rem;font-size:1.02rem}
/* page hero (interior) */
.page-hero{position:relative;padding:10rem 1.4rem 4.5rem;background:
  radial-gradient(60% 80% at 80% 10%,rgba(225,6,0,.18),transparent 60%),
  radial-gradient(40% 60% at 10% 90%,rgba(225,6,0,.08),transparent 60%),var(--bg);
  border-bottom:1px solid var(--line)}
.page-hero-inner{max-width:1280px;margin:0 auto}
.page-hero h1{font-size:clamp(3rem,8vw,6.5rem)}
.page-hero p{color:var(--muted);max-width:44rem;margin-top:.8rem;font-size:1.05rem}
/* ---------- cards ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.3s;display:flex;flex-direction:column}
.card:hover{border-color:var(--red);transform:translateY(-6px)}
.card .imgwrap{overflow:hidden}
.card img{height:260px;width:100%;object-fit:cover;object-position:center top;transition:.5s;filter:saturate(.85)}
.card:hover img{transform:scale(1.06);filter:saturate(1.1)}
.card-body{padding:1.4rem 1.5rem 1.7rem;flex:1;display:flex;flex-direction:column}
.card h3{font-size:1.6rem;margin-bottom:.4rem}
.card .meta{color:var(--red);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:.5rem}
.card p{color:var(--muted);font-size:.94rem}
.card .btn{margin-top:auto;align-self:flex-start;margin-top:1.1rem}
/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.pillar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;position:relative;overflow:hidden;transition:.3s}
.pillar:hover{border-color:var(--red)}
.pillar .num{font-family:var(--font-display);font-size:3.6rem;color:transparent;-webkit-text-stroke:1px var(--red);line-height:1}
.pillar h3{font-size:1.5rem;margin:.6rem 0 .5rem}
.pillar p{font-size:.94rem;color:var(--muted)}
/* stats */
.stat-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat-band .section{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;padding:3rem 1.4rem;text-align:center}
.stat-band h3{font-size:3rem;color:#fff}
.stat-band h3 .accent{color:var(--red)}
.stat-band p{font-size:.78rem;text-transform:uppercase;letter-spacing:2.5px;color:var(--muted)}
/* split */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.split img{border-radius:var(--radius);border:1px solid var(--line)}
.split.reverse{grid-template-columns:.9fr 1.1fr}
.split p{color:#cfc9c1}
/* video feature */
.vfeature{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.vfeature video{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}
.vfeature .tag{position:absolute;top:1rem;left:1rem;background:rgba(12,12,12,.75);backdrop-filter:blur(6px);padding:.35rem .9rem;border-radius:999px;font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,.2)}
/* rules */
.rules{list-style:none;display:grid;gap:.75rem;max-width:56rem}
.rules li{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--red);border-radius:0 12px 12px 0;padding:1rem 1.3rem;font-size:.95rem;color:#d5d0c8}
/* bio */
.bio-list{list-style:none;display:grid;gap:.55rem}
.bio-list li{padding:.65rem 1rem;background:var(--panel2);border:1px solid var(--line);border-radius:10px;font-size:.92rem;color:#d5d0c8}
.bio-list li strong{color:var(--red)}
/* schedule */
.schedule-img{border-radius:var(--radius);border:1px solid var(--line);margin-top:1rem;background:#fff}
/* programs */
.program-card{border-top:6px solid var(--belt,#444)}
.program-card .price{font-family:var(--font-display);font-size:2.1rem;color:#fff;margin:.3rem 0}
.program-card .count{font-size:.8rem;color:var(--muted)}
/* forms */
.form{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem;max-width:780px;margin:0 auto}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:flex;flex-direction:column;gap:.35rem}
.field label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}
.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem;font-family:var(--font-body);font-size:.95rem;background:#101010;color:var(--text)}
.field input:focus,.field textarea:focus{outline:2px solid var(--red);border-color:var(--red)}
.checks{display:grid;gap:.6rem;margin:1.1rem 0}
.checks label{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;color:#cfc9c1}
.checks input{accent-color:var(--red);margin-top:.3rem}
.waiver{background:#101010;border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.3rem;font-size:.82rem;color:var(--muted);max-height:190px;overflow:auto;margin:1.1rem 0}
.form-note{font-size:.8rem;color:var(--muted);margin-top:1.1rem;font-style:italic}
/* CTA band */
.cta-band{position:relative;overflow:hidden;border-top:1px solid var(--line)}
.cta-band .section{text-align:center;padding:5rem 1.4rem}
.cta-band h2{font-size:clamp(2.6rem,7vw,5rem)}
.cta-band h2 .accent{color:var(--red)}
.cta-band p{color:var(--muted);max-width:38rem;margin:.8rem auto 0}
/* empty state */
.empty{background:var(--panel);border:2px dashed var(--line);border-radius:var(--radius);padding:3.4rem 2rem;text-align:center;color:var(--muted);max-width:640px;margin:1.5rem auto}
.empty .osu-mark{font-size:2.8rem}
/* footer */
.footer{background:#0A0A0A;border-top:1px solid var(--line);margin-top:5rem;position:relative;overflow:hidden}
.footer-osu{font-family:var(--font-display);font-size:clamp(6rem,20vw,16rem);line-height:.8;color:transparent;-webkit-text-stroke:1px #1e1e1e;text-align:center;user-select:none;padding-top:2rem}
.footer-grid{max-width:1280px;margin:0 auto;padding:2.5rem 1.4rem 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;color:var(--muted)}
.footer h4{color:#fff;margin-bottom:.5rem;font-size:1.15rem;letter-spacing:2px}
.footer-title{color:#fff;font-size:1.35rem;letter-spacing:2.5px;margin-bottom:.5rem}
.footer a{color:#fff}
.footer a:hover{color:var(--red)}
.footer-bottom{border-top:1px solid var(--line);text-align:center;padding:1.1rem;font-size:.78rem;color:var(--muted)}
/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}
/* ---------- CMS dynamic content ---------- */
.announce{background:linear-gradient(90deg,var(--red),#a50d0f);color:#fff;text-align:center;padding:.85rem 1.2rem;font-weight:600;font-size:.95rem}
.announce a{color:#fff;text-decoration:underline}
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);margin-top:1rem}
.cms-table{width:100%;border-collapse:collapse;background:var(--panel)}
.cms-table th{font-family:var(--font-display);letter-spacing:2px;text-transform:uppercase;background:#101010;color:var(--red);padding:.85rem 1.1rem;text-align:left;font-weight:400;font-size:1.05rem;white-space:nowrap}
.cms-table td{padding:.75rem 1.1rem;border-top:1px solid var(--line);color:#d5d0c8;font-size:.95rem}
.cms-table tr:hover td{background:#181818}
.gcal-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:2rem}
.gcal-wrap iframe{width:100%;height:620px;border:0;display:block;background:#fff}
.cms-desc{color:var(--muted);font-size:.94rem}
.cms-desc p{margin:.3rem 0}
/* weekly calendar */
.week{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:.7rem;margin-top:1.2rem}
.daycol{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem .9rem}
.daycol h4{font-size:1.3rem;letter-spacing:2px;color:#fff;border-bottom:2px solid var(--red);padding-bottom:.45rem;margin-bottom:.75rem}
.slot{border-left:4px solid var(--cat,#777);background:#101010;border-radius:0 10px 10px 0;padding:.6rem .75rem;margin-bottom:.6rem}
.slot .time{font-family:var(--font-display);font-size:1.05rem;letter-spacing:1.5px;color:#fff}
.slot .name{font-size:.85rem;font-weight:600;color:#e8e4de;line-height:1.35;margin-top:.15rem}
.slot .det{font-size:.75rem;color:var(--muted);margin-top:.15rem;line-height:1.35}
.legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.3rem}
.legend .lg{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--muted)}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
/* ---------- responsive ---------- */
@media (max-width:1020px){
  .split,.split.reverse{grid-template-columns:1fr}
  .grid-3,.pillars{grid-template-columns:1fr 1fr}
  .grid-4{grid-template-columns:1fr 1fr}
  .burger{display:block}
  .nav{display:none;flex-direction:column;align-items:stretch;gap:.1rem;padding:.9rem 0;background:rgba(10,10,10,.97);margin:0 -1.4rem;padding-left:1.4rem;padding-right:1.4rem;border-top:1px solid var(--line)}
  .nav.open{display:flex}
  .header{background:rgba(10,10,10,.94)}
  .nav-link{white-space:normal;padding:.65rem .4rem}
  .nav-cta{margin:0.6rem 0 0}
  .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;display:none;box-shadow:none;border:none;border-left:2px solid var(--red);margin:.2rem 0 .2rem 1rem;border-radius:0;background:transparent}
  .dropdown.open .dropdown-menu{display:block}
}
@media (max-width:640px){
  .grid-3,.grid-2,.grid-4,.pillars,.footer-grid,.form-grid,.stat-band .section{grid-template-columns:1fr}
  .vhero{min-height:560px}
  .vhero-content{padding-bottom:4.5rem}
  .brand-title{font-size:1.1rem}
  .section{padding:3.5rem 1.4rem}
}
