/* ── Talisk legal pages — document styles ───────────────────────────────
   Served at /legal.css, loaded AFTER /site.css on /privacy /terms /security
   /refunds /cookies /subprocessors /dpa and the /fr/* mirrors.

   ⚠ This file is a SUPPLEMENT to site.css, not a standalone stylesheet.
   It deliberately declares no :root tokens, no body rule and no nav/footer
   chrome — those come from site.css, so the legal pages inherit the live
   site's chrome and its accessibility fixes automatically. It carried its
   own copies until 2026-08-26; the fork had already drifted (its
   --text-dim was #6b6862, which site.css had moved to #83807a because
   #6b6862 is 3.43:1 on --bg and fails WCAG AA), so every legal page
   rendered its body text below contrast while the rest of the site had
   been fixed. Do not reintroduce a :root block here.

   Link colors follow the :link/:visited specificity rule — do not strip
   the pseudo-class variants (the UA's a:link beats a class-only color).
   See CLAUDE.md "Link styling". */

.legal-main {
  max-width: 760px;
  margin: 0 auto;
  padding: 56px 48px 80px;
}

.legal-header { margin-bottom: 40px; }

.legal-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 20px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.lang-toggle {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.1em;
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.lang-toggle a,
.lang-toggle a:link,
.lang-toggle a:visited {
  color: var(--text-dim);
  text-decoration: none;
  transition: color 0.2s;
}
.lang-toggle a:hover,
.lang-toggle a:link:hover,
.lang-toggle a:visited:hover { color: var(--text); }
.lang-toggle a.active,
.lang-toggle a.active:link,
.lang-toggle a.active:visited { color: var(--amber); }
.lang-toggle .dot { color: var(--text-dim); }

.legal-header h1 {
  font-family: 'DM Sans', sans-serif;
  font-size: 34px;
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.25;
  margin-bottom: 14px;
}

.legal-meta {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--text-dim);
}

/* ── TOC ── */
.legal-toc {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  padding: 22px 26px;
  margin-bottom: 48px;
}
.legal-toc-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 12px;
}
.legal-toc ol {
  list-style: none;
  counter-reset: toc;
  columns: 2;
  column-gap: 32px;
}
.legal-toc li { counter-increment: toc; margin-bottom: 7px; break-inside: avoid; }
.legal-toc li::before {
  content: counter(toc, decimal-leading-zero);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  color: var(--amber);
  opacity: 0.7;
  margin-right: 10px;
}
.legal-toc a,
.legal-toc a:link,
.legal-toc a:visited {
  font-size: 14px;
  color: var(--text-mid);
  text-decoration: none;
  transition: color 0.2s;
}
.legal-toc a:hover,
.legal-toc a:link:hover,
.legal-toc a:visited:hover { color: var(--text); }

/* ── BODY TEXT ── */
.legal-main section { margin-bottom: 44px; }

.legal-main h2 {
  font-family: 'DM Sans', sans-serif;
  font-size: 21px;
  font-weight: 400;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
  scroll-margin-top: 24px;
}
.legal-main h2 .num {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  color: var(--amber);
  opacity: 0.75;
  margin-right: 10px;
}

.legal-main h3 {
  font-size: 15.5px;
  font-weight: 500;
  margin: 22px 0 8px;
  color: var(--text);
}

.legal-main p, .legal-main li {
  font-size: 15px;
  font-weight: 300;
  color: var(--text-mid);
  line-height: 1.8;
}
.legal-main p { margin-bottom: 12px; }
.legal-main ul, .legal-main ol { margin: 0 0 14px 22px; }
.legal-main li { margin-bottom: 8px; }
.legal-main strong { color: var(--text); font-weight: 500; }

.legal-main a,
.legal-main a:link,
.legal-main a:visited {
  color: var(--amber);
  text-decoration: none;
  transition: color 0.2s;
}
.legal-main a:hover,
.legal-main a:link:hover,
.legal-main a:visited:hover { color: var(--amber-light); }

/* Highlight card (e.g. Limited Use disclosure, controller identity) */
.legal-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  padding: 22px 26px;
  margin: 18px 0;
}
.legal-card p:last-child { margin-bottom: 0; }

/* ── TABLES ── */
.legal-table-wrap { overflow-x: auto; margin: 18px 0; }
.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.legal-table th {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--text-dim);
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.legal-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  color: var(--text-mid);
  font-weight: 300;
  line-height: 1.6;
  vertical-align: top;
}
.legal-table td:first-child { color: var(--text); font-weight: 400; white-space: nowrap; }

/* ── FOOTER ── */

@media (max-width: 768px) {
  .legal-main { padding: 40px 24px 60px; }
  .legal-header h1 { font-size: 27px; }
  .legal-toc ol { columns: 1; }
}
