body { font-family: 'Inter', sans-serif; color: #1a2b3c; background-color: #fff; transition: background-color .25s, color .25s; }
.hero-slide { transition: opacity .8s ease-in-out; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.show { opacity: 1; transform: none; }
.timeline-line::before { content:''; position:absolute; left:11px; top:0; bottom:0; width:2px; background:#cfe3f1; }
.filter-btn.active { background: var(--c-navy); color:#fff; border-color: var(--c-navy); }
.hp-field { position:absolute !important; left:-9999px !important; height:0; width:0; overflow:hidden; }
#lightbox { background: rgba(3,28,51,.92); }

/* theme toggle icon/label */
.theme-sun { display:none; }
html.dark .theme-sun { display:inline; }
html.dark .theme-moon { display:none; }

/* floating dark / light toggle (bottom-left on every page) */
.theme-toggle { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
html.dark .theme-toggle { background: var(--c-cardDark) !important; border: 1px solid var(--c-cardDarkBorder); color: #e8f1f9; }
html.dark .theme-toggle:hover { background: var(--c-cyan) !important; color: #fff; border-color: var(--c-cyan); }

/* ---------- DARK MODE (global) ---------- */
html.dark body { background:#0b1118; color:#d6e0ea; }
html.dark .site-header { background: rgba(11,17,24,.95) !important; border-color:#233142 !important; }
html.dark .site-header .text-gray-700 { color:#d6e0ea !important; }
html.dark #mobileMenu { background:#0b1118 !important; border-color:#233142 !important; }
html.dark #mobileMenuBtn { color:#d6e0ea; }
html.dark .bg-white { background-color:#121921 !important; }
html.dark .bg-gray-50 { background-color:#0f161e !important; }
html.dark .bg-brand-lightBg { background-color:#0b1118 !important; }
html.dark .bg-cyan-50 { background-color:rgba(0,144,208,.16) !important; }
html.dark .bg-orange-50 { background-color:rgba(255,107,43,.16) !important; }
html.dark .text-brand-navy { color:#e8f1f9 !important; }
html.dark .text-gray-800, html.dark .text-gray-700 { color:#d6e0ea !important; }
html.dark .text-gray-600 { color:#b4c2d0 !important; }
html.dark .text-gray-500 { color:#8fa1b3 !important; }
html.dark .border-gray-100, html.dark .border-gray-200, html.dark .border-gray-300 { border-color:#233142 !important; }
html.dark input, html.dark select, html.dark textarea { background:#0f161e !important; color:#e8f1f9 !important; border-color:#2d3f54 !important; }
html.dark input::placeholder, html.dark textarea::placeholder { color:#6f8296; }
html.dark .filter-btn { background:#121921 !important; color:#b4c2d0 !important; border-color:#233142 !important; }
html.dark .filter-btn.active { background:var(--c-cyan) !important; color:#fff !important; border-color:var(--c-cyan) !important; }
html.dark .timeline-line::before { background:#233142; }
html.dark .bg-green-50 { background-color:rgba(34,197,94,.14) !important; } html.dark .text-green-800 { color:#86efac !important; } html.dark .border-green-200 { border-color:#166534 !important; }
html.dark .bg-red-50 { background-color:rgba(239,68,68,.14) !important; } html.dark .text-red-800 { color:#fca5a5 !important; } html.dark .border-red-200 { border-color:#7f1d1d !important; }
/* footer logo chip stays white so the logo stays legible */
html.dark footer .bg-white { background-color:#fff !important; }

/* ---------- Calculator: follows global colours + light/dark ---------- */
.calc-section { background: var(--c-lightBg); color:#1a2b3c; }
.calc-card { background:#fff; border:1px solid #e3eaf1; }
.calc-tabs { background: var(--c-lightBg); }
.calc-tab { color: var(--c-textMuted); }
.calc-tab:hover { color: var(--c-navy); }
.calc-tab.active { background: var(--c-orange); color:#fff; box-shadow:0 8px 18px -8px rgba(0,0,0,.35); }
.calc-label { color: var(--c-textMuted); }
.calc-input { background:#fff; border:1px solid #cfd9e3; color:#1a2b3c; }
.calc-input:focus { border-color: var(--c-cyan); box-shadow:0 0 0 3px rgba(0,144,208,.18); outline:none; }
.calc-result { background: var(--c-lightBg); border:1px solid #e3eaf1; }
.calc-sub { color: var(--c-textMuted); }
.calc-title { color: var(--c-navy); }
html.dark .calc-section { background: var(--c-navyDark); color:#d6e0ea; }
html.dark .calc-card { background: var(--c-cardDark); border-color: var(--c-cardDarkBorder); }
html.dark .calc-tabs { background: rgba(0,0,0,.35); }
html.dark .calc-tab { color:#9db0c2; }
html.dark .calc-tab:hover { color:#fff; }
html.dark .calc-label { color:#9db0c2; }
html.dark .calc-input { background:#182330 !important; border-color: var(--c-cardDarkBorder) !important; color:#fff !important; }
html.dark .calc-result { background:#182330; border-color: var(--c-cardDarkBorder); }
html.dark .calc-sub { color:#9db0c2; }
html.dark .calc-title { color:#fff !important; }
.calc-value { font-variant-numeric: tabular-nums; }
