/* Legal pages (Terms, Privacy, Cookies). Loaded after landing.css and uses its tokens. */

.lgStage {
    position: relative;
    padding: clamp(96px, 12vh, 120px) clamp(18px, 4vw, 40px) clamp(48px, 8vh, 80px);
    isolation: isolate;
}
.lgStage::before {
    content: "";
    position: absolute; inset: 0 0 auto 0; height: 420px; z-index: -1;
    background:
        radial-gradient(ellipse 60% 70% at 78% 0%, oklch(0.65 0.2 275 / .16), transparent 62%),
        linear-gradient(180deg, oklch(0.16 0.008 270) 0%, var(--lp-deep) 100%);
}

.lgHead {
    max-width: var(--lp-max);
    margin: 0 auto 28px;
}
.lgHead h1 {
    font-family: Sora, sans-serif;
    font-size: clamp(2rem, 4.5vw, 2.8rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.1;
    margin: 0 0 10px;
}
.lgMeta {
    margin: 0;
    display: flex; flex-wrap: wrap; gap: 6px 16px;
    color: var(--lp-faint);
    font-size: .92rem;
}
.lgMeta b { color: var(--lp-mute); font-weight: 600; }

.lgLayout {
    max-width: var(--lp-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: clamp(24px, 4vw, 48px);
    align-items: start;
}

.lgToc {
    position: sticky; top: 88px;
    padding: 16px;
    border-radius: var(--lp-radius);
    border: 1px solid var(--lp-line);
    background: var(--lp-card);
    font-size: .9rem;
}
.lgToc p {
    margin: 0 0 8px;
    font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--lp-faint);
}
.lgToc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; counter-reset: toc; }
.lgToc li { counter-increment: toc; }
.lgToc a {
    display: flex; gap: 8px;
    padding: 5px 8px;
    border-radius: 6px;
    color: var(--lp-mute);
    line-height: 1.35;
}
.lgToc a::before { content: counter(toc) "."; color: var(--lp-faint); min-width: 1.4em; font-variant-numeric: tabular-nums; }
.lgToc a:hover, .lgToc a:focus-visible { background: oklch(1 0 0 / 4%); color: var(--lp-ink); outline: none; }

.lgDoc {
    max-width: 760px;
    counter-reset: section;
}
.lgDoc .lgSummary {
    margin: 0 0 32px;
    padding: 18px 20px;
    border-radius: var(--lp-radius);
    border: 1px solid oklch(0.65 0.2 275 / .35);
    background: linear-gradient(180deg, oklch(0.65 0.2 275 / .1), transparent 80%), var(--lp-card);
}
.lgDoc .lgSummary h2 { margin-top: 0; }
.lgDoc .lgSummary h2::before { content: none; }
.lgDoc section { scroll-margin-top: 96px; }
.lgDoc section + section { margin-top: 36px; }
.lgDoc h2 {
    font-family: Sora, sans-serif;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin: 0 0 12px;
}
.lgDoc section > h2 { counter-increment: section; }
.lgDoc section > h2::before {
    content: counter(section) ". ";
    color: var(--lp-primary);
}
.lgDoc h3 {
    font-family: Sora, sans-serif;
    font-size: 1.02rem;
    font-weight: 650;
    margin: 22px 0 8px;
}
.lgDoc p, .lgDoc li { color: oklch(0.82 0.01 270); }
.lgDoc p { margin: 0 0 12px; }
.lgDoc ul, .lgDoc ol { margin: 0 0 14px; padding-left: 22px; display: grid; gap: 6px; }
.lgDoc strong { color: var(--lp-ink); font-weight: 650; }
.lgDoc a { color: oklch(0.8 0.13 275); text-decoration: underline; text-underline-offset: 3px; }
.lgDoc a:hover { color: var(--lp-ink); }

.lgTable {
    width: 100%;
    margin: 4px 0 16px;
    border-collapse: collapse;
    font-size: .94rem;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    overflow: hidden;
}
.lgTable th, .lgTable td {
    text-align: left;
    vertical-align: top;
    padding: 10px 12px;
    border-bottom: 1px solid var(--lp-line);
    color: oklch(0.82 0.01 270);
}
.lgTable th {
    font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    color: var(--lp-faint);
    background: oklch(1 0 0 / 3%);
}
.lgTable tr:last-child td { border-bottom: 0; }
.lgTableWrap { overflow-x: auto; }

.lgCaps { text-transform: uppercase; font-size: .92rem; letter-spacing: .01em; }

.lgCards {
    max-width: var(--lp-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.lgCard {
    display: grid; gap: 8px; align-content: start;
    padding: 22px 20px;
    border-radius: var(--lp-radius);
    border: 1px solid var(--lp-line);
    background: var(--lp-card);
    transition: border-color .2s ease, transform .2s ease;
}
.lgCard:hover { border-color: oklch(0.65 0.2 275 / .45); transform: translateY(-2px); }
.lgCard h2 { font-family: Sora, sans-serif; font-size: 1.15rem; margin: 0; letter-spacing: -.02em; }
.lgCard p { margin: 0; color: var(--lp-mute); font-size: .95rem; }
.lgCard span { color: var(--lp-primary); font-weight: 600; font-size: .9rem; }

@media (max-width: 960px) {
    .lgLayout { grid-template-columns: 1fr; }
    .lgToc { position: static; }
    .lgCards { grid-template-columns: 1fr; }
}

@media print {
    .lpTop, .lgToc, .lpFoot, .lpCookie { display: none !important; }
    body.landing { background: #fff; color: #000; }
    .lgDoc p, .lgDoc li, .lgTable td { color: #000; }
    .lgLayout { display: block; }
    .lgStage { padding-top: 0; }
}
