.booking-section{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(24px,5vw,64px);padding:72px max(6vw,24px);background:#0a0c0c;color:#f6f7f3;scroll-margin-top:84px}
.booking-intro h2{margin:14px 0;font-size:clamp(2rem,4vw,4rem);line-height:1.05;letter-spacing:-.04em}
.booking-intro>p:last-child{color:#aeb3aa;line-height:1.6;font-size:1rem}
#booking-calendar-root{min-width:0;scroll-margin-top:96px}
.booking-wizard,.booking-success,.booking-empty{padding:24px;border:1px solid #363c34;background:#121512;border-radius:12px}
.booking-wizard [hidden]{display:none!important}
.booking-progress{display:flex;gap:8px;padding:0;margin:0 0 22px;list-style:none;counter-reset:steps}
.booking-progress li{flex:1;font-size:.875rem;line-height:1.35;color:#aeb3aa;border-top:3px solid #3a4038;padding-top:8px;counter-increment:steps}
.booking-progress li:before{content:counter(steps) ". "}
.booking-progress [aria-current]{color:#c9ff4a;border-color:#c9ff4a;font-weight:800}
.booking-wizard h3,.booking-success h3{font-size:1.3rem;line-height:1.3;margin:0 0 18px;scroll-margin-top:100px}
.booking-wizard label{display:grid;gap:7px;font-size:.875rem;font-weight:700;min-width:0}
.booking-wizard input:not([type=radio]):not([type=checkbox]),.booking-wizard select,.booking-wizard textarea{box-sizing:border-box;width:100%;min-height:48px;padding:11px 12px;border:1px solid #a5aca0;border-radius:6px;background:#f4f6f0;color:#141714;font:inherit;font-size:1rem}
.booking-wizard textarea{resize:vertical}
.booking-wizard :focus-visible,.booking-retry:focus-visible{outline:2px solid #c9ff4a;outline-offset:3px}
.booking-wizard [aria-invalid=true]{border-color:#ffa9a2!important}
.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.booking-wide{grid-column:1/-1}
.booking-hint{margin:12px 0;color:#b7bdb3;font-size:.875rem;line-height:1.55}
.booking-hint:empty{display:none}
.booking-wizard fieldset{padding:0;border:0;margin:14px 0;min-width:0}
.booking-wizard legend{font-size:.875rem;font-weight:700;margin-bottom:8px}
.slot-list{display:flex;flex-wrap:wrap;gap:10px}
.slot-option{position:relative;cursor:pointer;flex:1;max-width:220px}
.slot-option input{position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%)}
.slot-option span{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px;border:1px solid #535b4d;border-radius:6px;background:#0c0e0c;font-size:1rem}
.slot-option small{font-size:.875rem;color:#afb6a7}
.slot-option input:checked+span{background:#c9ff4a;color:#0a0c0c;border-color:#c9ff4a}
.slot-option input:checked+span small{color:#27320a}
.slot-option input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}
.booking-optional{margin-top:18px;border-top:1px solid #363c34;padding-top:14px}
.booking-optional summary{cursor:pointer;min-height:36px;font-size:.875rem;font-weight:700}
.booking-optional small{font-weight:400;color:#aeb3aa}
.booking-optional .booking-grid{margin-top:14px}
.booking-honeypot{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.booking-review{margin:0;display:grid;gap:10px}
.booking-review div{padding-bottom:10px;border-bottom:1px solid #363c34;min-width:0}
.booking-review dt{font-size:.875rem;color:#aeb3aa}
.booking-review dd{margin:4px 0 0;font-size:1rem;line-height:1.45;overflow-wrap:anywhere}
.booking-wizard .booking-consent{display:flex;gap:10px;align-items:flex-start;margin:18px 0;font-weight:400;line-height:1.5}
.booking-consent input{width:20px;height:20px;flex:0 0 20px;accent-color:#c9ff4a;margin-top:3px}
.booking-consent button{background:none;border:0;padding:0;text-decoration:underline;color:#c9ff4a;font:inherit;cursor:pointer}
.booking-actions{display:flex;gap:12px;margin-top:20px}
.booking-actions button,.booking-retry{min-height:48px;padding:10px 16px;border:1px solid #59624f;background:transparent;color:#fff;border-radius:6px;font:inherit;font-size:1rem;font-weight:700;cursor:pointer}
.booking-actions .booking-submit{flex:1;background:#c9ff4a;color:#0a0c0c;border-color:#c9ff4a}
.booking-actions button:disabled{opacity:.6;cursor:wait}
.booking-message{padding:12px;margin:16px 0 0;background:#38241f;color:#ffccc6;border:1px solid #9f635c;border-radius:6px;font-size:1rem;line-height:1.5}
.booking-success{border-color:#c9ff4a}
.booking-success p,.booking-empty p{font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.booking-success a,.booking-empty a{color:#c9ff4a}
.booking-retry{margin-top:10px}
@media(max-width:820px){.booking-section{grid-template-columns:1fr;gap:20px;padding:48px 20px}.booking-intro h2{font-size:2.1rem}.booking-intro>p:last-child{margin-bottom:0}.booking-wizard,.booking-success,.booking-empty{padding:20px 16px}.booking-grid{grid-template-columns:1fr}.booking-progress{gap:6px}.booking-progress li{font-size:.875rem}.booking-wizard h3{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.booking-section{scroll-behavior:auto}}
@media(max-width:820px){.booking-in-view .mobile-cta{display:none}}
