/* =============================================
   TARTEAUCITRON — CHARTE OLFAKTION
   Override des styles par défaut de la lib
   pour aligner la bannière de consentement
   sur l'identité visuelle du site.
   ============================================= */

/* ---------- Conteneur racine ---------- */
#tarteaucitronRoot * {
  font-family: var(--font-primary) !important;
}

/* Cases à cocher Unicode — Tarteaucitron force color:#000 par défaut,
   on hérite la couleur du bouton parent pour qu'elles soient visibles */
#tarteaucitronRoot .tarteaucitronCheck::before,
#tarteaucitronRoot .tarteaucitronCross::before {
  color: currentColor !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Symbol", "Apple Symbols", system-ui, sans-serif !important;
  font-size: 1em !important;
  margin-right: 5px !important;
  display: inline-block !important;
  vertical-align: middle !important;
  opacity: 1 !important;
}

/* ---------- Bannière principale (alerte initiale) ---------- */
#tarteaucitronRoot #tarteaucitronAlertBig {
  background: var(--color-header-navy) !important;
  color: var(--color-white) !important;
  padding: 28px 32px !important;
  box-shadow: 0 -4px 24px rgba(7, 6, 35, 0.25) !important;
  border-top: 3px solid var(--color-pink) !important;
  font-size: clamp(0.9rem, 1.1vw, 1rem) !important;
  line-height: 1.5 !important;
  box-sizing: border-box !important;
}

#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
  color: var(--color-white) !important;
  font-weight: var(--font-weight-regular) !important;
  margin-right: 16px !important;
}

#tarteaucitronRoot #tarteaucitronDisclaimerAlert strong {
  color: var(--color-teal) !important;
  font-weight: var(--font-weight-bold) !important;
}

/* ---------- Boutons de la bannière principale ---------- */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCTAButton {
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-medium) !important;
  font-size: 0.95rem !important;
  padding: 12px 24px !important;
  border-radius: 999px !important;
  border: none !important;
  cursor: pointer !important;
  transition: var(--transition-default) !important;
  margin: 6px 6px !important;
  text-transform: none !important;
  letter-spacing: 0.2px !important;
}

/* Bouton ACCEPT — primaire rose */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize,
#tarteaucitronRoot button#tarteaucitronPersonalize2,
#tarteaucitronRoot .tarteaucitronAllow {
  background: var(--color-pink) !important;
  color: var(--color-white) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize:hover,
#tarteaucitronRoot button#tarteaucitronPersonalize2:hover,
#tarteaucitronRoot .tarteaucitronAllow:hover {
  background: var(--color-white) !important;
  color: var(--color-pink) !important;
  transform: translateY(-1px) !important;
}

/* Bouton REJECT — secondaire navy outlined */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitron-RejectAllCta,
#tarteaucitronRoot .tarteaucitronDeny {
  background: transparent !important;
  color: var(--color-white) !important;
  border: 2px solid var(--color-white) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitron-RejectAllCta:hover,
#tarteaucitronRoot .tarteaucitronDeny:hover {
  background: var(--color-white) !important;
  color: var(--color-header-navy) !important;
}

/* Bouton « Personnaliser » — teal accent */
#tarteaucitronRoot #tarteaucitronPrivacyUrl,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog {
  color: var(--color-teal) !important;
  text-decoration: underline !important;
  font-weight: var(--font-weight-medium) !important;
}

#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover {
  color: var(--color-white) !important;
}

/* ---------- Panneau de configuration détaillé ---------- */
#tarteaucitronRoot #tarteaucitron {
  background: var(--color-white) !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 60px rgba(7, 6, 35, 0.45) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  /* Centrage propre — on neutralise le margin-left:-430px par défaut */
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 92% !important;
  max-width: 720px !important;
  max-height: 88vh !important;
  margin: 0 !important;
  padding: 0 !important;
}

#tarteaucitronRoot #tarteaucitronServices {
  background: var(--color-light-bg) !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* En-tête du panel : navy avec liseré rose */
#tarteaucitronRoot #tarteaucitronMainLineOffset {
  background: var(--color-header-navy) !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 32px 36px 28px !important;
  border-bottom: 3px solid var(--color-pink) !important;
  box-shadow: none !important;
}

/* Titre principal "Cookies management panel" */
#tarteaucitronRoot .tarteaucitronH1,
#tarteaucitronRoot #dialogTitle {
  display: block !important;
  color: var(--color-white) !important;
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-bold) !important;
  font-size: clamp(1.4rem, 2vw, 1.75rem) !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  text-align: left !important;
  background: transparent !important;
  letter-spacing: 0.2px !important;
}

/* Texte d'introduction (disclaimer) */
#tarteaucitronRoot #tarteaucitronInfo {
  background: transparent !important;
  color: var(--color-white) !important;
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-regular) !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  text-align: left !important;
  padding: 0 !important;
  margin: 0 0 20px 0 !important;
  border: none !important;
  display: block !important;
  position: static !important;
  max-width: none !important;
}

/* Lien "Politique de confidentialité" dans le disclaimer */
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog {
  background: transparent !important;
  color: var(--color-teal) !important;
  border: none !important;
  padding: 0 !important;
  margin: 8px 0 0 0 !important;
  font-family: var(--font-primary) !important;
  font-size: 0.9rem !important;
  font-weight: var(--font-weight-medium) !important;
  text-decoration: underline !important;
  cursor: pointer !important;
  text-transform: none !important;
}

#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover {
  color: var(--color-white) !important;
}

/* Sous-titre "Préférence pour tous les services" */
#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronName {
  display: block !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronH2 {
  display: block !important;
  color: var(--color-white) !important;
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-medium) !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  opacity: 0.85 !important;
}

/* Conteneur des boutons globaux Allow all / Deny all */
#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronAsk,
#tarteaucitronRoot #tarteaucitronScrollbarAdjust {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* Boutons globaux du panel (Allow all / Deny all) */
#tarteaucitronRoot #tarteaucitronAllAllowed,
#tarteaucitronRoot #tarteaucitronAllDenied {
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-medium) !important;
  font-size: 0.9rem !important;
  border-radius: 999px !important;
  padding: 11px 22px !important;
  border: 2px solid transparent !important;
  margin: 0 !important;
  cursor: pointer !important;
  transition: var(--transition-default) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-transform: none !important;
  letter-spacing: 0.2px !important;
}

#tarteaucitronRoot #tarteaucitronAllAllowed {
  background: var(--color-pink) !important;
  color: var(--color-white) !important;
  border-color: var(--color-pink) !important;
}

#tarteaucitronRoot #tarteaucitronAllAllowed:hover {
  background: var(--color-white) !important;
  color: var(--color-pink) !important;
  border-color: var(--color-white) !important;
  transform: translateY(-1px) !important;
}

#tarteaucitronRoot #tarteaucitronAllDenied {
  background: transparent !important;
  color: var(--color-white) !important;
  border-color: var(--color-white) !important;
}

#tarteaucitronRoot #tarteaucitronAllDenied:hover {
  background: var(--color-white) !important;
  color: var(--color-header-navy) !important;
  transform: translateY(-1px) !important;
}

/* Petites icônes check / cross dans les boutons */
#tarteaucitronRoot .tarteaucitronCheck,
#tarteaucitronRoot .tarteaucitronCross {
  display: inline-block !important;
}

/* ---------- Zone de contenu (services) ---------- */
#tarteaucitronRoot .tarteaucitronBorder {
  background: var(--color-light-bg) !important;
  border: none !important;
  padding: 24px 28px 100px !important;
  max-height: 50vh !important;
  overflow-y: auto !important;
}

#tarteaucitronRoot .tarteaucitronBorder ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Titres de section "Mandatory cookies" / "APIs" */
#tarteaucitronRoot .tarteaucitronTitle {
  margin: 24px 0 12px 0 !important;
  padding: 0 0 8px 0 !important;
  border-bottom: 2px solid rgba(7, 6, 35, 0.08) !important;
  background: transparent !important;
}

#tarteaucitronRoot .tarteaucitronTitle:first-child,
#tarteaucitronRoot li:first-child .tarteaucitronTitle {
  margin-top: 0 !important;
}

#tarteaucitronRoot .tarteaucitronTitle button,
#tarteaucitronRoot .tarteaucitronTitle .asCatToggleBtn,
#tarteaucitronRoot .tarteaucitronTitle span {
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-bold) !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: var(--color-pink) !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
}

/* Lignes de service (chaque cookie / outil) */
#tarteaucitronRoot .tarteaucitronLine {
  background: var(--color-white) !important;
  border-left: 4px solid transparent !important;
  border-radius: 8px !important;
  margin: 0 0 10px 0 !important;
  padding: 16px 20px !important;
  transition: var(--transition-default) !important;
  box-shadow: 0 1px 3px rgba(7, 6, 35, 0.05) !important;
}

#tarteaucitronRoot .tarteaucitronLine:hover {
  border-left-color: var(--color-teal) !important;
  box-shadow: 0 2px 8px rgba(7, 6, 35, 0.08) !important;
}

#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsAllowed {
  border-left-color: var(--color-pink) !important;
}

#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsDenied {
  border-left-color: var(--color-dark-blue-grey) !important;
}

#tarteaucitronRoot .tarteaucitronName {
  color: var(--color-dark-navy) !important;
  font-weight: var(--font-weight-bold) !important;
}

#tarteaucitronRoot .tarteaucitronName .tarteaucitronH3,
#tarteaucitronRoot .tarteaucitronName b,
#tarteaucitronRoot .tarteaucitronH3 {
  color: var(--color-dark-navy) !important;
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-bold) !important;
  font-size: 1rem !important;
}

#tarteaucitronRoot .tarteaucitronName a,
#tarteaucitronRoot .tarteaucitronReadmoreInfo,
#tarteaucitronRoot .tarteaucitronReadmoreOfficial {
  color: var(--color-pink) !important;
  font-size: 0.8rem !important;
  text-decoration: underline !important;
}

#tarteaucitronRoot .tarteaucitronReadmoreSeparator {
  color: var(--color-dark-blue-grey) !important;
  opacity: 0.4 !important;
}

/* Masque le lien "View the official website" (et son séparateur) */
#tarteaucitronRoot .tarteaucitronReadmoreOfficial,
#tarteaucitronRoot .tarteaucitronReadmoreSeparator {
  display: none !important;
}

#tarteaucitronRoot .tarteaucitronListCookies {
  color: var(--color-dark-blue-grey) !important;
  font-size: 0.82rem !important;
  margin-top: 6px !important;
}

/* Boutons par service (Allow / Deny individuels) */
#tarteaucitronRoot .tarteaucitronLine .tarteaucitronAsk {
  background: transparent !important;
  display: inline-flex !important;
  gap: 6px !important;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronLine .tarteaucitronDeny {
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-medium) !important;
  border-radius: 999px !important;
  padding: 7px 16px !important;
  font-size: 0.82rem !important;
  cursor: pointer !important;
  transition: var(--transition-default) !important;
  border: 2px solid transparent !important;
  margin: 0 !important;
  text-transform: none !important;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronAllow {
  background: var(--color-pink) !important;
  color: var(--color-white) !important;
  border-color: var(--color-pink) !important;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronDeny {
  background: var(--color-dark-blue-grey) !important;
  color: var(--color-white) !important;
  border-color: var(--color-dark-blue-grey) !important;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronAllow:hover {
  background: var(--color-white) !important;
  color: var(--color-pink) !important;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronDeny:hover {
  background: var(--color-white) !important;
  color: var(--color-dark-navy) !important;
  border-color: var(--color-dark-navy) !important;
}

/* État sélectionné — bouton Allow actif */
#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsAllowed .tarteaucitronAllow {
  background: var(--color-pink) !important;
  color: var(--color-white) !important;
  opacity: 1 !important;
}

#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsDenied .tarteaucitronDeny {
  background: var(--color-dark-navy) !important;
  border-color: var(--color-dark-navy) !important;
  color: var(--color-white) !important;
  opacity: 1 !important;
}

/* ---------- Bouton Save (sticky bottom) ---------- */
#tarteaucitronRoot #tarteaucitronSave {
  position: sticky !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  background: var(--color-white) !important;
  padding: 18px 28px !important;
  border-top: 1px solid rgba(7, 6, 35, 0.08) !important;
  box-shadow: 0 -4px 16px rgba(7, 6, 35, 0.06) !important;
  text-align: right !important;
  margin: 0 !important;
  z-index: 10 !important;
}

#tarteaucitronRoot #tarteaucitronSaveButton {
  background: var(--color-pink) !important;
  color: var(--color-white) !important;
  font-family: var(--font-primary) !important;
  font-weight: var(--font-weight-medium) !important;
  font-size: 0.95rem !important;
  border: 2px solid var(--color-pink) !important;
  border-radius: 999px !important;
  padding: 12px 32px !important;
  cursor: pointer !important;
  transition: var(--transition-default) !important;
  text-transform: none !important;
  letter-spacing: 0.2px !important;
}

#tarteaucitronRoot #tarteaucitronSaveButton:hover {
  background: var(--color-white) !important;
  color: var(--color-pink) !important;
  transform: translateY(-1px) !important;
}

/* ---------- Croix de fermeture du panel (top-right) ---------- */
#tarteaucitronRoot #tarteaucitronClosePanel,
#tarteaucitronRoot #tarteaucitronBack {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  background: rgba(255, 255, 255, 0.15) !important;
  color: var(--color-white) !important;
  font-family: var(--font-primary) !important;
  font-size: 0 !important;
  border: none !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  transition: var(--transition-default) !important;
  z-index: 20 !important;
}

#tarteaucitronRoot #tarteaucitronClosePanel::before,
#tarteaucitronRoot #tarteaucitronBack::before {
  content: "×" !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  display: block !important;
  color: var(--color-white) !important;
}

#tarteaucitronRoot #tarteaucitronClosePanel:hover,
#tarteaucitronRoot #tarteaucitronBack:hover {
  background: var(--color-pink) !important;
  transform: rotate(90deg) !important;
}

/* ---------- Icône flottante (réouverture du panel) ---------- */
#tarteaucitronRoot #tarteaucitronIcon {
  background: transparent !important;
  bottom: 24px !important;
  right: 24px !important;
}

#tarteaucitronRoot #tarteaucitronIcon button#tarteaucitronManager {
  width: 56px !important;
  height: 56px !important;
  padding: 0 !important;
  background: var(--color-pink) !important;
  border-radius: 50% !important;
  border: none !important;
  box-shadow: 0 6px 20px rgba(7, 6, 35, 0.25), 0 0 0 4px var(--color-white) !important;
  cursor: pointer !important;
  transition: var(--transition-default) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#tarteaucitronRoot #tarteaucitronIcon button#tarteaucitronManager img {
  width: 28px !important;
  height: 28px !important;
  filter: brightness(0) invert(1) !important;
  display: block !important;
}

#tarteaucitronRoot #tarteaucitronIcon button#tarteaucitronManager:hover {
  transform: scale(1.08) !important;
  box-shadow: 0 8px 28px rgba(253, 66, 130, 0.5), 0 0 0 4px var(--color-white) !important;
}

/* ---------- Responsive : adaptation mobile ---------- */
@media (max-width: 768px) {
  #tarteaucitronRoot #tarteaucitronAlertBig {
    padding: 20px 18px !important;
  }

  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize,
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
  #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCTAButton {
    display: block !important;
    width: 100% !important;
    margin: 8px 0 !important;
    padding: 14px 20px !important;
  }

  #tarteaucitronRoot #tarteaucitronDisclaimerAlert {
    display: block !important;
    margin: 0 0 16px 0 !important;
  }
}
