:root{
  --type-display:clamp(3.25rem,4vw,3.75rem);
  --type-h1:clamp(2.75rem,3.65vw,3.375rem);
  --type-h2:clamp(1.875rem,2.4vw,2.375rem);
  --type-h3:clamp(1.25rem,1.6vw,1.5rem);
  --type-body-lg:clamp(1.0625rem,1.2vw,1.1875rem);
  --type-body:1rem;
  --type-small:.875rem;
  --type-meta:.8125rem;
  --leading-display:1.08;
  --leading-heading:1.2;
  --leading-body:1.62;
  --leading-meta:1.5;
}

/* Shared utility text stays readable across template-specific styles. */
.breadcrumb{font-size:var(--type-meta);line-height:var(--leading-meta)}
.eyebrow,.card-eyebrow{font-size:var(--type-meta);line-height:1.45}
.button{font-size:var(--type-body);line-height:1.2}

/* Standard page titles share one scale. Homepage display and article editorial titles remain distinct. */
.service-directory-hero h1,
.money-hero h1,
.category-hub-hero h1,
.knowledge-archive-head h1,
.topic-archive-header h1,
.expert-directory-hero h1,
.expert-detail-hero h1,
.about-hero-copy h1,
.contact-hero h1{
  font-size:var(--type-h1);
  line-height:var(--leading-display);
}

/* Large section headings that previously exceeded the shared hierarchy. */
.expert-directory-intro h2,
.about-page h2,
.contact-channels h2,
.contact-form-card h2,
.contact-office h2{
  font-size:var(--type-h2);
  line-height:var(--leading-heading);
}

/* Archive/list titles use card typography even where document semantics require H2. */
.topic-article-row h2{
  font-size:clamp(1.25rem,1.6vw,1.375rem);
  line-height:1.32;
}

@media(max-width:800px){
  :root{
    --type-display:clamp(2.125rem,9vw,2.5rem);
    --type-h1:clamp(2rem,9vw,2.375rem);
    --type-h2:clamp(1.625rem,7vw,2rem);
    --type-h3:clamp(1.125rem,5vw,1.375rem);
    --type-body-lg:1.0625rem;
    --type-body:1rem;
    --type-small:.8125rem;
    --type-meta:.8125rem;
  }

  .category-hub-article .prose h2,
  .category-hub-faq h2,
  .category-hub-related-services h2,
  .knowledge-featured-head h2,
  .knowledge-all-heading h2{
    font-size:var(--type-h2);
    line-height:var(--leading-heading);
  }

  /* Long editorial titles keep a quieter scale than standard page titles. */
  .article-header h1{
    font-size:clamp(2rem,8.5vw,2.375rem);
    line-height:1.065;
  }

  .topic-article-row h2{
    font-size:1.0625rem;
    line-height:1.35;
  }

  .knowledge-archive-grid .knowledge-card h3,
  .knowledge-featured .knowledge-card h3{
    font-size:1.0625rem;
    line-height:1.35;
  }
}

@media(max-width:340px){
  .button{font-size:.9375rem}
}
