/* Shared finishing rules for the homepage, enquiry forms and voucher checkout. */
:root{--control-radius:8px;--panel-radius:12px;--content-gap:24px;--text-secondary:#bdc7d5;--focus-ring:#e2c993}
body{font-family:var(--sans);font-size:1rem;line-height:1.65}
button,input,select,textarea{font-family:inherit}
h1,h2,h3,h4{font-family:var(--sans);text-wrap:balance}
p,li{overflow-wrap:break-word}
.section-title{line-height:1.15;letter-spacing:-.035em}
h2.section-title{font-size:clamp(2rem,3.4vw,3.4rem)}
h2.section-title .section-subtitle{display:block;margin-top:12px;font-size:clamp(1.0625rem,1.4vw,1.375rem);line-height:1.45;letter-spacing:-.015em;color:var(--text-secondary);font-weight:400}
.eyebrow{font-size:.875rem;line-height:1.5;letter-spacing:.1em}
.button{min-height:52px;border-radius:var(--control-radius);padding:14px 24px;font-size:1rem;font-weight:600;line-height:1.4;white-space:normal;gap:8px;box-shadow:none}
.button-gold{background:var(--gold);border-color:var(--gold);color:#172538}
.button-gold:hover{background:var(--gold-light);border-color:var(--gold-light);color:#172538;box-shadow:none;transform:none}
.button-on-dark,.button-outline,.button-subtle,.button-secondary{background:transparent;border:1px solid #75849a;color:#f1f3f6;box-shadow:none}
.button-on-dark:hover,.button-outline:hover,.button-subtle:hover,.button-secondary:hover{background:#ffffff0a;border-color:var(--gold-light);color:var(--gold-light);box-shadow:none;transform:none}
.button:hover span{transform:none}
.button:disabled{background:#2b3544;border-color:#485365;color:#a8b4c4;box-shadow:none;cursor:not-allowed}
:where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
.hero .hero-actions{gap:12px 16px;align-items:stretch}
.hero .hero-actions .button{min-height:52px;font-size:1rem;padding:14px 24px}
.hero .hero-booking-status{margin-top:16px;font-size:.875rem;line-height:1.5}
.member-price-panel,.contact-form-panel,.application-panel,.coaching-offer-card,.gift-summary,.gift-product,.gift-category{border-radius:var(--panel-radius)}
.member-price-panel .member-primary-cta{min-height:52px;font-size:1rem;box-shadow:none;background:var(--gold)}
.member-price-panel .member-primary-cta:hover{background:var(--gold-light);box-shadow:none}
.member-price-panel .gift-category-cta{margin-top:12px;min-height:52px;font-size:1rem}
.member-price-panel .member-preregistration-note{margin-top:20px;line-height:1.6}
.coaching-offer-grid{gap:24px;align-items:stretch}
.coaching-offer-card{padding:28px;gap:0}
.coaching-offer-card h3{font-size:1.5rem;line-height:1.3;letter-spacing:-.025em}
.coaching-offer-card .button{font-size:.9375rem;min-height:52px}
.application-intro h1,.voucher-shop-heading h1{font-size:clamp(2.25rem,4vw,3.75rem);line-height:1.12;letter-spacing:-.04em}
.application-panel h2{font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.25}
.application-lead,.voucher-shop-heading>p:last-child{font-size:1.125rem;line-height:1.65}
.application-panel,.contact-form-panel{padding:32px}
.form-grid{gap:20px}.form-field{gap:8px}
.form-field label,.contact-form-field label{font-size:.9375rem;line-height:1.5;color:#e1e7ef}
.form-field input,.form-field select,.form-field textarea,.contact-form-field input,.contact-form-field select,.contact-form-field textarea{border:1px solid #64778e;border-radius:var(--control-radius);background:#101b29;color:#f1f3f6;font-size:1rem;line-height:1.5;padding:12px 14px;min-height:52px}
.form-field textarea,.contact-form-field textarea{min-height:120px;resize:vertical}
.form-use-note,.form-intro,.application-reference,.form-progress{font-size:.9375rem;line-height:1.6;color:var(--text-secondary)}
.application-header .brand,.application-header .brand img{width:120px}.application-header .brand img{height:80px;object-fit:contain}
.application-back{font-size:.9375rem;min-height:44px;padding:10px 18px}
.voucher-steps{row-gap:14px;line-height:1.6}.voucher-actions{gap:12px}.voucher-actions .button{flex:1 1 180px}
.gift-summary #quantity-wrap{margin-top:24px}.gift-category-note{line-height:1.65}.gift-section-heading h2{font-size:1.75rem}
.gift-category,.gift-product{padding:22px}.gift-summary{padding:24px}.gift-category:focus-visible,.amount-option:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
.hourly-prices-table caption,.room-prices caption{font-size:.9375rem;line-height:1.5;padding-bottom:16px}
.hourly-prices-table th,.hourly-prices-table td{vertical-align:middle}
.footer-nav{gap:16px 24px}.footer-contact a,.application-footer a{overflow-wrap:anywhere}
dialog{max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;border-radius:var(--panel-radius)}
@media(max-width:1000px){.desktop-nav{gap:18px;padding-left:0}.desktop-nav a{font-size:.875rem}}
@media(min-width:601px) and (max-width:900px){.member-price-panel .member-primary-cta{grid-column:2;grid-row:2;margin-top:0}.member-price-panel .gift-category-cta{grid-column:2;grid-row:3;margin-top:12px}.member-price-panel .member-preregistration-note{grid-column:1/-1;grid-row:5}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.application-layout{gap:28px;padding-block:32px 48px}.application-panel,.contact-form-panel{padding:24px}.application-header{padding-inline:20px}.application-header .brand,.application-header .brand img{width:96px}.application-header .brand img{height:64px}.coaching-offer-grid{gap:20px}.coaching-offer-card{padding:24px}}
@media(max-width:600px){.hero{max-height:none}.hero .hero-actions{width:100%;max-width:100%}.hero .hero-actions .button{width:100%}.hero .hero-booking-status{display:block;width:fit-content;max-width:100%}.application-header{gap:16px}.application-back{min-width:0;font-size:.875rem;padding-inline:12px}.application-panel,.contact-form-panel{padding:24px 20px}.member-price-panel{padding:28px 24px}.gift-category,.gift-product{padding:18px}.gift-categories{gap:12px}.gift-category strong{font-size:1rem}.gift-category span{font-size:.875rem}.hourly-prices-table td{font-size:1.375rem}.hourly-prices-table th,.hourly-prices-table td{padding:16px 10px}.hourly-prices-table thead th{font-size:.875rem}.application-footer{gap:16px}.button{min-width:0}.footer-nav{gap:12px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
.form-field :is(input,textarea)::placeholder,.contact-form-field :is(input,textarea)::placeholder{color:#aebccd;opacity:1}
.coaching-custom-note{margin-top:28px;padding-top:24px;border-top:1px solid #ffffff26;font-size:1rem;line-height:1.65;color:#c6cfdd;max-width:100%}
.coaching-custom-note strong{color:var(--gold-light);font-weight:600;margin-right:8px}
