.legal-page { background: var(--ivory); }
.legal-document__hero { position: relative; overflow: hidden; padding: 168px 0 84px; background: var(--rose-soft); }
.legal-document__hero::after { content: ""; position: absolute; right: -90px; bottom: -150px; width: 330px; height: 330px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; }
.legal-document__hero .site-width { position: relative; z-index: 1; }
.legal-document__hero p { margin: 0 0 14px; color: var(--rose-dark); font-family: var(--font-en); font-size: 13px; font-weight: 600; letter-spacing: .12em; }
.legal-document__hero h1 { max-width: 1000px; margin: 0; font-family: "Zen Maru Gothic", var(--font-jp); font-size: clamp(38px, 4.5vw, 56px); font-weight: 700; line-height: 1.5; }
.legal-document__body { padding: 92px 0 128px; }
.legal-document__body .site-width { max-width: 960px; }
.legal-document__content { padding: clamp(34px, 5vw, 68px); border-radius: 30px 30px 8px 30px; background: var(--white); box-shadow: 0 18px 50px rgba(75,66,63,.07); color: var(--brown); font-size: 15px; line-height: 2; }
.legal-document__content > :first-child { margin-top: 0; }
.legal-document__content > :last-child { margin-bottom: 0; }
.legal-document__content h2 { margin: 2.2em 0 .9em; padding-bottom: .5em; border-bottom: 2px solid var(--rose-soft); font-family: "Zen Maru Gothic", var(--font-jp); font-size: clamp(24px, 3vw, 30px); line-height: 1.6; }
.legal-document__content h3 { margin: 2em 0 .75em; font-size: 20px; line-height: 1.65; }
.legal-document__content p { margin: 0 0 1.5em; }
.legal-document__content ul,
.legal-document__content ol { margin: 0 0 1.7em; padding-left: 1.5em; }
.legal-document__content a { color: var(--rose-dark); text-decoration: underline; text-underline-offset: 3px; }
.legal-document__content table { width: 100%; margin: 1.8em 0; border-collapse: collapse; }
.legal-document__content th,
.legal-document__content td { padding: 16px 18px; border: 1px solid rgba(75,66,63,.15); text-align: left; vertical-align: top; }
.legal-document__content th { width: 30%; background: var(--sage-soft); font-weight: 600; }

@media (max-width: 760px) {
  .legal-document__hero { padding: 128px 0 66px; }
  .legal-document__body { padding: 60px 0 92px; }
  .legal-document__content { padding: 30px 24px; border-radius: 22px 22px 6px 22px; }
  .legal-document__content table,
  .legal-document__content tbody,
  .legal-document__content tr,
  .legal-document__content th,
  .legal-document__content td { display: block; width: 100%; }
  .legal-document__content tr { margin-bottom: 14px; }
}
