/* socle-consentement — le bandeau public. Thème par variables : un site les redéfinit dans son
   habillage sans toucher au greffon. Les trois boutons du premier niveau partagent une seule
   classe : même forme, même poids (CNIL — refuser aussi simplement qu'accepter). */
:root {
  --socle-c-fond: #ffffff;
  --socle-c-texte: #1f2937;
  --socle-c-discret: #4b5563;
  --socle-c-accent: #5b21b6;
  --socle-c-accent-texte: #ffffff;
  --socle-c-bord: #e5e7eb;
  --socle-c-rayon: 10px;
}

.socle-consentement {
  position: fixed; z-index: 2147483000; left: 16px; right: 16px; bottom: 16px;
  max-width: 760px; margin: 0 auto; max-height: calc(100vh - 32px); overflow: auto;
  background: var(--socle-c-fond); color: var(--socle-c-texte);
  border: 1px solid var(--socle-c-bord); border-radius: var(--socle-c-rayon);
  box-shadow: 0 10px 40px rgba(0, 0, 0, .18); font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.socle-consentement[hidden], .socle-consentement-panneau[hidden], .socle-consentement-flottant[hidden] { display: none !important; }
.socle-consentement-panneau { padding: 20px 22px; }
.socle-consentement-titre { margin: 0 0 8px; font-weight: 700; font-size: 17px; }
.socle-consentement-texte { margin: 0 0 8px; }
.socle-consentement-lien { margin: 0 0 14px; }
.socle-consentement-lien a { color: var(--socle-c-accent); }
.socle-consentement-boutons { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.socle-consentement-bouton {
  flex: 1 1 160px; padding: 10px 16px; border-radius: 8px; cursor: pointer;
  border: 2px solid var(--socle-c-accent); background: var(--socle-c-accent); color: var(--socle-c-accent-texte);
  font: inherit; font-weight: 600;
}
/* Les thèmes (Astra…) colorent button:focus et button:hover : sans cette règle, le bouton qui a le
   focus — « Tout refuser » à l'ouverture — changeait de couleur et les trois n'avaient plus le même
   poids. Même apparence dans tous les états ; seul un contour signale le focus clavier. */
.socle-consentement .socle-consentement-bouton,
.socle-consentement .socle-consentement-bouton:hover,
.socle-consentement .socle-consentement-bouton:focus,
.socle-consentement .socle-consentement-bouton:active {
  background: var(--socle-c-accent) !important; color: var(--socle-c-accent-texte) !important;
  border-color: var(--socle-c-accent) !important; box-shadow: none !important; text-decoration: none !important;
}
.socle-consentement .socle-consentement-bouton:focus { outline: none; }
.socle-consentement .socle-consentement-bouton:focus-visible { outline: 3px solid rgba(91, 33, 182, .45); outline-offset: 2px; }
.socle-consentement-categorie { border: 1px solid var(--socle-c-bord); border-radius: 8px; margin: 0 0 12px; padding: 10px 14px; }
.socle-consentement-categorie legend { font-weight: 700; padding: 0 4px; }
.socle-consentement-categorie p { margin: 4px 0 8px; color: var(--socle-c-discret); font-size: 14px; }
.socle-consentement-choix { display: inline-flex; align-items: center; gap: 6px; margin-right: 18px; cursor: pointer; }

.socle-consentement-flottant {
  position: fixed; z-index: 2147482999; left: 16px; bottom: 16px; padding: 7px 12px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--socle-c-bord); background: var(--socle-c-fond); color: var(--socle-c-texte);
  font: 13px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}

.socle-consentement-encart {
  border: 1px dashed var(--socle-c-bord); border-radius: var(--socle-c-rayon); padding: 18px; margin: 0 0 1em;
  background: #f9fafb; color: var(--socle-c-texte); text-align: center;
}
.socle-consentement-encart p { margin: 0 0 10px; }
.socle-consentement-encart-bouton, .socle-consentement-gerer-bouton {
  padding: 8px 14px; border-radius: 8px; cursor: pointer; border: 2px solid var(--socle-c-accent);
  background: var(--socle-c-accent); color: var(--socle-c-accent-texte); font: inherit; font-weight: 600;
}

.socle-consentement-tableau { overflow-x: auto; }
.socle-consentement-tableau table { border-collapse: collapse; width: 100%; }
.socle-consentement-tableau th, .socle-consentement-tableau td { border: 1px solid var(--socle-c-bord); padding: 8px; text-align: left; vertical-align: top; }
.socle-consentement-demande input[type=text], .socle-consentement-demande input[type=email],
.socle-consentement-demande select, .socle-consentement-demande textarea { width: 100%; max-width: 560px; }
.socle-consentement-piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 520px) {
  .socle-consentement { left: 8px; right: 8px; bottom: 8px; }
  .socle-consentement-bouton { flex-basis: 100%; }
}

/* Signal GPC : l'avis n'apparaît que si le navigateur l'envoie (le JS retire hidden). */
.socle-consentement-gpc[hidden] { display: none !important; }
