/* Tokens */
:root{
  --ink:#0d0e0f; --surface:#15171a; --surface-2:#1c1f22; --line:#2a2d30;
  --chalk:#f2f0ea; --muted:#a7a49c; --dim:#8a8781;
  --red:#d81f2a; --red-deep:#a3141d; --amber:#d9822b;
  --display:'Big Shoulders Display', 'Arial Narrow', sans-serif;
  --body:'Archivo', system-ui, sans-serif;
  --wrap:1180px;
}
*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--ink); color:var(--chalk); font-family:var(--body); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{max-width:100%; display:block;}
a{color:inherit;}
button{font:inherit; color:inherit;}
[hidden]{display:none !important;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{outline:2px solid var(--chalk); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){ *{transition:none !important; scroll-behavior:auto !important;} }

/* Type */
h1,h2,h3{font-family:var(--display); font-weight:800; text-transform:uppercase; line-height:.95; letter-spacing:.01em;}
.label{display:block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
.label.amber{color:var(--amber);}
.h2{font-size:clamp(34px,4.6vw,56px); margin-bottom:18px;}
.h2 em{font-style:normal; color:var(--red);}
.lede{font-size:17px; color:var(--muted); max-width:620px;}
.lede strong{color:var(--chalk); font-weight:700;}
.block{padding:96px 0; border-top:1px solid var(--line);}
.block.alt{background:var(--surface);}
section[id]{scroll-margin-top:72px;}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--body); font-weight:700; font-size:15px; letter-spacing:.02em; text-decoration:none; cursor:pointer; border:1.5px solid transparent; padding:16px 26px; border-radius:2px; transition:background .15s ease, border-color .15s ease, color .15s ease;}
.btn-primary{background:var(--red); color:#fff;}
.btn-primary:hover{background:var(--red-deep);}
.btn-ghost{border-color:#45484c; color:var(--chalk);}
.btn-ghost:hover{border-color:var(--chalk);}
.btn-block{width:100%;}

/* Header */
header{position:fixed; inset:0 0 auto 0; z-index:50; background:rgba(13,14,15,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; height:72px; gap:16px;}
.nav-logo img{height:56px; width:56px;}
.nav-right{display:flex; align-items:center; gap:20px;}
.nav-note{font-size:13px; color:var(--amber); font-weight:700;}
.nav-cta{padding:11px 18px; font-size:14px;}
@media (max-width:640px){ .nav-note{display:none;} }

/* Mobile sticky CTA */
.sticky-cta{position:fixed; inset:auto 0 0 0; z-index:40; display:none; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; background:var(--ink); border-top:1px solid var(--line);}
.sticky-cta .p{font-family:var(--display); font-weight:800; font-size:28px; line-height:1;}
.sticky-cta .p small{display:block; font-family:var(--body); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--amber);}
.sticky-cta .btn{padding:13px 18px;}
@media (max-width:760px){ .sticky-cta{display:flex;} body{padding-bottom:72px;} }

/* Language toggle */
.lang{position:fixed; left:16px; bottom:16px; z-index:60; display:flex; border:1px solid #45484c; background:var(--ink); border-radius:2px; box-shadow:0 8px 24px rgba(0,0,0,.45);}
.lang button{display:flex; align-items:center; gap:8px; border:0; background:none; padding:10px 14px; font-size:13px; font-weight:700; letter-spacing:.04em; color:var(--muted); cursor:pointer;}
.lang button.active{color:var(--chalk); background:var(--surface-2);}
.lang .flag{width:22px; height:15px; display:block; border-radius:1px;}
@media (max-width:760px){ .lang{bottom:82px; left:12px;} .lang button{padding:9px 11px;} }

/* Hero */
.hero{position:relative; padding-top:72px; min-height:min(100vh,920px); display:flex; align-items:stretch;}
.hero-media{position:absolute; top:72px; right:0; bottom:0; width:46%;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:62% 35%;}
.hero-media::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, var(--ink) 0%, rgba(13,14,15,.55) 22%, rgba(13,14,15,0) 55%), linear-gradient(0deg, var(--ink) 0%, rgba(13,14,15,0) 30%);}
.hero-inner{position:relative; z-index:2; width:100%; display:flex; flex-direction:column; justify-content:center; padding-top:64px; padding-bottom:56px;}
.hero-copy{max-width:640px;}
.hero h1{font-size:clamp(46px,7vw,96px); margin-bottom:20px;}
.hero h1 .red{color:var(--red); display:block;}
.hero-tagline{font-size:clamp(19px,2vw,23px); font-weight:500; color:var(--chalk); max-width:620px; margin-bottom:10px; line-height:1.4;}
.hero-sub{font-size:16px; color:var(--muted); max-width:540px; margin-bottom:34px;}
@media (max-width:900px){
  .hero{display:block; min-height:0;}
  .hero-media{position:relative; top:0; width:100%; height:58vw; max-height:420px;}
  .hero-media::after{background:linear-gradient(0deg, var(--ink) 0%, rgba(13,14,15,0) 55%);}
  .hero-inner{padding-top:8px;}
}

/* Signature: matchday fixture strip */
.fixture{display:grid; grid-template-columns:auto 1fr 1fr 1fr; max-width:640px; border:1px solid var(--line); background:var(--surface); margin-bottom:28px;}
.fixture > div{padding:16px 18px; border-left:1px solid var(--line);}
.fixture > div:first-child{border-left:0;}
.fx-date{display:flex; align-items:center; gap:10px; background:var(--red); color:#fff;}
.fx-date b{font-family:var(--display); font-weight:900; font-size:54px; line-height:.8;}
.fx-date span{font-family:var(--display); font-weight:800; font-size:16px; line-height:1.05; text-transform:uppercase; letter-spacing:.04em;}
.fx-k{display:block; font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-bottom:4px;}
.fx-v{font-family:var(--display); font-weight:700; font-size:20px; line-height:1.1; text-transform:uppercase;}
@media (max-width:640px){
  .fixture{grid-template-columns:auto 1fr;}
  .fixture > div:nth-child(3){border-left:0;}
  .fixture > div:nth-child(n+3){border-top:1px solid var(--line);}
  .fx-date{grid-row:span 2;}
}

.buy-row{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.price{display:flex; align-items:baseline; gap:10px;}
.price .now{font-family:var(--display); font-weight:900; font-size:64px; line-height:.9; color:var(--chalk);}
.price .was{font-size:18px; color:var(--dim); text-decoration:line-through;}
.price-meta{font-size:13px; color:var(--muted); line-height:1.4;}
.price-meta b{display:block; color:var(--amber); font-weight:700;}
.cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
.creds{margin-top:40px; padding-top:20px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:8px 28px; font-size:13.5px; color:var(--muted);}
.creds b{color:var(--chalk); font-weight:700;}

/* At a glance */
.glance{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
@media (max-width:900px){ .glance{grid-template-columns:1fr; gap:32px;} }
.glance p{color:var(--muted); font-size:16.5px; margin-bottom:16px;}
.glance p strong{color:var(--chalk);}
.facts{border-top:2px solid var(--chalk);}
.facts div{display:grid; grid-template-columns:110px 1fr; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); font-size:15.5px;}
.facts dt{font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); padding-top:4px;}

/* Included */
.included{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; margin-top:44px; align-items:start;}
@media (max-width:900px){ .included{grid-template-columns:1fr; gap:36px;} }
.feature img{width:100%; height:auto; aspect-ratio:3/2; object-fit:cover;}
.feature-body{padding:24px 0 0;}
.feature h3{font-size:30px; margin-bottom:8px;}
.feature p{color:var(--muted);}
.pill{display:inline-block; margin-top:12px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--amber); border:1px solid var(--amber); padding:4px 10px;}
.checklist{list-style:none; border-top:2px solid var(--chalk);}
.checklist li{display:grid; grid-template-columns:22px 1fr; gap:12px; padding:16px 0; border-bottom:1px solid var(--line);}
.checklist li::before{content:''; width:10px; height:10px; margin-top:8px; background:var(--red);}
.checklist strong{display:block; font-weight:700;}
.checklist span{font-size:14.5px; color:var(--muted);}
.raffles{margin-top:56px; display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line);}
.raffle{padding:28px; border-left:1px solid var(--line);}
.raffle:first-child{border-left:0;}
@media (max-width:700px){ .raffles{grid-template-columns:1fr;} .raffle{border-left:0; border-top:1px solid var(--line);} .raffle:first-child{border-top:0;} }
.raffle h3{font-size:26px; margin:6px 0 8px;}
.raffle p{color:var(--muted); font-size:15px;}

/* Agenda */
.agenda{display:grid; grid-template-columns:1.25fr .75fr; gap:56px; margin-top:44px; align-items:start;}
@media (max-width:900px){ .agenda{grid-template-columns:1fr; gap:36px;} }
.runsheet{border-top:2px solid var(--chalk);}
.run{display:grid; grid-template-columns:96px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); align-items:baseline;}
.run time{font-family:var(--display); font-weight:800; font-size:24px; color:var(--red); font-variant-numeric:tabular-nums;}
.run strong{font-weight:700; font-size:16.5px;}
.run span{display:block; font-size:14px; color:var(--muted);}
.run.after{background:var(--surface-2); padding-left:14px; padding-right:14px; border-bottom:0; margin-top:10px;}
.run.after time{color:var(--amber); font-size:18px;}
.where{margin-top:18px; font-size:14.5px; color:var(--muted);}
.where a{color:var(--chalk);}
.side h4{font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-bottom:10px;}
.side ul{list-style:none; margin-bottom:30px; border-top:1px solid var(--line);}
.side li{padding:10px 0; border-bottom:1px solid var(--line); font-size:15px;}

/* Gallery */
.gallery-wrap{margin-top:40px;}
.gallery{display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:10px; scrollbar-width:thin; scrollbar-color:#45484c transparent;}
.gallery-item{flex:0 0 auto; scroll-snap-align:start; border:0; padding:0; background:none; cursor:zoom-in;}
.gallery-item img{height:300px; width:auto; max-width:320px; object-fit:cover;}
@media (max-width:700px){ .gallery-item img{height:230px;} }
.gallery-hint{margin-top:10px; font-size:12px; color:var(--dim); letter-spacing:.08em; text-transform:uppercase;}
.lightbox{position:fixed; inset:0; z-index:100; background:rgba(8,9,10,.95); display:none; align-items:center; justify-content:center; padding:32px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(92vw,960px); max-height:86vh; object-fit:contain;}
.lightbox-close{position:absolute; top:18px; right:18px; width:44px; height:44px; border:1px solid #45484c; background:var(--ink); color:var(--chalk); font-size:18px; cursor:pointer;}

/* Coach */
.coach{display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; margin-top:44px; align-items:start;}
@media (max-width:900px){ .coach{grid-template-columns:1fr; gap:32px;} }
.coach-photo{position:relative;}
.coach-photo img{width:100%; height:560px; object-fit:cover; object-position:center 20%;}
@media (max-width:700px){ .coach-photo img{height:440px;} }
.coach-photo figcaption{position:absolute; left:0; bottom:0; background:var(--red); color:#fff; padding:12px 16px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;}
.coach-photo figcaption b{display:block; font-family:var(--display); font-size:24px; letter-spacing:.02em;}
.coach-bio p{color:var(--muted); font-size:16.5px; margin-bottom:16px;}
.coach-bio p strong{color:var(--chalk);}
.stat-line{display:flex; align-items:baseline; gap:18px; padding:22px 0; margin:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.stat-line b{font-family:var(--display); font-weight:900; font-size:56px; line-height:.9; color:var(--red);}
.stat-line span{font-size:14.5px; color:var(--muted);}
.stat-line span strong{display:block; color:var(--chalk); font-size:12px; letter-spacing:.12em; text-transform:uppercase;}
.clubs{list-style:none;}
.clubs li{display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:14.5px; color:var(--muted);}
.clubs li b{color:var(--chalk);}

/* Register */
.offer{display:grid; grid-template-columns:1fr 300px; border:1px solid var(--line); background:var(--ink); margin-top:44px;}
@media (max-width:820px){ .offer{grid-template-columns:1fr;} }
.offer-main{padding:34px;}
.offer-main h3{font-size:34px; margin-bottom:6px;}
.offer-sub{font-size:14px; color:var(--muted); margin-bottom:22px;}
.offer-main ul{list-style:none; border-top:1px solid var(--line);}
.offer-main li{padding:11px 0 11px 22px; border-bottom:1px solid var(--line); position:relative; font-size:15px;}
.offer-main li::before{content:''; position:absolute; left:0; top:19px; width:8px; height:8px; background:var(--red);}
.offer-side{padding:34px 28px; background:var(--surface-2); border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:center;}
@media (max-width:820px){ .offer-side{border-left:0; border-top:1px solid var(--line);} }
.offer-side .tag{font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--amber); margin-bottom:6px;}
.offer-side .fine{font-size:13px; color:var(--muted); margin:8px 0 18px;}
/* Order bump: the one warm moment in the checkout area */
.bump{display:grid; grid-template-columns:minmax(260px,380px) 1fr; margin-top:28px; border:2px solid var(--amber); background:linear-gradient(135deg, rgba(217,130,43,.12), rgba(217,130,43,0) 60%), var(--surface);}
@media (max-width:820px){ .bump{grid-template-columns:1fr;} }
.bump-media{position:relative;}
.bump-media img{width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 20%;}
@media (max-width:820px){ .bump-media img{height:auto; max-height:520px;} }
.bump-badge{position:absolute; top:16px; left:16px; background:var(--amber); color:var(--ink); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:6px 10px;}
.bump-body{padding:34px;}
.bump-body h3{font-size:clamp(30px,3.4vw,40px); margin-bottom:14px;}
.bump-body p{color:var(--muted); font-size:15.5px; margin-bottom:12px;}
.bump-body p strong{color:var(--chalk);}
.bump-price{display:flex; align-items:center; gap:16px; margin:22px 0 12px; flex-wrap:wrap;}
.bump-now{font-family:var(--display); font-weight:900; font-size:76px; line-height:.85; color:var(--amber);}
.bump-was{font-family:var(--display); font-weight:700; font-size:30px; color:var(--dim); text-decoration:line-through; text-decoration-thickness:2px;}
.bump-note{font-size:13px; color:var(--muted); line-height:1.4; border-left:1px solid var(--line); padding-left:16px;}
.bump-body .small{font-size:13px; color:var(--dim); margin:0;}

.duo{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-top:20px; padding:26px 34px; border:1px solid var(--line); background:var(--ink);}
.duo h3{font-size:28px; margin-bottom:4px;}
.duo p{color:var(--muted); font-size:15px;}
.duo-right{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.duo-price{display:flex; align-items:baseline; gap:10px;}
.duo-price span{font-family:var(--display); font-weight:900; font-size:52px; line-height:.9;}
.duo-price s{font-size:18px; color:var(--dim);}
.duo-save{background:var(--red); color:#fff; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:6px 10px;}
.secure{display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:22px; font-size:13px; color:var(--dim);}

/* FAQ */
.faq{max-width:840px; margin-top:36px; border-top:2px solid var(--chalk);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 0; background:none; border:0; text-align:left; font-size:17px; font-weight:700; cursor:pointer;}
.faq-q .sign{font-family:var(--display); font-size:26px; line-height:1; color:var(--red); transition:transform .2s ease;}
.faq-item.open .sign{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-item.open .faq-a{max-height:340px;}
.faq-a p{padding-bottom:20px; color:var(--muted); max-width:720px;}

/* Contact */
.contact{display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:40px; align-items:start;}
@media (max-width:900px){ .contact{grid-template-columns:1fr; gap:32px;} }
.contact-info p{color:var(--muted); margin-bottom:22px; max-width:440px;}
.contact-line{padding:14px 0; border-top:1px solid var(--line);}
.contact-line span{display:block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dim);}
.contact-line a{font-family:var(--display); font-weight:700; font-size:22px; text-decoration:none;}
.form{background:var(--ink); border:1px solid var(--line); padding:28px;}
.form .row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:520px){ .form .row{grid-template-columns:1fr; gap:0;} }
.form label{display:block; margin-bottom:14px;}
.form .f{display:block; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); margin-bottom:6px;}
.form input, .form select, .form textarea{width:100%; background:var(--surface-2); border:1px solid var(--line); border-radius:2px; padding:12px 13px; color:var(--chalk); font-family:var(--body); font-size:16px;}
.form input:focus, .form select:focus, .form textarea:focus{border-color:var(--chalk); outline:none;}
.form textarea{min-height:84px; resize:vertical;}

/* Locations */
.locations{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px;}
@media (max-width:800px){ .locations{grid-template-columns:1fr;} }
.loc{position:relative; min-height:250px; overflow:hidden;}
.loc img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.loc::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(13,14,15,.95) 18%, rgba(13,14,15,.05) 100%);}
.loc div{position:absolute; left:20px; right:20px; bottom:18px; z-index:2;}
.loc small{font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}
.loc.near small{color:var(--amber);}
.loc h3{font-size:30px;}
.loc p{font-size:14px; color:var(--muted);}

/* Final + footer */
.final{padding:110px 0; border-top:1px solid var(--line);}
.final h2{font-size:clamp(38px,6vw,76px); max-width:940px; margin-bottom:22px;}
.final h2 em{font-style:normal; color:var(--red);}
.final p{color:var(--muted); max-width:560px; margin-bottom:28px;}
footer{border-top:1px solid var(--line); padding:52px 0 28px; font-size:14px; color:var(--dim);}
.foot{display:grid; grid-template-columns:2fr 1fr 1fr; gap:36px; margin-bottom:36px;}
@media (max-width:700px){ .foot{grid-template-columns:1fr;} }
.foot-brand{display:flex; align-items:center; gap:10px; margin-bottom:12px; color:var(--chalk); font-family:var(--display); font-weight:800; font-size:18px; text-transform:uppercase;}
.foot-brand img{width:32px; height:32px;}
.foot p{margin-bottom:8px;}
.foot h5{font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-bottom:12px;}
.foot a{display:block; text-decoration:none; color:var(--muted); margin-bottom:8px;}
.foot a:hover{color:var(--chalk);}
.foot-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:20px; border-top:1px solid var(--line); font-size:12.5px;}
