/* KEMAY base layer: tokens, normalization, typography, and accessible defaults. */
:root {
	--kemay-navy: #101d3d;
	--kemay-blue: #1e6bff;
	--kemay-blue-dark: #1248bd;
	--kemay-ink: #17213b;
	--kemay-muted: #5b6781;
	--kemay-light: #f5f7fb;
	--kemay-border: #dce3ef;
	--kemay-radius: .75rem;
	--kemay-shadow: 0 .25rem 1rem rgba(16, 29, 61, .07);
	--kemay-content-width: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--kemay-ink); background: #fff; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
img, svg { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--kemay-blue-dark); text-underline-offset: .15em; }
a:hover, a:focus-visible { color: var(--kemay-blue); }
button, input, textarea, select { font: inherit; }
button, [role="button"] { cursor: pointer; }
h1, h2, h3, h4 { color: var(--kemay-navy); line-height: 1.15; }
.site-main { width: min(100% - 2.5rem, var(--kemay-content-width)); margin: 0 auto; padding: 2rem 0 4rem; }
.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; }
.screen-reader-text:focus, .skip-link:focus { position: fixed; top: .75rem; left: .75rem; z-index: 1000; width: auto; height: auto; padding: .65rem 1rem; margin: 0; overflow: visible; clip: auto; white-space: normal; color: var(--kemay-navy); background: #fff; border-radius: .35rem; box-shadow: var(--kemay-shadow); }
.alignwide { max-width: var(--kemay-content-width); margin-right: auto; margin-left: auto; }
.alignfull { width: 100%; }

@media (max-width: 640px) {
	.site-main { width: min(100% - 1.5rem, var(--kemay-content-width)); padding-top: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
