/* =====================================================================
   GLOBAL MERIDIEN TRADING - legal.css
   Shared styles for Privacy Policy / Terms of Use / Cookie Policy
   Loaded after style.css + responsive.css
   ===================================================================== */

/* ---------------------------------------------------------------------
   Reading-progress bar
   --------------------------------------------------------------------- */
.read-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 2px;
    width: 0;
    background: var(--color-gold);
    z-index: 1300;
    transition: width 0.12s linear;
    pointer-events: none;
}

/* ---------------------------------------------------------------------
   Header
   --------------------------------------------------------------------- */
.legal-hero {
    position: relative;
    overflow: hidden;
    background: var(--color-forest);
    color: var(--color-ivory);
    padding: clamp(9rem, 14vw, 12rem) 0 clamp(3.5rem, 7vw, 5.5rem);
}
.legal-hero > .container {
    position: relative;
    z-index: 3;
    max-width: 60rem;
}
.legal-hero .eyebrow {
    color: var(--color-gold);
    opacity: 0;
    animation: fadeUp 0.85s var(--ease-out) 0.1s forwards;
}
.legal-title {
    font-size: clamp(2.5rem, 6.2vw, 4.35rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    line-height: 1.02;
    color: var(--color-ivory);
    opacity: 0;
    animation: fadeUp 0.95s var(--ease-out) 0.22s forwards;
}
.legal-meta {
    margin-top: 1.6rem;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ivory-55);
    opacity: 0;
    animation: fadeUp 0.95s var(--ease-out) 0.34s forwards;
}

/* ---------------------------------------------------------------------
   Body layout
   --------------------------------------------------------------------- */
.legal-body {
    background: var(--color-ivory);
    color: var(--color-forest);
    padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(4.5rem, 10vw, 7.5rem);
}
.legal-layout {
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: start;
}
.legal-layout > * { min-width: 0; }

/* ---------------------------------------------------------------------
   Table of contents
   --------------------------------------------------------------------- */
.legal-toc {
    position: sticky;
    top: 6.75rem;
}
.legal-toc-title {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 1.15rem;
}
.legal-toc ol {
    list-style: none;
    display: flex;
    flex-direction: column;
}
.legal-toc a {
    display: block;
    padding: 0.55rem 0.5rem 0.55rem 1rem;
    font-size: 0.82rem;
    line-height: 1.4;
    color: rgba(16, 35, 27, 0.58);
    border-left: 1px solid var(--gold-line);
    transition: color var(--t-fast), border-color var(--t-fast),
                background var(--t-fast), padding-left var(--t-fast);
}
.legal-toc a:hover {
    color: var(--color-forest);
    padding-left: 1.25rem;
}
.legal-toc a.is-active {
    color: var(--color-forest);
    font-weight: 500;
    border-left-color: var(--color-gold);
    background: rgba(185, 154, 97, 0.09);
}

/* ---------------------------------------------------------------------
   Prose
   --------------------------------------------------------------------- */
.legal-content {
    max-width: 70ch;
    min-width: 0;
}
.legal-content > section {
    margin-top: 2.75rem;
    padding-top: 2.75rem;
    border-top: 1px solid var(--gold-line-soft);
}
.legal-content > section:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}
.legal-content h2 {
    display: flex;
    align-items: baseline;
    gap: 0.9rem;
    font-family: var(--font-body);
    font-size: 1.02rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--color-forest);
    margin-bottom: 1.15rem;
}
.legal-content h2 .num {
    flex-shrink: 0;
    font-family: var(--font-display);
    font-size: 1.45rem;
    font-weight: 500;
    color: var(--color-gold);
    line-height: 1;
}
.legal-content h3 {
    font-family: var(--font-body);
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--color-forest);
    margin: 1.9rem 0 0.6rem;
}
.legal-content p {
    margin-bottom: 1.15rem;
    line-height: 1.8;
    color: rgba(16, 35, 27, 0.82);
}
.legal-content ul,
.legal-content ol.spec {
    margin: 0 0 1.15rem 1.2rem;
    line-height: 1.8;
    color: rgba(16, 35, 27, 0.82);
}
.legal-content li {
    margin-bottom: 0.5rem;
    padding-left: 0.35rem;
}
.legal-content li::marker { color: var(--color-gold); }
.legal-content a {
    color: var(--color-forest);
    text-decoration: underline;
    text-decoration-color: var(--color-gold);
    text-underline-offset: 3px;
    transition: color var(--t-fast);
}
.legal-content a:hover { color: var(--color-gold); }
.legal-content strong { font-weight: 600; color: var(--color-forest); }

.legal-content p:last-child,
.legal-content ul:last-child { margin-bottom: 0; }

/* Inline placeholder token (client to replace) */
.legal-placeholder {
    display: inline-block;
    padding: 0.05em 0.5em;
    background: rgba(185, 154, 97, 0.16);
    border: 1px dashed var(--gold-line);
    border-radius: 2px;
    font-size: 0.85em;
    color: #6b5a3a;
    white-space: nowrap;
}

/* Callout */
.legal-callout {
    margin: 1.6rem 0;
    padding: 1.25rem 1.6rem;
    background: var(--color-white);
    border: 1px solid var(--gold-line-soft);
    border-left: 2px solid var(--color-gold);
    font-size: 0.95rem;
    line-height: 1.7;
    color: rgba(16, 35, 27, 0.8);
}
.legal-callout p:last-child { margin-bottom: 0; }

/* Table (cookie categories) */
.legal-table-wrap {
    margin: 1.4rem 0;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.legal-table {
    width: 100%;
    min-width: 460px;
    border-collapse: collapse;
    font-size: 0.9rem;
}
.legal-table th,
.legal-table td {
    text-align: left;
    padding: 0.85rem 1rem;
    border: 1px solid var(--gold-line-soft);
    vertical-align: top;
    line-height: 1.6;
}
.legal-table th {
    background: rgba(185, 154, 97, 0.1);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--color-forest);
}
.legal-table td { color: rgba(16, 35, 27, 0.8); }

/* ---------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------- */
@media (max-width: 960px) {
    .legal-layout {
        grid-template-columns: 1fr;
        gap: 2.25rem;
    }
    .legal-toc {
        position: static;
        padding: 1.35rem 1.6rem;
        background: var(--color-white);
        border: 1px solid var(--gold-line-soft);
    }
    .legal-toc a { border-left-color: var(--gold-line-soft); }
    .legal-content { max-width: none; }
}

@media (max-width: 480px) {
    .legal-content h2 { flex-direction: column; gap: 0.25rem; }
    .legal-content h2 .num { font-size: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .legal-hero .eyebrow,
    .legal-title,
    .legal-meta { opacity: 1; animation: none; }
    .read-progress { display: none; }
}
