/* Privacy and terms pages. */

.legal-hero {
    background:
        radial-gradient(640px 320px at 85% -10%, rgba(37, 99, 235, 0.32), transparent 70%),
        var(--dark-bg);
    color: #ffffff;
    padding: clamp(3rem, 7vw, 5rem) 0 clamp(3rem, 6vw, 4.5rem);
}

.legal-title {
    font-size: clamp(2.1rem, 5vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.12;
    margin-bottom: 0.75rem;
}

.legal-lead {
    max-width: 60ch;
    color: #cbd5e1;
    font-size: 1.08rem;
}

.legal-draft {
    margin: 2rem 0 0;
    padding: 0.9rem 1.15rem;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--radius-md);
    color: #78350f;
    font-size: 0.95rem;
}

.legal-layout {
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
    padding: clamp(2rem, 5vw, 3.5rem) 0 var(--section-gap);
}

.legal-nav {
    position: sticky;
    top: calc(var(--header-height) + 1.5rem);
    max-height: calc(100vh - var(--header-height) - 3rem);
    overflow-y: auto;
    padding: 1.25rem;
    background: var(--light-bg-alt);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
}

.legal-nav-title {
    margin-bottom: 0.6rem;
    padding: 0 0.6rem;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--light-text-body);
}

.legal-nav ol {
    list-style: none;
    display: grid;
    gap: 0.1rem;
}

.legal-nav a {
    display: block;
    padding: 0.45rem 0.6rem;
    border-radius: var(--radius-sm);
    font-size: 0.92rem;
    font-weight: 500;
    color: var(--light-text-body);
}

.legal-nav a:hover {
    background: var(--primary-light);
    color: var(--primary-hover);
}

.legal-nav a:focus-visible,
.legal-prose a:focus-visible {
    outline: 3px solid var(--primary);
    outline-offset: 2px;
}

.legal-prose {
    max-width: 70ch;
    font-size: 1.04rem;
    line-height: 1.75;
    color: var(--light-text-body);
}

.legal-prose section {
    scroll-margin-top: calc(var(--header-height) + 1.5rem);
    padding-bottom: 2.25rem;
    margin-bottom: 2.25rem;
    border-bottom: 1px solid var(--border-subtle);
}

.legal-prose section:last-child {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0;
}

.legal-prose h2 {
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.3;
    color: var(--light-text-head);
    margin-bottom: 0.85rem;
}

.legal-prose p + p,
.legal-prose ul + p,
.legal-prose p + ul {
    margin-top: 0.9rem;
}

.legal-prose ul {
    padding-left: 1.3rem;
    display: grid;
    gap: 0.45rem;
}

.legal-prose li::marker {
    color: var(--primary);
}

.legal-prose strong {
    color: var(--light-text-head);
}

.legal-prose a {
    color: var(--primary-hover);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.legal-placeholder {
    padding: 0.1em 0.35em;
    background: #fef3c7;
    color: #78350f;
    border-radius: 4px;
    font-weight: 600;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

@media (max-width: 860px) {
    .legal-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .legal-nav {
        position: static;
        max-height: none;
    }

    .legal-nav ol {
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }
}
