/* Standalone legal pages remain readable without the application JavaScript. */
.legal-shell { margin:0; min-height:100vh; color:#0d1522; background:#f5f8fd; font-family:'Noto Sans JP Variable','Noto Sans JP','Yu Gothic',Meiryo,sans-serif; font-size:14px; line-height:1.9; overflow-wrap:anywhere; }
body:has(> .legal-shell) { margin:0; }
.legal-shell,.legal-shell * { box-sizing:border-box; }
.legal-shell a { color:#365cbb; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.legal-shell a:hover { color:#284a9d; }
.legal-shell :is(a,button,summary):focus-visible { outline:3px solid #365cbb; outline-offset:4px; border-radius:3px; }
.legal-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 20px; padding:18px max(28px,calc((100% - 860px)/2)); color:#fff; background:#28313c; }
.legal-header a { color:#fff; }
.legal-header a:hover { color:#dce7ff; }
.legal-header :is(a,button):focus-visible { outline-color:#a1b8ff; }
.legal-brand { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:0; font-size:24px; font-weight:800; line-height:1.4; letter-spacing:-.04em; text-decoration:none !important; }
.legal-brand img { width:34px; height:34px; flex-shrink:0; }
.legal-back { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 12px; border:1px solid #8291a4; border-radius:9px; font-size:13px; line-height:1.5; text-decoration:none !important; }
.legal-main { width:100%; max-width:900px; margin:0 auto; padding:28px 20px 40px; }
.legal-document { min-width:0; padding:36px 40px; border:1px solid #dce4ef; border-radius:16px; background:#fff; }
.legal-document h1 { margin:0; color:#0d1522; font-size:clamp(26px,3.8vw,36px); font-weight:800; line-height:1.45; letter-spacing:-.04em; }
.legal-document h2 { margin:28px 0 12px; color:#0d1522; font-size:20px; font-weight:750; line-height:1.6; letter-spacing:-.02em; }
.legal-document h3 { margin:20px 0 8px; color:#0d1522; font-size:16px; font-weight:700; line-height:1.7; }
.legal-document p { margin:12px 0; line-height:1.9; }
.legal-document :is(ul,ol) { margin:12px 0; padding-left:1.5em; }
.legal-document li { margin:6px 0; padding-left:2px; line-height:1.9; }
.legal-document li > :is(ul,ol) { margin-block:6px; }
.legal-document strong { color:#0d1522; font-weight:700; }
.legal-document :is(p,li,dd) > a { overflow-wrap:anywhere; }
.legal-updated { display:block; margin:8px 0 22px; color:#4c607e; font-size:13px; line-height:1.7; }
.legal-document .legal-updated { margin:8px 0 22px; line-height:1.7; }
.legal-lead { color:#4c607e; }
.legal-section { margin-top:28px; scroll-margin-top:24px; }
.legal-section + .legal-section { padding-top:24px; border-top:1px solid #e7edf5; }
.legal-section > h2:first-child { margin-top:0; }
.legal-section > :last-child { margin-bottom:0; }
.legal-toc { margin:24px 0 28px; padding:18px 20px; border:1px solid #dce4ef; border-radius:12px; background:#f5f8fd; }
.legal-toc :is(h2,h3) { margin:0 0 8px; font-size:15px; line-height:1.6; }
.legal-toc > :is(ul,ol) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; margin:0; }
.legal-toc li { min-width:0; margin:0; }
.legal-toc a { display:inline-flex; align-items:center; min-height:44px; padding:6px 0; font-size:13px; line-height:1.7; }
.legal-note,.legal-contact { margin:20px 0; padding:16px 20px; border:1px solid #cbdcf5; border-radius:12px; color:#4c607e; background:#edf3ff; }
.legal-note > :first-child,.legal-contact > :first-child { margin-top:0; }
.legal-note > :last-child,.legal-contact > :last-child { margin-bottom:0; }
.legal-contact :is(h2,h3) { margin-top:0; font-size:16px; }
.legal-contact dl { margin:12px 0 0; }
.legal-contact dt { margin-top:12px; color:#0d1522; font-weight:700; }
.legal-contact dd { margin:3px 0 0; }
.legal-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; margin-top:28px; }
.legal-actions a { display:inline-flex; align-items:center; min-height:44px; }
.legal-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 20px; width:calc(100% - 40px); max-width:860px; margin:0 auto; padding:18px 0 28px; border-top:1px solid #dce4ef; color:#4c607e; font-size:13px; }
.legal-footer :is(nav,p) { display:flex; align-items:center; flex-wrap:wrap; gap:4px 18px; margin:0; }
.legal-footer a { display:inline-flex; align-items:center; min-height:44px; }

/* Registration links open a separate page while preserving the entered name. */
.market-app .page-footer .footer-legal-link { display:inline-flex; align-items:center; min-height:44px; }
#modal-root .auth-modal .auth-legal-notice { margin:0 0 16px; color:#4c607e; font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
#modal-root .auth-modal .auth-legal-notice a { color:#365cbb; text-decoration:underline; text-underline-offset:3px; }
#modal-root .auth-modal .auth-legal-notice a:hover { color:#284a9d; }
#modal-root .auth-modal .auth-legal-notice > span { display:block; margin-top:3px; color:#4c607e; font-size:12px; }
#modal-root .auth-modal .auth-unavailable + .auth-legal-notice { margin-top:14px; }

@media (max-width:600px) {
  .legal-header { padding:12px 16px; gap:8px 12px; }
  .legal-brand { font-size:21px; }
  .legal-brand img { width:30px; height:30px; }
  .legal-back { padding-inline:10px; font-size:12px; }
  .legal-main { padding:20px 14px 28px; }
  .legal-document { padding:24px 18px; border-radius:14px; }
  .legal-document h2 { font-size:18px; }
  .legal-updated,.legal-document .legal-updated { margin-bottom:18px; }
  .legal-section { margin-top:24px; }
  .legal-section + .legal-section { padding-top:20px; }
  .legal-toc { margin:20px 0 24px; padding:14px 16px; }
  .legal-toc > :is(ul,ol) { grid-template-columns:minmax(0,1fr); }
  .legal-note,.legal-contact { padding:14px 16px; }
  .legal-footer { width:calc(100% - 28px); padding:14px 0 22px; }
}
@media (max-width:360px) {
  .legal-header { padding-inline:14px; }
  .legal-brand { font-size:20px; }
  .legal-document { padding-inline:16px; }
  .legal-document h1 { font-size:24px; }
  .legal-toc,.legal-note,.legal-contact { padding-inline:14px; }
}
@media print {
  .legal-shell { page:legal; min-height:0; color:#000; background:#fff; font-size:10.5pt; line-height:1.8; }
  .legal-header,.legal-footer,.legal-toc,.legal-actions { display:none; }
  .legal-main { max-width:none; margin:0; padding:0; }
  .legal-document { padding:0; border:0; border-radius:0; }
  .legal-document h1 { font-size:22pt; }
  .legal-document h2 { font-size:14pt; }
  .legal-document :is(h2,h3) { break-after:avoid; }
  .legal-document :is(p,li) { orphans:3; widows:3; }
  .legal-shell a { color:#000; }
  .legal-note,.legal-contact { background:#fff; border-color:#bbb; }
}
@page legal { margin:18mm; }
