/* ==========================================================================
   TOKENS — the only file holding raw values.

   CONFIRMED (read from the public_html export, 20 Aug 2026):
     · Typefaces — Red Hat Display / Red Hat Text (Onum theme, 39 + 5 uses)
     · Container — 1140px  (Elementor kit-9 boxed section)
     · Breakpoints — 1024px and 767px  (Elementor + Onum, 23 + 12 queries)
     · Brand blue #344a86 — sampled from TD-Blue.png, 174k pixels
     · Onum palette — frequency-ranked from themes/onum/style.css

   All colours below are now CONFIRMED from the database dump:
     · theme_mods_onum-child  → accent, header/footer template IDs
     · Elementor template 3771 (Header Home 5) → topbar + nav colours
     · Elementor template 2349 (Footer) → footer colours
   Type scale also CONFIRMED from onum/style.css and Elementor template 2277.
   Nothing in this file is a guess any more.
   ========================================================================== */

:root {
  /* ---- Brand ---------------------------------------------------------- */
  --c-brand:          #283aa4;  /* CONFIRMED — nav/heading navy, header template 3771 */
  --c-brand-dark:     #0049b1;  /* CONFIRMED — topbar + footer background */
  --c-brand-light:    #f0f6ff;  /* CONFIRMED — Onum tint, 11 uses */

  /* Accent is CONFIRMED as #fe4c1c: set in theme_mods_onum-child as the link
     hover/active colour, and it is the .octf-btn background in the theme. */
  --c-accent:         #fe4c1c;  /* CONFIRMED — link hover/active, customiser + header */
  --c-accent-alt:     #84afed;  /* CONFIRMED — muted topbar text */
  --c-logo-blue:      #344a86;  /* CONFIRMED — sampled from TD-Blue.png */

  /* ---- Neutrals ------------------------------------------------------- */
  --c-ink:            #1a1b1e;  /* CONFIRMED — Onum heading colour, 42 uses */
  --c-body:           #606060;  /* CONFIRMED — Elementor body, 13 uses */
  --c-muted:          #7e7e7e;  /* CONFIRMED — Onum muted, 10 uses */
  --c-line:           #a5b7d2;  /* CONFIRMED — Onum border tint, 25 uses */
  --c-surface:        #ffffff;
  --c-surface-alt:    #f0f6ff;  /* CONFIRMED */
  --c-footer-bg:      #0049b1;  /* CONFIRMED — footer template 2349 */
  --c-footer-text:    #ffffff;  /* CONFIRMED — footer text is white */
  --c-topbar-bg:      #0049b1;  /* CONFIRMED — topbar template 3771 */
  --c-topbar-text:    #ffffff;

  --c-success:        #1f8a4c;
  --c-error:          #d93025;

  /* ---- Typography ----------------------------------------------------- */
  /* CONFIRMED. Both are Google Fonts — self-host into assets/fonts/ to drop
     the third-party request and match the WOFF2 the theme already loads. */
  --f-display: "Red Hat Display", system-ui, -apple-system, sans-serif;
  --f-body:    "Red Hat Text", system-ui, -apple-system, sans-serif;

  /* CONFIRMED from onum/style.css + Elementor 2277 (home).
     Theme headings: weight 900, line-height 1.2, colour #1a1b1e.
     Body: 16px / 1.875 — an unusually tall leading, kept as-is. */
  --fs-eyebrow:   0.875rem;    /* 14px .sub-heading, bold, uppercase, ls 1px */
  --fs-small:     0.875rem;    /* 14px */
  --fs-body:      1rem;        /* 16px */
  --fs-lead:      1.25rem;     /* 20px */
  --fs-h6:        1.125rem;    /* 18px */
  --fs-h5:        1.25rem;     /* 20px — card titles */
  --fs-h4:        1.5rem;      /* 24px */
  --fs-h3:        1.875rem;    /* 30px */
  --fs-h2:        2.25rem;     /* 36px — section headings */
  --fs-h1:        2.625rem;    /* 42px */
  --fs-hero:      3rem;        /* 48px — home hero, drops to 30px @767 */
  --fs-cta:       2.625rem;    /* 42px — white CTA band heading */
  --fs-bignum:    4.5rem;      /* 72px — watermark numerals, #f0f6ff */
  --fs-cardicon:  2.5rem;      /* 40px */

  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semi:   600;   /* Elementor primary weight */
  --fw-bold:   700;

  --lh-tight:   1.2;      /* CONFIRMED — all headings */
  --lh-heading: 1.2;
  --lh-body:    1.875;    /* CONFIRMED — body copy */
  --lh-card:    1.6;      /* tighter inside cards */
  --ls-eyebrow: 1px;      /* CONFIRMED — .sub-heading letter-spacing */

  --fw-heading: 900;      /* CONFIRMED — Onum headings are black weight */

  /* ---- Spacing (4px base) --------------------------------------------- */
  --s-1: .25rem;  --s-2: .5rem;   --s-3: .75rem;  --s-4: 1rem;
  --s-5: 1.5rem;  --s-6: 2rem;    --s-7: 2.5rem;  --s-8: 3rem;
  --s-9: 4rem;    --s-10: 5rem;   --s-11: 6rem;

  --section-y:        var(--s-10);
  --section-y-mobile: var(--s-8);

  /* ---- Layout --------------------------------------------------------- */
  --container:      1140px;   /* CONFIRMED */
  --container-pad:  1.25rem;
  --gutter:         var(--s-6);

  /* ---- Button (CONFIRMED from .octf-btn) ------------------------------- */
  --btn-bg:        #fe4c1c;
  --btn-fg:        #ffffff;
  --btn-pad:       16px 28px;
  --btn-radius:    25px;
  --btn-fs:        1rem;
  --btn-shadow:    12px 12px 20px 0 rgba(254, 76, 28, .3);

  /* ---- Shape & depth -------------------------------------------------- */
  --r-sm: 4px;  --r-md: 8px;  --r-lg: 16px;  --r-pill: 999px;
  --shadow-sm: 0 1px 3px rgba(26, 27, 30, .08);
  --shadow-md: 0 6px 20px rgba(26, 27, 30, .10);
  --shadow-lg: 0 16px 44px rgba(26, 27, 30, .14);

  /* ---- Motion --------------------------------------------------------- */
  --t-fast: 140ms;  --t-base: 240ms;  --t-slow: 420ms;
  --ease: cubic-bezier(.4, 0, .2, 1);

  /* ---- Layers --------------------------------------------------------- */
  --z-header: 100;  --z-dropdown: 110;  --z-drawer: 200;  --z-toast: 300;
}

/* Breakpoints mirror Elementor/Onum exactly: 1024px and 767px. */
@media (max-width: 1024px) {
  :root {
    --fs-hero: 2.375rem;
    --fs-h1: 2.125rem;
    --fs-h2: 1.875rem;
    --fs-h3: 1.5rem;
    --fs-bignum: 3.5rem;
    --section-y: var(--section-y-mobile);
  }
}

@media (max-width: 767px) {
  :root {
    --fs-hero: 1.875rem;   /* CONFIRMED — 30px at 767px */
    --fs-h1: 1.75rem;
    --fs-h2: 1.5rem;
    --fs-cta: 1.75rem;
    --fs-bignum: 3rem;
    --container-pad: 1rem;
    --gutter: var(--s-5);
  }
}
