.legal { max-width: 820px; padding-top: clamp(40px, 7vw, 80px); padding-bottom: 40px; }
.legal h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); margin-top: 12px; }
.legal .upd { margin-top: 10px; color: var(--ink-soft); font-size: .95rem; }
.legal-body { margin-top: 34px; background: var(--card); border-radius: var(--r-l); box-shadow: var(--shadow-1); padding: clamp(22px, 5vw, 52px); color: var(--ink-2); font-size: 1.02rem; line-height: 1.7; }
.legal-body > :first-child { margin-top: 0; }
.legal-body h2 { font-size: clamp(1.3rem, 2.4vw, 1.65rem); letter-spacing: -0.02em; color: var(--ink); margin: 42px 0 12px; scroll-margin-top: 24px; }
.legal-body h3 { font-size: 1.12rem; color: var(--ink); margin: 26px 0 8px; letter-spacing: -0.01em; }
.legal-body p { margin: 0 0 14px; }
.legal-body ul { margin: 0 0 16px; padding-left: 22px; }
.legal-body li { margin: 4px 0; }
.legal-body li::marker { color: var(--green); }
.legal-body strong { color: var(--ink); }
.legal-body a { color: var(--green-deep); text-underline-offset: 3px; }
.legal-body .toc { margin: 26px 0 8px; padding: 20px 24px; border-radius: var(--r-m); background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.legal-body .toc ul { columns: 2 240px; column-gap: 28px; padding-left: 0; list-style: none; margin: 8px 0 0; }
.legal-body .toc li { break-inside: avoid; }
.legal-body .toc a { text-decoration: none; font-weight: 600; }
.legal-body .toc a:hover { text-decoration: underline; }
.legal-alt { margin-top: 22px; color: var(--ink-soft); }
.legal-alt a { color: var(--green-deep); }
.legal-foot { padding: 10px var(--gutter) 50px; color: var(--ink-soft); font-size: .88rem; }
