/* Typography consistency — Source Sans 3 (UI/body) + Fraunces (display).
   Sizes: tokens.css (--nt-text-xs … --nt-text-3xl). */

/* ── Display headings (Fraunces) ── */
.nt-section-title,
.nt-lp-section-title,
.nt-page-hero-title,
.nt-lp-hero-headline,
.nt-about-hero-headline,
.nt-impact-cta-title,
.nt-richtext h2,
.nt-richtext h3 {
    font-family: var(--nt-font-display);
    font-optical-sizing: auto;
}

.nt-richtext h4,
.nt-richtext h5,
.nt-richtext h6 {
    font-family: var(--nt-font-heading);
}

/* ── UI labels (uppercase / meta) — xs only ── */
.nt-eyebrow,
.nt-footer-heading,
.nt-ui-label {
    font-family: var(--nt-font-nav);
    font-size: var(--nt-text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ── Card & list titles (sans, one step) ── */
.nt-card-title,
.nt-partner-card-name,
.nt-coalition-name,
.nt-lp-program-body h3,
.nt-team-card-name,
.nt-pub-card-title,
.nt-lp-event-card h3,
.nt-event-card h3,
.nt-album-card-body h3 {
    font-family: var(--nt-font-heading);
    font-size: var(--nt-text-lg);
    font-weight: 700;
    line-height: 1.35;
    color: var(--nt-ink);
}

/* ── Body copy blocks ── */
.nt-section-lead,
.nt-lp-section-lead,
.nt-page-hero-sub,
.nt-lp-hero-sub,
.nt-lp-hero-subtext {
    font-family: var(--nt-font-body);
    font-size: var(--nt-text-lg);
    line-height: 1.65;
    color: var(--nt-muted);
}

.nt-richtext,
.nt-richtext p,
.nt-richtext li {
    font-family: var(--nt-font-body);
    font-size: var(--nt-text-base);
    line-height: 1.75;
}

/* Editor inline sizes: never smaller than sm on the public site */
.nt-richtext span[style*="font-size"],
.nt-richtext p[style*="font-size"],
.nt-richtext li[style*="font-size"] {
    font-size: clamp(0.875rem, 1em, 2rem) !important;
    line-height: 1.5 !important;
}

/* ── Buttons & nav copy ── */
.nt-btn,
.nt-lp-hero-cta,
.nt-lp-program-cta,
.nt-header-menu > li > a {
    font-family: var(--nt-font-nav);
    font-size: var(--nt-text-sm);
}

/* ── Impact / stat numbers (display) ── */
.nt-impact-stat-value,
.nt-impact-stat-num {
    font-family: var(--nt-font-display);
}

@media (max-width: 767px) {
    .nt-section-lead,
    .nt-lp-section-lead {
        font-size: var(--nt-text-base);
        line-height: 1.65;
    }

    .nt-page-hero-sub,
    .nt-lp-hero-sub,
    .nt-lp-hero-subtext {
        font-size: var(--nt-text-base);
        line-height: 1.55;
    }

    /* Readable minimum for links & names (14px) */
    .nt-footer-links a,
    .nt-footer-contact li,
    .nt-footer-contact a,
    .nt-footer-contact span,
    .nt-partner-card-name,
    .nt-coalition-name,
    .nt-card-title,
    .nt-lp-program-body h3,
    .nt-team-card-name {
        font-size: var(--nt-text-sm);
    }

    .nt-footer-heading {
        font-size: var(--nt-text-xs);
    }

    .nt-richtext {
        font-size: var(--nt-text-base);
    }
}

@media (max-width: 575px) {
    .nt-card-title,
    .nt-partner-card-name,
    .nt-coalition-name,
    .nt-lp-program-body h3 {
        font-size: var(--nt-text-sm);
        line-height: 1.4;
    }
}
