html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background-color: var(--body-bg-color);
  color: var(--text-color);
  font-family: var(--text-font-family);
  font-size: var(--text-m);
  line-height: var(--text-line-height);
  -webkit-font-smoothing: antialiased;
}
*, *::before, *::after { box-sizing: border-box; }
/* QA deploy #2: lock page scroll while the popover mobile menu is open (class set by the SiteHeader script; :has() covers no-JS). */
html.is-menu-open, html:has(#mobile-menu:popover-open), body.is-menu-open { overflow: hidden; }
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  font-family: var(--heading-font-family);
  font-weight: var(--heading-font-weight);
  line-height: var(--heading-line-height);
  color: inherit;
  text-wrap: balance;
}
:where(h1) { font-size: var(--h1); }
:where(h2) { font-size: var(--h2); }
:where(h3) { font-size: var(--h3); }
:where(h4) { font-size: var(--h4); }
:where(p) { margin: 0; }
:where(figure) { margin: 0; }
:where(img, video, iframe) { max-inline-size: 100%; display: block; }
:where(img) { block-size: auto; }
:where(a) { color: inherit; }
:where(ul[role="list"], ol[role="list"]) { list-style: none; margin: 0; padding: 0; }
:where(:focus-visible) { outline: 2px solid var(--primary); outline-offset: 3px; }
main { display: block; }