.legal {
    width: 100%;
    max-width: 820px;
    margin: 0 auto;
    padding: calc(var(--nav-h) + var(--space-7)) var(--gutter) var(--space-9);
    line-height: 1.75;
}

.legal-head {
    margin-bottom: var(--space-7);
}

.legal h1,
.legal .p1 {
    font-family: var(--font-heading);
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1.1;
    color: var(--color-white);
    margin-bottom: var(--space-4);
}

.legal .legal-meta {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-2);
}

.legal h2,
.legal .p18,
.legal .p23 {
    font-family: var(--font-body);
    font-size: var(--fs-lg);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.4;
    color: var(--color-neon-cyan);
    margin: var(--space-7) 0 var(--space-4);
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-border);
}

.legal h3,
.legal h4,
.legal .p26 {
    font-size: var(--fs-md);
    font-weight: 700;
    color: var(--color-text-primary);
    margin: var(--space-5) 0 var(--space-3);
}

.legal p,
.legal li {
    color: var(--color-text-soft);
    font-size: var(--fs-base);
}

.legal p {
    margin-bottom: var(--space-4);
}

.legal li {
    margin-bottom: var(--space-2);
}

.legal strong,
.legal b {
    color: var(--color-text-primary);
}

.legal .sub {
    color: var(--color-text-muted);
}

.legal ul,
.legal ol {
    padding-left: var(--space-5);
    margin-bottom: var(--space-5);
}

.legal a {
    color: var(--color-neon-cyan);
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.legal a:hover {
    color: var(--color-white);
}

.legal code {
    font-family: var(--font-body);
    font-size: 0.9em;
    background: var(--color-bg-panel);
    border: 1px solid var(--color-border);
    padding: 0 var(--space-1);
    color: var(--color-text-primary);
}

.table-scroll {
    overflow-x: auto;
    margin-bottom: var(--space-5);
}

.legal table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
}

.legal th,
.legal td {
    border: 1px solid var(--color-border);
    padding: var(--space-3) var(--space-4);
    text-align: left;
    vertical-align: top;
    font-size: var(--fs-sm);
    color: var(--color-text-soft);
}

.legal th {
    background: var(--color-bg-panel);
    color: var(--color-text-primary);
    font-weight: 700;
}

.legal td p,
.legal td ul {
    margin-bottom: 0;
}

.legal td li,
.legal td p {
    font-size: var(--fs-sm);
}

.col-16 { width: 16%; }
.col-20 { width: 20%; }
.col-22 { width: 22%; }
.col-24 { width: 24%; }
.col-34 { width: 34%; }

.toc,
.callout {
    background: var(--color-bg-panel);
    border: 1px solid var(--color-neon-cyan-dim);
    padding: var(--space-5);
    margin-bottom: var(--space-5);
    clip-path: var(--clip-corner-sm);
}

.callout {
    border-left: 3px solid var(--color-neon-cyan);
}

.toc strong {
    display: block;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: var(--fs-sm);
    margin-bottom: var(--space-2);
}

.toc ol {
    margin-bottom: 0;
}

.toc li {
    margin-bottom: var(--space-1);
}

.callout p:last-child {
    margin-bottom: 0;
}

/* DPA: textutil drops Word's numbering and clauses are cross-referenced
   ("this Section 9"), so counters(item,".") must reproduce 1, 1.1, 1.1.1. */
.legal ol.clauses {
    counter-reset: item;
    list-style: none;
    padding-left: 0;
    margin: var(--space-3) 0;
}

.legal ol.clauses > li {
    counter-increment: item;
    position: relative;
    padding-left: 3.4em;
    margin: var(--space-4) 0;
}

.legal ol.clauses > li::before {
    content: counters(item, ".") ".";
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 700;
    color: var(--color-text-muted);
    font-variant-numeric: tabular-nums;
}

.legal ol.clauses ol.clauses {
    margin: var(--space-3) 0 0;
}

.legal ul.sched {
    padding-left: var(--space-5);
    margin: var(--space-2) 0 var(--space-4);
}

.legal ul.sched li {
    margin: var(--space-1) 0;
}

.legal ul.sched ul.sched {
    margin: var(--space-1) 0;
}

.legal .Apple-tab-span {
    display: inline-block;
    width: 0.5em;
}

.legal .t1 td:first-child {
    width: 32%;
    background: var(--color-bg-panel);
    color: var(--color-text-primary);
    font-weight: 700;
}

@media (max-width: 600px) {
    .legal {
        padding: calc(var(--nav-h) + var(--space-5)) var(--gutter) var(--space-8);
    }

    .legal h1,
    .legal .p1 {
        font-size: clamp(1.9rem, 9vw, 2.25rem);
    }

    .legal h2,
    .legal .p18,
    .legal .p23 {
        font-size: var(--fs-md);
        margin-top: var(--space-6);
    }

    .toc,
    .callout {
        padding: var(--space-4);
    }

    .site-nav .btn-small {
        padding-inline: var(--space-4);
    }
}

.table-scroll:focus-visible {
    outline: 2px solid var(--color-neon-cyan);
    outline-offset: 2px;
}
