/* Source: 03-typography.css | Refactored location: assets/css/foundation/typography.css */
/* ===============================
   4. Typography System
================================ */
/*
   Centralized NOFCC type system.
   This pass loosens kerning, raises body copy size, narrows readable measures,
   and creates more editorial breathing room across reusable patterns.
*/
h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin-top: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    color: var(--color-text);
    text-wrap: balance;
    font-kerning: normal;
    font-feature-settings: "kern", "liga", "calt";
}
h1 {
    margin-bottom: clamp(24px, 3vw, 36px);
    font-size: clamp(52px, 6.2vw, 92px);
    line-height: 1.04;
    letter-spacing: 0.02em;
    font-weight: 600;
}
h2 {
    margin-bottom: clamp(22px, 2.4vw, 32px);
    font-size: clamp(40px, 4.8vw, 72px);
    line-height: 1.06;
    letter-spacing: 0.025em;
    font-weight: 600;
}
h3 {
    margin-bottom: 16px;
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1.15;
    letter-spacing: 0.015em;
    font-weight: 700;
}
h4 {
    margin-bottom: 14px;
    font-size: clamp(20px, 1.8vw, 26px);
    line-height: 1.2;
    letter-spacing: 0.01em;
    font-weight: 700;
}
p,
li {
    max-width: 68ch;
    font-size: clamp(17px, 1.15vw, 19px);
    line-height: 1.82;
    color: var(--color-muted);
}
.paragraph-full-width p,
.paragraph-full-width li,
p.paragraph-full-width,
li.paragraph-full-width {
    max-width: 100%;
}
p:last-child {
    margin-bottom: 0;
}
/* Major editorial headings */
.hero h1 {
    font-size: clamp(48px, 5.2vw, 72px);
    line-height: 1.05;
    letter-spacing: 0.02em;
    font-weight: 700;
}
.pathways-intro h2,
.what-we-do-intro h2,
.donate-panel h2,
.stories-main h2,
.final-cta-content h2,
.coverage-content h2,
.page-hero h1 {
    font-size: clamp(40px, 4.6vw, 68px);
    line-height: 1.08;
    letter-spacing: 0.025em;
    font-weight: 600;
}
/* Oversized editorial event heading */
.events-heading h2 {
    font-size: clamp(48px, 5.8vw, 86px);
    line-height: 1.05;
    letter-spacing: 0.08em;
    font-weight: 400;
    text-transform: uppercase;
}
/* Feature/card titles */
.pathway-action strong,
.support-story h3,
.event-feature-copy h3,
.event-text-link strong,
.story-support-link strong {
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.06;
    letter-spacing: -0.03em;
    font-weight: 700;
}
/* Larger editorial body copy */
.lead,
.section-intro p,
.hero-intro,
.pathways-intro p,
.what-we-do-intro p,
.donate-panel p,
.stories-main p,
.final-cta-content p,
.page-hero p {
    max-width: 62ch;
    font-size: clamp(19px, 1.35vw, 22px);
    line-height: 1.78;
}
/* Compact component/body copy */
.pathway-action p,
.support-story p,
.event-feature-copy p,
.event-text-link p,
.story-support-link p,
.story-feature-link,
.image-guidance p,
.event-image-guidance p,
.stories-image-guidance p,
.what-we-do .image-guidance p {
    font-size: clamp(16px, 1vw, 18px);
    line-height: 1.68;
}
/* Small uppercase labels */
.eyebrow,
.hero-eyebrow,
.pathway-action span,
.support-number,
.event-meta,
.event-text-link span,
.story-support-link span,
.event-image-guidance span,
.stories-image-guidance span,
.what-we-do .image-guidance span,
.northlander-eyebrow,
.step-number {
    font-size: 11px;
    line-height: 1.1;
    letter-spacing: 0.17em;
    font-weight: 800;
    text-transform: uppercase;
}
/* Small action text */
.pathway-action em,
.btn,
.nav-list a,
.header-cta .btn,
.event-date,
.event-image-controls span,
.sponsor-logo--placeholder {
    font-size: 13px;
    line-height: 1;
}
/* ===============================
   4.1 Section Intro
================================ */
.section-intro {
    max-width: var(--container-narrow);
    margin: 0 auto clamp(56px, 6vw, 86px);
}
.section-intro p {
    max-width: var(--container-reading);
    margin-left: auto;
    margin-right: auto;
}
.eyebrow {
    display: inline-block;
    margin-bottom: 18px;
    color: var(--color-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.17em;
    line-height: 1;
    text-transform: uppercase;
}
