/* ============================================================
   Déclic-e média — Page Mentions légales
   ============================================================ */

/* ── Hero ─────────────────────────────────────────────────── */
.legal-hero {
    padding: 6rem 0 2.5rem;
    position: relative;
    background: url('../images/mentions_legale.jpg') center/cover no-repeat;
    border-bottom: 1px solid var(--bordure);
    isolation: isolate;
}
.legal-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(27,74,138,.85) 0%, rgba(27,74,138,.60) 100%);
    z-index: -1;
}
.legal-hero h1 {
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    font-weight: 800;
    margin: .75rem 0 .75rem;
    color: #fff;
}
.legal-hero p {
    font-size: .9rem;
    color: rgba(255,255,255,.75);
    max-width: 680px;
    line-height: 1.7;
    margin: 0;
}
.legal-breadcrumb {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .82rem;
    color: rgba(255,255,255,.6);
    margin-bottom: 1rem;
}
.legal-breadcrumb a { color: rgba(255,255,255,.75); text-decoration: none; }
.legal-breadcrumb a:hover { color: #fff; }
.legal-breadcrumb span[aria-hidden] { color: rgba(255,255,255,.3); }

/* ── Mise en page principale ──────────────────────────────── */
.legal-main {
    padding: 3rem 0 4rem;
    background: var(--gris-clair);
}
.legal-main .container {
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 3rem;
    align-items: start;
}

/* ── Contenu ──────────────────────────────────────────────── */
.legal-content {
    min-width: 0;
}
.legal-section {
    background: #fff;
    border-radius: 12px;
    padding: 2rem 2rem 1.5rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 10px rgba(27,74,138,.06);
    min-width: 0;
    overflow-wrap: break-word;
    word-break: break-word;
    overflow: hidden;
}
.legal-section h2 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--bleu);
    margin: 0 0 1.25rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--bleu-soft);
}
.legal-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--bleu);
    color: #fff;
    border-radius: 50%;
    font-size: .8rem;
    font-weight: 700;
    flex-shrink: 0;
}
.legal-section h3 {
    font-size: .9rem;
    font-weight: 700;
    color: var(--texte);
    margin: 1.25rem 0 .5rem;
}
.legal-section p {
    font-size: .875rem;
    color: var(--gris-texte);
    line-height: 1.75;
    margin: 0 0 .75rem;
}
.legal-section ul {
    font-size: .875rem;
    color: var(--gris-texte);
    line-height: 1.75;
    margin: .5rem 0 .75rem 1.25rem;
    padding: 0;
}
.legal-section a { color: var(--bleu); }
.legal-section a:hover { color: var(--orange); }
.legal-section code {
    background: var(--bleu-soft);
    color: var(--bleu);
    padding: .1rem .35rem;
    border-radius: 4px;
    font-size: .82rem;
    font-family: monospace;
}

/* ── Tableau légal ────────────────────────────────────────── */
.legal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
    margin: .5rem 0 .75rem;
}
.legal-table th,
.legal-table td {
    padding: .55rem .75rem;
    text-align: left;
    border-bottom: 1px solid var(--bordure);
    vertical-align: top;
}
.legal-table th {
    color: var(--bleu);
    font-weight: 600;
    width: 35%;
    background: var(--bleu-soft);
    white-space: nowrap;
}
.legal-table thead th {
    background: var(--bleu);
    color: #fff;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: normal;
}
.legal-table tr:last-child th,
.legal-table tr:last-child td { border-bottom: none; }

/* ── Date mise à jour ─────────────────────────────────────── */
.legal-update {
    font-size: .78rem !important;
    color: #aaa !important;
    margin-top: 1rem !important;
    font-style: italic;
}

/* ── Sommaire (aside) ─────────────────────────────────────── */
.legal-toc {
    position: sticky;
    top: 5.5rem;
    background: #fff;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 2px 10px rgba(27,74,138,.06);
    border-left: 3px solid var(--bleu);
}
.legal-toc-title {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--bleu);
    margin: 0 0 .75rem;
}
.legal-toc nav {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.legal-toc nav a {
    font-size: .82rem;
    color: var(--gris-texte);
    text-decoration: none;
    padding: .25rem .5rem;
    border-radius: 5px;
    transition: background .15s, color .15s;
    line-height: 1.4;
}
.legal-toc nav a:hover {
    background: var(--bleu-soft);
    color: var(--bleu);
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 860px) {
    .legal-main .container {
        grid-template-columns: 1fr;
    }
    .legal-toc {
        position: static;
        order: -1;
    }
}
@media (max-width: 540px) {
    .legal-section { padding: 1.5rem 1.25rem; }
    .legal-table th { white-space: normal; }
}
