.legal-hero {
  max-width: 1440px;
  margin: 0 auto;
  padding: 4.5rem clamp(1.25rem, 4vw, 4rem) 2rem;
}

.legal-hero h1 {
  margin: .3rem 0 .8rem;
  font-size: clamp(2.5rem, 6vw, 4.8rem);
  line-height: 1;
  letter-spacing: -.055em;
}

.legal-hero > p:not(.eyebrow) {
  max-width: 860px;
  color: var(--text-muted, #a9b3cc);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.7;
}

.legal-meta { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.4rem; }
.legal-meta span { padding: .48rem .75rem; border: 1px solid #2b3755; border-radius: 999px; background: #11182a; color: #c7d2eb; font-size: .88rem; }

.legal-review-notice,
.legal-config-warning {
  max-width: calc(1440px - 8rem);
  margin: 0 auto 1rem;
  padding: 1.15rem 1.3rem;
  border: 1px solid #31447b;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(82,104,255,.13), rgba(44,206,255,.05));
  color: #dce5ff;
}

.legal-config-warning { border-color: #8c6434; background: rgba(237,166,67,.1); }
.legal-review-notice strong, .legal-config-warning strong { display: block; margin-bottom: .25rem; font-size: 1rem; }
.legal-review-notice p, .legal-config-warning p { margin: 0; color: #b8c5df; line-height: 1.55; }

.privacy-summary {
  max-width: calc(1440px - 8rem);
  margin: 1.25rem auto 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.privacy-summary article { padding: 1.25rem; border: 1px solid #26324c; border-radius: 18px; background: #101728; }
.privacy-summary span { display: block; color: #7f96ff; font-size: .77rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.privacy-summary strong { display: block; margin: .35rem 0 .45rem; font-size: 1.08rem; color: #f4f7ff; }
.privacy-summary p { margin: 0; color: #aab6cf; line-height: 1.55; }

.legal-layout {
  max-width: 1440px;
  margin: 0 auto;
  padding: 1rem clamp(1.25rem, 4vw, 4rem) 5rem;
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  align-items: start;
  gap: 1.4rem;
}

.legal-toc { position: sticky; top: 92px; max-height: calc(100vh - 120px); overflow: auto; padding: 1.15rem; border: 1px solid #26324c; border-radius: 18px; background: #0f1626; }
.legal-toc .eyebrow { margin: 0 0 .65rem; }
.legal-toc nav { display: grid; gap: .1rem; }
.legal-toc a { padding: .55rem .65rem; border-radius: 9px; color: #aebbd2; font-size: .88rem; line-height: 1.25; text-decoration: none; }
.legal-toc a:hover, .legal-toc a:focus-visible { color: #fff; background: #18223a; }

.legal-document { min-width: 0; overflow: hidden; border: 1px solid #26324c; border-radius: 20px; background: #0f1626; }
.legal-document section { scroll-margin-top: 96px; padding: clamp(1.35rem, 3vw, 2.25rem); border-bottom: 1px solid #222d45; }
.legal-document section:last-child { border-bottom: 0; }
.legal-document h2 { margin: 0 0 1rem; color: #f5f7ff; font-size: clamp(1.3rem, 2vw, 1.65rem); letter-spacing: -.02em; }
.legal-document h3 { margin: 1.35rem 0 .55rem; color: #dde5f8; font-size: 1.05rem; }
.legal-document p, .legal-document li, .legal-document dd { color: #b5c0d8; font-size: 1rem; line-height: 1.75; }
.legal-document p { margin: .65rem 0; }
.legal-document ul, .legal-document ol { margin: .7rem 0; padding-left: 1.35rem; }
.legal-document li + li { margin-top: .42rem; }
.legal-document a, .login-legal a, .footer-links a { color: #90a8ff; }
.legal-document a:hover, .login-legal a:hover, .footer-links a:hover { color: #c5d0ff; }
.legal-document code, .legal-config-warning code { padding: .14rem .35rem; border-radius: 6px; background: #080d18; color: #aebeff; }

.legal-definitions { display: grid; gap: .8rem; margin: 0; }
.legal-definitions div { padding: 1rem; border: 1px solid #26324c; border-radius: 12px; background: #0b1120; }
.legal-definitions dt { margin-bottom: .25rem; color: #f0f4ff; font-weight: 800; }
.legal-definitions dd { margin: 0; }

.legal-table-wrap { margin: 1rem 0; overflow-x: auto; border: 1px solid #28334d; border-radius: 14px; }
.legal-table { width: 100%; border-collapse: collapse; min-width: 650px; }
.legal-table th, .legal-table td { padding: .9rem 1rem; border-bottom: 1px solid #222d45; text-align: left; vertical-align: top; color: #b5c0d8; line-height: 1.55; }
.legal-table th { background: #151e32; color: #f1f4ff; font-size: .88rem; }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-table td:first-child { width: 30%; color: #e3e9f8; font-weight: 700; }

.legal-contact-card { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem; margin: .9rem 0; }
.legal-contact-card p { margin: 0; padding: 1rem; border: 1px solid #293650; border-radius: 12px; background: #0a1120; }
.footer-links { display: flex; gap: 1rem; align-items: center; }
.footer-links a { font-size: .9rem; text-decoration: none; }
.login-legal { max-width: 520px; margin: .25rem auto 0; color: #8997b3; font-size: .84rem; line-height: 1.5; text-align: center; }

@media (max-width: 980px) {
  .privacy-summary { grid-template-columns: 1fr; margin-inline: 1.25rem; }
  .legal-layout { grid-template-columns: 1fr; }
  .legal-toc { position: static; max-height: none; }
  .legal-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal-review-notice, .legal-config-warning { margin-inline: 1.25rem; }
}

@media (max-width: 640px) {
  .legal-hero { padding-top: 2.5rem; }
  .legal-toc nav { grid-template-columns: 1fr; }
  .legal-document section { padding: 1.25rem; }
  .public-nav a:not(.quiet-button) { padding-inline: .45rem; }
  .footer-links { order: 3; width: 100%; justify-content: center; }
}
