/* Mobile checkout: keep the current step first and the full summary within reach. */
@media (max-width:800px){
 #booking-dialog #booking.booking-shell{grid-template-areas:"form" "summary"!important;grid-template-columns:minmax(0,1fr)!important;gap:24px!important}
 #booking-dialog .booking-form{min-width:0}
 #booking-dialog .summary-card{display:grid!important;grid-template-columns:64px minmax(0,1fr);gap:8px 14px;padding:18px!important;align-items:start;min-width:0}
 #booking-dialog .summary-card .booking-cover{grid-column:1;grid-row:1 / span 2;width:64px;height:64px;min-height:0;margin:0;border-radius:14px;overflow:hidden}
 #booking-dialog .summary-card .booking-cover img{width:100%;height:100%;object-fit:cover;aspect-ratio:1}
 #booking-dialog .summary-card .booking-cover span{display:none}
 #booking-dialog .booking-summary-content{display:contents}
 #booking-dialog .summary-card #summary-title{grid-column:2;grid-row:1;font-size:18px;line-height:1.25;margin:0}
 #booking-dialog .summary-card .summary-meta{grid-column:2;grid-row:2;margin:0;font-size:11px;gap:8px;flex-wrap:wrap}
 #booking-dialog .summary-card .booking-travel-summary{grid-column:1 / -1;grid-row:3;margin:6px 0 0;font-size:12px;line-height:1.6}
 #booking-dialog .summary-card .booking-price-highlight{grid-column:1 / -1;grid-row:4;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 0}
 #booking-dialog .summary-card .booking-price-highlight>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-width:0;padding:14px!important;margin:0;border:1px solid var(--studio-line);border-radius:14px}
 #booking-dialog .summary-card .booking-price-highlight dt{font:500 11px/1.4 var(--sans,system-ui)}
 #booking-dialog .summary-card .booking-price-highlight dd{font:600 17px/1.3 var(--sans,system-ui);margin:0;overflow-wrap:anywhere}
 #booking-dialog .summary-card .booking-price-details{grid-column:1 / -1;grid-row:5;margin:4px 0 0}
 #booking-dialog .field :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;min-width:0;max-width:100%;box-sizing:border-box}
 #booking-dialog .field :is(input:not([type=checkbox]):not([type=radio]),select){min-height:50px}
 #booking-dialog .field :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:14px!important;padding:13px 14px}
 #booking-dialog .field input[type=date]{-webkit-appearance:none;appearance:none;width:100%}
 #booking-dialog .field input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.4em}
 #booking-dialog .form-actions{gap:14px}
 #booking-dialog .form-actions .back-link{min-height:44px;padding:10px 0}
 #booking-dialog .form-actions .button{min-height:50px}
}

/* Experience search recovery. */
#experience-empty{padding:clamp(24px,4vw,44px);margin:24px 0 0;border:1px solid var(--line);border-radius:24px!important;background:var(--cream);text-align:center;color:var(--ink)}
#experience-empty[hidden]{display:none!important}
#experience-empty h3{margin:0 0 12px;font:500 clamp(26px,4vw,36px)/1.2 var(--serif);color:var(--ink)}
#experience-empty p{max-width:540px;margin:0 auto 24px;font-size:16px;line-height:1.6;color:var(--muted)}
#experience-empty .experience-empty-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
#experience-empty .button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 22px;border-radius:999px!important;font-size:13px;line-height:1.35;white-space:normal;text-align:center;text-decoration:none}
#experience-empty .button-gold{background:#d0ad59!important;color:#1c170f!important}
#experience-empty .button-outline{border:1px solid var(--line);background:transparent!important;color:var(--ink)!important}
#experience-empty .button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
html[data-theme=dark] #experience-empty{background:#242019!important;color:#f5efe5!important;border-color:#625641!important}
html[data-theme=dark] #experience-empty h3,html[data-theme=dark] #experience-empty .button-outline{color:#f5efe5!important}
html[data-theme=dark] #experience-empty p{color:#d2c8b8!important}
@media(max-width:560px){#experience-empty .experience-empty-actions{display:grid;grid-template-columns:1fr}#experience-empty .button{width:100%}}

/* Booking feedback is readable in both themes and stays within phone layouts. */
#booking-dialog .booking-step-error{margin:0 0 22px;padding:16px 18px;border:1px solid #b76545;border-radius:16px!important;background:#fff5ee;color:#6f2f1d;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
#booking-dialog .booking-step-error[hidden]{display:none!important}
#booking-dialog [aria-invalid=true]{outline:2px solid #a54632;outline-offset:2px}
#booking-dialog .addon-price input[data-addon-quantity]{font-size:16px;min-height:44px;border-radius:12px!important}
html[data-theme=dark] #booking-dialog .booking-step-error{background:#352720;color:#ffdac6;border-color:#c38b6e}
html[data-theme=dark] #booking-dialog [aria-invalid=true]{outline-color:#edaa87}

#booking-dialog #quote-error{flex:0 0 auto;height:auto;min-height:0;max-height:25dvh;overflow:auto;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
html[data-theme=dark] #booking-dialog #quote-error{background:#352720;color:#ffdac6;border-color:#c38b6e}

#booking-dialog #deposit-feedback{display:block;margin-top:10px;padding:10px 12px;border:1px solid #b76545;border-radius:12px!important;background:#fff5ee;color:#6f2f1d;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
#booking-dialog #deposit-feedback[hidden]{display:none!important}
html[data-theme=dark] #booking-dialog #deposit-feedback{background:#352720;color:#ffdac6;border-color:#c38b6e}

/* Complete quote state, with a direct recovery action. */
#booking-dialog .booking-price-state{margin:12px 0 16px;padding:14px 16px;border:1px solid var(--line,#d6ccba);border-radius:16px!important;background:#f6f0e5;color:#51442e;min-width:0}
#booking-dialog .booking-price-state p{margin:0;font:400 13px/1.55 var(--sans,system-ui);color:inherit;overflow-wrap:anywhere}
#booking-dialog .booking-price-state[data-state=error]{border-color:#ba7557;background:#fff5ee;color:#6f2f1d}
#booking-dialog #quote-recovery{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:10px 0 0;padding:10px 18px;border:1px solid #8c6b28;border-radius:999px!important;background:#d0ad59;color:#201a10;font:600 13px/1.3 var(--sans,system-ui);cursor:pointer;white-space:normal;text-align:center}
#booking-dialog #quote-recovery[hidden]{display:none!important}
#booking-dialog #quote-recovery:focus-visible,#booking-dialog #booking-price-status:focus-visible{outline:2px solid var(--gold,#bb9546);outline-offset:3px}
html[data-theme=dark] #booking-dialog .booking-price-state{background:#242019;color:#e8dcc7;border-color:#65563b}
html[data-theme=dark] #booking-dialog .booking-price-state[data-state=error]{background:#352720;color:#ffdac6;border-color:#c38b6e}
@media(max-width:800px){
 #booking-dialog .summary-card .booking-price-state{grid-column:1/-1;grid-row:5;margin:0}
 #booking-dialog .summary-card .booking-price-details{grid-row:6}
}

/* Explain guest-related selection changes without crowding phone layouts. */
#booking-dialog #booking-selection-notice{margin:18px 0 22px;padding:16px 18px;border:1px solid #c4a15b;border-radius:16px!important;background:#f6f0e5;color:#51442e;min-width:0;font:400 14px/1.55 var(--sans,system-ui);overflow-wrap:anywhere}
#booking-dialog #booking-selection-notice[hidden]{display:none!important}
#booking-dialog #booking-selection-notice strong{display:block;margin:0 0 6px;font-weight:650;color:inherit}
#booking-dialog #booking-selection-notice ul{margin:0;padding:0 0 0 19px}
#booking-dialog #booking-selection-notice li+li{margin-top:7px}
html[data-theme=dark] #booking-dialog #booking-selection-notice{background:#242019;color:#e8dcc7;border-color:#8e774c}

