:root {
  --earthy-green: #09493c;
  --earthy-green-2: #0f5b4c;
  --burnt-orange: #D95E1F;
  --burnt-orange-dark: #B94F18;
  --stone: #f5f5f0;
  --stone-dark: #ecece4;
  --slate-grey: #3e3e3e;
  --muted: #6f6f6f;
  --white: #ffffff;
  --shadow: 0 18px 42px rgba(9, 35, 30, 0.11);
  --shadow-soft: 0 8px 22px rgba(9, 35, 30, 0.055);
  --shadow-hairline: 0 1px 0 rgba(9, 73, 60, 0.06);
  --radius: 18px;
  --max-width: 1120px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Inter", sans-serif;
  color: var(--slate-grey);
  background:
    radial-gradient(circle at top right, rgba(217, 94, 31, 0.08), transparent 20%),
    linear-gradient(to bottom, #f8f8f3 0%, var(--stone) 35%, #f7f7f1 100%);
  line-height: 1.7;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--burnt-orange);
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  left: 12px;
  top: -48px;
  z-index: 1100;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--earthy-green);
  font-weight: 700;
  text-decoration: none;
  box-shadow: var(--shadow-soft);
}
.skip-link:focus { top: 12px; }

.file-meta {
  margin-left: 0.25rem;
  font-size: 0.86em;
  font-weight: 700;
  opacity: 0.78;
}

.map-fallback,
.table-status {
  padding: 26px;
  text-align: center;
  color: var(--muted);
}

.map-fallback {
  display: none;
  background: var(--white);
  border-top: 1px solid rgba(9, 73, 60, 0.08);
}

.map-card.has-map-error #route-map {
  display: none;
}

.map-card.has-map-error .map-fallback {
  display: block;
}

.privacy-list {
  display: grid;
  gap: 16px;
  max-width: 840px;
  margin: 0 auto;
}

.privacy-list article {
  padding: 24px;
  border-radius: 18px;
  background: var(--white);
  border: 1px solid rgba(9, 73, 60, 0.08);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
}

.privacy-list h3 {
  margin: 0 0 8px;
  color: var(--earthy-green);
}

.privacy-list p {
  margin: 0;
}

footer .privacy-link {
  color: var(--earthy-green);
  font-weight: 800;
  text-decoration: none;
}

footer .privacy-link:hover {
  color: var(--burnt-orange-dark);
}

.footer-privacy {
  margin: 14px 0 0;
}
