/* Progressive booking controls; canonical values remain in the native inputs. */
.quick-field--city,.quick-field--date,.quick-field--guests{position:relative}
.quick-field:focus-within>label{color:var(--orange)}
.quick-field--city .input-wrap>input,.quick-field--guests .input-wrap>input{flex:1 1 0%;width:0}
.booking-picker-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 2.75rem;width:2.75rem;min-height:2.75rem;padding:.5rem;border:0;border-radius:.5rem;background:transparent;color:var(--muted)}
.booking-picker-button:hover{background:var(--cream);color:var(--ink)}
.booking-picker-button svg{width:1rem;height:1rem}
.date-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex:1 1 0%;width:100%;min-width:0;min-height:2.75rem;padding:0;border:0;border-radius:.25rem;background:transparent;color:var(--ink);font:inherit;font-size:1rem;font-weight:400;line-height:1.5;text-align:left}
.date-trigger>span{min-width:0;overflow-wrap:anywhere}
.date-trigger svg{width:1rem;height:1rem;color:var(--muted)}
.date-trigger.is-empty,.date-trigger .picker-placeholder{color:#697063}
.date-trigger:focus-visible,.booking-picker-button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
/* Applied by JavaScript only after the visible date button is ready. */
.quick-field input.picker-native-date,.form-group input.picker-native-date{position:absolute!important;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}

.booking-popover{position:fixed;inset:auto;z-index:1000;display:none;width:22rem;max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);margin:0;padding:1rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:0;border-radius:.875rem;background:#fff;color:var(--ink);box-shadow:0 14px 36px #20242124;font-family:'DM Sans',sans-serif;font-size:1rem;line-height:1.5;scrollbar-gutter:stable;scroll-padding-block:.5rem;isolation:isolate}
.booking-popover.is-open{display:block}
.booking-popover:popover-open{display:block}
.booking-popover[hidden],.booking-popover [hidden]{display:none!important}
.booking-popover button{font:inherit;touch-action:manipulation}
.booking-popover button:focus-visible,.booking-popover input:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.booking-popover .button:hover{transform:none}
.booking-popover .picker-heading{margin:0 0 .625rem;color:var(--ink);font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;line-height:1.4;letter-spacing:0;text-wrap:wrap}
.picker-note,.picker-status{margin:.5rem 0 0;color:var(--muted);font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}
.picker-note a{color:var(--orange);text-decoration:underline;text-underline-offset:3px}
.picker-status:empty{display:none}

.place-list{max-height:min(16.25rem,var(--picker-available-height,calc(100dvh - 12rem)));margin:0;padding:.125rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;list-style:none;scroll-padding-block:.25rem}
.place-option{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;width:100%;min-width:0;min-height:3.25rem;margin:.125rem 0;padding:.625rem .75rem;border:0;border-radius:.5rem;background:transparent;color:var(--ink);text-align:left;line-height:1.4;cursor:pointer;overflow-wrap:anywhere}
.place-option:hover{background:var(--cream)}
.place-option.is-active,.place-option[aria-selected="true"]{background:var(--peach)}
.place-name{display:block;font-size:1rem;font-weight:700;line-height:1.4}
.place-context{display:block;color:var(--muted);font-size:.875rem;font-weight:400;line-height:1.4}

.booking-popover:has(.calendar-days){padding:.75rem;scrollbar-gutter:auto}
.calendar-nav{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:.375rem;margin-bottom:.5rem}
.calendar-nav button{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;min-height:2.75rem;padding:.5rem;border:0;border-radius:.5rem;background:transparent;color:var(--ink)}
.calendar-nav button:not(:disabled):hover{background:var(--cream)}
.calendar-nav button svg{width:1.125rem;height:1.125rem}
.calendar-title{min-width:0;margin:0;color:var(--ink);font-family:Manrope,sans-serif;font-size:1rem;font-weight:600;line-height:1.4;text-align:center;letter-spacing:0}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;text-align:center}
.calendar-weekdays{padding-block:.375rem;color:var(--muted);font-size:.875rem;font-weight:700;line-height:1.5}
.calendar-weekdays>*{min-width:0}
.calendar-week{display:contents}
.calendar-week>[role="gridcell"]{min-width:0}
.calendar-day.is-outside:not(.is-selected){color:var(--muted)}
.calendar-day{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:2.75rem;padding:.375rem .125rem;border:0;border-radius:.5rem;background:transparent;color:var(--ink);font-size:1rem;line-height:1.25;font-variant-numeric:tabular-nums}
.calendar-day:not(:disabled):hover{background:var(--cream)}
.calendar-day.is-today{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.calendar-day.is-selected,.calendar-day.is-selected:hover{background:var(--orange);color:#fff;font-weight:700;text-decoration:none}
.calendar-day:disabled{color:var(--muted);opacity:.4;cursor:default}
.calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.625rem;padding-top:.5rem;border-top:1px solid var(--line)}
.calendar-footer .text-link{min-height:2.75rem;font-size:.875rem}

.guest-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.guest-choice{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:2.75rem;padding:.625rem .5rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;color:var(--ink);font-size:1rem;line-height:1.4;font-variant-numeric:tabular-nums}
.guest-choice:hover{background:var(--cream)}
.guest-choice.is-selected,.guest-choice[aria-pressed="true"]{border-color:var(--orange);background:var(--peach);font-weight:700}
.guest-stepper{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:.75rem;margin-top:1rem;padding-block:.75rem;border-block:1px solid var(--line)}
.guest-stepper>button{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;min-height:2.75rem;padding:.5rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;color:var(--ink)}
.guest-stepper>button:not(:disabled):hover{background:var(--cream)}
.guest-stepper>button svg{width:1.125rem;height:1.125rem}
.guest-value{min-width:0;color:var(--ink);font-size:1.25rem;font-weight:700;line-height:1.4;text-align:center;font-variant-numeric:tabular-nums}
.guest-stepper input.guest-value{width:100%;min-height:2.75rem;padding:.375rem .5rem;border:1px solid var(--line);border-radius:.5rem;background:#fff}
.picker-confirm{margin-top:.75rem}
.picker-confirm>button,.picker-confirm.button,button.picker-confirm{width:100%;min-height:2.75rem}
button.picker-confirm{padding:.75rem 1rem;border:0;border-radius:.5rem;background:var(--orange);color:#fff;font-weight:700;line-height:1.5}
button.picker-confirm:hover{background:var(--orange-hover)}
.booking-input-wrap{display:flex;align-items:center;min-width:0;border:1px solid #cbd0c7;border-radius:8px;background:#fff}
.booking-input-wrap>input{flex:1 1 0%;width:0;min-width:0;border:0!important;background:transparent}
.booking-input-wrap:focus-within{outline:2px solid var(--orange);outline-offset:2px}
.form-group>.date-trigger{width:100%;min-height:3.125rem;padding:.75rem .875rem;border:1px solid #cbd0c7;border-radius:8px;background:#fff}
.guest-presets+.picker-note{display:block;margin-top:1rem}

@media(max-width:640px){
 .booking-popover{max-width:calc(100vw - 2rem);padding:.875rem;border-radius:.875rem}
 .booking-popover:has(.calendar-days){padding:.75rem}
 .place-list{max-height:min(16.25rem,var(--picker-available-height,calc(100dvh - 10rem)))}
 .place-option{padding:.625rem;min-height:3.5rem}
 .guest-presets{gap:.5rem}
}
@media(max-width:359px){
 .guest-presets{grid-template-columns:repeat(2,minmax(0,1fr))}
}
