.legal-hero {
  padding: 120px 6vw 60px;
  background: var(--purple);
  text-align: center;
}
.legal-hero-label {
  font-size: 0.7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--teal); margin-bottom: 1rem; display: block;
}
.legal-hero-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800; letter-spacing: -0.04em;
  color: var(--white); margin-bottom: 0.75rem;
}
.legal-hero-date {
  font-size: 0.82rem; color: rgba(255,255,255,0.4); font-weight: 400;
}

.legal-body {
  max-width: 820px;
  margin: 0 auto;
  padding: 4rem 6vw 6rem;
}

.legal-toc {
  background: var(--off);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.5rem 2rem;
  margin-bottom: 3rem;
}
.legal-toc-title {
  font-size: 0.72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--muted); margin-bottom: 1rem;
}
.legal-toc ol {
  padding-left: 1.25rem;
  display: flex; flex-direction: column; gap: 0.4rem;
}
.legal-toc li a {
  font-size: 0.875rem; color: var(--blue);
  text-decoration: none; font-weight: 500;
  transition: color 0.2s;
}
.legal-toc li a:hover { color: var(--purple); }

.legal-section {
  margin-bottom: 2.75rem;
  scroll-margin-top: 90px;
}
.legal-section-num {
  font-size: 0.65rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--blue); display: block; margin-bottom: 0.4rem;
}
.legal-section h2 {
  font-size: 1.25rem; font-weight: 800;
  letter-spacing: -0.03em; color: var(--purple);
  margin-bottom: 1rem;
}
.legal-section p {
  font-size: 0.9rem; color: #374151;
  line-height: 1.8; margin-bottom: 0.875rem;
}
.legal-section ul, .legal-section ol {
  padding-left: 1.5rem;
  display: flex; flex-direction: column; gap: 0.5rem;
  margin-bottom: 0.875rem;
}
.legal-section li {
  font-size: 0.9rem; color: #374151; line-height: 1.7;
}
.legal-section strong { color: var(--purple); font-weight: 700; }

.legal-divider {
  height: 1px; background: var(--border);
  margin: 2.75rem 0;
}

.legal-contact-box {
  background: var(--off);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.75rem 2rem;
  margin-top: 3rem;
}
.legal-contact-box h3 {
  font-size: 1rem; font-weight: 800;
  color: var(--purple); margin-bottom: 0.75rem;
}
.legal-contact-box p {
  font-size: 0.875rem; color: var(--muted); line-height: 1.7; margin: 0;
}
.legal-contact-box a { color: var(--blue); text-decoration: none; }
.legal-contact-box a:hover { text-decoration: underline; }
