.booking-page{background:#34261e;color:#f7f1e8}.booking-page .site-header{position:absolute;background:rgba(15,12,10,.24);border-bottom-color:rgba(255,255,255,.14)}
.booking-hero{min-height:360px;display:flex;align-items:flex-end;padding:138px 0 54px;background:radial-gradient(circle at 79% 18%,rgba(196,143,83,.2),transparent 30%),linear-gradient(118deg,#1d1511,#3b291f 58%,#503727);border-bottom:1px solid rgba(255,255,255,.13)}.booking-hero h1{margin:0;font:500 clamp(3.2rem,6vw,5.8rem)/.98 var(--serif);letter-spacing:-.04em}.booking-hero .eyebrow{color:#d9b783}.booking-hero p:last-child{max-width:690px;margin:15px 0 0;color:rgba(255,255,255,.74)}
.booking-assurance{background:#ded2c2;color:#2b211b}.booking-assurance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.booking-assurance-item{padding:19px 25px;border-right:1px solid rgba(79,55,36,.16)}.booking-assurance-item:first-child{padding-left:0}.booking-assurance-item:last-child{border:0}.booking-assurance-item span,.booking-assurance-item strong{display:block}.booking-assurance-item span{margin-bottom:4px;color:#75512e;font-size:.62rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.booking-assurance-item strong{font-size:.84rem;font-weight:400}
.booking-main{padding:46px 0 70px}.booking-shell{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);gap:24px;align-items:start}.booking-panel{padding:26px;background:#281d17;border:1px solid rgba(255,255,255,.14)}.booking-panel h2{margin:0 0 8px;font:500 clamp(2rem,3.7vw,3.1rem)/1.05 var(--serif)}.booking-intro{margin:0 0 22px;color:rgba(255,255,255,.67);font-size:.88rem}.booking-step{padding:20px 0;border-top:1px solid rgba(255,255,255,.13)}.booking-step:first-of-type{border-top:0;padding-top:0}.booking-step-heading{display:flex;align-items:center;gap:11px;margin-bottom:12px}.booking-step-number{display:inline-flex;width:27px;height:27px;align-items:center;justify-content:center;border:1px solid #cda66f;border-radius:50%;color:#e7c596;font-size:.7rem}.booking-step h3{margin:0;font:500 1.28rem/1.2 var(--serif)}
.booking-field{display:grid;gap:6px}.booking-field>span,.booking-form>label>span,.booking-form legend{color:#d9b783;font-size:.65rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.booking-field select,.booking-field input,.booking-form input,.booking-form select{width:100%;min-height:48px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:0;background:#f7f1e8;color:#251b16;font:400 .88rem/1.3 var(--sans)}.booking-variant-grid,.booking-slot-grid{display:flex;flex-wrap:wrap;gap:8px}.booking-choice{min-height:42px;padding:9px 13px;border:1px solid rgba(217,183,131,.55);background:transparent;color:#e8c89b;font:500 .69rem/1.1 var(--sans);letter-spacing:.06em;cursor:pointer}.booking-choice:hover,.booking-choice.active{background:#cda66f;color:#1d1612;border-color:#cda66f}.booking-choice:disabled{opacity:.38;cursor:not-allowed}.booking-slot-grid{max-height:188px;overflow:auto;padding-right:5px}.booking-slot{min-width:72px}.booking-empty{margin:0;color:rgba(255,255,255,.62);font-size:.8rem}.booking-summary{position:sticky;top:18px;padding:24px;background:#ded2c2;color:#2b211b;border:1px solid rgba(79,55,36,.18)}.booking-summary .eyebrow{color:#75512e}.booking-summary h2{margin:0 0 17px;font:500 2rem/1.05 var(--serif)}.booking-summary-list{display:grid;gap:0;margin:0 0 19px}.booking-summary-list div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(79,55,36,.16)}.booking-summary-list dt{color:#6b5d51;font-size:.73rem}.booking-summary-list dd{margin:0;text-align:right;font-size:.78rem;font-weight:500}.booking-form{display:grid;gap:13px}.booking-form>label{display:grid;gap:6px}.booking-terms{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:9px;padding-top:3px;color:#55483d;font-size:.75rem;line-height:1.4}.booking-terms input{width:18px;min-height:18px;margin:1px 0 0;flex:0 0 18px;accent-color:#75512e}.booking-terms a{text-decoration:underline}.booking-privacy{margin:0;color:#665b52;font-size:.71rem}.booking-privacy a{text-decoration:underline}.booking-submit{min-height:54px;padding:12px 18px;border:1px solid #cda66f;background:#cda66f;color:#171310;font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.booking-submit:disabled{cursor:not-allowed;opacity:.55}.booking-submit:not(:disabled):hover{background:#d7b786}.booking-result{display:none;margin:0;padding:11px;border:1px solid rgba(79,55,36,.2);font-size:.77rem}.booking-result.visible{display:block}.booking-result.error{background:rgba(153,67,50,.1)}.booking-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.booking-shell[hidden]{display:none!important}
.booking-date-picker{position:relative}.booking-date-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;opacity:0!important;pointer-events:none!important}.booking-date-trigger{display:flex;width:100%;min-height:48px;align-items:center;justify-content:flex-start;padding:10px 40px 10px 12px;border:1px solid rgba(255,255,255,.18);background:#f7f1e8;color:#251b16;font:400 .88rem/1.3 var(--sans);cursor:pointer;position:relative}.booking-date-trigger::after{content:"▾";position:absolute;right:13px;color:#75512e}.booking-date-trigger:focus-visible{outline:2px solid #d9b783;outline-offset:2px}.booking-calendar[hidden]{display:none}.booking-calendar{position:absolute;z-index:20;top:calc(100% + 7px);left:0;width:min(320px,100%);padding:12px;background:#f7f1e8;color:#2b211b;border:1px solid rgba(79,55,36,.22);box-shadow:0 14px 30px rgba(13,9,7,.26)}.booking-calendar-header{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:4px;margin-bottom:8px}.booking-calendar-title{text-align:center;font:500 1rem/1.2 var(--serif);text-transform:capitalize}.booking-calendar-nav{width:38px;height:38px;border:1px solid rgba(79,55,36,.2);background:transparent;color:#5e3d20;cursor:pointer}.booking-calendar-nav:disabled{opacity:.3;cursor:not-allowed}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.booking-calendar-weekday{padding:5px 0;text-align:center;color:#75512e;font-size:.62rem;font-weight:600;letter-spacing:.04em}.booking-calendar-blank{min-height:36px}.booking-calendar-day{display:flex;min-width:0;min-height:36px;align-items:center;justify-content:center;padding:0;border:1px solid transparent;background:transparent;color:#2b211b;font:500 .76rem/1 var(--sans);cursor:pointer}.booking-calendar-day:hover,.booking-calendar-day:focus-visible{border-color:#cda66f}.booking-calendar-day.selected{background:#cda66f;color:#1d1612}.booking-calendar-day:disabled{opacity:.28;cursor:not-allowed}.booking-calendar-day.closed-day:disabled{opacity:1;color:#8b7d70;background:rgba(79,55,36,.06);border-color:rgba(79,55,36,.08)}
.booking-context{margin:-8px 0 20px;padding:10px 12px;border-left:2px solid #cda66f;background:rgba(205,166,111,.08);color:#e8d5b8;font-size:.76rem;line-height:1.45}
.booking-happy-hours-context .booking-hero .eyebrow{display:inline-flex;padding:7px 11px;border:1px solid rgba(218,181,128,.55);background:rgba(205,166,111,.12);color:#f0cf9f}.booking-happy-hours-context .booking-context{padding:13px 15px;border:1px solid rgba(205,166,111,.42);border-left:3px solid #cda66f;background:rgba(205,166,111,.13);color:#f2dfc1;font-size:.86rem;font-weight:400}
.booking-addons-step .booking-step-heading{align-items:flex-start}.booking-addons-step .booking-step-heading p{margin:3px 0 0;color:rgba(255,255,255,.62);font-size:.72rem}.booking-addon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.booking-addon-choice{display:flex;min-width:0;min-height:52px;align-items:center;gap:9px;padding:9px 11px;border:1px solid rgba(217,183,131,.42);color:#f2e5d3;cursor:pointer}.booking-addon-choice:has(input:checked){background:rgba(205,166,111,.16);border-color:#cda66f}.booking-addon-choice input{width:18px;height:18px;margin:0;flex:0 0 18px;accent-color:#cda66f}.booking-addon-choice span,.booking-addon-choice strong,.booking-addon-choice small{display:block;min-width:0}.booking-addon-choice strong{font-size:.74rem;font-weight:500;line-height:1.25}.booking-addon-choice small{margin-top:3px;color:#d9b783;font-size:.66rem}.booking-summary-list dd{overflow-wrap:anywhere}
.booking-voucher{display:grid;gap:8px;margin:2px 0;padding:13px;border:1px solid rgba(79,55,36,.18)}.booking-voucher legend{padding:0 5px;color:#75512e!important}.booking-voucher-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.booking-voucher-entry input{text-transform:uppercase;letter-spacing:.16em;font-weight:600}.booking-voucher-entry button,.booking-voucher-use{min-height:48px;padding:10px 13px;border:1px solid #75512e;background:transparent;color:#5e3d20;font:600 .62rem/1.2 var(--sans);letter-spacing:.09em;text-transform:uppercase;cursor:pointer}.booking-voucher-entry button:hover,.booking-voucher-use:hover{background:#75512e;color:#f7f1e8}.booking-voucher-entry button:disabled{opacity:.55;cursor:wait}.booking-voucher-status{display:none;margin:0;color:#4f6546;font-size:.72rem;line-height:1.4}.booking-voucher-status.visible{display:block}.booking-voucher-status.error{color:#8b5144}.booking-voucher-use{justify-self:start;min-height:42px}
.booking-payment-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px;min-width:0;margin:0;padding:0;border:0}.booking-payment-choice legend{grid-column:1/-1;margin-bottom:1px}.booking-payment-choice label{display:flex;min-height:44px;align-items:center;gap:8px;padding:10px;border:1px solid rgba(75,50,29,.24);background:rgba(255,255,255,.28);font-size:.78rem}.booking-payment-choice input{width:auto;min-height:0;margin:0;accent-color:#75512e}.stripe-payment-element{min-width:0;padding:13px;border:1px solid rgba(75,50,29,.24);background:#f7f1e8}.stripe-payment-element[hidden]{display:none}
.booking-tip-choice{display:grid;gap:9px;min-width:0;margin:0;padding:13px;border:1px solid rgba(75,50,29,.24);background:rgba(255,255,255,.2)}.booking-tip-choice[hidden]{display:none}.booking-tip-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.booking-tip-options button,.booking-tip-custom button{min-height:42px;padding:9px 7px;border:1px solid rgba(75,50,29,.3);background:rgba(255,255,255,.38);color:#35261d;font:600 .68rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.booking-tip-options button.active,.booking-tip-options button:hover,.booking-tip-options button:focus-visible,.booking-tip-custom button:hover,.booking-tip-custom button:focus-visible{border-color:#b88d50;background:#cda66f;color:#171310}.booking-tip-custom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px}.booking-tip-custom[hidden]{display:none}.booking-tip-custom label{display:grid;gap:6px}.booking-tip-custom label span{color:#75512e;font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.booking-tip-custom input{min-width:0}.booking-tip-custom button{min-width:82px}
.booking-confirmation{padding:28px;background:#ded2c2;color:#2b211b;border:1px solid rgba(79,55,36,.18)}.booking-confirmation h2{font-size:2.35rem}.booking-confirmation-card{display:grid;gap:7px;margin:20px 0;padding:17px;background:#f4ede3}.booking-confirmation-card strong{font-size:1rem}.booking-confirmation-actions{display:flex;flex-wrap:wrap;gap:12px}.booking-confirmation .button{min-height:46px}.booking-confirmation .text-link{color:#684623;border-bottom-color:rgba(104,70,35,.4)}
.booking-victory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:12px 0 0}.booking-victory-list>div{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr);gap:12px;padding:10px 0;border-bottom:1px solid rgba(79,55,36,.12)}.booking-victory-list dt{color:#795f4a;font-size:.74rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.booking-victory-list dd{margin:0;font-size:.94rem;line-height:1.45}.booking-victory-list .booking-victory-payment{grid-column:1/-1}.booking-victory-payment dd{font-weight:500}
.manage-card{max-width:780px;margin:auto}.manage-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.manage-form[hidden]{display:none}.manage-form .booking-field-wide{grid-column:1/-1}.manage-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px}.manage-cancel{min-height:46px;padding:10px 16px;border:1px solid #8b5144;background:transparent;color:#8b5144;font:600 .67rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.manage-confirmation{display:grid;gap:14px;padding:7px 2px}.manage-confirmation[hidden]{display:none}.manage-confirmation h2{margin:0;font:500 clamp(2rem,4.6vw,3.35rem)/1.05 var(--serif)}.manage-confirmation>p{max-width:650px;margin:0;color:rgba(255,255,255,.72);line-height:1.6}.manage-confirmation .eyebrow{color:#d9b783;font-size:.64rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.manage-confirmation-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:7px 0 4px}.manage-confirmation-details>div{display:grid;grid-template-columns:minmax(95px,.7fr) minmax(0,1.3fr);gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.13)}.manage-confirmation-details dt{color:#d9b783;font-size:.65rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.manage-confirmation-details dd{margin:0;color:#f7f1e8;overflow-wrap:anywhere}.manage-confirmation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:8px}.manage-confirmation-actions .booking-submit{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.manage-secondary-link{padding:10px 0;border-bottom:1px solid rgba(217,183,131,.5);color:#e8c89b;font-size:.69rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:900px){.booking-shell{grid-template-columns:1fr}.booking-summary{position:static}.booking-panel{grid-row:1}.booking-summary{grid-row:2}}
@media(max-width:620px){.booking-hero{min-height:235px;padding:92px 0 29px}.booking-hero h1{font-size:2.7rem}.booking-hero p:last-child{margin-top:10px;font-size:.82rem;line-height:1.4}.booking-assurance-grid{grid-template-columns:1fr}.booking-assurance-item,.booking-assurance-item:first-child{padding:11px 0;border-right:0;border-bottom:1px solid rgba(79,55,36,.14)}.booking-assurance-item:last-child{border-bottom:0}.booking-main{padding:24px 0 38px}.booking-panel,.booking-summary,.booking-confirmation{padding:18px 15px}.booking-panel h2{font-size:2rem}.booking-step{padding:16px 0}.booking-addon-grid{grid-template-columns:1fr}.booking-addon-choice{min-height:50px}.booking-slot-grid{max-height:230px}.booking-choice{min-height:44px}.booking-summary h2{font-size:1.75rem}.booking-victory-list{grid-template-columns:1fr}.booking-victory-list .booking-victory-payment{grid-column:auto}.booking-victory-list>div{grid-template-columns:minmax(82px,.65fr) minmax(0,1.35fr);gap:10px}.manage-form{grid-template-columns:1fr}.manage-form .booking-field-wide,.manage-actions{grid-column:auto}.manage-confirmation-details{grid-template-columns:1fr}.manage-confirmation-actions{align-items:stretch;gap:13px}.manage-confirmation-actions .booking-submit{width:100%}.manage-secondary-link{justify-self:start}.booking-page .site-footer{padding-bottom:max(86px,calc(env(safe-area-inset-bottom) + 76px))}}
@media(orientation:landscape) and (max-height:500px){.booking-hero{min-height:185px;padding:78px 0 24px}.booking-hero h1{font-size:clamp(2.45rem,7vw,4rem)}.booking-main{padding-top:25px}}
@media(max-width:390px){.booking-voucher-entry,.booking-payment-choice{grid-template-columns:1fr}.booking-voucher-entry button{width:100%}.booking-payment-choice legend{grid-column:auto}.booking-tip-options{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-tip-custom{grid-template-columns:1fr}.booking-tip-custom button{width:100%}}
@media(max-width:620px){.booking-calendar{width:100%}.booking-calendar-day{min-height:40px}}
.booking-result.visible{display:grid;gap:10px}.payment-check-again{justify-self:start;min-height:42px;padding:9px 13px;border:1px solid #75512e;background:transparent;color:#3a2a20;font:600 .65rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.payment-check-again:hover,.payment-check-again:focus-visible{background:#75512e;color:#fff}

/* Public body-copy readability */
.booking-hero p:last-child{color:rgba(255,255,255,.8);font-size:.96rem;line-height:1.5}
.booking-assurance-item strong{font-size:.9rem;font-weight:500;line-height:1.45}
.booking-intro{color:rgba(255,255,255,.78);font-size:.94rem;line-height:1.5}
.booking-field select,.booking-field input,.booking-form input,.booking-form select,.booking-date-trigger{font-size:.92rem;line-height:1.35}
.booking-empty{color:rgba(255,255,255,.76);font-size:.86rem;line-height:1.45}
.booking-summary-list dt{color:#5b4f46;font-size:.79rem}.booking-summary-list dd{font-size:.84rem}
.booking-terms{font-size:.81rem;line-height:1.45}.booking-privacy{color:#554a41;font-size:.78rem;line-height:1.45}
.booking-result{font-size:.82rem;line-height:1.45}.booking-context{font-size:.82rem}
.booking-addons-step .booking-step-heading p{color:rgba(255,255,255,.76);font-size:.78rem;line-height:1.4}
.booking-addon-choice strong{font-size:.8rem}.booking-addon-choice small{font-size:.73rem}
.booking-voucher-status{font-size:.78rem}.booking-payment-choice label{font-size:.84rem}
@media(max-width:620px){.booking-hero p:last-child{font-size:.88rem;line-height:1.45}}
