/* ============================================================
   Couche conformité (24/09/2026) : accessibilité, formulaires,
   pied de page légal, pages juridiques. Additive, ne modifie pas style.css.
   ============================================================ */

/* --- Accessibilité --- */
.skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 1000;
  padding: 10px 16px; border-radius: 8px;
  background: #fff; color: #030305; font-weight: 700; text-decoration: none;
}
.skip-link:focus { top: 12px; }

.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Focus clavier toujours visible (style.css le retirait sur les champs) */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 3px solid #F6C20A !important;
  outline-offset: 2px;
}

/* Pot de miel anti-robots : hors écran, invisible pour les humains */
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* --- Mentions sous les formulaires --- */
.form-notice { margin: 4px 0 0; font-size: .85rem; line-height: 1.5; color: #c8c8c8; text-align: left; }
.form-notice a { color: #fff; }

/* --- Pied de page légal --- */
.footer-legal {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px;
  margin: 22px auto 6px; padding: 0 16px; font-size: .9rem;
}
.footer-legal a { color: #fff; text-underline-offset: 3px; }

/* --- Pages juridiques --- */
.ml { max-width: 780px; margin: 0 auto; padding: 48px 20px 64px; line-height: 1.7; color: #e9e9ee; }
.ml h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); margin: 0 0 8px; color: #fff; line-height: 1.15; }
.ml .ml-maj { color: #b5b5bd; font-size: .9rem; margin: 0 0 32px; }
.ml h2 { font-size: 1.2rem; margin: 40px 0 12px; padding-left: 12px; border-left: 4px solid #E2231A; color: #fff; line-height: 1.3; }
.ml h3 { font-size: 1.02rem; margin: 26px 0 8px; color: #fff; }
.ml a { color: #9fc0ff; text-underline-offset: 3px; }
.ml dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 0; }
.ml dt { font-weight: 600; color: #fff; }
.ml dd { margin: 0; }
.ml ul { padding-left: 1.2em; }
.ml li { margin: 4px 0; }
.ml .todo { background: #F6C20A; color: #111; padding: 0 6px; border-radius: 4px; font-weight: 700; }
.ml .ml-toc { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 14px 20px; }
.ml .ml-toc ol { margin: 6px 0 0; padding-left: 1.3em; }
.ml .ml-box { border: 1px solid rgba(255,255,255,.18); border-radius: 12px; padding: 18px 20px; margin: 18px 0; background: rgba(255,255,255,.03); }
.ml-table-wrap { overflow-x: auto; margin: 12px 0; }
.ml table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 560px; }
.ml th, .ml td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.12); }
.ml th { color: #fff; background: rgba(255,255,255,.05); }
@media (max-width: 560px) {
  .ml dl { grid-template-columns: 1fr; gap: 0; }
  .ml dd { margin-bottom: 10px; }
}
