/* Shared responsive type roles for the homepage and interior templates. */
:root {
  --type-page: clamp(2.75rem, 5.1vw, 4.75rem);
  --type-home: clamp(2.625rem, 5.1vw, 4.75rem);
  --type-section: clamp(2.125rem, 3.8vw, 3.5rem);
  --type-title: clamp(1.75rem, 2.4vw, 2.125rem);
  --type-close: clamp(2.25rem, 4.2vw, 4rem);
}
.hero h1 { font-size:var(--type-home); line-height:1; max-width:820px; }
.page-intro h1,.quote-intro h1,.product-summary h1 { font-size:var(--type-page); line-height:1.04; text-wrap:balance; }
.section-heading,.editorial-heading,.detail-section h2,.project-feature h2 {
  font-size:var(--type-section); line-height:1.06; letter-spacing:-.035em; text-wrap:balance;
}
.case-content h2,.final-cta h2 { font-size:var(--type-close); line-height:1.04; }
.audience-row h3,.process-step h3,.product-label h3,.catalogue-card h2,.catalogue-card h3 {
  font-size:var(--type-title); line-height:1.12;
}
.method-step h2 { font-size:clamp(1.875rem,2.9vw,2.625rem); line-height:1.1; }
.support-strip h2 { font-size:clamp(2rem,2.7vw,2.5rem); line-height:1.1; }
.detail-section > p { max-width:65ch; }
.editorial-intro > p { font-size:clamp(1.125rem,1.4vw,1.3125rem); }
.button { font-weight:700; }
@media(max-width:760px) {
  .hero h1 { font-size:clamp(2.5rem,10.8vw,3.125rem); }
  .page-intro h1,.quote-intro h1,.product-summary h1 { font-size:clamp(2.75rem,10.8vw,3.25rem); }
  .section-heading,.editorial-heading,.detail-section h2,.project-feature h2 { font-size:clamp(2.125rem,8.9vw,2.5rem); }
  .case-content h2,.final-cta h2 { font-size:clamp(2.25rem,9.2vw,2.75rem); }
}
