.booking-layout{display:grid;gap:40px;padding-block:40px 64px;max-width:1160px}.booking-intro h1{font-size:clamp(4.5rem,9vw,7rem);line-height:.9;text-transform:uppercase;margin:18px 0 24px;letter-spacing:-.025em}.booking-intro h1 span{color:var(--color-brace)}.booking-intro>p:not([class]){font-size:1rem;line-height:1.7;max-width:34ch}.booking-photograph{display:none;margin-block:32px}.booking-photograph img{width:100%;height:100%;object-fit:cover;border-radius:6px}.booking-photograph figcaption{font-size:.75rem;color:var(--color-muted);margin-top:10px}.booking-contact{margin-top:24px;font-size:.8125rem;line-height:1.7;display:grid;gap:2px}.booking-contact>p{color:var(--color-muted)}.booking-contact a{min-height:44px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;text-underline-offset:5px}.booking-contact a:last-child{text-decoration:underline}.booking-panel{min-width:0;background:var(--color-cream-2);border-radius:8px;padding:24px 20px;align-self:start}.booking-progress{display:flex;justify-content:space-between;list-style:none;padding:0 0 22px;border-bottom:1px solid var(--color-brown-300);gap:12px}.booking-progress li{display:flex;align-items:center;gap:7px;font-size:.75rem;font-weight:650;color:var(--color-muted)}.booking-progress li>span{border:1px solid var(--color-brown-500);display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:50%;font-size:.6875rem}.booking-progress [aria-current]{color:var(--color-brown-900)}.booking-progress [aria-current]>span{background:var(--color-brown-900);color:var(--color-cream);border-color:var(--color-brown-900)}.booking-progress .is-complete>span{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-brown-900)}.booking-mode-note{font-size:.75rem;line-height:1.65;margin-block:16px 28px;color:var(--color-muted)}.booking-mode-note a{color:var(--color-brown-900);text-decoration:underline;text-underline-offset:3px;font-weight:700}.booking-event-context{margin:0 0 24px;padding:20px;background:var(--color-cream);border:1px solid var(--color-brown-300);border-radius:6px}.booking-event-context>strong{display:block;font:700 1.75rem/1.1 var(--font-display);margin:8px 0;text-transform:uppercase}.booking-event-context>p:not(.restaurant-kicker){font-size:.875rem;line-height:1.6}[data-event-status]:not([hidden]){margin-bottom:24px}.booking-section-heading{margin-bottom:24px}.booking-section-heading h2{font-size:clamp(2.25rem,4vw,3rem);text-transform:uppercase;margin-top:8px;scroll-margin-top:110px}.booking-section-heading h2:focus:not(:focus-visible){outline:none}.booking-fields{display:grid;gap:20px 16px}.booking-field{min-width:0}.booking-field>label{display:block;font-size:.875rem;font-weight:750;line-height:1.5;margin-bottom:8px}.booking-field>label span{font-weight:450;color:var(--color-muted)}.booking-field input,.booking-field select,.booking-field textarea{display:block;width:100%;min-width:0;min-height:54px;border:1px solid var(--color-brown-500);background:var(--color-cream);padding:14px;border-radius:5px;color:var(--color-brown-900);font:500 1rem/1.5 var(--font-body)}.booking-field select{cursor:pointer;padding-right:24px}.booking-field textarea{resize:vertical}.booking-field input::placeholder{color:var(--color-muted);font-weight:400}.booking-field input[type=date]{min-height:54px;font-variant-numeric:tabular-nums}.booking-field [aria-invalid=true]{border:2px solid var(--color-brace);padding:13px}.booking-caption{color:var(--color-muted);font-size:.75rem;line-height:1.7;margin-top:10px}.booking-contact-note{margin:-8px 0 24px}.booking-quick-dates,.booking-meal-filters{display:flex;gap:8px;flex-wrap:wrap}.booking-quick-dates{margin-top:12px}.booking-quick-dates button,.booking-meal-filters button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 12px;border-radius:5px;background:transparent;border:1px solid var(--color-brown-300);font-size:.75rem;font-weight:650;cursor:pointer}.booking-quick-dates [aria-pressed=true]{border-color:var(--color-brown-900);background:var(--color-cream)}.booking-meal-filters{margin:16px 0 8px}.booking-meal-filters button{border:0}.booking-meal-filters [aria-pressed=true]{background:var(--color-brown-900);color:var(--color-cream)}.booking-slot-fieldset{border:0;padding:0;min-width:0;margin:26px 0 0}.booking-slot-fieldset legend{font-size:.875rem;font-weight:750}.booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.booking-slot{position:relative;cursor:pointer}.booking-slot input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.booking-slot>span{display:flex;align-items:center;justify-content:center;min-height:50px;border:1px solid var(--color-brown-500);border-radius:5px;background:var(--color-cream);font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums}.booking-slot input:checked+span{background:var(--color-gold);border:2px solid var(--color-brown-900)}.booking-slot input:focus-visible+span{outline:3px solid var(--color-brace);outline-offset:3px}.booking-retry,.booking-back{display:inline-flex;align-items:center;min-height:44px;font-size:.8125rem;font-weight:650;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.booking-retry{margin-top:10px}.booking-next{width:100%;justify-content:space-between;margin-top:28px}.booking-panel .action-gold{min-height:54px;font-size:.875rem}.booking-panel .action-gold:disabled{background:var(--color-brown-300);color:var(--color-brown-700);cursor:not-allowed;transform:none}.booking-direct{display:flex;flex-direction:column;margin-top:28px;padding-top:24px;border-top:1px solid var(--color-brown-300);font-size:.75rem;color:var(--color-muted);line-height:1.65}.booking-direct a{display:flex;align-items:center;min-height:44px;color:var(--color-brown-900);text-decoration:underline;text-underline-offset:4px;font-size:.8125rem;font-weight:650}.booking-loading{font-size:.9375rem;min-height:220px;display:flex;align-items:center;color:var(--color-muted)}.booking-inline-error{color:#8f301c;font-size:.8125rem;line-height:1.6;margin-top:8px}.booking-extra{margin-top:24px;border-block:1px solid var(--color-brown-300);padding-block:8px}.booking-extra summary{min-height:44px;cursor:pointer;padding-block:12px;font-size:.875rem;font-weight:650}.booking-extra .booking-field{padding-block:12px}.booking-consents{display:grid;gap:20px;margin-top:24px}.booking-check{display:grid;grid-template-columns:22px 1fr;align-items:start;gap:12px;min-height:44px;cursor:pointer;font-size:.8125rem;line-height:1.65}.booking-check input{width:22px;height:22px;accent-color:var(--color-brown-900);margin-top:3px;cursor:pointer}.booking-check a{text-decoration:underline;text-underline-offset:3px}.booking-check small{display:block;margin-top:4px;font-size:.75rem;color:var(--color-muted)}.booking-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:28px}.booking-actions .action-gold{flex-grow:1;justify-content:space-between}.booking-summary{background:var(--color-cream);padding:24px;border-radius:5px}.booking-summary-brand{font:700 2.1rem/1 var(--font-display);letter-spacing:-.02em;padding-bottom:20px;border-bottom:1px dashed var(--color-brown-300)}.booking-summary-brand span{font:600 .625rem var(--font-body);letter-spacing:.18em;display:block;margin-top:8px}.booking-summary dl{margin-top:16px;display:grid;gap:12px}.booking-summary dl>div{display:grid;grid-template-columns:76px 1fr;gap:16px;font-size:.875rem;line-height:1.6}.booking-summary dt{color:var(--color-muted)}.booking-summary dd{font-weight:650;overflow-wrap:anywhere;white-space:pre-line}.booking-notice{margin-top:24px;font-size:.875rem;line-height:1.7}.booking-notice p{margin-top:8px}.booking-notice a{text-decoration:underline;display:flex;align-items:center;min-height:44px}.booking-notice button{margin-top:16px}.booking-summary~.booking-back{margin-top:12px}.booking-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.booking-receipt h2{font-size:clamp(2.25rem,4vw,3rem);line-height:1.08;text-transform:uppercase;margin-block:12px 24px;scroll-margin-top:110px}.booking-receipt [data-receipt-description]{font-size:1rem;line-height:1.75}.booking-receipt-selection{font-size:.875rem;font-weight:750;line-height:1.7;margin-block:20px}.booking-receipt .booking-back{display:flex;margin-top:16px}.booking-receipt[data-kind=warning] h2{color:var(--color-brace)}@media(min-width:420px){.booking-fields{grid-template-columns:1fr 1fr}.booking-field-full{grid-column:1/-1}.booking-slots{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:640px){.booking-panel{padding:32px}.booking-progress li{font-size:.8125rem}.booking-progress li>span{width:28px;height:28px}}@media(max-width:959px){.booking-layout{gap:28px;padding-top:28px}.booking-intro h1{font-size:clamp(3.6rem,12vw,5.5rem);margin:12px 0 16px}.booking-intro>p:not([class]){font-size:.9375rem}.booking-contact{display:none}}@media(min-width:960px){.booking-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,80px);padding-block:56px 88px}.booking-photograph{display:block}.booking-photograph img{aspect-ratio:4/3}.booking-intro{position:sticky;top:108px;align-self:start}.booking-panel{padding:32px}}@media(hover:hover){.booking-slot:hover>span{border-color:var(--color-brown-900)}.booking-quick-dates button:hover,.booking-meal-filters button:hover{box-shadow:inset 0 0 0 1px var(--color-brown-500)}}@media(prefers-reduced-motion:reduce){.booking-panel *{scroll-behavior:auto;transition:none}}
