/* Bandeau et panneau de consentement aux cookies — voir vie-privee.js.
   Reprend les jetons du design system (assets/ds/tokens.css), avec des
   valeurs de repli pour rester lisible sur une page qui ne les charge pas.

   Les trois boutons ont délibérément le MÊME poids visuel : la CNIL exige
   qu'il soit aussi simple de refuser que d'accepter. Pas de bouton
   « Accepter » plus gros, plus coloré ou mieux placé que « Refuser ». */

.pvp-bandeau {
  position: fixed; z-index: 1000; left: 20px; bottom: 20px;
  width: min(560px, calc(100vw - 40px)); box-sizing: border-box;
  padding: 20px 22px 18px; border-radius: var(--radius-lg, 18px);
  background: var(--surface-card, #FDFEFF); color: var(--text-body, #27406B);
  border: 1px solid var(--border-default, #C9D8EE);
  box-shadow: 0 18px 48px rgba(39, 64, 107, 0.22);
  font-family: var(--font-sans, system-ui, sans-serif);
  animation: pvp-entree 0.45s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes pvp-entree { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pvp-bandeau { animation: none; } }

.pvp-titre, .pvp-h { margin: 0 0 8px; font-size: 16px; font-weight: 700; color: var(--text-strong, #27406B); letter-spacing: -0.01em; }
.pvp-h { font-size: 21px; margin-bottom: 10px; }
.pvp-texte { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--text-muted, #6B82A6); }
.pvp-texte a, .pvp-detail a { color: var(--color-primary, #4C7EDE); text-decoration: underline; text-underline-offset: 2px; }

.pvp-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
.pvp-btn {
  appearance: none; cursor: pointer; font: inherit; font-size: 13.5px; font-weight: 600;
  padding: 11px 10px; border-radius: var(--radius-sm, 12px);
  background: var(--surface-card, #FDFEFF); color: var(--text-strong, #27406B);
  border: 1.5px solid var(--color-primary, #4C7EDE);
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.pvp-btn:hover { background: var(--color-primary, #4C7EDE); color: var(--text-on-primary, #FDFEFF); }
.pvp-btn:active { transform: translateY(1px); }
.pvp-btn:focus-visible, .pvp-lien:focus-visible, .pvp-fermer:focus-visible, .pvp-interrupteur:focus-visible {
  outline: 3px solid var(--color-accent, #9DC2F0); outline-offset: 2px;
}

.pvp-fond {
  position: fixed; inset: 0; z-index: 1001; display: flex; align-items: center; justify-content: center;
  padding: 16px; background: rgba(39, 64, 107, 0.42); font-family: var(--font-sans, system-ui, sans-serif);
}
.pvp-panneau {
  position: relative; box-sizing: border-box; width: min(600px, 100%); max-height: calc(100vh - 32px); overflow: auto;
  padding: 28px 26px 22px; border-radius: var(--radius-xl, 20px);
  background: var(--surface-card, #FDFEFF); color: var(--text-body, #27406B);
  box-shadow: 0 24px 60px rgba(39, 64, 107, 0.28);
}
.pvp-fermer {
  position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--border-default, #C9D8EE); background: transparent; color: var(--text-muted, #6B82A6);
  font-size: 20px; line-height: 1; cursor: pointer;
}
.pvp-categorie { margin-top: 16px; padding: 14px 16px; border-radius: var(--radius-sm, 12px); background: var(--surface-sunken, #F4F7FC); border: 1px solid var(--border-subtle, #E1E9F5); }
.pvp-cat-tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--text-strong, #27406B); }
.pvp-cat-tete label { cursor: pointer; }
.pvp-toujours { font-size: 12px; font-weight: 600; color: var(--text-muted, #6B82A6); }
.pvp-detail { margin: 8px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--text-muted, #6B82A6); }
.pvp-detail code { font-size: 12px; color: var(--text-strong, #27406B); }
.pvp-resultat:empty { display: none; }
.pvp-lien { margin-top: 10px; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--text-danger, #8E3630); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.pvp-lien:disabled { opacity: 0.55; cursor: default; }

/* Interrupteur accessible : une vraie case à cocher, stylée. */
.pvp-interrupteur {
  appearance: none; -webkit-appearance: none; flex: none; position: relative; margin: 0;
  width: 44px; height: 26px; border-radius: 999px; cursor: pointer;
  background: var(--pimmo-disabled, #B7C2D4); transition: background 0.18s ease;
}
.pvp-interrupteur::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(39, 64, 107, 0.3); transition: transform 0.18s ease;
}
.pvp-interrupteur:checked { background: var(--color-primary, #4C7EDE); }
.pvp-interrupteur:checked::after { transform: translateX(18px); }

.pvp-avis {
  position: fixed; z-index: 1002; left: 50%; bottom: 24px; transform: translateX(-50%);
  max-width: calc(100vw - 32px); padding: 11px 18px; border-radius: 12px;
  background: var(--pimmo-blue-700, #27406B); color: var(--pimmo-paper, #FDFEFF);
  font: 500 13px/1.4 var(--font-sans, system-ui, sans-serif); box-shadow: 0 8px 24px rgba(39, 64, 107, 0.3);
}

@media (max-width: 560px) {
  .pvp-bandeau { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 16px; }
  .pvp-actions { grid-template-columns: 1fr; }
  .pvp-panneau { padding: 24px 18px 18px; }
}
@media print { .pvp-bandeau, .pvp-fond, .pvp-avis { display: none !important; } }
