/** Legal documents: readable measure, anchored contents and print-friendly layout.
 * Uses the shared Tailwind tokens without changing the approved homepage. */
.legal-hero { padding:68px 0 50px; border-bottom:1px solid var(--color-line); }
.legal-hero h1 { font-size:clamp(3.4rem,6vw,5.8rem); max-width:1000px; margin-bottom:25px; }
.legal-lead { font-family:var(--font-display); font-size:clamp(1.6rem,2.5vw,2rem); line-height:1.45; max-width:850px; color:var(--color-sage); }
.legal-grid { display:grid; grid-template-columns:265px minmax(0,1fr); gap:85px; padding-top:55px; padding-bottom:100px; align-items:start; }
.legal-sidebar { position:sticky; top:125px; max-height:calc(100dvh - 150px); overflow-y:auto; scrollbar-width:thin; }
.legal-sidebar nav > p { text-transform:uppercase; font-size:10px; letter-spacing:.15em; color:var(--color-muted); margin-bottom:15px; }
.legal-sidebar ol { padding:0; margin:0; list-style:none; }
.legal-sidebar li { border-bottom:1px solid var(--color-line); }
.legal-sidebar a { display:flex; gap:13px; font-size:12px; line-height:1.6; padding:11px 0; }
.legal-sidebar a > span { color:var(--color-sage); min-width:20px; }
.legal-sidebar a:hover { color:var(--color-sage); text-decoration:underline; text-underline-offset:3px; }
.legal-document { min-width:0; max-width:790px; }
.legal-document p,.legal-document li { font-size: var(--text-reading); line-height:1.95; color:var(--color-muted); overflow-wrap:anywhere; }
.legal-document p + p { margin-top:19px; }
.legal-document strong { font-weight:600; color:var(--color-forest); }
.legal-document > .fine { margin-top:18px; font-size:12px; }
.legal-document a { color:var(--color-olive); text-decoration:underline; text-underline-offset:3px; }
.legal-section { margin-top:45px; padding-top:38px; border-top:1px solid var(--color-line); scroll-margin-top:125px; }
.legal-section h2 { display:flex; align-items:flex-start; gap:18px; font-size:clamp(1.9rem,2.5vw,2.45rem); line-height:1.2; margin-bottom:22px; letter-spacing:-.02em; }
.legal-section .section-number { flex:none; margin-top:8px; font-family:var(--font-body); font-size:11px; font-weight:400; letter-spacing:0; }
.legal-section ul { list-style:disc; padding-left:20px; margin:20px 0; }
.legal-section li + li { margin-top:13px; }
.legal-example { padding:28px; margin-block:22px; background:var(--color-wash); border-radius:4px; }
.legal-example h3 { font-family:var(--font-display); font-size:27px; font-weight:500; line-height:1.25; margin-bottom:20px; }
.legal-page .site-footer a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
@media(max-width:1100px) { .legal-grid { grid-template-columns:230px minmax(0,1fr); gap:45px; } }
@media(max-width:850px) {
 .legal-grid { grid-template-columns:1fr; gap:40px; }
 .legal-sidebar { position:static; max-height:none; overflow:initial; padding:25px; background:var(--color-wash); border-radius:4px; }
 .legal-sidebar ol { display:grid; grid-template-columns:1fr 1fr; gap:0 25px; }
}
@media(max-width:640px) {
 .legal-hero { padding:45px 0 35px; }
 .legal-hero h1 { font-size:3.3rem; }
 .legal-grid { padding-top:35px; padding-bottom:65px; }
 .legal-sidebar { padding:22px; }
 .legal-sidebar ol { grid-template-columns:1fr; }
 .legal-section { margin-top:34px; padding-top:30px; }
 .legal-section h2 { font-size:1.95rem; gap:13px; }
 .legal-example { padding:22px; }
}
/* Highlighted example retains its original reading size. */
.legal-example p,.legal-example li { font-size: 14px; }
@media print {
 .legal-page .site-header,.legal-page .site-footer,.legal-sidebar,.skip-link { display:none; }
 .legal-hero { padding:0 0 20px; }
 .legal-hero h1 { font-size:32pt; }
 .legal-grid { display:block; padding:0; }
 .legal-document { max-width:none; }
 .legal-document p,.legal-document li { color:black; font-size:10pt; }
 .legal-section { margin-top:20px; padding-top:15px; }
 .legal-section h2 { font-size:18pt; break-after:avoid; }
 .legal-section .number-kanji { display:none; }
 .legal-document a { color:inherit; }
}
