.legal-body { background: var(--cream-100); }
.legal-header { border-bottom: 1px solid var(--border); background: var(--cream-50); }
.legal-header__inner { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.legal-back { color: var(--forest-900); font-size: .86rem; font-weight: 700; text-underline-offset: .25rem; }
.legal-main { padding-block: 4rem 6rem; }
.legal-hero { max-width: 52rem; margin-bottom: 2.5rem; }
.legal-hero h1 { margin: 0; color: var(--forest-900); font: 600 clamp(2.7rem, 7vw, 5rem)/1 var(--font-display); }
.legal-hero > p { color: var(--muted); }
.draft-notice { margin: 1.5rem 0; padding: 1rem 1.15rem; border: 1px solid #ddbe73; border-radius: .8rem; background: #fff5d9; color: #604716; font-size: .86rem; }
.legal-layout { display: grid; grid-template-columns: 14rem minmax(0, 48rem); gap: 4rem; align-items: start; }
.legal-toc { position: sticky; top: 7rem; display: grid; gap: .5rem; }
.legal-toc strong { margin-bottom: .3rem; color: var(--forest-900); }
.legal-toc a { color: var(--muted); font-size: .82rem; text-decoration: none; }
.legal-toc a:hover { color: var(--forest-900); }
.legal-content { padding: 2rem clamp(1.25rem, 5vw, 3rem); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-soft); }
.legal-content section { scroll-margin-top: 7rem; padding-block: 1rem; }
.legal-content h2 { margin: 0 0 .8rem; color: var(--forest-900); font: 600 1.7rem var(--font-display); }
.legal-content h3 { margin: 1.2rem 0 .5rem; color: var(--forest-900); font-size: 1rem; }
.legal-content p, .legal-content li { color: #4f5d57; font-size: .92rem; }
.legal-content ul, .legal-content ol { padding-right: 1.2rem; }
.legal-content a { color: var(--gold-600); }
.legal-meta { color: var(--muted); font-size: .78rem; }
.legal-footer { padding-block: 2rem; background: var(--forest-950); color: rgba(255,255,255,.7); text-align: center; font-size: .8rem; }
.mock-page { min-height: 100dvh; display: grid; place-items: center; padding: 1rem; }
.mock-card { width: min(30rem, 100%); padding: 2.5rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); text-align: center; box-shadow: var(--shadow-float); }
.mock-badge { display: inline-block; padding: .35rem .65rem; border-radius: 999px; background: #fff0c7; color: #624308; font-size: .72rem; font-weight: 700; }
.mock-logo { width: 4rem; margin: 1.5rem auto .75rem; fill: var(--gold-500); }
.mock-card h1 { margin: 0; color: var(--forest-900); font: 600 2.3rem var(--font-display); }
.mock-card p { color: var(--muted); }
.mock-order { padding: .7rem; border-radius: .6rem; background: var(--cream-100); font-size: .8rem; }
.mock-actions { display: grid; gap: .7rem; margin-top: 1.5rem; }
.mock-error { min-height: 1.5rem; color: var(--danger) !important; font-size: .8rem; }
@media (max-width: 760px) { .legal-layout { grid-template-columns: 1fr; gap: 1.5rem; } .legal-toc { position: static; padding: 1rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--white); } }

