/* ─── Legal pages (terms, privacy, cookies) ───────────────────────────────── */
.legal__head { background: var(--night-grad); color: var(--paper); padding: clamp(56px, 7vw, 96px) 0 clamp(40px, 5vw, 64px); }
.legal__head .label { color: #9aa3bd; }
.legal__meta { margin: 20px 0 0; font: 500 .84rem/1.4 var(--mono); color: #c3c8d6; }

.legal__grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 72px; padding-top: 64px; padding-bottom: 112px; }

.legal__aside { position: sticky; top: calc(var(--header-h) + 32px); align-self: start; max-height: calc(100vh - var(--header-h) - 64px); overflow-y: auto; }
.legal__aside nav + nav { margin-top: 36px; }
.legal__toc, .legal__docs { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--ink); font-size: .9rem; line-height: 1.35; }
.legal__toc { counter-reset: toc; }
.legal__toc li, .legal__docs li { border-bottom: 1px solid var(--line-soft); }
.legal__toc a, .legal__docs a { display: flex; gap: 10px; padding: 9px 0; text-decoration: none; color: var(--ink-2); }
.legal__toc a::before { counter-increment: toc; content: counter(toc, decimal-leading-zero); flex: none; font: 500 .76rem/1.6 var(--mono); color: var(--mute); }
.legal__toc a:hover, .legal__docs a:hover { color: var(--signal); }
.legal__docs a[aria-current="page"] { font-weight: 600; }
.legal__docs a[aria-current="page"]::before { content: "→"; color: var(--signal); }

.legal__body { max-width: 760px; counter-reset: sec; }
.legal__body p, .legal__body li, .legal__body dd { color: #2b2d33; }
.legal__body a { color: var(--deep); }
.legal__body a:hover { color: var(--signal); }
.legal__body ul, .legal__body ol { margin: 0 0 1em; padding-left: 1.25em; }
.legal__body li + li { margin-top: .45em; }
.legal__body address { font-style: normal; line-height: 1.7; }
.legal__body code { font: 500 .85em/1 var(--mono); background: var(--paper-2); padding: .15em .35em; white-space: nowrap; }

.legal__sec { padding-top: 48px; scroll-margin-top: calc(var(--header-h) + 16px); }
.legal__sec h2 { display: flex; gap: 14px; align-items: baseline; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--ink); font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.2; letter-spacing: -.02em; }
.legal__sec h2::before { counter-increment: sec; content: counter(sec, decimal-leading-zero); flex: none; font: 500 .8rem/1 var(--mono); color: var(--signal); }

.legal__summary { padding: 2px 0 2px 24px; border-left: 2px solid var(--signal); }
.legal__summary h2 { margin-bottom: 14px; font: 500 .76rem/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--mute); }
.legal__summary ul { margin-bottom: 0; }
.legal__summary li { color: var(--ink); }
.legal__summary > p { margin: 14px 0 0; font-size: .88rem; color: var(--mute); }

.legal__note { margin: 0 0 1.4em; padding: 2px 0 2px 20px; border-left: 2px solid var(--signal); }
.legal__note p { margin: 0; font-weight: 500; color: var(--ink); }

.legal__body dl { margin: 0; }
.legal__body dt { padding-top: 14px; font-weight: 600; }
.legal__body dt:first-child { padding-top: 0; }
.legal__body dd { margin: 4px 0 0; padding-bottom: 14px; border-bottom: 1px solid var(--line-soft); }

.legal__table { margin: 0 0 1.4em; overflow-x: auto; }
.legal__table table { width: 100%; border-collapse: collapse; font-size: .9rem; line-height: 1.5; }
.legal__table th { padding: 0 16px 10px 0; text-align: left; font: 500 .74rem/1.2 var(--mono); letter-spacing: .05em; text-transform: uppercase; color: var(--mute); border-bottom: 1px solid var(--ink); }
.legal__table td { padding: 14px 16px 14px 0; vertical-align: top; border-bottom: 1px solid var(--line-soft); color: #2b2d33; }
.legal__table td:first-child { font-weight: 500; color: var(--ink); min-width: 9em; }

@media (max-width: 1080px) {
  .legal__grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 40px; }
  .legal__aside { position: static; max-height: none; overflow: visible; display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-bottom: 16px; }
  .legal__aside nav + nav { margin-top: 0; }
}

@media (max-width: 600px) {
  .legal__grid { padding-bottom: 80px; }
  .legal__aside { grid-template-columns: minmax(0, 1fr); }
  .legal__aside nav + nav { margin-top: 32px; }
  .legal__summary { padding-left: 18px; }
  .legal__table td:first-child { min-width: 7em; }
}
