/* Legal & policy pages: /privacy/ /terms/ /sms-terms/ /policies/ /accessibility/
   Layout helpers only. Everything else (prose, toc, with-toc, note) comes from site.css. */

.legal-hero .note { max-width: 44rem; }
.legal-hero .note > span { max-width: none; }

.legal-main { padding-bottom: var(--space-section); }
.legal-main > .container { border-top: var(--border-hair); padding-top: clamp(2rem, 1rem + 3vw, 3.5rem); }

/* Table of contents */
.toc-label { display: block; margin-bottom: var(--space-4); }
@media (min-width: 900px) {
  .toc { max-height: calc(100vh - var(--header-h) - 48px); overflow-y: auto; padding-bottom: var(--space-2); }
}
@media (max-width: 899px) {
  .toc { padding: var(--space-5); background: var(--gt-linen); border-radius: var(--radius-m); }
  .toc ol, .toc ul { gap: 4px; }
  .toc a { padding-block: 4px; }
}

/* Body: each .prose section carries its own h2; the first one starts flush */
.legal-body { min-width: 0; }
.legal-body > .prose:first-child > h2:first-child { margin-top: 0; }
.prose h3 + p, .prose h3 + ul, .prose h3 + ol { margin-top: 0.6em; }

/* Tables inside prose */
.prose caption { caption-side: top; text-align: left; font-weight: 500; color: var(--gt-ink); padding-bottom: var(--space-2); }
.prose thead th { font-size: var(--step--2); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; color: var(--gt-ink-2); }
.prose tbody th { font-weight: 500; color: var(--gt-ink); }
.prose table { background: var(--gt-white); border: var(--border-hair); border-radius: var(--radius-m); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.prose tbody tr:last-child > * { border-bottom: 0; }
.prose td { overflow-wrap: anywhere; } /* long emails/phone numbers wrap instead of clipping at 320px */

/* The "ongoing service at a glance" disclosure box (terms #ongoing-service) */
.disclosure-box { padding: var(--space-5) var(--space-6); border: 1px solid var(--gt-ink); border-radius: var(--radius-m); background: var(--gt-white); }
.disclosure-box h3 { margin-top: 0; }
.disclosure-box ol { margin-top: var(--space-4); }
.disclosure-box li strong { color: var(--gt-ink); }

/* Quoted consent wording */
.consent-sample { padding: var(--space-4) var(--space-5); border: var(--border-ui); border-radius: var(--radius-s); background: var(--gt-white); font-size: var(--step--1); color: var(--gt-ink-2); }

/* Sample text messages (SMS terms) */
.prose .sample-list { list-style: none; padding-left: 0; gap: var(--space-3); }
.sample-list li { display: grid; gap: 4px; }
.sample-label { font-size: var(--step--2); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gt-ink-3); }
.sample-list samp { display: block; padding: var(--space-3) var(--space-4); border-radius: var(--radius-m) var(--radius-m) var(--radius-m) var(--radius-xs); background: var(--gt-linen);
  font-family: var(--font-sans); font-size: var(--step--1); color: var(--gt-ink); max-width: 34rem; }

/* Analytics switch (privacy) */
.analytics-switch { display: grid; gap: var(--space-3); justify-items: start; padding: var(--space-5); border: var(--border-hair); border-radius: var(--radius-m); background: var(--gt-white); }

/* Closing contact line */
.legal-contact { margin-top: var(--space-8); max-width: 44rem; padding: var(--space-5) var(--space-6); border-radius: var(--radius-m); background: var(--gt-linen); color: var(--gt-ink-2); }
.legal-contact strong { color: var(--gt-ink); }

@media print {
  .toc { display: none; }
  .with-toc { display: block; }
  .legal-main > .container { border-top: 0; padding-top: 0; }
}
