.legal-page main { overflow: clip; }
.legal-hero { border-bottom: 1px solid var(--color-border); background: var(--color-bg); }
.legal-hero__inner { min-height: 270px; display: grid; grid-template-rows: 1fr auto; padding-top: clamp(3rem,4vw,4.5rem); }
.legal-hero__copy { max-width: 1180px; }
.legal-hero h1 { max-width: 1180px; margin: 0 0 1rem; font-size: clamp(3.8rem,4.8vw,4.9rem); line-height: .94; letter-spacing: -.065em; text-wrap: balance; }
.legal-hero__copy > p { max-width: 1020px; margin: 0; color: var(--color-muted); font-size: clamp(.95rem,1.2vw,1.16rem); line-height: 1.65; }
.legal-meta { display: flex; align-items: center; gap: .8rem; margin-top: 1.15rem; color: var(--color-muted-deep); font-size: .76rem; font-weight: 600; }
.legal-meta > span[aria-hidden] { width: 1px; height: 16px; background: var(--color-border-strong); }
.legal-switcher { display: flex; gap: clamp(1.8rem,4vw,4.2rem); margin-top: 2.2rem; overflow-x: auto; scrollbar-width: none; }
.legal-switcher::-webkit-scrollbar { display: none; }
.legal-switcher a { position: relative; flex: 0 0 auto; padding: 0 0 1.2rem; color: var(--color-muted); font-size: .86rem; font-weight: 700; }
.legal-switcher a::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: var(--color-primary); transform: scaleX(0); transform-origin: right; transition: transform 220ms ease; }
.legal-switcher a:hover,.legal-switcher a:focus-visible,.legal-switcher a[aria-current="page"] { color: var(--color-text); }
.legal-switcher a:hover::after,.legal-switcher a:focus-visible::after,.legal-switcher a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

.legal-ledger { overflow: visible; background: var(--color-bg); }
.legal-ledger__grid { display: grid; grid-template-columns: minmax(240px,310px) minmax(0,1fr); align-items: start; }
.legal-index { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); padding: 3rem 2.4rem 3rem 0; overflow-y: auto; border-right: 1px solid var(--color-border); }
.legal-index > strong { display: block; margin-bottom: 1.35rem; color: var(--color-muted-deep); font-size: .63rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.legal-index ol { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.legal-index a { position: relative; display: grid; grid-template-columns: 30px minmax(0,1fr); gap: .45rem; padding: .55rem .4rem .55rem .8rem; color: var(--color-muted); font-size: .72rem; font-weight: 650; line-height: 1.45; transition: color 160ms ease,transform 160ms ease; }
.legal-index a::before { content: ""; position: absolute; top: .35rem; bottom: .35rem; left: -1px; width: 3px; background: var(--color-primary); transform: scaleY(0); transition: transform 180ms ease; }
.legal-index a span { color: var(--color-muted-deep); font-variant-numeric: tabular-nums; }
.legal-index a:hover,.legal-index a:focus-visible,.legal-index a[aria-current="location"] { color: var(--color-text); transform: translateX(3px); }
.legal-index a[aria-current="location"]::before { transform: scaleY(1); }
.legal-index a[aria-current="location"] span { color: var(--color-primary); }

.legal-document { min-width: 0; padding-left: clamp(2.5rem,5vw,5.5rem); }
.legal-clause { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: clamp(1rem,2.5vw,2.6rem); padding-block: clamp(2.8rem,4vw,4.3rem); scroll-margin-top: 92px; border-bottom: 1px solid var(--color-border); }
.legal-clause__number { padding-top: .22rem; color: var(--color-primary); font-size: clamp(1.15rem,1.6vw,1.55rem); font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.legal-clause__body { max-width: 920px; }
.legal-clause h2 { max-width: 860px; margin: 0 0 1.2rem; font-size: clamp(1.75rem,2.2vw,2.45rem); line-height: 1.05; letter-spacing: -.045em; text-wrap: balance; }
.legal-clause p { max-width: 850px; margin: 0 0 1.1rem; color: var(--color-muted); font-size: .9rem; line-height: 1.85; }
.legal-clause ul { max-width: 850px; display: grid; gap: .72rem; margin: 1.15rem 0 0; padding: 0; list-style: none; }
.legal-clause li { position: relative; padding-left: 1.35rem; color: var(--color-muted); font-size: .88rem; line-height: 1.72; }
.legal-clause li::before { content: ""; position: absolute; top: .68em; left: 0; width: 6px; height: 6px; background: var(--color-primary); }
.legal-note { max-width: 850px; margin-top: 1.6rem; padding: 1.25rem 1.4rem; color: var(--color-text); background: color-mix(in srgb,var(--color-primary) 7%,var(--color-bg)); border-left: 3px solid var(--color-primary); font-size: .83rem; line-height: 1.75; }
.legal-table-wrap { max-width: 100%; margin-top: 1.8rem; overflow-x: auto; border-block: 1px solid var(--color-border-strong); }
.legal-table-wrap:focus-visible { outline: 3px solid color-mix(in srgb,var(--color-primary) 35%,transparent); outline-offset: 4px; }
.legal-table-wrap table { width: 100%; min-width: 760px; border-collapse: collapse; text-align: left; }
.legal-table-wrap th,.legal-table-wrap td { padding: 1rem; border-bottom: 1px solid var(--color-border); vertical-align: top; }
.legal-table-wrap th { color: var(--color-text); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-table-wrap td { color: var(--color-muted); font-size: .76rem; line-height: 1.6; }
.legal-table-wrap tr:last-child td { border-bottom: 0; }
.legal-table-wrap th:first-child,.legal-table-wrap td:first-child { padding-left: 0; font-weight: 700; color: var(--color-text); }
.legal-table-wrap th:last-child,.legal-table-wrap td:last-child { padding-right: 0; }

.legal-contact { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; margin-bottom: clamp(5rem,8vw,8rem); padding-block: clamp(3.5rem,5vw,5.5rem); border-bottom: 1px solid var(--color-border); }
.legal-contact h2 { margin: 0 0 .75rem; font-size: clamp(2rem,3vw,3.2rem); letter-spacing: -.05em; }
.legal-contact p { max-width: 600px; margin: 0; color: var(--color-muted); font-size: .9rem; line-height: 1.7; }
.legal-contact__email { display: inline-block; margin-top: .8rem; color: var(--color-primary); font-size: .8rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.legal-contact .button { flex: 0 0 auto; border-radius: 3px; }
.legal-contact .button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

html[data-theme="light"] .legal-page .legal-hero,
html[data-theme="light"] .legal-page .legal-ledger { background: #fff; }
html[data-theme="light"] .legal-page .legal-note { background: #f4f4ff; }

@media (max-width: 980px) {
    .legal-hero__inner { min-height: 270px; padding-top: 3.5rem; }
    .legal-ledger__grid { grid-template-columns: 220px minmax(0,1fr); }
    .legal-index { padding-right: 1.2rem; }
    .legal-document { padding-left: 2rem; }
    .legal-clause { grid-template-columns: 52px minmax(0,1fr); }
}

@media (max-width: 720px) {
    .legal-hero__inner { min-height: 360px; padding-top: 3.4rem; }
    .legal-hero h1 { font-size: clamp(3.25rem,15vw,4.8rem); }
    .legal-hero__copy > p { font-size: .95rem; line-height: 1.7; }
    .legal-switcher { gap: 1.7rem; margin-top: 2.7rem; }
    .legal-ledger__grid { display: block; }
    .legal-index { z-index: 4; top: 0; max-height: none; margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter); overflow-x: auto; overflow-y: hidden; background: color-mix(in srgb,var(--color-bg) 94%,transparent); border-right: 0; border-bottom: 1px solid var(--color-border); backdrop-filter: blur(14px); scrollbar-width: none; }
    .legal-index::-webkit-scrollbar { display: none; }
    .legal-index > strong { display: none; }
    .legal-index ol { display: flex; width: max-content; gap: 0; }
    .legal-index a { min-height: 56px; display: flex; align-items: center; gap: .45rem; padding: .7rem 1rem; white-space: nowrap; }
    .legal-index a::before { top: auto; right: .8rem; bottom: -1px; left: .8rem; width: auto; height: 3px; transform: scaleX(0); }
    .legal-index a[aria-current="location"]::before { transform: scaleX(1); }
    .legal-index a:hover,.legal-index a:focus-visible,.legal-index a[aria-current="location"] { transform: none; }
    .legal-document { padding-left: 0; }
    .legal-clause { grid-template-columns: 1fr; gap: .7rem; padding-block: 3.4rem; scroll-margin-top: 138px; }
    .legal-clause__body,.legal-contact { padding-left: 3.4rem; }
    .legal-clause__number { font-size: 1rem; }
    .legal-clause h2 { font-size: clamp(2rem,10vw,2.8rem); }
    .legal-clause p,.legal-clause li { font-size: .84rem; }
    .legal-table-wrap { margin-right: calc(var(--gutter) * -1); }
    .legal-contact { display: grid; align-items: start; gap: 1.8rem; }
    .legal-contact .button { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
    .legal-switcher a::after,.legal-index a,.legal-index a::before { transition: none; }
}
