/* =====================================================================
   HEADING SCALE – one size per level for the whole site (loaded last).
   Pages and sections used to set their own sizes (H1 39–54px, H2 21–46px,
   H3 19–46px); change the four variables below to resize every page.
   :not(#hd) raises specificity so this beats the per-page rules.
   ===================================================================== */
:root {
  --hd-h1: clamp(28px, 2.9vw, 40px);
  --hd-h2: clamp(24px, 2.3vw, 32px);
  --hd-h3: clamp(18px, 1.6vw, 22px);
  --hd-h4: clamp(15px, 1.2vw, 17px);
}

html body h1:not(#hd):not(.sr-only):not(footer *) { font-size: var(--hd-h1) !important; line-height: 1.2 !important; }
html body h2:not(#hd):not(footer *)               { font-size: var(--hd-h2) !important; line-height: 1.25 !important; }
html body h3:not(#hd):not(footer *)               { font-size: var(--hd-h3) !important; line-height: 1.3 !important; }
html body h4:not(#hd):not(footer *)               { font-size: var(--hd-h4) !important; line-height: 1.35 !important; }

/* accent words inside a heading follow the heading size */
html body :is(h1, h2, h3, h4):not(#hd):not(footer *) em { font-size: inherit !important; line-height: inherit !important; }

/* every heading is semi-bold (600); accent words follow the heading */
html body :is(h1, h2, h3, h4, h5, h6):not(#hd) { font-weight: 600 !important; }
html body :is(h1, h2, h3, h4, h5, h6):not(#hd) :is(em, strong, b, span, a) { font-weight: inherit !important; }
