/* 利用規約・プライバシーポリシー・特定商取引法に基づく表記（2026-11-04）。lp.css のあとに読む。色・文字・幅は lp.css のものを使う */
.legal-page .nav a[aria-current="page"] { color: var(--green); text-decoration: underline; text-underline-offset: 6px; }
.legal { padding-block: 72px 116px; }
.legal-head { padding-bottom: 48px; border-bottom: 1px solid var(--navy); }
.legal-title { margin-top: 26px; font-size: clamp(36px, 5vw, 72px); line-height: 1.3; letter-spacing: -.05em; }
.legal-lead { max-width: 760px; margin-top: 28px; font-size: var(--copy-size); font-weight: 500; }
.legal-meta { display: flex; flex-wrap: wrap; gap: 8px 32px; margin-top: 24px; font-size: 15px; }
.legal-meta div { display: flex; gap: 12px; }
.legal-meta dt { color: var(--muted); }
.legal-meta dd { font-weight: 700; }
.legal-draft { margin-top: 28px; padding: 16px 20px; border-left: 4px solid #b7791f; background: #fff8e6; font-size: 15px; font-weight: 500; }
.tbd { display: inline-block; padding: 0 .35em; border-radius: 4px; background: #fff1cc; color: #6b4300; font-weight: 700; }
.legal-body { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 72px; margin-top: 56px; }
.legal-toc { position: sticky; top: 24px; align-self: start; font-size: 15px; }
.legal-toc > p { margin-bottom: 12px; font-weight: 700; color: var(--green); }
.legal-toc ol { border-top: 1px solid var(--line); }
.legal-toc li { border-bottom: 1px solid var(--line); }
.legal-toc a { display: block; padding: 9px 0; line-height: 1.5; }
.legal-toc a:hover { color: var(--green); }
.legal-text { max-width: 860px; }
.legal-text section { padding-block: 36px; border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.legal-text section:first-child { padding-top: 0; }
.legal-text h2 { margin-bottom: 18px; font-size: clamp(20px, 1.8vw, 26px); letter-spacing: -.03em; }
.legal-text h3 { margin: 22px 0 8px; font-size: 18px; }
.legal-text p, .legal-text li { font-size: 16px; line-height: 1.95; }
.legal-text p + p, .legal-text p + ol, .legal-text ol + p { margin-top: 12px; }
.legal-text ol { counter-reset: item; }
.legal-text ol > li { position: relative; counter-increment: item; padding-left: 2em; }
.legal-text ol > li + li { margin-top: 8px; }
.legal-text ol > li::before { content: counter(item); position: absolute; left: 0; font-family: var(--font-latin), sans-serif; font-weight: 700; color: var(--green); }
.legal-text ol ol { margin-top: 8px; }
.legal-text ol ol > li { padding-left: 2.6em; }
.legal-text ol ol > li::before { content: "（" counter(item) "）"; font-family: var(--font); font-weight: 500; color: var(--navy); }
.legal-text ul.dots > li { position: relative; padding-left: 1.2em; }
.legal-text ul.dots > li::before { content: "・"; position: absolute; left: 0; }
.legal-important { margin-top: 4px; padding: 20px 22px; background: #eef7f2; border-left: 4px solid var(--green); }
.legal-important h2 { color: var(--green); }
.legal-table { border-top: 1px solid var(--navy); }
.legal-table > div { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; padding-block: 22px; border-bottom: 1px solid var(--line); }
.legal-table dt { font-weight: 700; }
.legal-table dd { font-size: 16px; line-height: 1.95; }
.legal-table dd p + p { margin-top: 8px; }
.legal-vendors > div { padding-block: 14px; border-bottom: 1px solid var(--line); }
.legal-vendors > div:first-child { border-top: 1px solid var(--line); }
.legal-vendors dt { font-weight: 700; }
.legal-vendors dd { margin-top: 4px; }
.legal-single { max-width: 1000px; }
.legal-single > .legal-table { border-top: 0; }
.legal-note { margin-top: 28px; }
.legal-text p a, .legal-note a { color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.legal-back { margin-top: 48px; max-width: 360px; }
@media (max-width: 1100px) {
  .legal-body { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 820px) {
  .legal { padding-block: 48px 80px; }
  .legal-body { grid-template-columns: minmax(0, 1fr); gap: 36px; margin-top: 36px; }
  .legal-toc { position: static; }
  .legal-table > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}
@media (max-width: 540px) {
  .legal { padding-block: 36px 64px; }
  .legal-head { padding-bottom: 32px; }
  .legal-title { font-size: 9vw; }
  .legal-text section { padding-block: 28px; }
  .legal-text p, .legal-text li, .legal-table dd { font-size: 15px; }
  .legal-draft { padding: 14px 16px; font-size: 14px; }
}
