/* Mobile reservation flow — palette-driven dock + sheets (detail pages, max-width 767px) */

@media (min-width: 768px) {
    .reservation-mobile-flow,
    .accommodation-availability-calendar__mobile-bar {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.reservation-mobile-flow-active,
    body.reservation-mobile-flow-sheet-open {
        padding-bottom: 0;
        overflow: auto;
    }
}

@media (max-width: 767px) {
    .reservation-mobile-flow {
        display: block !important;
        visibility: visible !important;
        pointer-events: none;
    }

    .reservation-mobile-flow__dock,
    .reservation-mobile-flow__sheet,
    .reservation-mobile-flow__backdrop {
        pointer-events: auto;
    }
    body.reservation-mobile-flow-active {
        padding-bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
    }

    /* Theme shells (e.g. Buldirekt detail pages) must not stack extra bottom padding with the dock */
    body.reservation-mobile-flow-active .bd-detail-page,
    body.reservation-mobile-flow-active .detail-page-shell,
    body.reservation-mobile-flow-active main.frontend-detail-page {
        padding-bottom: 0;
    }

    body.reservation-mobile-flow-sheet-open {
        overflow: hidden;
    }

    body.reservation-mobile-flow-active .accommodation-availability-calendar__mobile-bar {
        display: none !important;
    }

    body:has(.reservation-mobile-flow) .dcm-reservation-detail-desktop,
    body.reservation-mobile-flow-active .dcm-reservation-detail-desktop {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .reservation-mobile-flow {
        position: relative;
        z-index: 10050;
        isolation: isolate;
    }

    .reservation-mobile-flow a {
        text-decoration: none;
        color: inherit;
    }

    .reservation-mobile-flow button,
    .reservation-mobile-flow input,
    .reservation-mobile-flow select,
    .reservation-mobile-flow textarea {
        font: inherit;
    }

    .reservation-mobile-flow button {
        appearance: none;
        -webkit-appearance: none;
    }

    .reservation-mobile-flow__dock,
    .reservation-mobile-flow__sheet,
    .reservation-mobile-flow__backdrop {
        max-width: 100vw;
    }

    .reservation-mobile-flow {
        --rmf-surface: #ffffff;
        --rmf-text: var(--brand-primary-dark, #0a2939);
        --rmf-text-muted: #6b7280;
        --rmf-border: #e5e7eb;
        --rmf-soft: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.08);
        --rmf-cta-bg: var(--gradient-button-primary, linear-gradient(135deg, var(--brand-primary, #113d5a) 0%, var(--brand-primary-light, #1a5a80) 100%));
        --rmf-cta-bg-hover: var(--gradient-button-primary-hover, linear-gradient(135deg, var(--brand-primary-dark, #0a2939) 0%, var(--brand-primary, #113d5a) 100%));
        --rmf-cta-text: var(--button-on-brand, #ffffff);
        --rmf-focus: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.28);
    }

    .reservation-mobile-flow__engine {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .reservation-mobile-flow__dock {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 10050;
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
        background: var(--rmf-surface);
        border-top: 1px solid var(--rmf-border);
        box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.12);
    }

    body.reservation-mobile-flow-sheet-open .reservation-mobile-flow__dock {
        display: none !important;
    }

    .reservation-mobile-flow__dock-copy {
        min-width: 0;
        flex: 1 1 42%;
    }

    .reservation-mobile-flow__dock-price-line {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 0.35rem 0.5rem;
        line-height: 1.25;
    }

    .reservation-mobile-flow__dock-price-compare {
        font-size: 0.8rem;
        font-weight: 500;
        color: var(--rmf-text-muted);
        text-decoration: line-through;
    }

    .reservation-mobile-flow__dock-price-compare[hidden],
    .reservation-mobile-flow__dock-price-from[hidden] {
        display: none !important;
    }

    .reservation-mobile-flow__dock-price-from {
        font-size: 0.8rem;
        font-weight: 600;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__dock-price-value {
        font-size: 1.0625rem;
        font-weight: 800;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__dock-price-line--ready .reservation-mobile-flow__dock-price-value {
        text-decoration: underline;
        text-underline-offset: 2px;
    }

    .reservation-mobile-flow__dock-price-suffix {
        font-size: 0.8rem;
        font-weight: 500;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__dock-price-suffix:empty {
        display: none;
    }

    .reservation-mobile-flow__dock-meta {
        margin-top: 0.2rem;
        font-size: 0.8125rem;
        color: var(--rmf-text-muted);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .reservation-mobile-flow__dock-cta {
        flex: 0 1 52%;
        max-width: 13.5rem;
        min-height: 3rem;
        padding: 0.85rem 1.35rem;
        border: 0;
        border-radius: 0.65rem;
        background: var(--rmf-cta-bg);
        color: var(--rmf-cta-text);
        font-size: 1rem;
        font-weight: 800;
        cursor: pointer;
        white-space: nowrap;
        opacity: 1;
        filter: none;
        box-shadow: 0 12px 24px -16px rgba(var(--brand-primary-rgb, 17, 61, 90), 0.45);
        transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, opacity 0.2s ease;
    }

    .reservation-mobile-flow__dock-cta:hover,
    .reservation-mobile-flow__dock-cta:focus-visible {
        background: var(--rmf-cta-bg-hover);
        outline: none;
        transform: translateY(-1px);
        box-shadow: 0 16px 28px -16px rgba(var(--brand-primary-rgb, 17, 61, 90), 0.52);
    }

    .reservation-mobile-flow__dock-cta:active {
        transform: translateY(0) scale(0.98);
    }

    .reservation-mobile-flow__dock-cta:disabled {
        cursor: not-allowed;
        opacity: 0.72;
        filter: saturate(0.9);
        transform: none;
        box-shadow: none;
    }

    .reservation-mobile-flow__backdrop {
        position: fixed;
        inset: 0;
        z-index: 10051;
        background: rgba(15, 23, 42, 0.45);
    }

    .reservation-mobile-flow__sheet {
        position: fixed;
        inset: 0;
        z-index: 10052;
        display: flex;
        flex-direction: column;
        background: var(--rmf-surface);
        transform: translateY(100%);
        transition: transform 0.28s ease;
    }

    .reservation-mobile-flow__sheet[aria-hidden="false"] {
        transform: translateY(0);
    }

    .reservation-mobile-flow__sheet-header {
        flex-shrink: 0;
        background: linear-gradient(
            180deg,
            rgba(var(--brand-primary-rgb, 17, 61, 90), 0.07) 0%,
            var(--rmf-surface) 72%
        );
        border-bottom: 1px solid var(--rmf-border);
        padding-top: env(safe-area-inset-top, 0px);
    }

    .reservation-mobile-flow--panel-dates .reservation-mobile-flow__sheet-header,
    .reservation-mobile-flow--panel-guests .reservation-mobile-flow__sheet-header,
    .reservation-mobile-flow--panel-checkout .reservation-mobile-flow__sheet-header {
        background: var(--rmf-surface);
    }

    .reservation-mobile-flow__sheet-toolbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        min-height: 3.25rem;
        padding: 0.35rem 1rem 0;
    }

    .reservation-mobile-flow--panel-review .reservation-mobile-flow__sheet-toolbar {
        justify-content: flex-end;
    }

    .reservation-mobile-flow__sheet-heading {
        padding: 0.15rem 1.25rem 0;
    }

    .reservation-mobile-flow--panel-review .reservation-mobile-flow__sheet-heading {
        padding-bottom: 0.35rem;
    }

    .reservation-mobile-flow--panel-dates .reservation-mobile-flow__sheet-heading,
    .reservation-mobile-flow--panel-guests .reservation-mobile-flow__sheet-heading,
    .reservation-mobile-flow--panel-checkout .reservation-mobile-flow__sheet-heading {
        padding-bottom: 0.85rem;
    }

    .reservation-mobile-flow__sheet-step {
        margin: 0 0 0.35rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--brand-accent-dark, #d47810);
    }

    .reservation-mobile-flow__sheet-title {
        margin: 0;
        font-size: clamp(1.25rem, 4.8vw, 1.5rem);
        font-weight: 800;
        line-height: 1.15;
        letter-spacing: -0.02em;
        text-align: left;
        color: var(--rmf-text);
        text-wrap: balance;
    }

    .reservation-mobile-flow__sheet-subtitle {
        margin: 0.45rem 0 0;
        max-width: 34rem;
        font-size: 0.9rem;
        line-height: 1.45;
        font-weight: 500;
        color: var(--rmf-text-muted);
        text-wrap: pretty;
    }

    .reservation-mobile-flow--panel-dates .reservation-mobile-flow__sheet-subtitle,
    .reservation-mobile-flow--panel-guests .reservation-mobile-flow__sheet-subtitle,
    .reservation-mobile-flow--panel-checkout .reservation-mobile-flow__sheet-subtitle {
        margin-top: 0.35rem;
        font-size: 0.875rem;
    }

    .reservation-mobile-flow__sheet-hero {
        padding: 0.85rem 1.25rem 1.15rem;
    }

    .reservation-mobile-flow__sheet-hero[hidden] {
        display: none !important;
    }

    .reservation-mobile-flow__sheet-hero .reservation-mobile-flow__listing {
        margin: 0;
        padding: 0.9rem 1rem;
        border: 1px solid var(--rmf-border);
        border-radius: 1rem;
        background: var(--rmf-surface);
        box-shadow: 0 4px 18px rgba(15, 23, 42, 0.07);
    }

    .reservation-mobile-flow__sheet-hero .reservation-mobile-flow__listing-image {
        width: 5.25rem;
        height: 5.25rem;
        border-radius: 0.85rem;
    }

    .reservation-mobile-flow__sheet-hero .reservation-mobile-flow__listing-title {
        font-size: 1.0625rem;
        line-height: 1.25;
    }

    .reservation-mobile-flow__sheet-back,
    .reservation-mobile-flow__sheet-close {
        width: 2.75rem;
        height: 2.75rem;
        border: 0;
        border-radius: 999px;
        background: var(--rmf-soft);
        color: var(--rmf-text);
        cursor: pointer;
        flex-shrink: 0;
    }

    .reservation-mobile-flow__sheet-back[hidden] {
        display: none !important;
    }

    .reservation-mobile-flow__sheet-back:hover,
    .reservation-mobile-flow__sheet-back:focus-visible,
    .reservation-mobile-flow__sheet-close:hover,
    .reservation-mobile-flow__sheet-close:focus-visible {
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.12);
        outline: none;
    }

    .reservation-mobile-flow__sheet-body {
        flex: 1 1 auto;
        overflow-y: auto;
        padding: 1rem 1rem 6.5rem;
        -webkit-overflow-scrolling: touch;
    }

    .reservation-mobile-flow__sheet-body:has(.reservation-mobile-flow__currency-menu[open]) {
        overflow: visible;
    }

    .reservation-mobile-flow--panel-review .reservation-mobile-flow__sheet-body {
        padding-top: 0.35rem;
    }

    .reservation-mobile-flow__panel[hidden] {
        display: none !important;
    }

    .reservation-mobile-flow--panel-dates .reservation-mobile-flow__sheet-body {
        display: flex;
        flex-direction: column;
        padding: 0 0 6.5rem;
        overflow: hidden;
    }

    .reservation-mobile-flow__panel--dates {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
    }

    body.reservation-mobile-flow-sheet-open .accommodation-availability-calendar {
        visibility: hidden;
        pointer-events: none;
    }

    .reservation-mobile-flow__cal-weekdays {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 0.15rem;
        padding: 0.65rem 1rem 0.35rem;
        border-bottom: 1px solid var(--rmf-border);
        background: var(--rmf-surface);
        position: sticky;
        top: 0;
        z-index: 2;
    }

    .reservation-mobile-flow__cal-weekday {
        text-align: center;
        font-size: 0.7rem;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__cal-scroll {
        flex: 1 1 auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0.5rem 0.85rem 1rem;
    }

    .reservation-mobile-flow__cal-scroll--loading {
        cursor: progress;
    }

    .reservation-mobile-flow__cal-status[data-rmf-loading-status="1"] {
        color: var(--rmf-text-muted);
        font-weight: 600;
    }

    .reservation-mobile-flow__cal-month {
        margin-bottom: 1.5rem;
    }

    .reservation-mobile-flow__cal-month-title {
        margin: 0 0 0.75rem;
        font-size: 1.05rem;
        font-weight: 800;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__cal-grid {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 0.2rem;
    }

    .reservation-mobile-flow__cal-skeleton-grid {
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: repeat(7, 1fr);
        gap: 0.2rem;
        width: 100%;
    }

    .reservation-mobile-flow__cal-skeleton {
        min-height: 3.5rem;
        border-radius: 0.5rem;
    }

    .reservation-mobile-flow__cal-skeleton--day {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.3rem;
        padding: 0.35rem 0.15rem;
        border: 1px solid rgba(var(--brand-primary-rgb, 17, 61, 90), 0.08);
        background: #fff;
    }

    .reservation-mobile-flow__cal-skeleton-line {
        display: block;
        border-radius: 999px;
        background: linear-gradient(
            90deg,
            rgba(var(--brand-primary-rgb, 17, 61, 90), 0.06) 0%,
            rgba(var(--brand-primary-rgb, 17, 61, 90), 0.14) 50%,
            rgba(var(--brand-primary-rgb, 17, 61, 90), 0.06) 100%
        );
        background-size: 200% 100%;
        animation: reservation-mobile-flow-cal-shimmer 1.2s ease-in-out infinite;
    }

    .reservation-mobile-flow__cal-skeleton-line--day {
        width: 0.875rem;
        height: 0.625rem;
    }

    .reservation-mobile-flow__cal-skeleton-line--price {
        width: 1.85rem;
        height: 0.5rem;
        opacity: 0.92;
    }

    .reservation-mobile-flow__cal-skeleton--pad {
        visibility: hidden;
        animation: none;
        border: none;
        background: transparent;
    }

    .reservation-mobile-flow__cal-month--loading .reservation-mobile-flow__cal-month-title {
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__cal-month--loaded .reservation-mobile-flow__cal-month-title {
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__cal-retry {
        grid-column: 1 / -1;
        margin: 0;
        padding: 0.75rem;
        font-size: 0.85rem;
        font-weight: 600;
        text-align: center;
        color: #b45309;
        background: rgba(245, 158, 11, 0.1);
        border-radius: 0.5rem;
    }

    @keyframes reservation-mobile-flow-cal-shimmer {
        0% {
            background-position: 200% 0;
        }
        100% {
            background-position: -200% 0;
        }
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__weekday {
        display: none;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__pad {
        min-height: 3.5rem;
        border-radius: 0.5rem;
        padding: 0.3rem 0.1rem;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day-content {
        gap: 0.1rem;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day-number {
        font-size: 0.8125rem;
        line-height: 1.1;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day-price {
        font-size: 0.625rem;
        font-weight: 700;
        line-height: 1.15;
        max-width: 100%;
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
        word-break: break-word;
        font-variant-numeric: tabular-nums;
        opacity: 1;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--available {
        background: #fff;
        border-color: #e2e8f0;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--available .accommodation-availability-calendar__day-price {
        color: var(--brand-accent-dark, #d47810);
        font-weight: 700;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--past {
        background: #f8fafc;
        border-color: transparent;
        color: #cbd5e1;
        box-shadow: none;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--past .accommodation-availability-calendar__day-price {
        color: #cbd5e1;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed {
        background: #f8fafc;
        border-color: #f1f5f9;
        color: #94a3b8;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed .accommodation-availability-calendar__day-price {
        color: #94a3b8;
        opacity: 0.85;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked {
        background: #fffbfb;
        border-color: #fecdd3;
        color: #9f1239;
        box-shadow: none;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked .accommodation-availability-calendar__day-price {
        color: #9f1239;
        opacity: 0.85;
        text-decoration: line-through;
        text-decoration-thickness: 1px;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked:disabled,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed:disabled,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--past:disabled {
        cursor: not-allowed;
        transform: none;
        box-shadow: none;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked.accommodation-availability-calendar__day--range-start,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked.accommodation-availability-calendar__day--range-end,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed.accommodation-availability-calendar__day--range-start,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed.accommodation-availability-calendar__day--range-end,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--past.accommodation-availability-calendar__day--range-start,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--past.accommodation-availability-calendar__day--range-end {
        background: inherit;
        border-color: inherit;
        color: inherit;
        box-shadow: none;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked.accommodation-availability-calendar__day--range-start .accommodation-availability-calendar__day-price,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--booked.accommodation-availability-calendar__day--range-end .accommodation-availability-calendar__day-price,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed.accommodation-availability-calendar__day--range-start .accommodation-availability-calendar__day-price,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--closed.accommodation-availability-calendar__day--range-end .accommodation-availability-calendar__day-price {
        color: inherit;
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--in-range:not(.accommodation-availability-calendar__day--range-start):not(.accommodation-availability-calendar__day--range-end) {
        border-radius: 0;
        background: var(--rmf-soft);
        border-color: transparent;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--in-range:not(.accommodation-availability-calendar__day--range-start):not(.accommodation-availability-calendar__day--range-end) .accommodation-availability-calendar__day-price {
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--range-start,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--range-end {
        background: var(--brand-primary, #113d5a);
        border-color: transparent;
        color: #fff;
        box-shadow: 0 4px 12px rgba(var(--brand-primary-rgb, 17, 61, 90), 0.24);
    }

    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--range-start .accommodation-availability-calendar__day-price,
    .reservation-mobile-flow__cal-grid .accommodation-availability-calendar__day--range-end .accommodation-availability-calendar__day-price {
        color: rgba(255, 255, 255, 0.92);
    }

    /* Check-in only (awaiting check-out): full pill so the day number stays visible */
    .reservation-mobile-flow__cal-scroll:not(.reservation-mobile-flow__cal-scroll--has-end) .accommodation-availability-calendar__day--range-start {
        border-radius: 999px;
    }

    .reservation-mobile-flow__cal-scroll--has-end .accommodation-availability-calendar__day--range-start {
        border-radius: 999px 0 0 999px;
    }

    .reservation-mobile-flow__cal-scroll--has-end .accommodation-availability-calendar__day--range-end {
        border-radius: 0 999px 999px 0;
    }

    .reservation-mobile-flow__cal-scroll--has-end .accommodation-availability-calendar__day--range-start.accommodation-availability-calendar__day--range-end {
        border-radius: 999px;
    }

    .reservation-mobile-flow__cal-status {
        flex-shrink: 0;
        min-height: 1.25rem;
        padding: 0.5rem 1rem;
        font-size: 0.85rem;
        font-weight: 600;
        color: var(--brand-accent, #f59113);
        text-align: center;
    }

    .reservation-mobile-flow__listing {
        display: flex;
        gap: 0.85rem;
        align-items: center;
    }

    .reservation-mobile-flow__listing-image {
        width: 4.5rem;
        height: 4.5rem;
        border-radius: 0.75rem;
        object-fit: cover;
        flex-shrink: 0;
    }

    .reservation-mobile-flow__listing-title {
        margin: 0;
        font-size: 1rem;
        font-weight: 800;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__listing-location {
        margin: 0.25rem 0 0;
        font-size: 0.8rem;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__rows {
        border: 1px solid var(--rmf-border);
        border-radius: 0.85rem;
        overflow: visible;
    }

    .reservation-mobile-flow__row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.95rem 1rem;
        border-bottom: 1px solid var(--rmf-border);
    }

    .reservation-mobile-flow__row:first-child {
        border-top-left-radius: calc(0.85rem - 1px);
        border-top-right-radius: calc(0.85rem - 1px);
    }

    .reservation-mobile-flow__row:last-child {
        border-bottom: 0;
        border-bottom-left-radius: calc(0.85rem - 1px);
        border-bottom-right-radius: calc(0.85rem - 1px);
    }

    .reservation-mobile-flow__row--total {
        align-items: flex-start;
    }

    .reservation-mobile-flow__row-label {
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__row-value {
        margin-top: 0.2rem;
        font-size: 0.95rem;
        font-weight: 700;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__row-value--total {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 0.35rem 0.5rem;
    }

    .reservation-mobile-flow__review-price-compare {
        font-size: 0.8125rem;
        font-weight: 600;
    }

    .reservation-mobile-flow__review-price-value {
        font-size: 1rem;
        font-weight: 800;
        color: var(--brand-primary, #113d5a);
    }

    .reservation-mobile-flow__review-savings {
        display: inline-flex;
        align-items: center;
        font-size: 0.6875rem;
        font-weight: 700;
        padding: 0.15rem 0.45rem;
        border-radius: 999px;
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.06);
        border: 1px solid var(--rmf-border);
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__review-savings.hidden,
    .reservation-mobile-flow__review-price-compare.hidden {
        display: none;
    }

    .reservation-mobile-flow__price-details {
        margin: 0 1rem 0.75rem;
        padding: 0.75rem 0.85rem;
        border-radius: 0.65rem;
        background: var(--rmf-surface);
        border: 1px solid var(--rmf-border);
    }

    .reservation-mobile-flow__price-details.hidden {
        display: none;
    }

    .reservation-mobile-flow__price-details-title {
        font-size: 0.75rem;
        font-weight: 700;
        margin-bottom: 0.45rem;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__price-details-line {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: 0.75rem;
        font-size: 0.8125rem;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__price-details-line + .reservation-mobile-flow__price-details-line {
        margin-top: 0.35rem;
        padding-top: 0.35rem;
        border-top: 1px dashed var(--rmf-border);
    }

    .reservation-mobile-flow__price-details-line strong {
        font-size: 0.875rem;
        font-weight: 800;
        color: var(--brand-secondary, #c9a227);
    }

    .reservation-mobile-flow__price-details-line--discount strong {
        color: var(--brand-secondary, #c9a227);
    }

    .reservation-mobile-flow__row-change {
        flex-shrink: 0;
        border: 1px solid var(--rmf-border);
        background: var(--rmf-surface);
        color: var(--rmf-text);
        border-radius: 0.5rem;
        padding: 0.45rem 0.75rem;
        font-size: 0.8rem;
        font-weight: 700;
        cursor: pointer;
        min-height: 2.75rem;
    }

    .reservation-mobile-flow__currency-menu {
        position: relative;
        z-index: 1;
    }

    .reservation-mobile-flow__currency-menu[open] {
        z-index: 20;
    }

    .reservation-mobile-flow__currency-trigger {
        flex-shrink: 0;
        border: 1px solid var(--rmf-border);
        background: var(--rmf-surface);
        color: var(--rmf-text);
        border-radius: 0.5rem;
        padding: 0.45rem 0.75rem;
        font-size: 0.8rem;
        font-weight: 700;
        min-height: 2.75rem;
        list-style: none;
    }

    .reservation-mobile-flow__currency-trigger::-webkit-details-marker {
        display: none;
    }

    .reservation-mobile-flow__currency-trigger:hover,
    .reservation-mobile-flow__currency-trigger:focus-visible {
        border-color: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.35);
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.04);
        outline: none;
    }

    .reservation-mobile-flow__currency-trigger-icon {
        font-size: 0.75rem;
        opacity: 0.75;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__currency-trigger-label {
        letter-spacing: 0.02em;
    }

    .reservation-mobile-flow__currency-trigger-chevron {
        font-size: 0.65rem;
        opacity: 0.65;
        margin-left: 0.1rem;
    }

    .reservation-mobile-flow__currency-menu[open] .reservation-mobile-flow__currency-trigger-chevron {
        transform: rotate(180deg);
    }

    .reservation-mobile-flow__currency-panel {
        z-index: 30;
        background: var(--rmf-surface);
        border: 1px solid var(--rmf-border);
        max-height: min(16rem, 50vh);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        isolation: isolate;
    }

    .reservation-mobile-flow__currency-panel--fixed {
        position: fixed !important;
        z-index: 10060;
        margin: 0 !important;
    }

    .reservation-mobile-flow__currency-link {
        color: var(--rmf-text);
    }

    button.reservation-mobile-flow__currency-link {
        width: 100%;
        border: 0;
        background: transparent;
        cursor: pointer;
        font: inherit;
        text-align: left;
    }

    .reservation-mobile-flow__currency-menu--loading .reservation-mobile-flow__currency-trigger,
    .reservation-mobile-flow__currency-trigger--loading {
        pointer-events: none;
        cursor: wait;
    }

    .reservation-mobile-flow__currency-trigger--loading > :not(.reservation-mobile-flow__currency-trigger-spinner) {
        display: none;
    }

    .reservation-mobile-flow__currency-trigger-spinner {
        font-size: 0.875rem;
        color: var(--brand-primary, #113d5a);
        line-height: 1;
    }

    .reservation-mobile-flow__currency-link--error {
        animation: rmf-currency-shake 0.35s ease;
    }

    @keyframes rmf-currency-shake {
        0%, 100% { transform: translateX(0); }
        25% { transform: translateX(-3px); }
        75% { transform: translateX(3px); }
    }

    .reservation-mobile-flow__currency-link:hover,
    .reservation-mobile-flow__currency-link:focus-visible {
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.06);
        color: var(--rmf-text);
        outline: none;
    }

    .reservation-mobile-flow__currency-link--active {
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.1);
        color: var(--brand-primary, var(--rmf-text));
    }

    .reservation-mobile-flow__currency-link-symbol {
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__currency-link-check {
        color: var(--brand-primary, var(--rmf-text));
        font-size: 0.75rem;
    }

    .reservation-mobile-flow__stepper-list {
        display: grid;
        gap: 0.75rem;
        margin-top: 1rem;
    }

    .reservation-mobile-flow__stepper-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1rem;
        border: 1px solid var(--rmf-border);
        border-radius: 0.85rem;
    }

    .reservation-mobile-flow__stepper-label {
        font-weight: 700;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__stepper-controls {
        display: flex;
        align-items: center;
        gap: 0.65rem;
    }

    .reservation-mobile-flow__stepper-btn {
        width: 2.75rem;
        height: 2.75rem;
        border-radius: 999px;
        border: 1px solid var(--rmf-border);
        background: var(--rmf-surface);
        font-size: 1.1rem;
        cursor: pointer;
    }

    .reservation-mobile-flow__stepper-btn:disabled {
        opacity: 0.4;
    }

    .reservation-mobile-flow__stepper-value {
        min-width: 1.5rem;
        text-align: center;
        font-weight: 800;
    }

    .reservation-mobile-flow__checkout-summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        width: 100%;
        padding: 1rem;
        border-radius: 0.85rem;
        background: var(--rmf-soft);
        border: 1px solid rgba(var(--brand-primary-rgb, 17, 61, 90), 0.14);
        margin-bottom: 1.25rem;
        font-size: 0.9rem;
        text-align: left;
        cursor: pointer;
        min-height: 2.75rem;
        transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
        -webkit-tap-highlight-color: transparent;
    }

    .reservation-mobile-flow__checkout-summary:hover,
    .reservation-mobile-flow__checkout-summary:focus-visible {
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.12);
        border-color: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.28);
        outline: none;
        box-shadow: 0 0 0 3px var(--rmf-focus);
    }

    .reservation-mobile-flow__checkout-summary:active {
        transform: scale(0.99);
    }

    .reservation-mobile-flow__checkout-summary-text {
        flex: 1;
        min-width: 0;
        font-weight: 700;
        color: var(--rmf-text);
        line-height: 1.4;
    }

    .reservation-mobile-flow__checkout-summary-action {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 2rem;
        height: 2rem;
        border-radius: 999px;
        background: var(--rmf-surface);
        border: 1px solid var(--rmf-border);
        color: var(--rmf-text-muted);
        font-size: 0.75rem;
    }

    .reservation-mobile-flow--panel-checkout .reservation-mobile-flow__footer-primary {
        flex: 1 1 100%;
    }

    .reservation-mobile-flow__checkout-heading {
        margin: 1.25rem 0 0.75rem;
        font-size: 0.8rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--rmf-text-muted);
    }

    .reservation-mobile-flow__field {
        display: grid;
        gap: 0.4rem;
        margin-bottom: 0.85rem;
    }

    .reservation-mobile-flow__label {
        font-size: 0.875rem;
        font-weight: 700;
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__required {
        color: #dc2626;
    }

    .reservation-mobile-flow__input {
        width: 100%;
        min-height: 2.75rem;
        border: 1px solid var(--rmf-border);
        border-radius: 0.75rem;
        padding: 0.75rem 0.9rem;
        font-size: 1rem;
    }

    .reservation-mobile-flow__input:focus {
        outline: none;
        border-color: var(--brand-accent, #f59113);
        box-shadow: 0 0 0 3px var(--rmf-focus);
    }

    .reservation-mobile-flow__payment-list {
        display: grid;
        gap: 0.65rem;
    }

    .reservation-mobile-flow__payment-option {
        display: flex;
        gap: 0.65rem;
        padding: 0.85rem;
        border: 1px solid var(--rmf-border);
        border-radius: 0.75rem;
        cursor: pointer;
    }

    .reservation-mobile-flow__payment-name {
        display: block;
        font-weight: 700;
    }

    .reservation-mobile-flow__payment-hint {
        display: block;
        font-size: 0.8rem;
        color: var(--rmf-text-muted);
        margin-top: 0.15rem;
    }

    .reservation-mobile-flow__checkbox {
        display: flex;
        align-items: flex-start;
        gap: 0.65rem;
        margin: 1rem 0;
        font-size: 0.875rem;
    }

    .reservation-mobile-flow__sheet-footer {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2;
        background: var(--rmf-surface);
        border-top: 1px solid var(--rmf-border);
        padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
    }

    .reservation-mobile-flow__progress {
        height: 3px;
        background: var(--rmf-border);
        border-radius: 999px;
        overflow: hidden;
        margin-bottom: 0.65rem;
    }

    .reservation-mobile-flow__progress-fill {
        display: block;
        height: 100%;
        width: 33%;
        background: var(--brand-primary, #113d5a);
        transition: width 0.25s ease;
    }

    .reservation-mobile-flow__footer-actions {
        display: flex;
        gap: 0.65rem;
    }

    .reservation-mobile-flow__footer-primary,
    .reservation-mobile-flow__footer-secondary {
        flex: 1 1 auto;
        min-height: 2.75rem;
        border-radius: 0.75rem;
        font-size: 0.95rem;
        font-weight: 800;
        cursor: pointer;
    }

    .reservation-mobile-flow__footer-primary {
        border: 0;
        background: var(--gradient-button-primary, var(--brand-primary, #113d5a));
        color: var(--button-on-brand, #fff);
        box-shadow: 0 12px 24px -16px rgba(var(--brand-primary-rgb, 17, 61, 90), 0.45);
    }

    .reservation-mobile-flow__footer-secondary {
        border: 1px solid var(--rmf-border);
        background: var(--rmf-surface);
        color: var(--rmf-text);
    }

    .reservation-mobile-flow__sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        border: 0;
    }

    .reservation-mobile-flow__policy,
    .reservation-mobile-flow__note,
    .reservation-mobile-flow__panel-intro {
        font-size: 0.85rem;
        color: var(--rmf-text-muted);
        line-height: 1.45;
    }

    .reservation-mobile-flow__note--blocked {
        color: #b45309;
        background: rgba(245, 158, 11, 0.12);
        border-radius: 0.5rem;
        padding: 0.65rem 0.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .reservation-mobile-flow__sheet {
        transition: none;
    }

    .reservation-mobile-flow__cal-skeleton {
        animation: none;
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.08);
    }

    .reservation-mobile-flow__cal-skeleton-line {
        animation: none;
        background: rgba(var(--brand-primary-rgb, 17, 61, 90), 0.1);
    }
}
