.legal-main { min-height: 100vh; }
.legal-hero { overflow: hidden; padding-top: 180px; padding-bottom: 88px; border-bottom: 1px solid var(--color-border); }
.legal-aurora { position: absolute; inset: -80% -15% -30%; opacity: .5; pointer-events: none; }
.legal-hero .container { position: relative; z-index: 2; }
.legal-hero h1 { max-width: 850px; font-size: clamp(3.4rem, 7vw, 6.8rem); }
.legal-hero .lead { max-width: 760px; margin-top: 25px; }
.legal-updated { margin-top: 28px; color: var(--color-pink); font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-content-section { padding-top: 82px; }
.legal-container { display: grid; grid-template-columns: 240px minmax(0, 860px); justify-content: center; align-items: start; gap: clamp(50px, 8vw, 120px); }
.legal-toc { position: sticky; top: 124px; display: grid; gap: 22px; }
.legal-toc > p { color: var(--color-pink); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.legal-toc nav { display: grid; gap: 5px; padding-left: 16px; border-left: 1px solid var(--color-border); }
.legal-toc nav a { padding: 5px 0; color: var(--color-subtle); font-size: .79rem; }
.legal-toc nav a:hover { color: var(--color-pink); }
.legal-toc .button { width: 100%; min-height: 42px; margin-top: 8px; padding-inline: 12px; }
.legal-document { min-width: 0; }
.legal-draft-notice { margin-bottom: 42px; padding: 21px 23px; border: 1px solid oklch(78% .16 85 / .52); border-radius: 15px; background: oklch(36% .1 75 / .16); }
.legal-draft-notice strong { display: block; margin-bottom: 5px; color: oklch(88% .14 85); font-family: var(--font-display); }
.legal-draft-notice p { font-size: .84rem; }
.legal-section { padding: 42px 0; border-bottom: 1px solid var(--color-border); scroll-margin-top: 116px; }
.legal-section:first-of-type { padding-top: 10px; }
.legal-section h2 { margin-bottom: 23px; font-size: clamp(1.55rem, 3vw, 2.1rem); }
.legal-section p { margin-top: 14px; font-size: .94rem; line-height: 1.78; }
.legal-section ul { display: grid; gap: 12px; margin-top: 20px; }
.legal-section li { position: relative; padding-left: 24px; color: var(--color-muted); font-size: .9rem; line-height: 1.68; }
.legal-section li::before { position: absolute; top: .73em; left: 2px; width: 8px; height: 8px; border-radius: 50%; background: var(--gradient-brand); content: ""; }
.controller-details { display: grid; margin: 25px 0 0; border: 1px solid var(--color-border); border-radius: 16px; overflow: hidden; }
.controller-details > div { display: grid; grid-template-columns: 210px 1fr; gap: 20px; padding: 15px 18px; border-bottom: 1px solid var(--color-border); background: oklch(19% .035 280 / .5); }
.controller-details > div:last-child { border-bottom: 0; }
.controller-details dt { color: var(--color-subtle); font-size: .76rem; }
.controller-details dd { margin: 0; overflow-wrap: anywhere; color: var(--color-text); font-size: .8rem; }
.controller-details a, .legal-source-links a { color: var(--color-pink); text-decoration: underline; text-underline-offset: 3px; }
.legal-source-links { margin-top: 21px !important; }
.legal-closing { margin-top: 64px; padding: 46px; border: 1px solid var(--color-border); border-radius: 22px; background: linear-gradient(145deg, oklch(25% .07 295 / .65), oklch(17% .03 270 / .9)); }
.legal-closing h2 { font-size: clamp(1.9rem, 4vw, 2.7rem); }
.legal-closing > p:not(.eyebrow) { margin: 16px 0 25px; }

@media (max-width: 900px) {
    .legal-container { grid-template-columns: 1fr; }
    .legal-toc { position: static; display: none; }
}
@media (max-width: 680px) {
    .legal-hero { padding-top: 130px; padding-bottom: 65px; }
    .legal-content-section { padding-top: 50px; }
    .controller-details > div { grid-template-columns: 1fr; gap: 5px; }
    .legal-section { padding-block: 34px; }
    .legal-closing { padding: 32px 22px; }
}
