/* Policy Bylines - shared styles
   Accent locked: deep emerald. Neutrals locked: stone family.
   Shape rule: sharp corners everywhere; full-pill ONLY for filter chips. */

:root {
  --accent: #0c6b47;
  --accent-strong: #095539;
  --accent-tint: #e9f3ee;
  --paper: #fbfaf7;
  --ink: #1c1b1a;
  --hairline: #e7e5e0;
}

@media (prefers-color-scheme: dark) {
  :root {
    --accent: #3aa57c;
    --accent-strong: #57bd94;
    --accent-tint: #152a21;
    --paper: #121311;
    --ink: #eceae6;
    --hairline: #2b2c29;
  }
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Inter Tight", system-ui, sans-serif;
  background-color: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

.font-display {
  font-family: "Cabinet Grotesk", "Inter Tight", system-ui, sans-serif;
}

::selection {
  background: var(--accent);
  color: #ffffff;
}

/* Scroll reveal: hierarchy/storytelling only. Collapses fully under reduced motion. */
@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .reveal.in-view {
    opacity: 1;
    transform: none;
  }
}

/* Tactile press feedback */
.btn-press:active {
  transform: translateY(1px);
}

/* Focus visibility (a11y) */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Directory table */
.outlet-row {
  transition: background-color 0.15s ease;
}
.outlet-row:hover {
  background-color: var(--accent-tint);
}
.outlet-row.is-hidden {
  display: none;
}

/* Article prose */
.prose-tts {
  font-size: 1.125rem;
  line-height: 1.85;
}
.prose-tts > *:first-child {
  margin-top: 0;
}
.prose-tts h2 {
  font-family: "Cabinet Grotesk", sans-serif;
  font-weight: 700;
  font-size: 1.625rem;
  margin-top: 3.25rem;
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}
.prose-tts p {
  margin-bottom: 1.625rem;
  line-height: 1.85;
}
.prose-tts ul {
  margin: 0 0 1.625rem 1.5rem;
  list-style: disc;
}
.prose-tts li {
  margin-bottom: 0.75rem;
  line-height: 1.8;
}
.prose-tts li::marker {
  color: var(--accent);
}
.prose-tts a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Article body extras: GEOFlow passes rendered HTML; cover the standard node set
   (h3, ol, blockquote, table, pre, code, img) in the same visual language. */
.prose-tts h3 {
  font-family: "Cabinet Grotesk", sans-serif;
  font-weight: 700;
  font-size: 1.3125rem;
  margin-top: 2.5rem;
  margin-bottom: 0.75rem;
  letter-spacing: -0.01em;
}
.prose-tts ol {
  margin: 0 0 1.625rem 1.5rem;
  list-style: decimal;
}
.prose-tts blockquote {
  border-left: 2px solid var(--accent);
  background: var(--accent-tint);
  padding: 1.5rem;
  margin: 2.5rem 0;
}
.prose-tts blockquote p:last-child {
  margin-bottom: 0;
}
.prose-tts table {
  width: 100%;
  font-size: 0.875rem;
  border-collapse: collapse;
  margin: 0 0 1.25rem;
}
.prose-tts th,
.prose-tts td {
  text-align: left;
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--hairline);
}
.prose-tts thead tr {
  border-bottom: 2px solid var(--ink);
}
.prose-tts pre {
  background: var(--ink);
  color: var(--paper);
  padding: 1.25rem;
  overflow-x: auto;
  font-size: 0.8125rem;
  margin: 0 0 1.25rem;
}
.prose-tts code {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.85em;
}
.prose-tts img {
  max-width: 100%;
  height: auto;
}
