.policy-page {
    --gold-dim: rgba(200, 169, 110, 0.12);
    --policy-bg: #000;
    --policy-surface: #000;
}

.policy-page .policy-section {
    margin-bottom: 3rem;
    scroll-margin-top: 2rem;
}

.policy-page .policy-section h2 {
    font-size: clamp(1.2rem, 3vw, 1.5rem);
    margin-bottom: 1rem;
    line-height: 1.2;
}

/* ── Table of Contents ── */
.toc {
    background: var(--policy-surface);
    border: 1px solid var(--policy-border);
    padding: 1.4rem 1.6rem;
    margin-bottom: 3rem;
}

.toc-title {
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--policy-text-bright);
    margin-bottom: 0.9rem;
}

.toc ol {
    list-style: none;
    counter-reset: toc;
    padding: 0;
}

.toc li {
    counter-increment: toc;
    padding: 0.25rem 0;
    font-size: 0.83rem;
}

.toc li::before {
    content: counter(toc, decimal-leading-zero) '. ';
    color: var(--policy-text);
    font-size: 0.72rem;
    margin-right: 0.3rem;
}

.toc a {
    color: var(--policy-text) !important;
    text-decoration: none;
    transition: color 0.2s;
    display: inline-block;
    min-height: 32px;
    line-height: 2;
}

.toc a:hover,
.toc a:focus-visible {
    color: var(--gold);
    text-decoration: underline;
}

/* ── Section labels ── */
.section-number {
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
    margin-bottom: 0.4rem;
}

.policy-page .policy-section a {
    transition: text-decoration-color 0.2s;
}

/* ── Data list ── */
.data-list {
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}

.data-list li {
    padding: 0.5rem 0 0.5rem 1.2rem;
    border-bottom: 1px solid var(--policy-border);
    font-size: 0.88rem;
    position: relative;
    color: var(--policy-text);
    line-height: 1.6;
}

.data-list li:last-child {
    border-bottom: none;
}

.data-list li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: var(--gold);
    font-size: 0.8rem;
}

.data-list li strong {
    color: var(--policy-text-bright);
    font-weight: 400;
}

/* ── Rights grid ── */
.rights-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--policy-border);
    border: 1px solid var(--policy-border);
    margin: 1.2rem 0;
}

.right-item {
    background: var(--policy-bg);
    padding: 0.9rem 1rem;
}

.right-item strong {
    display: block;
    color: var(--policy-text-bright);
    font-weight: 400;
    font-size: 0.85rem;
    margin-bottom: 0.2rem;
}

.right-item p {
    font-size: 0.9rem;
    color: var(--policy-text);
    margin: 0;
    line-height: 1.8;
}

.policy-page .callout {
    margin: 1.4rem 0;
}

/* ── Contact card ── */
.contact-card {
    border: 1px solid var(--policy-border);
    padding: 1.4rem 1.6rem;
    margin-top: 1rem;
    background: var(--policy-surface);
    word-break: break-word;
    overflow-wrap: break-word;
}

.contact-card p {
    margin: 0.2rem 0;
    font-size: 0.88rem;
}

.contact-card strong {
    color: var(--policy-text-bright);
    font-weight: 400;
}

/* ── Responsive ── */

/* Mobile (≤600px) */
@media (max-width: 600px) {
    .rights-grid {
        grid-template-columns: 1fr; 
    }

    .toc {
        padding: 1rem 1rem;
    }

    .contact-card {
        padding: 1rem 1rem;
    }
}

/* Landscape phone */
@media (max-height: 430px) and (orientation: landscape) {
    .rights-grid {
        grid-template-columns: 1fr 1fr; 
    }
}