/* Legal pages (Terms of Use, Privacy Policy), Coming Soon pages and 404. Values from tokens.css only. */

/* ---------- Legal documents ---------- */
.srv-legal__inner { max-width: calc(var(--content-width) * 0.62 + var(--gutter) * 2); }
.srv-legal__title { margin-top: var(--space-4); }
.srv-legal__meta {
  margin-top: var(--space-4);
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--line);
  color: var(--ink-muted);
  font: 400 var(--text-body-sm) var(--font-sans);
}
.srv-legal__h2 {
  margin-top: var(--space-12);
  font: 500 var(--text-h3) var(--font-display);
  scroll-margin-top: calc(var(--header-height) + var(--header-inset) * 2 + var(--space-4));
}
.srv-legal__h3 {
  margin-top: var(--space-6);
  color: var(--accent);
  font: 600 var(--text-h4) var(--font-display);
  scroll-margin-top: calc(var(--header-height) + var(--header-inset) * 2 + var(--space-4));
}
.srv-legal__p { margin-top: var(--space-4); color: var(--ink-soft); }
.srv-legal__p strong, .srv-legal__list strong { color: var(--ink); font-weight: 600; }
.srv-legal__list { margin: var(--space-4) 0 0; padding-left: var(--space-6); color: var(--ink-soft); }
.srv-legal__list li + li { margin-top: var(--space-2); }
.srv-legal__list li::marker { color: var(--accent); }
.srv-legal__note-heading { margin-top: var(--space-12); padding-top: var(--space-6); border-top: 1px solid var(--line); color: var(--ink); }
.srv-legal__note { color: var(--ink-muted); font: 400 var(--text-body-sm) var(--font-sans); }

.srv-legal__table-wrap { margin-top: var(--space-6); overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-md); }
.srv-legal__table { width: 100%; border-collapse: collapse; font: 400 var(--text-body-sm) var(--font-sans); }
.srv-legal__table th, .srv-legal__table td { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.srv-legal__table thead th { background: var(--surface-raised); color: var(--ink); font-weight: 600; }
.srv-legal__table tbody th { min-width: calc(var(--space-32) + var(--space-8)); color: var(--ink); font-weight: 600; }
.srv-legal__table td { color: var(--ink-soft); }
.srv-legal__table tbody tr:last-child > * { border-bottom: 0; }

/* Notice box at the top of the Privacy Policy (age restriction), as in the PDF. */
.srv-legal__callout { margin-top: var(--space-6); padding: var(--space-4) var(--space-6); border: 1px solid var(--line-strong); border-left: 4px solid var(--accent); border-radius: var(--radius-md); background: var(--surface); }

/* ---------- Coming Soon and 404 ---------- */
.srv-soon { min-height: calc(100dvh - var(--header-height) - var(--header-inset)); display: flex; align-items: center; }
.srv-soon__inner { width: 100%; }
.srv-soon__logo { display: block; width: auto; height: var(--space-20); margin-top: var(--space-8); }
.srv-soon__title { margin-top: var(--space-6); }
.srv-soon__banner { max-width: calc(var(--content-width) * 0.5); margin-top: var(--space-8); }
.srv-soon__text { max-width: var(--measure-lead); margin-top: var(--space-4); color: var(--ink-soft); font: 300 var(--text-body-lg) var(--font-sans); }
.srv-soon__text.srv-placeholder { color: var(--ink-muted); font-style: italic; }
.srv-soon__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-8); }

@media (max-width: 767px) {
  .srv-legal__h2 { margin-top: var(--space-8); }
  /* Stack the table: one block per row, each cell labelled with its column. */
  .srv-legal__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .srv-legal__table, .srv-legal__table tbody, .srv-legal__table tr, .srv-legal__table th, .srv-legal__table td { display: block; }
  .srv-legal__table tr { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); }
  .srv-legal__table tbody tr:last-child { border-bottom: 0; }
  .srv-legal__table th, .srv-legal__table td { padding: var(--space-1) 0; border-bottom: 0; white-space: normal; }
  .srv-legal__table td::before { content: attr(data-label); display: block; color: var(--ink-muted); font: 600 var(--text-overline) var(--font-sans); letter-spacing: var(--tracking-overline); text-transform: uppercase; }
  .srv-soon__logo { height: var(--space-12); }
}
