/* Phase 2 booking quality layer. Loaded only on non-summary booking routes. */
.udc-booking-quality {
    --udc-brand: #f26a00;
    --udc-brand-dark: #c95500;
    --udc-ink: #18253a;
    --udc-muted: #66758a;
    --udc-line: #dce4ee;
    --udc-error: #b42318;
    --udc-error-bg: #fff4f2;
    --udc-focus: rgba(242, 106, 0, .22);
}

.udc-booking-quality #carrental_confirm_reservation .control-input:focus,
.udc-booking-quality #carrental_confirm_reservation input:focus,
.udc-booking-quality #carrental_confirm_reservation select:focus,
.udc-booking-quality #carrental_confirm_reservation textarea:focus,
.udc-booking-quality button:focus-visible,
.udc-booking-quality a:focus-visible {
    outline: 3px solid var(--udc-focus) !important;
    outline-offset: 2px;
    border-color: var(--udc-brand) !important;
}

.udc-booking-quality #carrental_confirm_reservation [aria-invalid="true"] {
    border-color: var(--udc-error) !important;
    box-shadow: 0 0 0 2px rgba(180, 35, 24, .10) !important;
}

.udc-booking-error-summary {
    margin: 0 0 20px;
    padding: 14px 16px;
    border: 1px solid #f0aaa4;
    border-left: 4px solid var(--udc-error);
    border-radius: 10px;
    background: var(--udc-error-bg);
    color: var(--udc-error);
    font-size: 14px;
    line-height: 1.5;
}

.udc-booking-error-summary[hidden] {
    display: none !important;
}

.udc-booking-error-summary strong {
    display: block;
    margin-bottom: 4px;
}

.udc-booking-error-summary ul {
    margin: 4px 0 0 19px;
    padding: 0;
}

.udc-submit-status {
    margin: 10px 0 0;
    color: var(--udc-muted);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}

.udc-submit-status[hidden] {
    display: none !important;
}

.udc-booking-quality #carrental_confirm_reservation[aria-busy="true"] {
    cursor: wait;
}

.udc-booking-quality #carrental_confirm_reservation[aria-busy="true"] button[type="submit"],
.udc-booking-quality #carrental_confirm_reservation[aria-busy="true"] input[type="submit"] {
    cursor: wait;
    opacity: .72;
}

.udc-booking-quality [data-udc-progress="true"] {
    isolation: isolate;
}

.udc-booking-quality [data-udc-progress="true"] [aria-current="step"] {
    font-weight: 800;
}

.udc-booking-quality .udc-required-note {
    margin: 0 0 15px;
    color: var(--udc-muted);
    font-size: 12px;
    line-height: 1.45;
}

.udc-booking-quality .udc-required-mark {
    color: var(--udc-error);
    font-weight: 800;
}

@media (max-width: 720px) {
    .udc-booking-quality #carrental_confirm_reservation .columns-2,
    .udc-booking-quality #carrental_confirm_reservation .columns-3,
    .udc-booking-quality #carrental_confirm_reservation .columns-4 {
        display: block !important;
    }

    .udc-booking-quality #carrental_confirm_reservation .columns-2 > .column,
    .udc-booking-quality #carrental_confirm_reservation .columns-3 > .column,
    .udc-booking-quality #carrental_confirm_reservation .columns-4 > .column {
        float: none !important;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .udc-booking-quality #carrental_confirm_reservation input,
    .udc-booking-quality #carrental_confirm_reservation select,
    .udc-booking-quality #carrental_confirm_reservation textarea {
        min-height: 44px;
        font-size: 16px !important;
    }

    .udc-booking-quality #carrental_confirm_reservation button,
    .udc-booking-quality #carrental_confirm_reservation input[type="submit"],
    .udc-booking-quality #carrental_confirm_reservation input[type="button"] {
        min-height: 44px;
    }

    .udc-booking-quality .udc-contact-method,
    .udc-booking-quality .udc-hotel-contact .columns-2 {
        row-gap: 4px;
    }

    .udc-booking-error-summary {
        margin-left: 0;
        margin-right: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .udc-booking-quality *,
    .udc-booking-quality *::before,
    .udc-booking-quality *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
