.legal-page{background:#f8fafc;color:#0f172a;padding-bottom:80px}.legal-hero{background:radial-gradient(620px 260px at 10% 0%,rgba(56,189,248,.18),transparent 72%),linear-gradient(135deg,#eff6ff,#fff);border-bottom:1px solid #dbe4f0;padding:48px 0}.legal-hero-inner{text-align:center}.legal-kicker{display:inline-flex;background:#fff;border:1px solid #bfdbfe;border-radius:999px;color:#1d4ed8;font-size:.8rem;font-weight:900;padding:8px 12px}.legal-hero h1{font-size:clamp(2.1rem,5vw,4rem);letter-spacing:-.045em;line-height:1.05;margin:16px 0 12px}.legal-hero p{color:#475569;font-size:1.05rem;line-height:1.7;margin:0 auto;max-width:760px}.legal-page-nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:24px}.legal-page-nav a{background:#fff;border:1px solid #cbd5e1;border-radius:11px;color:#334155;font-size:.84rem;font-weight:850;padding:9px 12px;text-decoration:none}.legal-content{padding:48px 0}.legal-document{background:#fff;border:1px solid #dbe4f0;border-radius:26px;box-shadow:0 20px 55px rgba(15,23,42,.075);margin:0 auto;max-width:980px;padding:clamp(22px,4vw,46px)}.legal-intro{background:#eff6ff;border:1px solid #bfdbfe;border-radius:18px;margin-bottom:28px;padding:20px}.legal-section{border-top:1px solid #e2e8f0;padding:26px 0}.legal-section:first-child{border-top:0;padding-top:0}.legal-section h2{font-size:clamp(1.3rem,2.5vw,1.75rem);margin:0 0 14px}.legal-section h3{color:#1e3a8a;font-size:1.05rem;margin:22px 0 10px}.legal-section p,.legal-section li,.legal-intro p{color:#475569;line-height:1.75}.legal-section a,.legal-intro a{color:#1d4ed8;font-weight:700}.legal-footer{background:#f8fafc;border-radius:14px;margin-top:22px;padding:14px;text-align:center}.cookie-table{overflow-x:auto}.cookie-table table{border-collapse:collapse;min-width:680px;width:100%}.cookie-table th,.cookie-table td{border:1px solid #dbe4f0;padding:12px;text-align:left;vertical-align:top}.cookie-table th{background:#eff6ff}.legal-index-grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.legal-index-card{background:#fff;border:1px solid #dbe4f0;border-radius:22px;box-shadow:0 14px 36px rgba(15,23,42,.06);color:inherit;padding:24px;text-decoration:none}.legal-index-card span{color:#2563eb;font-size:.78rem;font-weight:900}.legal-index-card h2{font-size:1.25rem;margin:12px 0 8px}.legal-index-card p{color:#64748b;line-height:1.6;margin:0}@media(max-width:800px){.legal-index-grid{grid-template-columns:1fr}.legal-content{padding:28px 0}.legal-document{border-radius:20px;padding:20px}}

/* =========================================================
   Composants génériques des pages légales
========================================================= */

.legal-document a {
    color: #1d4ed8;
    font-weight: 750;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
}

.legal-document a:hover {
    color: #1e40af;
}

.legal-document button,
.legal-action-button,
.cookie-settings-btn {
    align-items: center;
    appearance: none;
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    border: 1px solid #1d4ed8;
    border-radius: 13px;
    box-shadow: 0 12px 28px rgba(37, 99, 235, .2);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: .9rem;
    font-weight: 900;
    justify-content: center;
    min-height: 46px;
    padding: .72rem 1rem;
    text-decoration: none;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background .16s ease;
}

.legal-document button:hover,
.legal-action-button:hover,
.cookie-settings-btn:hover {
    box-shadow: 0 16px 34px rgba(37, 99, 235, .27);
    transform: translateY(-1px);
}

.legal-document button:focus-visible,
.legal-action-button:focus-visible,
.cookie-settings-btn:focus-visible {
    outline: 4px solid rgba(37, 99, 235, .18);
    outline-offset: 3px;
}

.cookie-preferences {
    align-items: flex-start;
    background:
        radial-gradient(320px 140px at 0% 0%, rgba(56, 189, 248, .12), transparent 75%),
        #f8fbff;
    border: 1px solid #bfdbfe;
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    gap: 13px;
    margin: 18px 0;
    padding: 19px;
}

.cookie-preferences p {
    margin: 0;
}

.legal-document blockquote {
    background: #f8fafc;
    border-left: 4px solid #3b82f6;
    border-radius: 0 14px 14px 0;
    color: #475569;
    margin: 18px 0;
    padding: 14px 18px;
}

.legal-document code {
    background: #eff6ff;
    border: 1px solid #dbeafe;
    border-radius: 7px;
    color: #1e3a8a;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .88em;
    padding: .12rem .34rem;
}

.legal-document hr {
    border: 0;
    border-top: 1px solid #e2e8f0;
    margin: 28px 0;
}

.legal-document strong {
    color: #1e293b;
}

.legal-document dl {
    display: grid;
    gap: 10px;
}

.legal-document dt {
    color: #0f172a;
    font-weight: 900;
}

.legal-document dd {
    color: #64748b;
    margin: 0 0 8px;
}

.legal-document table {
    background: #fff;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    overflow: hidden;
    width: 100%;
}

.legal-document th,
.legal-document td {
    border-bottom: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    line-height: 1.55;
    padding: 12px 13px;
    text-align: left;
    vertical-align: top;
}

.legal-document tr:last-child td {
    border-bottom: 0;
}

.legal-document th:last-child,
.legal-document td:last-child {
    border-right: 0;
}

.legal-document th {
    background: #eff6ff;
    color: #1e3a8a;
    font-size: .82rem;
    font-weight: 900;
}

.legal-document td {
    color: #475569;
}

.legal-document .legal-footer {
    border: 1px solid #e2e8f0;
    line-height: 1.6;
}

@media (max-width: 640px) {
    .legal-document button,
    .legal-action-button,
    .cookie-settings-btn {
        width: 100%;
    }

    .cookie-preferences {
        padding: 16px;
    }
}
