html { scroll-behavior: smooth; }
body {
  background: var(--ivory-50);
  color: var(--charcoal);
  font-family: var(--font-main);
  font-size: 16px;
  line-height: 1.6;
}
body.no-scroll { overflow: hidden; }
p { margin: 0 0 1rem; }
h1, h2, h3 { color: var(--green-950); line-height: 1.08; margin: 0 0 1rem; letter-spacing: 0; }
h1 { font-size: 56px; max-width: 760px; }
h2 { font-size: 40px; }
h3 { font-size: 22px; }
address { font-style: normal; margin: 1rem 0; color: var(--green-800); }
.container { width: min(100% - 40px, var(--container)); margin-inline: auto; }
.narrow { max-width: 820px; }
.eyebrow {
  color: var(--gold-700);
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 0.8rem;
  text-transform: uppercase;
}
.button {
  align-items: center;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  display: inline-flex;
  font-weight: 800;
  gap: 0.5rem;
  justify-content: center;
  min-height: 46px;
  overflow: hidden;
  padding: 0.75rem 1.15rem;
  position: relative;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;
}
.button::after {
  background: rgba(255,255,255,0.2);
  content: "";
  height: 140%;
  left: -120%;
  position: absolute;
  top: -20%;
  transform: rotate(18deg);
  transition: left 260ms ease;
  width: 42%;
}
.button:hover::after { left: 120%; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--green-900); color: var(--ivory-50); box-shadow: var(--shadow-card); }
.button-primary:hover { background: var(--green-700); }
.button-secondary { background: rgba(255,255,255,0.7); border-color: var(--gold-600); color: var(--green-900); }
.button-secondary:hover { background: var(--ivory-100); }
.button-small { min-height: 40px; padding: 0.55rem 0.95rem; }
.button-row { align-items: center; display: flex; flex-wrap: wrap; gap: 0.85rem; }
.text-link, .card-link {
  color: var(--green-800);
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: var(--gold-600);
  text-underline-offset: 0.25em;
}
:focus-visible {
  outline: 3px solid var(--gold-600);
  outline-offset: 3px;
}
.skip-link {
  background: var(--green-950);
  color: var(--white);
  left: 1rem;
  padding: 0.75rem 1rem;
  position: fixed;
  top: 1rem;
  transform: translateY(-140%);
  z-index: 2000;
}
.skip-link:focus { transform: translateY(0); }
.legal-note, .static-notice {
  color: var(--muted);
  font-size: 0.95rem;
}
.field-error {
  color: var(--danger);
  display: block;
  font-size: 0.87rem;
  min-height: 1.2rem;
}

