.legal-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  padding-block: 72px 112px;
}

.legal-document { width: 100%; min-width: 0; max-width: 78ch; color: #39333f; font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
.legal-document [id] { scroll-margin-top: 108px; }
.legal-document h1 { margin: 0 0 24px; color: #242027; font-size: clamp(34px, 4.2vw, 54px); line-height: 1.12; letter-spacing: -.04em; font-weight: 650; }
.legal-document h2 { margin: 40px 0 16px; color: #242027; font-size: 25px; line-height: 1.3; letter-spacing: -.025em; }
.legal-document h3 { margin: 32px 0 12px; color: #242027; font-size: 20px; line-height: 1.4; letter-spacing: -.015em; }
.legal-document h4, .legal-document h5, .legal-document h6 { margin: 24px 0 10px; font-size: 17px; line-height: 1.5; }
.legal-document p { margin: 0 0 18px; }
.legal-document ul, .legal-document ol { margin: 0 0 22px; padding-left: 26px; }
.legal-document li { margin: 8px 0; }
.legal-document li > ul, .legal-document li > ol { margin-block: 8px; }
.legal-document a { color: #6016c7; text-decoration: underline; text-underline-offset: 3px; }
.legal-document a:hover { color: #42108a; }
.legal-document a:focus-visible, .legal-table-scroll:focus-visible { outline: 2px solid #6716d8; outline-offset: 4px; }
.legal-document strong, .legal-document b { font-weight: 650; }
.legal-document blockquote { margin: 24px 0; padding-left: 22px; border-left: 3px solid #d4c3ed; }
.legal-document hr { border: 0; border-top: 1px solid #e7e2eb; margin: 32px 0; }
.legal-source-header { padding-bottom: 20px; border-bottom: 1px solid #e7e2eb; margin-bottom: 30px; }
.legal-source-header p { color: #625b6d; font-size: 17px; line-height: 1.7; }
.legal-source-toc { margin: 0 0 34px; padding: 24px; background: #f8f6fb; border: 1px solid #eee8f5; border-radius: 14px; font-size: 14px; line-height: 1.6; }
.legal-source-toc h2, .legal-source-toc h3 { margin: 0 0 14px; font-size: 16px; letter-spacing: 0; }
.legal-source-toc ul, .legal-source-toc ol { margin-bottom: 0; }
.legal-source-toc li { margin: 6px 0; }
.legal-source-body > :first-child { margin-top: 0; }
.legal-table-scroll { max-width: 100%; overflow-x: auto; margin: 24px 0; border: 1px solid #e2dce8; border-radius: 10px; }
.legal-document table { width: 100%; min-width: 580px; border-collapse: collapse; font-size: 14px; line-height: 1.65; }
.legal-document th, .legal-document td { padding: 14px 16px; text-align: left; vertical-align: top; border: 1px solid #e2dce8; }
.legal-document th { background: #f7f4fa; color: #302738; font-weight: 650; }
.legal-document td p:last-child, .legal-document th p:last-child { margin-bottom: 0; }
.legal-document caption { padding: 14px 16px; text-align: left; font-weight: 600; }

@media (max-width: 900px) {
  .legal-page { padding-block: 42px 80px; }
}

@media (max-width: 480px) {
  .legal-page { padding-block: 28px 64px; }
  .legal-document { font-size: 15px; line-height: 1.75; }
  .legal-document h2 { font-size: 23px; }
  .legal-document h3 { font-size: 19px; }
  .legal-source-toc { padding: 18px; }
  .legal-source-header p { font-size: 16px; }
}

@media print {
  .legal-page { display: block; padding: 0; }
  .legal-document { max-width: none; font-size: 11pt; color: #000; }
  .legal-table-scroll { overflow: visible; }
  .legal-document table { min-width: 0; }
}

.legal-document-navigation { display: flex; flex-wrap: wrap; gap: 10px 20px; width: 100%; max-width: 78ch; margin-bottom: 36px; padding-bottom: 24px; border-bottom: 1px solid #e7e2eb; font-size: 14px; line-height: 1.5; }
.legal-document-navigation a { color: #625b6d; text-underline-offset: 3px; }
.legal-document-navigation a[aria-current="page"] { color: #6016c7; font-weight: 600; }
.legal-document-navigation a:focus-visible { outline: 2px solid #6716d8; outline-offset: 4px; }
