/* =========================================================
   BeeFixPro unified typography system
   The homepage is the visual reference; this layer brings the
   remaining pages into the same heading hierarchy without
   changing component spacing, colors or layout.
   ========================================================= */

:root {
    --bfp-type-display: var(--assimox-font-two, "Roboto", sans-serif);
    --bfp-type-section: var(--assimox-font, "Barlow", sans-serif);
    --bfp-type-h1: clamp(48px, 4.2vw, 65px);
    --bfp-type-h1-long: clamp(42px, 3.8vw, 58px);
    --bfp-type-h2: clamp(38px, 3.1vw, 52px);
    --bfp-type-h2-compact: clamp(31px, 2.65vw, 42px);
    --bfp-type-h2-small: clamp(26px, 2.05vw, 32px);
    --bfp-type-h3: clamp(20px, 1.55vw, 24px);
    --bfp-type-h3-small: clamp(17px, 1.3vw, 20px);
    --bfp-type-h4: clamp(17px, 1.2vw, 19px);
}

/* Preserve the tuned homepage and normalize every other page. */
body:not(.index-page) :where(h1, h2, h3, h4) {
    hyphens: none;
    overflow-wrap: normal;
    text-wrap: balance;
}

body:not(.index-page) h1 {
    font-family: var(--bfp-type-display) !important;
    font-size: var(--bfp-type-h1) !important;
    font-weight: 900 !important;
    letter-spacing: -.045em !important;
    line-height: .98 !important;
}

/* Long service, location and editorial titles need one calmer step. */
body:not(.index-page):is(
    .service-page,
    .jacksonville-page,
    .geo-hub-page,
    .article-page,
    .rrc-page
) h1 {
    font-size: var(--bfp-type-h1-long) !important;
}

body:not(.index-page) h2 {
    font-family: var(--bfp-type-section) !important;
    font-size: var(--bfp-type-h2) !important;
    font-weight: 800 !important;
    letter-spacing: -.035em !important;
    line-height: 1.04 !important;
}

/* Secondary section leads and CTA titles. */
body:not(.index-page) :is(
    .about-v5-cta__content,
    .article-service-bridge__copy,
    .brand-visit__intro,
    .brands-cta__content,
    .company-cta,
    .contact-v2-schedule,
    .contact-v2-directory,
    .contact-v2-cta__copy,
    .fr26-final,
    .geo-final__shell,
    .jacksonville-cta__content,
    .ka-related-panel,
    .ka-summary,
    .locations-cta__content,
    .premium-page-cta__content,
    .rrc-related__head,
    .rrc-summary__intro,
    .rrc-service-area,
    .samsung-page-cta__content,
    .service-final-cta__copy,
    .subzero-final-cta__copy
) h2 {
    font-size: var(--bfp-type-h2-compact) !important;
    letter-spacing: -.03em !important;
    line-height: 1.07 !important;
}

/* Utility panels and long-form document headings stay compact. */
body:not(.index-page) :is(
    .article-sidebar__body,
    .company-hero .contact-panel,
    .contact-panel,
    .fr26-quick__shell,
    .legal-document,
    .legal-hero__summary,
    .service-connections__title,
    .site-service-ribbon__head
) h2 {
    font-size: var(--bfp-type-h2-small) !important;
    letter-spacing: -.025em !important;
    line-height: 1.1 !important;
}

body:not(.index-page) h3 {
    font-family: var(--bfp-type-display) !important;
    font-size: var(--bfp-type-h3) !important;
    font-weight: 800 !important;
    letter-spacing: -.018em !important;
    line-height: 1.18 !important;
}

/* Questions, supporting facts and sidebar headings form one quiet level. */
body:not(.index-page) :is(
    [class*="faq"],
    .article-sidebar__links,
    .legal-document,
    .rrc-summary__facts
) h3 {
    font-size: var(--bfp-type-h3-small) !important;
    letter-spacing: -.01em !important;
    line-height: 1.28 !important;
}

/* Footer headings are navigation labels, not content headings. */
body:not(.index-page) .premium-footer__column h3 {
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .02em !important;
    line-height: 1.3 !important;
    text-wrap: nowrap;
}

/* H4 is used only for directory and price-panel card titles. */
body:not(.index-page) :is(
    .brand-directory-card,
    .pricing-card__note,
    .rrc-price-panel__title
) h4 {
    font-family: var(--bfp-type-display) !important;
    font-size: var(--bfp-type-h4) !important;
    font-weight: 800 !important;
    letter-spacing: -.012em !important;
    line-height: 1.22 !important;
}

/* One eyebrow system, matching the homepage section labels. */
body:not(.index-page) :where(
    [class*="eyebrow"],
    [class*="kicker"]
) {
    font-family: var(--bfp-type-display) !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
    line-height: 18px !important;
    text-transform: uppercase;
}

@media (max-width: 767px) {
    :root {
        --bfp-type-h1: clamp(34px, 10vw, 44px);
        --bfp-type-h1-long: clamp(31px, 8.9vw, 40px);
        --bfp-type-h2: clamp(29px, 9vw, 36px);
        --bfp-type-h2-compact: clamp(27px, 8vw, 33px);
        --bfp-type-h2-small: clamp(23px, 7vw, 29px);
        --bfp-type-h3: clamp(18px, 5.5vw, 22px);
        --bfp-type-h3-small: clamp(16px, 4.8vw, 19px);
        --bfp-type-h4: clamp(16px, 4.9vw, 18px);
    }

    body:not(.index-page) h1 {
        letter-spacing: -.04em !important;
        line-height: 1.01 !important;
    }

    body:not(.index-page) h2 {
        letter-spacing: -.032em !important;
        line-height: 1.06 !important;
    }

    body:not(.index-page) h3 {
        line-height: 1.22 !important;
    }
}

@media (max-width: 374px) {
    :root {
        --bfp-type-h1: 35px;
        --bfp-type-h1-long: 31px;
        --bfp-type-h2: 29px;
        --bfp-type-h2-compact: 27px;
        --bfp-type-h2-small: 23px;
    }

    body:not(.index-page) :where(
        [class*="eyebrow"],
        [class*="kicker"]
    ) {
        font-size: 12px !important;
        line-height: 16px !important;
    }
}
