/* HEWANI customer experience: clear contrast, quiet surfaces and responsive controls. */
:root {
    --bs-primary: #2563eb;
    --bs-primary-rgb: 37, 99, 235;
    --bs-success: #079669;
    --bs-success-rgb: 7, 150, 105;
    --bs-info: #0891b2;
    --bs-info-rgb: 8, 145, 178;
    --bs-warning: #e9a519;
    --bs-warning-rgb: 233, 165, 25;
    --bs-danger: #dc3545;
    --bs-body-color: #17243a;
    --bs-body-bg: #f4f7fb;
    --hewani-ink: #17243a;
    --hewani-muted: #64748b;
    --hewani-brand: #2563eb;
    --hewani-brand-deep: #173b86;
    --hewani-accent: #0891b2;
    --hewani-success: #079669;
    --hewani-surface: #fff;
    --hewani-border: #e3eaf3;
    --hewani-shadow: 0 10px 30px rgba(15, 35, 68, .07);
    --hewani-shadow-hover: 0 18px 42px rgba(15, 35, 68, .13);
}

html { scroll-behavior: smooth; }

body {
    background: #f4f7fb;
    color: var(--hewani-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

main.container {
    width: min(100% - 2rem, 1320px);
    max-width: 1320px;
    padding-top: 2rem !important;
    padding-bottom: 3rem !important;
}
main.page-main { min-height: calc(100vh - 185px); }

h1, h2, h3, h4, h5, h6 { color: #14233b; letter-spacing: -.025em; }
h1 { font-weight: 760; }
h2, h3, h4, h5 { font-weight: 700; }
p { line-height: 1.65; }
a { text-underline-offset: .18em; }

.site-navbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    min-height: 70px;
    background: linear-gradient(105deg, #10213b 0%, #173b70 65%, #12506a 100%) !important;
    box-shadow: 0 8px 24px rgba(13, 31, 56, .16) !important;
    backdrop-filter: blur(14px);
}

.site-navbar .container { gap: 1rem; }
.site-navbar .navbar-brand { color: #fff; font-size: 1.08rem; letter-spacing: -.02em; }
.site-navbar .brand-logo { width: 42px; height: 42px; object-fit: contain; }
.site-navbar .navbar-nav { gap: .2rem; }
.site-navbar .nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: .55rem .75rem !important;
    border-radius: .7rem;
    color: rgba(255,255,255,.82) !important;
    font-size: .94rem;
    font-weight: 550;
}
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus-visible {
    background: rgba(255,255,255,.12);
    color: #fff !important;
}
.site-navbar .navbar-toggler { border-color: rgba(255,255,255,.35); padding: .45rem .65rem; }
.site-navbar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(255,255,255,.2); }
.site-navbar .dropdown-menu { min-width: 220px; margin-top: .65rem; }
.notification-button { width: 42px; height: 42px; display: inline-grid; place-items: center; padding: 0; }

.card {
    overflow: hidden;
    border: 1px solid var(--hewani-border) !important;
    border-radius: 1rem !important;
    background-color: var(--hewani-surface);
    box-shadow: var(--hewani-shadow) !important;
    animation: none !important;
}
.card-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(227,234,243,.8);
    font-weight: 650;
}
.card-body { padding: 1.35rem; }
.card-footer { background: transparent; border-top: 1px solid var(--hewani-border); }
.card-img-top { display: block; width: 100%; object-fit: cover; }
.card:hover { transform: none; }

/* Product listings get a gentle lift; form, wallet and summary cards stay still. */
.product-card,
.marketplace-grid > [class*="col-"] > .card,
.featured-pcs > [class*="col-"] > .card {
    height: 100%;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.product-card:hover,
.marketplace-grid > [class*="col-"] > .card:hover,
.featured-pcs > [class*="col-"] > .card:hover {
    transform: translateY(-4px);
    border-color: #c8d8f6 !important;
    box-shadow: var(--hewani-shadow-hover) !important;
}

.btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border-radius: .72rem;
    font-weight: 650;
    letter-spacing: .005em;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
}
.btn-sm { min-height: 36px; border-radius: .62rem; }
.btn-lg { min-height: 50px; border-radius: .82rem; }
.btn-primary {
    color: #fff;
    background: var(--hewani-brand);
    border-color: var(--hewani-brand);
    box-shadow: 0 5px 12px rgba(37,99,235,.16);
}
.btn-primary:hover, .btn-primary:focus {
    color: #fff;
    background: #1d4ed8;
    border-color: #1d4ed8;
    box-shadow: 0 9px 18px rgba(37,99,235,.24);
}
.btn-success { background: var(--hewani-success); border-color: var(--hewani-success); color: #fff; }
.btn-success:hover, .btn-success:focus { background: #087a58; border-color: #087a58; color: #fff; box-shadow: 0 8px 17px rgba(7,150,105,.2); }
.btn-warning { background: #f2b93f; border-color: #f2b93f; color: #18263c; }
.btn-warning:hover, .btn-warning:focus { background: #e5a51f; border-color: #e5a51f; color: #18263c; }
.btn:hover:not(:disabled):not(.disabled) { transform: translateY(-1px); }
.btn:active:not(:disabled):not(.disabled) { transform: translateY(0); }
.btn:disabled, .btn.disabled { cursor: not-allowed; opacity: .58; transform: none; box-shadow: none; }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(8,145,178,.38);
    outline-offset: 2px;
}
.btn:focus:not(:focus-visible), a:focus:not(:focus-visible) { outline: none; }

.form-label { margin-bottom: .45rem; color: #24364f; font-size: .93rem; font-weight: 650; }
.form-control, .form-select {
    min-height: 46px;
    border: 1px solid #d6e0ed;
    border-radius: .72rem;
    background-color: #fff;
    color: #17243a;
    box-shadow: 0 1px 2px rgba(15,35,68,.025);
}
textarea.form-control { min-height: 104px; }
.form-control::placeholder { color: #91a0b4; }
.form-control:focus, .form-select:focus {
    border-color: #7da4f7;
    box-shadow: 0 0 0 .22rem rgba(37,99,235,.12);
}
.form-control:disabled, .form-select:disabled { background: #f2f5f9; color: #8793a4; }

.badge { padding: .4rem .62rem; border-radius: 999px; font-weight: 650; letter-spacing: .01em; }
.alert { border: 1px solid transparent; border-radius: .85rem; box-shadow: 0 4px 12px rgba(15,35,68,.04); }
.table { --bs-table-color: #26364e; --bs-table-border-color: #e8edf4; }
.table > :not(caption) > * > * { padding: .78rem .7rem; vertical-align: middle; }
.table thead th { color: #61718a; font-size: .8rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.pagination { gap: .25rem; flex-wrap: wrap; }
.page-link { min-width: 40px; min-height: 40px; display: grid; place-items: center; border-radius: .65rem !important; }

.hero {
    position: relative;
    overflow: hidden;
    border-radius: 1.35rem;
    background: linear-gradient(120deg, #10213b 0%, #174c8f 58%, #087e91 100%);
    color: #fff;
}
.hero h1, .hero h2, .hero h3, .hero h4, .hero p { color: inherit; }
.text-primary { color: var(--hewani-brand) !important; }
.text-success { color: var(--hewani-success) !important; }
.bg-primary { background-color: var(--hewani-brand) !important; }
.bg-success { background-color: var(--hewani-success) !important; }
.site-footer { color: #e0eaf8; background: #0e1b30; }

.brand-intro {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: radial-gradient(ellipse at 50% 42%, #fff 0%, #f6f9ff 54%, #eaf2ff 100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .45s ease, visibility .45s ease;
}
html.hewani-brand-intro-first .brand-intro {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.brand-intro.brand-intro--leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.brand-intro__content {
    width: min(100%, 640px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid rgba(217,228,244,.9);
    border-radius: 1.5rem;
    background: rgba(255,255,255,.86);
    box-shadow: 0 28px 80px rgba(24,57,105,.14);
    animation: brand-intro-arrive .55s cubic-bezier(.2,.75,.25,1) both;
}
.brand-intro__logo { display: block; width: min(78vw, 540px); height: auto; object-fit: contain; }
.brand-intro__tagline { color: #64748b; font-size: .9rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.brand-intro__progress { width: min(42vw, 180px); height: 3px; overflow: hidden; border-radius: 999px; background: #e5edf8; }
.brand-intro__progress::after {
    display: block;
    width: 40%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2563eb, #0891b2);
    content: "";
    animation: brand-intro-progress 1.45s ease-in-out infinite;
}
@keyframes brand-intro-arrive { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes brand-intro-progress { from { transform: translateX(-110%); } to { transform: translateX(260%); } }

body.theme-dark {
    --hewani-ink: #e7eef8;
    --hewani-muted: #a9b8cc;
    --hewani-surface: #172438;
    --hewani-border: #2a3c54;
    --hewani-shadow: 0 10px 30px rgba(0,0,0,.2);
    --hewani-shadow-hover: 0 18px 42px rgba(0,0,0,.32);
    --bs-body-color: #e7eef8;
    background: #0e1726 !important;
    color: var(--hewani-ink);
}
body.theme-dark main { color: var(--hewani-ink); }
body.theme-dark h1, body.theme-dark h2, body.theme-dark h3,
body.theme-dark h4, body.theme-dark h5, body.theme-dark h6,
body.theme-dark .form-label { color: #edf3fb; }
body.theme-dark .card { background-color: #172438; border-color: #2a3c54 !important; }
body.theme-dark .card-header { background-color: rgba(255,255,255,.025); border-color: #2a3c54; }
body.theme-dark .table { --bs-table-color: #dce6f3; --bs-table-bg: transparent; --bs-table-border-color: #2a3c54; }
body.theme-dark .table-light, body.theme-dark .dropdown-menu { --bs-table-bg: #1d2d43; background: #1d2d43; color: #e7eef8; }
body.theme-dark .dropdown-item { color: #e7eef8; }
body.theme-dark .dropdown-item:hover { background: #2a3c54; }
body.theme-dark .form-control, body.theme-dark .form-select {
    background-color: #111c2d; color: #e7eef8; border-color: #3a4d66;
}
body.theme-dark .form-control::placeholder { color: #8698af; }
body.theme-dark .text-muted { color: #a9b8cc !important; }
body.theme-dark .btn-light { background: #273a53; border-color: #3a4d66; color: #edf3fb; }
body.theme-dark .bg-light { background-color: #1d2d43 !important; }

@media (max-width: 991.98px) {
    .site-navbar .navbar-collapse { padding: .8rem 0 1rem; }
    .site-navbar .navbar-collapse.collapsing {
        padding-top: 0;
        padding-bottom: 0;
        transition: height .22s ease, padding .22s ease;
    }
    .site-navbar .navbar-nav { align-items: stretch; }
    .site-navbar .nav-link { width: 100%; }
    .site-navbar .dropdown { margin-top: .6rem; }
    .site-navbar .notification-button { margin: .55rem 0 !important; }
    .site-navbar .navbar-collapse > .d-flex { align-items: stretch !important; flex-direction: column; }
}

@media (max-width: 767.98px) {
    main.container { width: min(100% - 1rem, 100%); padding-top: 1.1rem !important; padding-bottom: 2rem !important; }
    .card-body { padding: 1.05rem; }
    .card-header { padding: .9rem 1.05rem; }
    .hero { border-radius: 1rem; }
    .hero h1 { font-size: clamp(2rem, 8vw, 3rem); }
    .table-responsive { border-radius: .8rem; }
    .table > :not(caption) > * > * { padding: .65rem .55rem; }
    .d-flex.justify-content-between.align-items-center { gap: .8rem; }
    .d-flex.justify-content-between.align-items-center > .btn { flex-shrink: 0; }
}

@media (max-width: 575.98px) {
    .btn:not(.btn-sm) { width: 100%; }
    .btn-close { width: auto !important; }
    .site-navbar .btn { width: auto; }
    .site-navbar .navbar-brand { font-size: 1rem; }
    .card { border-radius: .9rem !important; }
    .pagination .page-link { min-width: 36px; min-height: 36px; padding: .4rem .55rem; }
    h1 { font-size: 1.85rem; }
    h2 { font-size: 1.55rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Unified HEWANI theme: quiet neutrals with one consistent blue brand color. */
:root {
    --bs-primary: #315f86;
    --bs-primary-rgb: 49, 95, 134;
    --bs-info: #527391;
    --bs-info-rgb: 82, 115, 145;
    --hewani-ink: #203246;
    --hewani-muted: #66778a;
    --hewani-brand: #315f86;
    --hewani-brand-deep: #244866;
    --hewani-accent: #527391;
    --hewani-surface: #fff;
    --hewani-border: #e1e7ed;
    --hewani-shadow: 0 8px 24px rgba(25, 45, 65, .06);
    --hewani-shadow-hover: 0 14px 32px rgba(25, 45, 65, .1);
}

body {
    background: #f5f7f9 !important;
    color: var(--hewani-ink);
}

.site-navbar {
    background: #fff !important;
    border-bottom: 1px solid #e4e9ef;
    box-shadow: 0 3px 14px rgba(25, 45, 65, .045) !important;
    backdrop-filter: none;
}

.site-navbar .navbar-brand { color: #203246 !important; }
.site-navbar .brand-logo {
    width: 200px;
    height: 72px;
    padding: 0;
    border-radius: 8px;
    background: #fff;
    object-fit: contain;
    flex: 0 0 auto;
    transform: none !important;
    transition: none !important;
}
.site-navbar .navbar-brand:hover .brand-logo,
.site-navbar .navbar-brand:focus .brand-logo { transform: none !important; }
.site-navbar .nav-link {
    color: #405469 !important;
    font-weight: 600;
}
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus-visible {
    background: #edf2f6;
    color: #244866 !important;
}
.site-navbar .navbar-toggler { border-color: #d5dde6; }
.site-navbar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(49, 95, 134, .15); }
.site-navbar .btn-outline-light {
    color: #405469;
    border-color: #d4dde6;
}
.site-navbar .btn-outline-light:hover,
.site-navbar .btn-outline-light:focus {
    color: #244866;
    border-color: #9db2c5;
    background: #edf2f6;
}
.site-navbar .btn-light {
    color: #30475e;
    border-color: #d4dde6;
}

.hero {
    background: #edf1f4;
    color: #263b50;
}
.hero h1, .hero h2, .hero h3, .hero h4, .hero p { color: inherit; }
.btn-primary {
    background: var(--hewani-brand);
    border-color: var(--hewani-brand);
}
.btn-primary:hover, .btn-primary:focus {
    background: #244866;
    border-color: #244866;
}
.btn-outline-primary { color: var(--hewani-brand); border-color: #9aafc2; }
.btn-outline-primary:hover, .btn-outline-primary:focus {
    color: #fff;
    background: var(--hewani-brand);
    border-color: var(--hewani-brand);
}
.favorite-icon { color: var(--hewani-brand); }
.site-navbar .favorite-icon { color: #527391; }

/* Keep large panels neutral; reserve the brand blue for small actions and accents. */
.bg-primary { background-color: #e8edf2 !important; color: #40566b !important; }
.text-primary { color: #315f86 !important; }
.card.bg-primary { background-color: #fff !important; color: var(--hewani-ink) !important; }
.card.bg-primary.text-white,
.card.bg-primary.text-white .text-white { color: #30475e !important; }
.card-header.bg-primary,
.modal-header.bg-primary {
    background-color: #edf1f4 !important;
    color: #30475e !important;
}
.card-header.bg-primary .text-white,
.modal-header.bg-primary .text-white { color: #30475e !important; }
.badge.bg-primary { background-color: #e8edf2 !important; color: #40566b !important; }
.btn-success {
    color: #fff;
    background: var(--hewani-brand);
    border-color: var(--hewani-brand);
}
.btn-success:hover, .btn-success:focus {
    color: #fff;
    background: #244866;
    border-color: #244866;
}
.btn-warning {
    color: #30475e;
    background: #e9eef3;
    border-color: #d7e0e8;
}
.btn-warning:hover, .btn-warning:focus {
    color: #203246;
    background: #dce5ed;
    border-color: #c7d3de;
}
.text-success { color: var(--hewani-brand) !important; }

.brand-intro {
    background: #f5f7f9;
}
.brand-intro__content {
    border-color: #e1e7ed;
    box-shadow: 0 20px 55px rgba(25, 45, 65, .1);
}
.brand-intro__progress::after { background: #315f86; }

.card {
    border-color: #e1e7ed !important;
    box-shadow: 0 8px 24px rgba(25, 45, 65, .06) !important;
}
.product-card:hover,
.marketplace-grid > [class*="col-"] > .card:hover,
.featured-pcs > [class*="col-"] > .card:hover {
    border-color: #cbd7e2 !important;
    box-shadow: 0 14px 32px rgba(25, 45, 65, .1) !important;
}

body.theme-dark {
    --hewani-ink: #e4eaf0;
    --hewani-muted: #acb8c5;
    --hewani-surface: #192736;
    --hewani-border: #304154;
    background: #111b26 !important;
    color: var(--hewani-ink);
}
body.theme-dark .site-navbar { background: #192736 !important; border-color: #304154; }
body.theme-dark .site-navbar .navbar-brand { color: #eef3f7 !important; }
body.theme-dark .site-navbar .nav-link { color: #d0d9e2 !important; }
body.theme-dark .site-navbar .nav-link:hover,
body.theme-dark .site-navbar .nav-link:focus-visible { background: #26384a; color: #fff !important; }
body.theme-dark .site-navbar .navbar-toggler { border-color: #536577; }
body.theme-dark .site-navbar .brand-logo { background: #fff; }
body.theme-dark .site-navbar .btn-outline-light { color: #e4eaf0; border-color: #536577; }
body.theme-dark .site-navbar .btn-light { color: #e4eaf0; background: #26384a; border-color: #536577; }
body.theme-dark .hero { background: #26384a; color: #e4eaf0; }
body.theme-dark .card.bg-primary { background: #192736 !important; color: #e4eaf0 !important; }
body.theme-dark .card.bg-primary.text-white,
body.theme-dark .card.bg-primary.text-white .text-white { color: #e4eaf0 !important; }
body.theme-dark .card-header.bg-primary,
body.theme-dark .card-header.bg-primary .text-white,
body.theme-dark .modal-header.bg-primary,
body.theme-dark .modal-header.bg-primary .text-white {
    background: #26384a !important;
    color: #e4eaf0 !important;
}
body.theme-dark .badge.bg-primary { background: #26384a !important; color: #d0d9e2 !important; }

@media (max-width: 767.98px) {
    .site-navbar .brand-logo { width: 170px; height: 60px; }
}

/* Animated night sky backdrop. App cards stay opaque for comfortable reading. */
html { min-height: 100%; background: #071426; }
body.theme-light,
body.theme-light.bg-light {
    background: transparent !important;
    color: #e7eef8;
}
body.theme-light h1,
body.theme-light h2,
body.theme-light h3,
body.theme-light h4,
body.theme-light h5,
body.theme-light h6 { color: #edf3fa; }
body.theme-light .hero h1,
body.theme-light .hero h2,
body.theme-light .hero h3,
body.theme-light .hero h4,
body.theme-light .hero h5,
body.theme-light .hero h6,
body.theme-light .hero p { color: #263b50; }
body.theme-light .card h1,
body.theme-light .card h2,
body.theme-light .card h3,
body.theme-light .card h4,
body.theme-light .card h5,
body.theme-light .card h6 { color: #203246; }
body.theme-light .card { color: #203246; }
body.theme-light .card .text-muted { color: #68798b !important; }
body.theme-light .site-footer { background: rgba(6, 17, 33, .92); }
body.theme-dark { background: transparent !important; }

.night-sky {
    position: fixed;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
    background:
        radial-gradient(ellipse at 50% 118%, rgba(39, 74, 116, .42), transparent 58%),
        linear-gradient(180deg, #071426 0%, #0b1c34 58%, #10233d 100%);
}
.night-sky__stars,
.night-sky__meteors { position: absolute; inset: 0; overflow: hidden; }
.night-sky__star {
    position: absolute;
    width: var(--star-size, 2px);
    height: var(--star-size, 2px);
    border-radius: 50%;
    background: #f4f8ff;
    opacity: .72;
    box-shadow: 0 0 6px rgba(210, 229, 255, .55);
    animation: sky-twinkle var(--twinkle-duration, 3s) ease-in-out var(--twinkle-delay, 0s) infinite alternate;
}
.night-sky__moon {
    position: absolute;
    top: 12vh;
    left: -10vw;
    width: clamp(38px, 5vw, 66px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 32%, #fffef1 0 58%, #e8edf1 76%, #cbd8e4 100%);
    box-shadow: 0 0 22px rgba(236, 243, 255, .5), 0 0 72px rgba(174, 202, 239, .2);
    animation: moon-drift 54s linear infinite alternate;
}
.night-sky__moon::before,
.night-sky__moon::after {
    position: absolute;
    content: "";
    border-radius: 50%;
    background: rgba(163, 180, 197, .24);
}
.night-sky__moon::before { width: 15%; height: 15%; top: 27%; left: 61%; }
.night-sky__moon::after { width: 10%; height: 10%; top: 62%; left: 34%; }
.night-sky__meteor {
    position: absolute;
    top: var(--meteor-top);
    left: var(--meteor-left);
    width: clamp(90px, 13vw, 180px);
    height: 2px;
    opacity: 0;
    transform: rotate(36deg);
    transform-origin: right center;
    background: linear-gradient(90deg, transparent, rgba(167, 207, 255, .12) 35%, #fff 100%);
    filter: drop-shadow(0 0 5px rgba(183, 218, 255, .85));
    animation: meteor-flight 1.15s ease-out forwards;
}
@keyframes sky-twinkle { from { opacity: .2; transform: scale(.7); } to { opacity: .92; transform: scale(1.25); } }
@keyframes moon-drift { from { transform: translate(0, 3vh); } to { transform: translate(112vw, -1vh); } }
@keyframes meteor-flight {
    0% { opacity: 0; transform: translate(0, 0) rotate(36deg); }
    12% { opacity: .95; }
    100% { opacity: 0; transform: translate(-42vw, 34vh) rotate(36deg); }
}
.brand-intro {
    background: rgba(4, 13, 28, .23);
    backdrop-filter: blur(1px);
}
.brand-intro__content {
    border-color: rgba(255, 255, 255, .7);
    background: rgba(255, 255, 255, .96);
}
@media (prefers-reduced-motion: reduce) {
    .night-sky__moon, .night-sky__star, .night-sky__meteor { animation: none !important; }
}

/* Daytime sky: determined from the visitor's local clock (06:00–18:00). */
.hewani-daytime .night-sky {
    background:
        linear-gradient(180deg, #80c4f2 0%, #a9daf8 54%, #e8f6ff 100%);
}
.hewani-daytime .night-sky__stars,
.hewani-daytime .night-sky__moon,
.hewani-daytime .night-sky__meteors { display: none; }
.hewani-daytime .night-sky__sun,
.hewani-daytime .night-sky__clouds { display: block; }
.night-sky__sun {
    display: none;
    position: absolute;
    top: 9vh;
    left: -12vw;
    width: clamp(62px, 8vw, 104px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 36% 34%, #fffbd8 0 18%, #ffe88e 62%, #ffd368 100%);
    box-shadow: 0 0 28px rgba(255, 225, 142, .72), 0 0 90px rgba(255, 235, 177, .42);
    animation: sun-drift 68s linear infinite alternate;
}
.night-sky__clouds { display: none; position: absolute; inset: 0; overflow: hidden; }
.night-sky__cloud {
    position: absolute;
    left: -22vw;
    top: 28vh;
    width: clamp(130px, 19vw, 250px);
    height: 34px;
    border-radius: 50px;
    background: rgba(255, 255, 255, .68);
    filter: drop-shadow(0 7px 12px rgba(64, 128, 176, .08));
    animation: cloud-drift 92s linear infinite;
}
.night-sky__cloud::before,
.night-sky__cloud::after {
    position: absolute;
    bottom: 8px;
    content: "";
    border-radius: 50%;
    background: inherit;
}
.night-sky__cloud::before { left: 18%; width: 35%; height: 48px; }
.night-sky__cloud::after { left: 43%; width: 29%; height: 37px; }
.night-sky__cloud:nth-child(2) { top: 48vh; width: clamp(110px, 16vw, 205px); opacity: .46; animation-duration: 128s; animation-delay: -42s; }
.night-sky__cloud:nth-child(3) { top: 68vh; width: clamp(150px, 22vw, 285px); opacity: .36; animation-duration: 150s; animation-delay: -83s; }
@keyframes sun-drift { from { transform: translate(0, 2vh); } to { transform: translate(112vw, -1vh); } }
@keyframes cloud-drift { from { transform: translateX(0); } to { transform: translateX(145vw); } }

body.theme-light.day-mode,
body.theme-light.day-mode h1,
body.theme-light.day-mode h2,
body.theme-light.day-mode h3,
body.theme-light.day-mode h4,
body.theme-light.day-mode h5,
body.theme-light.day-mode h6 { color: #203246; }
body.theme-light.day-mode .text-muted { color: #61758a !important; }
body.theme-light.day-mode .card .text-muted { color: #68798b !important; }
body.theme-light.day-mode .hero h1,
body.theme-light.day-mode .hero h2,
body.theme-light.day-mode .hero h3,
body.theme-light.day-mode .hero h4,
body.theme-light.day-mode .hero h5,
body.theme-light.day-mode .hero h6,
body.theme-light.day-mode .hero p { color: #263b50; }
.hewani-daytime .brand-intro { background: rgba(235, 247, 255, .22); }

@media (prefers-reduced-motion: reduce) {
    .night-sky__sun, .night-sky__cloud { animation: none !important; }
}

/* Crisp four-second brand intro with the same animated sky as the page. */
html:not(.hewani-daytime) .brand-intro {
    background: linear-gradient(180deg, rgba(4, 13, 28, .16), rgba(4, 13, 28, .30));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
html.hewani-daytime .brand-intro {
    background: linear-gradient(180deg, rgba(128, 196, 242, .10), rgba(232, 246, 255, .18));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.brand-intro__content {
    width: min(92vw, 700px);
    gap: clamp(1rem, 3vh, 1.5rem);
    padding: clamp(1.25rem, 4vw, 2.75rem);
    border: 1px solid rgba(255, 255, 255, .84);
    border-radius: clamp(1.1rem, 3vw, 1.75rem);
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 24px 72px rgba(7, 24, 44, .20), 0 2px 10px rgba(7, 24, 44, .08);
}
.brand-intro__logo {
    width: min(78vw, 560px);
    max-height: min(44vh, 390px);
    height: auto;
    object-fit: contain;
    image-rendering: auto;
    filter: drop-shadow(0 3px 8px rgba(18, 48, 77, .12));
}
.brand-intro__tagline {
    color: #405c75;
    font-size: clamp(.72rem, 1.7vw, .9rem);
    font-weight: 650;
    letter-spacing: .11em;
    text-align: center;
}
.brand-intro__progress {
    width: min(42vw, 190px);
    height: 4px;
    background: #dce8f2;
}
.brand-intro__progress::after { background: #315f86; }
@media (max-height: 520px) {
    .brand-intro__content { gap: .65rem; padding: .9rem 1.25rem; }
    .brand-intro__logo { width: min(55vw, 360px); max-height: 34vh; }
}

/* Public marketplace refresh */
.skip-link {
  position: fixed;
  z-index: 1200;
  top: .75rem;
  left: .75rem;
  padding: .7rem 1rem;
  transform: translateY(-160%);
  border: 2px solid #fff;
  border-radius: .65rem;
  color: #fff;
  background: #123d61;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus { transform: translateY(0); color: #fff; }
#main-content:focus { outline: none; }

.landing-page, .catalog-page { --landing-ink:#13243a; --landing-muted:#65758a; --landing-blue:#1b5b8f; --landing-teal:#12a89f; color:var(--landing-ink); }
.landing-page { max-width:1200px; margin:0 auto; padding:1rem 0 3rem; }
.landing-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr); align-items:center; min-height:470px; overflow:hidden; isolation:isolate; padding:clamp(2rem,6vw,5.5rem); border-radius:2rem; color:#f8fbff; background:radial-gradient(ellipse at 88% 15%,rgba(36,173,173,.28),transparent 35%),linear-gradient(120deg,#0b1e35 0%,#123d61 66%,#0a6874 100%); box-shadow:0 30px 70px rgba(16,40,68,.18); }
.landing-hero::before,.landing-hero::after { position:absolute; z-index:-1; content:""; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.landing-hero::before { width:520px; height:520px; right:-190px; top:-220px; }
.landing-hero::after { width:400px; height:400px; right:-130px; top:-160px; }
.landing-hero__copy { position:relative; z-index:2; max-width:620px; }
.landing-eyebrow,.landing-kicker { display:inline-flex; align-items:center; gap:.6rem; color:#188f91; font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.landing-eyebrow { color:#9ae5df; }
.landing-eyebrow__dot,.landing-status-dot { width:.5rem; height:.5rem; display:inline-block; border-radius:50%; background:#49d0b8; box-shadow:0 0 0 4px rgba(73,208,184,.14); }
.landing-hero h1 { max-width:650px; margin:1.2rem 0 1rem; color:#fff; font-size:clamp(2.5rem,5.2vw,4.4rem); font-weight:760; letter-spacing:-.055em; line-height:1.03; }
.landing-hero__lead { max-width:570px; margin:0; color:#cfdae8; font-size:1.08rem; line-height:1.75; }
.landing-hero__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.landing-button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:48px; padding:.75rem 1.15rem; border-radius:.82rem; font-weight:750; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.landing-button:hover { transform:translateY(-2px); box-shadow:0 12px 24px rgba(8,23,43,.17); }
.landing-button--primary { color:#fff!important; border:1px solid #167d89!important; background:linear-gradient(120deg,#167b8b,#138c85)!important; }
.landing-button--secondary { color:#fff!important; border:1px solid rgba(225,239,248,.42)!important; background:rgba(255,255,255,.07)!important; }
.landing-button--secondary:hover { background:rgba(255,255,255,.14)!important; }
.landing-hero__meta { display:flex; flex-wrap:wrap; gap:.7rem 1.3rem; margin-top:1.6rem; color:#adbed1; font-size:.82rem; }
.landing-hero__meta strong { color:#fff; }
.landing-hero__visual { position:relative; display:grid; place-items:center; min-height:340px; }
.landing-orbit { position:absolute; border:1px solid rgba(191,232,239,.15); border-radius:50%; transform:rotate(-25deg); }
.landing-orbit--one { width:430px; height:270px; }
.landing-orbit--two { width:360px; height:215px; transform:rotate(33deg); }
.landing-device { position:relative; z-index:1; width:min(100%,350px); padding:10px 10px 0; border:1px solid rgba(230,246,255,.4); border-radius:1.05rem 1.05rem .6rem .6rem; background:linear-gradient(145deg,#dae5ed,#66798a 32%,#283b50); box-shadow:0 35px 55px rgba(2,12,24,.38); transform:perspective(900px) rotateY(-9deg) rotateX(3deg); }
.landing-device__top { display:flex; align-items:center; gap:5px; height:22px; padding:0 7px 7px; color:#d9e5ef; }
.landing-device__top span { width:6px; height:6px; border-radius:50%; background:#91a5b6; }
.landing-device__top b { margin-left:auto; font-size:.48rem; font-weight:600; letter-spacing:.08em; }
.landing-device__screen { min-height:225px; padding:1.3rem 1.45rem; overflow:hidden; border-radius:.42rem .42rem 0 0; background:radial-gradient(ellipse at 78% 15%,rgba(54,206,187,.46),transparent 34%),linear-gradient(145deg,#10243e,#135477 65%,#178c87); }
.landing-screen__label { color:#a7dddc; font-size:.56rem; font-weight:750; letter-spacing:.16em; }
.landing-screen__title { margin-top:1.15rem; color:white; font-size:2.2rem; font-weight:740; letter-spacing:-.05em; line-height:1.04; }
.landing-screen__bars { display:flex; gap:6px; margin-top:1.25rem; }
.landing-screen__bars i { width:49px; height:5px; border-radius:9px; background:#54d5bd; }
.landing-screen__bars i:nth-child(2) { width:30px; background:#64a8d4; }
.landing-screen__bars i:nth-child(3) { width:17px; background:#d5b87d; }
.landing-screen__chip { display:inline-flex; align-items:center; gap:7px; margin-top:1.1rem; padding:.36rem .55rem; border:1px solid rgba(210,246,244,.2); border-radius:999px; color:#e6f7f4; background:rgba(255,255,255,.08); font-size:.6rem; }
.landing-screen__chip span { width:6px; height:6px; border-radius:50%; background:#52d3b2; }
.landing-device__stand { width:43%; height:19px; margin:auto; background:linear-gradient(#9aabba,#405267); clip-path:polygon(22% 0,78% 0,100% 100%,0 100%); }
.landing-float { position:absolute; z-index:2; display:flex; align-items:center; gap:.65rem; padding:.7rem .85rem; border:1px solid rgba(231,244,255,.75); border-radius:.9rem; color:#172b43; background:rgba(255,255,255,.94); box-shadow:0 16px 35px rgba(3,20,37,.22); }
.landing-float--top { top:11%; right:-2%; }
.landing-float--bottom { bottom:10%; left:-3%; }
.landing-float__icon { display:grid; place-items:center; width:34px; height:34px; border-radius:.65rem; color:#146f81; background:#e3f3f5; font-size:.72rem; font-weight:850; }
.landing-float__icon--green { color:#177963; background:#e0f4ec; }
.landing-float b,.landing-float small { display:block; }
.landing-float b { font-size:.72rem; }
.landing-float small { margin-top:2px; color:#6c7a8d; font-size:.62rem; }
.landing-intro { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding:1.4rem 0 1.2rem; border-bottom:1px solid #e5ebf1; }
.landing-intro>div { display:flex; align-items:center; gap:.85rem; padding:.55rem .8rem; }
.landing-intro__number { color:#16898e; font-size:.78rem; font-weight:850; letter-spacing:.08em; }
.landing-intro b,.landing-intro small { display:block; }
.landing-intro b { font-size:.9rem; }
.landing-intro small { margin-top:.22rem; color:#738298; font-size:.76rem; }
.landing-section { padding:4.3rem 0 1.3rem; }
.landing-section__heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.landing-section__heading h2,.landing-empty h2 { margin:.45rem 0 .35rem; color:#15283d; font-size:clamp(1.6rem,3vw,2.25rem); font-weight:760; letter-spacing:-.04em; }
.landing-section__heading p,.landing-empty p { margin:0; color:#718096; }
.landing-text-link { display:inline-flex; align-items:center; gap:.5rem; color:#126f83; font-size:.88rem; font-weight:750; text-decoration:none; white-space:nowrap; }
.landing-text-link:hover { color:#0d485f; text-decoration:underline; }
.landing-product-card { overflow:hidden; border:1px solid #e2eaf1; border-radius:1.1rem; background:#fff; box-shadow:0 12px 34px rgba(27,52,77,.07); transition:transform .2s ease,box-shadow .2s ease; }
.landing-product-card:hover,.catalog-card:hover { transform:translateY(-4px); box-shadow:0 20px 44px rgba(27,52,77,.14); }
.landing-product-card__image { display:block; width:100%; height:190px; object-fit:cover; background:#e8f0f4; }
.landing-product-card__media { position:relative; height:190px; overflow:hidden; background:#e8f0f4; }
.landing-product-card__media .landing-product-card__placeholder { position:absolute; inset:0; z-index:0; }
.landing-product-card__media .landing-product-card__image { position:relative; z-index:1; }
.landing-product-card__placeholder,.catalog-card__placeholder { position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 70% 25%,rgba(40,189,177,.38),transparent 34%),linear-gradient(135deg,#112943,#1e6680); }
.landing-product-card__placeholder { height:190px; }
.landing-product-card__placeholder span,.catalog-card__placeholder span { color:rgba(255,255,255,.9); font-size:5rem; font-weight:800; letter-spacing:-.1em; }
.landing-product-card__placeholder i,.catalog-card__placeholder i { position:absolute; right:10%; bottom:12%; color:rgba(255,255,255,.38); font-size:2rem; }
.landing-product-card__body { padding:1.2rem; }
.landing-category { color:#16898e; font-size:.7rem; font-weight:780; letter-spacing:.1em; text-transform:uppercase; }
.landing-product-card h3 { margin:.3rem 0 0; font-size:1.1rem; font-weight:740; }
.landing-availability { display:inline-flex; align-items:center; gap:.4rem; padding:.33rem .6rem; border-radius:99px; color:#18745e; background:#e9f7f1; font-size:.67rem; font-weight:750; white-space:nowrap; }
.landing-availability::before { width:6px; height:6px; border-radius:50%; background:#35ad82; content:""; }
.landing-product-card__specs { min-height:2.3rem; margin:1rem 0; color:#738095; font-size:.78rem; }
.landing-product-card__specs span { color:#afbac7; }
.landing-product-card__footer { display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding-top:.9rem; border-top:1px solid #edf1f5; }
.landing-product-card__footer>div { display:flex; align-items:baseline; gap:.25rem; }
.landing-product-card__footer strong { color:#15283d; font-size:1.18rem; }
.landing-product-card__footer>div span { color:#778598; font-size:.73rem; }
.landing-product-card__footer a { color:#126f83; font-size:.8rem; font-weight:750; text-decoration:none; }
.landing-empty { display:flex; align-items:center; gap:1.2rem; margin-top:3.8rem; padding:1.8rem; border:1px solid #e1eaf0; border-radius:1.2rem; background:linear-gradient(110deg,#fff,#f1f8f8); }
.landing-empty__symbol { display:grid; place-items:center; flex:0 0 54px; width:54px; height:54px; border-radius:1rem; color:#fff; background:linear-gradient(140deg,#176780,#16a58e); font-size:1.65rem; font-weight:800; }
.landing-empty>div:nth-child(2) { flex:1; }
.landing-empty h2 { font-size:1.4rem; }
.landing-empty p { font-size:.88rem; }
.landing-editorial { border-top:1px solid #e5ebf1; }
.landing-note,.landing-video-card { padding:1.35rem; border:1px solid #e5ebf1; border-radius:1rem; background:#fff; }
.landing-note__date { color:#16898e; font-size:.7rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.landing-note h3,.landing-video-card h3 { margin:.45rem 0; font-size:1.08rem; font-weight:740; }
.landing-note p,.landing-video-card p { margin:0; color:#6e7e91; line-height:1.65; }
.landing-video-card { overflow:hidden; padding:0; }
.landing-video-card video { display:block; width:100%; max-height:300px; background:#10243b; }
.landing-video-card>div { padding:1.1rem 1.25rem 1.3rem; }
.landing-video-card .landing-text-link { margin-top:1rem; }
.catalog-page { max-width:1200px; margin:0 auto; padding:1rem 0 3.5rem; }
.catalog-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin:1.1rem 0 1.7rem; }
.catalog-heading h1 { max-width:760px; margin:.4rem 0 .55rem; color:#15283d; font-size:clamp(2rem,4vw,3.1rem); font-weight:770; letter-spacing:-.055em; line-height:1.07; }
.catalog-heading p { margin:0; color:#718096; font-size:1rem; }
.catalog-dashboard-link,.catalog-back-link { color:#176f83; font-size:.85rem; font-weight:720; text-decoration:none; white-space:nowrap; }
.catalog-filter { padding:1.15rem; border:1px solid #e0e8ef; border-radius:1.15rem; background:#fff; box-shadow:0 12px 34px rgba(25,50,75,.055); }
.catalog-filter__form { display:grid; grid-template-columns:minmax(200px,1.4fr) minmax(135px,.8fr) minmax(145px,.85fr) minmax(140px,.8fr) minmax(185px,1fr) auto; align-items:end; gap:.85rem; }
.catalog-filter label,.detail-booking label { display:block; margin-bottom:.42rem; color:#52657b; font-size:.72rem; font-weight:760; }
.catalog-filter .form-select,.catalog-search-input,.catalog-price-inputs input { min-height:45px; border:1px solid #dfe7ee; border-radius:.7rem; color:#25384d; background-color:#fff; font-size:.82rem; }
.catalog-filter .form-select { padding-top:.55rem; padding-bottom:.55rem; }
.catalog-search-input { display:flex; align-items:center; gap:.65rem; padding:0 .8rem; }
.catalog-search-input i { color:#8494a6; font-size:.83rem; }
.catalog-search-input input { width:100%; min-width:0; border:0; outline:0; color:#25384d; background:transparent; font-size:.82rem; }
.catalog-price-inputs { display:flex; align-items:center; gap:.4rem; }
.catalog-price-inputs input { width:calc(50% - .5rem); min-width:0; padding:.5rem; }
.catalog-price-inputs span { color:#8291a3; }
.catalog-filter__actions { display:flex; flex-direction:column; align-items:center; gap:.35rem; }
.catalog-filter__actions .landing-button { min-height:45px; padding:.65rem .9rem; white-space:nowrap; }
.catalog-reset { color:#758498; font-size:.72rem; font-weight:680; text-decoration:none; }
.catalog-results-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1.4rem .1rem 1rem; }
.catalog-results-bar p { margin:0; color:#66778c; font-size:.85rem; }
.catalog-results-bar p strong { color:#14283c; }
.catalog-results-bar>span { color:#8491a1; font-size:.76rem; }
.catalog-card { height:100%; overflow:hidden; border:1px solid #e1e9ef; border-radius:1.1rem; background:#fff; box-shadow:0 10px 30px rgba(26,52,77,.06); transition:transform .2s ease,box-shadow .2s ease; }
.catalog-card__media { position:relative; height:190px; overflow:hidden; background:#e8eff4; }
.catalog-card__media>img { display:block; width:100%; height:100%; object-fit:cover; }
.catalog-card__media>img { position:relative; z-index:1; }
.catalog-card__placeholder { width:100%; height:100%; }
.catalog-card__media .catalog-card__placeholder,.detail-hero__media .catalog-card__placeholder { position:absolute; inset:0; z-index:0; }
.catalog-status { position:absolute; top:1rem; left:1rem; display:inline-flex; align-items:center; gap:.4rem; padding:.43rem .7rem; border:1px solid rgba(255,255,255,.75); border-radius:999px; color:#185d4d; background:rgba(247,255,251,.95); font-size:.7rem; font-weight:760; box-shadow:0 4px 12px rgba(12,30,45,.12); }
.catalog-status i { width:6px; height:6px; border-radius:50%; background:#32a87d; }
.catalog-status--busy { color:#8b5b23; background:rgba(255,250,241,.96); }
.catalog-status--busy i { background:#d49841; }
.catalog-status--maintenance { color:#694f99; background:rgba(249,245,255,.96); }
.catalog-status--maintenance i { background:#906fc1; }
.catalog-favorite-form { position:absolute; top:.8rem; right:.8rem; }
.catalog-favorite { display:grid; place-items:center; width:39px; height:39px; border:1px solid rgba(255,255,255,.72); border-radius:50%; color:#49647c; background:rgba(255,255,255,.93); box-shadow:0 4px 13px rgba(14,34,53,.12); }
.catalog-favorite:hover { color:#d95369; }
.catalog-card__content { display:flex; flex-direction:column; min-height:305px; padding:1.15rem; }
.catalog-card__title>span { color:#16898e; font-size:.68rem; font-weight:780; letter-spacing:.1em; text-transform:uppercase; }
.catalog-card__title h2 { margin:.25rem 0 0; color:#192e44; font-size:1.15rem; font-weight:750; }
.catalog-specs { display:grid; grid-template-columns:1fr 1fr; gap:.85rem .7rem; margin:1.25rem 0; }
.catalog-specs span,.detail-spec-grid span { display:block; margin-bottom:.22rem; color:#8a97a6; font-size:.65rem; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.catalog-specs strong,.detail-spec-grid strong { display:block; overflow-wrap:anywhere; color:#32465a; font-size:.78rem; font-weight:680; }
.catalog-card__footer { display:flex; align-items:center; justify-content:space-between; gap:.7rem; margin-top:auto; padding:.9rem 0; border-top:1px solid #edf1f4; }
.catalog-price { display:flex; align-items:baseline; gap:.25rem; }
.catalog-price strong { color:#162a40; font-size:1.18rem; }
.catalog-price span { color:#718096; font-size:.74rem; }
.catalog-details-link { color:#167384; font-size:.76rem; font-weight:750; text-decoration:none; }
.catalog-card__cta { width:100%; min-height:44px; }
.catalog-unavailable { display:inline-flex; align-items:center; justify-content:center; border:1px solid #dce4ea; border-radius:.8rem; color:#66788a; background:#f2f5f7; font-size:.85rem; font-weight:720; }
.catalog-pagination { display:flex; align-items:center; justify-content:center; gap:1.2rem; margin-top:2rem; color:#728197; font-size:.8rem; }
.catalog-pagination a { color:#176e82; font-weight:720; text-decoration:none; }
.catalog-pagination .is-disabled { color:#a5b0bb; }
.catalog-no-results { display:flex; flex-direction:column; align-items:center; gap:.35rem; margin:1.2rem 0; padding:4rem 1.2rem; border:1px dashed #ccd8e2; border-radius:1.2rem; text-align:center; background:linear-gradient(140deg,#fff,#f5f9fb); }
.catalog-no-results__icon { display:grid; place-items:center; width:54px; height:54px; margin-bottom:.6rem; border-radius:1rem; color:#14788a; background:#e6f3f5; font-size:1.15rem; }
.catalog-no-results h2 { margin:.25rem 0; color:#192d43; font-size:1.55rem; font-weight:750; }
.catalog-no-results p { margin:0 0 1rem; color:#718096; }
.catalog-back-link { display:inline-block; margin:0 0 1.1rem; }
.detail-hero { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr); overflow:hidden; border:1px solid #e2e9ef; border-radius:1.4rem; background:#fff; box-shadow:0 18px 46px rgba(21,49,73,.08); }
.detail-hero__media { position:relative; min-height:350px; background:#e6edf2; }
.detail-hero__media>img { display:block; width:100%; height:100%; min-height:350px; object-fit:cover; }
.detail-hero__copy { align-self:center; padding:clamp(1.5rem,4vw,3.5rem); }
.detail-hero__copy h1 { margin:.5rem 0 .8rem; color:#182d43; font-size:clamp(2rem,4vw,3.1rem); font-weight:770; letter-spacing:-.05em; line-height:1.05; }
.detail-hero__copy>p { max-width:590px; color:#6e7e91; line-height:1.7; }
.detail-price { display:flex; align-items:baseline; gap:.4rem; margin:1.4rem 0; }
.detail-price strong { color:#162a40; font-size:1.75rem; letter-spacing:-.03em; }
.detail-price span { color:#718096; font-size:.9rem; }
.detail-hero__actions { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; }
.detail-hero__actions .landing-button--secondary { color:#176a7b!important; border-color:#c7d8df!important; background:#fff!important; }
.detail-hero__actions .landing-button--secondary:hover { background:#f2f8f9!important; }
.detail-unavailable { color:#826331; font-size:.85rem; font-weight:700; }
.detail-content { margin-top:1.25rem; }
.detail-panel,.detail-booking { padding:1.4rem; border:1px solid #e2e9ef; border-radius:1.1rem; background:#fff; box-shadow:0 10px 30px rgba(23,50,74,.045); }
.detail-panel+.detail-panel { margin-top:1rem; }
.detail-panel__heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.2rem; }
.detail-panel h2,.detail-booking h2 { margin:.35rem 0 0; color:#192e44; font-size:1.35rem; font-weight:750; letter-spacing:-.035em; }
.detail-panel__mark { display:grid; place-items:center; width:40px; height:40px; border-radius:.8rem; color:white; background:linear-gradient(145deg,#176780,#18a28d); font-weight:800; }
.detail-spec-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem 1rem; padding-top:1.1rem; border-top:1px solid #edf1f4; }
.detail-spec-grid__wide { grid-column:1 / -1; }
.detail-description>p { margin:.8rem 0 0; color:#6e7e91; line-height:1.75; white-space:pre-line; }
.detail-booking { position:sticky; top:1rem; padding:1.4rem; background:linear-gradient(155deg,#fff,#f2f8f8); }
.detail-booking>p { margin:.55rem 0 1.15rem; color:#748397; font-size:.85rem; line-height:1.6; }
.detail-hours { display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.detail-hours input { width:100%; min-height:48px; padding:.6rem .8rem; border:1px solid #d9e3ea; border-radius:.75rem; color:#1d334a; background:#fff; }
.detail-hours span { color:#718096; font-size:.8rem; }
.detail-login-link { display:block; margin-top:.8rem; color:#176f83; font-size:.78rem; font-weight:700; text-align:center; text-decoration:none; }
.detail-favorite-form { margin-top:.7rem; }
.detail-booking__note { display:flex; gap:.6rem; margin-top:1rem; padding-top:.9rem; border-top:1px solid #e4ebef; }
.detail-booking__note>span { display:grid; place-items:center; flex:0 0 20px; width:20px; height:20px; border-radius:50%; color:#176d7b; background:#dff1f1; font-size:.7rem; font-weight:800; }
.detail-booking__note p { margin:0; color:#738397; font-size:.7rem; line-height:1.55; }
body.theme-dark .landing-section__heading h2,body.theme-dark .landing-empty h2,body.theme-dark .catalog-heading h1,body.theme-dark .catalog-card__title h2,body.theme-dark .catalog-price strong,body.theme-dark .catalog-no-results h2,body.theme-dark .detail-hero__copy h1,body.theme-dark .detail-price strong,body.theme-dark .detail-panel h2,body.theme-dark .detail-booking h2 { color:#e7eef8; }
body.theme-dark .landing-product-card,body.theme-dark .landing-note,body.theme-dark .landing-video-card,body.theme-dark .catalog-filter,body.theme-dark .catalog-card,body.theme-dark .detail-hero,body.theme-dark .detail-panel,body.theme-dark .detail-booking { border-color:#31445a; background:#172438; }
body.theme-dark .catalog-specs strong,body.theme-dark .detail-spec-grid strong,body.theme-dark .catalog-results-bar p strong { color:#d6e2ef; }
body.theme-dark .catalog-filter .form-select,body.theme-dark .catalog-search-input,body.theme-dark .catalog-price-inputs input,body.theme-dark .detail-hours input { border-color:#49617f; color:#eef4fb; background-color:#22324a; }
body.theme-dark .catalog-search-input input { color:#eef4fb; }
body.theme-dark .landing-intro { border-color:#34475c; }
body.theme-dark .landing-page,body.theme-dark .catalog-page { --landing-ink:#e7eef8; --landing-muted:#b8c7d8; }
body.theme-dark .landing-intro b,body.theme-dark .landing-product-card h3,body.theme-dark .landing-product-card__footer strong { color:#e7eef8; }
body.theme-dark .landing-intro small,body.theme-dark .landing-section__heading p,body.theme-dark .catalog-heading p,body.theme-dark .catalog-results-bar p,body.theme-dark .catalog-results-bar>span,body.theme-dark .detail-hero__copy>p,body.theme-dark .detail-description>p,body.theme-dark .detail-booking>p,body.theme-dark .detail-booking__note p,body.theme-dark .landing-product-card__specs,body.theme-dark .landing-note p,body.theme-dark .landing-video-card p { color:#b8c7d8; }
body.theme-dark .landing-product-card__footer>div span { color:#b8c7d8; }
body.theme-dark .landing-empty,body.theme-dark .catalog-no-results { border-color:#34475c; background:linear-gradient(110deg,#172438,#1b2e42); }
@media (max-width:1050px) { .catalog-filter__form { grid-template-columns:repeat(3,minmax(0,1fr)); } .catalog-filter__search { grid-column:span 2; } .catalog-filter__prices { grid-column:span 1; } .catalog-filter__actions { flex-direction:row; justify-content:flex-start; } }
@media (max-width:760px) { .landing-page,.catalog-page { padding-top:.3rem; } .landing-hero { grid-template-columns:1fr; min-height:0; padding:2.2rem 1.4rem 1rem; border-radius:1.35rem; } .landing-hero h1 { font-size:clamp(2.4rem,12vw,3.5rem); } .landing-hero__lead { font-size:.98rem; } .landing-hero__visual { min-height:300px; margin-top:.4rem; } .landing-device { width:min(78%,340px); } .landing-device__screen { min-height:190px; } .landing-float--top { top:8%; right:0; } .landing-float--bottom { bottom:7%; left:0; } .landing-intro { grid-template-columns:1fr; gap:.2rem; padding:.8rem 0; } .landing-intro>div { padding:.45rem .3rem; } .landing-section { padding-top:3rem; } .landing-section__heading { align-items:flex-start; flex-direction:column; } .landing-empty { align-items:flex-start; flex-wrap:wrap; padding:1.25rem; } .landing-empty>.landing-button { width:100%; } .catalog-heading { align-items:flex-start; flex-direction:column; } .catalog-filter__form { grid-template-columns:1fr 1fr; } .catalog-filter__search,.catalog-filter__prices { grid-column:1 / -1; } .catalog-filter__actions { grid-column:1 / -1; justify-content:space-between; } .catalog-results-bar { align-items:flex-start; flex-direction:column; gap:.25rem; } .detail-hero { grid-template-columns:1fr; } .detail-hero__media,.detail-hero__media>img { min-height:230px; max-height:300px; } .detail-booking { position:static; } }
@media (max-width:420px) { .landing-hero__actions { flex-direction:column; align-items:stretch; } .landing-hero__actions .btn { width:100%; } .landing-hero__visual { min-height:260px; } .landing-device { width:76%; } .landing-device__screen { min-height:170px; padding:1rem; } .landing-screen__title { font-size:1.9rem; } .landing-float { gap:.45rem; padding:.55rem; } .landing-float__icon { width:29px; height:29px; } .landing-float b { font-size:.63rem; } .landing-float small { font-size:.56rem; } .catalog-filter__form { grid-template-columns:1fr; } .catalog-filter__search,.catalog-filter__prices,.catalog-filter__actions { grid-column:auto; } .detail-spec-grid { grid-template-columns:1fr 1fr; gap:.95rem .6rem; } }
@media (prefers-reduced-motion:reduce) { .landing-button,.landing-product-card,.catalog-card { transition:none; } .landing-button:hover,.landing-product-card:hover,.catalog-card:hover { transform:none; } }

/* Keep public marketplace copy readable over the animated site background. */
body.theme-light .landing-page,body.theme-light .catalog-page {
  position:relative;
  z-index:0;
  padding:1.5rem;
  border-radius:1.25rem;
  background:rgba(247,250,252,.98);
}
body.theme-dark .landing-page,body.theme-dark .catalog-page {
  position:relative;
  z-index:0;
  padding:1.5rem;
  border-radius:1.25rem;
  background:rgba(12,24,39,.98);
}
body.theme-light .catalog-heading h1 { color:#15283d; }


/* Keep text matched to the actual sky and surface, not just the saved theme. */
html.hewani-daytime body.theme-light,
html.hewani-daytime body.theme-dark {
  --hewani-page-ink:#203246;
  --hewani-page-muted:#4b6075;
  color:var(--hewani-page-ink);
}
html:not(.hewani-daytime) body.theme-light,
html:not(.hewani-daytime) body.theme-dark {
  --hewani-page-ink:#e7eef8;
  --hewani-page-muted:#c1cedd;
  color:var(--hewani-page-ink);
}
html.hewani-daytime body.theme-light h1,html.hewani-daytime body.theme-light h2,
html.hewani-daytime body.theme-light h3,html.hewani-daytime body.theme-light h4,
html.hewani-daytime body.theme-light h5,html.hewani-daytime body.theme-light h6,
html.hewani-daytime body.theme-dark h1,html.hewani-daytime body.theme-dark h2,
html.hewani-daytime body.theme-dark h3,html.hewani-daytime body.theme-dark h4,
html.hewani-daytime body.theme-dark h5,html.hewani-daytime body.theme-dark h6 { color:#203246; }
body.theme-light .text-muted,body.theme-dark .text-muted { color:var(--hewani-page-muted)!important; }

/* Standard content surfaces use a fixed foreground/background pair in either theme. */
body.theme-light .card,body.theme-light .modal-content,body.theme-light .offcanvas,
body.theme-light .dropdown-menu,body.theme-light .list-group-item,body.theme-light .accordion-item,
body.theme-light .bg-white,body.theme-light .bg-light { color:#203246; }
body.theme-light .card h1,body.theme-light .card h2,body.theme-light .card h3,
body.theme-light .card h4,body.theme-light .card h5,body.theme-light .card h6,
body.theme-light .bg-white h1,body.theme-light .bg-white h2,body.theme-light .bg-white h3,
body.theme-light .bg-white h4,body.theme-light .bg-white h5,body.theme-light .bg-white h6,
body.theme-light .bg-light h1,body.theme-light .bg-light h2,body.theme-light .bg-light h3,
body.theme-light .bg-light h4,body.theme-light .bg-light h5,body.theme-light .bg-light h6 { color:#203246; }
body.theme-light .card .text-muted,body.theme-light .bg-white .text-muted,
body.theme-light .bg-light .text-muted { color:#596b7e!important; }
body.theme-light .bg-white .text-white:not(.btn):not(.badge),
body.theme-light .bg-light .text-white:not(.btn):not(.badge) { color:#203246!important; }

body.theme-dark .card,body.theme-dark .modal-content,body.theme-dark .offcanvas,
body.theme-dark .dropdown-menu,body.theme-dark .list-group-item,body.theme-dark .accordion-item {
  color:#e4eaf0;
  border-color:#304154;
  background-color:#192736;
}
body.theme-dark .bg-white,body.theme-dark .bg-light {
  color:#e4eaf0!important;
  border-color:#304154!important;
  background-color:#192736!important;
}
body.theme-dark .card h1,body.theme-dark .card h2,body.theme-dark .card h3,
body.theme-dark .card h4,body.theme-dark .card h5,body.theme-dark .card h6,
body.theme-dark .bg-white h1,body.theme-dark .bg-white h2,body.theme-dark .bg-white h3,
body.theme-dark .bg-white h4,body.theme-dark .bg-white h5,body.theme-dark .bg-white h6,
body.theme-dark .bg-light h1,body.theme-dark .bg-light h2,body.theme-dark .bg-light h3,
body.theme-dark .bg-light h4,body.theme-dark .bg-light h5,body.theme-dark .bg-light h6 { color:#edf3fb; }
body.theme-dark .text-muted,body.theme-dark .card .text-muted,
body.theme-dark .bg-white .text-muted,body.theme-dark .bg-light .text-muted { color:#b8c7d8!important; }
body.theme-dark .card:not(.bg-warning):not(.bg-info) .text-dark,
body.theme-dark .bg-white .text-dark,body.theme-dark .bg-light .text-dark { color:#e4eaf0!important; }
body.theme-dark .bg-white .text-white:not(.btn):not(.badge),
body.theme-dark .bg-light .text-white:not(.btn):not(.badge) { color:#e4eaf0!important; }
body.theme-dark .table { --bs-table-color:#dce6f3; --bs-table-bg:transparent; --bs-table-border-color:#304154; }
body.theme-dark .table thead th { color:#b8c7d8; }
body.theme-dark .table-light {
  --bs-table-color:#e4eaf0;
  --bs-table-bg:#24364c;
  --bs-table-border-color:#304154;
  color:#e4eaf0;
}
body.theme-dark .card.bg-warning,body.theme-dark .bg-warning { color:#392900; }
body.theme-dark .card.bg-warning .text-white:not(.btn):not(.badge),
body.theme-dark .bg-warning .text-white:not(.btn):not(.badge) { color:#392900!important; }
html.hewani-daytime body.theme-dark .card h1,html.hewani-daytime body.theme-dark .card h2,
html.hewani-daytime body.theme-dark .card h3,html.hewani-daytime body.theme-dark .card h4,
html.hewani-daytime body.theme-dark .card h5,html.hewani-daytime body.theme-dark .card h6,
html.hewani-daytime body.theme-dark .bg-white h1,html.hewani-daytime body.theme-dark .bg-white h2,
html.hewani-daytime body.theme-dark .bg-white h3,html.hewani-daytime body.theme-dark .bg-white h4,
html.hewani-daytime body.theme-dark .bg-white h5,html.hewani-daytime body.theme-dark .bg-white h6,
html.hewani-daytime body.theme-dark .bg-light h1,html.hewani-daytime body.theme-dark .bg-light h2,
html.hewani-daytime body.theme-dark .bg-light h3,html.hewani-daytime body.theme-dark .bg-light h4,
html.hewani-daytime body.theme-dark .bg-light h5,html.hewani-daytime body.theme-dark .bg-light h6 { color:#edf3fb; }
html.hewani-daytime body.theme-dark .text-muted { color:#4b6075!important; }
html.hewani-daytime body.theme-dark .card .text-muted,
html.hewani-daytime body.theme-dark .bg-white .text-muted,
html.hewani-daytime body.theme-dark .bg-light .text-muted { color:#b8c7d8!important; }


/* Keep tables and expanding panels readable even when placed outside a card. */
body.theme-light .table {
  --bs-table-color:#203246;
  --bs-table-bg:#fff;
  --bs-table-border-color:#e1e7ed;
}
body.theme-dark .table { --bs-table-bg:#192736; }
body.theme-dark .accordion-button {
  color:#e4eaf0;
  background-color:#24364c;
  border-color:#304154;
}
body.theme-dark .accordion-button:not(.collapsed) {
  color:#eef4fb;
  background-color:#2a4058;
  box-shadow:inset 0 -1px 0 #304154;
}
body.theme-dark .accordion-button::after { filter:invert(1) grayscale(1); }
body.theme-dark .modal-content h1,body.theme-dark .modal-content h2,
body.theme-dark .modal-content h3,body.theme-dark .modal-content h4,
body.theme-dark .modal-content h5,body.theme-dark .modal-content h6,
body.theme-dark .offcanvas h1,body.theme-dark .offcanvas h2,
body.theme-dark .offcanvas h3,body.theme-dark .offcanvas h4,
body.theme-dark .offcanvas h5,body.theme-dark .offcanvas h6,
body.theme-dark .dropdown-menu h1,body.theme-dark .dropdown-menu h2,
body.theme-dark .dropdown-menu h3,body.theme-dark .dropdown-menu h4,
body.theme-dark .dropdown-menu h5,body.theme-dark .dropdown-menu h6 { color:#edf3fb; }
html.hewani-daytime body.theme-dark .modal-content h1,html.hewani-daytime body.theme-dark .modal-content h2,
html.hewani-daytime body.theme-dark .modal-content h3,html.hewani-daytime body.theme-dark .modal-content h4,
html.hewani-daytime body.theme-dark .modal-content h5,html.hewani-daytime body.theme-dark .modal-content h6,
html.hewani-daytime body.theme-dark .offcanvas h1,html.hewani-daytime body.theme-dark .offcanvas h2,
html.hewani-daytime body.theme-dark .offcanvas h3,html.hewani-daytime body.theme-dark .offcanvas h4,
html.hewani-daytime body.theme-dark .offcanvas h5,html.hewani-daytime body.theme-dark .offcanvas h6,
html.hewani-daytime body.theme-dark .dropdown-menu h1,html.hewani-daytime body.theme-dark .dropdown-menu h2,
html.hewani-daytime body.theme-dark .dropdown-menu h3,html.hewani-daytime body.theme-dark .dropdown-menu h4,
html.hewani-daytime body.theme-dark .dropdown-menu h5,html.hewani-daytime body.theme-dark .dropdown-menu h6 { color:#edf3fb; }
body.theme-light .bg-warning .text-white:not(.btn):not(.badge) { color:#392900!important; }


/* Semantic statistic cards keep their heading text legible as well as their labels. */
body .bg-success.text-white { background-color:#087a58!important; color:#fff!important; }
body .bg-danger.text-white { color:#fff!important; }
body .bg-secondary.text-white { color:#fff!important; }
body .bg-info.text-white { background-color:#087990!important; color:#fff!important; }
body .bg-success.text-white h1,body .bg-success.text-white h2,body .bg-success.text-white h3,
body .bg-success.text-white h4,body .bg-success.text-white h5,body .bg-success.text-white h6,
body .bg-danger.text-white h1,body .bg-danger.text-white h2,body .bg-danger.text-white h3,
body .bg-danger.text-white h4,body .bg-danger.text-white h5,body .bg-danger.text-white h6,
body .bg-secondary.text-white h1,body .bg-secondary.text-white h2,body .bg-secondary.text-white h3,
body .bg-secondary.text-white h4,body .bg-secondary.text-white h5,body .bg-secondary.text-white h6,
body .bg-info.text-white h1,body .bg-info.text-white h2,body .bg-info.text-white h3,
body .bg-info.text-white h4,body .bg-info.text-white h5,body .bg-info.text-white h6 { color:#fff!important; }
body.theme-light .btn[class*="btn-outline-"] {
  color:#203246;
  background:rgba(255,255,255,.94);
  border-color:#52677b;
}
body.theme-light .btn[class*="btn-outline-"]:hover,
body.theme-light .btn[class*="btn-outline-"]:focus-visible {
  color:#14233b;
  background:#e3edf5;
  border-color:#39536b;
}
body.theme-dark .btn[class*="btn-outline-"] {
  color:#edf3fb;
  background:#24364c;
  border-color:#71859a;
}
body.theme-dark .btn[class*="btn-outline-"]:hover,
body.theme-dark .btn[class*="btn-outline-"]:focus-visible {
  color:#fff;
  background:#314b67;
  border-color:#90a5ba;
}


/* Respect the foreground color of semantic dark or light card headers. */
.card-header.text-white h1,.card-header.text-white h2,.card-header.text-white h3,
.card-header.text-white h4,.card-header.text-white h5,.card-header.text-white h6,
.modal-header.text-white h1,.modal-header.text-white h2,.modal-header.text-white h3,
.modal-header.text-white h4,.modal-header.text-white h5,.modal-header.text-white h6 { color:inherit!important; }

/* Keep the public homepage hero headline legible over its dark gradient in every theme. */
.landing-hero h1 { color:#fff!important; }

/* Bootstrap's light-navbar hamburger uses a dark icon; invert it on dark surfaces. */
body.theme-dark .site-navbar .navbar-toggler-icon { filter: brightness(0) invert(1); }

/* Homepage content is divided into clear, readable cards. */
.landing-intro { gap:1rem; padding:1.4rem 0 0; border:0; }
.landing-step-card {
  display:flex; align-items:flex-start; gap:.85rem; min-height:112px; padding:1.15rem;
  border:1px solid #e1e8ef; border-radius:1.05rem; color:#203246; background:#fff;
  box-shadow:0 10px 28px rgba(25,45,65,.06);
}
.landing-step-card b { color:#203246; font-size:.95rem; }
.landing-step-card small { color:#596b7e; line-height:1.5; }
.landing-page > .landing-section {
  margin-top:1.4rem; padding:clamp(1.15rem,3vw,2rem); border:1px solid #e1e8ef;
  border-radius:1.25rem; color:#203246; background:#fff;
  box-shadow:0 10px 28px rgba(25,45,65,.06);
}
.landing-page > .landing-section .landing-section__heading h2 { color:#15283d; }
.landing-page > .landing-section .landing-section__heading p { color:#596b7e; }
body.theme-dark .landing-step-card {
  border-color:#31445a; color:#e7eef8; background:#172438;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
body.theme-dark .landing-step-card b { color:#edf3fb; }
body.theme-dark .landing-step-card small { color:#b8c7d8; }
body.theme-dark .landing-page > .landing-section {
  border-color:#31445a; color:#e7eef8; background:#172438;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
body.theme-dark .landing-page > .landing-section .landing-section__heading h2 { color:#edf3fb; }
body.theme-dark .landing-page > .landing-section .landing-section__heading p { color:#b8c7d8; }
html.hewani-daytime body.theme-dark .landing-page > .landing-section .landing-section__heading h2 { color:#edf3fb; }
@media (max-width:760px) {
  .landing-intro { grid-template-columns:1fr; }
  .landing-step-card { min-height:0; }
}

/* Let homepage cards sit directly on the page background. */
.landing-page {
  padding: 0;
  border-radius: 0;
  background: transparent !important;
}
