.legal-header { background:#fff; border-bottom:1px solid var(--border-color); }
.legal-header .container { min-height:76px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; padding-top:14px; padding-bottom:14px; }
.legal-nav, .legal-footer nav { display:flex; flex-wrap:wrap; gap:12px 24px; }
.legal-nav a, .legal-card a { color:var(--primary-color); text-decoration:underline; text-underline-offset:4px; }
.legal-nav a[aria-current="page"] { font-weight:700; }
.legal-main { width:100%; padding:48px 20px 72px; background:var(--bg-secondary); }
.legal-card { max-width:920px; margin:0 auto; padding:48px; background:#fff; border:1px solid var(--border-color); border-radius:16px; overflow-wrap:anywhere; }
.legal-card h1 { font-size:clamp(1.75rem,5vw,2.5rem); line-height:1.35; margin-bottom:12px; }
.legal-card h2 { font-size:1.3rem; margin:32px 0 12px; line-height:1.5; scroll-margin-top:24px; }
.legal-card h3 { font-size:1.05rem; margin:20px 0 8px; }
.legal-card p, .legal-card li { margin:10px 0; line-height:1.85; color:#4b5563; }
.legal-card strong { color:var(--text-color); }
.legal-card ul, .legal-card ol { padding-left:24px; }
.legal-card ul { list-style:disc; }
.legal-card .legal-meta { font-size:.9rem; color:#6b7280; }
.legal-notice { margin:24px 0; padding:16px 20px; border-left:3px solid var(--primary-color); background:#eef2ff; border-radius:0 8px 8px 0; }
.legal-toc { padding:20px 24px; background:#f9fafb; border:1px solid var(--border-color); border-radius:10px; }
.legal-toc ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; margin-top:8px; }
.legal-toc li { margin:6px 0; }
.legal-contact { padding-top:16px; margin-top:32px; border-top:1px solid var(--border-color); }
.legal-footer { padding:28px 20px; background:#111827; color:#d1d5db; text-align:center; }
.legal-footer nav { justify-content:center; margin-bottom:12px; }
.legal-footer a { text-decoration:underline; text-underline-offset:4px; }
.legal-footer p { font-size:.875rem; }
.legal-footer p + p { margin-top:6px; }
@media (max-width:600px) {
    .legal-main { padding:24px 14px 40px; }
    .legal-card { padding:26px 20px; border-radius:12px; }
    .legal-toc { padding:16px; }
    .legal-toc ol { grid-template-columns:minmax(0,1fr); }
    .legal-notice { padding:12px 16px; }
    .legal-nav { gap:10px 18px; font-size:.9rem; }
}
@media print {
    .legal-header, .legal-footer, .legal-toc { display:none; }
    .legal-main, .legal-card { padding:0; border:0; background:#fff; }
    .legal-card { max-width:none; }
    .legal-card h2, .legal-card h3 { break-after:avoid; }
    .legal-card a { color:inherit; }
}
