/* Public heading roles. Homepage/visa heroes and functional controls retain their scale. */
:root {
  --heading-section: clamp(2.25rem, 4.5vw, 4rem);
  --heading-subsection: clamp(1.625rem, 2.25vw, 2rem);
  --heading-reading: clamp(1.75rem, 2.5vw, 2.25rem);
  --heading-reading-sub: clamp(1.375rem, 2vw, 1.75rem);
  --heading-page: clamp(2.5rem, 5.3vw, 5rem);
  --heading-detail: clamp(2.125rem, 3.9vw, 3.5rem);
}

/* All major sections, including formerly smaller process and contact headings. */
.page-content.page-content-landing .nux-section h2.nux-title,
.page-content.page-content-landing .visa-features-head h2,
.page-content .visa-features-head h2,
.page-content .visa-page :is(.visa-section,.visa-final) h2,
.page-content .about-page :is(.about-founders-section,.about-presence,.final-cta) h2,
.page-content .resource-hub .resource-category-heading,
.page-content .news-feed-heading h2 {
  font-size: var(--heading-section);
  line-height: 1.12;
}

/* Editorial subheadings; small contact/form labels are a separate UI role. */
.page-content.page-content-landing :is(.nux-section,.visa-features) h3,
.page-content .visa-feature-card h3,
.page-content .about-page :is(.about-founder-copy,.about-presence-item) h3,
.page-content .resource-hub .resource-tool-card h3,
.page-content .visa-page :is(.visa-steps,.visa-facts) h3,
.page-content .articles-page .article-title-link strong {
  font-size: var(--heading-subsection);
  line-height: 1.25;
}

/* Reading columns and interactive panels need a quieter, consistent hierarchy. */
.page-content :is(.article-content-page,.service-detail-page,.legal-page) h2,
.page-content .resource-page:not(.resource-hub) h2,
.page-content .consultation-page .consultation-section h2 {
  font-size: var(--heading-reading);
  line-height: 1.2;
}
.page-content :is(.article-content-page,.service-detail-page,.legal-page) h3,
.page-content .resource-page:not(.resource-hub) h3,
.page-content .consultation-page .consultation-section h3 {
  font-size: var(--heading-reading-sub);
  line-height: 1.25;
}

/* Equal page-title roles across archives, Resources and About. */
.page-content .articles-hero h1.nux-title,
.page-content .about-page .secondary-hero h1,
.page-content .resource-hub .secondary-hero h1 {
  font-size: var(--heading-page);
  line-height: 1.08;
}
.page-content :is(.article-content-page,.service-detail-page) :is(.article-detail-hero,.service-detail-hero) h1,
.page-content .resource-page:not(.resource-hub) .resource-hero h1 {
  font-size: var(--heading-detail);
  line-height: 1.12;
}
