/* ============================================================
   Mentions légales — lecture longue, sommaire collant en desktop
   ============================================================ */
.legal { padding-block: clamp(2rem, 1rem + 4vw, 4.5rem) var(--space-section); }
.legal__head { max-width: 46rem; margin-bottom: var(--space-6); }
.legal h1 { font-size: var(--text-h2); }
.legal__status {
  padding: var(--space-3) var(--space-4);
  background: var(--color-accent-wash);
  border-left: 4px solid var(--color-accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--color-ink);
}
.legal__updated { font-size: var(--text-sm); color: var(--color-ink-mute); }

.legal__toc { margin-bottom: var(--space-6); }
.legal__toc ol { margin: 0; padding: var(--space-4) var(--space-4) var(--space-4) 2.2rem; background: var(--color-card); border: 1px solid var(--color-line); border-radius: var(--radius); }
.legal__toc li { padding-block: 0.2rem; }
.legal__toc a { font-weight: 700; display: inline-block; padding-block: 0.25rem; }

.legal__body { max-width: 46rem; }
.legal__body section { padding-block: var(--space-5); border-top: 1px solid var(--color-line); scroll-margin-top: 90px; }
.legal__body h2 { font-size: var(--text-h3); }
.legal__body h3 { font-family: var(--font-body); font-size: 1rem; font-weight: 800; color: var(--color-ink); margin: var(--space-5) 0 var(--space-2); }
.legal__body ul { padding-left: 1.2rem; color: var(--color-ink-soft); }
.legal__body li { margin-bottom: 0.4rem; }
.legal__lead { font-size: var(--text-lead); color: var(--color-ink); font-weight: 600; }

.facts { margin: 0; display: grid; gap: 0; }
.facts div { display: grid; gap: 0.1rem; padding-block: var(--space-2); border-bottom: 1px dashed var(--color-line); }
.facts dt { font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--color-ink-mute); }
.facts dd { margin: 0; }
@media (min-width: 560px) { .facts div { grid-template-columns: 14rem 1fr; } }

.ph {
  background: var(--color-accent-wash);
  color: var(--color-accent-hover);
  padding: 0 0.3em;
  border-radius: 4px;
  font-weight: 700;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

@media (min-width: 1024px) {
  .legal { display: grid; grid-template-columns: 15rem minmax(0, 46rem); gap: var(--space-7); justify-content: center; }
  .legal__head { grid-column: 1 / -1; }
  .legal__toc { position: sticky; top: 100px; align-self: start; }
}
.legal__status--ok { border-left-color: var(--color-green-soft); background: var(--color-info-wash); }
