/*
 * Ride X brand + contrast layer (rxrwz only; loads after styles.css).
 * Board item P-033 (2026-09-30): the date picker was unreadable and several colour pairs
 * failed WCAG AA. Rules here: 4.5:1 for normal text, 3:1 for large text and UI borders.
 *
 *   charcoal  #1F1F1F   text, and text ON orange (5.4:1)   -- white on orange is only 3.1:1
 *   orange    #FF5E14   fills, borders, focus rings (3.1:1 vs white: fine for UI, not for text)
 *   orange-ink #B93A0B  orange used AS text on white / tinted backgrounds (5.3-5.7:1)
 *   navy      #0A2B6B   links (13:1)
 *   grey-ink  #5F6368   secondary text (6:1)
 */

/* ---- Date picker ------------------------------------------------------- */

/* The old "dark overlay" pseudo-element was position:fixed inside a transformed modal, so it
   was clipped to the modal and painted grey OVER the white calendar. Dim the page with a
   spread shadow on the modal instead: everything outside dims, the panel stays white. */
.rwz-dp-modal-visible::before { content: none; display: none; }
.rwz-dp-modal {
    background: #ffffff;
    color: #1F1F1F;
    color-scheme: light;
    border: 1px solid #D9D9D9;
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.45), 0 12px 40px rgba(0, 0, 0, 0.25);
}
.rwz-calendar-title { color: #1F1F1F; font-weight: 700; }
.rwz-cal-nav { color: #1F1F1F; }
.rwz-cal-nav:hover, .rwz-cal-nav:focus-visible { background: #FFE9DC; color: #1F1F1F; }
.rwz-weekday { color: #5F6368; }
.rwz-day { color: #1F1F1F; font-weight: 500; }
.rwz-day:not(.rwz-day-disabled):not(.rwz-day-empty):hover,
.rwz-day:not(.rwz-day-disabled):not(.rwz-day-empty):focus-visible {
    background: #FFE9DC;
    border-color: #FF5E14;
    color: #1F1F1F;
}
.rwz-day-selected,
.rwz-day-selected:hover {
    background: #FF5E14 !important;
    border-color: #B93A0B !important;
    color: #1F1F1F !important;
    font-weight: 700;
}
.rwz-day-today:not(.rwz-day-selected) { border-color: #FF5E14; }
.rwz-day-today .rwz-day-number::after { background: #1F1F1F; }
/* Past / unavailable days: clearly muted and struck through, but still legible as numbers. */
.rwz-day-disabled,
.rwz-day-disabled .rwz-day-number { color: #8A8F98; text-decoration: line-through; text-decoration-color: #C4C7CC; }

.rwz-dp-display:hover,
.rwz-dp-display:focus-visible,
.rwz-dp-display.rwz-dp-open { border-color: #FF5E14; box-shadow: 0 2px 8px rgba(255, 94, 20, 0.18); }
.rwz-dp-display { color: #1F1F1F; }
.rwz-dp-display::after { border-top-color: #1F1F1F; }

.rwz-time-input-single:focus,
.rwz-time-inputs:focus-within { border-color: #FF5E14; box-shadow: 0 0 0 3px rgba(255, 94, 20, 0.2); }
.rwz-time-input-single::placeholder, .rwz-time-input::placeholder { color: #6B7075; }
.rwz-ampm-btn { color: #3C4043; }
.rwz-ampm-btn.active { background: #ffffff; border-color: #FF5E14; color: #1F1F1F; font-weight: 700; }
.tz-note, .rwz-time-label { color: #5F6368; }

/* ---- Buttons ----------------------------------------------------------- */

/* Orange fill keeps the brand; the label switches to charcoal (5.4:1). Same pairing as the
   site header's "Book online" button. */
.rwz-booker-btn-primary,
.rwz-booker-btn-success,
.rwz-booker-btn-primary:hover:not(:disabled),
.rwz-booker-btn-success:hover:not(:disabled) { color: #1F1F1F; font-weight: 700; }
.rwz-booker-btn-primary:focus-visible,
.rwz-booker-btn-success:focus-visible,
.rwz-booker-btn:focus-visible { outline: 3px solid #0A2B6B; outline-offset: 2px; }
.rwz-booker-btn:disabled,
.rwz-booker-btn[disabled] { background-color: #E3E5E8; color: #5F6368; opacity: 1; }

.rwz-booker-btn-link,
.rwz-booker-btn.rwz-booker-btn-link,
.rwz-login-link,
.rwz-toggle-cards { color: #0A2B6B; text-decoration: underline; text-underline-offset: 2px; }
.rwz-booker-btn-link:hover,
.rwz-login-link:hover,
.rwz-toggle-cards:hover { color: #061B45; }

/* ---- Prices, labels, small print --------------------------------------- */

.rwz-booker-fare-amount,
.rwz-booker-trip-fare,
.rxrwz-airport-banner-title strong,
#quote-result.rxrwz-flat .rwz-booker-quote-box h4 { color: #B93A0B; }
.rwz-saved-places-label,
.stripe-trust,
.rwz-booker-quote-note { color: #5F6368; }
.rxrwz-airport-banner-sub { color: #3C4043; }
.rxrwz-quote-notice {
    margin: 12px 0 0;
    padding: 10px 12px;
    background: #FFF8E1;
    border: 1px solid #B7791F;
    border-radius: 8px;
    color: #1F1F1F;
    font-size: 14px;
    line-height: 1.45;
}
.rwz-booker-form-group input::placeholder,
.rwz-booker-form-group textarea::placeholder { color: #6B7075; opacity: 1; }
.rwz-booker-form-group input:focus,
.rwz-booker-form-group select:focus,
.rwz-booker-form-group textarea:focus { border-color: #FF5E14; box-shadow: 0 0 0 3px rgba(255, 94, 20, 0.2); outline: none; }

/* ---- Signed-in account bar (was BriteLift purple) ---------------------- */

.rwz-booker-account-bar.logged-in .rwz-booker-account-bar-inner,
.rwz-booker-account-bar-dashboard.rwz-booker-account-bar.logged-in .rwz-booker-account-bar-inner {
    background: #1F1F1F;
    color: #ffffff;
}
.rwz-booker-account-bar-logout { background: #ffffff; color: #1F1F1F; }
.rwz-booker-account-bar-logout:hover { background: #FFE9DC; color: #1F1F1F; }

/* The form is a light surface by design. If the OS is in dark mode, keep native controls
   (select menus, date/time inputs, autofill) light too, so text never lands light-on-light. */
.rwz-booker-booking-container,
.rwz-booker-dashboard-container { color-scheme: light; }

/* ---- Apple Pay / Google Pay ------------------------------------------- */

#rxrwz-wallet { margin: 0 0 16px; }
#rxrwz-wallet-button { min-height: 48px; }
.rxrwz-wallet-or { display: flex; align-items: center; gap: 12px; margin: 14px 0 4px; color: #5F6368; font-size: 14px; }
.rxrwz-wallet-or::before, .rxrwz-wallet-or::after { content: ""; flex: 1; height: 1px; background: #D9D9D9; }
