:root {
  --font-display-site: "Outfit", sans-serif;
  --font-body-site: "Outfit", sans-serif;
  --step--1: .9rem;
  --step-0: 1.06rem;
  --step-1: 1.4rem;
  --step-2: 1.9rem;
  --step-3: clamp(2.2rem, 4.5vw, 3rem);
  --section-space: clamp(4rem, 7vw, 6rem);
  --card-radius: 24px;
  --image-radius: 16px;
  --input-radius: 12px;
  --pill-radius: 9999px;
  --flat-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--color-background);
  color: var(--color-text-primary);
  font-family: var(--font-body-site);
  font-size: 17px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
h1, h2, h3 { font-family: var(--font-display-site); line-height: 1.12; text-wrap: balance; }
h1 { font-size: var(--step-3); font-weight: 700; letter-spacing: -.025em; }
h2 { font-size: var(--step-2); font-weight: 700; letter-spacing: -.018em; }
h3 { font-size: var(--step-1); font-weight: 650; }
p { text-wrap: pretty; }
small, .text-small { font-size: var(--step--1); }
.prose-measure { max-width: 68ch; }
.section-space { padding-block: var(--section-space); }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  color: var(--color-primary-dark);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 1.5rem; height: 1px; background: var(--color-primary); }
.margin-marker { position: relative; }
.margin-marker::before {
  content: "";
  position: absolute;
  left: max(1rem, calc((100vw - 80rem) / 2));
  top: var(--section-space);
  width: 2px;
  height: 2.75rem;
  background: var(--color-primary);
  border-radius: var(--pill-radius);
}
.card-soft {
  border: 1px solid rgba(120, 0, 0, .12);
  border-radius: var(--card-radius);
  box-shadow: var(--flat-shadow);
  transition: transform .2s ease, border-color .2s ease;
}
.card-soft:hover { transform: translateY(-2px); border-color: rgba(120, 0, 0, .26); }
.image-rounded { border-radius: var(--image-radius); }
.btn-primary, .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 3rem;
  padding: .72rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--pill-radius);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}
.btn-primary { background: var(--color-primary-dark); color: white; }
.btn-primary:hover { background: var(--color-primary); transform: scale(1.02); }
.btn-secondary { border-color: var(--color-primary-dark); color: var(--color-primary-dark); background: transparent; }
.btn-secondary:hover { background: rgba(120,0,0,.06); transform: scale(1.02); }
.form-control {
  width: 100%;
  border: 1px solid rgba(40,10,11,.25);
  border-radius: var(--input-radius);
  background: #fffafc;
  padding: .78rem .9rem;
  color: var(--color-text-primary);
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.form-control:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(155,42,66,.12); }
label { font-weight: 650; }
.logo-mark { width: 2.5rem; height: 2.5rem; border-radius: 12px; object-fit: contain; }
.nav-link { color: var(--color-text-primary); font-weight: 600; text-decoration: none; transition: color .18s ease; }
.nav-link:hover, .footer-link:hover { color: var(--color-primary-dark); }
.utility-link { color: inherit; text-decoration: none; }
.hero-image { width: 100%; max-height: 34rem; object-fit: cover; border-radius: var(--image-radius); }
.numeric { font-variant-numeric: tabular-nums; }
.cookie-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 60;
  display: none;
  max-width: 58rem;
  margin-inline: auto;
  padding: 1rem;
  border: 1px solid rgba(40,10,11,.14);
  border-radius: var(--card-radius);
  background: #fffafc;
  box-shadow: 0 12px 30px rgba(40,10,11,.12);
}
.cookie-banner.is-visible { display: block; }
.confirmation { display: none; }
.confirmation.is-visible { display: block; }
.footer-link { color: var(--color-text-secondary); text-decoration: none; transition: color .18s ease; }
.legal-copy h2 { margin-top: 2.5rem; }
.legal-copy h3 { margin-top: 1.75rem; }
.legal-copy p, .legal-copy ul { margin-top: .8rem; }
.legal-copy ul { padding-left: 1.25rem; list-style: disc; }
@media (max-width: 767px) {
  .margin-marker::before { left: .45rem; }
  .mobile-menu { display: none; }
  .mobile-menu.is-open { display: flex; }
}
@media (min-width: 768px) { .mobile-menu { display: flex !important; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
