/* Shared heading roles. Page styles own layout; this scale owns title typography. */
:root{
  --type-display-size:clamp(44px,4.2vw,60px);
  --type-page-size:clamp(34px,3.5vw,46px);
  --type-section-size:36px;
  --type-content-size:26px;
  --type-panel-size:22px;
  --type-card-size:20px;
  --type-plan-size:24px;
  --type-label-size:16px;
  --type-heading-tracking:-.01em;
}
#main :is(h1,h2,h3){font-family:var(--heading);font-weight:750;letter-spacing:var(--type-heading-tracking)}
#main h1{font-size:var(--type-page-size);line-height:1.2}
#main h2{font-size:var(--type-content-size);line-height:1.3}
#main h3{font-size:var(--type-card-size);line-height:1.4;letter-spacing:normal}
/* Marketing sections share a single level, including pricing, audit and ML. */
#main.home-main h2,#main.upgrade-main h2{font-size:var(--type-section-size);line-height:1.25}
#main.home-main .hero h1{font-size:var(--type-display-size);line-height:1.16}
/* Product panels and form headings are subordinate to section titles. */
#main.portal-main:not(.help-main) h2,
#main :is(.upgrade-layers,.upgrade-pro-grant,.help-contact,.support-form,.support-thread-heading,.support-empty) h2,
#main :is(.scoring-heading,.checkout-demo) h3{font-size:var(--type-panel-size);line-height:1.4}
#main .pricing-card h3{font-size:var(--type-plan-size)}
/* Navigation labels and recorded/demo details retain a compact reading role. */
#main :is(.help-toc,.legal-provider,.support-inbox-heading) h2,
#main :is(.decision-detail,.audit-checks,.upgrade-signals,.upgrade-return,.help-example) h3{font-size:var(--type-label-size);line-height:1.5;letter-spacing:normal}
@media(max-width:800px){
  :root{
    --type-display-size:clamp(32px,8.7vw,46px);
    --type-page-size:32px;
    --type-section-size:28px;
    --type-content-size:24px;
    --type-panel-size:20px;
    --type-card-size:18px;
    --type-plan-size:22px;
  }
}
