/* Shared application of the project design principles. Keep the racing identity,
   genuine offer count and existing content; prioritise reading and interaction. */
:root{--readable-muted:#c3c6c8;--space-section:clamp(3.5rem,6vw,6rem)}
html{scroll-padding-top:2rem;font-kerning:normal}
body{line-height:1.65}
h1,h2,h3{font-kerning:normal;text-wrap:balance}
h2,h3,.restored-content h2,.restored-content h3{letter-spacing:-.035em;line-height:1.12}
.serif,em{letter-spacing:-.045em}
p,li{overflow-wrap:break-word}
.section,.restored-content .section{padding-block:var(--space-section)}
.section-label{font-size:.8125rem;letter-spacing:.08em;margin-bottom:2.5rem;line-height:1.6}
.eyebrow,.day-meta,.small-pill,.program-content .eyebrow,.lab-stage .eyebrow,
.about-copy>.eyebrow,.restored-content .eyebrow,.restored-content .micro,
.restored-content .overline{font-size:.8125rem;letter-spacing:.065em;line-height:1.6}
.section-top>p,.coaching .section-top>p{max-width:42ch}
.intro-grid p,.about-copy p,.program-content p,.coaching-separate,
.offer-footnote,.coaching-faq p,.restored-content .editorial p,
.restored-content .faq p,.restored-content .subhero>p{max-width:65ch}
.program-note,.transfer-note,.lab-intro p.lab-footnote,.club-boundary p,
.restored-content .tiny,.restored-content .field-hint{font-size:.9375rem;line-height:1.65}
.button,.text-link,.restored-content .btn,.restored-content .text-link{font-size:1rem}
.button,.restored-content .btn{line-height:1.4;gap:1.25rem;min-height:3rem}
.button span,.restored-content .btn span{flex-shrink:0}
.button:hover,.restored-content .btn:hover,.discovery-grid>a:hover,.choices button:hover{transform:none}
.text-link,.restore-links a,.restored-content .text-button{min-height:2.75rem;align-content:center}
.brand{gap:1rem;flex-shrink:0}
.brand>span{letter-spacing:.025em}
.brand small{font-size:.75rem;letter-spacing:.025em}
header>.menu{min-width:44px;min-height:44px}
header>nav.open{max-height:calc(100svh - 82px);overflow-y:auto}
.content-nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;color:var(--warm-white)}
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible,
.restored-content :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid currentColor;outline-offset:5px}
.restored-content input:focus-visible,.restored-content select:focus-visible,.restored-content textarea:focus-visible{outline-color:#f3f0e9}
summary{min-height:44px;align-content:center;line-height:1.5}
summary:hover{text-decoration:underline;text-underline-offset:4px}
.coaching-grid{align-items:stretch;gap:1.5rem}
.offer-card,.offer-card.offer-focus{padding:clamp(1.5rem,3vw,2.5rem);box-shadow:none;min-width:0}
.offer-index{font-size:.8125rem;letter-spacing:.06em;margin-bottom:1rem}
.offer-card h3{font-size:clamp(1.5rem,2.4vw,2.1rem);letter-spacing:-.025em;line-height:1.15;overflow-wrap:normal}
.offer-promise{font-size:1.125rem;line-height:1.5;margin:1rem 0 1.5rem}
@media(min-width:761px){.offer-promise{min-height:3.375rem}.offer-price{min-height:3.5rem}.offer-core{min-height:4.5rem}}
.offer-price{font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.15;margin-bottom:.5rem}
.offer-price span{font-size:1rem;letter-spacing:0}
.offer-price-request{font-size:clamp(1.75rem,3vw,2.625rem)}
.offer-card .offer-term{font-size:.9375rem;line-height:1.5;min-height:0;margin:0;color:#e1e3e4}
.offer-total{display:block;margin-top:.35rem;font-weight:600}
.offer-core{font-size:1rem;color:var(--warm-white);margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.offer-inclusions{margin:1rem 0 1.5rem;border-top:0}
.offer-card .offer-inclusions ul{font-size:1rem;line-height:1.65}
.offer-fit{font-size:1rem;line-height:1.65;margin-bottom:1.5rem}
.offer-card .button{max-width:none;font-size:1rem}
.offer-card:not(.offer-track) .button{background:transparent;border:1px solid #a9adb0;color:var(--warm-white)}
.offer-card:not(.offer-track) .button:hover{background:#383e43}
.offer-secondary{font-size:.9375rem;margin-top:.75rem}
.offer-footnote{margin-block:1.5rem 2.5rem}
.program-tabs button[aria-selected=true],.transfer-tabs button[aria-selected=true]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;font-weight:600}
.program>*{min-width:0}
.program-tabs button{padding-inline:1rem}
.lab-progress .current{outline:2px solid currentColor;outline-offset:3px;font-weight:600}
.program-photo>span{font-size:.8125rem;line-height:1.5;right:1.5rem}
.portrait>span{right:1.5rem;font-size:1rem}.portrait small{font-size:.8125rem;letter-spacing:.025em}
.restored-content .reveal{opacity:1;transform:none;transition:none}
.restored-content .field{font-size:1rem;gap:.5rem;margin-top:1.5rem}
.restored-content .field :is(input,select,textarea){font-size:1rem;line-height:1.5;min-height:48px}
.restored-content .field select{white-space:normal}
.restored-content .format-options label{align-items:flex-start;gap:.875rem}
.restored-content .format-options input{width:20px;height:20px;flex-shrink:0;margin-top:4px}
.restored-content .format-options small{font-size:.9375rem;line-height:1.55;margin-top:.25rem}
.restored-content .format-options label:has(input:checked),.restored-content .choice:has(input:checked){border-width:2px;padding:17px}
.restored-content .booking-steps{font-size:.9375rem;gap:1rem}
.restored-content .booking-steps li[aria-current=step]{font-weight:600;border-top-width:4px;padding-top:10px}
.restored-content [aria-invalid=true]{border:2px solid #ffb2aa}
.restored-content .form-error{font-size:1rem;color:#ffb2aa;margin-top:1rem}
.restored-content .form-error:not(:empty){border-left:3px solid currentColor;padding:.75rem 1rem}
.restored-content .contact-large{font-size:clamp(1.625rem,4vw,3rem);overflow-wrap:anywhere}
.restored-content .contact-box .text-link{max-width:100%;width:auto;overflow-wrap:anywhere}
.restored-content .cta h2 em{opacity:1}
.restored-content .pit-view-note,.restored-content .role-key,.restored-content .pit-crew-counts span,
.restored-content .scene-lesson>span{font-size:.875rem}
.restored-content .pit-scenarios button[aria-pressed=true]{outline:2px solid currentColor;outline-offset:2px}
body>footer{background-image:linear-gradient(180deg,#11131544 0 9%,#111315c7 18%,#111315d9 100%),url('assets/footer-track-photo.jpg')}
.footer-groups{gap:2rem}.footer-groups>div{gap:.5rem}
.footer-groups a{font-size:.9375rem;min-height:32px;align-content:center}
.footer-groups b{font-size:.9375rem}
.footer-bottom,.footer-bottom button{font-size:.875rem}
.footer-bottom button,.footer-bottom a{min-height:44px;align-content:center}
/* A solid backing keeps controls legible against changing 3D scenery. */
.drive-top{align-items:flex-start;letter-spacing:.04em}
.drive-top a{font-size:.875rem;line-height:1.4;background:#111315e6;color:#f3f0e9;padding:.6rem .8rem;border:1px solid #a9adb0;border-radius:4px;min-height:44px;max-width:190px}
.drive-motion{font-size:.8125rem;min-height:44px;background:#111315e6;color:#f3f0e9;top:188px}
.drive-steps button{font-size:.875rem;letter-spacing:0;min-height:48px;line-height:1.3;border-top:3px solid transparent;color:#e1e3e4;padding-right:6px}
.drive-steps button span{opacity:1;font-size:.75rem;color:inherit}
.drive-steps button[aria-current=step]{border-top-color:#f3f0e9;color:#fff;font-weight:600;background:#111315b3}
.drive-caption{padding:1rem 1.25rem;background:#111315e8;border-left:2px solid #a9adb0;border-radius:2px}
#drive-loading{top:30%;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:88%;font-size:.875rem;background:#111315ee}
.drive-story.is-error #drive-loading{transform:none;top:auto;left:6%}
@media(min-width:1600px){.section,.restored-content .section{padding-inline:max(6%,calc((100vw - 1380px)/2))}}
@media(max-width:760px){
 .section-label>span:last-child{display:none}
 .section-label>span:only-child{display:block}
 .section-label{margin-bottom:2rem}.section-top{margin-bottom:1.75rem}
 h2,.about-copy h2,.lab-intro h2{font-size:clamp(2rem,8.8vw,3.5rem)}
 .restored-content .subhero h1,.restored-content .about-hero h1,.restored-content .funnel-intro h1{font-size:clamp(2.5rem,10.5vw,4rem);hyphens:manual}
 .restored-content .cta h2{font-size:clamp(2.5rem,10vw,4rem)}
 .restored-content .section,.restored-content .subhero{padding-inline:6%}
 .restored-content .funnel-controls{flex-wrap:wrap}
 .section-top>p,.coaching .section-top>p{max-width:65ch}
 .program-content{padding:1.5rem}.program-tabs{gap:.5rem;flex-wrap:wrap}
 .program-content h3,.lab-stage h3{font-size:1.875rem}
 .drive-top a{max-width:155px;font-size:.8125rem}
 .drive-motion{top:170px;right:6%}
 .drive-steps button{font-size:.8125rem;min-height:44px}
 .drive-steps button span{display:block;margin:0 0 .35rem}
 .drive-steps button{min-height:62px;padding:.5rem .25rem}
 .drive-caption{top:27%;max-width:88%;width:auto}
 .drive-stage[data-stage="5"] .drive-caption{top:27%;max-width:88%}
 .drive-caption h2,.drive-stage[data-stage="5"] .drive-caption h2{font-size:1.75rem}
 #ansatz.pit-background .intro-grid h2{margin-bottom:clamp(180px,55vw,280px)}
 #ansatz.pit-background .intro-grid>div{background:#111315e8;padding:1.25rem;border-radius:2px}
}
@media(max-width:420px){
 .offer-card,.offer-card.offer-focus{padding:1.5rem 1.25rem}
 .offer-card h3{font-size:1.45rem}.offer-card .button{font-size:.9375rem;padding-inline:1rem}
 .footer-groups{grid-template-columns:1fr}.footer-groups>div{gap:.35rem}
 .restored-content .four-grid,.restored-content .service-grid{grid-template-columns:1fr}
 .drive-top>span{max-width:135px;font-size:.75rem}
 .drive-instruction{letter-spacing:0;font-size:.75rem}
}
/* Short viewports need room for text and controls below the start line. */
@media(max-height:720px){
 .drive-stage{min-height:820px;top:calc(100svh - 820px);--start-line-y:410px}
 .drive-story.is-static .drive-stage,.drive-story.is-error .drive-stage{top:0}
 .drive-story.is-static,.drive-story.is-error{min-height:820px}
 .drive-intro{top:calc(var(--start-line-y) + 18px)}
 .drive-intro h1{font-size:clamp(1.875rem,4vw,2.625rem)}
}
@media(prefers-reduced-motion:reduce){
 .drive-stage{position:relative;top:0}
 .button:hover,.restored-content .btn:hover,.text-link:hover span{transform:none}
}
