.legal-main { padding-block: 64px 88px; }
.legal-heading { max-width: 840px; margin-bottom: 48px; }
.legal-heading h1 { font-size: clamp(36px, 5vw, 64px); line-height: 1.08; letter-spacing: -.04em; margin-block: 18px; }
.legal-date { color: var(--muted); font-size: 14px; }
.legal-intro { margin-top: 24px; font-size: 19px; line-height: 1.65; }
.legal-layout { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 760px); gap: 64px; align-items: start; }
.legal-index { position: sticky; top: 120px; font-size: 14px; line-height: 1.5; }
.legal-index > p { font-weight: 700; margin-bottom: 12px; }
.legal-index ol { margin: 0; padding-left: 20px; }
.legal-index a { display: inline-block; padding-block: 8px; }
.legal-content section { border-top: 1px solid var(--line); padding-block: 28px 36px; scroll-margin-top: 112px; }
.legal-content h2 { font-size: 24px; line-height: 1.3; margin-bottom: 18px; }
.legal-content p { font-size: 16px; line-height: 1.8; margin-top: 14px; }
.legal-content .button { margin-top: 24px; }
.legal-page .site-footer { border-top: 1px solid var(--line); }
@media (max-width: 800px) {
  .legal-main { padding-block: 36px 48px; }
  .legal-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .legal-index { position: static; }
  .legal-heading { margin-bottom: 32px; }
  .legal-intro { font-size: 17px; }
}
