/**
 * GOULAINE COUNTRY - AGENDA DES BALS (DEV_NOUV_V4)
 * Intégration complète avec le plugin gc-gestion-site et la charte graphique officielle.
 */


/* --- STYLES FINAUX POUR LE TABLEAU DES BALS --- */


.gbc-app-wrapper {
    font-family: inherit;
    color: var(--gc-texte);
    background-color: var(--gbc-bg-light);
    padding: 0;
    border-radius: 12px;
    column-count: 1 !important;
    display: block !important;
}

.gbc-app-wrapper p,
#gbc-bals-container>p,
.gbc-subheader>p {
    margin: 0 !important;
    padding: 0 !important;
}

.gbc-app-wrapper>p:empty,
#gbc-bals-container>p:empty,
.gbc-subheader>p:empty {
    display: none !important;
}

#gbc-bals-container {
    display: block !important;
    width: 100% !important;
}

/* 1. TOP BAR */
.gbc-top-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 15px !important;
    align-items: center;
}

.gbc-search-box {
    flex: 1 1 300px;
    position: relative;
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: var(--gc-btn-radius);
    padding: 0 12px;
    height: 42px;
    box-sizing: border-box;
}

.gbc-search-box .dashicons {
    color: #999;
    font-size: 16px;
    width: 16px;
    height: 16px;
}

.gbc-search-box input {
    border: none;
    padding: 0 10px;
    width: 100%;
    height: 100%;
    outline: none;
    font-size: 13px;
    background: transparent;
    box-sizing: border-box;
}

.gbc-select {
    flex: 1 1 150px;
    padding: 0 15px;
    height: 42px;
    border: 1px solid #ddd;
    border-radius: var(--gc-btn-radius);
    font-size: 12px;
    font-weight: 600;
    color: var(--gc-texte);
    background-color: #fff;
    outline: none;
    text-transform: uppercase;
    box-sizing: border-box;
    display: flex;
    align-items: center;
}

.gbc-top-bar .gbc-reset-btn {
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 18px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    flex: 0 0 auto !important;
    font-family: var(--gc-font-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: var(--gc-btn-transform, uppercase) !important;
    white-space: nowrap !important;
    /* Intégration Charte Graphique */
    background-color: var(--gc-beige) !important;
    color: var(--gc-bleu-nuit) !important;
    border: 1px solid var(--gc-bleu-nuit) !important;
    border-radius: var(--gc-btn-radius) !important;
    cursor: pointer !important;
    transition: all 0.2s ease-in-out !important;
    text-decoration: none !important;
}

.gbc-top-bar .gbc-reset-btn .dashicons {
    font-family: dashicons !important;
    font-size: 16px !important;
    width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
}

.gbc-top-bar .gbc-reset-btn:not(.gbc-btn-disabled):hover {
    background-color: var(--gc-bleu-nuit) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
    border-color: var(--gc-bleu-nuit) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 6px rgba(0, 52, 72, 0.15) !important;
}

.gbc-top-bar .gbc-reset-btn.gbc-btn-disabled {
    background-color: var(--gc-beige) !important;
    color: var(--gc-bleu-nuit) !important;
    border-color: var(--gc-bleu-nuit) !important;
    cursor: default !important;
    opacity: 0.45 !important;
    pointer-events: none !important;
    transform: none !important;
    box-shadow: none !important;
}

/* 2. SUBHEADER */
.gbc-subheader {
    margin: 0;
    padding: 0;
}

.gbc-subheader h2 {
    font-size: 24px;
    font-weight: 800;
    color: var(--gc-bleu-nuit);
    margin: 0 0 15px 0;
    text-transform: uppercase;
}

.gbc-filters-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    height: 42px;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    flex-wrap: wrap;
    gap: 15px;
    border-bottom: 2px solid #eaeaea;
    padding-bottom: 0;
    box-sizing: border-box;
}

.gbc-tabs {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    align-items: flex-end;
    margin: 0;
    padding: 0;
}

.gbc-tab {
    font-family: var(--gc-font-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #777777;
    cursor: pointer;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1 !important;
    padding-bottom: 10px;
    margin-bottom: -2px;
    border-bottom: 2px solid transparent;
    transition: all 0.25s ease;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.gbc-tab:hover {
    color: var(--gc-bleu-nuit);
}

.gbc-tab.active {
    color: var(--gc-bleu-nuit);
    border-bottom-color: var(--gc-bleu-nuit);
}

.gbc-tab .count {
    font-weight: 600;
    opacity: 0.8;
}

.tableau-bals-country-container {
    display: flex;
    flex-direction: column;
    background: transparent;
    border-radius: 12px;
    padding: 2px 0;
    box-shadow: none;
    width: 100%;
    clear: both;
}

.tableau-bals-country {
    width: 100%;
    margin: 0px 0 40px 0 !important;
    font-size: 1.05em;
    font-family: var(--gc-font-body);
}

.gbc-hidden-row,
.gbc-hidden-month {
    display: none !important;
}

.tableau-bals-country thead tr {
    background-color: var(--gc-bleu-nuit) !important;
    color: #ffffff;
    text-align: center;
    height: auto;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    /* Renforce le contraste */
}

.tableau-bals-country thead th {
    padding: 6px 10px;
    /* Revert padding */
    font-weight: bold;
    background-color: var(--gc-bleu-nuit) !important;
    border-right: none;
    /* Supprime les lignes verticales de l'en-tÃªte */
    border-bottom: none;
    /* Supprime la ligne du bas de l'en-tÃªte */
}

.tableau-bals-country th,
#gbc-bals-container .tableau-bals-country td {
    padding: 0px 0px;
    /* Revert padding */
    border-bottom: 1px solid var(--gbc-border-light);
    vertical-align: middle;
    text-align: center;
    overflow-wrap: break-word;
    position: relative;
    /* NÃ©cessaire pour positionner le pseudo-Ã©lÃ©ment */
}

/* CrÃ©ation du sÃ©parateur vertical personnalisÃ© */
#gbc-bals-container .tableau-bals-country td:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 15%;
    /* Marge en haut */
    bottom: 15%;
    /* Marge en bas */
    right: 0;
    width: 1px;
    background-color: #e8e8e8;
}

/* La hauteur fixe est supprimÃ©e pour un affichage plus flexible */
.tableau-bals-country tbody tr {
    height: 150px;
}

.tableau-bals-country tbody tr.gbc-info-toggle-row,
.tableau-bals-country tbody tr.gbc-info-content-row {
    height: auto;
    background-color: transparent !important;
}

.tableau-bals-country tbody tr:nth-of-type(even):not(.gbc-row-highlight),
.tableau-bals-country tbody tr.alt:not(.gbc-row-highlight),
.tableau-bals-country tbody tr.odd:not(.gbc-row-highlight) {
    background-color: transparent !important;
}

/* Zebra striping : une ligne sur deux a un fond lÃ©gÃ¨rement plus foncÃ© */
.tableau-bals-country tbody tr.gbc-row-even:not(.gbc-row-highlight) {
    background-color: var(--gbc-stripe) !important;
}



/* Bordure de sÃ©paration renforcÃ©e pour les bals */
.tableau-bals-country .gbc-main-row:not(.has-info-row) td {
    border-bottom: 1px solid #dddddd;
}

.tableau-bals-country th:nth-child(1),
.tableau-bals-country td:nth-child(1) {
    width: 11%;
}

.tableau-bals-country th:nth-child(2),
.tableau-bals-country td:nth-child(2) {
    width: 21%;
}

.tableau-bals-country th:nth-child(3),
.tableau-bals-country td:nth-child(3) {
    width: 16%;
    text-align: center;
}

.tableau-bals-country th:nth-child(4),
.tableau-bals-country td:nth-child(4) {
    width: 15%;
}

.tableau-bals-country th:nth-child(5),
.tableau-bals-country td:nth-child(5) {
    width: 10%;
}

.tableau-bals-country th:nth-child(6),
.tableau-bals-country td:nth-child(6) {
    width: 27%;
}

.preview-with-download-wrapper {
    display: grid;
    grid-template-rows: 1fr auto;
    /* Ligne 1 (image) prend l'espace, Ligne 2 (bouton) s'adapte */
    height: 100%;
    /* Prend toute la hauteur de la cellule */
    box-sizing: border-box;
    /* Inclut le padding dans la hauteur */
    padding: 0px;
    /* Ajoute un peu d'espace en haut et en bas */
    justify-items: center;
    /* Centre horizontalement les Ã©lÃ©ments (image, bouton) */
    align-content: center;
    /* Centre verticalement le bloc image+bouton */
}

.tableau-bals-country td:nth-child(6) .preview-with-download-wrapper {
    gap: 3px;
}

.tableau-bals-country td:nth-child(3) .preview-with-download-wrapper {
    max-width: 120px;
    margin: 0 auto;
}

.preview-with-download-wrapper .preview-link {
    display: flex;
    align-items: center;
    /* Centre verticalement l'image/icÃ´ne dans son espace */
}

.tableau-bals-country td:nth-child(3) .apercu-affiche {
    max-width: 110px;
    width: auto;
    height: auto;
}

.preview-with-download-wrapper .apercu-affiche {
    display: block;
    max-width: 140px;
    height: auto;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.preview-with-download-wrapper .preview-link:hover .apercu-affiche {
    transform: scale(1.03);
    z-index: 10;
    position: relative;
}

.preview-with-download-wrapper .preview-icon {
    font-size: 2.5rem;
    text-decoration: none;
}

.preview-with-download-wrapper .download-button {
    display: block;
    font-size: 11px;
    color: #0073aa;
    text-decoration: none;
    padding: 0;
    line-height: 1.2;
    /* RÃ©duit la hauteur de la ligne pour coller au texte */
    cursor: pointer;
    z-index: 1;
    position: relative;
}

.preview-with-download-wrapper .download-button:hover {
    text-decoration: underline;
}

.tableau-bals-country td:nth-child(6) .multiple-previews-container {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-end;
    gap: 8px;
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
}

/* Permet le passage sur plusieurs lignes si plus de 2 Ã©lÃ©ments */
.tableau-bals-country td:nth-child(6) .multiple-previews-container.has-multiple-rows {
    flex-wrap: wrap;
}

.tableau-bals-country td:nth-child(6) .multiple-previews-container .preview-with-download-wrapper {
    flex: 1;
    min-width: 0;
    /* Permet aux Ã©lÃ©ments de rÃ©trÃ©cir */
    max-width: 110px;
    /* Garde une taille max raisonnable s'il y en a peu */
}

/* RÃ©duit la taille max pour les Ã©lÃ©ments sur plusieurs lignes afin de ne pas augmenter la hauteur de la ligne de bal */
.tableau-bals-country td:nth-child(6) .multiple-previews-container.has-multiple-rows .preview-with-download-wrapper {
    flex: 1 1 50px;
    max-width: 65px;
}

.tableau-bals-country td:nth-child(6) .multiple-previews-container .apercu-affiche {
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 4px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.tableau-bals-country td:nth-child(6) .multiple-previews-container .preview-link:hover .apercu-affiche {
    transform: scale(1.1);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    z-index: 10;
}

.tableau-bals-country td:nth-child(6) .download-button {
    font-size: 11px;
    padding: 4px 0 0 0;
    white-space: normal;
    word-break: break-word;
}

/* On ajuste la taille de l'icÃ´ne s'il n'y a pas d'image (PDF gÃ©nÃ©rique) */
.tableau-bals-country td:nth-child(6) .multiple-previews-container .preview-icon {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
}

/* --- Styles de la colonne Date Responsive --- */
.gbc-date-container {
    text-align: center;
}

.gbc-date-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.gbc-date-icon {
    font-size: 16px;
    width: 16px;
    height: 16px;
    color: inherit;
    margin-right: 6px;
}

.gbc-time-text {
    font-size: 0.95em;
    color: inherit;
    display: block;
}

/* --- Styles pour la popup Agenda Interactive --- */
.gbc-calendar-popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 99998;
    backdrop-filter: blur(2px);
}

.gbc-calendar-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    z-index: 99999;
    width: 90%;
    max-width: 320px;
}

.gbc-calendar-popup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.gbc-calendar-popup-header h4 {
    margin: 0;
    font-size: 1.1em;
    color: #333;
}

.gbc-calendar-popup-close {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #888;
    line-height: 1;
}

.gbc-calendar-popup-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gbc-calendar-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 15px;
    border-radius: 8px;
    text-decoration: none !important;
    font-weight: bold;
    color: #fff !important;
    transition: transform 0.2s, box-shadow 0.2s;
}

.gbc-calendar-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.gbc-gcal-btn {
    background: #4285F4;
}

.gbc-ical-btn {
    background: #333;
}

@media screen and (max-width: 768px) {
    .tableau-bals-country thead {
        display: none;
    }

    .tableau-bals-country tr {
        display: block;
        border-bottom: 3px solid var(--gc-bleu-nuit);
        padding-bottom: 10px;
    }

    .tableau-bals-country tbody tr {
        height: auto;
    }

    /* Override Date Column to be inline on mobile */
    .gbc-date-container {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        white-space: nowrap;
        margin-bottom: 0;
    }

    .gbc-date-primary {
        margin-bottom: 0;
    }

    .gbc-time-text::before {
        content: " - ";
        margin: 0 4px;
        color: #555;
    }

    .gbc-time-text {
        display: inline;
    }

    .tableau-bals-country td {
        padding-left: 50%;
        position: relative;
        border-bottom: 1px dotted #ccc;
        box-sizing: border-box;
        font-size: 16px;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        min-height: 40px;
        padding-right: 15px !important;
    }

    .tableau-bals-country td:last-child {
        border-bottom: none;
    }

    .tableau-bals-country td::before {
        content: attr(data-label);
        position: absolute;
        left: 15px;
        font-weight: bold;
        text-align: left;
        white-space: nowrap;
    }

    /* RÃ©duit le padding-left pour laisser plus d'espace au nom du club */
    .tableau-bals-country td[data-label="Club"] {
        padding-left: 15% !important;
        /* Au lieu de 50% */
        text-align: right;
        min-width: 0;
        flex-wrap: wrap;
        gap: 8px;
    }

    /* Le nom du club revient Ã  la ligne si nÃ©cessaire */
    .tableau-bals-country td[data-label="Club"] strong {
        font-size: 1.1em !important;
        /* Garde la taille normale */
        line-height: 1.3;
        /* Meilleur espacement entre les lignes */
        flex-basis: auto;
        word-wrap: break-word;
        overflow-wrap: break-word;
        white-space: normal !important;
        /* Permet le retour Ã  la ligne */
        max-width: 100%;
        display: inline-block;
    }

    .tableau-bals-country .col-club-mobile-wrapper {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 10px;
    }

    .tableau-bals-country th:nth-child(n),
    .tableau-bals-country td:nth-child(n) {
        width: 100% !important;
    }

    .tableau-bals-country td:nth-child(3) .preview-with-download-wrapper,
    .tableau-bals-country td:nth-child(6) .multiple-previews-container {
        margin: 10px 0;
        /* Supprime le centrage automatique horizontal (auto) */
        max-width: 250px;
    }

    .tableau-bals-country td:nth-child(6) .multiple-previews-container {
        padding-bottom: 10px;
        display: grid;
        grid-template-columns: repeat(2, 65px);
        /* Force exactement 2 colonnes fixes */
        justify-content: end;
        /* Aligne la grille entiÃ¨re Ã  droite */
        gap: 10px;
        width: 100%;
        margin: 0;
    }

    .tableau-bals-country td:nth-child(6) .multiple-previews-container .preview-with-download-wrapper {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    .tableau-bals-country td:nth-child(6) .multiple-previews-container .preview-with-download-wrapper:only-child {
        grid-column: 1 / -1;
        /* Ã‰tend la cellule unique sur les 2 colonnes */
        justify-self: end;
        /* Aligne l'Ã©lÃ©ment unique Ã  droite */
        width: 110px;
        /* Taille normale */
        max-width: 110px;
    }

    .tableau-bals-country td:nth-child(3) .preview-with-download-wrapper {
        max-width: 140px;
        /* Ã‰vite que l'affiche ne devienne Ã©norme sur mobile */
    }

    .tableau-bals-country td[data-label="Affiche"],
    .tableau-bals-country td[data-label="Infos / Playlist(s)"] {
        /* On aligne le contenu Ã  droite pour laisser de la place au label Ã  gauche */
        justify-content: flex-end !important;
        padding-top: 15px;
        /* Ajoute un peu d'espace en haut pour ne pas coller le label */
    }

    /* Correction pour la ligne "+ d'infos" en vue mobile */
    .gbc-info-row td {
        display: block !important;
        /* Force l'affichage en bloc pour Ã©viter le flex vertical */
        text-align: left !important;
        /* Garantit l'alignement Ã  gauche */
        padding: 8px 15px !important;
        /* Applique un padding uniforme, sans le dÃ©calage de 50% */
        min-height: auto !important;
        /* La hauteur s'adapte au contenu */
    }

    .gbc-info-content-wrapper {
        flex-direction: column;
        align-items: flex-start;
        padding: 12px 15px 16px 15px !important;
        margin-top: -8px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 0 !important;
    }

    .gbc-info-text-wrapper {
        justify-content: flex-start !important;
        text-align: left !important;
        width: 100%;
    }

    .gbc-info-text {
        line-height: 1.5 !important;
    }

    /* Bordure de sÃ©paration aprÃ¨s le bloc + d'infos en mobile */
    .gbc-info-row td {
        border-bottom: 3px solid var(--gc-bleu-nuit) !important;
        padding-bottom: 15px !important;
    }

    /* RÃ©tablir les bordures entre les attributs pour les bals avec + d'infos en mobile */
    #gbc-bals-container .tableau-bals-country .gbc-main-row.has-info-row td {
        border-bottom: 1px solid #e8e8e8 !important;
    }

    /* Seulement la derniÃ¨re cellule du bal principal n'a pas de bordure (avant le + d'infos) */
    #gbc-bals-container .tableau-bals-country .gbc-main-row.has-info-row td:last-child {
        border-bottom: none !important;
    }

    span.gbc-end-date-label {
        padding: 0px 2% 0px 2% !important;
    }

    /* Harmonisation mobile des filtres (identique au plugin chorés) */
    .gbc-top-bar {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
    }

    .gbc-search-box {
        flex: 1 1 100% !important;
        width: 100% !important;
    }

    #gbc-table-filter-dept {
        flex: 1 1 100% !important;
        width: 100% !important;
    }

    #gbc-table-filter-month {
        flex: 1 1 calc(50% - 6px) !important;
        min-width: 130px;
    }

    .gbc-reset-btn {
        flex: 1 1 calc(50% - 6px) !important;
        width: auto !important;
        justify-content: center !important;
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 10px !important;
        font-size: 11px !important;
        box-sizing: border-box !important;
    }

    .gbc-filters-row {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        height: auto !important;
        gap: 12px;
        padding-bottom: 12px;
    }

    .gbc-tabs {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        gap: 8px 10px;
        flex-wrap: wrap;
    }

    .gbc-tab {
        padding: 6px 12px !important;
        margin: 0 !important;
        border-radius: 20px !important;
        border: 1px solid #e2e8f0 !important;
        background: #fff !important;
        color: #64748b !important;
        font-size: 11px !important;
        line-height: 1 !important;
    }

    .gbc-tab.active {
        background: var(--gc-bleu-nuit) !important;
        color: #ffffff !important;
        border-color: var(--gc-bleu-nuit) !important;
    }
}

/* On cache le bouton de fermeture par dÃ©faut de Fancybox pour utiliser le nÃ´tre (synchronisÃ©) */
.f-button.is-close-btn,
.fancybox__toolbar .f-button[data-fancybox-close] {
    display: none !important;
}

.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn {
    padding-top: 0px;
}

.fancybox__container {
    /* On s'assure que FancyBox se place bien par-dessus la barre d'admin */
    padding-top: 0px;
    z-index: 9999 !important;
    --fancybox-bg: rgba(24, 24, 27, 0.95) !important;
}

/* Force la barre d'outils Ã  Ãªtre au-dessus de l'iframe (PDF) */
.fancybox__toolbar {
    z-index: 10000 !important;
    background: transparent !important;
    /* On retire le dÃ©gradÃ© global */
    padding-top: 10px;
    padding-bottom: 20px;
    visibility: visible !important;
    opacity: 1 !important;
    display: flex !important;
}

/* On stylise les boutons de la toolbar pour qu'ils soient visibles sur tout fond (blanc PDF ou noir image) */
.fancybox__toolbar .f-button {
    background: rgba(0, 0, 0, 0.6);
    /* Fond sombre semi-transparent pour le bouton */
    color: #fff;
    border-radius: 50%;
    /* Boutons ronds */
    margin: 0 4px;
    width: 40px;
    height: 40px;
    display: flex;
    /* Assure que le contenu est centrÃ© */
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.fancybox__toolbar .f-button:hover {
    background: rgba(0, 0, 0, 0.8);
    transform: scale(1.05);
}

.fancybox__toolbar .f-button svg {
    width: 20px;
    height: 20px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}


.fancybox__content {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    height: 100% !important;
}

/* Dans public/public-styles.css */
.gbc-month-title {
    margin-top: 15px !important;
    margin-bottom: 0px !important;
    padding-bottom: 0px !important;
    color: var(--gc-bleu-nuit) !important;
    text-transform: uppercase;
}

/* Correction du padding pour les iframes dans Fancybox */
/* Force l'apparence d'une page A4 centrÃ©e */
body .fancybox__container .fancybox__slide.is-iframe .fancybox__content,
body .fancybox__container .fancybox__slide.has-iframe .fancybox__content,
body .fancybox__container .fancybox__slide.has-pdf .fancybox__content {
    padding: 0;
    margin: 0 auto;

    /* Ratio A4 Portrait (210/297) */
    aspect-ratio: 210/297;

    /* Dimensions calculÃ©es pour tenir dans l'Ã©cran tout en gardant le ratio */
    /* On prend le MINIMUM entre :
           1. 95% de la hauteur d'Ã©cran (pour ne pas toucher les bords verticaux)
           2. La largeur correspondante si on Ã©tait limitÃ© par la largeur (95vw)
         */
    height: min(100vh, 95vw * 1.414) !important;
    width: min(95vw, 95vh * 0.707) !important;

    max-width: 1200px;
    background: #fff;
    /* Fond blanc pour faire "papier" */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    /* Ombre pour l'effet "feuille volante" */
}

/* Styles pour les boutons PDF injectÃ©s manuellement */
/* Styles pour les boutons personnalisÃ©s (PDF et Images) injectÃ©s manuellement */
.gbc-custom-actions {
    position: fixed !important;
    /* Fixe par rapport Ã  l'Ã©cran */
    top: 10px;
    right: 10px;
    /* On remet Ã  droite car on intÃ¨gre la croix dedans */
    display: flex;
    gap: 8px;
    z-index: 99999;
    align-items: center;
    /* Assure l'alignement vertical */
}

.gbc-custom-actions .f-button {
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    border-radius: 50%;
    width: 40px;
    /* Taille augmentÃ©e pour s'approcher du standard Fancybox */
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
    cursor: pointer;
    padding: 0;
}

.gbc-custom-actions .f-button:hover {
    background: rgba(0, 0, 0, 0.85);
    transform: scale(1.05);
}

.gbc-custom-actions .f-button svg {
    width: 20px;
    height: 20px;
    pointer-events: none;
}

/* FIX : Reset de la hauteur pour les images pour permettre le clic en dehors (sur le slide) */
.fancybox__slide.has-image .fancybox__content {
    height: auto !important;
}

/* --- Animation de fondu pour les images --- */
.apercu-affiche {
    opacity: 0;
    transition: opacity 0.5s ease-in-out, transform 0.2s;
    /* Ajout de transition sur transform */
}

.apercu-affiche.is-visible {
    opacity: 1;
}

.gbc-end-date-label {
    font-size: 0.9em;
    color: #555;
}

.gbc-cp-prefix {
    font-weight: bold;
}

/* Couleurs spÃ©cifiques pour chaque dÃ©partement des Pays de la Loire */
.gbc-cp-prefix-44 {
    color: #0077B6;
}

/* Loire-Atlantique - Bleu */
.gbc-cp-prefix-49 {
    color: #D9534F;
}

/* Maine-et-Loire - Rouge */
.gbc-cp-prefix-53 {
    color: #5CB85C;
}

/* Mayenne - Vert */
.gbc-cp-prefix-72 {
    color: #F0AD4E;
}

/* Sarthe - Orange */
.gbc-cp-prefix-85 {
    color: #6f42c1;
}

/* VendÃ©e - Violet */

/* --- Styles pour la ligne "Plus d'infos" --- */
/* Supprime la bordure entre le bal et sa ligne d'info */
#gbc-bals-container .tableau-bals-country .gbc-main-row.has-info-row td {
    border-bottom: none;
}

.tableau-bals-country .gbc-info-row {
    height: auto !important;
    /* Annule la hauteur fixe de 150px hÃ©ritÃ©e */
    position: relative;
    z-index: 100;
    background-color: transparent !important;
}

#gbc-bals-container .tableau-bals-country tr.gbc-info-row>td {
    padding: 0 !important;
    /* On force la suppression du padding de la cellule elle-mÃªme */
    height: auto;
    text-align: left !important;
    /* Annule le centrage hÃ©ritÃ© du thÃ¨me */
    border-bottom: 1px solid #dddddd !important;
    /* Bordure harmonisÃ©e pour sÃ©parer du bal suivant */
    border-right: none;
    /* S'assure qu'il n'y a pas de bordure verticale */
}

#gbc-bals-container .tableau-bals-country tr.gbc-info-row:not(.gbc-row-highlight)>td {
    background-color: transparent !important;
    /* Fond transparent par dÃ©faut pour hÃ©riter du zÃ¨bre/theme */
}

.gbc-info-content-wrapper {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 12px 20px 12px 3%;
    margin-top: -3px;
    background: linear-gradient(135deg, #e3f2fd 0%, #d4e8ed 100%);
    border-left: 4px solid var(--gc-bleu-nuit);
    border-radius: 7px 7px 7px 7px;
    margin-left: 4%;
    margin-right: 3%;
    margin-bottom: 15px;
    box-shadow: 0 3px 10px rgba(0, 100, 110, 0.12);
    min-height: 68px;
    /* Assure une hauteur minimale cohÃ©rente mÃªme sans boutons */
    box-sizing: border-box;
}

/* Conteneur du texte d'info (prefix + texte) */
.gbc-info-content-wrapper>.gbc-info-prefix,
.gbc-info-content-wrapper>.gbc-info-text {
    display: inline;
}

/* Wrapper pour le texte d'info - prend l'espace disponible */
.gbc-info-content-wrapper::before {
    content: none;
}

/* Conteneur pour le texte d'info - permet le flex et le passage sur 2 lignes */
.gbc-info-text-wrapper {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    line-height: 1.6;
}

.gbc-info-prefix {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: bold;
    color: var(--gc-bleu-nuit);
    white-space: nowrap;
    flex-shrink: 0;
    margin-right: 8px;
    line-height: 1.6;
}

.gbc-info-prefix .dashicons {
    font-size: 22px;
    vertical-align: middle;
    position: relative;
    top: -1px;
    color: var(--gc-bleu-nuit);
}

.gbc-info-text {
    flex: 1;
    font-size: 1em;
    line-height: 1.6;
    color: #333;
    /* Pas d'italique global - le formatage est personnalisable */
}

/* Support du gras dans le texte */
.gbc-info-text strong,
.gbc-info-text b {
    font-weight: bold;
    color: #1a1a1a;
}

/* Support de l'italique dans le texte */
.gbc-info-text em,
.gbc-info-text i {
    font-style: italic;
}

/* Style des liens dans le texte */
.gbc-info-text a {
    color: #0077B6;
    text-decoration: underline;
    transition: color 0.2s ease;
}

.gbc-info-text a:hover {
    color: #005a8c;
    text-decoration: none;
}

/* Support du soulignÃ© dans le texte */
.gbc-info-text u {
    text-decoration: underline;
}

/* --- Conteneur des boutons --- */
.gbc-btns-wrapper {
    display: flex;
    gap: 10px;
    margin-left: auto;
    flex-shrink: 0;
}


/* Responsive pour les boutons */
@media screen and (max-width: 768px) {
    .gbc-btns-wrapper {
        flex-direction: column;
        width: 100%;
        margin-left: 0;
        margin-top: 12px;
    }

    .gbc-btn-inscription,
    .gbc-btn-reservation,
    .gbc-btn-siteweb {
        width: 100%;
        justify-content: center;
        padding: 12px 20px;
        font-size: 1.05em;
    }

    /* Masquer les tooltips sur mobile (tactile) */
    .gbc-tooltip-preview,
    .gbc-tooltip-text {
        display: none !important;
    }
}

/* --- Styles pour les tooltips des boutons --- */
.gbc-has-tooltip {
    position: relative;
}

/* Tooltip texte (Position vers le HAUT avec fond blanc haute lisibilité) */
.gbc-tooltip-text {
    position: absolute;
    bottom: calc(100% + 7px);
    left: 50%;
    transform: translateX(-50%);
    background: #ffffff !important;
    color: #003b57 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    padding: 5px 11px !important;
    border-radius: 5px !important;
    white-space: nowrap !important;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    border: 1.5px solid #004b6e !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3) !important;
    z-index: 99999 !important;
}

/* Flèche du tooltip (contour bleu) */
.gbc-tooltip-text::before {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 7px solid transparent !important;
    border-top-color: #004b6e !important;
    z-index: 1;
}

/* Flèche du tooltip (intérieur blanc) */
.gbc-tooltip-text::after {
    content: '';
    position: absolute;
    top: calc(100% - 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent !important;
    border-top-color: #ffffff !important;
    z-index: 2;
}

/* Tooltip aperÃ§u (image) */
.gbc-tooltip-preview {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 50%;
    transform: translateX(-50%);
    background: #ffffff;
    padding: 6px;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    pointer-events: none;
    z-index: 99999;
}

.gbc-tooltip-preview img {
    display: block;
    max-width: 180px;
    max-height: 220px;
    width: auto;
    height: auto;
    border-radius: 4px;
}

/* FlÃ¨che du tooltip aperÃ§u */
.gbc-tooltip-preview::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-top-color: #ffffff;
}

/* Affichage au survol */
.gbc-has-tooltip:hover .gbc-tooltip-text,
.gbc-has-tooltip:hover .gbc-tooltip-preview {
    opacity: 1;
    visibility: visible;
}

/* Animation d'entrÃ©e */
.gbc-has-tooltip:hover .gbc-tooltip-text {
    transform: translateX(-50%) translateY(-4px);
}


.gbc-has-tooltip:hover .gbc-tooltip-preview {
    transform: translateX(-50%) translateY(-6px);
}

/* Tooltip positionné à gauche pour la colonne d'actions en mode Billet/Ligne (évite de recouvrir les boutons au-dessus) */
.gbc-card-actions .gbc-tooltip-text,
.gbc-view-mode-ticket .gbc-actions-block .gbc-tooltip-text {
    bottom: auto !important;
    top: 50% !important;
    left: auto !important;
    right: calc(100% + 10px) !important;
    transform: translateY(-50%) !important;
}

.gbc-card-actions .gbc-has-tooltip:hover .gbc-tooltip-text,
.gbc-view-mode-ticket .gbc-actions-block .gbc-has-tooltip:hover .gbc-tooltip-text {
    transform: translateY(-50%) translateX(-4px) !important;
}

.gbc-card-actions .gbc-tooltip-text::before,
.gbc-view-mode-ticket .gbc-actions-block .gbc-tooltip-text::before {
    top: 50% !important;
    left: 100% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    border-color: transparent !important;
    border-left-color: #004b6e !important;
}

.gbc-card-actions .gbc-tooltip-text::after,
.gbc-view-mode-ticket .gbc-actions-block .gbc-tooltip-text::after {
    top: 50% !important;
    left: calc(100% - 2px) !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    border-color: transparent !important;
    border-left-color: #ffffff !important;
}

/* Tooltip positionné à DROITE pour les métadonnées (salle GPS et localité carte)
   Évite de masquer la ligne horaire au-dessus ou la ligne d'adresse au-dessous */
.gbc-meta-row .gbc-has-tooltip,
.gbc-meta-content .gbc-has-tooltip {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    max-width: 100% !important;
}

.gbc-meta-row .gbc-tooltip-text,
.gbc-meta-content .gbc-tooltip-text {
    bottom: auto !important;
    top: 50% !important;
    left: calc(100% + 10px) !important;
    right: auto !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
}

.gbc-meta-row .gbc-has-tooltip:hover .gbc-tooltip-text,
.gbc-meta-content .gbc-has-tooltip:hover .gbc-tooltip-text {
    transform: translateY(-50%) translateX(3px) !important;
}

.gbc-meta-row .gbc-tooltip-text::before,
.gbc-meta-content .gbc-tooltip-text::before {
    top: 50% !important;
    right: 100% !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    border: 7px solid transparent !important;
    border-right-color: #004b6e !important;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    border-bottom-color: transparent !important;
}

.gbc-meta-row .gbc-tooltip-text::after,
.gbc-meta-content .gbc-tooltip-text::after {
    top: 50% !important;
    right: calc(100% - 2px) !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    border: 6px solid transparent !important;
    border-right-color: #ffffff !important;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    border-bottom-color: transparent !important;
}


/* --- ANCRES ET SCROLLING --- */
/* DÃ©calage pour compenser les en-tÃªtes fixes lors du scroll vers une ancre */
tr[id^="bal-"] {
    scroll-margin-top: 150px;
    /* Ajustez selon hauteur du header */
}

/* --- BADGES DE TYPE D'Ã‰VÃ‰NEMENT --- */
.gbc-event-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    margin-top: 4px;
    justify-content: center;
}

.gbc-event-badge {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 8px;
    font-size: 0.72em;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    letter-spacing: 0.01em;
}

.gbc-badge-bal {
    background: #e8f0fe;
    color: #1a56db;
}

.gbc-badge-concert {
    background: #f3e8ff;
    color: #7c3aed;
}

.gbc-badge-stage {
    background: #fff3e0;
    color: #c77b1a;
}

.gbc-badge-festival {
    background: #fce4ec;
    color: #c62828;
}

.gbc-badge-anniversaire {
    background: #fff8e1;
    color: #a67c00;
}

/* Mobile : badges plus petits */
@media screen and (max-width: 768px) {
    .gbc-event-badges {
        justify-content: flex-end;
        margin-top: 3px;
    }

    .gbc-event-badge {
        font-size: 0.65em;
        padding: 1px 5px;
    }
}

/* ==========================================================================
   INTERACTIVE MAP & MODAL POPUP MODULE (LEAFLET.JS)
   ========================================================================== */

/* Triggers & Headers styling */
/* gbc-btn-map-trigger hover harmonisé */

body.gbc-modal-open {
    overflow: hidden !important;
}

/* Ensure Fancybox opens on top of the map modal */
.fancybox-container,
.fancybox__container {
    z-index: 1000000000 !important;
}

/* Modal Window Overlay */
.gbc-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(15, 15, 20, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 999999999 !important;
    display: none;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gbc-modal-overlay.gbc-active {
    opacity: 1;
}

/* Modal Inner Container */
.gbc-modal-box {
    width: 95%;
    max-width: 1600px;
    height: 90vh;
    background: rgba(26, 26, 31, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    transform: scale(0.92);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.gbc-modal-overlay.gbc-active .gbc-modal-box {
    transform: scale(1);
}

/* Close Button styling */
.gbc-modal-close-btn {
    position: absolute;
    top: 15px;
    right: 20px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #fff;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    transition: all 0.2s ease;
    padding: 0;
}

/* When the close button is moved inline into the sidebar h3 */
@media (max-width: 768px) {
    .gbc-modal-close-btn.gbc-modal-close-btn-inline {
        position: static;
        width: 30px;
        height: 30px;
        flex-shrink: 0;
        margin-left: 6px;
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.2);
    }
}

.gbc-modal-close-btn .dashicons {
    font-size: 20px;
    width: 20px;
    height: 20px;
    line-height: 20px;
    margin: 0;
    display: block;
}

.gbc-modal-close-btn:hover {
    background: #c07a2a;
    color: #fff;
    border-color: transparent;
}

.gbc-modal-close-btn:hover .dashicons {
    transform: rotate(90deg);
}

/* Modal Body Grid */
.gbc-modal-body {
    display: flex;
    flex: 1;
    height: 100%;
    overflow: hidden;
}

/* Sidebar Layout */
.gbc-map-sidebar {
    width: 300px;
    background: rgba(18, 18, 22, 0.95);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    padding: 15px;
    box-sizing: border-box;
    overflow-y: auto;
    overflow-x: hidden;
    color: #f3f4f6;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex-shrink: 0;
}

.gbc-map-sidebar h3 {
    margin: 0 0 5px 0;
    font-size: 1.25em;
    font-weight: 700;
    color: #fff;
    border-bottom: 2px solid #c07a2a;
    padding-bottom: 5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Filter Groups inside Sidebar */
.gbc-filter-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.gbc-filter-group label {
    font-size: 0.8em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.5);
}

.gbc-filter-group input[type="search"] {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 6px 12px;
    color: #fff;
    font-size: 0.92em;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    text-overflow: ellipsis;
}

.gbc-filter-group select {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 6px 12px;
    color: #fff;
    font-size: 0.92em;
    outline: none;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    transition: none !important;
    /* Desactive la transition pour eviter le clignotement sous Chrome/Edge */
}

.gbc-filter-group select option {
    color: FieldText !important;
    background-color: revert !important;
}

.gbc-filter-group input[type="search"]:focus,
.gbc-filter-group select:focus {
    border-color: #c07a2a;
    box-shadow: 0 0 0 3px rgba(192, 122, 42, 0.2);
    background: rgba(255, 255, 255, 0.1);
}

/* Checkbox Lists */
.gbc-checkbox-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: rgba(0, 0, 0, 0.2);
    padding: 12px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.gbc-checkbox-list label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88em;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    text-transform: none;
    font-weight: 400;
    letter-spacing: normal;
}

.gbc-checkbox-list input[type="checkbox"] {
    accent-color: #c07a2a;
    width: 15px;
    height: 15px;
    margin: 0;
    cursor: pointer;
}

/* Map Canvas Container & Standalone Wrapper */
.gbc-map-canvas-container {
    flex: 1;
    position: relative;
    height: 100%;
    background: #151518;
}

.gbc-map-canvas {
    width: 100%;
    height: 100%;
}

.gbc-map-standalone-wrapper {
    width: 100%;
    margin: 30px 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(0, 0, 0, 0.08);
    height: 600px;
    display: flex;
    flex-direction: column;
    background: #fff;
}

.gbc-map-standalone-wrapper .gbc-map-body {
    display: flex;
    flex: 1;
    height: 100%;
    overflow: hidden;
}

.gbc-map-standalone-wrapper .gbc-map-sidebar {
    background: #f8f9fa;
    border-right: 1px solid #e2e8f0;
    color: #334155;
}

.gbc-map-standalone-wrapper .gbc-map-sidebar h3 {
    color: #1e293b;
    border-bottom-color: #c07a2a;
}

.gbc-map-standalone-wrapper .gbc-filter-group label {
    color: #64748b;
}

.gbc-map-standalone-wrapper .gbc-filter-group input[type="search"] {
    background: #fff;
    border: 1px solid #cbd5e1;
    color: #1e293b;
}

.gbc-map-standalone-wrapper .gbc-filter-group select {
    background: #fff;
    border: 1px solid #cbd5e1;
    color: #1e293b;
    transition: none !important;
}

.gbc-map-standalone-wrapper .gbc-filter-group select option {
    color: FieldText !important;
    background-color: revert !important;
}

.gbc-map-standalone-wrapper .gbc-checkbox-list {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.gbc-map-standalone-wrapper .gbc-checkbox-list label {
    color: #334155;
}

/* Leaflet Overrides (Extremely Premium Design) */
.leaflet-container {
    font-family: inherit !important;
}

/* Custom styled Popups */
.leaflet-popup-content-wrapper {
    background: rgba(24, 24, 28, 0.96) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #fff !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4) !important;
    padding: 0 !important;
    overflow: hidden;
}

.leaflet-popup-content {
    margin: 0 !important;
    width: 290px !important;
}

.leaflet-popup-tip {
    background: rgba(24, 24, 28, 0.96) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.gbc-map-popup-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.gbc-map-popup-img-link {
    display: block;
    position: relative;
    overflow: hidden;
    cursor: zoom-in;
}

.gbc-map-popup-img-link .gbc-map-popup-img {
    transition: transform 0.3s ease;
}

.gbc-map-popup-img-link:hover .gbc-map-popup-img {
    transform: scale(1.05);
}

.gbc-zoom-icon {
    position: absolute;
    bottom: 8px;
    right: 8px;
    background: rgba(0, 0, 0, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    opacity: 0.8;
    transition: opacity 0.2s, background 0.2s;
    pointer-events: none;
}

.gbc-map-popup-img-link:hover .gbc-zoom-icon {
    opacity: 1;
    background: #c07a2a;
}

.gbc-map-popup-img {
    height: 120px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.gbc-map-popup-info {
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gbc-map-popup-date {
    font-size: 1.15em;
    /* Increased for better visibility */
    font-weight: 700;
    color: #c07a2a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.gbc-map-popup-club {
    margin: 2px 0;
    font-size: 1.25em;
    font-weight: 600;
    line-height: 1.3;
    color: #fff;
}

.gbc-map-popup-adresse-block {
    margin-top: 6px;
    margin-bottom: 6px;
    border-left: 2px solid var(--gc-bleu-nuit);
    padding-left: 8px;
    font-size: 13px;
    text-align: left;
}

.gbc-map-popup-salle {
    font-weight: bold;
    color: #ffffff;
    line-height: 1.3;
}

.gbc-map-popup-rue {
    color: rgba(255, 255, 255, 0.65);
    margin-top: 2px;
}

.gbc-map-popup-lieu {
    font-size: 1.15em !important;
    /* Make city larger to stand out */
    color: #ffffff !important;
    font-weight: 700 !important;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    margin-bottom: 4px;
    text-align: left;
}

/* Buttons container for popup */
.gbc-map-popup-btns {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}

.gbc-map-popup-btn {
    background: #c07a2a;
    color: #fff !important;
    text-align: center;
    text-decoration: none !important;
    font-size: 0.8em;
    font-weight: 600;
    padding: 7px 10px;
    border-radius: 6px;
    transition: all 0.2s;
    border: none;
    cursor: pointer;
    display: block;
    width: 100%;
    box-sizing: border-box;
}

.gbc-map-popup-btn:hover {
    background: #a2641f;
    transform: translateY(-1px);
}

.gbc-map-popup-btn-secondary {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff !important;
}

.gbc-map-popup-btn-secondary:hover {
    background: rgba(255, 255, 255, 0.15);
}

.gbc-map-popup-btn-maps {
    background: #4285f4 !important;
    color: #fff !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.gbc-map-popup-btn-maps:hover {
    background: #2b75e2 !important;
}

.gbc-map-popup-btn-playlist {
    background: #009879 !important;
    color: #fff !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.gbc-map-popup-btn-playlist:hover {
    background: #008066 !important;
}


/* Luminescence highlight animation for standard rows (top and bottom horizontal glow) */
@keyframes gbcGlowPulse {
    0% {
        background-color: rgba(192, 122, 42, 0.06);
        box-shadow: inset 0 1px 0 rgba(192, 122, 42, 0.4), inset 0 -1px 0 rgba(192, 122, 42, 0.4);
    }

    30% {
        background-color: rgba(192, 122, 42, 0.18);
        box-shadow: inset 0 2px 0 rgba(192, 122, 42, 0.9), inset 0 -2px 0 rgba(192, 122, 42, 0.9);
    }

    100% {
        background-color: transparent;
        box-shadow: inset 0 0 0 rgba(192, 122, 42, 0), inset 0 0 0 rgba(192, 122, 42, 0);
    }
}

/* Luminescence highlight animation for rows with info details beneath (top horizontal glow only) */
@keyframes gbcGlowPulseTop {
    0% {
        background-color: rgba(192, 122, 42, 0.06);
        box-shadow: inset 0 1px 0 rgba(192, 122, 42, 0.4);
    }

    30% {
        background-color: rgba(192, 122, 42, 0.18);
        box-shadow: inset 0 2px 0 rgba(192, 122, 42, 0.9);
    }

    100% {
        background-color: transparent;
        box-shadow: inset 0 0 0 rgba(192, 122, 42, 0);
    }
}

/* Highlight main rows without details */
.gbc-main-row.gbc-row-highlight:not(.has-info-row) td {
    animation: gbcGlowPulse 2.5s cubic-bezier(0.25, 1, 0.5, 1) !important;
    position: relative;
    z-index: 5;
}

/* Highlight main rows with details (no bottom glowing line to avoid separating it from details card) */
.gbc-main-row.gbc-row-highlight.has-info-row td {
    animation: gbcGlowPulseTop 2.5s cubic-bezier(0.25, 1, 0.5, 1) !important;
    position: relative;
    z-index: 5;
}

/* Animation specifically for the info content wrapper (no background-color changes, just outer shadow glow and border-left color) */
/* Luminescence highlight animation for details rows (bottom horizontal glow only) */
@keyframes gbcGlowPulseBottom {
    0% {
        background-color: rgba(192, 122, 42, 0.06);
        box-shadow: inset 0 -1px 0 rgba(192, 122, 42, 0.4);
    }

    30% {
        background-color: rgba(192, 122, 42, 0.18);
        box-shadow: inset 0 -2px 0 rgba(192, 122, 42, 0.9);
    }

    100% {
        background-color: transparent;
        box-shadow: inset 0 0 0 rgba(192, 122, 42, 0);
    }
}

/* Highlight details rows cells (glowing bottom only) */
.tableau-bals-country tbody tr.gbc-info-row.gbc-row-highlight>td {
    animation: gbcGlowPulseBottom 2.5s cubic-bezier(0.25, 1, 0.5, 1) !important;
    position: relative;
    z-index: 5;
}

/* Ensure highlighted rows have a clean background base to prevent theme default overlays */
.tableau-bals-country tbody tr.gbc-row-highlight {
    background-color: var(--gbc-white) !important;
}

/* Zoom controls customization */
.leaflet-bar {
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    border-radius: 8px !important;
    overflow: hidden;
}

.leaflet-bar a {
    background-color: #212124 !important;
    color: #fff !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    transition: background 0.2s;
}

.leaflet-bar a:hover {
    background-color: #c07a2a !important;
}

.gbc-first-month-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 20px auto 2px auto;
    gap: 15px;
    clear: both;
}

.gbc-first-month-header>.gbc-month-title {
    flex: 1;
    text-align: left;
    margin: 0 !important;
}

.gbc-first-month-header>.gbc-btn-map-trigger {
    flex-shrink: 0;
    margin: 0 !important;
}

.gbc-first-month-header>.gbc-last-updated-text,
.gbc-first-month-header>.gbc-last-updated-spacer {
    flex: 1;
    text-align: right;
    margin: 0 !important;
}

/* Bouton Carte Interactive — Conforme Charte Graphique Gestion Site */
.gbc-btn-map-trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background-color: var(--gc-orange) !important;
    color: #ffffff !important;
    font-family: var(--gc-font-body) !important;
    font-weight: 700 !important;
    font-size: var(--gc-btn-font-size) !important;
    text-transform: var(--gc-btn-transform) !important;
    letter-spacing: 0.5px !important;
    line-height: 1 !important;
    height: var(--gc-btn-height) !important;
    min-height: var(--gc-btn-height) !important;
    padding: var(--gc-btn-padding) !important;
    border-radius: var(--gc-btn-radius) !important;
    border: none !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: background-color 0.15s ease, color 0.15s ease !important;
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    -webkit-font-smoothing: antialiased !important;
}

.gbc-btn-map-trigger .dashicons {
    font-size: 18px !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    line-height: 1 !important;
    color: inherit !important;
}

.gbc-btn-map-trigger:hover {
    background-color: var(--gc-accent-hover) !important;
    color: #ffffff !important;
    transform: none !important;
    box-shadow: none !important;
}

.gbc-btn-map-trigger:active {
    transform: none !important;
}

.gbc-last-updated-text {
    font-size: 0.95em;
    color: #fff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
    font-style: italic;
    display: inline-block;
    padding-top: 2px;
}

/* ==========================================================================
   RESPONSIVE DESIGN FOR SIDEBAR / MAP CANVAS
   ========================================================================== */
@media screen and (max-width: 768px) {
    .gbc-first-month-header {
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        margin: 15px auto 10px auto !important;
    }

    .gbc-first-month-header>.gbc-month-title {
        order: 3 !important;
        align-self: flex-start !important;
        text-align: left !important;
        width: 100% !important;
        margin-top: 15px !important;
    }

    .gbc-first-month-header>.gbc-btn-map-trigger {
        order: 1 !important;
        width: 100% !important;
        max-width: 280px !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .gbc-first-month-header>.gbc-last-updated-text,
    .gbc-first-month-header>.gbc-last-updated-spacer {
        order: 2 !important;
        text-align: center !important;
        width: 100% !important;
        margin: 0 !important;
    }

    /* Modal layout stacked */
    .gbc-modal-body,
    .gbc-map-standalone-wrapper .gbc-map-body {
        flex-direction: column !important;
    }

    .gbc-modal-overlay {
        height: 100vh !important;
        height: 100dvh !important;
    }

    .gbc-modal-box {
        width: 100%;
        height: 100vh;
        height: 100dvh;
        border-radius: 0;
        border: none;
        max-width: 100%;
    }

    /* Sidebar transforms to interactive header */
    .gbc-map-sidebar {
        width: 100% !important;
        height: auto !important;
        max-height: 250px !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        padding: 12px 16px !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }

    .gbc-map-standalone-wrapper .gbc-map-sidebar {
        border-bottom: 1px solid #cbd5e1 !important;
    }

    .gbc-map-sidebar h3 {
        grid-column: span 2;
        margin-bottom: 2px;
        font-size: 1.05em;
    }

    .gbc-map-sidebar .gbc-filter-group {
        gap: 4px;
    }

    .gbc-map-sidebar .gbc-filter-group:nth-of-type(4) {
        grid-column: span 2;
    }

    .gbc-checkbox-list {
        display: grid !important;
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)) !important;
        gap: 6px !important;
        padding: 8px 10px !important;
    }

    .gbc-checkbox-list label {
        font-size: 0.8em;
    }

    /* Canvas fills remaining height */
    .gbc-map-canvas-container {
        flex: 1;
        min-height: 250px;
    }
}

/* Custom Pin Marker Style */
.gbc-custom-pin-wrapper {
    position: relative;
}

.gbc-pin-marker {
    width: 30px;
    height: 30px;
    border-radius: 50% 50% 50% 0;
    background: #c07a2a;
    position: absolute;
    transform: rotate(-45deg);
    left: 50%;
    top: 50%;
    margin: -15px 0 0 -15px;
    border: 2px solid #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.gbc-pin-emoji {
    font-size: 13px;
    line-height: 1;
    transform: rotate(45deg);
    display: inline-block;
    pointer-events: none;
    user-select: none;
}

@keyframes gbcPinPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);
        transform: rotate(-45deg) scale(1);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);
        transform: rotate(-45deg) scale(1.15);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
        transform: rotate(-45deg) scale(1);
    }
}

.gbc-pin-marker:hover {
    animation: gbcPinPulse 1.5s infinite;
    z-index: 9999;
}

/* Leaflet Popup Scale Animation */
@keyframes gbcPopupScaleIn {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(10px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.leaflet-popup-content-wrapper {
    animation: gbcPopupScaleIn 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    transform-origin: bottom center;
}

/* Popup Improvements */
.gbc-popup-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.gbc-popup-time-badge {
    font-size: 0.7em;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.1;
    white-space: nowrap;
}

.gbc-popup-time-badge.future {
    background: rgba(16, 185, 129, 0.2);
    color: #10b981;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.gbc-popup-time-badge.past {
    background: rgba(156, 163, 175, 0.2);
    color: #9ca3af;
    border: 1px solid rgba(156, 163, 175, 0.3);
}

.gbc-map-popup-card.gbc-past-event {
    opacity: 0.75;
}

.gbc-popup-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 4px 0;
}

.gbc-popup-badge {
    font-size: 0.68em;
    padding: 1px 5px;
    border-radius: 4px;
    font-weight: 600;
    line-height: 1.3;
}

.gbc-popup-badge-bal {
    background: #e8f0fe;
    color: #1a56db;
}

.gbc-popup-badge-concert {
    background: #f3e8ff;
    color: #7c3aed;
}

.gbc-popup-badge-stage {
    background: #fff3e0;
    color: #c77b1a;
}

.gbc-popup-badge-festival {
    background: #fce4ec;
    color: #c62828;
}

.gbc-popup-badge-anniversaire {
    background: #fff8e1;
    color: #a67c00;
}

.gbc-map-popup-desc {
    font-size: 1.0em;
    color: rgba(255, 255, 255, 0.7);
    margin: 6px 0;
    line-height: 1.4;
    border-left: 2px solid #c07a2a;
    padding-left: 6px;
}

/* Type Pills Filter styling */
.gbc-type-pills-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    background: rgba(0, 0, 0, 0.2);
    padding: 8px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.gbc-type-pill {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.6);
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1;
}

.gbc-type-pill:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.gbc-type-pill.active {
    color: #fff;
    border-color: transparent;
}

.gbc-type-pill-bal.active {
    background: #1E88E5 !important;
    box-shadow: 0 2px 8px rgba(30, 136, 229, 0.35);
}

.gbc-type-pill-stage.active {
    background: #8E24AA !important;
    box-shadow: 0 2px 8px rgba(142, 36, 170, 0.35);
}

.gbc-type-pill-concert.active {
    background: #43A047 !important;
    box-shadow: 0 2px 8px rgba(67, 160, 71, 0.35);
}

.gbc-type-pill-festival.active {
    background: #E53935 !important;
    box-shadow: 0 2px 8px rgba(229, 57, 53, 0.35);
}

.gbc-type-pill-anniversaire.active {
    background: #AFB42B !important;
    box-shadow: 0 2px 8px rgba(175, 180, 43, 0.35);
}

/* Standalone Light Version Pill compatibility */
.gbc-map-standalone-wrapper .gbc-type-pills-list {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.gbc-map-standalone-wrapper .gbc-type-pill {
    background: #fff;
    border-color: #cbd5e1;
    color: #64748b;
}

.gbc-map-standalone-wrapper .gbc-type-pill:hover {
    background: #f8fafc;
    color: #1e293b;
}

.gbc-map-standalone-wrapper .gbc-type-pill.active {
    color: #fff;
}

/* Results Status Line */
.gbc-filter-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 10px;
}

.gbc-map-standalone-wrapper .gbc-filter-status {
    border-top-color: #cbd5e1;
}

.gbc-results-counter {
    font-size: 0.85em;
    font-weight: 700;
    color: #10b981;
}

@keyframes gbcCounterPulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.08);
        color: #34d399;
    }

    100% {
        transform: scale(1);
    }
}

.gbc-results-counter.gbc-pulse {
    animation: gbcCounterPulse 0.4s ease;
}

.gbc-reset-filters-btn {
    background: transparent;
    border: none;
    color: #ef4444;
    font-size: 0.8em;
    font-weight: 600;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: all 0.2s;
}

.gbc-reset-filters-btn:hover {
    background: rgba(239, 68, 68, 0.1);
}

/* List View component */
.gbc-map-list-section {
    display: flex;
    flex-direction: column;
    flex: 1;
    margin-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 12px;
    overflow: hidden;
}

.gbc-map-standalone-wrapper .gbc-map-list-section {
    border-top-color: #cbd5e1;
}

.gbc-map-list-section h4 {
    margin: 0 0 8px 0;
    font-size: 0.82em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
    letter-spacing: 0.05em;
}

.gbc-map-standalone-wrapper .gbc-map-list-section h4 {
    color: #64748b;
}

.gbc-map-list-container {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.gbc-map-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 8px 10px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.gbc-map-list-item:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
}

.gbc-map-standalone-wrapper .gbc-map-list-item {
    background: #fff;
    border-color: #cbd5e1;
}

.gbc-map-standalone-wrapper .gbc-map-list-item:hover {
    background: #f8fafc;
    border-color: #94a3b8;
}

.gbc-map-list-item-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 44px;
    border-radius: 6px;
    color: #fff;
    font-weight: 700;
    flex-shrink: 0;
    line-height: 1.1;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.gbc-badge-day {
    font-size: 0.9em;
}

.gbc-badge-month {
    font-size: 0.58em;
    text-transform: uppercase;
}

.gbc-badge-year {
    font-size: 0.55em;
    opacity: 0.85;
    margin-top: 1px;
}

.gbc-map-list-item-content {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    flex: 1;
    position: relative;
}

.gbc-map-list-item-emoji {
    position: absolute;
    top: 50%;
    right: 2px;
    transform: translateY(-50%);
    font-size: 14px;
}

.gbc-map-list-item-title {
    font-size: 0.85em;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 18px;
}

.gbc-map-standalone-wrapper .gbc-map-list-item-title {
    color: #1e293b;
}

.gbc-map-list-item-salle {
    font-weight: 600;
    color: #ffffff;
    font-size: 13px;
    line-height: 1.3;
    margin-top: 2px;
}

.gbc-map-list-item-rue {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.6);
    margin-top: 1px;
}

.gbc-map-list-item-lieu {
    font-size: 13px !important;
    /* Larger city text in list */
    font-weight: bold !important;
    color: #ffffff !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 2px;
}

.gbc-map-standalone-wrapper .gbc-map-list-item-salle {
    color: #111111 !important;
}

.gbc-map-standalone-wrapper .gbc-map-list-item-rue {
    color: #666666 !important;
}

.gbc-map-standalone-wrapper .gbc-map-list-item-lieu {
    color: #1d2327 !important;
}

.gbc-map-list-empty {
    font-size: 0.82em;
    text-align: center;
    color: rgba(255, 255, 255, 0.4);
    padding: 15px 0;
}

/* Collapsible Legend */
.gbc-map-legend {
    background: rgba(24, 24, 28, 0.95) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 8px !important;
    padding: 6px 10px !important;
    color: #fff !important;
    max-width: 210px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
    font-family: inherit !important;
}

.gbc-map-standalone-wrapper .gbc-map-legend {
    background: #fff !important;
    border-color: #cbd5e1 !important;
    color: #1e293b !important;
}

.gbc-legend-toggle-btn {
    background: transparent;
    border: none;
    color: #c07a2a;
    font-weight: 700;
    font-size: 0.9em;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 3px 0;
    outline: none;
}

.gbc-legend-content {
    margin-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 6px;
    transition: max-height 0.25s ease-out, opacity 0.25s ease-out;
    max-height: 450px;
    opacity: 1;
    overflow: hidden;
}

.gbc-map-standalone-wrapper .gbc-legend-content {
    border-top-color: #e2e8f0;
}

.gbc-legend-content.collapsed {
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.gbc-legend-content h5 {
    margin: 6px 0 4px 0;
    font-size: 0.85em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    letter-spacing: 0.05em;
    font-weight: 700;
}

.gbc-map-standalone-wrapper .gbc-legend-content h5 {
    color: #64748b;
}

.gbc-legend-months {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 4px;
    margin-bottom: 8px;
}

.gbc-legend-months span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    font-size: 1.3em;
    font-weight: 700;
    color: #fff;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.gbc-legend-types {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.gbc-legend-types li {
    font-size: 0.82em;
    display: flex;
    align-items: center;
    gap: 6px;
}

@media (min-width: 769px) {
    .gbc-legend-types li {
        font-size: 0.95em;
    }

    .gbc-legend-content h5 {
        font-size: 0.9em;
    }

    .gbc-legend-toggle-btn {
        font-size: 1.05em;
    }
}

.gbc-legend-types li span {
    font-size: 1.25em;
}

/* Sidebar Toggle button for mobile drawer style */
.gbc-sidebar-toggle-btn {
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    display: none;
    padding: 0;
    margin-left: auto;
}

.gbc-map-standalone-wrapper .gbc-sidebar-toggle-btn {
    color: #1e293b;
}

.gbc-sidebar-toggle-btn span {
    font-size: 20px !important;
    width: 20px !important;
    height: 20px !important;
    transition: transform 0.3s ease;
}

.gbc-map-sidebar.collapsed .gbc-sidebar-toggle-btn span {
    transform: rotate(180deg);
}

/* Mobile bottom sheet popup */
.gbc-mobile-bottom-sheet {
    position: absolute;
    bottom: 12px;
    left: 12px;
    right: 12px;
    width: calc(100% - 24px);
    max-height: 55%;
    overflow-y: auto;
    background: rgba(24, 24, 28, 0.98);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
    z-index: 1000;
    transform: translateY(calc(100% + 30px));
    transition: transform 0.3s cubic-bezier(0.1, 0.76, 0.55, 0.94);
    padding: 14px;
    box-sizing: border-box;
}

.gbc-mobile-sheet-drag-handle {
    width: 40px;
    height: 4px;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 2px;
    margin: -4px auto 12px auto;
    cursor: grab;
}

.gbc-map-standalone-wrapper .gbc-mobile-sheet-drag-handle {
    background: rgba(0, 0, 0, 0.15);
}

.gbc-map-standalone-wrapper .gbc-mobile-bottom-sheet {
    background: #fff;
    border: 1px solid #cbd5e1;
}

.gbc-map-standalone-wrapper .gbc-mobile-bottom-sheet .gbc-map-popup-salle {
    color: #222222;
}

.gbc-map-standalone-wrapper .gbc-mobile-bottom-sheet .gbc-map-popup-rue {
    color: #555555;
}

.gbc-map-standalone-wrapper .gbc-mobile-bottom-sheet .gbc-map-popup-lieu {
    color: #1d2327 !important;
}

.gbc-mobile-bottom-sheet.gbc-active {
    transform: translateY(0);
}

.gbc-mobile-sheet-close {
    position: absolute;
    top: 10px;
    right: 12px;
    background: rgba(0, 0, 0, 0.3);
    border: none;
    color: #fff;
    font-size: 22px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1001;
}

.gbc-map-standalone-wrapper .gbc-mobile-sheet-close {
    background: #f1f5f9;
    color: #475569;
}

.gbc-mobile-sheet-content {
    width: 100%;
}

.gbc-mobile-sheet-content .gbc-map-popup-card {
    opacity: 1 !important;
}

.gbc-mobile-sheet-content .gbc-map-popup-img {
    height: 100px;
    border-radius: 8px;
}

.gbc-mobile-sheet-content .gbc-map-popup-info {
    padding: 10px 0 0 0;
}

/* Responsive updates for mobile layouts */
@media screen and (max-width: 768px) {
    .gbc-sidebar-toggle-btn {
        display: inline-block !important;
    }

    .gbc-map-sidebar {
        width: 100% !important;
        height: auto !important;
        max-height: 300px !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        padding: 8px 12px !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        overflow-y: auto !important;
        transition: max-height 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .gbc-map-sidebar.collapsed {
        max-height: 48px !important;
        overflow: hidden !important;
        padding-bottom: 10px !important;
    }

    .gbc-map-sidebar.collapsed>*:not(h3) {
        display: none !important;
    }

    .gbc-map-sidebar h3 {
        display: flex !important;
        align-items: center;
        width: 100%;
        margin: 0 !important;
        padding-bottom: 0 !important;
        border-bottom: none !important;
        font-size: 0.95em;
        cursor: pointer;
    }

    .gbc-map-sidebar .gbc-filter-group {
        gap: 3px;
    }

    .gbc-map-sidebar .gbc-filter-group label {
        font-size: 0.7em;
        margin: 0;
    }

    .gbc-map-sidebar .gbc-filter-group input[type="search"],
    .gbc-map-sidebar .gbc-filter-group select {
        padding: 6px 10px !important;
        font-size: 0.85em !important;
        border-radius: 6px;
    }

    .gbc-map-sidebar .gbc-type-pills-list {
        gap: 4px !important;
    }

    .gbc-map-sidebar .gbc-type-pill {
        padding: 4px 8px !important;
        font-size: 0.78em !important;
    }

    .gbc-map-list-section {
        max-height: 120px !important;
    }

    .gbc-map-list-container {
        max-height: 100px !important;
    }

    .gbc-map-canvas-container {
        flex: 1 !important;
        min-height: 200px;
    }

    /* Make Leaflet controls fit nice */
    .leaflet-bottom {
        bottom: 15px !important;
    }

    .leaflet-right {
        right: 10px !important;
    }
}

/* --- Styles pour l'affichage de l'adresse et de la salle dans la colonne Ville --- */
.gbc-table-ville-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
    padding: 6px 12px;
}

#gbc-bals-container .tableau-bals-country td.col-ville .gbc-table-ville-wrapper {
    align-items: center;
    justify-content: center;
    text-align: center;
}

.gbc-table-salle {
    font-weight: bold;
    color: #1d2327;
    font-size: 1.05em;
    line-height: 1.25;
    margin-bottom: 3px;
}

.gbc-table-rue {
    font-size: 11px;
    color: #646970;
    margin-bottom: 2px;
    line-height: 1.2;
}

.gbc-table-ville {
    font-size: 1.1em;
    font-weight: bold;
    color: #1d2327;
    margin-top: 4px;
    line-height: 1.25;
}

/* Alignement en responsive mobile */
@media screen and (max-width: 768px) {
    #gbc-bals-container .tableau-bals-country td.col-ville {
        height: auto !important;
        min-height: 48px;
    }

    #gbc-bals-container .tableau-bals-country td.col-ville .gbc-table-ville-wrapper {
        align-items: flex-end !important;
        text-align: right !important;
        padding: 4px 0;
    }
}

/* --- Correctif d'affichage de la surbrillance (highlight) sur mobile --- */
@media screen and (max-width: 768px) {

    /* 1. DÃ©sactiver les animations et ombres de surbrillance sur les cellules individuelles (td) sur mobile */
    .gbc-main-row.gbc-row-highlight td,
    .tableau-bals-country tbody tr.gbc-row-highlight td,
    .tableau-bals-country tbody tr.gbc-info-row.gbc-row-highlight>td {
        animation: none !important;
        box-shadow: none !important;
        background-color: transparent !important;
    }

    /* 2. Appliquer l'animation de surbrillance sur le conteneur TR entier (la ligne complÃ¨te) */
    .tableau-bals-country tbody tr.gbc-row-highlight {
        animation: gbcGlowPulseMobile 2.5s cubic-bezier(0.25, 1, 0.5, 1) !important;
        position: relative;
        z-index: 100 !important;
    }

    /* 3. Ajustements de la lÃ©gende sur mobile pour la garder compacte */
    .gbc-legend-toggle-btn {
        font-size: 0.8em !important;
    }

    .gbc-legend-content h5 {
        font-size: 0.75em !important;
    }

    .gbc-legend-months {
        gap: 3px !important;
        margin-bottom: 6px !important;
    }

    .gbc-legend-months span {
        width: 20px !important;
        height: 20px !important;
        font-size: 0.65em !important;
    }

    .gbc-legend-types {
        gap: 3px !important;
    }

    .gbc-legend-types li {
        font-size: 0.72em !important;
    }

    .gbc-legend-types li span {
        font-size: 1.1em !important;
    }
}

/* 3. Animation spÃ©cifique de surbrillance pour le TR complet sur mobile */
@keyframes gbcGlowPulseMobile {
    0% {
        box-shadow: 0 0 0 2px rgba(192, 122, 42, 0.4);
        background-color: rgba(192, 122, 42, 0.05);
    }

    30% {
        box-shadow: 0 0 0 4px rgba(192, 122, 42, 0.8), 0 4px 15px rgba(192, 122, 42, 0.3);
        background-color: rgba(192, 122, 42, 0.12);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(192, 122, 42, 0);
        background-color: transparent;
    }
}

/* --- Styles pour les info-bulles (tooltips) de la carte au survol --- */
.gbc-map-tooltip {
    background-color: rgba(33, 37, 41, 0.95) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 6px !important;
    color: #ffffff !important;
    font-family: var(--gc-font-body) !important;
    font-size: 0.85em !important;
    font-weight: 600 !important;
    padding: 5px 9px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    white-space: nowrap;
}

/* Personnalisation de la flÃ¨che du tooltip */
.leaflet-tooltip-top.gbc-map-tooltip::before {
    border-top-color: rgba(33, 37, 41, 0.95) !important;
}

/* --- Bouton d'action flottant (FAB) pour ouvrir la carte interactive --- */
.gbc-floating-map-btn {
    position: fixed;
    bottom: 30px;
    left: 30px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: linear-gradient(135deg, #c07a2a 0%, #a25c14 100%);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.35);
    cursor: pointer;
    z-index: 999999 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: scale(0.7) translateY(20px);
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    outline: none;
}

.gbc-floating-map-btn.gbc-visible {
    opacity: 1;
    transform: scale(1) translateY(0);
    pointer-events: auto;
}

.gbc-floating-map-btn:hover {
    background: linear-gradient(135deg, #d88e3c 0%, #b86e1e 100%);
    transform: scale(1.08) translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
}

.gbc-floating-map-btn .dashicons {
    font-size: 26px;
    width: 26px;
    height: 26px;
    line-height: 26px;
    color: #ffffff !important;
}

@media screen and (max-width: 768px) {
    .gbc-floating-map-btn {
        bottom: 20px;
        left: 20px;
        width: 48px;
        height: 48px;
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
    }

    .gbc-floating-map-btn .dashicons {
        font-size: 22px;
        width: 22px;
        height: 22px;
        line-height: 22px;
    }
}

/* --- Styles pour l'Itinéraire et la Localité --- */
.gbc-itineraire-link {
    display: inline-block;
    text-decoration: none !important;
    color: inherit !important;
    transition: background-color 0.2s;
    padding: 5px 8px;
    border-radius: 6px;
    transform: none !important;
}

.gbc-itineraire-link:hover {
    background-color: rgba(0, 0, 0, 0.06);
    text-decoration: none !important;
    transform: none !important;
}

.gbc-itineraire-action {
    font-size: 11px;
    margin-top: 6px;
    color: #666;
    background-color: #f0f0f0;
    padding: 3px 10px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    gap: 4px;
    font-weight: normal;
    transition: background-color 0.2s;
}

.gbc-itineraire-link:hover .gbc-itineraire-action {
    background-color: #e0e0e0;
}

.gbc-itineraire-action .dashicons {
    font-size: 13px;
    width: 13px;
    height: 13px;
    color: #666;
}

.gbc-no-address-text {
    color: #777;
    font-style: italic;
    font-size: 0.9em;
}

.gbc-localite-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.gbc-localite-pin {
    font-size: 1.1em;
    margin-bottom: -2px;
}

.gbc-localite-ville {
    font-weight: bold;
    font-size: 1.1em;
}

.gbc-table-cp-link,
.gbc-calendar-popup-link {
    display: inline-block;
    text-decoration: none !important;
    border: none !important;
    box-shadow: none !important;
    color: inherit !important;
    outline: none !important;
    background: transparent !important;
    background-color: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
}

.gbc-table-cp-link:hover,
.gbc-calendar-popup-link:hover {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--gc-bleu-nuit) !important;
    text-decoration: none !important;
    transform: none !important;
}

@media screen and (max-width: 768px) {
    .gbc-localite-content {
        flex-direction: row;
        gap: 6px;
    }

    .gbc-itineraire-action {
        justify-content: flex-end;
    }

    .gbc-itineraire-link {
        text-align: right;
    }
}


/* ==========================================================================
   MODULE AGENDA DES BALS — NOUVELLE V4 DÉGRAISSÉE ET ULTRA-OPTIMISÉE
   Conforme à 100% aux maquettes officielles (Vue Grille & Vue Billet)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. SÉLECTEUR DE VUE (GRILLE / BILLET) & EN-TÊTE DE MOIS
   -------------------------------------------------------------------------- */
.gbc-top-actions {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 15px !important;
    width: 100% !important;
}

.gbc-top-actions-view {
    flex: 1 1 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}

.gbc-top-actions-map {
    flex: 1 1 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.gbc-top-actions-date {
    flex: 1 1 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    text-align: right !important;
}

.gbc-view-switcher {
    display: inline-flex !important;
    width: fit-content !important;
    max-width: fit-content !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    gap: 4px !important;
    background: #FFFFFF !important;
    padding: 3px !important;
    border-radius: 6px !important;
    border: 1px solid var(--gc-border) !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04) !important;
}

.gbc-view-btn {
    height: 34px !important;
    padding: 0 14px !important;
    border-radius: 4px !important;
    border: none !important;
    background: transparent !important;
    color: var(--gc-texte, #1F2937) !important;
    font-family: var(--gc-font-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: all 0.2s ease !important;
}

.gbc-view-btn .dashicons {
    font-size: 16px !important;
    width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
}

.gbc-view-btn:hover:not(.active) {
    background: rgba(186, 116, 64, 0.1) !important;
    color: var(--gc-camel) !important;
}

.gbc-view-btn.active {
    background: var(--gc-bleu-nuit) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 6px rgba(0, 52, 72, 0.2) !important;
}

.gbc-month-header {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-top: 32px !important;
    margin-bottom: 16px !important;
    width: 100% !important;
}

.gbc-month-title {
    font-family: var(--gc-font-western) !important;
    color: var(--gc-bleu-nuit) !important;
    font-size: 24px !important;
    margin: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    white-space: nowrap !important;
    line-height: 1.1 !important;
}

.gbc-month-line {
    flex: 1 !important;
    height: 1px !important;
    background: #CBD5E1 !important;
}

.gbc-month-count {
    font-family: var(--gc-font-body) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--gc-camel) !important;
    background: rgba(186, 116, 64, 0.08) !important;
    border: 1px solid rgba(186, 116, 64, 0.3) !important;
    padding: 4px 12px !important;
    border-radius: 20px !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

/* Neutralisation du conteneur parent (table/list) */
.tableau-bals-country-container .tableau-bals-country,
.tableau-bals-country.gbc-list {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gbc-main-row.gbc-item {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
    display: block !important;
    width: 100% !important;
}

.gbc-main-row.gbc-item td {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    display: block !important;
    width: 100% !important;
}

/* --------------------------------------------------------------------------
   2. COMPOSANTS PARTAGÉS (DATE, BADGES, HORAIRES, LIEU, DESCRIPTION, BOUTONS)
   -------------------------------------------------------------------------- */

/* Bloc Date */
.gbc-date-block {
    background-color: var(--gc-bleu-nuit) !important;
    color: #FFFFFF !important;
    border-radius: 6px !important;
    padding: 6px 4px !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

.gbc-date-block .day-num {
    font-family: var(--gc-font-western) !important;
    line-height: 1 !important;
    color: #FFFFFF !important;
    margin: 2px 0 !important;
}

.gbc-date-block .day-name-small,
.gbc-date-block .month-tag {
    font-family: var(--gc-font-body) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    color: #FFFFFF !important;
}

.gbc-date-block .day-connector {
    font-size: 11px !important;
    color: #E2E8F0 !important;
    margin: 1px 0 !important;
}

/* Badges Catégories */
.gbc-card-badges {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
}

.gbc-card-badge {
    font-family: var(--gc-font-body) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 3px 8px !important;
    border: 1px solid #CBD5E1 !important;
    background: #FFFFFF !important;
    color: var(--gc-bleu-nuit) !important;
    border-radius: 4px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

.gbc-card-badge-bal {
    color: var(--gc-camel) !important;
    border-color: var(--gc-camel) !important;
    background-color: color-mix(in srgb, var(--gc-camel) 8%, transparent) !important;
}

.gbc-card-badge-festival {
    color: var(--gc-bleu-nuit) !important;
    border-color: var(--gc-bleu-nuit) !important;
    background-color: color-mix(in srgb, var(--gc-bleu-nuit) 8%, transparent) !important;
}

.gbc-card-badge-stage {
    color: var(--gc-bleu) !important;
    border-color: var(--gc-bleu) !important;
    background-color: color-mix(in srgb, var(--gc-bleu) 8%, transparent) !important;
}

.gbc-card-badge-concert {
    color: var(--gc-texte) !important;
    border-color: var(--gc-texte) !important;
    background-color: color-mix(in srgb, var(--gc-texte) 8%, transparent) !important;
}

/* Métas (Horaires et Lieu avec icônes orange) */
.gbc-meta-group {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    font-size: 12px !important;
    color: #4B5563 !important;
    min-width: 0 !important;
}

.gbc-meta-row {
    display: flex !important;
    align-items: flex-start !important;
    gap: 6px !important;
    line-height: 1.35 !important;
}

.gbc-meta-icon {
    color: var(--gc-camel) !important;
    font-size: 15px !important;
    width: 15px !important;
    height: 15px !important;
    line-height: 15px !important;
    flex-shrink: 0 !important;
    margin-top: 1px !important;
}

.gbc-meta-content {
    flex: 1 !important;
    min-width: 0 !important;
}

.gbc-schedule-line {
    display: block !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    color: var(--gc-texte) !important;
}

.gbc-gps-link {
    color: var(--gc-texte) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    transition: color 0.15s ease !important;
}

.gbc-gps-link:hover {
    color: var(--gc-camel) !important;
    text-decoration: underline !important;
}

/* Lien localité / ville cliquable → carte interactive */
a.gbc-meta-localite.gbc-table-cp-link {
    cursor: pointer !important;
    text-decoration: none !important;
    color: var(--gc-texte) !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    transition: color 0.15s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
}

a.gbc-meta-localite.gbc-table-cp-link:hover {
    color: var(--gc-bleu) !important;
    text-decoration: underline !important;
}

.gbc-meta-salle {
    display: inline-block !important;
    font-weight: bold !important;
    color: var(--gc-texte) !important;
    font-size: 13.5px !important;
}

.gbc-meta-localite {
    display: inline-block !important;
    color: var(--gc-texte) !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
}

/* Encart Description léger */
.gbc-desc-box {
    background: var(--gc-beige) !important;
    border: 1px solid color-mix(in srgb, var(--gc-camel) 20%, transparent) !important;
    border-left: 3px solid var(--gc-camel) !important;
    border-radius: 4px !important;
    padding: 7px 10px !important;
    box-sizing: border-box !important;
}

.gbc-desc-text {
    font-size: 12px !important;
    color: #475569 !important;
    font-style: normal !important;
    line-height: 1.4 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.gbc-desc-text .gbc-desc-content {
    display: inline !important;
}


/* Boutons d'Action Communs */
.gbc-actions-block {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    box-sizing: border-box !important;
}

.gbc-btn-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    font-family: var(--gc-font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: var(--gc-btn-transform) !important;
    letter-spacing: 0.5px !important;
    padding: 8px 12px !important;
    border-radius: var(--gc-btn-radius) !important;
    border: 1.5px solid transparent !important;
    color: #FFFFFF !important;
    cursor: pointer !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08) !important;
    line-height: 1 !important;
    max-width: none !important;
}

.gbc-btn-action:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15) !important;
    color: #FFFFFF !important;
}

.gbc-btn-action:active {
    transform: scale(0.98) !important;
}

.gbc-btn-disabled {
    background-color: #E2E8F0 !important;
    color: #94A3B8 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    pointer-events: none !important;
}

/* Slider de Playlists & Flèches de navigation */
.gbc-card-playlists-col {
    position: relative !important;
}

.gbc-playlists-col-title,
.gbc-playlists-label {
    display: none !important;
}

/* Slider de Playlists & Flèches de navigation */
.gbc-card-playlists-col {
    position: relative !important;
}

.gbc-playlists-col-title,
.gbc-playlists-label {
    display: none !important;
}

.gbc-playlists-slider-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
}

/* Flèches de navigation : Z-INDEX TRÈS ÉLEVÉ, cliquables sans conflit */
.gbc-slider-nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    background: var(--gc-bleu-nuit) !important;
    color: #FFFFFF !important;
    border: 1.5px solid #FFFFFF !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 9999 !important;
    /* Toujours au-dessus des images */
    pointer-events: auto !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.45) !important;
    padding: 0 !important;
    transition: all 0.2s ease !important;
}

.gbc-slider-prev {
    left: 0px !important;
}

.gbc-slider-next {
    right: 0px !important;
}

.gbc-slider-nav:hover {
    background: var(--gc-camel) !important;
    transform: translateY(-50%) scale(1.12) !important;
}

.gbc-slider-nav .dashicons {
    font-size: 16px !important;
    width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
    color: #FFFFFF !important;
    pointer-events: none !important;
}

.multiple-previews-container {
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    align-items: center !important;
    justify-content: center !important;
    /* Centré horizontalement par défaut */
    width: 100% !important;
}

/* Défilement horizontal fluide sans barre de défilement visible */
.is-slider .multiple-previews-container {
    justify-content: flex-start !important;
    /* Permet le défilement horizontal fluide sans rogner le 1er élément */
    overflow-x: auto !important;
    scroll-behavior: smooth !important;
    padding: 4px 30px !important;
    scrollbar-width: none !important;
    /* Firefox */
    -ms-overflow-style: none !important;
    /* IE 10+ / Edge */
}

/* Suppression complète et stricte de la barre de défilement native */
.is-slider .multiple-previews-container::-webkit-scrollbar,
.gbc-playlists-slider-wrapper .multiple-previews-container::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

.preview-with-download-wrapper {
    flex: 0 0 auto !important;
    position: relative !important;
}

.preview-link img.apercu-affiche {
    height: 95px !important;
    width: auto !important;
    border-radius: 4px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
    display: block !important;
}

/* Cacher définitivement la loupe zoom */
.gbc-poster-zoom-overlay {
    display: none !important;
}

/* Date multi-jours sur une seule ligne avec mois en dessous */
.day-multi-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 4px !important;
    white-space: nowrap !important;
    width: 100% !important;
}

.day-multi-row .day-num {
    font-family: var(--gc-font-western) !important;
    font-size: 23px !important;
    line-height: 1 !important;
    margin: 0 !important;
    color: #FFFFFF !important;
}

.day-multi-row .day-connector {
    font-family: var(--gc-font-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    margin: 0 !important;
    color: #CBD5E1 !important;
}

/* --------------------------------------------------------------------------
   3. VUE BILLET (TICKET MODE - PAR DÉFAUT) — CONFORME MAQUETTE
   -------------------------------------------------------------------------- */
.gbc-view-mode-ticket .tableau-bals-country-container .tableau-bals-country,
.gbc-view-mode-ticket .tableau-bals-country.gbc-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.gbc-view-mode-ticket .gbc-main-row.gbc-item {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}

.gbc-view-mode-ticket .gbc-event-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    background: #FFFFFF !important;
    border: 1px solid #E2E8F0 !important;
    border-left: 5px solid var(--gc-camel) !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04), 0 3px 8px rgba(0, 0, 0, 0.04) !important;
    /* Ombre douce et équilibrée */
    padding: 6px 14px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 165px !important;
    gap: 14px !important;
}

/* Billet 1 : Cartouche Date (Centré verticalement, format compact élégant) */
.gbc-view-mode-ticket .gbc-date-block {
    width: 72px !important;
    min-width: 72px !important;
    align-self: center !important;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    background: transparent !important;
}

.gbc-view-mode-ticket .gbc-card-date {
    width: 100% !important;
    height: 80px !important;
    min-height: 80px !important;
    max-height: 80px !important;
    background-color: var(--gc-bleu-nuit) !important;
    color: #FFFFFF !important;
    border-radius: 6px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    gap: 2px !important;
}

.gbc-view-mode-ticket .gbc-card-date.is-single-day .day-num {
    font-size: 28px !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.gbc-view-mode-ticket .gbc-card-date.is-single-day .day-name-small {
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.gbc-view-mode-ticket .gbc-card-date .month-tag {
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    margin: 0 !important;
}

/* Billet 2 : Affiche (Pleine hauteur de la carte, max grand sans rognage) */
.gbc-view-mode-ticket .gbc-poster-block {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 85px !important;
    max-width: 125px !important;
    align-self: center !important;
    /* Centré verticalement dans toute la carte */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: auto 0 !important;
}

.gbc-view-mode-ticket .gbc-card-poster {
    width: auto !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.gbc-view-mode-ticket .gbc-poster-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    width: 100% !important;
}

.gbc-view-mode-ticket .gbc-card-poster img {
    height: 155px !important;
    /* Hauteur max augmentée, collant haut et bas */
    max-height: 155px !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    display: block !important;
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12) !important;
}

/* Placeholder moderne "Affiche à venir" (identique à l'esprit Playlists) */
.gbc-no-poster-placeholder {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    box-sizing: border-box !important;
    border: 1px dashed #CBD5E1 !important;
    border-radius: 4px !important;
    background: #F8FAFC !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    color: #94A3B8 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-align: center !important;
    padding: 8px 4px !important;
    gap: 4px !important;
    user-select: none !important;
}

.gbc-no-poster-placeholder .dashicons {
    font-size: 24px !important;
    width: 24px !important;
    height: 24px !important;
    color: #CBD5E1 !important;
    line-height: 1 !important;
}

.gbc-no-poster-text {
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    color: #94A3B8 !important;
}

.gbc-view-mode-ticket .gbc-card-poster .gbc-no-poster-placeholder {
    width: 95px !important;
    height: 155px !important;
}

.gbc-view-mode-grid .gbc-card-poster .gbc-no-poster-placeholder {
    width: 100% !important;
    height: 135px !important;
}

/* Billet 3 : Bloc Central (Titre + Badges en haut, Encart Description en dessous) */
.gbc-view-mode-ticket .gbc-ticket-main-col {
    flex: 1 1 auto !important;
    min-width: 240px !important;
    max-width: none !important;
    /* Prend toute la largeur disponible ! */
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 6px !important;
}

.gbc-view-mode-ticket .gbc-ticket-header {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.gbc-view-mode-ticket .gbc-ticket-title {
    font-family: var(--gc-font-western) !important;
    color: var(--gc-bleu-nuit) !important;
    font-size: 21px !important;
    font-weight: bold !important;
    margin: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1.15 !important;
}

.gbc-view-mode-ticket .gbc-ticket-badges {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.gbc-view-mode-ticket .gbc-card-badge {
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 2px 7px !important;
    border: 1px solid #CBD5E1 !important;
    border-radius: 4px !important;
    background: #FFFFFF !important;
    color: #475569 !important;
    line-height: 1.2 !important;
}

.gbc-view-mode-ticket .gbc-desc-box {
    width: 100% !important;
    flex: 1 !important;
    max-height: 85px !important;
    background: var(--gc-beige) !important;
    border: 1px solid color-mix(in srgb, var(--gc-camel) 25%, transparent) !important;
    border-left: 3px solid var(--gc-camel) !important;
    border-radius: 4px !important;
    padding: 8px 14px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
}

.gbc-view-mode-ticket .gbc-desc-text {
    font-size: 13px !important;
    color: #334155 !important;
    font-style: normal !important;
    line-height: 1.45 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Séparateurs pointillés Billet */
.gbc-view-mode-ticket .gbc-divider-ticket,
.gbc-view-mode-ticket .gbc-divider-ticket-2,
.gbc-view-mode-ticket .gbc-divider-ticket-3 {
    display: block !important;
    width: 0 !important;
    align-self: stretch !important;
    height: auto !important;
    border-left: 1.5px dotted var(--gc-camel) !important;
    flex-shrink: 0 !important;
    margin: 0 4px !important;
    min-height: 80px !important;
}

/* Billet 4 : Playlists (Pleine hauteur) */
.gbc-view-mode-ticket .gbc-card-playlists-col.has-playlists {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 280px !important;
    align-self: stretch !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 5px !important;
    /* Espace pour les flèches écartées vers l'extérieur */
}

.gbc-view-mode-ticket .gbc-card-playlists-col.is-empty-playlists {
    display: none !important;
}

.gbc-view-mode-ticket .gbc-playlists-slider-wrapper {
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    position: relative !important;
}

.gbc-view-mode-ticket .multiple-previews-container {
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.gbc-view-mode-ticket .multiple-previews-container::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

.gbc-view-mode-ticket .gbc-playlists-slider-wrapper.is-slider .multiple-previews-container {
    padding: 0 18px !important;
    /* Dégage les images pour ne pas être masquées par les boutons */
}

/* Écarter les flèches en vue Ligne vers l'extérieur pour ne JAMAIS masquer les playlists */
.gbc-view-mode-ticket .gbc-slider-prev {
    left: -14px !important;
}

.gbc-view-mode-ticket .gbc-slider-next {
    right: -14px !important;
}

.gbc-view-mode-ticket .preview-link img.apercu-affiche {
    height: 155px !important;
    max-height: 155px !important;
    width: auto !important;
    object-fit: contain !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12) !important;
}

/* Billet 5 : Métas (Horaires, Salle et Ville répartis généreusement sur toute la hauteur) */
.gbc-view-mode-ticket .gbc-metas-block {
    flex: 0 0 230px !important;
    width: 230px !important;
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 100% !important;
    box-sizing: border-box !important;
    padding: 0 !important;
}

.gbc-view-mode-ticket .gbc-metas-block .gbc-grid-badges {
    display: none !important;
}

.gbc-view-mode-ticket .gbc-meta-group {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-around !important;
    /* Répartition pleine hauteur sans écrasement */
    align-items: stretch !important;
    height: 100% !important;
    min-height: 145px !important;
    padding: 4px 0 !important;
    box-sizing: border-box !important;
    gap: 8px !important;
}

.gbc-view-mode-ticket .gbc-meta-row {
    font-size: 14px !important;
    line-height: 1.4 !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    color: #334155 !important;
}

.gbc-view-mode-ticket .gbc-meta-icon {
    font-size: 18px !important;
    width: 18px !important;
    height: 18px !important;
    color: var(--gc-camel) !important;
    margin-top: 1px !important;
    flex-shrink: 0 !important;
}

.gbc-view-mode-ticket .gbc-schedule-line,
.gbc-view-mode-ticket .gbc-meta-localite,
.gbc-view-mode-ticket a.gbc-meta-localite.gbc-table-cp-link {
    font-size: 13.5px !important;
    font-weight: 500 !important;
    color: var(--gc-texte) !important;
    line-height: 1.35 !important;
}

.gbc-view-mode-ticket .gbc-meta-salle {
    font-size: 13.5px !important;
    font-weight: bold !important;
    color: var(--gc-texte) !important;
    line-height: 1.35 !important;
}

/* Billet 6 : Boutons d'actions ancrés TOUT À DROITE */
.gbc-view-mode-ticket .gbc-actions-block {
    flex: 0 0 200px !important;
    width: 200px !important;
    align-self: center !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin-left: auto !important;
    /* Calé tout à droite de la carte pleine largeur */
}

.gbc-actions-block .gbc-btn-action {
    height: var(--gc-btn-height) !important;
    min-height: var(--gc-btn-height) !important;
    max-height: var(--gc-btn-height) !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: var(--gc-btn-padding) !important;
    font-size: var(--gc-btn-font-size) !important;
    font-weight: 700 !important;
    text-transform: var(--gc-btn-transform) !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--gc-btn-radius) !important;
    line-height: 1 !important;
}

/* Couleurs des boutons basées sur les variables du plugin gc-gestion-site */
.gbc-btn-agenda-ticket {
    background: transparent !important;
    color: var(--gc-orange, var(--gc-camel)) !important;
    border: 1.5px solid var(--gc-orange, var(--gc-camel)) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04) !important;
}

.gbc-btn-agenda-ticket .dashicons {
    color: var(--gc-orange, var(--gc-camel)) !important;
}

.gbc-btn-agenda-ticket:hover {
    background: var(--gc-orange, var(--gc-camel)) !important;
    border-color: var(--gc-orange, var(--gc-camel)) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
}

.gbc-btn-agenda-ticket:hover .dashicons {
    color: var(--gc-blanc, #FFFFFF) !important;
}

/* Slot Réservation / Inscription (divisé en 2 si les 2 existent, sinon pleine largeur) */
.gbc-reservation-slot {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.gbc-reservation-slot.gbc-slot-split {
    display: flex !important;
    flex-direction: row !important;
    gap: 6px !important;
    overflow: visible !important;
}

.gbc-reservation-slot.gbc-slot-split .gbc-btn-action {
    flex: 1 1 0 !important;
    width: calc(50% - 3px) !important;
    min-width: 0 !important;
    padding: var(--gc-btn-split-padding) !important;
    font-size: var(--gc-btn-split-font-size) !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px !important;
    border-radius: var(--gc-btn-radius) !important;
    text-align: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
    /* CRUCIAL : Ne pas masquer le tooltip au survol */
    position: relative !important;
}

.gbc-reservation-slot:not(.gbc-slot-split) .gbc-btn-action {
    width: 100% !important;
    flex: 1 1 auto !important;
    overflow: visible !important;
    position: relative !important;
}

/* Boutons Réserver & Inscription (Tertiaire : Camel / Orange de la charte) */
.gbc-btn-reservation,
.gbc-btn-inscription {
    background-color: var(--gc-orange, var(--gc-camel)) !important;
    border: 1.5px solid var(--gc-orange, var(--gc-camel)) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
}

.gbc-btn-reservation:hover,
.gbc-btn-inscription:hover {
    background-color: var(--gc-accent-hover, var(--gc-camel-hover, #9F6437)) !important;
    border-color: var(--gc-accent-hover, var(--gc-camel-hover, #9F6437)) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
}

/* Bouton Playlists (Secondaire : Bleu de la charte) */
.gbc-btn-playlists {
    background-color: var(--gc-bleu) !important;
    border: 1.5px solid var(--gc-bleu) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
}

.gbc-btn-playlists:hover {
    background-color: var(--gc-bleu-hover, #236366) !important;
    border-color: var(--gc-bleu-hover, #236366) !important;
}

/* Bouton Site Web (Principal : Bleu Azur de la charte) */
.gbc-btn-siteweb {
    background-color: var(--gc-bleu-nuit) !important;
    border: 1.5px solid var(--gc-bleu-nuit) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
}

.gbc-btn-siteweb:hover {
    background-color: var(--gc-orange, var(--gc-camel)) !important;
    border-color: var(--gc-orange, var(--gc-camel)) !important;
    color: var(--gc-blanc, #FFFFFF) !important;
}

/* =========================================================================
   BOUTONS DÉSACTIVÉS (GRISÉS) - PRIORITÉ ABSOLUE SUR TOUTES LES COULEURS
   ========================================================================= */
.gbc-btn-action.gbc-btn-disabled,
.gbc-btn-action[disabled],
button.gbc-btn-action:disabled,
a.gbc-btn-action.gbc-btn-disabled,
.gbc-btn-reservation.gbc-btn-disabled,
.gbc-btn-playlists.gbc-btn-disabled,
.gbc-btn-siteweb.gbc-btn-disabled {
    background: #E2E8F0 !important;
    background-color: #E2E8F0 !important;
    border: 1.5px solid #CBD5E1 !important;
    border-color: #CBD5E1 !important;
    color: #94A3B8 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    opacity: 0.65 !important;
    transform: none !important;
    pointer-events: none !important;
}

.gbc-btn-action.gbc-btn-disabled:hover,
.gbc-btn-action[disabled]:hover,
button.gbc-btn-action:disabled:hover,
a.gbc-btn-action.gbc-btn-disabled:hover,
.gbc-btn-reservation.gbc-btn-disabled:hover,
.gbc-btn-playlists.gbc-btn-disabled:hover,
.gbc-btn-siteweb.gbc-btn-disabled:hover {
    background: #E2E8F0 !important;
    background-color: #E2E8F0 !important;
    border-color: #CBD5E1 !important;
    color: #94A3B8 !important;
    box-shadow: none !important;
    transform: none !important;
    cursor: not-allowed !important;
}

.gbc-btn-action.gbc-btn-disabled .dashicons {
    color: #94A3B8 !important;
}

/* =========================================================================
   AFFICHAGE GARANTI DES TOOLTIPS SUR LES BOUTONS
   ========================================================================= */
.gbc-has-tooltip {
    position: relative !important;
    overflow: visible !important;
}

.gbc-actions-block,
.gbc-reservation-slot,
.gbc-btn-action {
    overflow: visible !important;
}

.gbc-tooltip-text {
    z-index: 999999 !important;
    pointer-events: none !important;
}

.gbc-has-tooltip:hover .gbc-tooltip-text {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Masquer les éléments de la grille en mode billet */
.gbc-view-mode-ticket .gbc-divider-grid,
.gbc-view-mode-ticket .gbc-grid-title-block {
    display: none !important;
}

/* --------------------------------------------------------------------------
   4. VUE GRILLE (GRID MODE) — CONFORME MAQUETTE
   -------------------------------------------------------------------------- */
.gbc-view-mode-grid .tableau-bals-country-container .tableau-bals-country,
.gbc-view-mode-grid .tableau-bals-country.gbc-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(365px, 1fr)) !important;
    /* Moins de bals par ligne, cartes plus larges */
    gap: 20px !important;
}

.gbc-view-mode-grid .gbc-main-row.gbc-item {
    display: flex !important;
    align-items: stretch !important;
    margin: 0 !important;
}

.gbc-view-mode-grid .gbc-event-card {
    display: grid !important;
    grid-template-columns: 80px 12px 1fr !important;
    grid-template-rows: 52px 130px auto auto auto !important;
    /* Lignes adaptatives : zéro chevauchement */
    gap: 8px 0 !important;
    align-items: start !important;
    background: #FFFFFF !important;
    border: 1px solid #E2E8F0 !important;
    border-left: 5px solid var(--gc-camel) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
    padding: 8px 12px 12px 12px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 480px !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.gbc-view-mode-grid .gbc-event-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1) !important;
}

/* Grille Row 1 : Date compacte (52px) | Pointillé | Titre centré verticalement */
.gbc-view-mode-grid .gbc-date-block {
    grid-column: 1 !important;
    grid-row: 1 !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    align-self: center !important;
    width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
}

.gbc-view-mode-grid .gbc-card-date {
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    width: 100% !important;
    padding: 2px 4px !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: var(--gc-bleu-nuit) !important;
    border-radius: 6px !important;
    gap: 1px !important;
}

.gbc-view-mode-grid .gbc-card-date.is-single-day .day-name-small {
    font-size: 10.5px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.gbc-view-mode-grid .gbc-card-date.is-single-day .day-num {
    font-size: 25px !important;
    font-weight: bold !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.gbc-view-mode-grid .gbc-card-date .month-tag {
    font-size: 10.5px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-top: none !important;
}

.gbc-view-mode-grid .day-multi-row .day-num {
    font-size: 25px !important;
    font-weight: bold !important;
}

.gbc-view-mode-grid .day-multi-row .day-connector {
    font-size: 11px !important;
}

.gbc-view-mode-grid .gbc-divider-grid {
    grid-column: 2 !important;
    grid-row: 1 !important;
    border-left: 1.5px dotted var(--gc-camel) !important;
    margin: 0 auto !important;
    height: 52px !important;
    max-height: 52px !important;
    min-height: 52px !important;
    display: block !important;
    width: 0 !important;
}

.gbc-view-mode-grid .gbc-grid-title-block {
    grid-column: 3 !important;
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    padding-left: 4px !important;
    padding-right: 0 !important;
    position: relative !important;
}

/* Neutraliser les marges et paddings hérités du thème (ex: padding-bottom: 10px sur h1-h6) */
.gbc-grid-title,
.gbc-ticket-title,
h3.gbc-grid-title,
h3.gbc-ticket-title,
.gbc-grid-title-block h3,
.gbc-ticket-header h3 {
    padding: 0 !important;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
    margin: 0 !important;
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    line-height: 1.15 !important;
}

.gbc-view-mode-grid .gbc-grid-title {
    font-family: var(--gc-font-western) !important;
    color: var(--gc-bleu-nuit) !important;
    font-size: 26px !important;
    font-weight: bold !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1.15 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Grille Row 2 : Affiche (col 1) & Métas avec Badges + Horaires + Lieu (col 3) */
.gbc-view-mode-grid .gbc-poster-block {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    height: 130px !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
}

.gbc-view-mode-grid .gbc-card-poster {
    width: 100% !important;
    height: 130px !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12) !important;
}

.gbc-view-mode-grid .gbc-card-poster img {
    height: 100% !important;
    width: 100% !important;
    object-fit: cover !important;
}

.gbc-view-mode-grid .gbc-metas-block {
    grid-column: 3 !important;
    grid-row: 2 !important;
    height: 130px !important;
    /* Strictement fixe à 130px, aligné avec l'affiche à côté */
    max-height: 130px !important;
    min-height: 130px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    /* Calé de haut en bas */
    align-self: stretch !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 0 !important;
}

.gbc-view-mode-grid .gbc-grid-badges {
    display: flex !important;
    gap: 5px !important;
    flex-wrap: wrap !important;
    margin-bottom: 2px !important;
    flex-shrink: 0 !important;
}

.gbc-view-mode-grid .gbc-card-badge {
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 2px 7px !important;
    border: 1px solid #CBD5E1 !important;
    border-radius: 4px !important;
    background: #FFFFFF !important;
    color: #475569 !important;
}

.gbc-view-mode-grid .gbc-meta-group {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-around !important;
    /* Distribue équitablement les 3 infos */
    min-height: 0 !important;
    gap: 2px !important;
}

.gbc-view-mode-grid .gbc-meta-row {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 6px !important;
    color: #334155 !important;
}

.gbc-view-mode-grid .gbc-meta-icon {
    font-size: 17px !important;
    width: 17px !important;
    height: 17px !important;
    color: var(--gc-camel) !important;
    margin-top: 1px !important;
    flex-shrink: 0 !important;
}

.gbc-view-mode-grid .gbc-schedule-line,
.gbc-view-mode-grid .gbc-meta-localite,
.gbc-view-mode-grid a.gbc-meta-localite.gbc-table-cp-link {
    font-size: 13.5px !important;
    font-weight: 500 !important;
    color: var(--gc-texte) !important;
    line-height: 1.35 !important;
}

.gbc-view-mode-grid .gbc-meta-salle {
    font-size: 13.5px !important;
    font-weight: bold !important;
    color: var(--gc-texte) !important;
    line-height: 1.35 !important;
}

/* Grille Row 3 : Encart Description pleine largeur (3 LIGNES) */
.gbc-view-mode-grid .gbc-ticket-main-col {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: 100% !important;
}

.gbc-view-mode-grid .gbc-ticket-header {
    display: none !important;
}

.gbc-view-mode-grid .gbc-desc-box {
    width: 100% !important;
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
    padding: 6px 10px !important;
    box-sizing: border-box !important;
    background: var(--gc-beige) !important;
    border: 1px solid color-mix(in srgb, var(--gc-camel) 20%, transparent) !important;
    border-left: 3px solid var(--gc-camel) !important;
    border-radius: 4px !important;
    display: block !important;
    position: relative !important;
}

.gbc-view-mode-grid .gbc-desc-text {
    font-size: 12.5px !important;
    color: #334155 !important;
    font-style: normal !important;
    line-height: 1.35 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    /* Remplit les 3 lignes au maximum */
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* En vue Ligne : pas de 4ème ligne, boîte proportionnée */
.gbc-view-mode-ticket .gbc-desc-box {
    position: relative !important;
    padding: 8px 14px !important;
}

/* Description cliquable avec effet hover */
.gbc-desc-box.has-full-desc {
    cursor: pointer !important;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.gbc-desc-box.has-full-desc:hover {
    background: color-mix(in srgb, var(--gc-camel) 8%, transparent) !important;
    border-color: var(--gc-camel) !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--gc-camel) 15%, transparent) !important;
}

/* "Lire la suite" masqué par défaut, affiché UNIQUEMENT si la boîte a la classe has-full-desc */
.gbc-desc-read-more {
    display: none !important;
    position: static !important;
    color: var(--gc-orange, var(--gc-camel)) !important;
    font-weight: 700 !important;
    font-size: inherit !important;
    line-height: inherit !important;
    white-space: nowrap !important;
    text-decoration: underline !important;
    margin-left: 4px !important;
    cursor: pointer !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.gbc-desc-box.has-full-desc .gbc-desc-read-more {
    display: inline !important;
}

.gbc-desc-box.has-full-desc:hover .gbc-desc-read-more {
    background: transparent !important;
    box-shadow: none !important;
    color: var(--gc-accent-hover, var(--gc-camel-hover, #9F6437)) !important;
}

.gbc-desc-read-more:hover {
    color: var(--gc-accent-hover, var(--gc-camel-hover, #9F6437)) !important;
}

/* Popover Description Complète au-dessus du bloc du bal (fait ressortir la carte) */
.gbc-event-card {
    position: relative !important;
}

.gbc-desc-card-popover {
    position: absolute !important;
    background: #FFFFFF !important;
    border-radius: 8px !important;
    border: 1.5px solid #CBD5E1 !important;
    border-left: 5px solid var(--gc-camel) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35) !important;
    z-index: 100000 !important;
    /* STRICTEMENT supérieur aux flèches de playlists (9999) */
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    animation: gbcPopIn 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* En Grille : ne prend pas le max en hauteur pour faire ressortir le bal autour */
.gbc-view-mode-grid .gbc-desc-card-popover {
    top: 50% !important;
    left: 10px !important;
    right: 10px !important;
    width: calc(100% - 20px) !important;
    max-height: 82% !important;
    height: auto !important;
    transform: translateY(-50%) !important;
}

/* En Ligne : popover beaucoup plus grand en hauteur, centré, qui déborde confortablement sur les bals voisins */
.gbc-view-mode-ticket .gbc-desc-card-popover {
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 92% !important;
    max-width: 640px !important;
    height: auto !important;
    min-height: 180px !important;
    max-height: 420px !important;
    /* Grande hauteur avec débordement élégant sur les autres bals */
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45) !important;
}

/* La carte active avec popover ouvert se place au premier plan absolu */
.gbc-event-card.has-popover-open {
    z-index: 100000 !important;
}

/* Masquer les flèches du bal quand son popover est ouvert */
.gbc-event-card.has-popover-open .gbc-slider-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

.gbc-desc-card-popover-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 10px 14px !important;
    background: #F8FAFC !important;
    border-bottom: 1px solid #E2E8F0 !important;
    flex-shrink: 0 !important;
}

.gbc-desc-card-popover-header h4 {
    font-family: var(--gc-font-western) !important;
    font-size: 18px !important;
    color: var(--gc-bleu-nuit) !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: uppercase !important;
}

.gbc-desc-card-popover-close {
    background: transparent !important;
    border: none !important;
    font-size: 24px !important;
    line-height: 1 !important;
    color: #64748B !important;
    cursor: pointer !important;
    padding: 0 4px !important;
}

.gbc-desc-card-popover-close:hover {
    color: #0F172A !important;
}

.gbc-desc-card-popover-body {
    padding: 14px !important;
    overflow-y: auto !important;
    flex: 1 1 auto !important;
}

.gbc-desc-card-popover-content {
    font-size: 13.5px !important;
    color: #334155 !important;
    line-height: 1.55 !important;
    white-space: normal !important;
}

/* Grille Row 4 : Playlists (Encart agrandi à 110px et harmonisé) */
.gbc-view-mode-grid .gbc-card-playlists-col {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
    width: 100% !important;
    height: 120px !important;
    min-height: 120px !important;
    max-height: 120px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

.gbc-view-mode-grid .gbc-card-playlists-col.is-empty-playlists {
    display: flex !important;
}

/* Encart identique pour les playlists présentes et les playlists à venir (hauteur augmentée) */
.gbc-view-mode-grid .gbc-playlists-slider-wrapper,
.gbc-view-mode-grid .gbc-no-playlists-placeholder {
    width: 100% !important;
    height: 110px !important;
    min-height: 110px !important;
    max-height: 110px !important;
    border: 1px dashed #CBD5E1 !important;
    border-radius: 4px !important;
    background: #F8FAFC !important;
    box-sizing: border-box !important;
}

.gbc-view-mode-grid .gbc-playlists-slider-wrapper {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
    padding: 4px 6px !important;
}

.gbc-view-mode-grid .gbc-playlists-slider-wrapper .multiple-previews-container {
    height: 100% !important;
    align-items: center !important;
    display: flex !important;
    gap: 8px !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.gbc-view-mode-grid .gbc-playlists-slider-wrapper .multiple-previews-container::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

.gbc-view-mode-grid .gbc-playlists-slider-wrapper .preview-with-download-wrapper {
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.gbc-view-mode-grid .gbc-playlists-slider-wrapper .preview-link img.apercu-affiche {
    height: 98px !important;
    max-height: 98px !important;
    width: auto !important;
    border-radius: 3px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
    object-fit: contain !important;
}

/* Écarter les flèches en vue Grille pour qu'elles se calent bien sur les bords */
.gbc-view-mode-grid .gbc-slider-prev {
    left: 4px !important;
}

.gbc-view-mode-grid .gbc-slider-next {
    right: 4px !important;
}

/* S'il n'y a pas de slider (1 ou 2 playlists) : CENTRÉ */
.gbc-view-mode-grid .gbc-playlists-slider-wrapper:not(.is-slider) .multiple-previews-container {
    justify-content: center !important;
    margin: 0 auto !important;
}

/* S'il y a un slider (+ de 2 playlists) : DÉBUT À GAUCHE DÉGAGÉ DES FLÈCHES AVEC 38PX DE SÉCURITÉ */
.gbc-view-mode-grid .gbc-playlists-slider-wrapper.is-slider .multiple-previews-container {
    justify-content: flex-start !important;
    overflow-x: auto !important;
    scroll-behavior: smooth !important;
    padding: 4px 38px !important;
    /* Dégage complètement les flèches pour ne jamais masquer les documents */
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.gbc-view-mode-grid .gbc-playlists-slider-wrapper.is-slider .multiple-previews-container::-webkit-scrollbar {
    display: none !important;
}

.gbc-view-mode-grid .gbc-no-playlists-placeholder {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    color: #94A3B8 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    gap: 4px !important;
}

.gbc-view-mode-grid .gbc-no-playlists-placeholder .dashicons {
    font-size: 22px !important;
    width: 22px !important;
    height: 22px !important;
    color: #CBD5E1 !important;
}

/* Grille Row 5 : BOUTONS PLEINE LARGEUR (100% DE LA CARTE) */
.gbc-view-mode-grid .gbc-actions-block {
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    margin-top: 4px !important;
    gap: 6px !important;
}

.gbc-view-mode-grid .gbc-btn-action {
    width: 100% !important;
    height: var(--gc-btn-height) !important;
    min-height: var(--gc-btn-height) !important;
    max-height: var(--gc-btn-height) !important;
    font-size: var(--gc-btn-font-size) !important;
    font-weight: 700 !important;
    text-transform: var(--gc-btn-transform) !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--gc-btn-radius) !important;
    line-height: 1 !important;
}

/* Ordre uniforme des boutons dans tous les modes (Grille et Ligne) */
.gbc-actions-block .gbc-btn-playlists {
    order: 1 !important;
}

.gbc-actions-block .gbc-reservation-slot {
    order: 2 !important;
    width: 100% !important;
}

.gbc-actions-block .gbc-btn-siteweb {
    order: 3 !important;
}

.gbc-actions-block .gbc-btn-agenda-ticket {
    order: 4 !important;
}

/* Masquer les séparateurs spécifiques au billet en mode grille */
.gbc-view-mode-grid .gbc-divider-ticket,
.gbc-view-mode-grid .gbc-divider-ticket-2,
.gbc-view-mode-grid .gbc-divider-ticket-3 {
    display: none !important;
}

/* --------------------------------------------------------------------------
   5. RESPONSIVE DESIGN (MOBILE & TABLETTE)
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {

    /* 1. Masquage obligatoire du sélecteur de vue en mobile */
    .gbc-top-actions-view,
    .gbc-view-switcher {
        display: none !important;
    }

    /* 2. Réagencement propre des actions supérieures (Carte Interactive & Date MàJ) */
    .gbc-top-actions {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 10px !important;
        margin-bottom: 15px !important;
        width: 100% !important;
    }

    .gbc-top-actions-map {
        flex: 0 0 auto !important;
        justify-content: flex-start !important;
        text-align: left !important;
    }

    /* Réduction du bouton Carte Interactive sur mobile */
    .gbc-btn-map-trigger {
        font-size: var(--gc-btn-map-mobile-font-size) !important;
        padding: var(--gc-btn-map-mobile-padding) !important;
        min-height: var(--gc-btn-mobile-height) !important;
        gap: 6px !important;
    }

    .gbc-btn-map-trigger .dashicons {
        font-size: 15px !important;
        width: 15px !important;
        height: 15px !important;
    }

    .gbc-top-actions-date {
        flex: 1 1 auto !important;
        justify-content: flex-end !important;
        text-align: right !important;
    }

    .gbc-last-updated-text {
        font-size: 11.5px !important;
        color: #777 !important;
    }

    /* 3. FORÇAGE STRICT DU MODE GRILLE (1 col) POUR TOUS LES MODES SUR MOBILE */
    .gbc-view-mode-ticket .tableau-bals-country-container .tableau-bals-country,
    .gbc-view-mode-ticket .tableau-bals-country.gbc-list,
    .gbc-view-mode-grid .tableau-bals-country-container .tableau-bals-country,
    .gbc-view-mode-grid .tableau-bals-country.gbc-list {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .gbc-view-mode-ticket .gbc-main-row.gbc-item,
    .gbc-view-mode-grid .gbc-main-row.gbc-item {
        display: flex !important;
        align-items: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }

    /* Carte d'événement unifiée en grille 5 rangées */
    .gbc-view-mode-ticket .gbc-event-card,
    .gbc-view-mode-grid .gbc-event-card {
        display: grid !important;
        grid-template-columns: 80px 12px 1fr !important;
        grid-template-rows: 52px 130px auto auto auto !important;
        gap: 8px 0 !important;
        align-items: start !important;
        background: #FFFFFF !important;
        border: 1px solid #E2E8F0 !important;
        border-left: 5px solid var(--gc-camel) !important;
        border-radius: 8px !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
        padding: 8px 12px 12px 12px !important;
        box-sizing: border-box !important;
        width: 100% !important;
        min-height: 480px !important;
        position: relative !important;
    }

    /* Rangée 1 : Date (80px) */
    .gbc-view-mode-ticket .gbc-date-block,
    .gbc-view-mode-grid .gbc-date-block {
        grid-column: 1 !important;
        grid-row: 1 !important;
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
        align-self: center !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .gbc-view-mode-ticket .gbc-card-date,
    .gbc-view-mode-grid .gbc-card-date {
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
        width: 100% !important;
        padding: 2px 4px !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        background-color: var(--gc-bleu-nuit) !important;
        border-radius: 6px !important;
        gap: 1px !important;
    }

    .gbc-view-mode-ticket .gbc-card-date.is-single-day .day-name-small,
    .gbc-view-mode-grid .gbc-card-date.is-single-day .day-name-small {
        font-size: 10.5px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-card-date.is-single-day .day-num,
    .gbc-view-mode-grid .gbc-card-date.is-single-day .day-num {
        font-size: 23px !important;
        font-weight: bold !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-card-date .month-tag,
    .gbc-view-mode-grid .gbc-card-date .month-tag {
        font-size: 10.5px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        margin: 0 !important;
        padding: 0 !important;
        border-top: none !important;
    }

    .gbc-view-mode-ticket .day-multi-row .day-num,
    .gbc-view-mode-grid .day-multi-row .day-num {
        font-size: 19px !important;
        font-weight: bold !important;
    }

    .gbc-view-mode-ticket .day-multi-row .day-connector,
    .gbc-view-mode-grid .day-multi-row .day-connector {
        font-size: 11px !important;
    }

    /* Rangée 1 : Pointillé & Titre centré */
    .gbc-view-mode-ticket .gbc-divider-grid,
    .gbc-view-mode-grid .gbc-divider-grid {
        display: block !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        border-left: 1.5px dotted var(--gc-camel) !important;
        margin: 0 auto !important;
        height: 52px !important;
        max-height: 52px !important;
        min-height: 52px !important;
        width: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-grid-title-block,
    .gbc-view-mode-grid .gbc-grid-title-block {
        display: flex !important;
        grid-column: 3 !important;
        grid-row: 1 !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: flex-start !important;
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
        padding-left: 4px !important;
        padding-right: 0 !important;
        position: relative !important;
    }

    .gbc-view-mode-ticket .gbc-grid-title,
    .gbc-view-mode-grid .gbc-grid-title {
        font-family: var(--gc-font-western) !important;
        color: var(--gc-bleu-nuit) !important;
        font-size: 20px !important;
        font-weight: bold !important;
        margin: 0 !important;
        padding: 0 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        line-height: 1.15 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    /* Rangée 2 : Affiche (col 1) & Métas (col 3) */
    .gbc-view-mode-ticket .gbc-poster-block,
    .gbc-view-mode-grid .gbc-poster-block {
        grid-column: 1 !important;
        grid-row: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 130px !important;
        display: flex !important;
        align-items: flex-start !important;
        justify-content: center !important;
        padding: 0 !important;
        margin: 0 !important;
        align-self: auto !important;
    }

    .gbc-view-mode-ticket .gbc-card-poster,
    .gbc-view-mode-grid .gbc-card-poster {
        width: 100% !important;
        height: 130px !important;
        border-radius: 4px !important;
        overflow: hidden !important;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .gbc-view-mode-ticket .gbc-card-poster img,
    .gbc-view-mode-grid .gbc-card-poster img {
        height: 100% !important;
        max-height: 130px !important;
        width: 100% !important;
        object-fit: cover !important;
    }

    .gbc-view-mode-ticket .gbc-card-poster .gbc-no-poster-placeholder,
    .gbc-view-mode-grid .gbc-card-poster .gbc-no-poster-placeholder {
        width: 100% !important;
        height: 130px !important;
        min-height: 130px !important;
    }

    .gbc-view-mode-ticket .gbc-metas-block,
    .gbc-view-mode-grid .gbc-metas-block {
        grid-column: 3 !important;
        grid-row: 2 !important;
        flex: none !important;
        width: 100% !important;
        height: 130px !important;
        max-height: 130px !important;
        min-height: 130px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        align-self: stretch !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        padding: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-metas-block .gbc-grid-badges,
    .gbc-view-mode-grid .gbc-metas-block .gbc-grid-badges {
        display: flex !important;
        gap: 5px !important;
        flex-wrap: wrap !important;
        margin-bottom: 2px !important;
        flex-shrink: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-card-badge,
    .gbc-view-mode-grid .gbc-card-badge {
        font-size: 11px !important;
        font-weight: 700 !important;
        padding: 2px 7px !important;
        border: 1px solid #CBD5E1 !important;
        border-radius: 4px !important;
        background: #FFFFFF !important;
        color: #475569 !important;
    }

    .gbc-view-mode-ticket .gbc-meta-group,
    .gbc-view-mode-grid .gbc-meta-group {
        flex: 1 1 auto !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-around !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
        gap: 2px !important;
    }

    .gbc-view-mode-ticket .gbc-meta-row,
    .gbc-view-mode-grid .gbc-meta-row {
        font-size: 13px !important;
        line-height: 1.35 !important;
        display: flex !important;
        align-items: flex-start !important;
        gap: 6px !important;
        color: #334155 !important;
    }

    .gbc-view-mode-ticket .gbc-meta-icon,
    .gbc-view-mode-grid .gbc-meta-icon {
        font-size: 16px !important;
        width: 16px !important;
        height: 16px !important;
        color: var(--gc-camel) !important;
        margin-top: 1px !important;
        flex-shrink: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-schedule-line,
    .gbc-view-mode-grid .gbc-schedule-line,
    .gbc-view-mode-ticket .gbc-meta-localite,
    .gbc-view-mode-grid .gbc-meta-localite,
    .gbc-view-mode-ticket a.gbc-meta-localite.gbc-table-cp-link,
    .gbc-view-mode-grid a.gbc-meta-localite.gbc-table-cp-link {
        font-size: 13px !important;
        font-weight: 500 !important;
        color: var(--gc-texte) !important;
        line-height: 1.35 !important;
    }

    .gbc-view-mode-ticket .gbc-meta-salle,
    .gbc-view-mode-grid .gbc-meta-salle {
        font-size: 13px !important;
        font-weight: bold !important;
        color: var(--gc-texte) !important;
        line-height: 1.35 !important;
    }

    /* Rangée 3 : Description pleine largeur */
    .gbc-view-mode-ticket .gbc-ticket-main-col,
    .gbc-view-mode-grid .gbc-ticket-main-col {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: none !important;
        margin: 0 !important;
        align-self: auto !important;
    }

    .gbc-view-mode-ticket .gbc-ticket-header,
    .gbc-view-mode-grid .gbc-ticket-header {
        display: none !important;
    }

    .gbc-view-mode-ticket .gbc-desc-box,
    .gbc-view-mode-grid .gbc-desc-box {
        width: 100% !important;
        height: 60px !important;
        min-height: 60px !important;
        max-height: 60px !important;
        padding: 6px 10px !important;
        box-sizing: border-box !important;
        background: #F8FAFC !important;
        border: 1px solid rgba(186, 116, 64, 0.2) !important;
        border-left: 3px solid var(--gc-camel) !important;
        border-radius: 4px !important;
        display: block !important;
        position: relative !important;
    }

    .gbc-view-mode-ticket .gbc-desc-text,
    .gbc-view-mode-grid .gbc-desc-text {
        font-size: 12.5px !important;
        color: #334155 !important;
        font-style: normal !important;
        line-height: 1.35 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 3 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    /* Rangée 4 : Playlists pleine largeur */
    .gbc-view-mode-ticket .gbc-card-playlists-col,
    .gbc-view-mode-grid .gbc-card-playlists-col {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        height: 120px !important;
        min-height: 120px !important;
        max-height: 120px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 !important;
        align-self: auto !important;
    }

    .gbc-view-mode-ticket .gbc-card-playlists-col.is-empty-playlists,
    .gbc-view-mode-grid .gbc-card-playlists-col.is-empty-playlists {
        display: flex !important;
    }

    .gbc-view-mode-ticket .gbc-playlists-slider-wrapper,
    .gbc-view-mode-grid .gbc-playlists-slider-wrapper,
    .gbc-view-mode-ticket .gbc-no-playlists-placeholder,
    .gbc-view-mode-grid .gbc-no-playlists-placeholder {
        width: 100% !important;
        height: 110px !important;
        min-height: 110px !important;
        max-height: 110px !important;
        border: 1px dashed #CBD5E1 !important;
        border-radius: 4px !important;
        background: #F8FAFC !important;
        box-sizing: border-box !important;
        display: flex !important;
    }

    .gbc-view-mode-ticket .gbc-playlists-slider-wrapper,
    .gbc-view-mode-grid .gbc-playlists-slider-wrapper {
        align-items: center !important;
        position: relative !important;
        padding: 4px 6px !important;
    }

    .gbc-view-mode-ticket .gbc-playlists-slider-wrapper .multiple-previews-container,
    .gbc-view-mode-grid .gbc-playlists-slider-wrapper .multiple-previews-container {
        height: 100% !important;
        align-items: center !important;
        display: flex !important;
        gap: 8px !important;
        padding: 0 !important;
    }

    .gbc-view-mode-ticket .gbc-slider-prev,
    .gbc-view-mode-grid .gbc-slider-prev {
        left: 4px !important;
    }

    .gbc-view-mode-ticket .gbc-slider-next,
    .gbc-view-mode-grid .gbc-slider-next {
        right: 4px !important;
    }

    .gbc-view-mode-ticket .preview-link img.apercu-affiche,
    .gbc-view-mode-grid .preview-link img.apercu-affiche {
        height: 98px !important;
        max-height: 98px !important;
        width: auto !important;
        border-radius: 3px !important;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
        object-fit: contain !important;
    }

    /* Rangée 5 : Boutons pleine largeur */
    .gbc-view-mode-ticket .gbc-actions-block,
    .gbc-view-mode-grid .gbc-actions-block {
        grid-column: 1 / -1 !important;
        grid-row: 5 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        display: flex !important;
        flex-direction: column !important;
        margin-top: 4px !important;
        margin-left: 0 !important;
        gap: 6px !important;
        align-self: auto !important;
    }

    .gbc-view-mode-ticket .gbc-btn-action,
    .gbc-view-mode-grid .gbc-btn-action,
    .gbc-reservation-slot.gbc-slot-split .gbc-btn-action {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        height: var(--gc-btn-mobile-height) !important;
        min-height: var(--gc-btn-mobile-height) !important;
        max-height: var(--gc-btn-mobile-height) !important;
        font-size: var(--gc-btn-mobile-font-size) !important;
        font-weight: 700 !important;
        text-transform: var(--gc-btn-transform) !important;
        letter-spacing: 0.5px !important;
        border-radius: var(--gc-btn-radius) !important;
        line-height: 1 !important;
        padding: var(--gc-btn-mobile-padding) !important;
        box-sizing: border-box !important;
    }

    /* Masquage des séparateurs de la vue ticket */
    .gbc-divider-ticket,
    .gbc-divider-ticket-2,
    .gbc-divider-ticket-3,
    .gbc-view-mode-ticket .gbc-divider-ticket,
    .gbc-view-mode-ticket .gbc-divider-ticket-2,
    .gbc-view-mode-ticket .gbc-divider-ticket-3 {
        display: none !important;
    }

    /* Popover de description sur mobile */
    .gbc-view-mode-ticket .gbc-desc-card-popover,
    .gbc-view-mode-grid .gbc-desc-card-popover {
        top: 50% !important;
        left: 10px !important;
        right: 10px !important;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        max-height: 82% !important;
        min-height: 0 !important;
        height: auto !important;
        transform: translateY(-50%) !important;
    }
}

@media (max-width: 440px) {
    .gbc-top-actions {
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
    }

    .gbc-top-actions-map,
    .gbc-top-actions-date {
        justify-content: center !important;
        text-align: center !important;
        width: 100% !important;
    }
}

/* ==========================================================================
   VISIBILITÉ STRICTE DES FILTRES ET DES MOIS (PRIORITÉ ABSOLUE)
   ========================================================================== */
.gbc-main-row.gbc-hidden-row,
.gbc-view-mode-grid .gbc-main-row.gbc-item.gbc-hidden-row,
.gbc-view-mode-ticket .gbc-main-row.gbc-item.gbc-hidden-row,
.gbc-hidden-row {
    display: none !important;
}

.gbc-month-header.gbc-hidden-month,
.tableau-bals-country-container.gbc-hidden-month,
.gbc-hidden-month {
    display: none !important;
}