:root {
  --blue: #253b7c;
  --red: #b81f24;
  --charcoal: #25282c;
  --nav: #000;
  --ink: #20242c;
  --muted: #666;
  --line: #ccc;
  --surface: #f2f2f2;
  --site-width: 1200px;
  --font-body: 'Uniform', Arial, sans-serif;
  --font-brand: 'Montserrat', Arial, sans-serif;
}
@font-face { font-family: 'Uniform'; src: url('../fonts/Uniform-Condensed.ttf') format('truetype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Montserrat'; src: url('../fonts/Montserrat-Bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'TakeCharge'; src: url('../fonts/takecharge.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Xolonium'; src: url('../fonts/Xolonium-Regular.otf') format('opentype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'BarberChop'; src: url('../fonts/BarberChop.otf') format('opentype'); font-weight: 400; font-display: swap; }
* { box-sizing: border-box; }
html { scroll-padding-top: 1rem; }
body { margin: 0; background: #d4d4d4; color: var(--ink); font: 13px/1.6 var(--font-body); }
img { display: block; max-width: 100%; height: auto; }
a { color: #105596; text-underline-offset: 0.18em; }
a:hover { color: var(--charcoal); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #087ce9; outline-offset: 3px; }
h1, h2, h3 { margin: 0 0 0.75em; color: var(--blue); line-height: 1.2; overflow-wrap: anywhere; }
h1 { font-size: 32px; }
h2 { font-size: 27px; }
h3 { font-size: 22px; }
p { margin: 0 0 1rem; }
address { font-style: normal; }
[hidden] { display: none; }
.site-shell { width: min(100%, var(--site-width)); margin-inline: auto; }
.main-content { min-height: 45vh; padding: 28px 20px 42px; background: #fff; }
.page-content { max-width: 100%; overflow-wrap: anywhere; }
.page-content img, .page-content iframe, .page-content video { max-width: 100%; height: auto; }
.page-content table { display: block; max-width: 100%; overflow-x: auto; }
.content-entry { padding-block: 1rem; border-bottom: 1px solid var(--line); }
.screen-reader-text, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 1rem; left: 1rem; z-index: 100; padding: 0.75rem; background: #fff; }
@media (max-width: 600px) {
  body { font-size: 16px; }
  .main-content { padding: 22px 14px 32px; }
  h1 { font-size: 27px; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
