/* ==========================================================================
   Climate Decode chassis: one header, one footer, one type scale.
   Loaded last on every page, after page-level styles, so it wins ties.
   Header and footer markup live in partials/ and are synced into every page
   by scripts/chassis.py (run on every build; --check fails on drift).
   ========================================================================== */
:root {
  --fs-label: 12px;   /* eyebrows, tags, legal */
  --fs-small: 15px;   /* card text, captions, table text */
  --fs-body: 17px;    /* paragraphs */
  --fs-h4: 22px;
  --fs-h3: 32px;
  --fs-h1: 48px;
}
body { font-size: var(--fs-body); line-height: 1.7; }

/* ---------- Header ---------- */
.nav-utility { display: none !important; }
.nav { top: 0 !important; border-bottom: 1px solid var(--cd-gray-200, #E2E8EA); }
.nav.scrolled { top: 0 !important; }
.nav-logo img { height: 72px !important; width: auto !important; }
.nav-link { font-size: 16px; }
.btn-demo { font-size: 15px; }
.mega-menu { padding-bottom: 32px !important; }
.mega-inner--hy { grid-template-columns: 150px repeat(3, minmax(0, 1fr)) !important; gap: 32px !important; }
.mega-inner--hy .mega-col-label { font-size: var(--fs-label); }
.mega-inner--hy .mega-link { display: block !important; padding: 12px 0 !important; font-size: 16px !important; }
.mega-inner--hy .mega-link:hover { padding-left: 0 !important; color: var(--cd-teal-mid); }
.mega-sub { display: block; font-size: 15px; font-weight: 400; color: var(--cd-gray-500); margin-top: 2px; }

/* ---------- Footer ---------- */
.footer-brand .footer-logo { display: inline-block; margin-bottom: 14px; }
.footer-brand .footer-logo img { height: 96px !important; width: auto !important; filter: none !important; }
.footer-brand p { font-size: var(--fs-small) !important; max-width: 320px; }
.footer-col h5 { font-size: var(--fs-label); }
.footer-col a { font-size: var(--fs-small) !important; }
.footer-bottom { font-size: 15px; }
.cd-foot-sub { border-bottom: 1px solid rgba(255,255,255,0.12); padding: 36px 24px; margin-bottom: 36px; }
.cd-foot-sub-inner { max-width: 640px; margin: 0 auto; text-align: center; }
.cd-foot-sub-title { font-family: var(--font-display); font-size: var(--fs-h4); font-weight: 800; color: var(--cd-white); margin-bottom: 6px; }
.cd-foot-sub p { font-size: var(--fs-small); color: rgba(255,255,255,0.7); margin: 0 0 16px; line-height: 1.6; }
.cd-foot-form { background: var(--cd-white); border-radius: 12px; padding: 18px 20px; text-align: left; }
.cd-foot-badge { display: inline-block; margin-top: 20px; }
.cd-foot-badge img { height: 48px; width: auto; }

@media (max-width: 900px) {
  .mega-inner--hy { grid-template-columns: 1fr !important; }
  .nav-logo img { height: 56px !important; }
}
