/* ════════════════════════════════════════════════════════════════
   hedj — legal.css : shared styles for the policy / legal pages
   (privacy, cookie, data-protection, terms). Editorial redesign look:
   tokens.css driven, light/dark aware, bordered tables + TOC.
   ════════════════════════════════════════════════════════════════ */

.policy-page {
  max-width: 900px;
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 5rem) 1.25rem 5rem;
}

.policy-page__kicker {
  font-family: var(--font-mono, monospace);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: .9rem;
}

.policy-page h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -.01em;
  margin-bottom: .6rem;
  color: var(--ink);
}

.policy-meta {
  color: var(--text-muted);
  font-size: .9rem;
  margin-bottom: 2.2rem;
}

/* Table of contents */
.policy-toc {
  border: 2px solid var(--ink);
  border-radius: var(--r-md, 10px);
  background: var(--paper);
  box-shadow: var(--sh-card, 6px 6px 0 var(--green));
  padding: 1.3rem 1.6rem;
  margin-bottom: 2.8rem;
}
.policy-toc h2 {
  font-family: var(--font-mono, monospace);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-soft);
  margin: 0 0 .8rem;
  padding: 0;
  border: 0;
}
.policy-toc ol {
  margin: 0 0 0 1.1rem;
  columns: 2;
  column-gap: 2rem;
  font-size: .92rem;
}
@media (max-width: 640px) { .policy-toc ol { columns: 1; } }
.policy-toc li { margin-bottom: .35rem; break-inside: avoid; }
.policy-toc a { color: var(--text); text-decoration: none; }
.policy-toc a:hover { color: var(--green); text-decoration: underline; }

/* Body copy */
.policy-page h2 {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 2.4rem 0 .8rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line);
  color: var(--ink);
}
.policy-page h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 1.5rem 0 .5rem;
  color: var(--ink);
}
.policy-page p { margin-bottom: .9rem; color: var(--text); line-height: 1.7; }
.policy-page ul { margin: 0 0 .9rem 1.4rem; }
.policy-page li { margin-bottom: .4rem; line-height: 1.65; color: var(--text); }
.policy-page a { color: var(--green); font-weight: 600; }
.policy-page a:hover { text-decoration: underline; }
.policy-page strong { color: var(--ink); }

/* Tables */
.policy-page table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.2rem 0;
  font-size: .88rem;
}
.policy-page th,
.policy-page td {
  border: 1px solid var(--line-2);
  padding: .65rem .8rem;
  text-align: left;
  vertical-align: top;
  line-height: 1.55;
}
.policy-page th {
  background: rgba(48, 176, 120, .1);
  font-weight: 700;
  color: var(--ink);
}
.policy-page .table-scroll { overflow-x: auto; }

/* "Draft / coming soon" notice for pages without finalised content */
.policy-note {
  border: 2px dashed var(--line-2);
  border-radius: var(--r-md, 10px);
  background: rgba(48, 176, 120, .06);
  padding: 1.2rem 1.4rem;
  margin: 1.5rem 0;
  color: var(--text-muted);
  font-size: .95rem;
}
