/* ══════════════════════════════════════════════════════
   TwistedLadder Typography
   Primary:   Faustina  — body, headings, reading content
   Secondary: Montserrat — teasers, aside labels, meta text
   ══════════════════════════════════════════════════════ */

/* ── @font-face declarations ──────────────────────────── */

/* Faustina — upright, all weights (variable font) */
@font-face {
    font-family: 'Faustina';
    src: url("../fonts/Faustina/Faustina-VariableFont_wght.6e6653d924eb.ttf") format('truetype');
    font-weight: 300 700;
    font-style: normal;
    font-display: swap;
}

/* Faustina — italic, all weights (variable font) */
@font-face {
    font-family: 'Faustina';
    src: url("../fonts/Faustina/Faustina-Italic-VariableFont_wght.2aeaf9168681.ttf") format('truetype');
    font-weight: 300 700;
    font-style: italic;
    font-display: swap;
}

/* Montserrat — upright, all weights (variable font) */
@font-face {
    font-family: 'Montserrat';
    src: url("../fonts/Montserrat/Montserrat-VariableFont_wght.b87689f37dfb.ttf") format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* Montserrat — italic, all weights (variable font) */
@font-face {
    font-family: 'Montserrat';
    src: url("../fonts/Montserrat/Montserrat-Italic-VariableFont_wght.5a669c0a7180.ttf") format('truetype');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}


/* ── Global: Faustina for all content ─────────────────── */

body {
    font-family: 'Faustina', Georgia, 'Times New Roman', serif;
    font-size: 1rem;
    line-height: 1.65;
}

/* Headings h1–h2 */
h1, .h1,
h2, .h2 {
    font-family: 'Faustina', Georgia, serif;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.015em;
}

/* Subheadings h3–h4 */
h3, .h3,
h4, .h4 {
    font-family: 'Faustina', Georgia, serif;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

/* Minor headings h5–h6 */
h5, .h5,
h6, .h6 {
    font-family: 'Faustina', Georgia, serif;
    font-weight: 600;
    line-height: 1.4;
}

/* Paragraphs */
p {
    font-family: 'Faustina', Georgia, 'Times New Roman', serif;
    line-height: 1.7;
}

/* Lists */
ul, ol, li {
    font-family: 'Faustina', Georgia, 'Times New Roman', serif;
}

/* Form controls inherit body font */
input, select, textarea, button {
    font-family: inherit;
}


/* ── Montserrat utility: aside / teaser text ──────────── */

/*
   Apply .font-aside to:
     • Feature callout boxes on module cards
     • Teaser labels and captions
     • Demo section sub-descriptions
     • Meta labels ("One-time payment", trust strip, etc.)
   Do NOT apply inside .reading-passage or any test content.
*/
.font-aside {
    font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
    font-size: 0.75rem;   /* ≈12px */
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

/* A slightly larger aside variant for teaser headings/labels */
.font-aside-sm {
    font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
    font-size: 0.6875rem;  /* ≈11px */
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
