/* Legal links and documents follow the existing HIC palette. */
.legal-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.legal-links a { text-underline-offset:4px; }
.hero-legal-links { margin-top:16px; font-size:14px; color:#fff; }
.document-panel { margin:0 0 24px; padding:22px 24px; border:1px solid var(--line,#d6e1e6); border-radius:14px; background:#fff; }
.document-panel h3 { margin:0 0 10px; font-size:1.1rem; }
.document-panel p { margin:0 0 12px; }
.document-panel .legal-links { margin-bottom:18px; color:var(--blue-dark,#123f54); }
.document-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
.document-download { display:inline-flex; min-height:44px; align-items:center; padding:10px 18px; border:1px solid #123f54; border-radius:6px; color:#fff; background:#123f54; font-size:1rem; font-weight:700; text-decoration:none; }
.document-actions a:not(.document-download) { color:#123f54; text-underline-offset:4px; }
.site-footer .legal-links { font-size:14px; }
.site-footer .container { flex-wrap:wrap; }
.legal-dialog { width:min(850px,calc(100% - 24px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #cbdde4; border-radius:14px; color:#142e3c; background:#fff; box-shadow:0 20px 80px #0005; }
.legal-dialog[open] { display:flex; flex-direction:column; }
.legal-dialog::backdrop { background:#071724b8; }
.legal-dialog-header { display:flex; flex-shrink:0; align-items:center; justify-content:space-between; gap:16px; padding:18px 24px; border-bottom:1px solid #cbdde4; }
.legal-dialog-header h2 { margin:0; font-size:1.25rem; }
.legal-dialog-header button, .legal-page-actions button { min-height:44px; padding:8px 16px; border:1px solid #b3c8d4; border-radius:6px; background:#fff; color:#123f54; font:inherit; cursor:pointer; }
.legal-dialog-content { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:24px; }
.legal-dialog-footer { flex-shrink:0; padding:12px 24px; border-top:1px solid #cbdde4; font-size:14px; }
.legal-dialog-footer a { color:#123f54; text-underline-offset:4px; }
body.legal-modal-open { overflow:hidden; }
.legal-page { margin:0; color:#142e3c; background:#f5f7f8; font:16px/1.9 "Noto Sans JP",Meiryo,sans-serif; }
.legal-document { max-width:850px; margin:32px auto; padding:32px; background:white; }
.legal-page-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:28px; }
.legal-page-actions a,.legal-document a { color:#123f54; }
.legal-document h1 { font-size:1.5rem; }
.legal-document section, .legal-dialog-content section { margin:0 0 28px; }
.legal-document section h2, .legal-dialog-content section h2 { margin:0 0 12px; font-size:1.125rem; line-height:1.7; }
.legal-document section p, .legal-dialog-content section p { margin:0 0 10px; font-size:1rem; line-height:1.9; overflow-wrap:anywhere; }
.legal-date { color:#566975; }
.legal-links a:focus-visible, .document-actions a:focus-visible, .legal-dialog a:focus-visible, .legal-dialog button:focus-visible { outline:3px solid #009ee3; outline-offset:4px; }
@media(max-width:640px) { .document-panel { padding:18px; } .legal-dialog-header,.legal-dialog-content { padding:16px; } .legal-dialog-header h2 { font-size:1.1rem; } .legal-document { margin:0; padding:20px; } .site-footer .legal-links { gap:12px 18px; } }
@media print { .legal-page { background:#fff; } .legal-document { margin:0; padding:0; max-width:none; } .legal-page-actions { display:none; } .legal-document h2 { break-after:avoid; } .legal-document p { orphans:3; widows:3; } }

