/* =========================================================
   TARTEAUCITRON
   Carte fixe en bas à gauche
   Light / Dark
   Page utilisable derrière
   ========================================================= */

#tarteaucitronRoot {
  --tac-orange: #e65625;
  --tac-orange-hover: #c44a20;
  --tac-blue: #498dcb;

  --tac-bg: #ffffff;
  --tac-bg-secondary: #f8fafc;
  --tac-text: #1f2937;
  --tac-muted: #64748b;
  --tac-border: #e2e8f0;
  --tac-shadow: rgba(15, 23, 42, 0.18);

  font-family:
    "Inter",
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif !important;

  /*
   * Le conteneur global ne doit pas bloquer la page.
   * Seule la carte recevra les clics.
   */
  pointer-events: none !important;
}

/* Variables mode sombre */
.dark #tarteaucitronRoot {
  --tac-bg: #1b2430;
  --tac-bg-secondary: #0f1622;
  --tac-text: #f1f5f9;
  --tac-muted: #cbd5e1;
  --tac-border: #334155;
  --tac-shadow: rgba(0, 0, 0, 0.42);
}

#tarteaucitronRoot,
#tarteaucitronRoot * {
  box-sizing: border-box !important;
  font-family:
    "Inter",
    ui-sans-serif,
    system-ui,
    sans-serif !important;
}

/* La carte compacte ne doit pas bloquer le défilement du site */
html,
body {
  overflow-y: auto !important;
}

/* Évite qu'un style inline TarteAuCitron bloque toute la page */
html.tarteaucitronIsAllowed,
html.tarteaucitronIsDenied,
body.tarteaucitronIsAllowed,
body.tarteaucitronIsDenied {
  overflow-y: auto !important;
}

/* =========================================================
   SUPPRESSION DU VOILE ET DU FLOUTAGE
   ========================================================= */

#tarteaucitronRoot::before,
#tarteaucitronRoot::after,
#tarteaucitronRoot #tarteaucitronAlertBig::before,
#tarteaucitronRoot #tarteaucitronAlertBig::after {
  display: none !important;
  content: none !important;
}

/*
 * Éléments susceptibles de servir de fond bloquant
 * selon la version de TarteAuCitron.
 */
#tarteaucitronRoot #tarteaucitronBack,
#tarteaucitronRoot .tarteaucitronModal,
#tarteaucitronRoot .tarteaucitronBackdrop,
#tarteaucitronRoot .tarteaucitronOverlay {
  display: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: none !important;
}

/* =========================================================
   CARTE PRINCIPALE
   ========================================================= */

#tarteaucitronRoot #tarteaucitronAlertBig {
  position: fixed !important;

  top: auto !important;
  right: auto !important;
  bottom: 20px !important;
  left: 20px !important;

  display: block !important;

  width: min(420px, calc(100vw - 40px)) !important;
  max-width: 420px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;

  margin: 0 !important;
  padding: 22px 24px 20px !important;

  background: var(--tac-bg) !important;
  color: var(--tac-text) !important;

  border: 1px solid var(--tac-border) !important;
  border-radius: 12px !important;

  box-shadow:
    0 12px 35px var(--tac-shadow),
    0 2px 8px rgba(15, 23, 42, 0.08) !important;

  text-align: left !important;

  transform: none !important;
  inset: auto auto 20px 20px !important;

  /*
   * La carte reste cliquable,
   * contrairement au conteneur global.
   */
  pointer-events: auto !important;

  z-index: 2147483647 !important;
}

/* =========================================================
   TEXTE PRINCIPAL
   ========================================================= */

#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
  display: block !important;

  width: auto !important;
  max-width: none !important;

  margin: 0 0 16px !important;
  padding: 0 !important;

  color: var(--tac-text) !important;

  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  text-align: left !important;
}

/* =========================================================
   CONTENEURS INTERNES
   ========================================================= */

#tarteaucitronRoot #tarteaucitronAlertBig
  .tarteaucitronAlertBigTop,
#tarteaucitronRoot #tarteaucitronAlertBig
  .tarteaucitronAlertBigBottom {
  display: block !important;

  width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  text-align: left !important;
}

/* =========================================================
   BOUTONS
   ========================================================= */

#tarteaucitronRoot #tarteaucitronAlertBig button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 38px !important;

  margin: 4px 6px 4px 0 !important;
  padding: 9px 14px !important;

  border: 1px solid transparent !important;
  border-radius: 7px !important;

  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;

  cursor: pointer !important;

  box-shadow: none !important;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    transform 150ms ease !important;
}

/* Accepter */
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronAllow,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllAllowed {
  background: var(--tac-orange) !important;
  border-color: var(--tac-orange) !important;
  color: #ffffff !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronAllow:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllAllowed:hover {
  background: var(--tac-orange-hover) !important;
  border-color: var(--tac-orange-hover) !important;
  transform: translateY(-1px);
}

/* Refuser */
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronDeny,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
  background: transparent !important;
  border-color: var(--tac-border) !important;
  color: var(--tac-text) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronDeny:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover {
  background: var(--tac-bg-secondary) !important;
  border-color: var(--tac-blue) !important;
}

/* Personnaliser */
#tarteaucitronRoot #tarteaucitronAlertBig
  .tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig
  #tarteaucitronCloseAlert {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--tac-blue) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig
  .tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitronAlertBig
  #tarteaucitronCloseAlert:hover {
  background: rgba(73, 141, 203, 0.1) !important;
}

/* =========================================================
   LIEN POLITIQUE DE CONFIDENTIALITÉ
   ========================================================= */

#tarteaucitronRoot #tarteaucitronPrivacyUrl,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot #tarteaucitronAlertBig a {
  display: inline-block !important;

  width: auto !important;

  margin: 10px 0 0 !important;
  padding: 0 !important;

  color: var(--tac-muted) !important;

  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;

  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover,
#tarteaucitronRoot #tarteaucitronAlertBig a:hover {
  color: var(--tac-orange) !important;
}

/* =========================================================
   CROIX DE FERMETURE
   ========================================================= */

#tarteaucitronRoot #tarteaucitronCloseCross {
  position: absolute !important;

  top: 8px !important;
  right: 8px !important;

  width: 32px !important;
  height: 32px !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 7px !important;

  color: var(--tac-muted) !important;

  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 32px !important;

  pointer-events: auto !important;
}

#tarteaucitronRoot #tarteaucitronCloseCross:hover {
  background: var(--tac-bg-secondary) !important;
  color: var(--tac-text) !important;
}

/* =========================================================
   SUPPRESSION EMOJIS / LOGO
   ========================================================= */

#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronLogo,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronIcon,
#tarteaucitronRoot #tarteaucitronAlertBig
  .tarteaucitronAlertBigTop::before {
  display: none !important;
}

/* =========================================================
   ACCESSIBILITÉ CLAVIER
   ========================================================= */

#tarteaucitronRoot #tarteaucitronAlertBig button:focus-visible,
#tarteaucitronRoot #tarteaucitronAlertBig a:focus-visible {
  outline: 2px solid var(--tac-blue) !important;
  outline-offset: 2px !important;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {
  #tarteaucitronRoot #tarteaucitronAlertBig {
    right: 12px !important;
    bottom: 12px !important;
    left: 12px !important;

    width: auto !important;
    max-width: none !important;

    padding:
      20px
      18px
      calc(18px + env(safe-area-inset-bottom)) !important;

    inset: auto 12px 12px 12px !important;
  }

  #tarteaucitronRoot #tarteaucitronDisclaimerAlert {
    padding-right: 24px !important;

    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  #tarteaucitronRoot #tarteaucitronAlertBig button {
    width: 100% !important;

    margin: 4px 0 !important;
  }

  #tarteaucitronRoot #tarteaucitronPrivacyUrl,
  #tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,
  #tarteaucitronRoot #tarteaucitronAlertBig a {
    margin-top: 10px !important;
  }
}

/* =========================================================
   CORRECTION DES INTERACTIONS
   ========================================================= */

/* Le conteneur global ne bloque pas le site */
#tarteaucitronRoot {
  pointer-events: none !important;
}

/* Seuls les composants utiles sont interactifs */
#tarteaucitronRoot #tarteaucitronAlertBig,
#tarteaucitronRoot #tarteaucitron,
#tarteaucitronRoot #tarteaucitronIcon,
#tarteaucitronRoot #tarteaucitronManager {
  pointer-events: auto !important;
}

/* Icône flottante */
#tarteaucitronRoot #tarteaucitronIcon {
  position: fixed !important;
  z-index: 2147483647 !important;
}

#tarteaucitronRoot #tarteaucitronManager {
  cursor: pointer !important;
}

/* Bouton Personnaliser aligné sur le CTA du site */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCloseAlert {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 38px !important;
  padding: 9px 16px !important;
  margin: 4px 6px 4px 0 !important;

  background-color: #498dcb !important;
  border: 1px solid #498dcb !important;
  border-radius: 8px !important;

  color: #ffffff !important;
  font-family: "Inter", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;

  cursor: pointer !important;

  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    transform 150ms ease !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCloseAlert:hover {
  background-color: #3d7fba !important;
  border-color: #3d7fba !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}

/* =========================================================
   AJUSTEMENTS FINAUX
   - texte dégagé de la croix
   - trois boutons alignés
   ========================================================= */

/* Laisse une vraie zone libre en haut pour la croix */
#tarteaucitronRoot #tarteaucitronAlertBig {
  padding-top: 34px !important;
}

/* Empêche le texte de passer sous la croix */
#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
  padding-right: 38px !important;
  margin-bottom: 14px !important;
}

/* Conteneur des actions : 3 boutons sur une ligne */
#tarteaucitronRoot #tarteaucitronAlertBig
.tarteaucitronAlertBigBottom,
#tarteaucitronRoot #tarteaucitronAlertBig
> div:has(button) {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;

  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;

  text-align: left !important;
}

/* Même hauteur, même alignement, pas de retour à la ligne */
#tarteaucitronRoot #tarteaucitronAlertBig button,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCloseAlert {
  flex: 0 0 auto !important;

  min-height: 40px !important;
  height: 40px !important;

  margin: 0 !important;
  padding: 0 14px !important;

  white-space: nowrap !important;
}

/* Espacement propre du lien sous les boutons */
#tarteaucitronRoot #tarteaucitronPrivacyUrl,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot #tarteaucitronAlertBig a {
  margin-top: 14px !important;
}

/* Mobile : boutons empilés pour rester lisibles */
@media (max-width: 520px) {
  #tarteaucitronRoot #tarteaucitronAlertBig
  .tarteaucitronAlertBigBottom,
  #tarteaucitronRoot #tarteaucitronAlertBig
  > div:has(button) {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  #tarteaucitronRoot #tarteaucitronAlertBig button,
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
  #tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCloseAlert {
    width: 100% !important;
  }
}