﻿/* Compact cart rows; disclosures stay in flow so they cannot escape a scrollport. */
.order-unit-disclosure { min-width: 0; }
.order-unit-disclosure-toggle { display: flex; align-items: flex-start; gap: 8px; width: 100%; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: start; cursor: pointer; }
.order-unit-names { flex: 1; min-width: 0; }
.order-unit-names > span { display: block; overflow-wrap: anywhere; }
.order-unit-info { flex: 0 0 auto; font-size: 16px; }
.order-unit-disclosure-toggle:focus-visible { outline: 2px solid #00845a; outline-offset: 3px; border-radius: 4px; }
.order-unit-breakdown { margin-top: 12px; padding-top: 10px; border-top: 1px solid #dce2df; font-size: 14px; line-height: 1.5; }
.order-unit-breakdown[hidden] { display: none; }
.order-unit-guest-row { display: grid; gap: 2px; margin-bottom: 8px; }
.order-unit-guest-row strong { font-weight: 600; }
.order-unit-guest-note { margin: 10px 0 8px; color: #626b68; }
.order-unit-breakdown .edit-guests-btn { text-decoration: underline; min-height: 44px; }
.order-summary-items .Afford__item { padding-bottom: 10px; overflow-wrap: anywhere; }
.order-summary-items .Afford__item h5 { position: static; margin: 10px 0 0; font-size: 18px; text-align: end; }
.order-summary-items .Afford__item__img > div { min-width: 0; flex: 1; }
.order-summary-items .Afford__item__img picture { flex: 0 0 60px; align-self: flex-start; }
.order-summary-items .Afford__item__img picture img { max-height: 72px; }

@media (min-width: 1200px) {
    .availability-sticky-page .availability-sidebar {
        position: relative;
        top: auto !important;
        align-self: stretch;
        height: auto;
        min-width: 0;
        padding-block-start: var(--booking-sidebar-start, 0px);
    }
    .availability-sidebar .sticky-wrapper {
        position: sticky;
        top: var(--booking-sidebar-top, 144px);
        padding-bottom: 0;
    }
    .availability-sidebar .sticky-wrapper > .order-flow-panel {
        display: flex;
        flex-direction: column;
        margin-top: 0;
        margin-bottom: 12px !important;
        max-height: calc(100vh - var(--booking-sidebar-top, 144px) - var(--booking-sidebar-bottom, 12px) - 24px);
        max-height: calc(100dvh - var(--booking-sidebar-top, 144px) - var(--booking-sidebar-bottom, 12px) - 24px);
        overflow: visible;
    }
    .availability-sidebar .order-flow-panel > .mobile-order-sheet,
    .availability-sidebar .order-flow-panel .mobile-order-sheet-body { display: flex; flex-direction: column; flex: 1; min-height: 0; }
    .availability-sidebar .mobile-order-sheet-body > * { flex-shrink: 0; }
    .availability-sidebar .mobile-order-sheet-body > #order-summary-container { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
    .availability-sidebar #order-summary-container > .order-summary-items { min-height: 0; overflow-y: auto; padding: 6px; margin: -6px; scrollbar-gutter: stable; scroll-padding-block: 8px; }
    .availability-sidebar #order-summary-container > .button-order { flex-shrink: 0; position: static; height: auto; padding-block: 14px; white-space: normal; }
    .order-flow-panel .order-summary-dates { display: none; }
}
/* Keep the title visible on short desktops too; scroll the body when its
   date/guest controls alone exceed the available viewport. */
@media (min-width: 1200px) and (max-height: 650px) {
    .availability-sidebar .order-flow-panel .mobile-order-sheet-body { overflow-y: auto; scroll-padding-block: 52px 16px; }
    .availability-sidebar .mobile-order-sheet-body > #order-summary-container { flex: 0 0 auto; }
    .availability-sidebar #order-summary-container > .order-summary-items { overflow: visible; }
    .availability-sidebar .date-selection-heading { position: sticky; top: 0; z-index: 4; background: #fff; padding-block: 4px; }
}