/* SawaLife Modular: isolated visual tokens and component skin. */
.sawalife-modular {
    --sl-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --sl-primary-1: #f1fbfc;
    --sl-primary-3: #daf3f5;
    --sl-primary-5: #b9e7eb;
    --sl-primary-7: #7bced5;
    --sl-primary-9: #087f8c;
    --sl-primary-10: #066b76;
    --sl-primary-11: #055f68;
    --sl-primary-12: #083b42;
    --sl-neutral-1: #fcfcfd;
    --sl-neutral-2: #f9f9fb;
    --sl-neutral-3: #f2f2f5;
    --sl-neutral-5: #e4e4e9;
    --sl-neutral-6: #dddde3;
    --sl-neutral-8: #b9bbc6;
    --sl-neutral-11: #60646c;
    --sl-neutral-12: #1c2024;
    --sl-accent: #79ad19;
    --sl-page-bg: var(--sl-neutral-1);
    --sl-surface: var(--sl-neutral-2);
    --sl-surface-raised: #fff;
    --sl-border: var(--sl-neutral-6);
    --sl-text-muted: var(--sl-neutral-11);
    --sl-text: var(--sl-neutral-12);
    --sl-radius-sm: 8px;
    --sl-radius-md: 12px;
    --sl-radius-lg: 16px;
    --sl-radius-xl: 20px;
    --sl-shadow-xs: 0 1px 2px rgb(28 32 36 / 3%);
    --sl-shadow-sm: 0 4px 14px rgb(28 32 36 / 5%);
    background: var(--sl-page-bg);
    color: var(--sl-text);
    font-family: var(--sl-font-sans);
    letter-spacing: -0.008em;
}

.sawalife-modular :where(a, button, input, select, textarea, summary) {
    outline-offset: 3px;
}

.sawalife-modular :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--sl-primary-9);
}

/* Typography and foreground colour stay component-owned.  Every page already
   declares its intended Tailwind text scale/colour; global heading rules here
   were overriding those declarations, including white text over photo heroes. */
.sawalife-modular .sawalife-container {
    max-width: 88rem;
}

/* Contrast only for navy panels: no typography, sizing or layout changes. */
.sawalife-modular :is(.bg-brand-navy, .from-brand-navy) :is(h1, h2, h3, h4, h5, h6) {
    color: #f8fafc !important;
}

.sawalife-modular :is(.bg-brand-navy, .from-brand-navy) :where(p, li, dt, dd) {
    color: #d7e1ec !important;
}

.sawalife-modular :is(.bg-brand-navy, .from-brand-navy) :is(.text-brand-gold, [class*="text-brand-gold"]) {
    color: #e5c766 !important;
}

.sawalife-modular :is(.bg-brand-navy, .from-brand-navy) .text-white {
    color: #fff !important;
}

/* Homepage and News use this same carousel. Foreground colours only. */
.sawalife-modular [data-hero-showcase] :is(h1, h2, h3, h4, h5, h6) {
    color: #fff !important;
}

.sawalife-modular [data-hero-showcase] :where(p, li) {
    color: #d7e1ec !important;
}

.sawalife-modular [data-hero-showcase] :is(.text-brand-gold, [class*="text-brand-gold"]) {
    color: #ecd276 !important;
}

.sawalife-modular [data-hero-showcase] .text-white {
    color: #fff !important;
}

.sawalife-modular [data-hero-showcase] a> :last-child>span {
    color: #fff !important;
}

.sawalife-modular [data-hero-showcase] a>span:last-child {
    color: #fff !important;
}

.sawalife-modular [data-hero-showcase] [data-hero-metric-label] {
    color: #d7e1ec !important;
}

.sawalife-modular [data-hero-showcase] [data-hero-metric-value] {
    color: #fff !important;
}


.sawalife-modular-public .sawalife-public-header {
    position: sticky;
    top: 0;
    z-index: 40;
    min-height: 4.5rem;
    border-color: color-mix(in srgb, var(--sl-border), transparent 25%);
    background: rgb(252 252 253 / 92%);
    backdrop-filter: blur(14px);
}

.sawalife-modular-public .sawalife-public-header>div {
    min-height: 4.5rem;
}

.sawalife-modular .sawalife-public-header :is(summary, a) {
    border-radius: var(--sl-radius-sm);
}

.sawalife-modular .sawalife-public-header details>div {
    border-color: var(--sl-border) !important;
    border-radius: var(--sl-radius-md) !important;
    box-shadow: var(--sl-shadow-sm) !important;
}

.sawalife-modular .sawalife-mobile-menu-panel {
    border-radius: 0 !important;
    border: 0 !important;
}

.sawalife-modular .sawalife-button {
    min-height: 2.5rem;
    border-radius: 10px;
    box-shadow: none;
    font-family: var(--sl-font-sans);
    font-weight: 600;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

/* Button accent only: preserve the theme's separate navigation and focus colors. */
.sawalife-modular .sawalife-button-primary {
    border-color: #087f8c;
    background: #087f8c;
    color: #fff;
}

.sawalife-modular .sawalife-button-primary:hover {
    border-color: #066b76;
    background: #066b76;
    transform: translateY(-1px);
}

.sawalife-modular .sawalife-button-secondary {
    border-color: var(--sl-border);
    background: var(--sl-surface-raised);
    color: var(--sl-text);
}

.sawalife-modular .sawalife-button-secondary:hover {
    border-color: var(--sl-primary-7);
    background: var(--sl-primary-1);
    color: var(--sl-primary-11);
}

.sawalife-modular-public #main-content> :first-child {
    padding-top: clamp(2rem, 5vw, 5rem);
}

.sawalife-modular-public footer {
    border-color: var(--sl-border) !important;
    background: var(--sl-surface) !important;
}

.sawalife-modular-public footer :is(a, button) {
    color: var(--sl-text-muted) !important;
}

.sawalife-modular-public footer :is(a, button):hover {
    color: var(--sl-primary-11) !important;
}

/* Current public banner treatment: a calm light surface with the existing
   component copy scale. This deliberately replaces the retired navy/photo
   banner treatment on every public route, including News. */
.sawalife-modular-public main>section.bg-brand-navy:not([data-public-city-hero]):not([data-home-v2-hero]) {
    border-bottom: 1px solid var(--sl-border);
    background: var(--sl-surface) !important;
    color: var(--sl-text) !important;
}

.sawalife-modular-public main>section.bg-brand-navy:not([data-public-city-hero]):not([data-home-v2-hero]) :is(h1, h2, h3, h4, h5, h6) {
    color: var(--sl-text) !important;
}

.sawalife-modular-public main>section.bg-brand-navy:not([data-public-city-hero]):not([data-home-v2-hero]) :where(p, li, dt, dd) {
    color: var(--sl-text-muted) !important;
}

.sawalife-modular-public main>section.bg-brand-navy:not([data-public-city-hero]):not([data-home-v2-hero])>div>div>p:first-child {
    color: var(--sl-primary-11) !important;
}

.sawalife-modular-public main>section.bg-brand-navy:not([data-public-city-hero]):not([data-home-v2-hero]) .sawalife-button:not(.sawalife-button-primary) {
    border-color: var(--sl-border);
    background: #fff;
    color: var(--sl-text);
}

.sawalife-modular-public main>section.border-y {
    border-color: var(--sl-border) !important;
    background: var(--sl-page-bg) !important;
}

.sawalife-modular-public main>section .group.relative.flex.min-h-72 {
    min-height: 18rem;
    background: var(--sl-surface) !important;
}

.sawalife-modular-public main>section .group.relative.flex.min-h-72:hover {
    border-color: var(--sl-primary-7) !important;
    transform: translateY(-2px);
}

.sawalife-modular-public main>section .group.relative.flex.min-h-72>div>span {
    background: #eff8d3 !important;
    color: #5a7d0f !important;
}

.sawalife-modular-public main>section:not([data-public-city-hero]):not([data-home-v2-hero]) .rounded-full.border {
    border-color: var(--sl-border) !important;
    background: #fff !important;
    color: var(--sl-text-muted) !important;
}

.sawalife-modular-public main>section:not([data-public-city-hero]):not([data-home-v2-hero]) .rounded-full.border:hover {
    border-color: var(--sl-primary-7) !important;
    color: var(--sl-primary-11) !important;
}

.sawalife-modular :is(.sawalife-card, .rounded-card, .shadow-card) {
    border-color: var(--sl-border) !important;
    border-radius: var(--sl-radius-lg) !important;
    box-shadow: var(--sl-shadow-xs) !important;
}

.sawalife-modular :is(.bg-brand-warm-white, .bg-slate-50) {
    background-color: var(--sl-surface) !important;
}

.sawalife-modular .sawalife-input,
.sawalife-modular input:not([type='checkbox']):not([type='radio']),
.sawalife-modular select,
.sawalife-modular textarea {
    border-color: var(--sl-border);
    border-radius: 10px;
    background: var(--sl-surface-raised);
    color: var(--sl-text);
    box-shadow: none;
}

.sawalife-modular :is(.sawalife-input, input:not([type='checkbox']):not([type='radio']), select, textarea):focus {
    border-color: var(--sl-primary-9);
    box-shadow: 0 0 0 3px rgb(8 127 140 / 14%);
}

/* The home and news search pills have one focus surface: soft shadow, never an input halo. */
.sawalife-modular [data-home-v2-hero] .home-hero-search-input:focus,
.sawalife-modular [data-home-v2-hero] .home-hero-search-input:focus-visible,
.sawalife-modular [data-news-search-form] .news-search-input:focus,
.sawalife-modular [data-news-search-form] .news-search-input:focus-visible,
.sawalife-modular .news-search-input:focus,
.sawalife-modular .news-search-input:focus-visible {
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

.sawalife-modular table {
    border-color: var(--sl-border);
}

.sawalife-modular :is(th, td) {
    border-color: var(--sl-border) !important;
}

.sawalife-modular th {
    color: var(--sl-text-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.sawalife-modular-member {
    min-height: 100vh;
    background: var(--sl-page-bg);
}

.modular-shell {
    min-height: 100vh;
}

.modular-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    border-bottom: 1px solid var(--sl-border);
    background: rgb(252 252 253 / 94%);
    backdrop-filter: blur(14px);
}

.modular-topbar-inner {
    display: flex;
    min-height: 4.5rem;
    max-width: 88rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 auto;
    padding: 0 1.25rem;
}

.modular-brand-area {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
}

.modular-brand {
    display: inline-flex;
    align-items: center;
    gap: .85rem;
    color: var(--sl-text);
    text-decoration: none;
}

.modular-brand-caption {
    padding-left: .85rem;
    border-left: 1px solid var(--sl-border);
    color: var(--sl-text-muted);
    font-size: .875rem;
    font-weight: 600;
}

.modular-mobile-navigation-trigger {
    display: none;
    width: 2.4rem;
    height: 2.4rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sl-border);
    border-radius: 10px;
    background: var(--sl-surface-raised);
    color: var(--sl-text);
    cursor: pointer;
}

.modular-mobile-navigation-trigger:hover {
    border-color: var(--sl-primary-7);
    color: var(--sl-primary-11);
}

.modular-topbar-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.modular-account-reference {
    display: none;
    min-height: 2.4rem;
    align-items: center;
    gap: .45rem;
    border: 1px solid color-mix(in srgb, var(--sl-primary-7) 35%, var(--sl-border));
    border-radius: 10px;
    background: var(--sl-primary-2);
    color: var(--sl-primary-11);
    padding: 0 .7rem;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    white-space: nowrap;
}

.modular-account-reference-member {
    background: color-mix(in srgb, var(--sl-primary-2) 60%, white);
}

@media (min-width: 1024px) {
    .modular-account-reference {
        display: inline-flex;
    }
}

.modular-icon-button,
.modular-signout {
    display: inline-flex;
    min-height: 2.4rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sl-border);
    border-radius: 10px;
    background: var(--sl-surface-raised);
    color: var(--sl-text);
    font-size: .875rem;
    font-weight: 600;
}

.modular-icon-button {
    width: 2.4rem;
    cursor: pointer;
}

.modular-signout {
    padding: 0 .8rem;
    cursor: pointer;
}

.modular-icon-button:hover,
.modular-signout:hover {
    border-color: var(--sl-primary-7);
    color: var(--sl-primary-11);
}

.modular-avatar {
    display: inline-flex;
    overflow: hidden;
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid var(--sl-border);
    border-radius: 10px;
}

.modular-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.modular-workspace {
    display: grid;
    grid-template-columns: minmax(15.5rem, 18rem) minmax(0, 1fr);
    max-width: 88rem;
    min-height: calc(100vh - 4.5rem);
    gap: 2rem;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
}

.modular-navigation {
    padding: .25rem 0;
}

.modular-navigation :is(.sawalife-account-menu, nav) {
    border-color: var(--sl-border);
    border-radius: var(--sl-radius-lg);
    background: var(--sl-surface);
    box-shadow: none;
}

/* Dashboard member navigation section labels only: preserve the existing text-xs scale. */
.sawalife-modular .sawalife-account-sidebar h2 {
    font-size: .875rem !important;
}

.modular-content {
    min-width: 0;
}

.modular-content>* {
    animation: modular-enter .24s ease-out both;
}

.modular-footer {
    border-top: 1px solid var(--sl-border);
    background: var(--sl-surface);
}

.modular-footer>div {
    display: flex;
    max-width: 88rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 auto;
    padding: 1.25rem;
    color: var(--sl-text-muted);
    font-size: .875rem;
}

.sawalife-modular-guest main>div>aside {
    border: 1px solid var(--sl-primary-5);
    border-radius: var(--sl-radius-xl);
    background: #102a43;
    box-shadow: none;
}

.sawalife-modular-guest main>div>aside :is(h1, p, li) {
    color: #fff;
}

.sawalife-modular-guest main>div>aside p {
    color: #d9e2ec;
}

.sawalife-modular-guest footer {
    border-color: var(--sl-border) !important;
    background: var(--sl-surface) !important;
}

.sawalife-modular-member.dark {
    --sl-primary-1: #102b32;
    --sl-primary-3: #123b43;
    --sl-primary-5: #185563;
    --sl-primary-7: #2a98a3;
    --sl-primary-9: #2cb1bc;
    --sl-primary-10: #56c8cf;
    --sl-primary-11: #92e0e5;
    --sl-primary-12: #d8fbfc;
    --sl-page-bg: #101216;
    --sl-surface: #1b1f26;
    --sl-surface-raised: #242a33;
    --sl-border: #414955;
    --sl-text-muted: #c0c8d4;
    --sl-text: #f5f7fb;
    background: var(--sl-page-bg);
}

.sawalife-modular-member.dark :is(.modular-topbar, .modular-footer) {
    background: #171b21;
}

.sawalife-modular-member.dark :is(.modular-icon-button, .modular-signout) {
    background: var(--sl-surface-raised);
    color: var(--sl-text);
}

.sawalife-modular-member.dark .modular-brand-logo {
    filter: invert(1) hue-rotate(180deg) saturate(.82) brightness(1.18);
}

.sawalife-modular-member.dark :is(.sawalife-card, .rounded-card, .shadow-card, .bg-white, .bg-brand-warm-white, .bg-slate-50) {
    background-color: var(--sl-surface-raised) !important;
}

.sawalife-modular-member.dark :is([class*="bg-white/"], [class*="bg-brand-warm-white/"], .bg-cyan-50, .bg-amber-50) {
    background-color: #2b323d !important;
}

.sawalife-modular-member.dark :is(input, select, textarea) {
    background: #171b21;
    color: var(--sl-text);
}

.sawalife-modular-member.dark :is(.text-brand-navy, .text-brand-ink) {
    color: var(--sl-text) !important;
}

.sawalife-modular-member.dark .text-brand-muted {
    color: var(--sl-text-muted) !important;
}

.sawalife-modular-member.dark :is(.text-slate-200, .text-slate-300, .text-slate-400) {
    color: var(--sl-text-muted) !important;
}

.sawalife-modular-member.dark :is(.text-brand-gold, [class*="text-brand-gold"]) {
    color: #f0cf69 !important;
}

.sawalife-modular-member.dark :is(.border-brand-border, [class*="border-brand-border"], .border-slate-200, .border-slate-300) {
    border-color: var(--sl-border) !important;
}

.sawalife-modular-member.dark :is(.bg-brand-navy, .from-brand-navy) :is(h1, h2, h3, h4, h5, h6) {
    color: #fff !important;
}

.sawalife-modular-member.dark :is(.bg-brand-navy, .from-brand-navy) :where(p, li, dt, dd) {
    color: #dce6f4 !important;
}

.sawalife-modular-member.dark .sawalife-button-secondary {
    background: var(--sl-surface-raised);
    color: var(--sl-text);
}

.sawalife-modular-member.dark .sawalife-button-secondary:hover {
    background: #303946;
    color: #fff;
}

.sawalife-modular-member.dark .sawalife-account-sidebar a[aria-current="page"] {
    background: #173a59 !important;
    color: #fff !important;
}

.sawalife-modular-member.dark .sawalife-account-sidebar a[aria-current="page"] :is(svg, span) {
    color: inherit !important;
}

.sawalife-modular-member.dark .sawalife-account-sidebar a:not([aria-current="page"]):hover {
    background: #2c3745 !important;
    color: #85e3ee !important;
}

.sawalife-modular-member.dark .sawalife-account-sidebar a:not([aria-current="page"]):hover :is(svg, span) {
    color: inherit !important;
}

.sawalife-modular-member.dark [data-chat-translation-promo] {
    border-color: #3d6974 !important;
    background: #202c38 !important;
}

.sawalife-modular-member.dark [data-chat-translation-promo] :is(h1, h2, h3, p, a) {
    color: var(--sl-text) !important;
}

.sawalife-modular-member.dark .modular-chat-translation-promo {
    border-color: #3d6974 !important;
    background-color: #202c38 !important;
    background-image: none !important;
}

.sawalife-modular-member.dark .modular-chat-translation-promo :is(h1, h2, h3, p, a) {
    color: var(--sl-text) !important;
}

.sawalife-modular-member.dark [data-inbox-translation-notice] {
    border-color: #3d6974 !important;
    background-color: #202c38 !important;
    background-image: none !important;
}

.sawalife-modular-member.dark [data-inbox-translation-notice] :is(h1, h2, h3, p, a) {
    color: var(--sl-text) !important;
}

.sawalife-modular-member.dark [data-inbox-translation-notice] .text-brand-turquoise {
    color: #85e3ee !important;
}

.sawalife-modular-member.dark [data-marketplace-promotion-options] {
    border-color: #5c4728 !important;
    background: #242a33 !important;
}

.sawalife-modular-member.dark [data-marketplace-promotion-options] :is(section, button) {
    border-color: var(--sl-border) !important;
    background-color: var(--sl-surface) !important;
}

.sawalife-modular-member.dark [data-marketplace-promotion-options] button:hover {
    background-color: #2b323d !important;
}

.sawalife-modular-member.dark [data-marketplace-promotion-options] span:is(.bg-slate-100, [class~="bg-slate-100"], .bg-slate-50, .bg-white) {
    background-color: #171b21 !important;
    color: #56c8cf !important;
    border: 1px solid #414955 !important;
}

.sawalife-modular-member.dark [data-marketplace-promotion-options] :is(.bg-cyan-50, .bg-amber-50, [class*="bg-emerald-50"]) {
    background-color: #171b21 !important;
}

.sawalife-modular-member.dark [data-marketplace-promotion-options] [class*="text-emerald-700"] {
    color: #86efac !important;
}

@keyframes modular-enter {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1023px) {
    .modular-workspace {
        display: block;
        padding-top: 1.25rem;
    }

    .modular-navigation {
        display: none;
    }

    .modular-content {
        padding-bottom: 4rem;
    }

    .modular-footer > div {
        padding-bottom: calc(6.25rem + env(safe-area-inset-bottom));
    }

    .modular-mobile-navigation-trigger {
        display: inline-flex;
    }

    .modular-mobile-navigation {
        position: fixed;
        z-index: 70;
        inset: 0;
    }

    .modular-mobile-navigation-backdrop {
        position: absolute;
        inset: 0;
        width: 100%;
        border: 0;
        background: rgb(28 32 36 / 42%);
        backdrop-filter: blur(2px);
        cursor: pointer;
    }

    .modular-mobile-navigation-panel {
        position: relative;
        width: min(22rem, calc(100vw - 3rem));
        height: 100%;
        overflow-y: auto;
        border-right: 1px solid var(--sl-border);
        background: var(--sl-page-bg);
        box-shadow: 1rem 0 2.5rem rgb(28 32 36 / 16%);
    }

    .modular-mobile-navigation-panel-header {
        display: flex;
        min-height: 4.5rem;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid var(--sl-border);
        padding: 0 1rem;
        color: var(--sl-text);
        font-size: .875rem;
        font-weight: 700;
    }

    .modular-mobile-navigation-close {
        display: inline-flex;
        width: 2.25rem;
        height: 2.25rem;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--sl-border);
        border-radius: 10px;
        background: var(--sl-surface-raised);
        color: var(--sl-text);
        font-size: 1.5rem;
        line-height: 1;
        cursor: pointer;
    }

    .modular-mobile-navigation-close:hover {
        border-color: var(--sl-primary-7);
        color: var(--sl-primary-11);
    }

    .modular-mobile-navigation-panel .sawalife-account-sidebar {
        padding: 1rem;
    }

    .modular-mobile-navigation-panel .sawalife-account-sidebar>details {
        display: block;
    }

    .modular-mobile-navigation-panel .sawalife-account-sidebar>details>summary {
        display: none;
    }

    .modular-mobile-navigation-panel .sawalife-account-sidebar>details>nav {
        display: block;
        border: 0;
        padding: 0;
    }
}

@media (max-width: 640px) {
    .modular-topbar-inner {
        min-height: 4rem;
        padding: 0 1rem;
    }

    .modular-brand-caption,
    .modular-signout {
        display: none;
    }

    .modular-workspace {
        padding: 1rem 1rem 4rem;
    }

    .sawalife-modular-public #main-content> :first-child {
        padding-top: 1.5rem;
    }
}

/* Final foreground layer for the shared Homepage/News mini-carousel only. */
.sawalife-modular [data-hero-showcase] [data-hero-city-eyebrow] {
    color: #ecd276 !important;
}

.sawalife-modular [data-hero-showcase] [data-hero-city-name],
.sawalife-modular [data-hero-showcase] [data-hero-currency-rate],
.sawalife-modular [data-hero-showcase] [data-hero-metric-value] {
    color: #fff !important;
}

.sawalife-modular [data-hero-showcase] [data-hero-currency-base],
.sawalife-modular [data-hero-showcase] [data-hero-currency-date],
.sawalife-modular [data-hero-showcase] [data-hero-currency-rate]>span,
.sawalife-modular [data-hero-showcase] [data-hero-metric-label] {
    color: #d7e1ec !important;
}

/* Homepage photo hero keeps its own high-contrast foreground.  It is not one
   of the light public banners: the photo needs explicit light copy on every
   locale and on both hero columns. */
.sawalife-modular [data-home-v2-hero] :is(h1, h2) {
    color: #fff !important;
}

.sawalife-modular [data-home-v2-hero] :is(p, li, summary) {
    color: #f8fafc !important;
}

.sawalife-modular [data-home-v2-hero] .text-brand-turquoise {
    color: #56c8cf !important;
}

.sawalife-modular [data-home-v2-hero] .text-brand-gold {
    color: #ecd276 !important;
}

/* Photo changes on every visit; foreground contrast must not depend on the
   particular sky or landscape selected. Keep this scope exclusive to home. */
.sawalife-modular [data-home-v2-hero-subtitle] {
    color: #fff !important;
    text-shadow: 0 1px 3px rgb(8 24 42 / 72%);
}

.sawalife-modular [data-home-v2-hero-card] :is(h2, ul, li),
.sawalife-modular [data-home-v2-hero-card] li > span:not([data-home-v2-hero-icon]) {
    color: #fff !important;
}

.sawalife-modular [data-home-v2-hero-card] [data-home-v2-hero-icon] {
    color: #56c8cf !important;
}

/* About's matching cards are a light Modular surface; only their titles need a dark foreground. */
.sawalife-modular-public [data-about-connect-points] h3 {
    color: var(--sl-text) !important;
}

/* City photo hero keeps its own rich photo background and high-contrast foreground. */
.sawalife-modular [data-public-city-hero] {
    background-color: #102a43 !important;
    color: #fff !important;
}

.sawalife-modular [data-public-city-hero] :is(h1, h2) {
    color: #fff !important;
}

.sawalife-modular [data-public-city-hero] :is(p, span) {
    color: #fff !important;
}

.sawalife-modular [data-public-city-hero] .text-brand-turquoise {
    color: #56c8cf !important;
}

.sawalife-modular [data-public-city-hero] .text-brand-gold {
    color: #ecd276 !important;
}

.sawalife-modular [data-public-city-hero] [data-city-country-badge] {
    background-color: rgba(2, 6, 23, 0.75) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

.sawalife-modular [data-public-city-hero] [data-city-country-badge] span {
    color: #ffffff !important;
}


