@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/ibm-plex-sans-600.woff2") format("woff2");
}

@font-face {
    font-family: "IBM Plex Sans";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/ibm-plex-sans-700.woff2") format("woff2");
}

:root {
    --fmt-heading-font-family: "IBM Plex Sans", "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --fmt-heading-weight: 600;
    --fmt-heading-color: #0f172a;
    --fmt-h1-size: clamp(2.75rem, 3.2vw, 3rem);
    --fmt-h1-line-height: 1.1;
    --fmt-h1-letter-spacing: -0.02em;
    --fmt-h2-size: clamp(1.75rem, 2.2vw, 2rem);
    --fmt-h2-line-height: 1.2;
    --fmt-h3-size: clamp(1.25rem, 1.7vw, 1.375rem);
    --fmt-h3-line-height: 1.25;
}

@media (max-width: 767.98px) {
    :root {
        --fmt-h1-size: clamp(1.75rem, 6vw, 2.125rem);
    }
}

body:not(.marketing-page) :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--fmt-heading-font-family);
    font-weight: var(--fmt-heading-weight);
    color: var(--fmt-heading-color);
    margin-top: 0;
}

body:not(.marketing-page) h1 {
    font-size: var(--fmt-h1-size);
    line-height: var(--fmt-h1-line-height);
    letter-spacing: var(--fmt-h1-letter-spacing);
}

body:not(.marketing-page) h2 {
    font-size: var(--fmt-h2-size);
    line-height: var(--fmt-h2-line-height);
}

body:not(.marketing-page) h3 {
    font-size: var(--fmt-h3-size);
    line-height: var(--fmt-h3-line-height);
}

body:not(.marketing-page) :is(h1, h2, h3, h4, h5, h6).fw-bold {
    font-weight: var(--fmt-heading-weight);
}
