/* Legal documents — read on a paper-light surface, in the site's current type system. */
.legal-page { --lgl-pad: max(28px, calc((100vw - 1220px) / 2)); --lgl-navy: #14323f; --lgl-muted: #55707b; --lgl-line: #17313f24; --lgl-card: #f9fcfcd9; color-scheme: light; }
body.legal-page { margin: 0; color: var(--lgl-navy); background: #edf3f3; font-family: "Inter Tight", system-ui, sans-serif; }
.legal-page :is(h1, h2, h3, p, ul, ol, dl, dd) { margin: 0; }
.legal-page main :focus-visible { outline: 2px solid #558ba0; outline-offset: 5px; }
.legal-page a { color: var(--lgl-navy); }

.lgl-eyebrow { color: var(--lgl-muted); font: 500 10.5px/1.6 "IBM Plex Mono", monospace; letter-spacing: .2em; text-transform: uppercase; }

/* Hero */
.legal-hero { padding: 168px var(--lgl-pad) 64px; background: radial-gradient(ellipse at 82% 20%, #bcdde699, transparent 58%), #edf3f3; }
.legal-hero__inner { max-width: 760px; }
.legal-hero h1 { font: 500 clamp(38px, 5.2vw, 60px)/1.05 "Inter Tight", sans-serif; letter-spacing: -.045em; margin-top: 14px !important; }
.legal-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 18px !important; color: var(--lgl-muted); font: 500 12px/1.5 "IBM Plex Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.legal-hero__lede { max-width: 62ch; margin-top: 22px !important; color: var(--lgl-muted); font-size: 16.5px; line-height: 1.68; }

/* Two-column shell */
.legal-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 0 56px; max-width: 1220px; margin: 0 auto; padding: 0 var(--lgl-pad) 100px; align-items: start; }
.legal-toc { position: sticky; top: 100px; display: grid; gap: 2px; padding: 20px 0; border-top: 1px solid #c3d6d9; }
.legal-toc__label { padding-bottom: 12px; }
.legal-toc a { display: block; padding: 7px 0; color: var(--lgl-muted); font-size: 13px; line-height: 1.4; text-decoration: none; border-bottom: 1px solid transparent; }
.legal-toc a:hover, .legal-toc a:focus-visible { color: var(--lgl-navy); }
.legal-toc b { display: inline-block; min-width: 22px; margin-right: 4px; color: #9ab6bf; font: 500 11px "IBM Plex Mono", monospace; }

.legal-content { display: grid; gap: 0; padding-top: 20px; border-top: 1px solid #c3d6d9; }
.legal-section { display: grid; gap: 14px; padding: 40px 0; border-bottom: 1px solid var(--lgl-line); scroll-margin-top: 96px; }
.legal-section:last-child { border-bottom: 0; padding-bottom: 0; }
.legal-section__head { display: flex; align-items: baseline; gap: 12px; }
.legal-section__num { color: #9ab6bf; font: 500 13px "IBM Plex Mono", monospace; }
.legal-section h2 { font-size: clamp(19px, 2vw, 23px); font-weight: 600; letter-spacing: -.02em; }
.legal-section p, .legal-section li { color: #33505c; font-size: 15px; line-height: 1.7; }
.legal-section ul, .legal-section ol { display: grid; gap: 8px; padding-left: 22px; }
.legal-section a { text-decoration: underline; text-underline-offset: 3px; }
.legal-section a:hover { color: #558ba0; }

.legal-subsection { display: grid; gap: 10px; padding: 20px 22px; border-left: 2px solid #b6d0d8; border-radius: 4px; background: var(--lgl-card); }
.legal-subsection h3 { color: var(--lgl-navy); font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; }
.legal-subsection p, .legal-subsection li { font-size: 14.5px; }

.legal-contact { display: grid; gap: 4px; padding: 22px 24px; border: 1px solid #b6d0d8; border-radius: 10px; background: var(--lgl-card); }
.legal-contact strong { font-size: 15.5px; }
.legal-contact span { color: var(--lgl-muted); font-size: 14.5px; }
.legal-contact a { font-size: 14.5px; }

.about-page .brand-footer { color: #eaf5f8; background: #102633; }

@media (max-width: 980px) {
    .legal-shell { grid-template-columns: 1fr; gap: 28px; }
    .legal-toc { position: static; top: auto; padding-bottom: 8px; }
    .legal-toc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 20px; }
}
@media (max-width: 740px) {
    .legal-page { --lgl-pad: 24px; }
    .legal-hero { padding: 128px var(--lgl-pad) 44px; }
    .legal-toc__grid { grid-template-columns: 1fr; }
    .legal-section { padding: 30px 0; }
}
