:root {
	/* VR brand foundation */
	--vp-color-white: #ffffff;
	--vp-color-ultramarine: #002d67;
	--vp-color-blue: #0066b3;
	--vp-color-orange: #ff6600;
	--vp-color-web-orange: #f35e01;

	/* Semantic brand aliases. Core may override these per tenant. */
	--vp-bank-primary: var(--vp-color-blue);
	--vp-bank-deep: var(--vp-color-ultramarine);
	--vp-bank-accent: var(--vp-color-web-orange);

	/* Surfaces derived from the VR 2027 reference screens. */
	--vp-color-bg: #f5f7f7;
	--vp-color-surface: #ffffff;
	--vp-color-surface-subtle: #f3f8f7;
	--vp-color-surface-muted: #f7f9f9;
	--vp-color-surface-selected: #eaf4fa;
	--vp-color-surface-deep: var(--vp-bank-deep);

	/* Text */
	--vp-color-text: #363936;
	--vp-color-text-strong: #222522;
	--vp-color-text-muted: #626865;
	--vp-color-text-soft: #78807c;
	--vp-color-text-on-dark: #ffffff;
	--vp-color-link: var(--vp-bank-primary);

	/* Borders */
	--vp-color-border: #e0e6e5;
	--vp-color-border-strong: #cbd5d3;

	/* Interaction */
	--vp-color-action: var(--vp-bank-primary);
	--vp-color-action-hover: #005895;
	--vp-color-action-active: #004a7e;
	--vp-focus-ring-color: rgb(0 102 179 / 32%);
	--vp-focus-ring: 0 0 0 3px var(--vp-focus-ring-color);

	/* Status */
	--vp-status-info: #005a9c;
	--vp-status-info-bg: #eaf4fb;
	--vp-status-success: #0b6b53;
	--vp-status-success-bg: #e9f6f2;
	--vp-status-warning: #735000;
	--vp-status-warning-bg: #fff5dc;
	--vp-status-danger: #a61b12;
	--vp-status-danger-bg: #fdecea;
	--vp-status-neutral: #505a61;
	--vp-status-neutral-bg: #eef1f3;

	/* Typography: GenosGFG is the VR brand typeface. Font files are not bundled. */
	--vp-font-family: "GenosGFG", "Frutiger Neue", Frutiger, Arial, sans-serif;
	--vp-font-weight-regular: 400;
	--vp-font-weight-medium: 600;
	--vp-font-weight-bold: 700;
	--vp-font-size-xs: 0.8125rem;
	--vp-font-size-sm: 0.875rem;
	--vp-font-size-md: 1rem;
	--vp-font-size-lg: 1.125rem;
	--vp-font-size-xl: clamp(1.25rem, 1.13rem + 0.42vw, 1.5rem);
	--vp-font-size-2xl: clamp(1.5rem, 1.3rem + 0.7vw, 1.875rem);
	--vp-font-size-page: clamp(1.85rem, 1.48rem + 1.12vw, 2.5rem);
	--vp-line-height-tight: 1.14;
	--vp-line-height-heading: 1.22;
	--vp-line-height-body: 1.52;

	/* Spacing: 4px base system */
	--vp-space-1: 0.25rem;
	--vp-space-2: 0.5rem;
	--vp-space-3: 0.75rem;
	--vp-space-4: 1rem;
	--vp-space-5: 1.5rem;
	--vp-space-6: 2rem;
	--vp-space-7: 2.5rem;
	--vp-space-8: 3rem;
	--vp-space-9: 4rem;
	--vp-space-10: 5rem;
	--vp-space-11: 6rem;

	/* Layout */
	--vp-container-max: 80rem;
	--vp-content-max: 47.5rem;
	--vp-gutter: 1rem;
	--vp-header-main-height: 4rem;

	/* Radius */
	--vp-radius-sm: 0.375rem;
	--vp-radius-md: 0.625rem;
	--vp-radius-lg: 0.875rem;
	--vp-radius-xl: 1.25rem;
	--vp-radius-2xl: 1.5rem;
	--vp-radius-pill: 999px;

	/* Shadows: intentionally restrained. */
	--vp-shadow-sm: 0 1px 2px rgb(0 45 103 / 5%), 0 2px 8px rgb(0 45 103 / 4%);
	--vp-shadow-md: 0 10px 32px rgb(0 45 103 / 9%);
	--vp-shadow-header: 0 8px 26px rgb(0 45 103 / 8%);

	/* Motion */
	--vp-duration-fast: 140ms;
	--vp-duration-base: 220ms;
	--vp-ease: cubic-bezier(0.2, 0, 0, 1);
}

@media (min-width: 48rem) {
	:root { --vp-gutter: 1.5rem; }
}

@media (min-width: 64rem) {
	:root {
		--vp-gutter: 2rem;
		--vp-header-main-height: 4.5rem;
	}
}
