@font-face { font-family:'DM Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('assets/fonts/dm-mono-400.ttf') format('truetype'); }
@font-face { font-family:'DM Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('assets/fonts/dm-mono-500.ttf') format('truetype'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:400; font-display:swap; src:url('assets/fonts/manrope-400.ttf') format('truetype'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:500; font-display:swap; src:url('assets/fonts/manrope-500.ttf') format('truetype'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:600; font-display:swap; src:url('assets/fonts/manrope-600.ttf') format('truetype'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:700; font-display:swap; src:url('assets/fonts/manrope-700.ttf') format('truetype'); }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:800; font-display:swap; src:url('assets/fonts/manrope-800.ttf') format('truetype'); }
:root { --bg:#f1f0ec; --surface:#e7e6e1; --text:#1b1c19; --muted:#6a6d69; --line:#d1d0ca; --accent:#36545a; --accent-2:#617c80; --display:'Manrope',sans-serif; --body:'Manrope',sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--body); }
a { color:inherit; text-decoration:none; }
.site-shell { max-width:1440px; margin:auto; padding:0 5vw; overflow:hidden; }
.site-header { min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); }
.brand img { width:92px; height:92px; object-fit:contain; filter:invert(1); }
.nav-links { display:flex; gap:32px; color:var(--muted); font-size:13px; }
.nav-links a:hover,.text-link:hover { color:var(--accent); }
.hero-actions { display:flex; align-items:center; gap:20px; }
.button { display:inline-flex; align-items:center; gap:28px; background:var(--accent); color:#f1eee7; padding:16px 20px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; transition:transform .2s; }
.button:hover { transform:translateY(-3px); }
.button-small { padding:12px 15px; gap:10px; }
.eyebrow,.section-kicker { color:var(--accent); font:500 11px 'DM Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.hero { min-height:calc(100vh - 96px); display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:7vw; padding:7vh 0; }
.hero-copy { max-width:620px; }
.hero h1 { margin-top:0; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--display); }
h1 { font-size:clamp(57px,7.2vw,108px); line-height:.88; letter-spacing:-.08em; margin:30px 0 27px; font-weight:800; }
em { color:var(--accent); font-style:normal; font-weight:500; }
.hero-text { max-width:490px; color:var(--muted); font-size:17px; line-height:1.65; }
.hero-actions { margin-top:40px; flex-wrap:wrap; }
.text-link { color:var(--text); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.text-link span { color:var(--accent); margin-left:10px; }
.hero-visual { width:min(96%, 460px); justify-self:center; margin:0; position:relative; }
.visual-grid { display:none; }
.hero-photo-print { padding:14px 14px 0; position:relative; background:#fbfaf7; border:1px solid rgba(27,28,25,.12); box-shadow:0 20px 44px rgba(43,43,36,.12); transform:rotate(-1deg); }
.hero-photo-frame { position:relative; aspect-ratio:3 / 4; overflow:hidden; background:#d8d7d1; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.9) contrast(1.01); }
.photo-print-meta { min-height:54px; margin:0; padding:15px 9px; display:flex; align-items:center; justify-content:space-between; color:var(--muted); }
.photo-print-meta time { font:400 12px 'DM Mono',monospace; letter-spacing:.1em; }
.photo-print-meta strong { color:var(--accent); font:800 12px var(--display); letter-spacing:.14em; }
.visual-details { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:15px; padding:13px 0 0; border-top:1px solid var(--line); }
.visual-details h2 { margin:0 0 6px; color:var(--text); font:700 clamp(22px,2.15vw,29px)/1.08 var(--display); letter-spacing:-.06em; }
.visual-details p { margin:0; color:var(--muted); font:500 14px var(--body); line-height:1.5; }
.parkour-intro { padding:125px 0 116px; display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:start; }.parkour-kicker { grid-column:1 / -1; margin-bottom:0; }
.parkour-display { color:var(--text); font:800 clamp(64px,8.7vw,126px)/.76 var(--display); letter-spacing:-.1em; text-transform:uppercase; }
.parkour-display span { display:block; }.parkour-display span + span { color:var(--accent); }
.parkour-intro h2 { margin:0 0 30px; font-size:clamp(37px,4.2vw,63px); line-height:.97; letter-spacing:-.07em; }.parkour-copy > p { max-width:580px; color:var(--muted); font-size:16px; line-height:1.8; }
.offer-overview { margin:0 -5vw; padding:112px 5vw 44px; background:var(--surface); }
.offer-overview-heading { display:grid; grid-template-columns:1fr; gap:38px; align-items:start; margin-bottom:65px; }.offer-overview-heading .eyebrow { margin:0; padding-top:14px; border-top:1px solid var(--line); color:var(--accent); font:500 11px 'DM Mono',monospace; letter-spacing:.14em; text-transform:uppercase; display:flex; justify-content:space-between; gap:12px; }.offer-overview-heading > div { grid-column:1; grid-row:2; }
.offer-overview h2 { margin:0; font-size:clamp(42px,4vw,58px); line-height:.95; letter-spacing:-.07em; }.desktop-title { white-space:nowrap; }.offer-overview-heading div > p { max-width:570px; margin:26px 0 0; color:var(--muted); font-size:15px; line-height:1.7; }
.mobile-title { display:none; }
.offer-list { border-top:1px solid var(--line); }
.offer-item { display:grid; grid-template-columns:minmax(300px,1.5fr) minmax(230px,.8fr); gap:25px; padding:34px 0 31px; border-bottom:1px solid var(--line); }
.offer-meta > span { color:var(--muted); font:12px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
.offer-main h3 { margin:0 0 13px; font:600 clamp(25px,2.5vw,36px)/1 var(--display); letter-spacing:-.06em; }.offer-main p { max-width:520px; margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.offer-meta { display:flex; flex-direction:column; align-items:flex-start; gap:17px; padding-top:4px; }.offer-item strong { color:var(--accent); font:600 clamp(25px,2.5vw,34px) var(--display); letter-spacing:-.06em; white-space:nowrap; }.offer-item small { color:var(--muted); font:12px 'DM Mono',monospace; letter-spacing:.04em; }.offer-meta a { margin-top:4px; color:var(--accent); font:11px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.training-times { margin-top:68px; }
.training-times-heading { display:flex; align-items:baseline; justify-content:flex-end; gap:24px; padding:28px 0 24px; }
.training-times-heading h3 { margin:0; text-align:right; font:600 clamp(24px,2.5vw,34px)/1.15 var(--display); letter-spacing:-.05em; }
.training-times-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.training-time { display:grid; grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr); gap:22px; padding:26px; background:var(--bg); }
.training-time h4 { margin:0 0 10px; font:700 18px var(--display); letter-spacing:-.04em; }
.training-time p { margin:0; color:var(--muted); font-size:14px; line-height:1.65; }
.training-time .training-time-hours { color:var(--accent); font:500 14px 'DM Mono',monospace; white-space:nowrap; }
.training-time .training-time-area { margin-bottom:10px; color:var(--accent); font:700 clamp(18px,2vw,24px)/1.15 var(--display); letter-spacing:-.04em; }
.training-time a { display:inline-block; margin-top:16px; color:var(--accent); font:500 11px 'DM Mono',monospace; letter-spacing:.04em; text-transform:uppercase; }
.training-times-note { margin:24px 0 0; color:var(--muted); font-size:14px; line-height:1.7; }
.trial-note { display:flex; align-items:end; justify-content:space-between; gap:40px; padding:38px 0 0; }
.trial-note .eyebrow { margin-bottom:10px; }.trial-note p:not(.eyebrow) { max-width:530px; margin-bottom:0; color:var(--muted); font-size:14px; line-height:1.7; }.trial-note .text-link { padding-bottom:3px; white-space:nowrap; }
.section { padding:140px 0; }.section-kicker { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding-top:14px; margin-bottom:45px; }
.split-heading { display:grid; grid-template-columns:1fr 1fr; gap:7vw; }.split-heading h2,.about-copy h2 { font-size:clamp(42px,5vw,75px); line-height:.95; letter-spacing:-.07em; }.split-heading p,.about-copy p { color:var(--muted); font-size:16px; line-height:1.8; max-width:520px; }
.principles { border-top:1px solid var(--line); margin-top:80px; display:grid; grid-template-columns:repeat(3,1fr); }.principles article { padding:25px 25px 0 0; border-right:1px solid var(--line); margin-right:25px; }.principles article:last-child { border:0; }.principles span,.card-index { color:var(--accent); font:11px 'DM Mono',monospace; }.principles h3 { margin:50px 0 14px; font-size:22px; letter-spacing:-.045em; }.principles p { color:var(--muted); line-height:1.6; font-size:14px; max-width:310px; }
.about-section { display:grid; grid-template-columns:1fr 1fr; gap:7vw; }.about-quote { min-height:420px; background:var(--accent); color:#f1eee7; padding:40px; display:flex; flex-direction:column; justify-content:space-between; }.quote-mark { font:100px/0.5 var(--display); }.about-quote p { font:600 clamp(27px,4vw,50px)/1.02 var(--display); letter-spacing:-.06em; max-width:500px; }.about-quote em { color:#f1eee7; font-weight:800; }.about-copy .section-kicker { border-color:var(--line); }.about-copy h2 { margin-bottom:30px; }.trainer-facts { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:40px 0 33px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.trainer-facts div { display:flex; flex-direction:column; gap:7px; }.trainer-facts strong { color:var(--accent); font:600 27px var(--display); letter-spacing:-.05em; }.trainer-facts span { color:var(--muted); font:12px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.06em; line-height:1.45; }
.contact-section { background:var(--accent); color:#f1eee7; margin:0 -5vw; padding:110px 5vw; }.contact-section .eyebrow { color:#f1eee7; }.contact-section h2 { font-size:clamp(46px,7vw,100px); line-height:.9; letter-spacing:-.075em; margin:30px 0 45px; }.contact-section em { color:#f1eee7; }.button-light { background:#f1eee7; color:#1b1c19; }.button-light:hover { background:#ffffff; }
.site-footer { padding:24px 0; display:flex; justify-content:space-between; gap:20px; color:var(--muted); font:12px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }.footer-links { display:flex; gap:18px; }.footer-links a:hover { color:var(--accent); }
.legal-content { max-width:820px; padding:100px 0 130px; }.legal-content .eyebrow { margin-bottom:26px; }.legal-content h1 { font-size:clamp(32px,8vw,78px); margin:0 0 64px; }.legal-content h2 { border-top:1px solid var(--line); margin:52px 0 22px; padding-top:15px; font-size:26px; letter-spacing:-.05em; }.legal-content h3 { margin:28px 0 10px; font-size:18px; }.legal-content p,.legal-content li { color:var(--muted); font-size:15px; line-height:1.8; }.legal-content p strong { color:var(--text); }.legal-content ul { padding-left:22px; }.legal-content li + li { margin-top:6px; }.legal-content table { width:100%; border-collapse:collapse; margin:26px 0; font-size:14px; text-align:left; }.legal-content th,.legal-content td { border-bottom:1px solid var(--line); padding:12px 10px 12px 0; vertical-align:top; }.legal-content th { color:var(--text); font-size:11px; letter-spacing:.05em; text-transform:uppercase; }.legal-content .back-link { display:inline-block; margin-top:16px; color:var(--accent); font:11px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:1100px) { .site-header { min-height:84px; }.nav-links { gap:18px; }.hero { gap:5vw; }.parkour-intro { padding:105px 0 98px; }.offer-overview { padding-top:90px; }.offer-overview-heading { gap:32px; margin-bottom:52px; }.offer-item { grid-template-columns:minmax(270px,1.4fr) minmax(205px,.8fr); gap:18px; }.principles { grid-template-columns:repeat(3,1fr); }.principles article { margin-right:18px; padding-right:18px; }.principles h3 { font-size:20px; } }
@media (max-width:800px) { .site-header { min-height:76px; }.brand img { width:70px;height:70px; }.nav-links { display:none; }.hero,.split-heading,.about-section,.parkour-intro,.offer-overview-heading { grid-template-columns:1fr; }.hero { min-height:0; padding:65px 0; gap:46px; }.parkour-intro { gap:28px; padding:82px 0; }.parkour-display { font-size:clamp(58px,17vw,100px); line-height:.78; }.offer-overview { padding-top:76px; }.offer-overview-heading { gap:22px; margin-bottom:42px; }.offer-overview-heading .eyebrow,.offer-overview-heading > div { grid-column:auto; grid-row:auto; }.offer-overview-heading .eyebrow { margin:0; }.desktop-title { display:none; }.mobile-title { display:inline; }.offer-item { grid-template-columns:1fr; gap:14px; padding:28px 0; }.offer-meta { display:grid; grid-template-columns:1fr auto; gap:13px 20px; padding-top:8px; }.offer-meta > span { grid-column:1 / -1; }.offer-meta a { margin-top:0; align-self:end; }.trial-note { align-items:flex-start; flex-direction:column; gap:20px; padding:30px 0 0; }.principles { grid-template-columns:1fr; }.section { padding:90px 0; }.principles article { border-right:0; border-bottom:1px solid var(--line); margin-right:0; padding:28px 0; min-height:0; }.principles article:last-child { border-bottom:0; }.principles h3 { margin:35px 0 12px; font-size:22px; }.about-quote { min-height:330px; }.trainer-facts { margin-top:32px; }.legal-content { padding:70px 0 90px; }.legal-content h1 { margin-bottom:42px; }.legal-content h2 { margin-top:42px; }.site-footer { flex-direction:column; } }
@media (max-width:480px) { .site-shell { padding:0 6vw; }.hero { padding-top:48px; }.hero-text { font-size:15px; }.hero-actions { margin-top:32px; gap:18px; align-items:flex-start; flex-direction:column; }.button { width:100%; justify-content:space-between; }.button-small { width:auto; }.hero-photo-print { padding:10px 10px 0; transform:rotate(-.6deg); }.photo-print-meta { min-height:48px; padding:12px 6px; gap:8px; }.photo-print-meta time { font-size:11px; }.photo-print-meta strong { font-size:11px; }.visual-details { gap:12px; padding-top:12px; }.visual-details h2 { font-size:21px; }.visual-details p { font-size:13px; }.parkour-intro { padding:68px 0; }.parkour-intro h2 { font-size:36px; }.offer-overview { padding-top:62px; }.offer-item { gap:8px; }.offer-main h3 { font-size:24px; }.offer-main p { font-size:13px; }.offer-meta { gap:12px; }.offer-item strong { font-size:25px; }.trainer-facts { grid-template-columns:1fr; gap:17px; }.trainer-facts div { flex-direction:row; align-items:baseline; justify-content:space-between; gap:16px; }.trainer-facts span { text-align:right; }.contact-section { padding-top:80px; padding-bottom:80px; } }

@media (max-width:800px) {
  .hero { gap:0; }
  .hero-copy { display:contents; }
  .hero-visual { order:1; margin-top:32px; }
  .hero-actions { order:2; margin-top:26px; }
  .hero-text { margin-bottom:0; }
  .principles { margin-top:36px; }
  .principles article:first-child { padding-top:18px; }
  .principles h3 { margin-top:0; }
}

@media (max-width:480px) {
  .trainer-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trainer-facts div { flex-direction:column; align-items:flex-start; gap:7px; }
  .trainer-facts span { text-align:left; }
}

.legal-content { -webkit-hyphens:auto; hyphens:auto; }
@media (max-width:800px) {
  .legal-content h1 { font-size:clamp(28px,7vw,78px); }
}
.legal-table-scroll { max-width:100%; margin:26px 0; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.legal-content .legal-table-scroll table { width:100%; min-width:720px; margin:0; }

@media (max-width:1100px) {
  .training-time { grid-template-columns:1fr; gap:12px; }
}
@media (max-width:800px) {
  .training-times { margin-top:52px; }
  .training-times-list { grid-template-columns:1fr; gap:14px; }
  .training-time { grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr); }
}
@media (max-width:480px) {
  .training-time { grid-template-columns:1fr; padding:22px; }
}
