html {
	font-size: 16px;
	overflow-x: clip;
	scroll-behavior: smooth;
}

body {
	overflow-x: clip;
	color: var(--xg-ink);
	background: var(--xg-white);
	font-family: var(--xg-font-sans);
	font-size: var(--xg-body);
	line-height: 1.68;
	text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea {
	font-family: var(--xg-font-sans);
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
	color: var(--xg-navy);
	font-family: var(--xg-font-sans);
	font-weight: 760;
	letter-spacing: -0.025em;
}

body a {
	text-decoration-thickness: 0.09em;
	text-underline-offset: 0.2em;
}

body :focus-visible {
	outline: 3px solid var(--xg-lime);
	outline-offset: 3px;
}

.screen-reader-text:focus,
.skip-link:focus {
	z-index: 100000;
}

.xg-icon {
	display: inline-block;
	width: 1.25em;
	height: 1.25em;
	flex: 0 0 auto;
	color: currentcolor;
	vertical-align: -0.2em;
}

.xg-shell {
	width: var(--xg-shell);
	margin-inline: auto;
}

.xg-section {
	padding-block: clamp(4.5rem, 8vw, 8rem);
}

.xg-section-heading {
	max-width: 48rem;
	margin-bottom: clamp(2rem, 4vw, 3.75rem);
}

.xg-section-heading h2 {
	margin: 0 0 1rem;
	font-size: var(--xg-h2);
	line-height: 1.05;
}

.xg-section-heading > :last-child,
.xg-section-heading p {
	margin-bottom: 0;
	color: var(--xg-muted);
}

.xg-eyebrow {
	margin: 0 0 0.8rem;
	color: var(--xg-teal);
	font-size: 0.77rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
}

.xg-lead {
	color: #334960;
	font-size: clamp(1.08rem, 1rem + 0.4vw, 1.35rem);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
