*, *::before, *::after { box-sizing: border-box; }
html { min-width: 20rem; scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; }
body, button, input, select, textarea { font-family: var(--font-sans); }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol, dl, blockquote { margin-top: 0; }
h1, h2, h3, h4 { scroll-margin-top: 7rem; text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
table { border-collapse: collapse; border-spacing: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
@supports selector(:focus-visible) {
  :focus:not(:focus-visible) { outline: none; }
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
