/**
 * Event Global Styles typography for the public booking flow.
 * Applies --event-font-family to buttons and portaled UI that theme CSS
 * does not inherit (GDLR sets content font on body/input but not button).
 */

:root {
    --event-booking-font-stack: var(--event-font-family, "DM Sans"), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Banner + disclaimer text (not always inside .booking-page-wrapper) */
html body .booking-flow-banner,
html body .booking-flow-banner *,
html body .team-claim-disclaimer,
html body .team-claim-disclaimer *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not([class^="fa-"]):not([class*=" fa-"]) {
    font-family: var(--event-booking-font-stack) !important;
}

/* Ketch footer preference link + consent bar (portaled to body by Ketch script) */
html body .ketch-preference-center-label,
html body .footer-cookie-preferences-btn,
html body .footer-cookie-preferences-btn *,
html body #lanyard_root,
html body #lanyard_root * {
    font-family: var(--event-booking-font-stack) !important;
}

/* Hotel filters modal (reparented to document.body when open) */
html body .unified-filters-modal,
html body .unified-filters-modal .unified-filters-header h3,
html body .unified-filters-modal .filter-section h4,
html body .unified-filters-modal .filter-option span,
html body .unified-filters-modal .btn-primary,
html body .unified-filters-modal .btn-secondary,
html body .unified-filters-modal .unified-filters-close {
    font-family: var(--event-booking-font-stack) !important;
}

/* Room selector popup (often moved to document.body) */
html body .room-selector__popup,
html body .room-selector__popup .rs-title,
html body .room-selector__popup .rs-room-label,
html body .room-selector__popup .rs-room-value,
html body .room-selector__popup .rs-room-btn,
html body .room-selector__popup .room-selector__action-btn,
html body .room-selector-component .room-selector__trigger,
html body .room-selector-component .room-selector__display-text {
    font-family: var(--event-booking-font-stack) !important;
}

/* Team Manager MR — Edit Room modal Save / Cancel */
html body #tc-mr-edit-reservation-modal .tc-mr-edit-reservation-actions button,
html body #tc-mr-edit-reservation-modal .tc-mr-edit-reservation-save-btn,
html body #tc-mr-edit-reservation-modal .tc-mr-edit-reservation-cancel-btn,
html body #tc-mr-edit-reservation-modal .cmrs_save_edit,
html body #tc-mr-edit-reservation-modal .cmrs_cancel_edit {
    font-family: var(--event-booking-font-stack) !important;
}

/* Footer newsletter Subscribe */
html body .footer-newsletter-form button,
html body .footer-newsletter-section button,
html body .footer-upper .button_buttontwo__1NM0f,
html body ._footer_boxSubs_contain__aEWdz button,
html body .public-booking-footer .newsletter-submit-btn {
    font-family: var(--event-booking-font-stack) !important;
}

/* Manage Reservation lookup form (pre-auth; not .cmrs_updates) */
html body .main_page_login_form,
html body .main_page_login_form .cmw-popup,
html body .main_page_login_form .cmw-find-booking-title,
html body .main_page_login_form .cmw-fgroup label,
html body .main_page_login_form .cmw-fgroup input,
html body .main_page_login_form .cmw_submit button,
html body .main_page_login_form .cmw-login-error,
html body .main_page_login_form .contact-but,
html body .main_page_login_form .contact-but a {
    font-family: var(--event-booking-font-stack) !important;
}

/* Skyflow payment security notice (injected below card form) */
html body .skyflow-credit-card-wrapper,
html body .skyflow-credit-card-wrapper .skyflow-security-notice,
html body .skyflow-credit-card-wrapper .skyflow-security-text,
html body .skyflow-credit-card-wrapper .skyflow-security-text strong,
html body .skyflow-credit-card-wrapper .skyflow-label,
html body .skyflow-credit-card-wrapper .skyflow-native-input,
html body .skyflow-credit-card-wrapper .skyflow-native-select,
html body .skyflow-credit-card-wrapper .skyflow-payment-choice,
html body .skyflow-credit-card-wrapper .skyflow-expiry-warning {
    font-family: var(--event-booking-font-stack) !important;
}

/* Team Claim modal shell */
html body .team-claim-modal,
html body .team-claim-modal .team-claim-modal-title,
html body .team-claim-modal .team-claim-modal-description,
html body .team-claim-modal .team-claim-option-title,
html body .team-claim-modal .team-claim-option-subtitle,
html body .team-claim-modal .team-claim-option-description,
html body .team-claim-modal .team-claim-team-code-input {
    font-family: var(--event-booking-font-stack) !important;
}

/* Interactive controls — booking flow + portaled bars/modals */
html body .gdlr-content button,
html body .gdlr-content input[type="button"],
html body .gdlr-content input[type="submit"],
html body .gdlr-content input[type="reset"],
html body .gdlr-content select,
html body .gdlr-content textarea,
html body .booking-page-wrapper button,
html body .booking-page-wrapper input[type="button"],
html body .booking-page-wrapper input[type="submit"],
html body .booking-page-wrapper input[type="reset"],
html body #booking-flow-container button,
html body #booking-flow-container input[type="button"],
html body #booking-flow-container input[type="submit"],
html body .hotel-grid-component button,
html body .hotel-grid-component .filter-chip,
html body .hotel-grid-component .hotel-grid__view-btn,
html body .hotel-grid-component .search-clear-btn,
html body .hotel-grid-component .unified-filters-close,
html body .hotel-grid-component .btn-primary,
html body .hotel-grid-component .btn-secondary,
html body .rooms-page-search-container button,
html body .rooms-page-search-container .rooms-search-toggle-btn,
html body .rooms-page-search-container .rooms-search-btn,
html body .cart-banner button,
html body .cart-banner .cart-banner__btn,
html body .selected-rooms-banner button,
html body .selected-rooms-banner .selected-rooms-banner__continue-btn,
html body .booking-actions-wrapper button,
html body .booking-actions-wrapper .booking-action-btn,
html body .booking-checkout-wrapper button,
html body .booking-checkout-wrapper .booking-action-btn,
html body .booking-checkout-wrapper .booking-summary__section-toggle,
html body .booking-checkout-wrapper .booking-summary__inline-expand,
html body .booking-checkout-wrapper .total-line__expand-btn,
html body .booking-checkout-wrapper .toggle-nightly-rates,
html body .booking-checkout-wrapper .room-count-badge,
html body .booking-confirmation-wrapper button,
html body .booking-cart-modal button,
html body .booking-cart-floating button,
html body .booking-cart-modal .cart-modal-continue,
html body .booking-cart-modal .cart-modal-checkout,
html body .booking-cart-modal .cart-modal-clear,
html body .booking-cart-floating .btn,
html body .team-claim-modal button,
html body .team-claim-modal .team-claim-action-button,
html body .team-claim-modal .team-claim-modal-close,
html body .team-claim-disclaimer .team-claim-disclaimer-change,
html body .booking-rooms-container button,
html body .booking-rooms-container .read-more-btn,
html body .booking-rooms-container .room-card__action-btn,
html body a.hotel-card__cta-button,
html body a.hotel-card__waitlist-button,
html body .cmrs_updates button,
html body .cmrs_updates input[type="button"],
html body .cmrs_updates input[type="submit"],
html body .cmrs_updates input[type="reset"],
html body .cmrs_updates select,
html body .cmrs_updates textarea,
html body .cmrs_updates input[type="text"],
html body .cmrs_updates input[type="email"],
html body .cmrs_updates input[type="tel"],
html body .cmrs_updates input[type="number"],
html body .cmrs_updates input[type="date"],
html body .cmrs_updates .cmrs-skip-payment-banner__cta {
    font-family: var(--event-booking-font-stack) !important;
}

/* Reservation summary labels (e.g. "1 room", section toggles) */
html body .booking-summary-wrapper .booking-summary__section-toggle,
html body .booking-summary-wrapper .booking-summary__section-toggle-count,
html body .booking-summary-wrapper .booking-summary__section-toggle-label,
html body .booking-summary-wrapper .booking-summary__inline-expand,
html body .booking-summary-wrapper .summary-detail,
html body .booking-summary-wrapper .room-count-badge {
    font-family: var(--event-booking-font-stack) !important;
}

/* Confirmation number — use event font instead of monospace */
html body .booking-confirmation-wrapper .confirmation-number,
html body .confirmation-number-display .confirmation-number {
    font-family: var(--event-booking-font-stack) !important;
}

/* Checkout Terms & Policies (policy HTML from TinyMCE / Word paste) */
html body .booking-terms-wrapper,
html body .booking-terms-wrapper *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not([class^="fa-"]):not([class*=" fa-"]) {
    font-family: var(--event-booking-font-stack) !important;
}

/* Booking policies modal + header trigger (often portaled outside .booking-page-wrapper) */
html body .booking-policies-modal,
html body .booking-policies-modal *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not([class^="fa-"]):not([class*=" fa-"]),
html body .booking-policies-trigger,
html body .booking-policies-header-btn,
html body button.booking-policies-header-btn {
    font-family: var(--event-booking-font-stack) !important;
}

/* Hotel sidebar policies on rooms page */
html body .hotel-sidebar__policies,
html body .hotel-sidebar__policies .policy-item__title,
html body .hotel-sidebar__policies .policy-item__content,
html body .hotel-sidebar__policies .policy-item__content *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not([class^="fa-"]):not([class*=" fa-"]) {
    font-family: var(--event-booking-font-stack) !important;
}

/* Preserve Font Awesome glyph fonts inside controls.
 * Match only real Font Awesome class tokens (a class attribute that starts with
 * "fa-", or a space-prefixed " fa-" token) — NOT any class that merely contains
 * the substring "fa-". Event slugs such as "fifa-u20-world-cup-demo" generate
 * backend classes (cbs-theme-fifa-...-backend-*) that the old [class*="fa-"]
 * matched, force-rendering plain button text in Font Awesome. (BS-2998/BS-2931
 * substring-hijack bug class.) */
html body .fa,
html body .fas,
html body .far,
html body .fab,
html body .fal,
html body .fad,
html body [class^="fa-"],
html body [class*=" fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "Font Awesome 5 Free", "Font Awesome 5 Brands" !important;
}
