/* Haber CMS 26.2.7 - Public Typography Center
   Font families come from trusted, server-side catalog presets and fall back locally. */

.public-site {
    font-family: var(--site-font-body, system-ui, sans-serif) !important;
}

.public-site :is(
    .site-topline,
    .site-top-links,
    .site-date,
    .site-navigation,
    .site-nav-link,
    .site-menu-toggle,
    .site-search,
    .site-search input,
    .site-search button,
    .site-button,
    .breaking-strip,
    .breaking-controls,
    .live-strip,
    .site-footer,
    button,
    input,
    select,
    textarea
) {
    font-family: var(--site-font-navigation, var(--site-font-body, system-ui, sans-serif)) !important;
}

.public-site :is(
    .site-section-heading h1,
    .site-section-heading h2,
    .archive-header h1,
    .home-top-slide-copy h2,
    .headline-main-copy h2,
    .editorial-hub-title strong,
    .home-authors-section h2,
    .article-body h2,
    .article-body h3,
    .article-body h4,
    .editorial-public-body h2,
    .editorial-public-body h3,
    .editorial-public-body h4
) {
    font-family: var(--site-font-headline, var(--site-font-body, system-ui, sans-serif)) !important;
    font-weight: var(--site-headline-weight, 800) !important;
}

.public-site :is(
    .public-news-card h2,
    .public-news-card h3,
    .public-news-card h3 a,
    .latest-compact-copy h3,
    .connected-card-copy h3,
    .connected-card-copy h3 a,
    .editorial-mini-card h3,
    .editorial-mini-card h3 a,
    .home-author-copy strong,
    .public-author-card h2,
    .article-most-read-item h3,
    .article-most-read-item h3 a
) {
    font-family: var(--site-font-card-title, var(--site-font-headline, system-ui, sans-serif)) !important;
    font-weight: var(--site-headline-weight, 800) !important;
}

.public-site :is(
    .article-header h1,
    .editorial-public-shell h1,
    .static-page-head h1,
    .contact-intro h1
) {
    font-family: var(--site-font-article-title, var(--site-font-headline, system-ui, sans-serif)) !important;
    font-weight: var(--site-headline-weight, 800) !important;
}

.public-site :is(
    .article-body,
    .editorial-public-body,
    .static-page-body,
    .article-body p,
    .editorial-public-body p
) {
    font-family: var(--site-font-article-body, var(--site-font-body, Georgia, serif)) !important;
    line-height: var(--site-article-line-height, 1.75) !important;
}

.public-site :is(
    .public-news-meta,
    .home-hero-meta,
    .home-hero-kicker,
    .public-category-kicker,
    .site-section-eyebrow,
    .article-time-meta,
    .article-byline-row,
    .article-source,
    .article-tags,
    .article-cover figcaption,
    .connected-card-meta,
    .editorial-public-meta,
    .editorial-public-type,
    .live-item,
    .live-strip-label
) {
    font-family: var(--site-font-meta, var(--site-font-body, system-ui, sans-serif)) !important;
}

/* Avoid stale release CSS forcing old system-ui fonts back over the selected roles. */
.public-v18 .article-body,
.public-v18 .editorial-public-body {
    font-family: var(--site-font-article-body, var(--site-font-body, system-ui, sans-serif)) !important;
    line-height: var(--site-article-line-height, 1.75) !important;
}
.public-v18 .article-header h1,
.public-v18 .editorial-public-shell h1 {
    font-family: var(--site-font-article-title, var(--site-font-headline, system-ui, sans-serif)) !important;
    font-weight: var(--site-headline-weight, 800) !important;
}
.public-v18 .article-body :is(h2,h3,h4),
.public-v18 .editorial-public-body :is(h2,h3,h4) {
    font-family: var(--site-font-headline, system-ui, sans-serif) !important;
    font-weight: var(--site-headline-weight, 800) !important;
}
.public-v18 .home-top-slide-copy.headline-main-copy h2 {
    font-family: var(--site-font-headline, system-ui, sans-serif) !important;
    font-weight: var(--site-headline-weight, 800) !important;
}
