:root {
  --color-bg: #f4f7f2;
  --color-bg-soft: #e8efe9;
  --color-surface: #ffffff;
  --color-surface-strong: #dce8df;
  --color-text: #13211d;
  --color-muted: #50635d;
  --color-border: #bdcbc4;
  --color-brand: #0d7057;
  --color-brand-strong: #07503f;
  --color-cyan: #147d8f;
  --color-green: #0d7057;
  --color-warm: #b9512b;
  --max-width: 1180px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --shadow-glow: 0 18px 44px rgba(19, 33, 29, 0.1);
  --font-sans: "Avenir Next", Avenir, "Century Gothic", sans-serif;
  --font-display: "Iowan Old Style", "Palatino Linotype", Palatino, serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--color-text);
  background-color: var(--color-bg);
  background-image:
    linear-gradient(rgba(13, 112, 87, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13, 112, 87, 0.035) 1px, transparent 1px);
  background-size: 40px 40px;
  line-height: 1.6;
  min-height: 100vh;
}

a { color: inherit; text-decoration: none; }

p, h1, h2, h3 { margin-top: 0; }

h1, h2, h3 { letter-spacing: 0; line-height: 1.08; }

h1, h2 { font-family: var(--font-display); font-weight: 700; }

h1 { font-size: 4.6rem; max-width: 760px; margin-bottom: 1rem; }

h2 { font-size: 3.25rem; margin-bottom: 1rem; }

h3 { font-size: 1.35rem; margin-bottom: 0.75rem; }

p { color: var(--color-muted); }

ul, ol { margin: 0; padding: 0; }

li { list-style: none; }

::selection { background: #b8dfd1; color: var(--color-text); }

.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  transform: translateY(-180%);
  background: var(--color-text);
  color: var(--color-bg);
  padding: 0.8rem 1rem;
  border-radius: var(--radius-sm);
  z-index: 1000;
  transition: transform 180ms ease;
}

.skip-link:focus { transform: translateY(0); }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-green);
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.eyebrow::before {
  content: "";
  width: 0.52rem;
  height: 0.52rem;
  border-radius: 1px;
  background: currentColor;
}
