/* Shared foundation and design tokens. No build step or external dependency. */
:root {
  --color-bg: #f3efe7;
  --color-surface: #faf8f3;
  --color-primary: #15372f;
  --color-text: #20231f;
  --color-muted: #66665f;
  --color-accent: #925a35;
  --color-accent-dark: #754325;
  --color-sage: #dde3d7;
  --color-border: #d6cec1;
  --font-display: Georgia, "Times New Roman", serif;
  --font-body: Arial, Helvetica, sans-serif;
  --container-max: 1180px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --section-space: clamp(5rem, 8vw, 8.5rem);
  --radius: 8px;
  --transition: 180ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: var(--color-bg); color: var(--color-text); font-family: var(--font-body); font-size: 1rem; line-height: 1.65; }
body.nav-open { overflow: hidden; }
img { display: block; width: 100%; height: auto; }
figure, p, h1, h2, h3 { margin-top: 0; }
figure { margin: 0; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
ul, ol { margin: 0; padding: 0; }

h1, h2, h3 { color: var(--color-primary); font-family: var(--font-display); font-weight: 400; line-height: 1.04; text-wrap: balance; }
h1 { font-size: clamp(3.15rem, 15vw, 5.5rem); letter-spacing: -.045em; }
h2 { font-size: clamp(2.35rem, 10vw, 4rem); letter-spacing: -.035em; }
h3 { font-size: 1.25rem; }
p { max-width: 65ch; }
.container { width: min(100% - (2 * var(--gutter)), var(--container-max)); margin-inline: auto; }
.eyebrow { margin-bottom: .75rem; color: var(--color-accent); font-size: .76rem; font-weight: 700; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: .65rem; padding: .72rem 1.35rem; border: 1px solid transparent; border-radius: var(--radius); font-size: .9rem; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none; transition: background-color var(--transition), border-color var(--transition), color var(--transition), transform var(--transition); }
.button--primary { background: var(--color-accent); color: #fffaf3; }
.button--secondary { border-color: var(--color-accent); background: transparent; color: var(--color-primary); }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.button-row .button { flex: 1 1 10rem; }
.skip-link { position: fixed; z-index: 1000; top: .75rem; left: .75rem; padding: .75rem 1rem; transform: translateY(-160%); border-radius: .25rem; background: var(--color-primary); color: #fff; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #c67a45; outline-offset: 3px; }

@media (hover: hover) {
  .button--primary:hover { background: var(--color-accent-dark); transform: translateY(-1px); }
  .button--secondary:hover { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
