@font-face {
    font-family: "Inter";
    src: url("../assets/fonts/inter/Inter_18pt-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../assets/fonts/inter/Inter_18pt-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../assets/fonts/inter/Inter_18pt-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../assets/fonts/inter/Inter_18pt-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../assets/fonts/inter/Inter_18pt-Italic.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Manrope";
    src: url("../assets/fonts/manrope/Manrope-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Manrope";
    src: url("../assets/fonts/manrope/Manrope-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Manrope";
    src: url("../assets/fonts/manrope/Manrope-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Manrope";
    src: url("../assets/fonts/manrope/Manrope-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    font-size: 100%;
    --font-display: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-heading: "Manrope", Arial, Helvetica, sans-serif;
    --font-body: "Inter", Arial, Helvetica, sans-serif;
    --font-ui: var(--font-body);
    --text-page-title: clamp(3.388rem, calc(3.09rem + 1.273vw), 4.235rem);
    --text-section-heading: clamp(2.617rem, calc(2.346rem + 1.158vw), 3.388rem);
    --text-subsection-heading: clamp(2rem, calc(1.783rem + 0.927vw), 2.617rem);
    --text-component-heading: 1.618rem;
    --text-lead: 1.25rem;
    --text-body: 1rem;
    --text-small: 0.875rem;
    --text-caption: 0.75rem;
    --color-brand-50: #f1f7fc;
    --color-brand-100: #e2eff9;
    --color-brand-200: #c7dff2;
    --color-brand-600: #1f659f;
    --color-brand-700: #0e4b88;
    --color-brand-800: #0c3e70;
    --color-brand-900: #0a3159;
    --color-brand-950: #071d35;
    --color-neutral-0: #ffffff;
    --color-neutral-50: #f4f5f7;
    --color-neutral-100: #eef1f5;
    --color-neutral-200: #e5e7eb;
    --color-neutral-300: #cbd5e1;
    --color-neutral-400: #8d96a3;
    --color-neutral-500: #667085;
    --color-neutral-600: #475569;
    --color-neutral-700: #343d4a;
    --color-neutral-800: #192536;
    --color-neutral-950: #07101d;
    --color-accent-soft: #fff8d8;
    --color-accent: #ffd75b;
    --color-on-accent: #07101d;
    --color-canvas: var(--color-neutral-0);
    --color-surface: var(--color-neutral-0);
    --color-surface-subtle: var(--color-neutral-50);
    --color-surface-brand-soft: var(--color-brand-50);
    --color-surface-inverse: var(--color-brand-950);
    --color-text-primary: var(--color-neutral-950);
    --color-text-secondary: var(--color-neutral-600);
    --color-text-muted: var(--color-neutral-500);
    --color-text-inverse: var(--color-neutral-0);
    --color-border-subtle: var(--color-neutral-200);
    --color-border-strong: var(--color-neutral-300);
    --color-action-primary: var(--color-brand-700);
    --color-action-primary-hover: var(--color-brand-800);
    --color-action-primary-active: var(--color-brand-900);
    --color-link: var(--color-brand-700);
    --color-focus-on-light: #2c76f3;
    --color-focus-on-dark: var(--color-neutral-0);
    --color-success: #18794e;
    --color-success-soft: #e6f4ea;
    --color-warning: #8a5a00;
    --color-danger: #b42318;
    --color-danger-soft: #fff1f0;
    --space-0: 0;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --space-28: 7rem;
    --space-32: 8rem;
    --space-inline-icon: var(--space-2);
    --space-control-y: var(--space-3);
    --space-control-x: var(--space-4);
    --space-stack-tight: var(--space-2);
    --space-stack: var(--space-4);
    --space-stack-loose: var(--space-6);
    --space-card: var(--space-6);
    --space-grid: var(--space-6);
    --space-section: clamp(4rem, calc(2.94rem + 4.52vw), 7rem);
    --page-gutter: clamp(1rem, calc(0.45rem + 2.35vw), 5rem);
    --container-reading: 70ch;
    --container-content: 75rem;
    --container-wide: 90rem;
    --radius-none: 0;
    --radius-xs: 0.125rem;
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --shadow-raised: 0 1.25rem 3.125rem rgba(7, 16, 29, 0.18);
    --shadow-action: 0 0.875rem 1.75rem rgba(14, 75, 136, 0.16);
    --duration-instant: 80ms;
    --duration-fast: 140ms;
    --duration-normal: 220ms;
    --duration-slow: 360ms;
    --ease-standard: cubic-bezier(0.2, 0, 0, 1);
    --ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-exit: cubic-bezier(0.4, 0, 1, 1);
    --footer-bg: #111111;
    --footer-text: #e8edf0;
    --footer-muted: #c5cbd0;
    --footer-rule: rgba(232, 237, 240, 0.14);
    --site-content-width: 95rem;
}

* {
    box-sizing: border-box;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--text-body);
    line-height: 1.618;
    font-weight: 400;
    background: #ffffff;
    color: #1f262a;
}

img,
svg {
    max-width: 100%;
}

.page-main {
    overflow-x: clip;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-display);
}

p,
address,
a,
li,
td,
th,
button,
input,
select,
textarea {
    font-family: var(--font-ui);
}

.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;
}

/* High Contrast Mode: protected regions (header, hero, footer keep their normal look) */
body.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode .site-header,
body.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode .hero-section {
    background-color: #f4f5f7 !important;
    color: #07111f !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

body.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode .site-footer {
    background-color: var(--footer-bg) !important;
    color: var(--footer-text) !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

body.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode.acc-high-contrast-mode .site-footer a {
    color: var(--footer-muted) !important;
    background-color: transparent !important;
}
