/* ════════════════════════════════════════════════════════════════════
 * LEGAL / COMPLIANCE PAGES - shared template
 * Reuses tokens.css + homepage.css + guide.css (toc, breadcrumb).
 * Long-form reading + sticky TOC + minimal footer + print styles.
 * ════════════════════════════════════════════════════════════════════ */

.legal-header{ background:var(--bg); padding-block:var(--space-16) var(--space-8); border-bottom:1px solid var(--border-subtle); }
.legal-header-inner{ max-width:1080px; margin-inline:auto; }
.legal-header .eyebrow{ color:var(--brand-purple); }
.legal-header h1{ font-size:clamp(34px,5vw,48px); letter-spacing:var(--tracking-tight); line-height:1.08; margin:var(--space-3) 0 var(--space-4); }
.legal-dates{ display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-4); font-size:var(--text-body-sm); color:var(--text-tertiary); }
.legal-dates a{ color:var(--brand-blue); text-decoration:none; font-weight:var(--weight-medium); }
.legal-dates a:hover{ color:var(--brand-blue-hover); }

.legal-layout{ background:var(--bg); padding-block:var(--space-12) var(--space-20); }
.legal-grid{ max-width:1080px; margin-inline:auto; display:grid; grid-template-columns:1fr; gap:var(--space-10); }
@media (min-width:1024px){ .legal-grid{ grid-template-columns:minmax(0,1fr) 240px; gap:var(--space-16); align-items:start; } }

.legal-toc-mobile{ margin-bottom:var(--space-8); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); background:var(--bg-subtle); }
@media (min-width:1024px){ .legal-toc-mobile{ display:none; } }
.legal-toc-mobile summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; padding:var(--space-4) var(--space-5); font-weight:var(--weight-semibold); font-size:var(--text-body-sm); color:var(--text-primary); }
.legal-toc-mobile summary::-webkit-details-marker{ display:none; }
.legal-toc-mobile summary::after{ content:'+'; color:var(--text-tertiary); font-size:20px; }
.legal-toc-mobile[open] summary::after{ content:'–'; }
.legal-toc-mobile ol{ margin:0; padding:0 var(--space-5) var(--space-4) var(--space-6); display:flex; flex-direction:column; gap:var(--space-2); }
.legal-toc-mobile a{ font-size:var(--text-body-sm); color:var(--text-secondary); text-decoration:none; }
.legal-toc-aside{ display:none; }
@media (min-width:1024px){ .legal-toc-aside{ display:block; position:sticky; top:96px; } }
.legal-toc-label{ font-size:var(--text-caption); font-weight:var(--weight-bold); letter-spacing:var(--tracking-wide); text-transform:uppercase; color:var(--text-tertiary); margin-bottom:var(--space-4); }
.legal-toc-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px; border-left:2px solid var(--border-subtle); counter-reset:toc; }
.legal-toc-list a{ display:block; padding:var(--space-2) var(--space-4); margin-left:-2px; border-left:2px solid transparent; font-size:var(--text-body-sm); color:var(--text-secondary); text-decoration:none; line-height:var(--leading-snug); }
.legal-toc-list a:hover{ color:var(--brand-purple); border-left-color:var(--brand-purple); }

/* prose */
.legal-prose{ max-width:720px; }
.legal-summary{ background:var(--brand-purple-light); border-left:4px solid var(--brand-purple); border-radius:var(--radius-md); padding:var(--space-5) var(--space-6); margin-bottom:var(--space-8); }
.legal-summary .lbl{ font-size:var(--text-caption); font-weight:var(--weight-bold); letter-spacing:var(--tracking-wide); text-transform:uppercase; color:var(--brand-purple-hover); margin-bottom:var(--space-2); }
.legal-summary p{ margin:0; font-size:var(--text-body); color:var(--text-primary); line-height:var(--leading-relaxed); }
.legal-prose h2{ font-size:clamp(22px,2.8vw,28px); font-weight:var(--weight-bold); letter-spacing:-0.01em; line-height:var(--leading-snug); margin:var(--space-12) 0 var(--space-4); scroll-margin-top:88px; }
.legal-prose h2:first-of-type{ margin-top:0; }
.legal-prose h3{ font-size:clamp(18px,2.2vw,21px); font-weight:var(--weight-semibold); margin:var(--space-6) 0 var(--space-3); }
.legal-prose p{ font-size:17px; line-height:1.7; color:var(--text-secondary); margin-bottom:var(--space-4); }
.legal-prose p strong{ color:var(--text-primary); font-weight:var(--weight-semibold); }
.legal-prose ul, .legal-prose ol{ font-size:17px; line-height:1.7; color:var(--text-secondary); margin:0 0 var(--space-4); padding-left:var(--space-6); }
.legal-prose li{ margin-bottom:var(--space-2); }
.legal-prose a:not(.btn){ color:var(--brand-blue); text-decoration:underline; text-underline-offset:2px; }
.legal-prose dl{ margin:0 0 var(--space-4); }
.legal-prose dt{ font-weight:var(--weight-semibold); color:var(--text-primary); font-size:17px; margin-top:var(--space-3); }
.legal-prose dd{ margin:0 0 var(--space-2); font-size:17px; line-height:1.7; color:var(--text-secondary); }
.legal-prose code{ font-family:var(--font-mono); font-size:0.9em; background:var(--bg-subtle); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); padding:1px 5px; color:var(--text-primary); }
.legal-table{ width:100%; border-collapse:collapse; margin:var(--space-5) 0; font-size:var(--text-body-sm); }
.legal-table th{ text-align:left; padding:var(--space-3) var(--space-4); border:1px solid var(--border-subtle); background:var(--bg-subtle); font-weight:var(--weight-semibold); color:var(--text-primary); }
.legal-table td{ padding:var(--space-3) var(--space-4); border:1px solid var(--border-subtle); color:var(--text-secondary); }
.legal-table tbody tr:nth-child(even){ background:var(--bg-subtle); }
.legal-contact{ margin-top:var(--space-12); padding-top:var(--space-8); border-top:1px solid var(--border-subtle); }
.legal-contact h2{ margin-top:0; }
.legal-print{ margin-top:var(--space-8); font-size:var(--text-body-sm); }
.legal-print a{ color:var(--brand-blue); text-decoration:none; font-weight:var(--weight-semibold); }

/* minimal footer */
.mini-footer{ background:var(--bg); border-top:1px solid var(--border-subtle); padding-block:var(--space-10); }
.mini-footer-inner{ max-width:var(--container-xl); margin-inline:auto; padding-inline:var(--space-5); display:flex; flex-direction:column; gap:var(--space-4); align-items:center; text-align:center; }
@media (min-width:768px){ .mini-footer-inner{ flex-direction:row; justify-content:space-between; text-align:left; padding-inline:var(--space-8); } }
.mini-footer .footer-tagline{ margin-top:var(--space-2); }
.mini-footer-legal{ display:flex; flex-wrap:wrap; gap:var(--space-4); justify-content:center; }
.mini-footer-legal a{ font-size:var(--text-caption); color:var(--text-tertiary); text-decoration:none; }
.mini-footer-legal a:hover{ color:var(--text-secondary); }
.mini-copy{ font-size:var(--text-caption); color:var(--text-tertiary); }

@media print{
  .header, .legal-toc-aside, .legal-toc-mobile, .mini-footer, .legal-print{ display:none !important; }
  .legal-grid{ display:block; max-width:none; }
  .legal-prose{ max-width:none; }
  body{ background:#fff; }
}
