/* ===== Holidey dark theme ===== */
:root {
    --theme-transition: background-color .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease;
}

html[data-theme="dark"] {
    --ink: #edf4fb;
    --muted: #9fb2c5;
    --line: #294158;
    --white: #0b1928;
    --blue-50: #102337;
    --blue-100: #173149;
    --orange-100: #39271f;
    --success: #55c7a5;
    --danger: #ff7a86;
    --shadow-sm: 0 12px 30px rgba(0, 0, 0, .22);
    --shadow-md: 0 24px 60px rgba(0, 0, 0, .30);
    --shadow-lg: 0 34px 85px rgba(0, 0, 0, .38);
    color-scheme: dark;
}

html[data-theme="dark"] body {
    color: #edf4fb;
    background: #081521;
}

html[data-theme="dark"] body,
html[data-theme="dark"] .site-header,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .offcanvas,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .btn-light,
html[data-theme="dark"] .toast {
    transition: var(--theme-transition);
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] strong,
html[data-theme="dark"] .text-dark {
    color: #f4f8fc !important;
}

html[data-theme="dark"] p,
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] small {
    color: #9fb2c5 !important;
}

/* Theme switches */
.theme-toggle {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dce6ef;
    border-radius: 50%;
    color: var(--navy-900);
    background: #fff;
    font-size: 1rem;
    transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.theme-toggle:hover { transform: translateY(-1px); background: var(--blue-50); }

.mobile-theme-toggle {
    width: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 15px;
    border: 1px solid var(--line);
    border-radius: 13px;
    color: var(--ink);
    background: var(--blue-50);
    font-weight: 700;
}
.mobile-theme-toggle span { display: inline-flex; align-items: center; gap: 9px; }
.mobile-theme-toggle i { color: var(--orange-600); }
.mobile-theme-toggle strong { font-size: .78rem; }

html[data-theme="dark"] .theme-toggle {
    color: #ffd19b;
    background: #10263b;
    border-color: #2b465f;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
}
html[data-theme="dark"] .theme-toggle:hover { background: #18344f; border-color: #3b5f7c; }

/* Header / navigation */
html[data-theme="dark"] .site-announcement { background: #04101c; }
html[data-theme="dark"] .site-header {
    background: rgba(7, 22, 36, .94);
    border-bottom-color: rgba(68, 94, 119, .55);
    box-shadow: 0 12px 32px rgba(0,0,0,.16);
}
html[data-theme="dark"] .site-header .nav-link,
html[data-theme="dark"] .account-button,
html[data-theme="dark"] .icon-button,
html[data-theme="dark"] .currency-form select { color: #dbe8f4; }
html[data-theme="dark"] .site-header .nav-link:hover { color: #ff8b4b; background: rgba(244,93,23,.13); }
html[data-theme="dark"] .account-button,
html[data-theme="dark"] .icon-button {
    background: #102338;
    border-color: #2a435a;
}
html[data-theme="dark"] .account-button:hover,
html[data-theme="dark"] .icon-button:hover { background: #173149; border-color: #3b5a73; }
html[data-theme="dark"] .cart-button { background: #f45d17; border-color: #f45d17; color: #fff; }
html[data-theme="dark"] .cart-count { border-color: #071624; }
html[data-theme="dark"] .currency-form select { background-color: #102338; border-color: #2a435a; }
html[data-theme="dark"] .dropdown-menu {
    color: #dce7f2;
    background: #0d2032;
    border-color: #2d465d;
}
html[data-theme="dark"] .dropdown-item { color: #dce7f2; }
html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item:focus { color: #fff; background: #173149; }
html[data-theme="dark"] .dropdown-header { color: #8fa6bb; }
html[data-theme="dark"] .dropdown-divider { border-color: #294158; }

/* Global surfaces and Bootstrap controls */
html[data-theme="dark"] .section-soft,
html[data-theme="dark"] .catalog-section,
html[data-theme="dark"] .cart-page-section,
html[data-theme="dark"] .checkout-section,
html[data-theme="dark"] .account-security-section,
html[data-theme="dark"] .receipt-page { background: #0a1725; }

html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .input-group-text {
    color: #e8f1f8;
    background-color: #102338;
    border-color: #334d64;
}
html[data-theme="dark"] .form-control::placeholder { color: #71889d; }
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
    color: #fff;
    background-color: #102338;
    border-color: #f47a3e;
    box-shadow: 0 0 0 .2rem rgba(244,93,23,.14);
}
html[data-theme="dark"] .btn-light {
    --bs-btn-color: #e9f2fa;
    --bs-btn-bg: #162b40;
    --bs-btn-border-color: #314b63;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #203950;
    --bs-btn-hover-border-color: #42627d;
}
html[data-theme="dark"] .btn-outline-dark {
    --bs-btn-color: #dfeaf4;
    --bs-btn-border-color: #49647c;
    --bs-btn-hover-color: #071a2f;
    --bs-btn-hover-bg: #eaf2f8;
    --bs-btn-hover-border-color: #eaf2f8;
}
html[data-theme="dark"] .btn-close { filter: invert(1) grayscale(1) brightness(1.7); }
html[data-theme="dark"] .modal-backdrop.show { opacity: .72; }
html[data-theme="dark"] .offcanvas,
html[data-theme="dark"] .modal-content { background: #0d1d2d; border-color: #2a4156; }
html[data-theme="dark"] .offcanvas-header,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer { border-color: #294158; }

/* Home */
html[data-theme="dark"] .home-hero {
    background:
        radial-gradient(circle at 12% 12%, rgba(244,93,23,.18), transparent 31%),
        radial-gradient(circle at 88% 18%, rgba(29,95,145,.20), transparent 33%),
        linear-gradient(135deg, #081521 0%, #0a1b2b 58%, #0d2438 100%);
}
html[data-theme="dark"] .home-hero::before { border-color: rgba(96,151,195,.12); box-shadow: 0 0 0 60px rgba(44,103,153,.035), 0 0 0 120px rgba(44,103,153,.02); }
html[data-theme="dark"] .hero-kicker,
html[data-theme="dark"] .hero-search,
html[data-theme="dark"] .hero-floating-card,
html[data-theme="dark"] .value-strip,
html[data-theme="dark"] .category-tile,
html[data-theme="dark"] .experience-card,
html[data-theme="dark"] .testimonial-card,
html[data-theme="dark"] .top-attraction-card {
    color: #e9f2fa;
    background: #0f2133;
    border-color: #2a4359;
}
html[data-theme="dark"] .hero-kicker { color: #b9cce0; }
html[data-theme="dark"] .hero-lead { color: #aec0d1; }
html[data-theme="dark"] .hero-photo-one,
html[data-theme="dark"] .hero-photo-two { border-color: #102235; }
html[data-theme="dark"] .hero-trust-avatars span { border-color: #081521; }
html[data-theme="dark"] .value-strip-grid > div { border-color: #294158; }
html[data-theme="dark"] .testimonial-section { background: #0c1825; }
html[data-theme="dark"] .testimonial-card blockquote { color: #d3dfeb; }
html[data-theme="dark"] .testimonial-card footer { border-color: #2b4053; }
html[data-theme="dark"] .top-attractions-section { background: #091724; }

/* Catalogue, search and listing */
html[data-theme="dark"] .page-search,
html[data-theme="dark"] .filter-panel,
html[data-theme="dark"] .page-arrow,
html[data-theme="dark"] .page-numbers button,
html[data-theme="dark"] .empty-state-icon,
html[data-theme="dark"] .catalog-view-button:hover {
    color: #eaf2f9;
    background: #0f2133;
    border-color: #2c465d;
}
html[data-theme="dark"] .page-search-field label,
html[data-theme="dark"] .search-field label,
html[data-theme="dark"] .filter-group h3 { color: #e7f0f7; }
html[data-theme="dark"] .filter-radio { color: #b6c6d5; }
html[data-theme="dark"] .filter-help,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .catalog-view-switch { background: #102338; border-color: #29455d; }
html[data-theme="dark"] .results-loading { color: #dfeaf3; background: rgba(8,21,33,.78); }
html[data-theme="dark"] .catalog-active-category { color: #ff7d36; }
html[data-theme="dark"] .catalogue-image-missing { background: #2a171a; border-color: #743b42; color: #ffabb3; }
html[data-theme="dark"] .catalogue-results-error { background: #3a1d22; border-color: #7e3b45; color: #ffd0d4; }
html[data-theme="dark"] .experience-card-body > p,
html[data-theme="dark"] .experience-meta { color: #98acbf; }

/* Details / destination */
html[data-theme="dark"] .gallery-more,
html[data-theme="dark"] .booking-card,
html[data-theme="dark"] .support-card > span,
html[data-theme="dark"] .destination-hero-search,
html[data-theme="dark"] .continent-filter button,
html[data-theme="dark"] .destination-index-card,
html[data-theme="dark"] .destination-index-price,
html[data-theme="dark"] .destination-guide-card,
html[data-theme="dark"] .city-card-arrow {
    color: #e8f1f8;
    background: #0f2133;
    border-color: #2b455d;
}
html[data-theme="dark"] .detail-labels span { color: #b9cce0; background: #10283e; }
html[data-theme="dark"] .detail-labels .recommended-label { color: #ff9e6a; background: #39261d; }
html[data-theme="dark"] .detail-quick-facts,
html[data-theme="dark"] .detail-section { border-color: #294158; }

/* Cart / checkout / payment */
html[data-theme="dark"] .cart-item,
html[data-theme="dark"] .cart-summary-card,
html[data-theme="dark"] .checkout-card,
html[data-theme="dark"] .checkout-summary-card,
html[data-theme="dark"] .checkout-help-card,
html[data-theme="dark"] .checkout-account-fields,
html[data-theme="dark"] .payment-result-card,
html[data-theme="dark"] .account-security-card,
html[data-theme="dark"] .payment-return-amounts {
    color: #e8f0f7;
    background: #0f2133;
    border-color: #2b455d;
    box-shadow: 0 16px 45px rgba(0,0,0,.18);
}
html[data-theme="dark"] .cart-remove { color: #ff8994; background: #28191e; border-color: #62323a; }
html[data-theme="dark"] .cart-remove:hover { color: #fff; background: #a83b49; }
html[data-theme="dark"] .checkout-price-lines,
html[data-theme="dark"] .cart-summary-lines,
html[data-theme="dark"] .payment-return-amounts > div { color: #a9bbcc; }
html[data-theme="dark"] .payment-return-amounts .total-row { color: #f5f9fc; border-color: #314a60; }
html[data-theme="dark"] .checkout-grand-total,
html[data-theme="dark"] .cart-summary-total { border-color: #314a60; }
html[data-theme="dark"] .security-code-display { color: #ff9b62; background: #211b19; }
html[data-theme="dark"] .security-code-refresh,
html[data-theme="dark"] .security-code-input .input-group-text { color: #dfe9f2; background: #102338; border-color: #334d64; }
html[data-theme="dark"] .security-code-label { color: #70d49c; }

/* Support / FAQ */
html[data-theme="dark"] .support-form-card,
html[data-theme="dark"] .support-option,
html[data-theme="dark"] .faq-accordion .accordion-item {
    background: #0f2133;
    border-color: #2b455d;
}
html[data-theme="dark"] .faq-accordion .accordion-button { color: #edf5fb; background: #0f2133; box-shadow: none; }
html[data-theme="dark"] .faq-accordion .accordion-button:not(.collapsed) { color: #fff; background: #142c42; }
html[data-theme="dark"] .faq-accordion .accordion-button::after { filter: invert(1) opacity(.8); }
html[data-theme="dark"] .faq-accordion .accordion-body { color: #aebfd0; background: #0c1c2b; }

/* Account modal */
html[data-theme="dark"] .account-modal-content,
html[data-theme="dark"] .account-modal-main { background: #0d1d2d; }
html[data-theme="dark"] .account-modal-main { color: #e9f1f8; }
html[data-theme="dark"] .account-modal-close { background-color: #152b40; }
html[data-theme="dark"] .account-modal-close:hover { background-color: #1d3850; }
html[data-theme="dark"] .account-tabs { background: #102338; border-color: #2c455c; }
html[data-theme="dark"] .account-tabs .nav-link { color: #9cb0c2; }
html[data-theme="dark"] .account-tabs .nav-link.active { color: #fff; background: #173e62; }
html[data-theme="dark"] .account-heading h3,
html[data-theme="dark"] .account-field > label,
html[data-theme="dark"] .account-label-row label,
html[data-theme="dark"] .account-mobile-intro strong { color: #f3f7fb; }
html[data-theme="dark"] .account-input-group .form-control { color: #eef5fb; background: #102338; border-color: #334d64; }
html[data-theme="dark"] .account-input-group .form-control::placeholder { color: #71879a; }
html[data-theme="dark"] .account-password-toggle { color: #9db0c2; }
html[data-theme="dark"] .account-password-toggle:hover { color: #fff; background: #173149; }
html[data-theme="dark"] .account-password-help { color: #a8bbcc; background: #102338; }
html[data-theme="dark"] .account-switch-copy button,
html[data-theme="dark"] .account-legal a { color: #8ec5ef; }
html[data-theme="dark"] .form-alert { color: #ffb9c0; background: #371d22; border-color: #71363f; }
html[data-theme="dark"] .form-alert.success { color: #8be0c3; background: #112f2a; border-color: #285f51; }
html[data-theme="dark"] .account-modal-main { scrollbar-color: rgba(130,166,195,.55) #0d1d2d; }
html[data-theme="dark"] .account-modal-main::-webkit-scrollbar-track { background: #0d1d2d; }
html[data-theme="dark"] .account-modal-main::-webkit-scrollbar-thumb { border-color: #0d1d2d; }

/* Wishlist / purchases / receipt */
html[data-theme="dark"] .account-empty-state,
html[data-theme="dark"] .wishlist-page-card,
html[data-theme="dark"] .purchase-card,
html[data-theme="dark"] .receipt-sheet,
html[data-theme="dark"] .receipt-reference-grid > div,
html[data-theme="dark"] .receipt-item-head {
    color: #e8f1f8;
    background: #0f2133;
    border-color: #2b455d;
}
html[data-theme="dark"] .account-empty-state > span { background: #39261d; color: #ff8850; }
html[data-theme="dark"] .wishlist-page-media { background: #0b1b2b; }
html[data-theme="dark"] .purchase-card-icon,
html[data-theme="dark"] .purchase-paid-badge { background: #113128; color: #73d4ad; }
html[data-theme="dark"] .receipt-header,
html[data-theme="dark"] .receipt-items,
html[data-theme="dark"] .receipt-item,
html[data-theme="dark"] .receipt-footer { border-color: #2b455d; }
html[data-theme="dark"] .receipt-item-head { color: #a7b8c8; }
html[data-theme="dark"] .coupon-feedback { background: #371d22; color: #ffb5bc; }
html[data-theme="dark"] .coupon-feedback.is-success { background: #102f27; color: #80d9b7; }

/* Mobile navigation / toast */
html[data-theme="dark"] .mobile-navigation { background: #0b1b2a; }
html[data-theme="dark"] .mobile-nav-links a { color: #e1ecf5; border-color: #294158; }
html[data-theme="dark"] .mobile-nav-submenu { background: #0f2235; }
html[data-theme="dark"] .toast { color: #eaf2f9; background: #102338; border: 1px solid #2d465d !important; }

/* Cookie and PWA cards already use dark branded gradients. Make their backdrop coherent. */
html[data-theme="dark"] .cookie-settings-modal .modal-backdrop,
html[data-theme="dark"] .modal-backdrop { background-color: #020911; }

/* Prevent theme transitions from animating during the initial pre-paint theme selection. */
@media (prefers-reduced-motion: reduce) {
    .theme-toggle,
    html[data-theme="dark"] body,
    html[data-theme="dark"] .site-header { transition: none !important; }
}

@media print {
    html[data-theme="dark"] { color-scheme: light; }
    html[data-theme="dark"] body,
    html[data-theme="dark"] .receipt-page,
    html[data-theme="dark"] .receipt-sheet,
    html[data-theme="dark"] .receipt-reference-grid > div,
    html[data-theme="dark"] .receipt-item-head { color: #111 !important; background: #fff !important; }
    html[data-theme="dark"] h1,
    html[data-theme="dark"] h2,
    html[data-theme="dark"] h3,
    html[data-theme="dark"] h4,
    html[data-theme="dark"] h5,
    html[data-theme="dark"] h6,
    html[data-theme="dark"] strong { color: #111 !important; }
    html[data-theme="dark"] p,
    html[data-theme="dark"] small { color: #555 !important; }
}
