/* =========================================================
   BASE / RESET
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--color-cream); color: var(--color-ink); }
body { margin: 0; min-width: 320px; font-family: var(--font-sans); font-size: var(--text-base); line-height: 1.65; background: var(--color-cream); overflow-x: hidden; text-rendering: optimizeLegibility; }
body.is-locked { overflow: hidden; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--color-harvest); color: var(--color-ink); }
:focus-visible { outline: 3px solid var(--color-harvest); outline-offset: 4px; }

h1, h2, h3, h4, p, ul, ol, blockquote { margin-top: 0; }
h1, h2, h3, h4 { line-height: 1; color: var(--color-ink); }
h1, h2 { font-family: var(--font-display); text-transform: uppercase; letter-spacing: -0.055em; }
h3, h4 { font-weight: 800; letter-spacing: -0.025em; }
p { color: var(--color-ink-soft); }
ul, ol { padding-left: 1.2rem; }
address { font-style: normal; }

.skip-link { position: fixed; top: 0.75rem; left: 0.75rem; z-index: 999; transform: translateY(-150%); padding: 0.75rem 1rem; border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-ink); box-shadow: var(--shadow-sm); transition: transform var(--transition-fast); }
.skip-link:focus { transform: translateY(0); }

.site-main { min-height: 70vh; }
.container { width: min(calc(100% - 2.5rem), var(--container)); margin-inline: auto; }
.container--wide { width: min(calc(100% - 2.5rem), var(--container-wide)); margin-inline: auto; }
.section { position: relative; padding-block: var(--space-9); }
.section--tight { padding-block: var(--space-7); }
.section--dark { background: var(--color-ink); color: var(--color-cream); }
.section--dark h2, .section--dark h3, .section--dark p { color: inherit; }
.section--blue { background: var(--color-indigo); color: var(--color-white); }
.section--blue h2, .section--blue h3, .section--blue p { color: inherit; }
.section--orange { background: var(--color-orange); color: var(--color-ink); }
.section--paper { background: var(--color-paper); }
.section--green { background: var(--color-green-dark); color: var(--color-white); }
.section--green h2, .section--green h3, .section--green p { color: inherit; }

.grid { display: grid; gap: var(--space-6); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stack > * + * { margin-top: var(--space-5); }
.stack--sm > * + * { margin-top: var(--space-3); }

.eyebrow { display: inline-flex; align-items: center; gap: 0.65rem; margin-bottom: 1rem; font-size: var(--text-xs); font-weight: 900; text-transform: uppercase; letter-spacing: 0.18em; }
.eyebrow::before { content: ""; width: 2.7rem; height: 2px; background: currentColor; }
.display-title { max-width: 12ch; margin-bottom: var(--space-5); font-size: var(--text-2xl); }
.lead { max-width: 68ch; font-size: var(--text-lg); line-height: 1.5; }
.serif-accent { font-family: var(--font-serif); font-weight: 400; font-style: italic; text-transform: none; letter-spacing: -0.04em; }
.text-center { text-align: center; }
.text-orange { color: var(--color-orange); }
.text-harvest { color: var(--color-harvest); }
.text-white { color: var(--color-white); }
.muted { color: var(--color-muted); }

.hr { height: 1px; border: 0; background: var(--color-border); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
