*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--gns-text); background: var(--gns-white); font-family: Ubuntu, system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.6; }
body.gns-menu-open { overflow: hidden; }
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
button, [href]:not(.gns-entry a), input, select { min-height: 44px; }
h1, h2, h3 { margin: 0 0 .75rem; color: var(--gns-navy); line-height: 1.12; text-wrap: balance; }
h1 { font-size: clamp(2.25rem, 6vw, 4.5rem); }
h2 { font-size: clamp(1.75rem, 4vw, 2.75rem); }
h3 { font-size: clamp(1.125rem, 2vw, 1.375rem); }
p { margin: 0 0 1rem; }
:focus-visible { outline: 3px solid #F6B91B; outline-offset: 3px; }
.gns-container { width: min(100% - 2rem, var(--gns-max)); margin-inline: auto; }
.gns-container--wide { max-width: 1320px; }
.gns-main { min-height: 55vh; padding-block: var(--gns-space-section); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.gns-skip-link { position: fixed; z-index: 9999; top: .75rem; left: .75rem; padding: .65rem 1rem; color: var(--gns-white); background: var(--gns-blue); transform: translateY(-180%); }
.gns-skip-link:focus { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (min-width: 900px) {
  .gns-container--wide { width: calc(100% - 4rem); }
}
