.booking-calendar{--booking-calendar-col:calc(var(--control-h) + 2 * var(--focus-ring-reach));--booking-calendar-measure:calc(var(--container-sm) + 2 * var(--space-4));position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--color-surface);color:var(--color-body);overflow:hidden;overscroll-behavior:contain}.booking-calendar[open]{display:flex;flex-direction:column;transition:transform var(--dur-drawer) var(--ease-drawer)}@starting-style{.booking-calendar[open]{transform:translateY(var(--sheet-travel))}}.booking-calendar.is-closing{transform:translateY(var(--sheet-travel));transition:transform var(--dur-fast) var(--ease-out);pointer-events:none}@media (prefers-reduced-motion:reduce){.booking-calendar[open]{transition:opacity var(--dur-drawer) var(--ease-out)}@starting-style{.booking-calendar[open]{opacity:0}}.booking-calendar.is-closing{opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}}.booking-calendar::backdrop{transition:opacity var(--dur-drawer) var(--ease-drawer)}@starting-style{.booking-calendar[open]::backdrop{opacity:0}}.booking-calendar.is-closing::backdrop{opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}@media not all and (min-width:900px){html:has(.booking-calendar[open]){overflow:hidden}}.booking-calendar-header{flex:none;display:grid;grid-template-columns:var(--control-h-sm) minmax(0,1fr) var(--control-h-sm);grid-template-areas:"lead title trail";align-items:center;column-gap:var(--space-2);min-height:calc(var(--control-h) + var(--space-3));padding:var(--space-1);padding-top:max(var(--space-1),env(safe-area-inset-top,0px));background:var(--color-surface)}.booking-calendar-title{grid-area:title;margin:0;font-family:var(--font-sans);font-size:1rem;font-weight:600;line-height:1.3;color:var(--color-ink);text-align:center;text-wrap:balance;overflow-wrap:anywhere}.booking-calendar-back,.booking-calendar-close{grid-area:lead}.booking-calendar:not([data-view="times"]) .booking-calendar-back,.booking-calendar[data-view="times"] .booking-calendar-close,.booking-calendar:not([data-view="times"]) .booking-calendar-times{display:none}.booking-calendar-icon-btn{justify-self:center;display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-sm);height:var(--control-h-sm);padding:0;border:0;border-radius:var(--radius-pill);background:none;color:var(--color-muted);cursor:pointer;transition:background-color var(--dur-base) var(--ease),color var(--dur-base) var(--ease)}.booking-calendar-icon-btn svg{width:var(--icon-md);height:var(--icon-md)}@media (hover:hover){.booking-calendar-icon-btn:hover{background:var(--color-sand);color:var(--color-ink)}}.booking-calendar-icon-btn:active{transform:scale(var(--press-scale-icon))}.booking-calendar-body{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.booking-calendar-days{flex:1;min-height:0;display:flex;flex-direction:column}.booking-calendar[data-view="times"] .booking-calendar-days{visibility:hidden}.booking-calendar-weekbar{flex:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);overflow:hidden;scrollbar-gutter:stable both-edges;font-size:0.75rem;font-weight:600;line-height:1.5;color:var(--color-muted);text-align:center}.booking-calendar-weekbar>span{min-width:0}.booking-calendar-months{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;padding:0 var(--space-4) var(--space-8)}@media (min-width:560px){.booking-calendar-weekbar,.booking-calendar-months{padding-inline:max(var(--space-4),calc((100% - var(--booking-calendar-measure)) / 2 + var(--space-4)))}}.booking-calendar-month{padding-top:var(--space-5)}.booking-calendar-month + .booking-calendar-month{padding-top:var(--space-6)}.booking-calendar-month-title{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--color-ink)}.booking-calendar-weekdays{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.booking-calendar-weeks{display:grid;row-gap:var(--space-2)}.booking-calendar-week,.booking-calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}.booking-calendar-week{display:grid;container-type:inline-size}.booking-calendar-day{--booking-calendar-disc:min(calc(100cqi / 7 - var(--space-1)),var(--control-h));position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;width:100%;min-width:0;height:var(--control-h);padding:0;border:0;border-radius:0;background:none;font-family:var(--font-sans);font-size:1rem;font-weight:400;line-height:1;color:var(--color-ink);cursor:pointer;-webkit-tap-highlight-color:transparent}.booking-calendar-day::before{content:"";position:absolute;top:50%;left:50%;z-index:-1;width:var(--booking-calendar-disc);aspect-ratio:1;border-radius:50%;translate:-50% -50%;transition:background-color var(--dur-fast) var(--ease)}.booking-calendar-day.is-empty{pointer-events:none}@media (hover:hover){.booking-calendar-day:not([aria-disabled="true"]):hover::before{background:var(--color-sand)}}.booking-calendar-day:focus-visible{outline:none}.booking-calendar-day:focus-visible::before{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.booking-calendar-day.is-today{font-weight:600;color:var(--color-primary)}.booking-calendar-day.is-struck,.booking-calendar-day.is-loading{color:var(--color-muted)}.booking-calendar-day.is-struck{text-decoration:line-through;text-decoration-thickness:1px;cursor:not-allowed}.booking-calendar-day.is-loading{cursor:progress}.booking-calendar-day.is-selected{color:var(--color-on-dark-heading)}.booking-calendar-day.is-selected::before,.booking-calendar-day.is-selected:hover::before{background:var(--color-primary-fill)}.booking-calendar-day.is-in-band{--booking-calendar-band:var(--color-open-slots-tint);--booking-calendar-band-before:var(--booking-calendar-band);--booking-calendar-band-after:var(--booking-calendar-band);background:linear-gradient(to right,var(--booking-calendar-band-before) 50%,var(--booking-calendar-band-after) 50%) center / 100% var(--booking-calendar-disc) no-repeat}.booking-calendar-day.is-in-band:is(.is-band-start,:first-of-type,.is-empty + *){--booking-calendar-band-before:transparent}.booking-calendar-day.is-in-band:is(.is-band-end,:last-of-type,:has(+ .is-empty)){--booking-calendar-band-after:transparent}.booking-calendar-day.is-in-band.is-preview{--booking-calendar-band:var(--color-primary-tint)}.booking-calendar-day.is-in-band:is(.is-band-start,.is-band-end,:first-of-type,:last-of-type,.is-empty + *,:has(+ .is-empty)):not(.is-selected)::before{background:var(--booking-calendar-band)}.booking-calendar-day.is-in-band.is-struck{color:var(--color-ink);text-decoration:none}.booking-calendar-nav{display:none}.booking-calendar-line{flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);background:var(--color-surface);font-size:0.875rem;line-height:1.4;color:var(--color-body);text-align:center}.booking-calendar-line:not(.has-line){display:none}.booking-calendar-line-text{display:inline-flex;align-items:center;gap:var(--space-2)}.booking-calendar-line-text.is-quiet{color:var(--color-muted)}.booking-calendar-line-text>svg{flex:none;width:var(--icon-sm);height:var(--icon-sm);color:var(--color-danger)}.booking-calendar[open] .booking-calendar-body{view-transition-name:booking-calendar-panel}::view-transition-group(booking-calendar-panel){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}::view-transition-image-pair(booking-calendar-panel){overflow:clip}@media (min-width:900px){::view-transition-image-pair(booking-calendar-panel){border-radius:0 0 var(--radius-md) var(--radius-md)}}::view-transition-old(booking-calendar-panel){animation:booking-calendar-panel-leave var(--dur-fast) var(--ease-out) both}::view-transition-new(booking-calendar-panel){animation:booking-calendar-panel-arrive var(--dur-slow) var(--ease-out) calc(2 * var(--beat)) both}:root[data-panel-move="back"]::view-transition-old(booking-calendar-panel){animation-name:booking-calendar-panel-leave-back}:root[data-panel-move="back"]::view-transition-new(booking-calendar-panel){animation-name:booking-calendar-panel-arrive-back}@keyframes booking-calendar-panel-leave{to{opacity:0;transform:translateX(var(--panel-shift))}}@keyframes booking-calendar-panel-arrive{from{opacity:0;transform:translateX(var(--panel-shift))}}@keyframes booking-calendar-panel-leave-back{to{opacity:0;transform:translateX(calc(-1 * var(--panel-shift)))}}@keyframes booking-calendar-panel-arrive-back{from{opacity:0;transform:translateX(calc(-1 * var(--panel-shift)))}}.booking-calendar-times{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4) var(--space-4) 0;scroll-padding-bottom:var(--space-8);border-top:1px solid var(--color-border);background:var(--color-surface)}.booking-calendar-times::after{content:"";position:sticky;bottom:0;display:block;height:var(--space-8);background:linear-gradient(to bottom,transparent,var(--color-surface));pointer-events:none}.booking-calendar-rows,.booking-calendar-chips{margin:0 auto;padding:0;list-style:none;max-width:var(--container-sm)}.booking-calendar-rows{display:grid;gap:var(--space-2)}.booking-calendar-rows .availability-slot{min-height:calc(var(--control-h) + var(--space-3));margin:0;padding:var(--space-2) var(--space-4);font-size:1rem;line-height:1.3}.booking-calendar-rows .availability-slot-spots{text-align:end}.booking-calendar-rows .availability-slot.is-selected,.booking-calendar-chip.is-selected{border-color:var(--color-primary-fill);background:var(--color-primary-fill);color:var(--color-on-dark-heading)}.booking-calendar-rows .availability-slot.is-selected .availability-slot-spots,.booking-calendar-chip.is-selected .booking-calendar-chip-spots{color:var(--color-on-dark-heading)}@media (hover:hover){.booking-calendar-rows .availability-slot.is-selected:hover,.booking-calendar-chip.is-selected:hover{border-color:var(--color-primary-fill-hover);background:var(--color-primary-fill-hover)}}.booking-calendar-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.booking-calendar-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;min-height:var(--control-h);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-interactive);border-radius:var(--radius-sm);background:var(--color-surface);font-family:var(--font-sans);font-size:0.9375rem;font-weight:600;line-height:1.2;color:var(--color-ink);cursor:pointer;transition:border-color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.booking-calendar-chip-spots{font-size:0.8125rem;font-weight:400;color:var(--color-muted)}@media (hover:hover){.booking-calendar-chip:not([aria-disabled="true"],.is-selected):hover{border-color:var(--color-primary)}}.booking-calendar-chip[aria-disabled="true"] .booking-calendar-chip-time{text-decoration:line-through;text-decoration-thickness:1px}.select-dropdown-trigger.booking-calendar-trigger span{white-space:normal;text-overflow:clip;line-height:1.3}@media (min-width:900px){.booking-calendar{inset:0;width:fit-content;height:fit-content;max-width:calc(100vw - 2 * var(--space-5));max-height:calc(100dvh - 2 * var(--space-5));margin:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.booking-calendar[open]{transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-slow) var(--ease-out)}@starting-style{.booking-calendar[open]{opacity:0;transform:scale(var(--pop-scale))}}.booking-calendar.is-closing{opacity:0;transform:scale(var(--pop-scale));transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.booking-calendar::backdrop{transition:opacity var(--dur-slow) var(--ease-out)}.booking-calendar-header{grid-template-columns:auto minmax(0,1fr) auto;column-gap:0;min-height:calc(var(--control-h) + var(--space-3));padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--color-border)}.booking-calendar-title{font-size:1.125rem;text-align:start}.booking-calendar-close,.booking-calendar[data-view="times"] .booking-calendar-close{display:inline-flex;grid-area:trail}.booking-calendar-back{margin-inline-end:var(--space-2)}.booking-calendar-weekbar{display:none}.booking-calendar-times{border-top:0}.booking-calendar-days{position:relative;overflow-y:auto;overscroll-behavior:contain}.booking-calendar-months{display:flex;gap:var(--space-8);overflow:visible;padding:var(--space-5) var(--space-5) 0;scrollbar-gutter:auto}.booking-calendar-month,.booking-calendar-month + .booking-calendar-month{width:calc(7 * var(--booking-calendar-col));padding:0}.booking-calendar-month-title{display:flex;align-items:center;justify-content:center;min-height:var(--control-h-sm);margin:0 0 var(--space-3);font-size:1rem}.booking-calendar-weekdays{position:static;display:grid;width:auto;height:auto;margin:0 0 var(--space-2);overflow:visible;clip:auto;white-space:normal;font-size:0.75rem;font-weight:600;line-height:1.5;color:var(--color-muted);text-align:center}.booking-calendar-weeks{grid-template-rows:repeat(6,var(--control-h))}.booking-calendar-nav{display:flex;position:absolute;top:var(--space-5);left:var(--space-5);right:var(--space-5);margin:0;pointer-events:none}.booking-calendar-nav button{pointer-events:auto}.booking-calendar-line,.booking-calendar-line:not(.has-line){display:flex;min-height:calc(var(--control-h-sm) + var(--space-3) + var(--space-5));padding:var(--space-3) var(--space-5) var(--space-5);border-top:0;background:none}.booking-calendar-times{padding:var(--space-5) var(--space-5) 0}.booking-calendar-rows{max-width:calc(7 * var(--booking-calendar-col));margin:0 auto}.booking-calendar-rows:has(>li:nth-child(7)){display:block;max-width:none;columns:2;column-gap:var(--space-8)}.booking-calendar-rows:has(>li:nth-child(7))>li{break-inside:avoid;margin-bottom:var(--space-2)}.booking-calendar-chips{max-width:none;grid-template-columns:repeat(6,minmax(0,1fr))}}