/* Legal pages: Privacy, Terms, Refunds.
   Loaded after styles.css and reuses its tokens, fonts, top bar and footer.
   One readable column, a contents list, and nothing that moves. */

.legal-top .topbar__inner { justify-content: space-between; }
.legal-top__links { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.legal-top__links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--ink-2);
}
.legal-top__links a:hover { color: var(--pea-deep); }
.legal-top__links a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 6px;
  text-decoration-color: var(--pea);
}

.legal { position: relative; z-index: 1; padding: clamp(40px, 7vw, 88px) 0 clamp(64px, 9vw, 120px); }
.legal__col { width: min(760px, 100% - 48px); margin-inline: auto; }

.legal h1 {
  margin: 14px 0 12px;
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: .95;
}
.legal__meta { margin: 0 0 30px; color: var(--muted); font-size: 0.8125rem; letter-spacing: .04em; }

.legal__summary {
  margin: 0 0 34px;
  padding: 22px 24px 8px;
  background: var(--card);
  border: 2px solid var(--ink);
  border-radius: 20px;
  box-shadow: 5px 5px 0 var(--pea);
}
.legal__summary h2 { margin: 0 0 10px; font-size: 1.375rem; letter-spacing: -.03em; line-height: 1.1; }
.legal__summary ul { margin: 0 0 14px; padding-left: 1.15em; }
.legal__summary li { margin: 0 0 8px; }

.legal__toc {
  margin: 0 0 44px;
  padding: 18px 22px;
  border: 1.5px solid var(--line);
  border-radius: 16px;
  background: rgba(252, 250, 242, .55);
}
.legal__toc h2 {
  margin: 0 0 8px;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--muted);
}
.legal__toc ol { margin: 0; padding-left: 1.4em; columns: 2 16rem; column-gap: 28px; }
.legal__toc li { margin: 0 0 4px; break-inside: avoid; font-size: 0.9375rem; }
.legal__toc a { text-decoration-color: var(--line); text-underline-offset: 3px; }
.legal__toc a:hover { text-decoration-color: var(--pea-deep); }

.legal section { scroll-margin-top: 84px; }
.legal section + section { margin-top: 38px; padding-top: 30px; border-top: 1.5px solid var(--line); }
.legal h2.legal__h {
  margin: 0 0 14px;
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  letter-spacing: -.035em;
  line-height: 1.1;
}
.legal h3 {
  margin: 22px 0 8px;
  font-family: "Bricolage Grotesque", ui-sans-serif, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -.02em;
}
.legal p, .legal li { max-width: 68ch; }
.legal p { margin: 0 0 14px; }
.legal ul, .legal ol { margin: 0 0 14px; padding-left: 1.3em; }
.legal li { margin: 0 0 6px; }
.legal a { color: var(--focus); text-underline-offset: 2px; }
.legal a:hover { color: var(--ink); }
.legal code { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: .86em; background: var(--paper-2); padding: 1px 5px; border-radius: 5px; overflow-wrap: anywhere; }
.legal strong { font-weight: 700; }
.legal .caps { text-transform: uppercase; font-size: 0.9375rem; letter-spacing: .01em; }

.legal-table-wrap { overflow-x: auto; margin: 6px 0 18px; border: 1.5px solid var(--ink); border-radius: 14px; background: var(--card); }
.legal table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 0.90625rem; }
.legal th, .legal td { padding: 11px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.legal tr:last-child td { border-bottom: 0; }
.legal th { background: var(--paper-2); font-weight: 700; }

.legal__contact {
  margin-top: 8px;
  padding: 18px 22px;
  background: var(--card);
  border: 1.5px solid var(--ink);
  border-radius: 16px;
}
.legal__contact p { margin: 0 0 6px; }

@media (max-width: 640px) {
  .legal-top__links { gap: 0 14px; }
  .legal-top__links a { font-size: 0.8125rem; }
}

@media print {
  .topbar, .footer, .skip-link, .legal__toc { display: none !important; }
  body::before { display: none; }
  .legal { padding: 0; }
  .legal__summary { box-shadow: none; }
}
