:root{--ink-on-accent:#000;--focus-on-paper:#111;--focus-on-dark:#fff;--surface-dialog:#F4F1EA}
.prototype-note{padding:5px 16px;text-align:center;background:#111;color:#fff;font:400 12px/1.4 'Manrope',sans-serif}
.menu-toggle{display:none}.menu-dialog{box-sizing:border-box;border:3px solid #111;padding:24px;color:#111;background:var(--surface-dialog);width:min(360px,100%);max-width:100%;max-height:100dvh;margin:0 0 0 auto;height:100dvh;overflow:auto}
.menu-dialog::backdrop{background:rgba(0,0,0,.55)}
.menu-dialog nav{display:grid!important;gap:8px!important;margin-top:24px}
.menu-dialog .nav{color:#111;min-height:48px;border-bottom:1px solid #111;padding:12px 0}
.menu-dialog .nav:hover{color:#B3170A;border-bottom-color:#111}
.menu-heading{display:flex;align-items:center;justify-content:space-between;font:600 24px/1.2 'Oswald',sans-serif}
.menu-close{border:2px solid #111;background:transparent;min-width:44px;min-height:44px;font:400 28px/1 'Manrope',sans-serif;cursor:pointer}
.site-header a[href^="tel:"]{color:var(--ink-on-accent)!important}
.home-hero{max-width:1360px;margin:0 auto;padding:40px clamp(16px,3vw,40px) 0}
.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:center;margin-top:20px}
.hero-intro{min-width:0}.hero-intro h1{line-height:.98!important}
.hero-lead{font:400 17px/1.55 'Manrope',sans-serif;max-width:550px;margin:24px 0 0}
.hero-actions{margin-top:24px!important}.hero-photo{width:100%;min-width:0}
.row:hover,.ev:hover{color:var(--ink-on-accent)}
/* Preserve white foreground on dark/red buttons; normal body text remains 17px. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus-on-paper);outline-offset:4px}
.site-header :focus-visible,section.surface-dark :focus-visible{outline-color:var(--focus-on-dark)}
button[aria-pressed]:focus-visible{outline:3px solid #111;outline-offset:4px}
summary{cursor:pointer}summary:focus-visible{outline:3px solid #111;outline-offset:4px}
.faq-mark{color:#B3170A;flex:none}.faq-mark::before{content:'+'}details[open] .faq-mark::before{content:'−'}
@media(max-width:900px){
 .header-inner{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px!important;padding:10px 16px!important}
 .site-header nav{display:none!important}
 .site-header img{width:105px!important;height:auto!important}
 .menu-toggle{display:block;border:2px solid #000;color:#000;background:transparent;min-height:44px;padding:0 14px;font:600 18px/1 'Oswald',sans-serif;cursor:pointer}
 .header-actions{grid-column:1/-1;display:flex!important;flex-wrap:nowrap!important;justify-content:space-between;gap:12px!important}
 .header-actions a[href^="tel:"]{font-size:18px!important}
 .header-actions .btn{min-height:44px!important;padding:0 14px!important;font-size:18px!important}
 .home-hero{padding-top:24px}
 .hero-layout{grid-template-columns:minmax(0,1fr);gap:28px;align-items:start;margin-top:16px}
 .hero-intro h1{font-size:clamp(36px,6.24vw,70px)!important}
 .hero-lead{margin-top:16px}
 .hero-actions{gap:12px!important;margin-top:20px!important;display:flex!important;flex-direction:column;align-items:stretch}
 .hero-actions .btn{padding:12px 14px;text-align:center;line-height:1.2;white-space:normal}
 .hero-photo{aspect-ratio:4/3!important}
 .prototype-note{font-size:11px;padding:4px 12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.semantic-card{font:inherit;margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.team-section,.camp-gallery{max-width:1360px;margin:0 auto;padding:clamp(64px,8vw,112px) clamp(16px,3vw,40px)}
.team-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}
.team-heading h2,.camp-gallery h2{font:600 clamp(28px,3vw,40px)/1.1 'Oswald',sans-serif;text-transform:uppercase;margin:8px 0 16px}
.team-heading p{margin:0;font-size:17px}.team-heading .btn{flex-shrink:0}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;background:#111}
.team-card{min-width:0;background:#fff}.team-photo{aspect-ratio:4/3;position:relative}
.team-photo>.lab{position:absolute;top:0;left:0;padding:8px 12px;background:#111;color:#fff}
.team-card-caption{padding:20px;min-height:90px;border-top:3px solid #111}
.team-card-caption h3{margin:0;font:600 clamp(21px,2vw,27px)/1.15 'Oswald',sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.team-card-caption p{margin:8px 0 0;color:#4D4A45}
.cta-inner{align-items:center!important}.cta-inner h2{line-height:1.05!important}
.price-cta{padding:24px 0 0}.price-cta .btn{min-width:180px}
.signup-section{max-width:1360px;margin:clamp(64px,8vw,112px) auto 0;padding:0 clamp(16px,3vw,40px);color:#111;background:transparent}
.signup-card{padding:clamp(24px,4vw,48px)!important;gap:32px!important;border:3px solid #111;background:#fff}
.signup-card input:not([type=checkbox]),.signup-card textarea{color:#111!important;border:1px solid #777!important;border-bottom:3px solid #111!important;background:#F4F1EA!important;padding:12px!important;width:100%;min-height:48px}
.signup-card input::placeholder,.signup-card textarea::placeholder{color:#595650;opacity:1}
.signup-card :focus-visible{outline-color:#111!important}
.signup-card form{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important}
.signup-card label{min-width:0}.signup-card button{white-space:normal;line-height:1.2}
.camp-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.camp-gallery-grid figure{margin:0}.camp-gallery-grid .ph{aspect-ratio:4/3;border:3px solid #111}
.camp-gallery-grid figcaption{margin-top:10px;color:#4D4A45}
.detail-columns{display:grid!important;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:48px!important;align-items:start!important}
.detail-content{width:100%;max-width:none!important;min-width:0}.detail-facts{width:100%;min-width:0}
@media(max-width:900px){.team-grid,.camp-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-columns{grid-template-columns:minmax(0,1fr)}.team-heading{flex-wrap:wrap}.signup-card{display:block!important}.signup-card form{margin-top:28px}.signup-card .btn{padding:12px 16px}}
@media(max-width:540px){.team-grid,.camp-gallery-grid{grid-template-columns:minmax(0,1fr)}.team-card-caption{min-height:0}.price-cta .btn{width:100%}.signup-card{padding:20px!important}.signup-card form>div>.btn{width:100%;min-width:0}.team-heading .btn{width:100%}}
.signup-card .fl>span{color:#4D4A45}.signup-card input:not([type=checkbox]),.signup-card textarea{font:500 17px/1.5 'Manrope',sans-serif}

@media(min-width:901px){
 .hero-overlap{grid-template-columns:repeat(12,minmax(0,1fr));gap:0;isolation:isolate;position:relative;align-items:center}
 .hero-overlap .hero-intro{grid-column:1/9;grid-row:1;z-index:1;padding:32px 0;position:relative}
 .hero-overlap .hero-photo{grid-column:7/-1;grid-row:1;position:relative;z-index:0;height:100%;min-height:440px;aspect-ratio:auto!important;align-self:stretch}
 .hero-overlap .hero-photo::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#F4F1EA,rgba(244,241,234,.88) 14%,rgba(244,241,234,0) 42%);pointer-events:none}
 .hero-overlap .hero-photo>.lab{position:relative;margin-left:auto}
 .hero-overlap .hero-actions .btn-line{background:#F4F1EA}
}
.family-section{max-width:1360px;margin:0 auto;padding:clamp(48px,6vw,88px) clamp(16px,3vw,40px) 0}
.family-section h2{margin:0 0 24px;font:600 clamp(25px,2.5vw,32px)/1.15 'Oswald',sans-serif;text-transform:uppercase}
.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.family-grid article{border-top:3px solid #111;padding-top:18px}.family-grid h3{font:600 23px/1.2 'Oswald',sans-serif;text-transform:uppercase;margin:0 0 12px}
.family-grid p{font:400 17px/1.55 'Manrope',sans-serif;margin:0 0 12px}.family-grid a{color:#B3170A;text-underline-offset:3px}
.camp-hero-heading{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:24px}
.camp-hero-heading h1{margin-top:0!important}.camp-hero-heading .btn{flex-shrink:0}
.camp-gallery{padding-bottom:0}
footer#contacts>div>div:first-child{margin-top:0!important}
.footer-brand{margin-top:36px}.footer-logo{display:block;width:180px;max-width:100%;height:auto}
.footer-legal{align-items:flex-end;gap:16px!important}
.article-content{overflow-wrap:anywhere;min-width:0}
.typography-specimen{border-top:3px solid #111;margin-top:48px;padding-top:16px}
.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{font-family:'Oswald',sans-serif;text-transform:uppercase;line-height:1.2;margin:32px 0 12px}
.article-content h2{font-size:30px;font-weight:700}.article-content h3{font-size:25px;font-weight:600}.article-content h4{font-size:22px;font-weight:600}.article-content h5{font-size:20px;font-weight:600}.article-content h6{font-size:18px;font-weight:600}
.article-content p{margin:0 0 20px}.article-lead{font-weight:500}
.article-content a{text-decoration:underline;text-underline-offset:3px;color:#B3170A}.article-content a:hover{color:#111;text-decoration-thickness:2px}
.article-content strong,.article-content b{font-weight:700}.article-content small{font-size:15px;line-height:1.6}.article-content mark{background:#FFE18A;color:#111;padding:0 3px}
.article-content sub,.article-content sup{font-size:.75em;line-height:0}.article-content abbr[title]{text-decoration:underline dotted;cursor:help}
.article-content hr{border:0;border-top:3px solid #111;margin:36px 0}
.article-content ul,.article-content ol{padding-left:28px;margin:16px 0 24px}.article-content li{padding-left:4px;margin:8px 0}.article-content li>ul,.article-content li>ol{margin:8px 0}
.article-content dt{font-weight:700;margin-top:16px}.article-content dd{margin:4px 0 16px 24px}
.article-content blockquote{border-left:5px solid #E42314;background:#fff;padding:24px;margin:28px 0}.article-content blockquote p:last-of-type{margin-bottom:12px}.article-content blockquote footer{font-size:16px;color:#4D4A45}
.article-note{padding:24px;background:#fff;border:2px solid #111;margin:28px 0}.article-note h4{margin-top:0}
.article-table{max-width:100%;min-width:0;overflow-x:auto;margin:20px 0 28px}.article-content table{border-collapse:collapse;width:100%;min-width:560px;font-size:17px;line-height:1.5;overflow-wrap:normal}
.article-content caption{text-align:left;font-size:15px;color:#4D4A45;padding-bottom:12px}.article-content th,.article-content td{padding:14px 16px;border:1px solid #111;text-align:left;vertical-align:top}.article-content thead{background:#111;color:#fff}.article-content tbody{background:#fff}.article-content tfoot{background:#E2DDD3}
.article-content figure{margin:28px 0}.article-content figure img{display:block;width:100%;max-width:100%;height:auto}.article-content figcaption{font-size:15px;line-height:1.5;margin-top:10px;color:#4D4A45}
.article-content code,.article-content pre,.article-content kbd,.article-content samp{font-family:'IBM Plex Mono',monospace;font-size:.85em}.article-content :not(pre)>code{background:#E2DDD3;padding:2px 5px;overflow-wrap:anywhere}
.article-content pre{margin:20px 0 28px;max-width:100%;overflow:auto;white-space:pre;padding:20px;background:#111;color:#fff;line-height:1.7}.article-content pre code{font-size:inherit;white-space:pre;overflow-wrap:normal}
.article-content kbd{background:#fff;border:1px solid #777;border-bottom-width:3px;padding:2px 6px}.article-content details{border-top:2px solid #111;border-bottom:2px solid #111;padding:16px 0;margin:24px 0}.article-content summary{min-height:44px;cursor:pointer}.article-content details p{margin:12px 0 0}.article-content address{font-style:normal;font-size:17px;margin:24px 0}
@media(max-width:900px){.family-grid{grid-template-columns:minmax(0,1fr)}.camp-hero-heading{align-items:flex-start;flex-wrap:wrap}.camp-hero-heading .btn{margin-left:auto}}
@media(max-width:540px){.camp-hero-heading{gap:24px}.camp-hero-heading .btn{width:100%;margin-left:0}.footer-logo{width:150px}.article-content blockquote,.article-note{padding:18px}.article-content pre{padding:16px}}

/* One shared application-card component on training, camp, rental and contacts. */
.signup-section{max-width:1360px;margin:clamp(64px,8vw,112px) auto 0;padding:0 clamp(16px,3vw,40px);background:transparent;color:#111}
.signup-card{display:flex!important;flex-wrap:wrap!important;gap:32px!important;max-width:none!important;margin:0!important;padding:clamp(24px,4vw,48px)!important;border:3px solid #111!important;background:#fff!important;align-items:flex-start}
.signup-card>div:first-child{flex:1 1 380px!important;min-width:0}
.signup-card form{flex:1.4 1 440px!important;min-width:0;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important;gap:28px 32px!important;align-content:start}
.signup-card .fl{display:flex;flex-direction:column;gap:6px;min-width:0}
.signup-card .fl>span{font:500 13px/1.5 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:#4D4A45}
.signup-card input:not([type=checkbox]),.signup-card textarea,.signup-card select{font:500 17px/1.5 'Manrope',sans-serif!important;box-sizing:border-box;color:#111!important;background:#F4F1EA!important;border:1px solid #777!important;border-bottom:3px solid #111!important;border-radius:0!important;min-height:52px;width:100%;padding:12px!important;color-scheme:light}
.signup-card input::placeholder,.signup-card textarea::placeholder{color:#595650!important;opacity:1}
.signup-card :focus-visible{outline-color:#111!important}.signup-card input[type=checkbox]{accent-color:#E42314}
.signup-card form>label:not(.fl){color:#4D4A45!important;font:400 14px/1.5 'Manrope',sans-serif}
.signup-card h2{color:#111;line-height:1.05!important}.signup-card h2 span{color:#B3170A!important}
.signup-card .btn{min-height:58px;padding:12px 24px;line-height:1.2}.signup-card .btn-red{color:#fff!important;background:#E42314;border-color:#E42314}
.signup-card .btn-red:hover{background:#111;border-color:#111;color:#fff!important}
.camp-hero-scene{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));isolation:isolate;position:relative}
.camp-hero-copy{grid-column:1/9;grid-row:1;position:relative;z-index:1;background:linear-gradient(90deg,#E42314 78%,rgba(228,35,20,0));padding:16px 0}
.camp-hero-copy>div:last-child>p{max-width:560px}
.camp-hero-photo{grid-column:7/-1;grid-row:1;position:relative;min-height:480px;display:flex;align-items:flex-end;justify-content:flex-end;border:3px solid #111}
.camp-hero-photo::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#E42314,rgba(228,35,20,.75) 18%,rgba(228,35,20,0) 55%)}
.camp-hero-photo>.lab{position:relative;background:#111;color:#fff;padding:8px 12px}
.rent-hero{position:relative;isolation:isolate;overflow:clip}
.rent-hero>div:not(.rent-hero-photo){position:relative;z-index:1}
.rent-hero-photo{position:absolute;inset:0;z-index:0;display:flex;align-items:flex-end;justify-content:flex-end;background-color:#4D4A45;background-image:repeating-linear-gradient(45deg,#716C62 0 1px,transparent 1px 28px),repeating-linear-gradient(-45deg,#716C62 0 1px,transparent 1px 28px)}
.rent-hero-photo::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,17,17,.96),rgba(17,17,17,.82) 50%,rgba(17,17,17,.58))}
.rent-hero-photo>.lab{position:relative;background:#111;color:#fff;padding:8px 12px;margin:16px}
.team-shared{padding-bottom:clamp(64px,8vw,112px)!important}
@media(max-width:900px){.signup-card{display:block!important}.signup-card form{margin-top:28px}.camp-hero-scene{grid-template-columns:minmax(0,1fr);gap:28px}.camp-hero-copy{grid-column:1;grid-row:1;background:none;padding:0}.camp-hero-photo{grid-column:1;grid-row:2;min-height:0;aspect-ratio:4/3}.camp-hero-photo::before{display:none}.rent-hero-photo::before{background:rgba(17,17,17,.85)}}
@media(max-width:540px){.signup-card{padding:20px!important}.signup-card .btn{width:100%;min-width:0;padding:12px 16px}}
