/* ===== Theme variables (override per site) ===== */
:root {
    /* Brand palette */
    --brand-primary: #0d6efd;
    /* base brand */
    --brand-secondary: #0b3954;
    /* deep accent */
    --brand-accent: #ffb703;
    /* warm accent */

    /* Navbar tokens */
    --navbar-bg: linear-gradient(90deg, var(--brand-secondary), var(--brand-primary));
    --navbar-brand-color: #ffffff;
    --navbar-link-color: rgba(255, 255, 255, .9);
    --navbar-link-hover: #ffffff;

    /* Footer */
    --footer-bg: linear-gradient(180deg, var(--brand-secondary), #081f2c);
    --footer-text: #e6eef7;
    --footer-link: #ffffff;
    --footer-link-hover: var(--brand-accent);
    --footer-divider: rgba(255, 255, 255, .15);
}

/* ===== Navbar driven entirely by theme vars ===== */
.site-navbar {
    background: var(--navbar-bg);
}

.site-navbar .navbar-brand {
    color: var(--navbar-brand-color);
}

.site-navbar .navbar-brand:hover,
.site-navbar .navbar-brand:focus {
    color: var(--navbar-link-hover);
    text-decoration: none;
}

.site-navbar .nav-link {
    color: var(--navbar-link-color);
}

.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus,
.site-navbar .nav-link.active {
    color: var(--navbar-link-hover);
}

/* Optional: subtle header polish */
.site-navbar {
    backdrop-filter: saturate(120%) blur(0px);
}


/* Mega menu layout */
.dropdown-mega { position: static; }
.dropdown-menu-mega { left: 0; right: 0; } /* stretch across the navbar container */
@media (min-width: 992px){
  .dropdown-menu-mega { border-radius: 0 0 .75rem .75rem; }
}
/* Optional: subtle divider on top of the dropdown */
.dropdown-menu-mega { border-top: 2px solid rgba(255,255,255,.08); }



.site-footer {
    background: var(--footer-bg);
    color: var(--footer-text);
    padding-top: 1.75rem;   /* space inside the top of the footer */
    padding-bottom: 1.25rem;
    box-shadow: 0 -1px 0 rgba(255,255,255,.15) inset; /* subtle top divider */
}

.site-footer .footer-link {
    color: var(--footer-link);
    text-decoration: none;
}

.site-footer .footer-link:hover {
    color: var(--footer-link-hover);
    text-decoration: underline;
}

.site-footer h6 {
    color: #fff;
    letter-spacing: .4px;
}

.site-footer .footer-bottom {
    border-top: 1px solid var(--footer-divider);
    padding: 1rem 0;
    margin-top: .5rem;
    color: rgba(255, 255, 255, .85);
}

/* Optional: sticky-footer layout helpers */
html,
body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;
}

/* ===== Extended UI Surface & Depth (Options 1-7) ===== */
:root {
    --surface-page:#f5f7fa; /* subtle tinted page bg */
    --surface-section:#f9fbfd; /* section band */
    --surface-card:#ffffff; /* card surface */
    --surface-alt:#eef3f8; /* alternate / highlighted */
    --line-soft:#dbe3ec; /* soft divider */
    --shadow-sm:0 2px 4px -2px rgba(12,40,60,.12),0 4px 12px -4px rgba(12,40,60,.08);
    --shadow-card-hover:0 4px 12px -2px rgba(12,40,60,.18),0 8px 20px -6px rgba(12,40,60,.12);
    /* Explicit light-mode (baseline) typography variables */
    --bs-body-color:#212529;
    --bs-secondary-color:rgba(33,37,41,.65);
    --bs-heading-color:#1f2d3a;
    --bs-link-color:var(--brand-primary);
    --bs-link-hover-color:#0a58ca;
    --bs-card-bg:var(--surface-card);
    --bs-card-color:var(--bs-body-color);
    --bs-card-border-color:var(--line-soft);
}

body { background: var(--surface-page); }

/* Subtle radial lighting to reduce white void */
body:before {
    content:''; position:fixed; inset:0; pointer-events:none;
    background:
      radial-gradient(circle at 60% 120%, rgba(13,110,253,.06), transparent 60%),
      radial-gradient(circle at 0% 20%, rgba(255,183,3,.07), transparent 55%);
    mix-blend-mode:normal;
}

.section-band {
    background: var(--surface-section);
    border:1px solid var(--line-soft);
    border-radius:.75rem;
    padding:1.25rem 1.5rem 1.5rem;
}

/* Cards */
.card { background: var(--surface-card); border-color: var(--line-soft); box-shadow: var(--shadow-sm); }
.card-alt { background: var(--surface-alt); }
.card.hoverable { transition: .25s box-shadow, .25s transform; }
.card.hoverable:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }

/* Card titles underline accent */
.card-title { position:relative; font-weight:600; letter-spacing:.25px; color: var(--bs-heading-color,#1f2d3a); }
.card-title:after { content:""; position:absolute; left:0; bottom:-6px; width:48px; height:3px; background:linear-gradient(90deg,var(--brand-accent),var(--brand-primary)); border-radius:2px; }

/* Accent list bullets */
.list-accent li { position:relative; padding-left:1.1rem; line-height:1.4; }
.list-accent li:before { content:""; position:absolute; left:0; top:.55em; width:.55rem; height:.55rem; border-radius:50%; background:var(--brand-accent); box-shadow:0 0 0 3px rgba(255,183,3,.25); }

/* Slider polish */
.slider-aspect { box-shadow: var(--shadow-sm); border:0; aspect-ratio:16/9; position:relative; background:#000; }
.slide-img { width:100%; height:100%; object-fit:cover; }
.slider-aspect figure { position:relative; width:100%; height:100%; }
.slider-aspect figure:before { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,.15) 60%,transparent); pointer-events:none; }
.dot { width:.65rem; height:.65rem; border-radius:50%; transition:background-color .3s ease, transform .3s ease; }
.dot.bg-primary { transform:scale(1.15); }

/* Surface utility helpers (for legacy block markup) */
.bg-surface-0 { background: var(--surface-page); }
.bg-surface-1 { background: var(--surface-card); }
.bg-surface-alt { background: var(--surface-alt); }

/* CTA band */
.section-cta { background: linear-gradient(90deg, var(--brand-secondary), var(--brand-primary)); color:#fff; padding:2.25rem 0; margin-top:3rem; }
.section-cta h4 { font-weight:600; letter-spacing:.3px; }
.section-cta .btn-light { color:#0b3954; font-weight:600; }
.section-cta .btn-warning { font-weight:600; }

/* Container width constraint on very wide screens */
@media (min-width:1400px){ .container { max-width:1180px; } }

/* Focus accessibility */
:focus-visible { outline:2px solid var(--brand-accent); outline-offset:2px; }

/* ===== Dark Mode (system + manual toggle) ===== */
/* Manual override: add data-theme="dark" or data-theme="light" to <html>. */
html { color-scheme: light dark; }

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --surface-page:#0f1820;
        --surface-section:#15222d;
        --surface-card:#1d2b37;
        --surface-alt:#233545;
        --line-soft:#274254;
        --footer-bg: linear-gradient(180deg,#0b3954,#06151e);
        --footer-text:#c9d8e2;
        --footer-link:#ffffff;
        --footer-link-hover:var(--brand-accent);
        --navbar-link-color: rgba(255,255,255,.85);
        --navbar-link-hover: #fff;
        /* Bootstrap core variable overrides for readable text */
        --bs-body-color:#d5e2ec;
        --bs-secondary-color:rgba(213,226,236,.65);
        --bs-heading-color:#f5f9fc;
        --bs-link-color:var(--brand-primary);
        --bs-link-hover-color:#6aa8ff;
        --bs-card-bg:var(--surface-card);
        --bs-card-color:#d5e2ec;
        --bs-card-border-color:var(--line-soft);
    }
}

[data-theme="dark"] {
    --surface-page:#0f1820;
    --surface-section:#15222d;
    --surface-card:#1d2b37;
    --surface-alt:#233545;
    --line-soft:#274254;
    --footer-bg: linear-gradient(180deg,#0b3954,#06151e);
    --footer-text:#c9d8e2;
    --footer-link:#ffffff;
    --footer-link-hover:var(--brand-accent);
    --navbar-link-color: rgba(255,255,255,.85);
    --navbar-link-hover: #fff;
    /* Bootstrap variable overrides (explicit override mode) */
    --bs-body-color:#d5e2ec;
    --bs-secondary-color:rgba(213,226,236,.65);
    --bs-heading-color:#f5f9fc;
    --bs-link-color:var(--brand-primary);
    --bs-link-hover-color:#6aa8ff;
    --bs-card-bg:var(--surface-card);
    --bs-card-color:#d5e2ec;
    --bs-card-border-color:var(--line-soft);
}

/* Force light mode variable reset when explicitly set (after having been in dark) */
[data-theme="light"] {
    --surface-page:#f5f7fa;
    --surface-section:#f9fbfd;
    --surface-card:#ffffff;
    --surface-alt:#eef3f8;
    --line-soft:#dbe3ec;
    --bs-body-color:#212529;
    --bs-secondary-color:rgba(33,37,41,.65);
    --bs-heading-color:#1f2d3a;
    --bs-link-color:var(--brand-primary);
    --bs-link-hover-color:#0a58ca;
    --bs-card-bg:var(--surface-card);
    --bs-card-color:var(--bs-body-color);
    --bs-card-border-color:var(--line-soft);
}



/* Dark mode specific element adjustments */
@media (prefers-color-scheme: dark) {
    body:not([data-theme="light"]) { color:#d5e2ec; }
    body:not([data-theme="light"]) .card { border-color: var(--line-soft); }
    body:not([data-theme="light"]) .card-alt { background: var(--surface-alt); }
    body:not([data-theme="light"]) .section-band { border-color: var(--line-soft); }
    body:not([data-theme="light"]) .dropdown-menu-mega { background:#1d2b37; color:#d5e2ec; }
    body:not([data-theme="light"]) .dropdown-item { color:#d5e2ec; }
    body:not([data-theme="light"]) .dropdown-item:hover, 
    body:not([data-theme="light"]) .dropdown-item:focus { background:rgba(255,255,255,.08); }
}

[data-theme="dark"] body { color:#d5e2ec; }
[data-theme="dark"] .card { border-color: var(--line-soft); }
[data-theme="dark"] .card-alt { background: var(--surface-alt); }
[data-theme="dark"] .section-band { border-color: var(--line-soft); }
[data-theme="dark"] .dropdown-menu-mega { background:#1d2b37; color:#d5e2ec; }
[data-theme="dark"] .dropdown-item { color:#d5e2ec; }
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus { background:rgba(255,255,255,.08); }
@media (prefers-color-scheme: dark){
    body:not([data-theme="light"]) .card-title { color: var(--bs-heading-color,#f5f9fc); }
}
[data-theme="dark"] .card-title { color: var(--bs-heading-color,#f5f9fc); }

/* Ensure generic card text inherits the dark body color */
@media (prefers-color-scheme: dark) { body:not([data-theme="light"]) .card { color: var(--bs-body-color,#d5e2ec); } }
[data-theme="dark"] .card { color: var(--bs-body-color,#d5e2ec); }

/* Smooth theme transitions */
body, .card, .site-navbar, .site-footer, .section-band, .section-cta { transition: background-color .4s ease, color .4s ease, background .6s ease; }

/* Adjust radial lighting in dark mode (subtler) */
@media (prefers-color-scheme: dark) {
    body:not([data-theme="light"]):before {
        background:
            radial-gradient(circle at 60% 120%, rgba(13,110,253,.18), transparent 60%),
            radial-gradient(circle at 0% 20%, rgba(255,183,3,.18), transparent 55%);
    }
}
[data-theme="dark"] body:before {
    background:
        radial-gradient(circle at 60% 120%, rgba(13,110,253,.18), transparent 60%),
        radial-gradient(circle at 0% 20%, rgba(255,183,3,.18), transparent 55%);
}
