:root {
    --font-sans: "Montserrat", ui-sans-serif, system-ui;
    /* --font-display: managed by design-tokens.css (source of truth) */

    /* --fs-100 to --fs-1000: aliased from design-tokens.css --text-* */
    /* Only heading-specific clamp scales are defined here: */

    --fs-h6: clamp(0.875rem, 0.84rem + 0.2vw, 1rem);
    --fs-h5: clamp(1rem, 0.96rem + 0.24vw, 1.125rem);
    --fs-h4: clamp(1.125rem, 1.03rem + 0.4vw, 1.25rem);
    --fs-h3: clamp(1.25rem, 1.1rem + 0.8vw, 1.5rem);
    --fs-h2: clamp(1.75rem, 1.45rem + 1.2vw, 2.25rem);
    --fs-h1: clamp(2.25rem, 1.8rem + 2vw, 3.25rem);

    --lh-tight: 1.2;
    --lh-snug: 1.4;
    --lh-body: 1.6;
    --lh-relaxed: 1.75;
    --lh-loose: 2;
}

html {
    font-size: 100%;
}

body {
    font-family: var(--font-sans);
    font-size: var(--fs-300);
    line-height: var(--lh-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-display);
    line-height: var(--lh-tight);
}

h1 {
    font-size: var(--fs-h1);
}

h2 {
    font-size: var(--fs-h2);
}

h3 {
    font-size: var(--fs-h3);
}

h4 {
    font-size: var(--fs-h4);
}

h5 {
    font-size: var(--fs-h5);
}

h6 {
    font-size: var(--fs-h6);
}

.t-h1 {
    font-size: var(--fs-h1);
    font-weight: 700;
}

.t-h2 {
    font-size: var(--fs-h2);
    font-weight: 700;
    line-height: var(--lh-tight);
}

.t-h3 {
    font-size: var(--fs-h3);
    font-weight: 600;
    line-height: var(--lh-tight);
}

.t-body {
    font-size: var(--fs-300);
    line-height: var(--lh-body);
}

.t-caption {
    font-size: var(--fs-200);
    line-height: var(--lh-body);
}

.type-h2,
.title-md,
.section-title {
    font-size: var(--fs-h2);
    line-height: var(--lh-tight);
}

.type-h3,
.title-sm,
.card-title {
    font-size: var(--fs-h3);
    line-height: var(--lh-tight);
}

.type-body {
    font-size: var(--fs-300);
    line-height: var(--lh-body);
}
