:root { --focus-ring: #ffbf47; --base-font: 100%; }
html { font-size: var(--base-font); scroll-behavior: smooth; }
html.font-size-90 { --base-font: 90%; }
html.font-size-100 { --base-font: 100%; }
html.font-size-110 { --base-font: 110%; }
html.font-size-120 { --base-font: 120%; }
html.font-size-125 { --base-font: 125%; }
body { overflow-x: hidden; }
.skip-link { position: fixed; z-index: 11000; top: -6rem; left: 1rem; padding: .7rem 1rem; border: 3px solid var(--focus-ring); color: #000; background: #fff; font-weight: 700; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid var(--focus-ring) !important; outline-offset: 3px !important; }
button, a, input, select, textarea { touch-action: manipulation; }
.table-responsive:focus { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
body.high-contrast { --swaas-brown: #000; --swaas-brown-dark: #000; --swaas-gold: #ff0; --swaas-gold-light: #ff0; --swaas-ink: #fff; --swaas-muted: #fff; --swaas-border: #fff; --swaas-soft: #000; color: #fff; background: #000; }
body.high-contrast .government-bar,
body.high-contrast .identity-header,
body.high-contrast .home-section,
body.high-contrast .collection-section,
body.high-contrast .cms-page-content,
body.high-contrast .info-panel,
body.high-contrast .service-card,
body.high-contrast .collection-card,
body.high-contrast .card-body,
body.high-contrast .footer-bottom { color: #fff !important; background: #000 !important; }
body.high-contrast .identity-brand,
body.high-contrast .footer-logo { background: transparent; }
body.high-contrast p,
body.high-contrast li,
body.high-contrast h1,
body.high-contrast h2,
body.high-contrast h3,
body.high-contrast h4,
body.high-contrast a { color: #fff !important; }
body.high-contrast a { text-decoration: underline !important; }
body.high-contrast .swaas-button,
body.high-contrast .news-label,
body.high-contrast .important-link:hover { color: #000 !important; background: #ff0 !important; }
body.high-contrast img { filter: none; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .news-track { animation: news-marquee 38s linear infinite !important; }
}
@media print {
    .skip-link, .carousel-pause { display: none !important; }
    body { color: #000; background: #fff; font-size: 11pt; }
}
