/**
 * Styles personnalisés pour le tour guidé d'onboarding Commercify
 * Typologie docs/typologie-couleurs-themes-contraste.md
 * Rendu type dark (lisible quel que soit le thème global)
 */

/* Overlay du tour - aligné modales (flou + semi-transparent) */
.introjs-overlay {
    background-color: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    z-index: 2147483646 !important;
}

/* Tooltip principal - Typologie (fond #141c26, texte clair, accent #ffcc00) - bordure 4px orange Commercify */
.introjs-tooltip {
    background: #141c26 !important;
    border: 4px solid #ffcc00 !important;
    border-radius: 0;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05), 0 0 0 2px rgba(255, 204, 0, 0.15) !important;
    color: #f8f9fa !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
    max-width: min(1400px, calc(100vw - 48px)) !important;
    min-width: min(900px, calc(100vw - 48px)) !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 2147483647 !important;
    position: absolute !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

/* Tous les enfants directs prennent toute la largeur SAUF bullets et boutons (footer sur une ligne) */
.introjs-tooltip > * {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.introjs-tooltip > .introjs-bullets {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    align-self: center !important;
    justify-self: stretch !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.introjs-tooltip > .introjs-tooltipbuttons {
    grid-column: 2 !important;
    width: auto !important;
    max-width: none !important;
    align-self: center !important;
    justify-self: end !important;
}

/* Responsive : ajuster pour écrans moyens - largeur augmentée pour meilleure empreinte */
@media (max-width: 2560px) {
    .introjs-tooltip {
        max-width: min(1300px, calc(100vw - 48px)) !important;
        min-width: min(850px, calc(100vw - 48px)) !important;
    }
}

@media (max-width: 1920px) {
    .introjs-tooltip {
        max-width: min(1200px, calc(100vw - 48px)) !important;
        min-width: min(800px, calc(100vw - 48px)) !important;
    }
}

@media (max-width: 1600px) {
    .introjs-tooltip {
        max-width: min(1100px, calc(100vw - 48px)) !important;
        min-width: min(750px, calc(100vw - 48px)) !important;
    }
}

@media (max-width: 1400px) {
    .introjs-tooltip {
        max-width: min(1000px, calc(100vw - 48px)) !important;
        min-width: min(700px, calc(100vw - 48px)) !important;
    }
}

@media (max-width: 1200px) {
    .introjs-tooltip {
        max-width: min(900px, calc(100vw - 48px)) !important;
        min-width: min(600px, calc(100vw - 48px)) !important;
    }
}

/* Forcer tous les éléments positionnés en absolute à rester dans le tooltip (sauf flèches) */
.introjs-tooltip *:not(.introjs-arrow):not(.introjs-helperLayer):not(.introjs-button):not(button) {
    max-width: 100% !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    float: none !important;
}

/* Titre du tooltip - typologie (accent / groupement) */
.introjs-tooltip-title {
    font-weight: bold !important;
    font-size: 13px !important;
    color: #ffcc00 !important;
    padding: 6px 20px !important;
    background: #101924 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    text-align: center !important;
    margin: 0 !important;
    border-radius: 0;
    display: block !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Contenu du tooltip - typologie (texte secondaire) */
.introjs-tooltip-content {
    padding: 10px 24px !important;
    line-height: 1.5 !important;
    color: #8094ae !important;
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Si Intro.js enveloppe titre + contenu dans un div : ce wrapper prend toute la largeur */
.introjs-tooltip .introjs-tooltip-title,
.introjs-tooltip .introjs-tooltip-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

/* Styles pour la grille Bootstrap dans le tooltip */
.introjs-tooltip-content .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

.introjs-tooltip-content .row.g-3 {
    --bs-gutter-x: 0.75rem !important;
    --bs-gutter-y: 0.75rem !important;
    margin-left: calc(var(--bs-gutter-x) * -0.5) !important;
    margin-right: calc(var(--bs-gutter-x) * -0.5) !important;
    margin-top: 0 !important;
}

.introjs-tooltip-content .row.g-3 > * {
    padding-left: calc(var(--bs-gutter-x) * 0.5) !important;
    padding-right: calc(var(--bs-gutter-x) * 0.5) !important;
    margin-top: calc(var(--bs-gutter-y) * 0.5) !important;
}

/* Cartes dans la grille - typologie */
.introjs-grid-card {
    background: #101924 !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0;
    padding: 8px 12px !important;
    height: 100% !important;
    box-sizing: border-box !important;
    transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
    will-change: transform, opacity !important;
    backface-visibility: hidden !important;
    contain: layout style paint !important;
    color: #f8f9fa !important;
}

.introjs-grid-card:hover {
    background: rgba(255, 204, 0, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    transform: translateY(-2px) translateZ(0) !important;
}


/* Support des colonnes Bootstrap */
.introjs-tooltip-content [class*="col-"] {
    position: relative !important;
    width: 100% !important;
    padding-left: calc(var(--bs-gutter-x) * 0.5) !important;
    padding-right: calc(var(--bs-gutter-x) * 0.5) !important;
    margin-top: calc(var(--bs-gutter-y) * 0.5) !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
}

.introjs-tooltip-content .col-md-6 {
    flex: 0 0 auto !important;
    width: 50% !important;
}

.introjs-tooltip-content .col-md-4 {
    flex: 0 0 auto !important;
    width: 33.33333333% !important;
}

.introjs-tooltip-content .col-md-3 {
    flex: 0 0 auto !important;
    width: 25% !important;
}

/* Responsive pour la grille */
@media (max-width: 1920px) {
    .introjs-tooltip-content .col-md-6 {
        width: 50% !important;
    }
    
    .introjs-tooltip-content .col-md-4 {
        width: 33.33333333% !important;
    }
    
    .introjs-tooltip-content .col-md-3 {
        width: 25% !important;
    }
}

@media (max-width: 1400px) {
    .introjs-tooltip-content .col-md-6 {
        width: 100% !important;
    }
    
    .introjs-tooltip-content .col-md-4 {
        width: 50% !important;
    }
    
    .introjs-tooltip-content .col-md-3 {
        width: 50% !important;
    }
}

/* Conteneur d'image */
.introjs-image-container {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
    text-align: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
    contain: layout style !important;
}

.introjs-step-image {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    display: block !important;
    margin: 0 auto !important;
    will-change: transform !important;
    backface-visibility: hidden !important;
    image-rendering: -webkit-optimize-contrast !important;
    image-rendering: crisp-edges !important;
}

/* Exception absolue pour les flèches - elles doivent garder leurs propriétés */
.introjs-tooltip .introjs-arrow,
.introjs-tooltipReferenceLayer .introjs-arrow {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

/* Règle stricte pour tous les éléments en absolute (sauf les flèches) */
.introjs-tooltip *[style*="position: absolute"]:not(.introjs-arrow),
.introjs-tooltip *[style*="position:fixed"]:not(.introjs-arrow),
.introjs-tooltip *[style*="position: absolute"]:not(.introjs-arrow),
.introjs-tooltip *[style*="position: fixed"]:not(.introjs-arrow),
.introjs-tooltip *[style*="top:"]:not(.introjs-arrow),
.introjs-tooltip *[style*="right:"]:not(.introjs-arrow) {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
}

/* Exception pour les flèches qui doivent rester en absolute */
.introjs-arrow,
.introjs-tooltip .introjs-arrow,
.introjs-tooltipReferenceLayer .introjs-arrow {
    position: absolute !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 0 !important;
    height: 0 !important;
}

/* Règle globale stricte : tous les éléments doivent respecter les limites */
.introjs-tooltip,
.introjs-tooltip *:not(.introjs-arrow):not(.introjs-helperLayer) {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Forcer tous les éléments avec position absolute calculée à être relative (sauf flèches, helper et boutons) */
.introjs-tooltip *:not(.introjs-arrow):not(.introjs-helperLayer):not(.introjs-button):not(button) {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
}

/* Exception pour les flèches et helper layer qui doivent rester en absolute */
.introjs-tooltip .introjs-arrow,
.introjs-tooltip .introjs-helperLayer {
    position: absolute !important;
    max-width: none !important;
}

/* Tous les enfants directs du tooltip doivent respecter les limites (sauf flèches) */
.introjs-tooltip > *:not(.introjs-arrow) {
    max-width: 100% !important;
    box-sizing: border-box !important;
    width: 100% !important;
    position: relative !important;
}

/* Contenu et zones de texte : pleine largeur, pas de clipping */
.introjs-tooltip > .introjs-tooltipcontent,
.introjs-tooltip > .introjs-tooltip-content {
    overflow: visible !important;
}

/* Tous les boutons dans le tooltip */
.introjs-tooltip button,
.introjs-tooltip .introjs-button {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Tous les éléments textuels dans le tooltip (sauf flèches) */
.introjs-tooltip p:not(.introjs-arrow),
.introjs-tooltip div:not(.introjs-arrow),
.introjs-tooltip span:not(.introjs-arrow),
.introjs-tooltip strong:not(.introjs-arrow),
.introjs-tooltip em:not(.introjs-arrow),
.introjs-tooltip b:not(.introjs-arrow),
.introjs-tooltip i:not(.introjs-arrow),
.introjs-tooltip h1:not(.introjs-arrow),
.introjs-tooltip h2:not(.introjs-arrow),
.introjs-tooltip h3:not(.introjs-arrow),
.introjs-tooltip h4:not(.introjs-arrow),
.introjs-tooltip h5:not(.introjs-arrow),
.introjs-tooltip h6:not(.introjs-arrow) {
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    display: inline-block !important;
    width: 100% !important;
}

/* Contenu HTML dans le tooltipcontent */
.introjs-tooltipcontent * {
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
}

/* Layer de référence du tooltip */
.introjs-tooltipReferenceLayer {
    z-index: 2147483647 !important;
    position: absolute !important;
    overflow: visible !important; /* Permettre aux flèches de dépasser */
}

/* Header du tooltip - typologie (fond groupement) */
.introjs-tooltip .introjs-tooltip-header {
    background: #101924 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0;
    padding: 6px 20px 6px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    margin: 0 !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

/* Icône contextuelle dans le header */
.introjs-tooltip .introjs-tooltip-header::before {
    content: '✨' !important;
    font-size: 20px !important;
    opacity: 0.8 !important;
    flex-shrink: 0 !important;
}

/* Icônes spécifiques par étape */
.introjs-tooltip[data-step="1"] .introjs-tooltip-header::before { content: '🏠' !important; }
.introjs-tooltip[data-step="2"] .introjs-tooltip-header::before { content: '🔍' !important; }
.introjs-tooltip[data-step="3"] .introjs-tooltip-header::before { content: '🌐' !important; }
.introjs-tooltip[data-step="4"] .introjs-tooltip-header::before { content: '👤' !important; }
.introjs-tooltip[data-step="5"] .introjs-tooltip-header::before { content: '⚙️' !important; }
.introjs-tooltip[data-step="6"] .introjs-tooltip-header::before { content: '📂' !important; }
.introjs-tooltip[data-step="7"] .introjs-tooltip-header::before { content: '🏷️' !important; }
.introjs-tooltip[data-step="8"] .introjs-tooltip-header::before { content: '📊' !important; }
.introjs-tooltip[data-step="9"] .introjs-tooltip-header::before { content: '🚀' !important; }
.introjs-tooltip[data-step="10"] .introjs-tooltip-header::before { content: '🗺️' !important; }
.introjs-tooltip[data-step="11"] .introjs-tooltip-header::before { content: '🎯' !important; }

/* Forcer tous les éléments du header à rester dans les limites */
.introjs-tooltip .introjs-tooltip-header * {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    float: none !important;
    display: inline-block !important;
    vertical-align: top !important;
}

/* Tous les éléments dans le header doivent être contenus */
.introjs-tooltip .introjs-tooltip-header > * {
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    float: none !important;
}

/* Bouton skip/fermeture - S'assurer qu'il reste dans le tooltip */
.introjs-skipbutton,
.introjs-tooltip .introjs-skipbutton,
.introjs-tooltip button.introjs-skipbutton,
.introjs-tooltipbuttons .introjs-skipbutton {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    max-width: 100% !important;
    min-width: auto !important;
    width: auto !important;
    box-sizing: border-box !important;
    overflow: visible !important; /* Permettre au texte de s'afficher en entier */
    float: none !important;
    display: inline-block !important;
    white-space: nowrap !important; /* Garder le texte sur une ligne */
}

/* Bouton de fermeture X si présent */
.introjs-tooltip .introjs-closebutton,
.introjs-tooltip button[aria-label="Close"],
.introjs-tooltip .close,
.introjs-tooltip .introjs-tooltip-header button,
.introjs-tooltip .introjs-tooltip-header .close {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    float: none !important;
    display: inline-block !important;
}

/* Tous les éléments positionnés en absolute dans le tooltip - Règle très stricte (sauf flèches) */
.introjs-tooltip [style*="position: absolute"]:not(.introjs-arrow),
.introjs-tooltip [style*="position:fixed"]:not(.introjs-arrow),
.introjs-tooltip [style*="position: absolute"]:not(.introjs-arrow),
.introjs-tooltip [style*="position: fixed"]:not(.introjs-arrow),
.introjs-tooltip *[style*="top:"]:not(.introjs-arrow),
.introjs-tooltip *[style*="right:"]:not(.introjs-arrow),
.introjs-tooltip *[style*="left:"]:not(.introjs-arrow),
.introjs-tooltip *[style*="bottom:"]:not(.introjs-arrow) {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    float: none !important;
}

/* Règle universelle pour tous les éléments sauf flèches, helper et boutons */
.introjs-tooltip *:not(.introjs-arrow):not(.introjs-helperLayer):not(.introjs-tooltipReferenceLayer):not(.introjs-button):not(button) {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Exception absolue pour les flèches - elles doivent garder width: 0 et height: 0 */
.introjs-arrow,
.introjs-tooltip .introjs-arrow,
.introjs-tooltipReferenceLayer .introjs-arrow,
.introjs-tooltip * .introjs-arrow {
    width: 0 !important;
    height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

.introjs-tooltip .introjs-tooltip-title {
    color: #ffcc00 !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    display: block !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    float: none !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
}

/* Corps du tooltip - typologie (texte secondaire) */
.introjs-tooltip .introjs-tooltipcontent {
    color: #8094ae !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    padding: 10px 24px 14px !important;
    text-align: left !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    overflow: visible !important;
    margin: 0 !important;
    font-weight: 400 !important;
    letter-spacing: 0.01em !important;
}

/* Enfants directs du wrapper (titre + contenu) : pleine largeur */
.introjs-tooltip .introjs-tooltipcontent > .introjs-tooltip-title,
.introjs-tooltip .introjs-tooltipcontent > .introjs-tooltip-content,
.introjs-tooltip .introjs-tooltip-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Mise en valeur des mots-clés dans le contenu - typologie (accent) */
.introjs-tooltip .introjs-tooltipcontent strong {
    color: #f8f9fa !important;
    font-weight: 600 !important;
    background: rgba(255, 204, 0, 0.15) !important;
    padding: 2px 6px !important;
    border-radius: 0;
    font-size: inherit !important;
    display: inline-block !important;
    margin-bottom: 6px !important;
}

/* Réduire les espacements entre les paragraphes */
.introjs-tooltip-content p,
.introjs-tooltip-content br {
    margin-bottom: 2px !important;
    line-height: 1.45 !important;
}

.introjs-tooltip-content br + br {
    margin-bottom: 4px !important;
}

/* Flèche du tooltip - noire, bien visible - toutes les combinaisons */
.introjs-arrow,
.introjs-tooltip .introjs-arrow,
.introjs-tooltipReferenceLayer .introjs-arrow {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 0 !important;
    height: 0 !important;
    border-width: 18px !important;
    border-style: solid !important;
    z-index: 2147483648 !important;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5)) !important;
    position: absolute !important;
}

/* Toutes les variantes de flèches - couleur noire */
.introjs-arrow.top,
.introjs-arrow.top-left,
.introjs-arrow.top-middle,
.introjs-arrow.top-right,
.introjs-tooltip .introjs-arrow.top,
.introjs-tooltip .introjs-arrow.top-left,
.introjs-tooltip .introjs-arrow.top-middle,
.introjs-tooltip .introjs-arrow.top-right {
    border-bottom-color: #000000 !important;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
}

.introjs-arrow.bottom,
.introjs-arrow.bottom-left,
.introjs-arrow.bottom-middle,
.introjs-arrow.bottom-right,
.introjs-tooltip .introjs-arrow.bottom,
.introjs-tooltip .introjs-arrow.bottom-left,
.introjs-tooltip .introjs-arrow.bottom-middle,
.introjs-tooltip .introjs-arrow.bottom-right {
    border-top-color: #000000 !important;
    border-bottom-color: transparent !important;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
}

.introjs-arrow.left,
.introjs-arrow.left-top,
.introjs-arrow.left-middle,
.introjs-arrow.left-bottom,
.introjs-tooltip .introjs-arrow.left,
.introjs-tooltip .introjs-arrow.left-top,
.introjs-tooltip .introjs-arrow.left-middle,
.introjs-tooltip .introjs-arrow.left-bottom {
    border-right-color: #000000 !important;
    border-left-color: transparent !important;
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
}

.introjs-arrow.right,
.introjs-arrow.right-top,
.introjs-arrow.right-middle,
.introjs-arrow.right-bottom,
.introjs-tooltip .introjs-arrow.right,
.introjs-tooltip .introjs-arrow.right-top,
.introjs-tooltip .introjs-arrow.right-middle,
.introjs-tooltip .introjs-arrow.right-bottom {
    border-left-color: #000000 !important;
    border-right-color: transparent !important;
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
}

/* Pas de bordure accent - flèche noire simple et directe */
.introjs-arrow.top::before,
.introjs-arrow.bottom::before,
.introjs-arrow.left::before,
.introjs-arrow.right::before {
    display: none !important;
}

/* Dark Mode : flèches orange pour rester visibles sur fond sombre */
body.dark-mode .introjs-arrow.top,
body.dark-mode .introjs-arrow.top-left,
body.dark-mode .introjs-arrow.top-middle,
body.dark-mode .introjs-arrow.top-right,
body.dark-mode .introjs-tooltip .introjs-arrow.top,
body.dark-mode .introjs-tooltip .introjs-arrow.top-left,
body.dark-mode .introjs-tooltip .introjs-arrow.top-middle,
body.dark-mode .introjs-tooltip .introjs-arrow.top-right,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.top,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.top-left,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.top-middle,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.top-right {
    border-bottom-color: #f97316 !important;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
}

body.dark-mode .introjs-arrow.bottom,
body.dark-mode .introjs-arrow.bottom-left,
body.dark-mode .introjs-arrow.bottom-middle,
body.dark-mode .introjs-arrow.bottom-right,
body.dark-mode .introjs-tooltip .introjs-arrow.bottom,
body.dark-mode .introjs-tooltip .introjs-arrow.bottom-left,
body.dark-mode .introjs-tooltip .introjs-arrow.bottom-middle,
body.dark-mode .introjs-tooltip .introjs-arrow.bottom-right,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.bottom,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.bottom-left,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.bottom-middle,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.bottom-right {
    border-top-color: #f97316 !important;
    border-bottom-color: transparent !important;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
}

body.dark-mode .introjs-arrow.left,
body.dark-mode .introjs-arrow.left-top,
body.dark-mode .introjs-arrow.left-middle,
body.dark-mode .introjs-arrow.left-bottom,
body.dark-mode .introjs-tooltip .introjs-arrow.left,
body.dark-mode .introjs-tooltip .introjs-arrow.left-top,
body.dark-mode .introjs-tooltip .introjs-arrow.left-middle,
body.dark-mode .introjs-tooltip .introjs-arrow.left-bottom,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.left,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.left-top,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.left-middle,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.left-bottom {
    border-right-color: #f97316 !important;
    border-left-color: transparent !important;
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
}

body.dark-mode .introjs-arrow.right,
body.dark-mode .introjs-arrow.right-top,
body.dark-mode .introjs-arrow.right-middle,
body.dark-mode .introjs-arrow.right-bottom,
body.dark-mode .introjs-tooltip .introjs-arrow.right,
body.dark-mode .introjs-tooltip .introjs-arrow.right-top,
body.dark-mode .introjs-tooltip .introjs-arrow.right-middle,
body.dark-mode .introjs-tooltip .introjs-arrow.right-bottom,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.right,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.right-top,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.right-middle,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow.right-bottom {
    border-left-color: #f97316 !important;
    border-right-color: transparent !important;
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
}

/* Ombre adaptée en dark mode pour la flèche orange */
body.dark-mode .introjs-arrow,
body.dark-mode .introjs-tooltip .introjs-arrow,
body.dark-mode .introjs-tooltipReferenceLayer .introjs-arrow {
    filter: drop-shadow(0 2px 6px rgba(249, 115, 22, 0.4)) !important;
}

/* Footer du tooltip - typologie (bordure standard) */
.introjs-tooltipbuttons {
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding: 10px 24px 10px !important;
    text-align: right !important;
    box-sizing: border-box !important;
    width: auto !important;
    max-width: 100% !important;
    overflow: visible !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border-radius: 0;
}

/* Même espacement entre chaque bouton (Précédent, Passer, Suivant) */
.introjs-tooltipbuttons .introjs-button + .introjs-button {
    margin-left: 48px !important;
}

/* Indicateur d'étape (texte) optionnel - compact */
.introjs-tooltipbuttons::before {
    content: attr(data-step-info) !important;
    font-size: 11px !important;
    color: #adb5bd !important;
    font-weight: 500 !important;
    order: -1 !important;
    margin-right: 6px !important;
}

/* Boutons tour - palette Commercify : orange, noir, gris (couleurs pleines, pas de dégradés) */
.introjs-button {
    border-radius: 0;
    cursor: pointer !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 8px 18px !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    overflow: visible !important;
    min-width: auto !important;
    width: auto !important;
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.25 !important;
}

.introjs-button:active {
    opacity: 0.95 !important;
}

.introjs-tooltipbuttons .introjs-button {
    flex: 0 0 auto !important;
}

/* Précédent - typologie (fond groupement) */
.introjs-button.introjs-prevbutton {
    background-color: #101924 !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: #f8f9fa !important;
}

.introjs-button.introjs-prevbutton:hover:not([disabled]):not(.introjs-prevbutton-disabled) {
    background-color: rgba(255, 204, 0, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #f8f9fa !important;
}

/* Étape 1 : masquer le bouton Précédent via la classe */
.introjs-tooltip.step-1 .introjs-prevbutton {
    display: none !important;
}

/* Double sécurité : masquer si le bouton a la classe disabled */
.introjs-prevbutton.introjs-disabled {
    display: none !important;
}

/* Suivant - typologie (bouton principal accent) */
.introjs-button.introjs-nextbutton {
    background-color: #ffcc00 !important;
    border: 1px solid #ffcc00 !important;
    color: #000000 !important;
}

.introjs-button.introjs-nextbutton:hover {
    background-color: #e6b800 !important;
    border-color: #e6b800 !important;
    color: #000000 !important;
}

/* Skip (si présent) - typologie outline */
.introjs-button.introjs-skipbutton {
    background-color: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    color: #f8f9fa !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.introjs-button.introjs-skipbutton:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    color: #ffcc00 !important;
}

/* Fermer la présentation - orange Commercify (#ffcc00) */
.introjs-button.introjs-passerbutton {
    background-color: #ffcc00 !important;
    border: 1px solid #e6b800 !important;
    color: #000000 !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.introjs-button.introjs-passerbutton:hover {
    background-color: #e6b800 !important;
    border-color: #cc9900 !important;
    color: #000000 !important;
}

.introjs-button.introjs-passerbutton:active {
    background-color: #cc9900 !important;
    border-color: #b38600 !important;
}

/* Bouton « J'ai compris, allons-y ! » masqué : fermeture uniquement via « Fermer la présentation » */
.introjs-button.introjs-donebutton,
.introjs-tooltip .introjs-donebutton {
    display: none !important;
}

.introjs-tooltip-title {
    font-weight: bold !important;
    font-size: 13px !important;
    color: #ffcc00 !important;
    margin: -10px -15px 8px -15px !important;
    padding: 6px 15px !important;
    background: #101924 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    text-align: center !important;
    border-radius: 0;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    max-width: none !important;
    width: auto !important;
    box-sizing: border-box !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 9999 !important;
    pointer-events: auto !important;
}

/* Forcer la visibilité du titre même si IntroJS essaie de le masquer */
.introjs-tooltip .introjs-tooltip-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Zone de highlight - accent doré (#ffcc00) aligné modales */
.introjs-helperLayer {
    border: 4px solid rgba(255, 204, 0, 0.6) !important;
    border-radius: 0;
    box-shadow: 
        0 0 0 9999px rgba(0, 0, 0, 0.5),
        0 0 0 2px rgba(255, 204, 0, 0.4),
        0 0 20px rgba(255, 204, 0, 0.25),
        0 0 40px rgba(255, 204, 0, 0.15),
        inset 0 0 20px rgba(255, 204, 0, 0.06) !important;
    z-index: 2147483648 !important;
    position: absolute !important;
    animation: highlightPulse 2s ease-in-out infinite !important;
    pointer-events: none !important;
}

@keyframes highlightPulse {
    0%, 100% {
        border-color: rgba(255, 204, 0, 0.6) !important;
        box-shadow: 
            0 0 0 9999px rgba(0, 0, 0, 0.5),
            0 0 0 2px rgba(255, 204, 0, 0.4),
            0 0 20px rgba(255, 204, 0, 0.25),
            0 0 40px rgba(255, 204, 0, 0.15),
            inset 0 0 20px rgba(255, 204, 0, 0.06) !important;
    }
    50% {
        border-color: #ffcc00 !important;
        box-shadow: 
            0 0 0 9999px rgba(0, 0, 0, 0.5),
            0 0 0 3px rgba(255, 204, 0, 0.7),
            0 0 30px rgba(255, 204, 0, 0.35),
            0 0 50px rgba(255, 204, 0, 0.2),
            inset 0 0 25px rgba(255, 204, 0, 0.1) !important;
    }
}

/* Barre de progression - fine, peu d'espace vertical */
.introjs-progress {
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-radius: 0;
    height: 2px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    position: relative !important;
}

.introjs-progressbar {
    background-color: #ffcc00 !important;
    border-radius: 0;
    height: 100% !important;
    transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
}

.introjs-progressbar::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.4) 50%, transparent 100%) !important;
    animation: progressShine 2s ease-in-out infinite !important;
}

@keyframes progressShine {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Zone d'étapes : deux zones face à face sur la même ligne (carrés | texte) */
.introjs-bullets {
    display: flex !important;
    flex-direction: row !important;
    gap: 12px !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 10px 16px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    overflow: hidden !important;
}

[dir="rtl"] .introjs-bullets {
    flex-direction: row-reverse !important;
}

/* Conteneur des carrés (ul) - zone gauche en LTR, droite en RTL - aligned center */
.introjs-bullets ul {
    display: flex !important;
    gap: 6px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    flex: 0 0 auto !important;
    flex-wrap: nowrap !important;
    min-width: 0 !important;
    height: auto !important;
}

/* Indicateur « Étape X sur Y · [libellé] » - zone droite en LTR, gauche en RTL */
.introjs-step-display {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #adb5bd !important;
    white-space: nowrap !important;
    flex: 0 1 auto !important;
    max-width: 280px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: right !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-height: 28px !important;
}

[dir="rtl"] .introjs-step-display {
    text-align: left !important;
    justify-content: flex-start !important;
}

.introjs-bullets ul li {
    background-color: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    border-radius: 0;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 28px !important;
    min-height: 28px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    width: auto !important;
    min-width: 28px !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;
}

/* Carré actif : allongé pour "Étape X" + orange */
.introjs-bullets ul li.active {
    background-color: #ffcc00 !important;
    padding: 0 10px !important;
    min-width: auto !important;
    transform: scale(1) !important;
}

.introjs-bullets ul li a {
    background-color: transparent !important;
    height: 100% !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0;
    cursor: pointer !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: rgba(255, 255, 255, 0.85) !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

/* Lien actif : texte noir "Étape X" */
.introjs-bullets ul li.active a {
    background-color: transparent !important;
    color: #000000 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.introjs-bullets ul li a:hover {
    opacity: 1 !important;
}

.introjs-bullets ul li:hover {
    background-color: rgba(255, 255, 255, 0.35) !important;
}

.introjs-bullets ul li.active:hover {
    background-color: #e6b800 !important;
}

/* Animations d'entrée modernes et performantes */
@keyframes tourSlideIn {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes tooltipGlow {
    0%, 100% {
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05);
    }
    50% {
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 204, 0, 0.2), 0 0 20px rgba(255, 204, 0, 0.1);
    }
}

.introjs-tooltip {
    animation: tourSlideIn 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.introjs-tooltip:hover {
    animation: tooltipGlow 2s ease-in-out infinite !important;
}

/* Animation pour les flèches - effet d'apparition */
@keyframes arrowFadeIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.introjs-arrow {
    animation: arrowFadeIn 0.4s ease-out 0.2s both !important;
}

/* Bouton CTA « Obtenir un badge » - typologie (bouton principal) */
.introjs-cta-button,
.introjs-tooltip .introjs-cta-button,
.introjs-tooltipcontent .introjs-cta-button {
    display: inline-block !important;
    padding: 10px 24px !important;
    background-color: #ffcc00 !important;
    color: #000000 !important;
    text-decoration: none !important;
    border-radius: 0;
    font-weight: 600 !important;
    font-size: 14px !important;
    transition: background-color 0.2s ease, border-color 0.2s ease !important;
    border: 1px solid #ffcc00 !important;
    cursor: pointer !important;
    text-align: center !important;
    margin-top: 8px !important;
    margin-bottom: 4px !important;
    width: auto !important;
    min-width: 180px !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    letter-spacing: 0.02em !important;
}

.introjs-cta-button:hover,
.introjs-tooltip .introjs-cta-button:hover {
    background-color: #e6b800 !important;
    border-color: #e6b800 !important;
    color: #000000 !important;
    text-decoration: none !important;
}

.introjs-cta-button:active,
.introjs-tooltip .introjs-cta-button:active {
    opacity: 0.95 !important;
}

.introjs-cta-button:focus {
    outline: 2px solid rgba(255, 204, 0, 0.5) !important;
    outline-offset: 2px !important;
}

/* Focus accessibilité - typologie (ring accent) */
.introjs-button:focus {
    outline: 2px solid rgba(255, 204, 0, 0.5) !important;
    outline-offset: 2px !important;
}

.introjs-button.introjs-prevbutton:focus {
    outline-color: rgba(255, 255, 255, 0.4) !important;
}

.introjs-button.introjs-passerbutton:focus,
.introjs-button.introjs-skipbutton:focus {
    outline-color: rgba(255, 204, 0, 0.5) !important;
}

/* Optimisations de performance (exclure les boutons pour un texte net, sans flou) */
.introjs-tooltip *:not(.introjs-button):not(button):not(.introjs-cta-button):not(a.introjs-cta-button) {
    backface-visibility: hidden !important;
}

.introjs-tooltip .introjs-tooltipbuttons .introjs-button,
.introjs-tooltip .introjs-cta-button,
.introjs-tooltip a.introjs-cta-button {
    backface-visibility: visible !important;
    -webkit-font-smoothing: subpixel-antialiased !important;
    -moz-osx-font-smoothing: auto !important;
    text-rendering: auto !important;
}

.introjs-tooltip,
.introjs-arrow,
.introjs-helperLayer {
    contain: layout style paint !important;
}

/* Responsive : masquer le tour sur mobile/tablet */
@media (max-width: 1199px) {
    .introjs-overlay,
    .introjs-tooltip,
    .introjs-helperLayer,
    .introjs-tooltipReferenceLayer {
        display: none !important;
    }
}

/* Préférences de mouvement réduit */
@media (prefers-reduced-motion: reduce) {
    .introjs-tooltip,
    .introjs-button,
    .introjs-progressbar {
        animation: none !important;
        transition: none !important;
    }
    
    .introjs-tooltip {
        transform: none !important;
    }
}

/* Styles spécifiques pour le bouton "Carte du monde" dans le modal */
/* Le tooltip doit être positionné correctement même quand l'élément est dans un modal */
#languageModal.show ~ .introjs-tooltip,
#languageModal.show ~ * .introjs-tooltip,
body:has(#languageModal.show) .introjs-tooltip {
    z-index: 2147483648 !important; /* Au-dessus du modal */
}

/* Assurer que les flèches fonctionnent correctement dans le contexte modal */
#languageModal.show ~ .introjs-arrow,
#languageModal.show ~ * .introjs-arrow,
body:has(#languageModal.show) .introjs-arrow {
    z-index: 2147483649 !important;
}

/* Tooltip spécial pour le bouton carte du monde dans le modal */
.language-modal-tooltip {
    z-index: 2147483648 !important; /* Au-dessus du modal */
}

/* Flèche spéciale pour le tooltip carte du monde */
.language-modal-tooltip .introjs-arrow {
    z-index: 2147483649 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TOUR GUIDÉ - THÈME CLAIR (body.light-mode) — Typologie Dash light
   Aligné sur modales : fond #f5f6f8 / #eef0f3, texte #1a1d21 / #4a5568, accent #b8860b.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Overlay - fond semi-transparent clair */
body.light-mode .introjs-overlay {
    background-color: rgba(255, 255, 255, 0.88) !important;
}

/* Tooltip - fond clair, texte sombre, bordure dorée Dash light (#b8860b) */
body.light-mode .introjs-tooltip {
    background: #f5f6f8 !important;
    border: 4px solid #ffcc00 !important;
    color: #1a1d21 !important;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06) !important;
}

body.light-mode .introjs-tooltip:hover {
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(0, 0, 0, 0.06), 0 0 0 2px rgba(184, 134, 11, 0.25), 0 0 20px rgba(184, 134, 11, 0.12) !important;
}

/* Titre et header - fond #eef0f3, accent #b8860b (Dash light) */
body.light-mode .introjs-tooltip .introjs-tooltip-title,
body.light-mode .introjs-tooltip-title {
    color: #1a1d21 !important;
    background: #eef0f3 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
}

body.light-mode .introjs-tooltip .introjs-tooltip-header {
    background: #eef0f3 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
}

/* Contenu - texte secondaire #4a5568 (Dash light) */
body.light-mode .introjs-tooltip .introjs-tooltipcontent,
body.light-mode .introjs-tooltip .introjs-tooltip-content,
body.light-mode .introjs-tooltip-content {
    color: #4a5568 !important;
}

body.light-mode .introjs-tooltip .introjs-tooltipcontent strong {
    color: #1a1d21 !important;
    background: rgba(184, 134, 11, 0.15) !important;
}

/* Cartes grille - fond #ffffff, accent #b8860b */
body.light-mode .introjs-grid-card {
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    color: #1a1d21 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
}

body.light-mode .introjs-grid-card:hover {
    background: rgba(184, 134, 11, 0.08) !important;
    border-color: rgba(184, 134, 11, 0.3) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

/* Footer / boutons - contrastes sur fond clair */
body.light-mode .introjs-tooltipbuttons {
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body.light-mode .introjs-button.introjs-prevbutton {
    background-color: #eef0f3 !important;
    border: 1px solid rgba(0, 0, 0, 0.2) !important;
    color: #1a1d21 !important;
}

body.light-mode .introjs-button.introjs-prevbutton:hover:not([disabled]):not(.introjs-prevbutton-disabled) {
    background-color: rgba(184, 134, 11, 0.12) !important;
    border-color: rgba(184, 134, 11, 0.4) !important;
    color: #1a1d21 !important;
}

body.light-mode .introjs-prevbutton[disabled],
body.light-mode .introjs-prevbutton.introjs-prevbutton-disabled {
    pointer-events: none !important;
    opacity: 0.65 !important;
    cursor: not-allowed !important;
}

body.light-mode .introjs-button.introjs-nextbutton,
body.light-mode .introjs-button.introjs-donebutton {
    background-color: #1a1d21 !important;
    border: 1px solid #1a1d21 !important;
    color: #ffffff !important;
}

body.light-mode .introjs-button.introjs-nextbutton:hover,
body.light-mode .introjs-button.introjs-donebutton:hover {
    background-color: #0d0d0d !important;
    border-color: #0d0d0d !important;
    color: #ffffff !important;
}

body.light-mode .introjs-button.introjs-skipbutton {
    border: 1px solid rgba(0, 0, 0, 0.25) !important;
    color: #4a5568 !important;
}

body.light-mode .introjs-button.introjs-skipbutton:hover {
    background-color: rgba(0, 0, 0, 0.06) !important;
    border-color: #1a1d21 !important;
    color: #1a1d21 !important;
}

body.light-mode .introjs-button.introjs-passerbutton {
    background-color: #ffcc00 !important;
    border: 1px solid #e6b800 !important;
    color: #000000 !important;
}

body.light-mode .introjs-button.introjs-passerbutton:hover {
    background-color: #e6b800 !important;
    border-color: #cc9900 !important;
    color: #000000 !important;
}

body.light-mode .introjs-button.introjs-passerbutton:active {
    background-color: #cc9900 !important;
    border-color: #b38600 !important;
}

/* Indicateur d'étape et bullets - lisibles sur fond clair */
body.light-mode .introjs-tooltipbuttons::before {
    color: #6c757d !important;
}

body.light-mode .introjs-step-display {
    color: #6c757d !important;
}

body.light-mode .introjs-bullets {
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
}

body.light-mode .introjs-bullets ul li {
    background-color: rgba(0, 0, 0, 0.15) !important;
}

body.light-mode .introjs-bullets ul li a {
    color: rgba(0, 0, 0, 0.75) !important;
}

body.light-mode .introjs-bullets ul li.active {
    background-color: #ffcc00 !important;
}

body.light-mode .introjs-bullets ul li.active a {
    color: #000000 !important;
}

body.light-mode .introjs-bullets ul li:hover {
    background-color: rgba(0, 0, 0, 0.28) !important;
}

body.light-mode .introjs-bullets ul li.active:hover {
    background-color: #e6b800 !important;
}

body.light-mode .introjs-step-display {
    color: #6c757d !important;
}

/* Barre de progression - thème clair noir Commercify */
body.light-mode .introjs-progress {
    background-color: #dee2e6 !important;
}

body.light-mode .introjs-progressbar {
    background-color: #1a1d21 !important;
}

/* Flèches - noires en light mode aussi - toutes les combinaisons */
body.light-mode .introjs-arrow.top,
body.light-mode .introjs-arrow.top-left,
body.light-mode .introjs-arrow.top-middle,
body.light-mode .introjs-arrow.top-right,
body.light-mode .introjs-tooltip .introjs-arrow.top,
body.light-mode .introjs-tooltip .introjs-arrow.top-left,
body.light-mode .introjs-tooltip .introjs-arrow.top-middle,
body.light-mode .introjs-tooltip .introjs-arrow.top-right {
    border-bottom-color: #000000 !important;
}

body.light-mode .introjs-arrow.bottom,
body.light-mode .introjs-arrow.bottom-left,
body.light-mode .introjs-arrow.bottom-middle,
body.light-mode .introjs-arrow.bottom-right,
body.light-mode .introjs-tooltip .introjs-arrow.bottom,
body.light-mode .introjs-tooltip .introjs-arrow.bottom-left,
body.light-mode .introjs-tooltip .introjs-arrow.bottom-middle,
body.light-mode .introjs-tooltip .introjs-arrow.bottom-right {
    border-top-color: #000000 !important;
}

body.light-mode .introjs-arrow.left,
body.light-mode .introjs-arrow.left-top,
body.light-mode .introjs-arrow.left-middle,
body.light-mode .introjs-arrow.left-bottom,
body.light-mode .introjs-tooltip .introjs-arrow.left,
body.light-mode .introjs-tooltip .introjs-arrow.left-top,
body.light-mode .introjs-tooltip .introjs-arrow.left-middle,
body.light-mode .introjs-tooltip .introjs-arrow.left-bottom {
    border-right-color: #000000 !important;
}

body.light-mode .introjs-arrow.right,
body.light-mode .introjs-arrow.right-top,
body.light-mode .introjs-arrow.right-middle,
body.light-mode .introjs-arrow.right-bottom,
body.light-mode .introjs-tooltip .introjs-arrow.right,
body.light-mode .introjs-tooltip .introjs-arrow.right-top,
body.light-mode .introjs-tooltip .introjs-arrow.right-middle,
body.light-mode .introjs-tooltip .introjs-arrow.right-bottom {
    border-left-color: #000000 !important;
}

/* Pas d'accents - flèches noires simples */
body.light-mode .introjs-arrow.top::before,
body.light-mode .introjs-arrow.bottom::before,
body.light-mode .introjs-arrow.left::before,
body.light-mode .introjs-arrow.right::before {
    display: none !important;
}

body.light-mode .introjs-tooltip .introjs-arrow {
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.35)) !important;
}

/* Helper layer - bordure #b8860b (Dash light) + animation dédiée */
@keyframes highlightPulseLight {
    0%, 100% {
        border-color: rgba(184, 134, 11, 0.95) !important;
        box-shadow: 
            0 0 0 9999px rgba(0, 0, 0, 0.5),
            0 0 0 2px rgba(184, 134, 11, 0.6),
            0 0 20px rgba(184, 134, 11, 0.35),
            0 0 40px rgba(184, 134, 11, 0.2),
            inset 0 0 20px rgba(184, 134, 11, 0.06) !important;
    }
    50% {
        border-color: #b8860b !important;
        box-shadow: 
            0 0 0 9999px rgba(0, 0, 0, 0.5),
            0 0 0 3px rgba(184, 134, 11, 0.9),
            0 0 30px rgba(184, 134, 11, 0.45),
            0 0 50px rgba(184, 134, 11, 0.25),
            inset 0 0 25px rgba(184, 134, 11, 0.1) !important;
    }
}

body.light-mode .introjs-helperLayer {
    border: 4px solid rgba(184, 134, 11, 0.95) !important;
    box-shadow: 
        0 0 0 9999px rgba(0, 0, 0, 0.5),
        0 0 0 2px rgba(184, 134, 11, 0.6),
        0 0 20px rgba(184, 134, 11, 0.35),
        0 0 40px rgba(184, 134, 11, 0.2),
        inset 0 0 20px rgba(184, 134, 11, 0.06) !important;
    animation: highlightPulseLight 2s ease-in-out infinite !important;
}

/* CTA bouton - noir Commercify en thème clair */
body.light-mode .introjs-cta-button,
body.light-mode .introjs-tooltip .introjs-cta-button,
body.light-mode .introjs-tooltipcontent .introjs-cta-button {
    background-color: #ffcc00 !important;
    border: 1px solid #e6b800 !important;
    color: #000000 !important;
}

body.light-mode .introjs-cta-button:hover,
body.light-mode .introjs-tooltip .introjs-cta-button:hover {
    background-color: #e6b800 !important;
    border-color: #cc9900 !important;
    color: #000000 !important;
}

body.light-mode .introjs-cta-button:focus,
body.light-mode .introjs-button:focus {
    outline: 2px solid rgba(255, 204, 0, 0.5) !important;
}

/* Mode clair : angles droits (90°) — aucune bordure arrondie */
body.light-mode .introjs-tooltip,
body.light-mode .introjs-tooltip .introjs-tooltip-title,
body.light-mode .introjs-tooltip-title,
body.light-mode .introjs-tooltip .introjs-tooltip-header,
body.light-mode .introjs-tooltipbuttons,
body.light-mode .introjs-button,
body.light-mode .introjs-button.introjs-donebutton,
body.light-mode .introjs-cta-button,
body.light-mode .introjs-tooltip .introjs-cta-button,
body.light-mode .introjs-tooltipcontent .introjs-cta-button,
body.light-mode .introjs-grid-card,
body.light-mode .introjs-step-image,
body.light-mode .introjs-tooltip .introjs-tooltipcontent strong,
body.light-mode .introjs-helperLayer,
body.light-mode .introjs-progress,
body.light-mode .introjs-progressbar,
body.light-mode .introjs-bullets ul li,
body.light-mode .introjs-bullets ul li a {
    border-radius: 0;
}

/* Typologie : thème sombre par défaut ; thème clair via body.light-mode ci-dessus */
