/* ==========================================================================
   WDBC typography — Brand Kit v2

   Self-hosted rather than loaded from a font CDN: no third-party request on
   every page view (a privacy question for a nonprofit with a members area),
   no dependency on someone else's uptime, and the files are in the repo so a
   deploy carries them.

   All three families are SIL Open Font License 1.1. Licence texts sit beside
   the files in assets/fonts/ — the OFL requires them to travel with the fonts.

   latin-ext is loaded as well as latin on purpose. Wisconsin's Polish, Czech
   and German naming is not decorative here: Piwowarczyk and Cabral-Guevara
   appear in bill sponsor lists this site publishes, and latin alone would
   drop the diacritics.
   ========================================================================== */

/* Space Grotesk and Inter ship as variable fonts, so one file covers the
   whole weight range instead of one request per weight. */

@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/space-grotesk-latin-500.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/space-grotesk-latin-ext-500.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
        U+A720-A7FF;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter-latin-400.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/inter-latin-ext-400.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
        U+A720-A7FF;
}

/* IBM Plex Mono is static, so the two weights the site actually uses. */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal; font-weight: 400; font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-400.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal; font-weight: 400; font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-ext-400.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
        U+A720-A7FF;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal; font-weight: 600; font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-600.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
        U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
        U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal; font-weight: 600; font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-ext-600.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
        U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
        U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
        U+A720-A7FF;
}

/* ==========================================================================
   Applying the system

   The tokens existed in style.css but were referenced zero times for display
   and body — headings and copy were silently inheriting Hello Elementor's
   system stack, so none of the brand typography was on the site.
   ========================================================================== */

body,
button, input, select, textarea {
    font-family: var(--wdbc-font-body);
    font-feature-settings: "cv05" 1;   /* Inter's single-storey l — clearer at small sizes */
}

h1, h2, h3, h4, h5, h6,
.wbbc-news-lead-title, .wbbc-news-title,
.wdbc-tier-price, .wbbc-cta-btn, .wdbc-btn {
    font-family: var(--wdbc-font-display);
    font-weight: 700;
    letter-spacing: -0.02em;   /* Space Grotesk sets loose at display sizes */
}

/* Headline sizes tighten as they grow; small headings need none of it. */
h1 { letter-spacing: -0.03em; }
h4, h5, h6 { letter-spacing: -0.01em; }

/* Digits that sit in columns — prices, vote counts, bill numbers — should
   not shift width between rows. */
.wdbc-tier-price,
.wbbc-news-meta time,
.wdbc-record-bill,
table td, table th {
    font-variant-numeric: tabular-nums;
}

/* Body copy measure and rhythm. The site had no type scale at all; this is
   the floor rather than a full system. */
.wbbc-np-body p,
.wbbc-value-card p,
.wdbc-lane > p {
    font-size: 1rem;
    line-height: 1.65;
}
