/* Shared typography: update these families for a future font change. */
:root{
 --headline-dot-gap:.12em;
 --font-body:Arial,Helvetica,sans-serif;--font-heading:var(--font-body);
 --type-12:.75rem;--type-14:.875rem;--type-16:1rem;--type-18:1.125rem;
 --type-20:1.25rem;--type-24:1.5rem;--type-28:1.75rem;--type-32:2rem;
 --type-40:2.5rem;--type-48:3rem;--type-56:3.5rem;--type-64:4rem;
 --type-80:5rem;--type-100:6.25rem;
 --page-title:clamp(var(--type-40),4.8vw,var(--type-64));
 --section-title:clamp(var(--type-32),3.2vw,var(--type-40));
}
body{font-family:var(--font-body);font-size:var(--type-16)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}
main h1,[class] h1{font-size:var(--page-title);line-height:1.08}
main h2{font-size:var(--section-title)}
.hero p,.page-hero p,.about-intro p,.offer-hero p,.p-teaser-copy>p,.pv-focus-copy p,.story-copy p,.article p,.blog-article p{font-size:var(--type-16);line-height:1.65}
.hero p.lead,.page-hero p.lead,.about-intro p.lead,.offer-hero p.lead,.pv-hero p.lead{font-size:var(--type-18)}
.about-stories h2,.p-teaser-copy h2,.pv-focus-copy h2,.pv-example h2,.story-copy h2,.story-film-heading h2,.explanation-grid h2{font-size:var(--section-title)}
.p-insight-body h2,.story-card-copy h2,.mah-explainer-heading h2,.holding-models h3{font-size:var(--type-28)}
.route h3,.customer-path h3,.consult-outcomes h3,.offer-service-label h2,.story-benefits h3{font-size:var(--type-24)}
.who-panel-top h2{font-size:var(--type-28)}
.offer-service-body h3,.about-person-heading h3{font-size:var(--type-28)}
.about-founder .about-person-heading h3{font-size:var(--type-32)}
header .navlinks{font-size:var(--type-16);flex:1;justify-content:flex-end;gap:clamp(20px,2.3vw,32px)}
header .navlinks .btn,header .menu{font-size:var(--type-16)}
.footer-top{align-items:flex-start}
.footer .footer-links{font-size:var(--type-16);flex:1;max-width:860px;gap:22px 28px;justify-content:flex-end;line-height:1.5}
.value-promise-strip .wrap{font-size:var(--type-16)}
/* Keep spacing independent of glyph shape and tracking. */
.brand-full-stop{margin-inline-start:var(--headline-dot-gap);margin-inline-end:0;letter-spacing:0;font-size:1em;flex-shrink:0}
.headline-ending{white-space:nowrap;color:inherit!important}
@media(max-width:950px){header .navlinks{align-items:stretch;gap:12px}}
@media(max-width:720px){
 :root{--page-title:clamp(var(--type-40),8vw,var(--type-48));--section-title:var(--type-32)}
 .footer .footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:none;gap:18px 24px}
 .who-panel-top h2{font-size:var(--type-28)}
}
