/* Legal pages (privacy, terms, accessibility). privacy.css, terms.css and accessibility.css are identical copies:
   edit one, then copy it over the other two. */

/* hero: solid forest with the same faint grid + green glow as the dark sections, plus the "last updated" line */
.page-legal .phero--solid {
  background-color: var(--forest);
  background-image: radial-gradient(60% 130% at 88% -30%, rgba(37, 228, 145, 0.18), transparent 62%), linear-gradient(rgba(255, 255, 255, 0.032) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.032) 1px, transparent 1px);
  background-size: auto, 56px 56px, 56px 56px;
}
.page-legal .phero--solid .phero__in { padding-block: clamp(36px, 5vw, 64px) clamp(30px, 4vw, 48px); }
.page-legal .phero .lede { text-wrap: balance; }
/* breadcrumb links are only ~24px tall: grow the tap area without moving the underline */
.page-legal .crumbs a { position: relative; }
.page-legal .crumbs a::before { content: ""; position: absolute; inset: -12px -8px; }
.legal-updated {
  display: inline-flex; align-items: center; gap: 0.7em;
  font: 600 0.78rem/1 var(--font-body); letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.72);
}
.legal-updated::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--neon); box-shadow: 0 0 10px rgba(37, 228, 145, 0.6); }

@media (max-width: 959px) { .page-legal .subnav a { display: inline-flex; align-items: center; min-height: 44px; } }
/* phones/tablets: the sticky chip row is the section jump; wide screens use the rail instead */
@media (min-width: 960px) { .page-legal .legal-jump { display: none; } }

/* body: reading column + a sticky helper rail on wide screens */
.legal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: start; }
.legal__main { min-width: 0; max-width: 700px; }
.legal .prose { max-width: none; gap: 16px; }
.legal .prose h2 {
  margin-top: 22px; padding-top: 30px; border-top: 1px solid var(--line);
  scroll-margin-top: calc(var(--header-h) + 84px);
}
.legal .prose h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.legal .prose p { line-height: 1.72; color: var(--ink-2); max-width: 66ch; text-wrap: pretty; }
.legal .prose a { font-weight: 600; text-decoration-thickness: 1.5px; text-decoration-color: var(--green); white-space: nowrap; }
.legal .prose a:hover { color: var(--green-deep); }

/* cross-links to the other legal pages */
.legal__more {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin-top: clamp(36px, 5vw, 56px); padding-top: 28px; border-top: 1px solid var(--line);
}
.legal__more span { font: 700 0.72rem var(--font-body); letter-spacing: 0.15em; text-transform: uppercase; color: var(--green-deep); margin-right: 6px; }
.legal__more a {
  display: inline-flex; align-items: center; gap: 0.35em; min-height: 44px; padding: 0 18px; border-radius: 10px; text-decoration: none; background: #fff; border: 1.5px solid var(--line);
  font: 600 0.95rem var(--font-body); color: var(--ink-2); transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.legal__more a::after { content: "→"; }
.legal__more a:hover { border-color: var(--green); color: var(--green); }

/* rail: on-this-page + contact card */
.toc { display: none; }
.toc__label { font: 700 0.72rem var(--font-body); letter-spacing: 0.15em; text-transform: uppercase; color: var(--green-deep); }
.toc ol { margin: 14px 0 0; padding: 0 0 0 2px; list-style: none; border-left: 2px solid var(--line); }
.toc a {
  display: block; margin-left: -2px; padding: 12px 0 12px 16px; border-left: 2px solid transparent;
  font: 500 0.97rem/1.35 var(--font-body); color: var(--ink-2); text-decoration: none; transition: color 0.2s, border-color 0.2s;
}
.toc a:hover { color: var(--green); border-left-color: var(--green); }

.legal__card {
  display: grid; gap: 14px; justify-items: start; padding: 26px; border-radius: var(--r);
  background-color: var(--forest); color: #fff; border: 1px solid rgba(37, 228, 145, 0.22); box-shadow: var(--shadow-1);
  background-image: radial-gradient(90% 90% at 100% 0%, rgba(37, 228, 145, 0.14), transparent 65%);
}
.legal__card-title { font: 600 1.55rem/1.1 var(--font-display); letter-spacing: -0.03em; }
.legal__card .link-arrow { align-self: start; position: relative; color: #fff; border-bottom-color: var(--neon); }
.legal__card .link-arrow::before { content: ""; position: absolute; inset: -9px -8px; } /* 44px+ tap area, underline stays put */
.legal__card .link-arrow:hover { color: var(--neon); }

@media (max-width: 559px) {
  .legal__more span { flex-basis: 100%; margin: 0 0 2px; }
}
@media (min-width: 960px) {
  .legal { grid-template-columns: minmax(0, 700px) 300px; justify-content: space-between; gap: 64px; }
  .legal__aside { position: sticky; top: calc(var(--header-h) + 28px); display: grid; gap: 28px; }
  .toc { display: block; }
  .legal .prose h2 { scroll-margin-top: calc(var(--header-h) + 20px); }
}
