html.booking-is-open{overflow:hidden}
#reserve.reservation-bar{background:oklch(95.6% .018 85);color:oklch(25% .055 275);display:flex;align-items:center;justify-content:space-between;gap:28px;padding:38px max(6vw,24px);isolation:isolate}
#reserve .eyebrow{color:oklch(39% .085 158)}
#reserve h2{color:oklch(25% .055 275)}
#reserve .bk-teaser{color:oklch(42% .025 275);font-size:15px;margin:12px 0 0}
#reserve .bk-open{background:oklch(33% .075 158);color:oklch(97% .015 85);white-space:nowrap;min-height:50px;padding:14px 30px}
.mx-booker{--bk-ink:oklch(25% .055 275);--bk-muted:oklch(44% .025 275);--bk-paper:oklch(97% .015 85);--bk-green:oklch(33% .075 158);width:min(920px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:0;border:0;border-radius:18px;background:var(--bk-paper);color:var(--bk-ink);box-shadow:0 24px 100px #090d2870;overflow:auto;font-family:var(--font-body, sans-serif);color-scheme:light}
.mx-booker::backdrop{background:oklch(16% .04 275 / .75)}
.mx-booker .bk-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;gap:24px;background-color:oklch(17% .035 275);background-image:linear-gradient(90deg,oklch(17% .035 275 / .45),oklch(17% .035 275 / .05)),url("../shared/mx-pattern.svg");background-size:auto,520px auto;background-position:center,right center;color:var(--bk-paper);padding:28px 34px 26px;border-bottom:4px solid oklch(83% .16 90)}
.mx-booker .bk-brand{color:oklch(83% .16 90);text-transform:uppercase;font:800 12px/1.2 var(--font-body);letter-spacing:.15em;margin:0 0 12px}
.mx-booker #bookerTitle{color:var(--bk-paper);font:400 34px/1.2 var(--font-heading,serif);margin:0}
.mx-booker .bk-intro{color:oklch(89% .02 85);margin:10px 0 0;font-size:15px}
.mx-booker .bk-close{flex:none;width:44px;height:44px;border:1px solid oklch(60% .03 275);border-radius:50%;background:transparent;color:var(--bk-paper);font:300 30px/1 sans-serif;cursor:pointer}
.mx-booker .bk-progress{display:flex;gap:24px;counter-reset:step;list-style:none;margin:0;padding:22px 34px;border-bottom:1px solid oklch(87% .02 85);color:var(--bk-muted);font-size:13px;font-weight:700}
.mx-booker .bk-progress li{display:flex;align-items:center;gap:8px;counter-increment:step}
.mx-booker .bk-progress li::before{content:counter(step);display:grid;place-items:center;width:24px;height:24px;border:1px solid oklch(77% .03 85);border-radius:50%;font-size:11px}
.mx-booker .bk-progress .is-active{color:var(--bk-green)}
.mx-booker .bk-progress .is-active::before{background:var(--bk-green);color:var(--bk-paper);border-color:var(--bk-green)}
.mx-booker .bk-body{padding:28px 34px 32px}
.mx-booker .booking-form{display:block;margin:0;background:transparent;padding:0;border:0}
.mx-booker .bk-native{display:none!important}
.mx-booker .bk-controls{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}
.mx-booker h3,.mx-booker legend{font:800 16px/1.4 var(--font-body);color:var(--bk-ink);margin:0 0 18px}
.mx-booker fieldset{border:0;padding:0;margin:0 0 28px;min-width:0}
.mx-booker .bk-month-nav{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px}
.mx-booker .bk-month-nav strong{text-transform:capitalize;font-size:16px;color:var(--bk-ink)}
.mx-booker .bk-month-nav button{width:40px;height:40px;border:1px solid oklch(82% .025 85);border-radius:8px;color:var(--bk-ink);background:transparent;font:24px sans-serif;cursor:pointer}
.mx-booker .bk-weekdays,.mx-booker .bk-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mx-booker .bk-weekdays span{text-align:center;font-size:11px;text-transform:uppercase;font-weight:700;color:var(--bk-muted);padding:6px 0 10px}
.mx-booker .bk-days button{height:42px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--bk-ink);font:700 14px var(--font-body);cursor:pointer}
.mx-booker .bk-days button[aria-current=date]{border-color:var(--bk-green)}
.mx-booker .bk-guests{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mx-booker .bk-guests button,.mx-booker .bk-times button{min-height:44px;border:1px solid oklch(78% .025 85);border-radius:8px;color:var(--bk-ink);background:transparent;font:700 15px var(--font-body);cursor:pointer}
.mx-booker .bk-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mx-booker .bk-controls button.is-chosen{background:var(--bk-green);border-color:var(--bk-green);color:var(--bk-paper)}
.mx-booker .bk-controls button:not(:disabled):not(.is-chosen):hover{background:oklch(92% .035 150);border-color:var(--bk-green)}
.mx-booker .bk-controls button:disabled{color:oklch(65% .015 85);cursor:not-allowed;text-decoration:line-through;opacity:.65}
.mx-booker button:focus-visible,.mx-booker a:focus-visible,.mx-booker input:focus-visible{outline:3px solid oklch(64% .13 158);outline-offset:3px}
.mx-booker .bk-group-link{display:inline-block;margin-top:12px;font:600 12px var(--font-body);color:var(--bk-green);text-decoration:underline;text-underline-offset:3px}
.mx-booker .bk-help{color:var(--bk-muted);font:400 13px/1.6 var(--font-body);margin:0}
.mx-booker .button{background:var(--bk-green);color:var(--bk-paper);min-height:48px;border:0;border-radius:8px;font:800 14px var(--font-body);box-shadow:none}
.mx-booker .bk-submit{display:block;width:100%;margin-top:28px}
.mx-booker .button:disabled{opacity:.5;cursor:not-allowed}
.mx-booker .booking-experience{margin:0;padding:0;border:0;background:transparent;color:var(--bk-ink)}
.mx-booker .booking-step-head h3,.mx-booker .booking-success h3{font:400 26px/1.3 var(--font-heading);color:var(--bk-ink)}
.mx-booker :is(.booking-guidance,.table-selection,.form-note,.booking-success p,.deposit-choice p,.guest-fields label,.deposit-choice label){color:var(--bk-muted);font-size:14px;line-height:1.6}
.mx-booker .eyebrow{color:var(--bk-green)}
.mx-booker .booking-back,.mx-booker .text-link{color:var(--bk-green);border-color:oklch(78% .025 85)}
.mx-booker .guest-fields input{background:oklch(99% .005 85);color:var(--bk-ink);border:1px solid oklch(75% .025 85);min-height:48px;font-size:16px}
.mx-booker .deposit-choice{background:oklch(93% .025 85);padding:18px;border:1px solid oklch(84% .025 85);border-radius:8px;margin:22px 0}
.mx-booker .deposit-choice input{accent-color:var(--bk-green)}
.mx-booker.bk-later #bookingForm{display:none}
.mx-booker #bookingFeedback:empty{display:none}
.mx-booker #guestFloorPlan{margin:18px 0}
.mx-booker #guestFloorPlan.venue-floor-ready{height:min(46vh,420px)!important;aspect-ratio:auto!important;min-height:280px!important}
@media(max-width:640px){#reserve.reservation-bar{flex-direction:column;align-items:stretch;padding:30px 22px;gap:20px}.mx-booker{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:14px}.mx-booker .bk-header{padding:22px 20px}.mx-booker #bookerTitle{font-size:27px}.mx-booker .bk-intro{font-size:13px}.mx-booker .bk-progress{padding:16px 18px;gap:12px;font-size:11px;justify-content:space-between}.mx-booker .bk-progress li{gap:5px}.mx-booker .bk-progress li::before{width:20px;height:20px}.mx-booker .bk-body{padding:22px 18px}.mx-booker .bk-controls{grid-template-columns:1fr;gap:26px}.mx-booker .bk-calendar{max-width:420px;width:100%;margin:auto}.mx-booker .bk-times{grid-template-columns:repeat(4,1fr)}.mx-booker .guest-fields{grid-template-columns:1fr}.mx-booker .booking-step-head{flex-wrap:wrap;gap:12px}.mx-booker .bk-submit{margin-top:20px}}
@media(prefers-reduced-motion:no-preference){.mx-booker[open]{animation:booker-enter .2s ease-out}@keyframes booker-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}

/* The hanging flags start the blue reviews section below the booking banner. */
.mx-skin .reviews.mx-reviews-decorated{position:relative;padding-top:calc(clamp(58px,7vw,92px) + 48px)}

/* Straw sombrero accents have their own space, clear of text and controls. */
.mx-skin img.mx-sombrero{display:block;width:190px;height:auto;max-width:55%;object-fit:contain;margin:0 auto 24px;transform:rotate(-8deg);pointer-events:none;user-select:none;filter:drop-shadow(0 10px 10px #080d242b)}
.mx-skin .about img.mx-sombrero{width:130px;transform:rotate(9deg);margin-bottom:20px}
@media(max-width:640px){.mx-skin img.mx-sombrero{width:140px;margin-bottom:18px}.mx-skin .about img.mx-sombrero{width:110px}}

/* A sombrero perched on the reservation button, outside its click target. */
#reserve .bk-open{position:relative;overflow:visible;margin-top:42px}
#reserve .bk-open::before{content:"";position:absolute;width:94px;height:94px;right:4px;top:-76px;background:url("../assets/images/sombrero-cutout.png") center/contain no-repeat;transform:rotate(14deg);pointer-events:none;filter:drop-shadow(0 4px 3px #090d2430)}
@media(max-width:640px){#reserve .bk-open{margin-top:54px}#reserve .bk-open::before{right:calc(50% - 47px);transform:rotate(-10deg)}}
