.legal-document { background: linear-gradient(180deg, #f7f3e8 0, #fff 260px); }
.legal-page { padding-top: 48px; }
.legal-v510-shell { width: min(1120px, calc(100% - 40px)); margin-inline: auto; padding-bottom: 80px; }
.legal-v510-hero { display: grid; align-items: end; min-height: 250px; padding: clamp(32px, 6vw, 68px); margin-bottom: 22px; overflow: hidden; border-radius: 28px; color: #fff; background: radial-gradient(circle at 90% 10%, rgba(212,170,59,.3), transparent 34%), linear-gradient(135deg, #0f3b2e, #164c3a); box-shadow: 0 22px 65px rgba(15,59,46,.18); }
.legal-v510-hero h1 { max-width: 850px; margin: 5px 0 12px; color: #fff; font-size: clamp(2.25rem, 6vw, 4.65rem); line-height: .98; }
.legal-v510-hero > div > p:not(.section-kicker):not(.legal-v510-updated) { max-width: 760px; margin: 0; font-size: 1.07rem; color: rgba(255,255,255,.82); }
.legal-v510-updated { margin: 18px 0 0; font-size: .88rem; color: rgba(255,255,255,.67); }
.legal-v510-alert { margin: 0 0 22px; padding: 17px 20px; border: 1px solid #e1b948; border-radius: 16px; background: #fff7dc; color: #5e4810; }
.legal-v510-alert strong { display: block; margin-bottom: 3px; }
.legal-v510-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; align-items: start; }
.legal-v510-toc { position: sticky; top: 100px; padding: 20px; border: 1px solid #dfe5df; border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 12px 35px rgba(15,59,46,.07); }
.legal-v510-toc strong { color: var(--forest, #0f3b2e); }
.legal-v510-toc ol { display: grid; gap: 9px; margin: 13px 0 0; padding-left: 21px; }
.legal-v510-toc a { color: #42554b; text-decoration: none; }
.legal-v510-toc a:hover { color: var(--forest, #0f3b2e); text-decoration: underline; text-underline-offset: 3px; }
.legal-v510-content { display: grid; gap: 18px; }
.legal-v510-section { scroll-margin-top: 110px; padding: clamp(24px, 4vw, 38px); border: 1px solid #e0e5e1; border-radius: 22px; background: #fff; box-shadow: 0 12px 38px rgba(15,59,46,.055); }
.legal-v510-section h2 { margin: 0 0 16px; color: var(--forest, #0f3b2e); font-size: clamp(1.45rem, 3vw, 2rem); }
.legal-v510-section h3 { margin: 24px 0 8px; color: #1d4c3c; }
.legal-v510-section p, .legal-v510-section li { color: #405047; line-height: 1.72; }
.legal-v510-section ul, .legal-v510-section ol { padding-left: 22px; }
.legal-v510-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; }
.legal-v510-detail { padding: 15px 17px; border-radius: 14px; background: #f5f7f4; }
.legal-v510-detail span { display: block; margin-bottom: 4px; color: #718078; font-size: .79rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.legal-v510-table-wrap { overflow-x: auto; margin-top: 18px; }
.legal-v510-table { width: 100%; min-width: 680px; border-collapse: collapse; }
.legal-v510-table th, .legal-v510-table td { padding: 13px 14px; border-bottom: 1px solid #e2e7e3; text-align: left; vertical-align: top; }
.legal-v510-table th { color: #fff; background: var(--forest, #0f3b2e); }
.legal-v510-table tr:nth-child(even) td { background: #f7f9f7; }
.legal-missing { display: inline-block; padding: 2px 8px; border-radius: 999px; background: #fff0c6; color: #7a5600; font-weight: 800; }
.legal-v510-inline-action { display: inline-flex; align-items: center; min-height: 42px; margin-top: 10px; padding: 0 18px; border: 0; border-radius: 999px; color: #fff; background: var(--forest, #0f3b2e); font-weight: 800; cursor: pointer; }
.legal-v510-note { padding: 16px 18px; border-left: 4px solid var(--gold, #d4aa3b); border-radius: 0 12px 12px 0; background: #faf7ec; }
@media (max-width: 880px) {
  .legal-v510-layout { grid-template-columns: 1fr; }
  .legal-v510-toc { position: static; }
}
@media (max-width: 620px) {
  .legal-v510-shell { width: min(100% - 24px, 1120px); }
  .legal-v510-hero { min-height: 0; padding: 28px 22px; border-radius: 20px; }
  .legal-v510-details { grid-template-columns: 1fr; }
  .legal-v510-section { padding: 22px 18px; border-radius: 17px; }
}

/* v6.0.2 — lisibilité de la première colonne des tableaux légaux. */
.legal-v510-cookie-table th:first-child,
.legal-v510-cookie-table td:first-child {
  width: 200px;
  min-width: 200px;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.legal-v510-cookie-table th:nth-child(2),
.legal-v510-cookie-table td:nth-child(2) {
  min-width: 360px;
}

.legal-v510-cookie-table th:nth-child(3),
.legal-v510-cookie-table td:nth-child(3) {
  min-width: 250px;
}

@media (max-width: 620px) {
  .legal-v510-cookie-table {
    min-width: 850px;
  }
}
