.legal-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.5rem clamp(1rem, 5vw, 5rem); border-bottom: 1px solid var(--border-subtle); }
.legal-header .logo-text { font-size: 1.8rem; text-decoration: none; }
.legal-header > a:last-child { font-weight: 700; }
.legal-content { width: min(100% - 2rem, 780px); margin: 3rem auto 5rem; line-height: 1.75; overflow-wrap: anywhere; }
.legal-content h1 { font-size: clamp(2rem, 7vw, 3.6rem); line-height: 1.15; letter-spacing: -.035em; margin: .7rem 0 1.25rem; }
.legal-intro { color: var(--text-secondary); font-size: 1.125rem; }
.legal-content section { margin-top: 2.5rem; scroll-margin-top: 2rem; }
.legal-content h2 { font-size: 1.35rem; line-height: 1.35; margin-bottom: .8rem; }
.legal-content p + p { margin-top: 1rem; }
.legal-content address { font-style: normal; }
.legal-content a, .legal-header > a:last-child { color: var(--accent-red); text-decoration: underline; text-underline-offset: .2em; }
.legal-toc { display: flex; flex-wrap: wrap; gap: .6rem 1.25rem; padding: 1.25rem 0; margin-top: 1.5rem; border-block: 1px solid var(--border-subtle); }
.legal-date { color: var(--text-secondary); margin-top: 3rem; font-size: .875rem; }
.legal-content a:focus-visible, .legal-header a:focus-visible { outline: 3px solid var(--accent-red); outline-offset: 4px; }
@media (max-width: 480px) { .legal-content { margin-top: 2rem; } .legal-header { padding: 1rem; } }
.withdrawal-form { margin: 2rem 0; }
.withdrawal-form label { display: block; font-weight: 700; margin: 1rem 0 .35rem; }
.withdrawal-form input, .withdrawal-form textarea { display: block; width: 100%; box-sizing: border-box; padding: .8rem; font: inherit; border: 1px solid #888; border-radius: 4px; }
.withdrawal-form button { cursor: pointer; padding: .9rem 1rem; margin: 1rem .5rem 0 0; font: inherit; }
.withdrawal-summary { white-space: pre-wrap; }
.withdrawal-form :focus-visible { outline: 3px solid #c2192d; outline-offset: 3px; }
