/* Dark theme: original mesh + blur layers (pre–flat-white pages) + light text */
html.theme-dark {
    --mesh-dark-base:
        radial-gradient(ellipse 108% 98% at 50% -8%, rgba(225, 236, 248, 0.55) 0%, rgba(200, 220, 238, 0.2) 38%, transparent 62%),
        radial-gradient(ellipse 95% 88% at 16% 50%, rgba(88, 118, 152, 0.48) 0%, rgba(115, 145, 178, 0.18) 46%, transparent 64%),
        radial-gradient(ellipse 88% 84% at 86% 70%, rgba(175, 168, 210, 0.26) 0%, rgba(155, 180, 210, 0.12) 44%, transparent 60%),
        linear-gradient(
            168deg,
            #5f758c 0%,
            #6c8298 12%,
            #7b91a6 28%,
            #8fa3b5 44%,
            #9bb0c2 56%,
            #8498ac 72%,
            #6f8499 88%,
            #62788e 100%
        );
    --hero-bg: #8fa3b5;
    --hero-surface: rgba(255, 255, 255, 0.12);
    --text-color: #eef3f8;
}

html.theme-dark body {
    background: var(--mesh-dark-base);
    background-color: #8fa3b5;
}

html.theme-dark body::before,
html.theme-dark body::after {
    display: block;
    content: "";
    position: fixed;
    inset: -15%;
    pointer-events: none;
    z-index: 0;
}

html.theme-dark body::before {
    background:
        radial-gradient(ellipse 64% 60% at 70% 14%, rgba(200, 225, 245, 0.42) 0%, rgba(175, 205, 228, 0.12) 45%, transparent 62%),
        radial-gradient(ellipse 58% 56% at 12% 62%, rgba(150, 185, 215, 0.32) 0%, transparent 60%),
        radial-gradient(ellipse 52% 54% at 48% 98%, rgba(185, 200, 225, 0.24) 0%, transparent 58%);
    filter: blur(64px);
    opacity: 0.82;
}

html.theme-dark body::after {
    background:
        radial-gradient(ellipse 46% 44% at 8% 12%, rgba(215, 205, 235, 0.2) 0%, transparent 56%),
        radial-gradient(ellipse 44% 42% at 92% 8%, rgba(175, 210, 225, 0.22) 0%, transparent 54%),
        radial-gradient(ellipse 58% 52% at 50% 48%, rgba(255, 255, 255, 0.06) 0%, transparent 68%);
    filter: blur(84px);
    opacity: 0.76;
}

@media (max-width: 768px) {
    html.theme-dark .mobile-hero-video-wrap {
        background: var(--mesh-dark-base);
        background-color: #8fa3b5;
    }
}

/* --- index.html --- */
html.theme-dark button.hero-reviews-trigger {
    background: rgba(255, 255, 255, 0.1);
}
html.theme-dark button.hero-reviews-trigger:hover,
html.theme-dark button.hero-reviews-trigger:focus-visible {
    background: rgba(255, 255, 255, 0.16);
}
html.theme-dark button.hero-reviews-trigger:focus-visible {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.55);
}
html.theme-dark .rating-meta {
    color: rgba(238, 243, 248, 0.92);
}
html.theme-dark .hamburger-menu span,
html.theme-dark body.nav-dark .hamburger-menu span {
    background-color: #ffffff;
}
html.theme-dark .hamburger-menu.active span {
    background-color: #ffffff;
}
html.theme-dark body.nav-dark .header .site-nav-desktop a {
    color: rgba(255, 255, 255, 0.95);
}
html.theme-dark body.nav-dark .header .site-nav-desktop a:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.14);
}
html.theme-dark body.nav-dark .header .site-nav-desktop a:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.9);
    outline-offset: 2px;
}
@media (min-width: 1024px) {
    html.theme-dark body.nav-dark .header .site-nav-desktop a[href="#contact"]:hover,
    html.theme-dark body.nav-dark .header .site-nav-desktop a[href="index.html#contact"]:hover {
        background-color: rgba(255, 255, 255, 0.14);
        color: #ffffff;
    }
}
html.theme-dark .mobile-menu a {
    color: #1f2937;
}
html.theme-dark .home-beta-note {
    color: rgba(238, 243, 248, 0.95) !important;
}
html.theme-dark .hero-side-panel .description-text {
    color: rgba(246, 250, 255, 0.98);
}

/* --- listofall --- */
html.theme-dark .house-name {
    color: #1f3344;
}
html.theme-dark .property-card .house-details .house-location,
html.theme-dark .property-card .house-details .house-capacity,
html.theme-dark .property-card .house-details .house-stay-price {
    color: #2f4a62;
}
html.theme-dark .plain-text-btn,
html.theme-dark #show-unavailable-btn {
    color: #c8dff5;
    text-decoration-color: rgba(200, 223, 245, 0.55);
}
html.theme-dark .section-tag {
    color: #eef3f8;
}
html.theme-dark .hamburger-menu span,
html.theme-dark body.nav-dark .hamburger-menu span {
    background-color: #ffffff;
}
html.theme-dark .back-button,
html.theme-dark body.nav-dark .back-button {
    color: #ffffff;
}
html.theme-dark .property-card::after {
    background-color: rgba(255, 255, 255, 0.22);
}
html.theme-dark .property-card::before {
    background-color: rgba(255, 255, 255, 0.22);
}
html.theme-dark .map-loading {
    background: rgba(30, 45, 58, 0.92);
    color: #eef3f8;
}
html.theme-dark #filters-panel.filters-container button.section-tag {
    border-color: rgba(255, 255, 255, 0.35);
    background-color: rgba(255, 255, 255, 0.12);
    color: #f4f7fb;
}
html.theme-dark #filters-panel.filters-container button.section-tag:hover {
    background-color: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}
@media (min-width: 1200px) {
    html.theme-dark #filters-panel.filters-container button.section-tag {
        background: transparent;
        border: none;
        color: #eef3f8;
    }
    html.theme-dark #filters-panel.filters-container button.section-tag:hover {
        color: #ffffff;
        background: transparent;
    }
}

/* Floating control */
.theme-toggle-btn {
    position: fixed;
    z-index: 20050;
    bottom: max(14px, calc(env(safe-area-inset-bottom, 0px) + 10px));
    left: max(14px, calc(env(safe-area-inset-left, 0px) + 10px));
    margin: 0;
    padding: 8px 12px;
    border: 1px solid rgba(31, 51, 70, 0.2);
    border-radius: 999px;
    background: var(--hero-surface, #f8f8f8);
    color: var(--text-color, #333);
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.theme-toggle-btn:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
}
.theme-toggle-btn:focus-visible {
    outline: 2px solid #21c9ee;
    outline-offset: 2px;
}
html.theme-dark .theme-toggle-btn {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.14);
    color: #f4f7fb;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}
html.theme-dark .theme-toggle-btn:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* Home: sit above fixed contact strip */
body:has(.site-contact-footer--hero) .theme-toggle-btn {
    bottom: max(14px, calc(env(safe-area-inset-bottom, 0px) + 10px + 2.75rem));
}
