/* Legal/policy document format for trust pages (terms, privacy, cookies, subprocessors,
   accessibility, security-policies). Loads AFTER app.css. Plain text-document layout:
   modest headings, normal paragraph rhythm, no marketing section bands.

   Selectors are prefixed with `html body .legal-page` on purpose: app.css has site-wide
   rules like `body:not(:has(.about-hero)) section:not(.security-section)` (88px section
   padding) and `body :is(section h2, …)` (display-size headings) that otherwise win. */

html body .legal-page {
  max-width: 760px;
  margin: 0 auto;
  padding: 3rem 1.5rem 4rem;
}
html body .legal-page--wide {
  max-width: 900px;
}

html body .legal-page .legal-content {
  text-align: left;
  font-size: 1rem;
  line-height: 1.65;
}

/* Kill marketing section bands inside the document */
html body .legal-page .legal-content section {
  padding: 0;
  margin: 0;
  max-width: none;
}

html body .legal-page .legal-content :is(h1, h2, h3, h4) {
  text-align: left;
  font-weight: 600;
  color: var(--text);
}
html body .legal-page .legal-content h1 {
  font-size: 2rem;
  line-height: 1.2;
  margin: 0 0 0.4rem;
  color: var(--brand-navy);
}
html body .legal-page .legal-content h2 {
  font-size: 1.25rem;
  line-height: 1.3;
  margin: 2.25rem 0 0.6rem;
}
html body .legal-page .legal-content :is(h3, h4) {
  font-size: 1.05rem;
  line-height: 1.35;
  margin: 1.5rem 0 0.4rem;
}

html body .legal-page .legal-content :is(p, li, td, th) {
  font-size: 1rem;
}
html body .legal-page .legal-content p {
  margin: 0 0 1rem;
}
html body .legal-page .legal-content :is(ul, ol) {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}
html body .legal-page .legal-content li {
  margin: 0 0 0.35rem;
}
html body .legal-page .legal-content a {
  color: var(--accent);
}

html body .legal-page :is(.legal-updated, .legal-meta, .policy-meta) {
  color: var(--text-muted);
  font-size: 0.875rem;
  margin: 0 0 2rem;
}

html body .legal-page .legal-disclaimer {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0.85rem 1rem;
  font-size: 0.9rem;
  color: var(--text-muted);
  margin: 0 0 1.5rem;
}

html body .legal-page .legal-toc {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 1rem 1.25rem;
  margin: 0 0 2rem;
}
html body .legal-page .legal-toc .legal-toc-title {
  margin: 0 0 0.5rem;
  font-size: 1rem;
}
html body .legal-page .legal-toc :is(ol, ul) {
  margin: 0;
}
html body .legal-page .legal-toc a {
  text-decoration: none;
}
html body .legal-page .legal-toc a:hover {
  text-decoration: underline;
}

html body .legal-page .legal-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
html body .legal-page .legal-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.5rem 0 1.25rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
}
html body .legal-page .legal-content :is(th, td) {
  font-size: 0.9rem;
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}
html body .legal-page .legal-content th {
  background: var(--brand-navy-soft);
  color: var(--brand-navy);
  font-weight: 600;
}
html body .legal-page .legal-content tbody tr:last-child td {
  border-bottom: none;
}

@media print {
  .no-print {
    display: none !important;
  }
}
