/* Decision 031: shared typography roles for all public page families. */
#main{
 --type-display:clamp(2.5rem,calc(1.9rem + 2.334vw),4rem);
 --type-title:clamp(2rem,calc(1.5rem + 1.667vw),3rem);
 --type-article:clamp(2.125rem,calc(1.625rem + 1.81vw),3.25rem);
 --type-section:clamp(1.625rem,calc(1.375rem + .7vw),2rem);
 --type-card:clamp(1.25rem,calc(1.125rem + .28vw),1.375rem);
 --type-intro:clamp(1.25rem,calc(1.125rem + .28vw),1.375rem);
 --type-body:clamp(1.0625rem,calc(1rem + .14vw),1.125rem);
 font-size:var(--type-body);font-weight:400;line-height:1.65;
}
#main h1{font-size:var(--type-title);font-weight:700;line-height:1.15;letter-spacing:-.02em}
#main :is(.ab-article,.cs-page) h1{font-size:var(--type-article)}
#main h2{font-size:var(--type-section);font-weight:700;line-height:1.25;letter-spacing:-.015em}
#main h3,#main .svc-card h4{font-size:var(--type-card);font-weight:700;line-height:1.35;letter-spacing:-.01em}
#main p,#main li{font-size:var(--type-body);font-weight:400;line-height:1.65}
#main .ingress{font-size:var(--type-intro);font-weight:500;line-height:1.5;max-width:56ch}
/* Section introductions support their heading; hero introductions retain their scale. */
#main .head-split{grid-template-columns:1fr;gap:12px;margin-bottom:32px}
#main .head-split>.ms-8{padding-top:0}
#p-person .booking-link{display:inline-block;margin-top:20px;font-size:1rem}
#main .head-split>p,#main .head-split>div>p{font-size:1rem;font-weight:400;line-height:1.65;max-width:65ch;margin:0}
#main :is(.sb-item,.service-reading-card,.tile,.lcard,.svc-card,.industry-services) p,
#main :is(.sb-item,.tile,.lcard,.industry-services) li{font-size:1rem;line-height:1.65}
#main .ab-prose p,#main .ab-prose li{line-height:1.75}
#main :is(.sb-no-media,.industry-context) p{max-width:65ch}
#main :is(.ab-prose,.ab-split-layout)>div>p{max-width:65ch}
#main :is(.toc h2,.eyebrow,.kicker){font-size:.8125rem;font-weight:700;line-height:1.5;letter-spacing:.12em}
#main :is(figcaption,.meta,.art-meta,.small,.sb-scope){font-size:.875rem;line-height:1.5}
#main :is(.ab-author,.ab-sources) h2{font-size:1.25rem;letter-spacing:0}
#main .ab-author p,#main .ab-sources li{font-size:1rem}
#main :is(.cta-light,.sb-contact,.ab-cta) h2{font-size:clamp(1.75rem,calc(1.5rem + .84vw),2.25rem);line-height:1.25}

/* Family roles: the landing heroes remain larger; functional labels stay compact. */
#main :is(#p-start,#p-karriar) .hero h1{font-size:var(--type-display)}
#main .not-found-copy h1{font-size:var(--type-display)}
#main :is(.cs-highlight,.about-responsibility,.tt-card,.home-process) p,
#main :is(.about-responsibility,.tt-card) li{font-size:1rem;line-height:1.65}
#main #p-start .home-areas .tile>p{font-size:1rem;line-height:1.65}
#main #p-start .home-areas .home-area-promise{font-weight:700}
#main :is(.home-area-title,.home-chain>h3){font-size:var(--type-card);line-height:1.35}
#main :is(.person-role,.person-claim){font-size:var(--type-intro);line-height:1.5}
#main :is(.person-role,.person-claim){font-weight:600}
#main :is(.tt-meta,.cs-facts dd,.about-person p){font-size:.875rem;line-height:1.5}
#main :is(.home-process h4,.about-engagement h4){font-size:1.125rem;line-height:1.4}

/* Keep the approved visual size while correcting the heading hierarchy. */
#main .editor-subheading{font-size:var(--t-r4);letter-spacing:normal;line-height:var(--lh)}
#main .assignment .editor-subheading{margin-bottom:6px}
#main .team-card .editor-subheading{margin:0 0 4px;padding:0 26px;font-size:1.08rem}
#main .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
