/*
 * BAQ Body Sculpting — design tokens and typography.
 * Self-hosted BAQ Elegante Semibold (custom, single weight) + DM Sans (no
 * third-party font request; see implementation notes on the cookie-consent
 * decision behind this).
 *
 * Display face history: Italiana (single weight, hairlines vanished below
 * 28px) -> Bodoni Moda (variable 400-900, held up to 16px, removed once
 * BAQ Elegante was supplied) -> BAQ Elegante Semibold, a custom face
 * matching Bronwyn's actual logo lettering. It ships as one static weight
 * (600 / Semibold, confirmed via the font's own name table and OS/2
 * usWeightClass, not just the filename) — a modified, hairline-thickened
 * Italiana derivative per its own README, licensed OFL. Every display
 * element requests exactly that one weight; nothing is synthesized.
 */

@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/dm-sans-latin.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: 'DM Sans';
    font-style: normal;
    font-weight: 400 500;
    font-display: swap;
    src: url('../fonts/dm-sans-latin-ext.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: 'BAQ Elegante';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../fonts/baq-elegante-semibold.woff2') format('woff2');
}

:root {
    --baq-ink: #0b0a0a;
    --baq-charcoal: #272727;
    --baq-taupe: #b5aaa0;
    --baq-bone: #eee8e0;
    --baq-paper: #fffdfa;
    --baq-rose: #e0bcc0;
    --baq-gold: #a98a55;
    --baq-rule: #cfc5bb;

    --baq-font-display: 'BAQ Elegante', Georgia, 'Times New Roman', serif;
    --baq-font-body: 'DM Sans', -apple-system, 'Segoe UI', sans-serif;

    /*
     * BAQ Elegante ships as a single static weight (600/Semibold) — no
     * range to pick "large" vs "small" roles from. Both tokens resolve to
     * that one real weight on purpose, so every display element requests
     * it explicitly rather than asking for a weight that doesn't exist
     * and risking the browser synthesizing (faux) bold. If a multi-weight
     * version of this face ever ships, split these back apart.
     */
    --baq-weight-display-lg: 600;
    --baq-weight-display-sm: 600;

    /*
     * Type-size floors for the 45-65 audience. Applied through these tokens
     * rather than per-component so the floor is enforced in one place.
     * - Base: primary paragraph copy (section intros, protocol/bio text).
     * - Secondary: card and compact-component body copy.
     * - Meta: captions, footer address/links, short non-sentence lines.
     * - Label: eyebrows, buttons, nav, all-caps/letter-spaced UI text —
     *   the absolute floor for anything on the site, per Bea's usual pairing
     *   with letter-spacing since caps read smaller than they measure.
     * Display floor: retested again after the BAQ Elegante swap, same
     * 16-32px ramp on light and charcoal backgrounds, real rose included.
     * Unlike Bodoni Moda, this one does NOT hold up all the way to 16px —
     * being a hairline-thickened Italiana derivative, it still shows real
     * hairline thinness below ~20-22px, most visibly in rose on charcoal.
     * It reads solid starting around 24px. So this floor stays at 24px,
     * but now for a different reason than the Bodoni pass: there, 24px was
     * a design choice with headroom to spare; here, it's close to the
     * font's actual limit. Do not treat this face as safe to go smaller
     * the way Bodoni was.
     */
    --baq-text-base-size: 18px;
    --baq-text-base-line: 1.65;
    /*
     * The single source of truth for the site's reading measure (the max
     * width of a line of body copy). Used by the plain-content-block
     * typography rules and the blog featured image in baq-homepage.css —
     * reference this instead of writing 680px again.
     */
    --baq-reading-measure: 680px;
    --baq-text-secondary-size: 16px;
    --baq-text-meta-size: 15px;
    --baq-text-label-size: 13px;
    --baq-display-floor: 24px;
}

body {
    font-family: var(--baq-font-body);
    color: var(--baq-ink);
    background: var(--baq-paper);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--baq-font-display);
    font-weight: var(--baq-weight-display-sm);
}
