*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body.ah-body {
	margin: 0;
	min-height: 100vh;
	background: var(--ah-bg);
	color: var(--ah-text);
	font-family: var(--ah-font-body);
	font-size: var(--ah-text-base);
	line-height: var(--ah-leading-normal);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.ah-body img {
	max-width: 100%;
	display: block;
}

body.ah-body a {
	color: inherit;
	text-decoration: none;
}

body.ah-body a:hover:not(.ah-btn) {
	color: var(--ah-gold);
}

/* Keep button colors under control (do not inherit global link hover) */
body.ah-body a.ah-btn:hover,
body.ah-body a.ah-btn:focus-visible,
body.ah-body a.ah-btn:active {
	text-decoration: none;
}

body.ah-body :focus-visible {
	outline: 2px solid var(--ah-gold);
	outline-offset: 3px;
}

body.ah-body a:focus:not(:focus-visible),
body.ah-body button:focus:not(:focus-visible) {
	outline: none;
}

/* Stronger keyboard affordance on interactive chrome */
body.ah-body .ah-nav a:focus-visible,
body.ah-body .ah-mobile-nav a:focus-visible,
body.ah-body .ah-footer a:focus-visible,
body.ah-body .ah-footer__social a:focus-visible,
body.ah-body .ah-insights-filters__item:focus-visible,
body.ah-body .ah-nav-toggle:focus-visible,
body.ah-body .ah-contact-form__field input:focus-visible,
body.ah-body .ah-contact-form__field select:focus-visible,
body.ah-body .ah-contact-form__field textarea:focus-visible,
body.ah-body .ah-insight-card__link:focus-visible,
body.ah-body .ah-holdings-updates__item:focus-visible,
body.ah-body .ah-contact__channel:focus-visible {
	outline: 2px solid var(--ah-gold);
	outline-offset: 3px;
}

body.ah-body .ah-insight-card__link:focus-visible {
	outline-offset: -4px;
}

.ah-skip-link {
	position: absolute;
	left: var(--ah-gutter);
	top: -100px;
	z-index: 1000;
	padding: var(--ah-space-2) var(--ah-space-4);
	background: var(--ah-gold);
	color: var(--ah-on-gold);
	font-weight: 600;
	border-radius: var(--ah-radius-sm);
}

.ah-skip-link:focus,
.ah-skip-link:focus-visible {
	top: var(--ah-space-3);
	outline: 2px solid var(--ah-text);
	outline-offset: 3px;
}

.ah-container,
.ah-container--wide {
	width: min(100% - (var(--ah-gutter) * 2), var(--ah-container));
	margin-inline: auto;
}

.ah-section {
	padding-block: var(--ah-section-y);
}

.ah-eyebrow {
	margin: 0 0 0.85rem;
	color: var(--ah-gold);
	font-family: var(--ah-font-body);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.ah-heading {
	margin: 0;
	font-family: var(--ah-font-display);
	font-weight: 700;
	line-height: var(--ah-leading-tight);
	letter-spacing: -0.025em;
	color: var(--ah-text);
}

.ah-heading--xl {
	font-size: var(--ah-text-2xl);
}

.ah-heading--hero {
	font-size: var(--ah-text-3xl);
}

.ah-lead {
	margin: var(--ah-space-4) 0 0;
	max-width: 38rem;
	color: var(--ah-text-muted);
	font-size: var(--ah-text-md);
}

.ah-text-gold {
	color: var(--ah-gold);
}

.ah-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ah-site-main {
	padding-top: var(--ah-header-h);
}
