/* Readable policy documents, with no script or third-party additions. */
.legal-page { padding: 40px 0 24px; overflow-wrap: anywhere; }
.legal-header { max-width: 800px; }
.legal-back { display: inline-block; margin-bottom: 24px; }
.legal-header h1 { font-size: clamp(30px, 4vw, 46px); }
.legal-metadata { display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: 14px; margin: 24px 0; }
.legal-metadata div { min-width: 130px; }
.legal-metadata dt { color: var(--ink-2); }
.legal-metadata dd { margin: 2px 0 0; font-weight: 600; }
.legal-notice { padding: 16px 20px; border-left: 3px solid #94620a; background: #fff3d6; color: #604700; font-size: 16px; }
.legal-notice strong { display: block; margin-bottom: 4px; }
.legal-layout { display: grid; grid-template-columns: minmax(200px, 270px) minmax(0, 720px); gap: 48px; margin-top: 40px; align-items: start; }
.legal-contents { font-size: 14px; padding-right: 20px; border-right: 1px solid var(--line); }
.legal-contents h2 { font-size: 18px; }
.legal-contents ol { list-style: none; padding: 0; margin: 0; }
.legal-contents a { display: inline-block; padding: 7px 0; text-underline-offset: 3px; }
.legal-copy { line-height: 1.75; }
.legal-copy p { margin: 0 0 20px; }
.legal-copy h2 { font-size: 24px; line-height: 1.3; margin: 36px 0 16px; scroll-margin-top: 90px; }
.legal-copy h2:first-child { margin-top: 0; }
.legal-related { border-top: 1px solid var(--line); margin-top: 48px; padding-top: 24px; }
.legal-related h2 { font-size: 20px; }
.legal-related ul { display: flex; flex-wrap: wrap; gap: 12px 28px; list-style: none; padding: 0; }
.legal-page a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.legal-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; padding: 0; margin: 32px 0; border-top: 1px solid var(--line); }
.legal-cards li { padding: 24px 24px 24px 0; border-bottom: 1px solid var(--line); }
.legal-cards h2 { font-size: 22px; }
.legal-cards p { color: var(--ink-2); }
.legal-download { font-size: 14px; }
@media (max-width: 760px) {
  .legal-page { padding-top: 28px; }
  .legal-layout, .legal-cards { grid-template-columns: 1fr; gap: 24px; }
  .legal-contents { border-right: 0; border-bottom: 1px solid var(--line); padding: 0 0 24px; }
  .legal-cards { gap: 0; }
  .legal-cards li { padding-right: 0; }
}
@media print {
  .topbar, .legal-back, .legal-contents, .legal-related, .legal-download { display: none; }
  .legal-layout { display: block; }
  .legal-page { padding: 0; }
  .legal-copy h2 { break-after: avoid; }
  .legal-notice { border: 1px solid #604700; }
}
