/* ================================================================
   Noir — legal documents (Terms, Privacy, Platform Policies)
   Scoped .noir-v2 .noir-legal-page. Long-form reading layout.
   ================================================================ */

/* Same block-theme escape as Market: .entry-content caps direct children
   at the theme's content-size (645px here), which would leave no room for
   the sticky contents rail. Our own .noir-wrap still caps the line length. */
.noir-v2.noir-legal-page { max-width: none !important; width: 100% !important; }

.noir-legal-page .noir-wrap { max-width: 1120px; }

/* ── admin-only placeholder warning ─────────────────────────── */
.noir-legal-page .nlg-admin-warn {
  margin: 20px 0 0; padding: 14px 16px; border-radius: 12px;
  background: #FFF4E5; border: 1px solid #E9A23B;
  color: #6B4405; font-size: 14px; line-height: 1.55;
}
.noir-legal-page .nlg-admin-warn code {
  background: rgba(107, 68, 5, .10); padding: 1px 5px; border-radius: 4px;
  font-family: var(--noir-mono); font-size: 12.5px;
}
.noir-legal-page .nlg-admin-warn span { display: block; margin-top: 6px; opacity: .85; }

/* ── hero ───────────────────────────────────────────────────── */
.noir-legal-page .nlg-hero { padding: 40px 0 22px; }
.noir-legal-page .nlg-hero h1 {
  font-family: var(--noir-serif); font-size: clamp(32px, 4.2vw, 52px);
  font-weight: 800; letter-spacing: -1.4px; line-height: 1.04; margin: 10px 0 0;
}
.noir-legal-page .nlg-sub {
  margin: 12px 0 0; max-width: 60ch;
  font-size: 17px; line-height: 1.6; color: var(--noir-muted);
}
.noir-legal-page .nlg-meta {
  display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 18px 0 0;
  font-size: 13px; color: var(--noir-muted);
}
.noir-legal-page .nlg-meta strong { color: var(--noir-ink); }

/* document switcher */
.noir-legal-page .nlg-switch {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0;
  border-bottom: 1px solid var(--noir-line); padding-bottom: 0;
}
.noir-legal-page .nlg-switch-a {
  padding: 10px 14px; border-radius: 10px 10px 0 0;
  font-size: 14px; font-weight: 600; text-decoration: none;
  color: var(--noir-muted); border: 1px solid transparent; border-bottom: none;
  position: relative; top: 1px;
}
.noir-legal-page .nlg-switch-a:hover { color: var(--noir-ink); background: rgba(0,0,0,.03); }
.noir-legal-page .nlg-switch-a.is-on {
  color: var(--noir-ink); background: var(--noir-paper);
  border-color: var(--noir-line); border-bottom: 1px solid var(--noir-paper);
}

/* ── summary callout ────────────────────────────────────────── */
.noir-legal-page .nlg-summary {
  margin: 28px 0 0; padding: 22px 24px; border-radius: 16px;
  background: var(--noir-butter, #FBF3DF);
  border: 1px solid var(--noir-line);
}
.noir-legal-page .nlg-summary h2 {
  margin: 0 0 12px; font-family: var(--noir-sans);
  font-size: 12px; font-weight: 800; letter-spacing: .16em;
  text-transform: uppercase; color: var(--noir-orange);
}
.noir-legal-page .nlg-summary ul { margin: 0; padding-left: 20px; }
.noir-legal-page .nlg-summary li {
  margin: 0 0 8px; font-size: 16px; line-height: 1.6; max-width: 72ch;
}
.noir-legal-page .nlg-summary-note {
  margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--noir-line);
  font-size: 13.5px; color: var(--noir-muted); font-style: italic;
}

/* ── two-column body ────────────────────────────────────────── */
.noir-legal-page .nlg-body {
  display: grid; grid-template-columns: 240px minmax(0, 1fr);
  gap: 48px; align-items: start; margin: 40px 0 0;
}

/* ── sticky contents ────────────────────────────────────────── */
.noir-legal-page .nlg-toc { position: sticky; top: 24px; }
.noir-legal-page .nlg-toc-h {
  margin: 0 0 10px; font-size: 11px; font-weight: 800;
  letter-spacing: .16em; text-transform: uppercase; color: var(--noir-muted);
}
.noir-legal-page .nlg-toc ol {
  margin: 0; padding: 0; list-style: none;
  counter-reset: nlg; max-height: calc(100vh - 90px); overflow-y: auto;
}
.noir-legal-page .nlg-toc li { counter-increment: nlg; }
.noir-legal-page .nlg-toc a {
  display: block; padding: 6px 10px 6px 12px;
  border-left: 2px solid var(--noir-line);
  font-size: 13.5px; line-height: 1.4; color: var(--noir-muted);
  text-decoration: none; transition: color .12s, border-color .12s, background .12s;
}
.noir-legal-page .nlg-toc a:hover {
  color: var(--noir-ink); border-left-color: var(--noir-orange);
  background: rgba(0,0,0,.02);
}

/* ── document body ──────────────────────────────────────────── */
.noir-legal-page .nlg-doc { max-width: 74ch; }
.noir-legal-page .nlg-sec { scroll-margin-top: 24px; padding: 0 0 34px; }
.noir-legal-page .nlg-sec + .nlg-sec { border-top: 1px solid var(--noir-line); padding-top: 34px; }

.noir-legal-page .nlg-sec h2 {
  font-family: var(--noir-serif); font-size: 26px; font-weight: 700;
  letter-spacing: -.4px; line-height: 1.2; margin: 0 0 16px;
}
.noir-legal-page .nlg-sec h3 {
  font-family: var(--noir-sans); font-size: 16px; font-weight: 700;
  margin: 26px 0 10px; color: var(--noir-ink);
}
.noir-legal-page .nlg-sec p,
.noir-legal-page .nlg-sec li { font-size: 16px; line-height: 1.68; }
.noir-legal-page .nlg-sec p { margin: 0 0 14px; }
.noir-legal-page .nlg-sec ul,
.noir-legal-page .nlg-sec ol { margin: 0 0 16px; padding-left: 22px; }
.noir-legal-page .nlg-sec li { margin: 0 0 7px; }
.noir-legal-page .nlg-sec a { color: var(--noir-orange); text-underline-offset: 2px; }
.noir-legal-page .nlg-sec strong { font-weight: 700; color: var(--noir-ink); }

/* pull-quote for the things people miss and then argue about */
.noir-legal-page .nlg-sec blockquote {
  margin: 18px 0; padding: 16px 20px;
  border-left: 3px solid var(--noir-orange);
  background: rgba(203, 54, 15, .05);
  border-radius: 0 12px 12px 0;
}
.noir-legal-page .nlg-sec blockquote p:last-child { margin-bottom: 0; }

/* section anchor — visible on hover, always reachable by keyboard */
.noir-legal-page .nlg-anchor {
  margin-left: 8px; font-size: 17px; color: var(--noir-muted);
  text-decoration: none; opacity: 0; transition: opacity .12s;
}
.noir-legal-page .nlg-sec h2:hover .nlg-anchor,
.noir-legal-page .nlg-anchor:focus { opacity: 1; }

/* ── tables ─────────────────────────────────────────────────── */
.noir-legal-page .nlg-sec table {
  width: 100%; margin: 0 0 18px; border-collapse: collapse;
  font-size: 14.5px; background: var(--noir-paper);
  border: 1px solid var(--noir-line); border-radius: 12px; overflow: hidden;
}
.noir-legal-page .nlg-sec th,
.noir-legal-page .nlg-sec td {
  padding: 11px 14px; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--noir-line); line-height: 1.55;
}
.noir-legal-page .nlg-sec th {
  font-weight: 700; font-size: 12px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--noir-muted);
  background: rgba(0,0,0,.025);
}
.noir-legal-page .nlg-sec tr:last-child td { border-bottom: none; }

/* Wide tables scroll inside themselves rather than pushing the page sideways. */
.noir-legal-page .nlg-sec { overflow-x: auto; }

/* ── footer ─────────────────────────────────────────────────── */
.noir-legal-page .nlg-foot {
  margin: 12px 0 60px; padding: 18px 0 0;
  border-top: 1px solid var(--noir-line);
  font-size: 14px; color: var(--noir-muted);
}

/* ── responsive ─────────────────────────────────────────────── */
@media (max-width: 900px) {
  .noir-legal-page .nlg-body { grid-template-columns: 1fr; gap: 28px; }
  .noir-legal-page .nlg-toc {
    position: static; padding: 16px 18px;
    background: var(--noir-paper); border: 1px solid var(--noir-line);
    border-radius: 14px;
  }
  .noir-legal-page .nlg-toc ol { max-height: none; columns: 2; column-gap: 20px; }
  .noir-legal-page .nlg-doc { max-width: none; }
}
@media (max-width: 560px) {
  .noir-legal-page .nlg-toc ol { columns: 1; }
  .noir-legal-page .nlg-hero { padding: 26px 0 16px; }
  .noir-legal-page .nlg-summary { padding: 18px 16px; }
  .noir-legal-page .nlg-sec h2 { font-size: 22px; }
  .noir-legal-page .nlg-switch-a { padding: 9px 11px; font-size: 13px; }
}

/* Anchor jumps are instant for anyone who asked for less motion. */
@media (prefers-reduced-motion: no-preference) {
  html:has(.noir-legal-page) { scroll-behavior: smooth; }
}
