html {
  scroll-behavior: smooth;
  scroll-padding-top: 96px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--rich-onyx);
  background: var(--bone-cream);
}

/* Typography */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--deju-forest);
  letter-spacing: -0.01em;
}
h1 { font-size: clamp(48px, 8vw, 88px); line-height: 1.05; letter-spacing: -0.02em; }
h2 { font-size: clamp(36px, 5vw, 60px); line-height: 1.1; letter-spacing: -0.015em; }
h3 { font-size: clamp(28px, 3.5vw, 40px); line-height: 1.15; }
h4 { font-size: clamp(22px, 2vw, 28px); line-height: 1.25; }

p { font-size: 17px; line-height: 1.65; }
.lead {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.5vw, 32px);
  line-height: 1.4;
  color: var(--rich-onyx);
}
.body-lg { font-size: 20px; line-height: 1.55; }
.small { font-size: 14px; line-height: 1.6; }
.eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brass);
}

/* Layout primitives */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.container-narrow { width: 100%; max-width: var(--container-narrow); margin-inline: auto; padding-inline: var(--gutter); }

section { padding-block: var(--space-10); }
@media (max-width: 768px) {
  section { padding-block: var(--space-9); }
}

.surface-cream { background: var(--bone-cream); }
.surface-bone { background: var(--pure-bone); }
.surface-forest { background: var(--deju-forest); color: var(--bone-cream); }
.surface-forest h1, .surface-forest h2, .surface-forest h3, .surface-forest h4 { color: var(--bone-cream); }
.surface-forest .eyebrow { color: var(--brass-soft); }

/* Skip link */
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--space-4);
  background: var(--deju-forest);
  color: var(--bone-cream);
  padding: var(--space-3) var(--space-5);
  z-index: 1000;
  transition: top 200ms var(--ease);
}
.skip-link:focus { top: var(--space-4); }

/* Focus state */
:focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 2px;
}

/* Utilities */
.stack > * + * { margin-top: var(--space-5); }
.stack-lg > * + * { margin-top: var(--space-7); }
.text-center { text-align: center; }
.divider-brass { border: 0; border-top: 1px solid var(--brass); margin-block: var(--space-5); }
