*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-ink); background: var(--color-surface); font-family: var(--font-body); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4 { margin: 0 0 .65em; color: var(--color-ink); font-family: var(--font-display); line-height: 1.08; letter-spacing: -.035em; }
h1 { font-size: clamp(2.8rem, 6vw, 5.4rem); font-weight: 600; }
h2 { font-size: clamp(2.1rem, 4vw, 3.6rem); font-weight: 600; }
h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); font-weight: 600; }
p { margin: 0 0 1.25em; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: clamp(80px, 10vw, 138px) 0; }
.section--soft { background: var(--color-surface-soft); }
.section-heading { max-width: 760px; margin: 0 auto clamp(42px, 6vw, 72px); text-align: center; }
.section-heading > p:last-child { color: var(--color-muted); font-size: 1.08rem; }
.section-heading--left { margin-inline: 0; text-align: left; }
.section-heading--light h2, .section-heading--light p { color: #fff; }
.eyebrow { margin-bottom: 16px; color: var(--color-brand-dark); font-family: var(--font-display); font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.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; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 10px 16px; color: #fff; background: var(--color-navy); transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.content-shell { max-width: 820px; min-height: 50vh; }
:focus-visible { outline: 3px solid var(--color-brand); outline-offset: 4px; }
