/* /legal/* documents: SaaS Terms, DPA, Privacy Notice, Website Terms of Use.
   Ported from the live site's public/legal/legal.css; its tokens are mapped to this site's. */
.legal-hero .wrap, .legal-doc .legal-wrap { max-width: calc(54rem + var(--gutter) * 2); }
.legal-hero { padding-bottom: 2rem; }
.legal-hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
.legal-version { margin-top: 1.1rem; max-width: 60ch; color: var(--foreground); font-weight: 600; font-size: 1rem; }
.legal-hero p:not(.eyebrow):not(.legal-version) { max-width: 60ch; margin-top: .9rem; font-size: .95rem; }

.legal-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin: 0 0 1.8rem; padding: 0 0 1rem; border-bottom: 1px solid var(--hair); }
.legal-nav a { color: var(--muted-foreground); font-size: .9rem; }
.legal-nav a:hover, .legal-nav a[aria-current="page"] { color: var(--foreground); }
.legal-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 4px; }

.legal-doc .toc { margin: 0 0 2.2rem; padding: 1.1rem 1.4rem; border: 1px solid var(--hair); border-radius: 14px; background: rgb(255 255 255 / .02); }
.legal-doc .toc p { margin: 0 0 .5rem; font: 500 .72rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .08em; color: var(--text-ghost); }
.legal-doc .toc ol { margin: 0; padding-left: 0; list-style: none; color: var(--muted-foreground); font-size: .95rem; line-height: 1.7; }

.legal-body { color: #ddd7ea; font-size: 1rem; line-height: 1.7; overflow-wrap: anywhere; }
.legal-body h2 { margin: 2.5rem 0 .75rem; font: 600 1.3rem/1.3 var(--font-display); color: var(--foreground); }
.legal-body h3 { margin: 1.6rem 0 .5rem; font: 600 1.06rem/1.35 var(--font-display); color: var(--foreground); }
.legal-body p { margin: 0 0 .9rem; }
.legal-body ul, .legal-body ol { margin: 0 0 1rem; padding-left: 1.4rem; }
.legal-body li { margin: 0 0 .5rem; }
.legal-body a, .legal-notice a { color: var(--link); text-decoration: underline; text-decoration-color: rgb(196 181 253 / .4); text-underline-offset: 3px; }
.legal-body strong { color: var(--foreground); }
.legal-body table { display: block; width: 100%; overflow-x: auto; margin: 1.1rem 0 1.4rem; border-collapse: collapse; font-size: .875rem; }
.legal-body th, .legal-body td { padding: .6rem .75rem; border: 1px solid var(--hair); text-align: left; vertical-align: top; }
.legal-body th { color: var(--foreground); }
.legal-index { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hair); }
.legal-index li { padding: 1.4rem 0; border-bottom: 1px solid var(--hair); }
.legal-index h2 { margin: 0 0 .35rem; font: 600 1.3rem/1.3 var(--font-display); }
.legal-index h2 a { color: var(--foreground); }
.legal-index h2 a:hover { color: var(--link); }
.legal-index .legal-version { margin: 0; font-weight: 400; color: var(--muted-foreground); font-size: .95rem; }
.legal-notice { margin-top: 2.5rem; padding-top: 1.1rem; border-top: 1px solid var(--hair); color: var(--muted-foreground); font-size: .875rem; }

@media print {
  .nav, .foot, .legal-nav, .legal-doc .toc, .tx-grain, canvas { display: none !important; }
  .legal-body, .legal-body h2, .legal-body h3 { color: #000; }
}
