/*
 * Sitewide fluid heading scale
 * Loaded after page-level styles so every template uses one predictable,
 * accessible hierarchy across phones, tablets and desktop displays.
 */
:root {
    --heading-size-h1: clamp(2.2rem, 1.6rem + 2vw, 4rem);
    --heading-size-h2: clamp(1.8rem, 1.4rem + 1.5vw, 3rem);
    --heading-size-h3: clamp(1.5rem, 1.2rem + 1vw, 2.3rem);
    --heading-size-h4: clamp(1.3rem, 1.1rem + 0.6vw, 1.8rem);
    --heading-size-h5: clamp(1.1rem, 1rem + 0.3vw, 1.4rem);
    --heading-size-h6: clamp(1rem, 0.95rem + 0.2vw, 1.2rem);
}

h1 {
    font-size: var(--heading-size-h1) !important;
}

h2 {
    font-size: var(--heading-size-h2) !important;
}

h3 {
    font-size: var(--heading-size-h3) !important;
}

h4 {
    font-size: var(--heading-size-h4) !important;
}

h5 {
    font-size: var(--heading-size-h5) !important;
}

h6 {
    font-size: var(--heading-size-h6) !important;
}

/*
 * Every current hero has a class containing "hero". The first-section
 * selector covers future minimal templates that omit a dedicated hero class.
 */
[class*="hero"] h1,
main > section:first-of-type h1 {
    letter-spacing: -0.038em !important;
}
