.legal-page { min-height: 100svh; }
.legal-site-header { grid-template-columns: 1fr auto 1fr; }
.legal-site-header .site-header-actions { justify-self: end; }
.legal-back-link { color: var(--blue); font-size: 12px; font-weight: 800; text-decoration: none; }
.legal-back-link:hover { text-decoration: underline; }
.legal-wrap { padding: clamp(38px, 7vw, 82px) 0 74px; }
.legal-hero { max-width: 820px; margin-bottom: 34px; }
.legal-hero h1 { margin: 0; color: var(--blue-dark); font-size: clamp(34px, 5.5vw, 58px); line-height: 1.02; letter-spacing: -.045em; }
.legal-hero > p:last-child { max-width: 710px; margin: 18px 0 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.legal-updated { display: inline-flex; margin: 18px 0 0; padding: 7px 10px; color: var(--blue); background: var(--blue-soft); border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.legal-grid { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: 24px; }
.legal-toc { position: sticky; top: 92px; display: grid; max-height: calc(100svh - 112px); padding: 17px; gap: 3px; overflow: auto; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; box-shadow: 0 10px 30px rgba(24,33,44,.05); }
.legal-toc strong { margin: 0 0 8px; color: var(--blue-dark); font-size: 12px; }
.legal-toc a { padding: 6px 8px; color: var(--muted); border-radius: 8px; font-size: 10px; font-weight: 650; line-height: 1.35; text-decoration: none; }
.legal-toc a:hover { color: var(--blue); background: var(--blue-soft); }
.legal-document { min-width: 0; padding: clamp(25px, 5vw, 54px); color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: 24px; box-shadow: var(--shadow); }
.legal-document section { scroll-margin-top: 96px; }
.legal-document section + section { margin-top: 42px; padding-top: 42px; border-top: 1px solid var(--border); }
.legal-document h2 { margin: 0 0 15px; color: var(--blue-dark); font-size: clamp(19px, 2.4vw, 25px); line-height: 1.2; letter-spacing: -.02em; }
.legal-document h3 { margin: 20px 0 9px; color: var(--blue-dark); font-size: 14px; line-height: 1.35; }
.legal-document p { margin: 0; color: var(--ink); font-size: 13px; line-height: 1.78; }
.legal-document p + p { margin-top: 12px; }
.legal-document ul { margin: 13px 0 0; padding-left: 22px; color: var(--ink); font-size: 13px; line-height: 1.72; }
.legal-document li + li { margin-top: 7px; }
.legal-document a { color: var(--blue); font-weight: 720; overflow-wrap: anywhere; }
.withdrawal-form { margin-top: 19px; padding: 17px 19px; background: var(--blue-soft); border: 1px solid color-mix(in srgb, var(--blue) 22%, var(--border)); border-radius: 14px; }
.withdrawal-form h3 { margin-top: 0; }
.withdrawal-form p { font-size: 11px; line-height: 1.65; }

@media (max-width: 820px) {
    .legal-grid { grid-template-columns: 1fr; }
    .legal-toc { position: static; max-height: none; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .legal-toc strong { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .legal-site-header { grid-template-columns: 1fr auto; min-height: 62px; padding: 0 11px; }
    .legal-site-header .brand img { width: 116px; height: 29px; }
    .legal-site-header .brand > span:last-child { display: none; }
    .legal-site-header .legal-back-link { display: none; }
    .legal-wrap { width: calc(100% - 24px); padding: 34px 0 48px; }
    .legal-hero { margin-bottom: 23px; }
    .legal-hero > p:last-child { font-size: 13px; }
    .legal-toc { padding: 12px; gap: 1px; border-radius: 14px; }
    .legal-toc a { padding: 6px; font-size: 9px; }
    .legal-document { padding: 23px 18px; border-radius: 18px; }
    .legal-document section + section { margin-top: 31px; padding-top: 31px; }
    .legal-document p, .legal-document ul { font-size: 12px; line-height: 1.72; }
    .legal-footer { text-align: center; }
}

@media print {
    .legal-page { background: #fff; }
    .legal-site-header, .legal-toc, .legal-footer { display: none!important; }
    .legal-wrap { width: 100%; padding: 0; }
    .legal-hero { margin-bottom: 24px; }
    .legal-grid { display: block; }
    .legal-document { padding: 0; border: 0; box-shadow: none; }
    .legal-document section + section { margin-top: 24px; padding-top: 24px; }
}
