/* Unified type scale — loaded LAST on every page (site, landings, blog, cases).
   One size per level so titles and body copy match across the whole site.
   Desktop 1440px: H1 63 · H2 42 · H3 21 · body 16.9 · lead 18.75
   Mobile  390px:  H1 38 · H2 30 · H3 17 · body 15   · lead 16 */
:root{
  --fs-h1:clamp(38px,calc(20px + 3vw),63px);
  --fs-h2:clamp(30px,calc(18px + 1.7vw),42px);
  --fs-h3:clamp(17px,calc(14.5px + .45vw),21px);
  --fs-body:clamp(15px,calc(14.3px + .18vw),16.875px);
  --fs-lead:clamp(16px,calc(14.8px + .28vw),18.75px);
}
h1:not(footer *),h2:not(footer *):not(.wm-statement),h3:not(footer *):not(.incl h3){
  font-family:"Space Grotesk",Arial,sans-serif !important;
}
h1:not(footer *){
  font-size:var(--fs-h1) !important;
  line-height:1.03 !important;
  font-weight:600 !important;
  letter-spacing:-.035em !important;
}
h2:not(footer *):not(.wm-statement){
  font-size:var(--fs-h2) !important;
  line-height:1.08 !important;
  font-weight:600 !important;
  letter-spacing:-.03em !important;
}
h3:not(footer *):not(.incl h3){
  font-size:var(--fs-h3) !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  letter-spacing:-.015em !important;
}
.lead:not(footer *),.lede:not(footer *){
  font-size:var(--fs-lead) !important;
  line-height:1.6 !important;
}
:is(main,section,article) p:not([class]):not(footer *),
.post-body p,.post-body li,
.prose p{
  font-size:var(--fs-body) !important;
  line-height:1.65 !important;
}

/* ---- Layout guardrails (fix pre-existing horizontal overflow on mobile) ---- */
h1,h2,h3{overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual}
.btn,a.btn{max-width:100%}
.post-body table{display:block;max-width:100%;overflow-x:auto}
img,svg,video{max-width:100%}
@media (max-width:760px){
  h1,h2{overflow-wrap:anywhere}
  .kicker,.hero-links,.crumbs{flex-wrap:wrap !important}
  .btn,a.btn{white-space:normal !important;max-width:100%;text-align:center;height:auto !important;line-height:1.25 !important}
  .post-toc,.post-toc ul{max-width:100% !important;min-width:0 !important}
  .post-layout{grid-template-columns:minmax(0,1fr) !important}
}
html{overflow-x:clip}
@media (max-width:760px){
  h1 em,h2 em{white-space:normal !important}
  .quick-nav .wrap{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .compare-table,.cwv-table{display:block;overflow-x:auto;max-width:100%}
}
