/* AIVE — thème pour tarteaucitron.js (panneau de consentement + icône)
   À charger APRÈS la CSS par défaut de tarteaucitron. */
#tarteaucitronRoot, #tarteaucitronIcon {
  --aive-dark: #1D2026;
  --aive-ink-2: #585F6B;
  --aive-line: #E5E5E5;
  --aive-off: #FAFAFA;
  --aive-blue: #247AE4;
  --aive-grad: linear-gradient(135deg, #247AE4 0%, #7E5BD0 46%, #CC44A5 100%);
  --aive-shadow-lg: 0 18px 48px rgba(88,101,120,.20);
  --aive-shadow-md: 0 8px 24px rgba(88,101,120,.18);
}
#tarteaucitronRoot, #tarteaucitronRoot * {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

/* Le voile est porté par le pseudo-élément modal du vendor. Son ancien bouton
   plein écran servirait aussi de fermeture : il est donc retiré du parcours. */
#tarteaucitronRoot #tarteaucitronBack { display: none !important; }

/* Panneau */
#tarteaucitronRoot div#tarteaucitron {
  max-width: 720px !important;
  width: calc(100% - 32px) !important;
  left: 0 !important; right: 0 !important; margin: 0 auto !important;
}
#tarteaucitronRoot div#tarteaucitronServices {
  margin-top: 0 !important;
  background: #FFFFFF !important;
  border: 1px solid var(--aive-line) !important;
  border-radius: 20px !important;
  box-shadow: var(--aive-shadow-lg) !important;
  overflow-x: hidden !important;
}
#tarteaucitronRoot #tarteaucitronServices .tarteaucitronMainLine {
  background: #FFFFFF !important;
  border: 0 !important;
  padding: 40px 40px 24px !important;
}
#tarteaucitronRoot .tarteaucitronH1,
#tarteaucitronRoot #dialogTitle {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 32px !important;
  line-height: 1 !important;
  letter-spacing: -1px !important;
  color: var(--aive-dark) !important;
  text-align: left !important;
  margin: 0 0 16px !important;
  padding-right: 0 !important;
}
#tarteaucitronRoot #tarteaucitronInfo {
  border: 0 !important;
  background: transparent !important;
  color: var(--aive-ink-2) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-align: left !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
#tarteaucitronRoot #tarteaucitronPrivacyUrl,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog {
  display: inline-block !important;
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 12px 0 0 !important;
  color: var(--aive-blue) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  cursor: pointer;
}
/* La politique reste disponible dans le footer du média. Le panneau CMP garde
   uniquement les décisions de consentement, sans action de sortie ambiguë. */
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot #tarteaucitronClosePanel {
  display: none !important;
}

/* Ligne "Préférences pour tous les services" */
#tarteaucitronRoot #tarteaucitronServices .tarteaucitronMainLine + .tarteaucitronMainLine,
#tarteaucitronRoot #tarteaucitronServices .tarteaucitronBorder > .tarteaucitronMainLine {
  border-top: 1px solid var(--aive-line) !important;
  padding: 24px 40px !important;
}
#tarteaucitronRoot .tarteaucitronH2,
#tarteaucitronRoot .tarteaucitronName .tarteaucitronH2 {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: -.3px !important;
  color: var(--aive-dark) !important;
}

/* Boutons */
#tarteaucitronRoot .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronDeny,
#tarteaucitronRoot #tarteaucitronSaveButton,
#tarteaucitronRoot #tarteaucitronCloseAlert {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  min-height: 44px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  border: 1.5px solid var(--aive-dark) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  margin: 4px !important;
  cursor: pointer;
  opacity: 1 !important;
  transition: opacity .12s ease, transform .12s ease, background-color .12s ease;
}
#tarteaucitronRoot .tarteaucitronAllow { background: var(--aive-dark) !important; color: #FFFFFF !important; }
#tarteaucitronRoot .tarteaucitronDeny,
#tarteaucitronRoot #tarteaucitronCloseAlert { background: #FFFFFF !important; color: var(--aive-dark) !important; }
#tarteaucitronRoot #tarteaucitronSaveButton {
  background: var(--aive-blue) !important;
  border-color: var(--aive-blue) !important;
  color: #FFFFFF !important;
  min-height: 48px !important;
  padding: 0 28px !important;
}
#tarteaucitronRoot .tarteaucitronAllow:hover,
#tarteaucitronRoot #tarteaucitronSaveButton:hover { opacity: .88 !important; }
#tarteaucitronRoot .tarteaucitronDeny:hover,
#tarteaucitronRoot #tarteaucitronCloseAlert:hover { background: var(--aive-off) !important; }
#tarteaucitronRoot .tarteaucitronAllow:active,
#tarteaucitronRoot .tarteaucitronDeny:active,
#tarteaucitronRoot #tarteaucitronSaveButton:active { transform: scale(.97); }
#tarteaucitronRoot .tarteaucitronAllow:focus-visible,
#tarteaucitronRoot .tarteaucitronDeny:focus-visible,
#tarteaucitronRoot #tarteaucitronSaveButton:focus-visible,
#tarteaucitronRoot #tarteaucitronClosePanel:focus-visible {
  outline: 2px solid var(--aive-blue) !important; outline-offset: 2px !important;
}
/* Retire les pictos □ / ✗ dans les boutons */
#tarteaucitronRoot .tarteaucitronCheck,
#tarteaucitronRoot .tarteaucitronCross { display: none !important; }

/* Cookies obligatoires */
#tarteaucitronRoot #tarteaucitronServices_mandatory {
  margin: 0 40px 16px !important;
  padding: 16px 20px !important;
  background: var(--aive-off) !important;
  border: 0 !important;
  border-radius: 12px !important;
}
#tarteaucitronRoot #tarteaucitronServices_mandatory * {
  background: transparent !important;
  border: 0 !important;
  color: var(--aive-ink-2) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}
#tarteaucitronRoot #tarteaucitronNoServicesTitle {
  padding: 0 40px !important;
  color: var(--aive-ink-2) !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}

/* Lignes de services (si des services sont ajoutés) */
#tarteaucitronRoot .tarteaucitronLine {
  background: #FFFFFF !important;
  border: 0 !important;
  border-bottom: 1px solid var(--aive-line) !important;
  color: var(--aive-dark) !important;
}
#tarteaucitronRoot .tarteaucitronTitle button,
#tarteaucitronRoot .tarteaucitronDetails {
  background: var(--aive-off) !important;
  color: var(--aive-dark) !important;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
}

/* Enregistrer */
#tarteaucitronRoot #tarteaucitronSave {
  text-align: right !important;
  padding: 24px 40px 40px !important;
  background: #FFFFFF !important;
}

/* Suppression de la mention "Tarte au citron" */
#tarteaucitronRoot .tarteaucitronSelfLink,
.tarteaucitronSelfLink { display: none !important; }

/* Bandeau de première visite (modale centrée) */
#tarteaucitronRoot #tarteaucitronAlertBig {
  position: fixed !important;
  top: 50% !important; left: 50% !important; right: auto !important; bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  width: calc(100% - 32px) !important; max-width: 560px !important;
  max-height: calc(100vh - 32px) !important; overflow-y: auto !important; overflow-x: hidden !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 32px !important;
  display: flex !important; flex-wrap: wrap !important; gap: 24px 12px !important;
  background: #FFFFFF !important;
  color: var(--aive-dark) !important;
  border: 1px solid var(--aive-line) !important;
  border-radius: 20px !important;
  box-shadow: var(--aive-shadow-lg), 0 0 0 100vmax rgba(29,32,38,.45) !important; /* voile */
  text-align: left !important;
}
/* tarteaucitron masque sa modale par un style inline après un choix. Notre
   règle flex avec !important ne doit jamais transformer cet état en calque
   invisible qui intercepte les clics du média. */
#tarteaucitronRoot #tarteaucitronAlertBig[style*="display: none"] {
  display: none !important;
  pointer-events: none !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig > * { margin: 0 !important; }
#tarteaucitronRoot #tac_title { display: none !important; }
/* Le thème vendor peut ajouter un bandeau décoratif avec deux pictogrammes.
   L’identité du média suffit : aucun pictogramme parasite sur la modale. */
#tarteaucitronRoot #tarteaucitronAlertBig::before,
#tarteaucitronRoot #tarteaucitronAlertBig::after {
  content: none !important;
  display: none !important;
}
/* Ordre : lien refuser, logo, texte, boutons */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
  order: 0; flex: 0 0 100% !important;
  justify-content: flex-start !important;
  align-self: flex-start !important;
  text-align: left !important;
  min-height: 0 !important; padding: 0 !important; margin: 0 !important;
  background: none !important; border: 0 !important; border-radius: 0 !important;
  color: var(--aive-ink-2) !important;
  font-family: 'Inter', sans-serif !important; font-weight: 500 !important; font-size: 14px !important;
  text-decoration: underline !important; text-underline-offset: 3px;
  width: auto !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover { color: var(--aive-dark) !important; background: none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo {
  order: 1; flex: 0 0 100%; display: block;
}
#tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo img {
  display: block; height: 40px; width: auto; max-width: 220px; object-fit: contain;
}
#tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo span {
  display: inline-flex; min-height: 40px; align-items: center; padding: 0 14px;
  border: 1px dashed var(--aive-line); border-radius: 10px;
  font-size: 14px; font-weight: 600; color: var(--aive-dark);
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
  order: 2; flex: 0 0 100%;
  display: block !important;
  color: var(--aive-dark) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  text-align: left !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig .aive-purposes {
  display: block; margin-top: 24px; padding: 16px 20px;
  background: var(--aive-off); border-radius: 12px;
  color: var(--aive-ink-2); font-size: 13px; line-height: 1.55;
}
#tarteaucitronRoot #tarteaucitronAlertBig .aive-purposes strong {
  display: block; margin-bottom: 6px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif !important; font-weight: 600; font-size: 15px; color: var(--aive-dark);
}
/* La politique reste accessible depuis le footer : le premier écran conserve
   une seule action d'information, qui ouvre les préférences détaillées. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl { display: none !important; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert {
  order: 3; flex: 1 1 0 !important;
  min-height: 48px !important; margin: 0 !important; padding: 0 16px !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
  order: 4; flex: 1 1 0 !important;
  min-height: 48px !important; margin: 0 !important;
}
/* Pas de politique de confidentialité détectée : garde le choix granulaire visible. */
html.aive-no-privacy #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl { display: none !important; }

/* Icône de consentement — en bas à GAUCHE */
#tarteaucitronIcon,
#tarteaucitronRoot #tarteaucitronIcon {
  left: 24px !important;
  right: auto !important;
  bottom: 24px !important;
  top: auto !important;
  /* Les expériences Podcast, Quiz et Clips (z-index 50 à 130) restent
     pleinement utilisables lorsque le raccourci CMP est présent. */
  z-index: 30 !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 50% !important;
}
#tarteaucitronIcon #tarteaucitronManager {
  width: 52px !important;
  height: 52px !important;
  padding: 0 !important;
  border: 2px solid #FFFFFF !important;
  border-radius: 50% !important;
  background: var(--aive-grad) !important;
  box-shadow: var(--aive-shadow-md) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  transition: transform .12s ease;
}
#tarteaucitronIcon #tarteaucitronManager:hover { transform: scale(1.05); }
#tarteaucitronIcon #tarteaucitronManager:active { transform: scale(.97); }
#tarteaucitronIcon #tarteaucitronManager img {
  width: 24px !important;
  height: 24px !important;
  display: block !important;
}

@media (max-width: 600px) {
  /* Même hiérarchie que le bureau : pas de pictogrammes décoratifs, refus
     immédiatement à gauche, information à gauche et accord à droite. */
  #tarteaucitronRoot #tarteaucitronAlertBig::before,
  #tarteaucitronRoot #tarteaucitronAlertBig::after {
    content: none !important;
    display: none !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    order: 0 !important;
    flex: 0 0 100% !important;
    justify-content: flex-start !important;
    align-self: flex-start !important;
    text-align: left !important;
  }
  #tarteaucitronRoot #tarteaucitronServices .tarteaucitronMainLine,
  #tarteaucitronRoot #tarteaucitronSave { padding-left: 24px !important; padding-right: 24px !important; }
  #tarteaucitronRoot #tarteaucitronServices_mandatory { margin: 0 24px 16px !important; }
  #tarteaucitronRoot #tarteaucitronNoServicesTitle { padding: 0 24px !important; }
  #tarteaucitronRoot .tarteaucitronH1 { font-size: 26px !important; }
  /* L’action d’accord ne doit jamais se retrouver sous la ligne de flottaison.
     Le texte long reste défilable dans sa propre zone : les actions restent
     ancrées dans la modale, compatible avec les barres Safari mobiles. */
  #tarteaucitronRoot #tarteaucitronAlertBig {
    top: auto !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 20px) !important;
    max-height: calc(100dvh - 16px - env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    padding: 18px !important;
    gap: 12px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    font-size: 13px !important;
    min-height: 28px !important;
    padding: 4px 0 !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo img { height: 32px !important; }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo span { min-height: 32px !important; }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
    max-height: min(30dvh, 190px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    padding-right: 4px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    -webkit-overflow-scrolling: touch;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-purposes {
    margin-top: 12px !important;
    padding: 12px 14px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-purposes strong {
    font-size: 14px !important;
    margin-bottom: 4px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 0 12px !important;
    font-size: 14px !important;
  }
}

/* Les téléphones très bas (paysage, clavier ou petits écrans) conservent les
   deux décisions visibles sur une même ligne : contenu compact, texte
   secondaire défilable, et aucun défilement nécessaire pour choisir. */
@media (max-width: 600px) and (max-height: 480px) {
  #tarteaucitronRoot #tarteaucitronAlertBig {
    top: 4px !important;
    bottom: 4px !important;
    transform: translateX(-50%) !important;
    height: calc(100dvh - 8px) !important;
    max-height: none !important;
    box-sizing: border-box !important;
    padding: 10px 14px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: 24px 24px minmax(0, 1fr) 38px !important;
    gap: 6px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    order: 0 !important;
    min-height: 24px !important;
    font-size: 12px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    order: 0 !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo img { height: 24px !important; }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-media-logo span {
    min-height: 24px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    order: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-purposes {
    margin-top: 6px !important;
    padding: 8px 10px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .aive-purposes strong {
    font-size: 12px !important;
    margin-bottom: 2px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    height: 38px !important;
    min-height: 38px !important;
    font-size: 14px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    grid-row: 4 !important;
    grid-column: 2 !important;
    order: 0 !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert {
    grid-row: 4 !important;
    grid-column: 1 !important;
    order: 0 !important;
  }
}
