:root {
	--color-neutral-0: var(--wp--preset--color--white);
	--color-neutral-50: var(--wp--preset--color--neutral-50);
	--color-neutral-100: var(--wp--preset--color--neutral-100);
	--color-neutral-200: var(--wp--preset--color--neutral-200);
	--color-neutral-300: var(--wp--preset--color--neutral-300);
	--color-neutral-400: var(--wp--preset--color--neutral-400);
	--color-neutral-500: var(--wp--preset--color--neutral-500);
	--color-neutral-600: var(--wp--preset--color--neutral-600);
	--color-neutral-700: var(--wp--preset--color--neutral-700);
	--color-neutral-800: var(--wp--preset--color--neutral-800);
	--color-neutral-900: var(--wp--preset--color--neutral-900);
	--color-neutral-1000: var(--wp--preset--color--black);

	--color-blue-50: var(--wp--preset--color--blue-50);
	--color-blue-100: var(--wp--preset--color--blue-100);
	--color-blue-200: var(--wp--preset--color--blue-200);
	--color-blue-300: var(--wp--preset--color--blue-300);
	--color-blue-400: var(--wp--preset--color--blue-400);
	--color-blue-500: var(--wp--preset--color--blue-500);
	--color-blue-600: var(--wp--preset--color--blue-600);
	--color-blue-700: var(--wp--preset--color--blue-700);
	--color-blue-800: var(--wp--preset--color--blue-800);
	--color-blue-900: var(--wp--preset--color--blue-900);

	--color-sage-50: var(--wp--preset--color--sage-50);
	--color-sage-100: var(--wp--preset--color--sage-100);
	--color-sage-200: var(--wp--preset--color--sage-200);
	--color-sage-300: var(--wp--preset--color--sage-300);
	--color-sage-400: var(--wp--preset--color--sage-400);
	--color-sage-500: var(--wp--preset--color--sage-500);
	--color-sage-600: var(--wp--preset--color--sage-600);
	--color-sage-700: var(--wp--preset--color--sage-700);
	--color-sage-800: var(--wp--preset--color--sage-800);
	--color-sage-900: var(--wp--preset--color--sage-900);

	--color-amber-300: var(--wp--preset--color--amber-300);
	--color-amber-400: var(--wp--preset--color--amber-400);
	--color-amber-500: var(--wp--preset--color--amber-500);
	--color-amber-600: var(--wp--preset--color--amber-600);

	--color-brand-blue: var(--wp--preset--color--brand-blue);
	--color-brand-navy: var(--wp--preset--color--navy);
	--color-brand-black: var(--wp--preset--color--black);

	--color-success: var(--wp--preset--color--sage-500);
	--color-success-light: var(--wp--preset--color--sage-100);
	--color-warning: var(--wp--preset--color--amber-600);
	--color-warning-light: var(--wp--preset--color--warning-light);
	--color-error: var(--wp--preset--color--error);
	--color-error-light: var(--wp--preset--color--error-light);
	--color-info: var(--wp--preset--color--blue-500);
	--color-info-light: var(--wp--preset--color--blue-100);

	--color-bg-primary: var(--color-neutral-0);
	--color-bg-secondary: var(--color-neutral-50);
	--color-bg-tertiary: var(--color-neutral-100);
	--color-bg-dark: var(--color-blue-900);
	--color-bg-accent: var(--color-blue-300);

	--color-text-primary: var(--color-neutral-900);
	--color-text-secondary: var(--color-neutral-600);
	--color-text-muted: var(--color-neutral-600);
	--color-text-inverse: var(--color-neutral-0);
	--color-text-link: var(--color-blue-600);
	--color-text-link-hover: var(--color-blue-700);

	--color-border-light: var(--color-neutral-200);
	--color-border-base: var(--color-neutral-300);
	--color-border-dark: var(--color-neutral-400);
	--color-border-focus: var(--color-blue-600);

	--color-cta-bg: var(--color-blue-900);
	--color-cta-text: var(--color-neutral-0);
	--color-cta-hover: var(--color-blue-800);

	--font-heading: var(--wp--preset--font-family--body);
	--font-body: var(--wp--preset--font-family--body);

	--fw-regular: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;
	--fw-extrabold: 800;

	--text-hero: var(--wp--preset--font-size--hero);
	--text-h1: var(--wp--preset--font-size--h1);
	--text-h2: var(--wp--preset--font-size--h2);
	--text-h3: var(--wp--preset--font-size--h3);
	--text-h4: var(--wp--preset--font-size--h4);
	--text-h5: var(--wp--preset--font-size--h5);
	--text-h6: var(--wp--preset--font-size--h6);
	--text-body-lg: var(--wp--preset--font-size--body-lg);
	--text-body: var(--wp--preset--font-size--body);
	--text-small: var(--wp--preset--font-size--small);
	--text-caption: var(--wp--preset--font-size--caption);
	--text-sm: var(--wp--preset--font-size--small);

	--leading-tight: var(--wp--custom--leading--tight);
	--leading-snug: var(--wp--custom--leading--snug);
	--leading-normal: var(--wp--custom--leading--normal);
	--leading-relaxed: var(--wp--custom--leading--relaxed);

	--tracking-wide: var(--wp--custom--tracking--wide);
	--tracking-wider: var(--wp--custom--tracking--wider);
	--tracking-widest: var(--wp--custom--tracking--widest);

	--space-1: var(--wp--preset--spacing--1);
	--space-2: var(--wp--preset--spacing--2);
	--space-3: var(--wp--preset--spacing--3);
	--space-4: var(--wp--preset--spacing--4);
	--space-5: var(--wp--preset--spacing--5);
	--space-6: var(--wp--preset--spacing--6);
	--space-8: var(--wp--preset--spacing--8);
	--space-10: var(--wp--preset--spacing--10);
	--space-12: var(--wp--preset--spacing--12);
	--space-16: var(--wp--preset--spacing--16);
	--space-20: var(--wp--preset--spacing--20);
	--space-24: var(--wp--preset--spacing--24);
	--space-32: var(--wp--preset--spacing--32);

	--container-sm: var(--wp--custom--container--sm);
	--container-md: var(--wp--custom--container--md);
	--container-lg: var(--wp--custom--container--lg);
	--container-xl: var(--wp--custom--container--xl);
	--container-pad: var(--space-6);

	--radius-sm: var(--wp--custom--radius--sm);
	--radius-base: var(--wp--custom--radius--base);
	--radius-md: var(--wp--custom--radius--md);
	--radius-lg: var(--wp--custom--radius--lg);
	--radius-xl: var(--wp--custom--radius--xl);
	--radius-full: var(--wp--custom--radius--full);

	--shadow-sm: var(--wp--custom--shadow--sm);
	--shadow-md: var(--wp--custom--shadow--md);
	--shadow-lg: var(--wp--custom--shadow--lg);
	--shadow-xl: var(--wp--custom--shadow--xl);
	--shadow-navy: var(--wp--custom--shadow--navy);

	--transition-fast: var(--wp--custom--transition--fast);
	--transition-base: var(--wp--custom--transition--base);
	--transition-slow: var(--wp--custom--transition--slow);

	--z-sticky: var(--wp--custom--z--sticky);
	--z-overlay: var(--wp--custom--z--overlay);
	--z-modal: var(--wp--custom--z--modal);
}

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

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--text-body);
	line-height: var(--leading-normal);
	color: var(--color-text-primary);
	background: var(--color-bg-primary);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

:where(a) {
	color: var(--color-text-link);
	text-underline-offset: 0.15em;
}

:where(a):hover {
	color: var(--color-text-link-hover);
}

:where(button, [type="button"], [type="submit"]) {
	font: inherit;
}

:focus-visible {
	outline: 3px solid var(--color-border-focus);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}

:target {
	scroll-margin-top: var(--space-24);
}

html {
	scroll-padding-top: var(--space-24);
}

.container {
	width: 100%;
	max-width: var(--container-xl);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	left: var(--space-2);
	top: var(--space-2);
	z-index: var(--z-modal);
	padding: var(--space-3) var(--space-4);
	background: var(--color-bg-dark);
	color: var(--color-text-inverse);
	border-radius: var(--radius-base);
	transform: translateY(-200%);
}

.skip-link:focus {
	transform: translateY(0);
}

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