/* Bannière de consentement — GÉNÉRÉ par scripts/mesure/injecter.py.
   Ne pas éditer : les couleurs sont dérivées de shared-design/theme.css à
   l'assemblage, ce qui rend la divergence impossible par construction.
   Marque mère : noir et blanc, rayon 0. Aucun accent de filiale ici — une
   bannière de consentement n'appartient à aucune filiale. */
.fm-consent {
  position: fixed; inset: auto 0 0 0; z-index: 9999;
  background: #FFFFFF;
  border-top: 1px solid #E3E6E6;
  font-family: 'Nunito', system-ui, sans-serif;
  color: #3D3E3E;
  padding: 20px 24px;
  box-shadow: 0 -1px 0 #E3E6E6;
}
.fm-consent[hidden] { display: none; }
.fm-consent__inner {
  max-width: 1180px; margin: 0 auto;
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}
.fm-consent__texte { flex: 1 1 420px; font-size: 15px; line-height: 1.6; margin: 0; }
/* `display: block` n'est pas décoratif : sans lui le titre se colle au texte
   (« Mesure d'audienceNous aimerions… »), un `margin` n'ayant aucun effet
   vertical sur un span en ligne. */
.fm-consent__titre {
  display: block;
  font-family: 'Poppins', system-ui, sans-serif; font-weight: 800; font-size: 16px;
  color: #111111; margin: 0 0 4px;
}
.fm-consent__texte a {
  color: inherit; text-decoration: underline; text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.fm-consent__texte a:hover { text-decoration-thickness: 2px; }
.fm-consent__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.fm-consent__bouton {
  font-family: 'Poppins', system-ui, sans-serif; font-weight: 800; font-size: 15px;
  min-height: 48px; padding: 12px 22px; border: 1px solid #111111;
  border-radius: 0; cursor: pointer; background: #FFFFFF;
  color: #111111;
}
/* Refuser et accepter ont le même poids visuel : un refus qui se cherche est un
   consentement extorqué, et la CNIL le lit ainsi. Seul l'aplat distingue. */
.fm-consent__bouton--oui {
  background: #111111; color: #FFFFFF;
}
.fm-consent__bouton:focus-visible {
  outline: 2px solid #111111; outline-offset: 3px;
}
.fm-consent__bouton--oui:focus-visible { outline-offset: 2px; }
@media (max-width: 620px) {
  .fm-consent { padding: 16px 20px; }
  .fm-consent__actions { width: 100%; }
  .fm-consent__bouton { flex: 1 1 auto; justify-content: center; }
}
@media (prefers-reduced-motion: no-preference) {
  .fm-consent { animation: fm-consent-entree 220ms ease-out; }
  @keyframes fm-consent-entree { from { transform: translateY(100%); } to { transform: none; } }
}
