#reset-filter:hover {cursor: pointer;}

.nxcv-formation-objectifs-wrapper{line-height: 1.4em;}

#nxcv-formation-section-nav>ul{gap: 7px}

#nxcv-mobile-inscription-section {position: sticky; bottom: 30px; height: fit-content;}


/* #nxcv-sticky {
    position: sticky;
    top: 150px;
} */

/* #nxcv-filters-main-wrapper {background: brown;} */

/* Sidebar filtres collée en haut (V1). align-self:flex-start évite que la
   colonne soit étirée sur toute la hauteur de la grille (sinon aucune course).
   → Désactiver l'option "Sticky" d'Elementor sur cette colonne. */
.nxcv-grid-col-2-8:has(#nxcv-filters-wrapper) {
    position: sticky;
    top: 130px;
    align-self: flex-start;
}

/* #nxcv-filters-toggle {
    width: 100%;
} */

.nxcv-page-title {color: var(--nxcv-color-primary); text-align: center;}
.nxcv-search-filter-wrapper {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(5px)
}


/* 2. THE SHIMMER ANIMATION */
@keyframes nxcv-shimmer-move {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

/* 6. POST-LOAD BUTTON HOVER EFFECTS */
.nxcv-formation-item-button {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative;
    overflow: hidden;
}


/* Related list styles */
.related-formations-wrapper {
    margin: 30px 0;
    padding: 20px;
    background: #f9f9f9;
    border-radius: 8px;
}

.related-title {
    font-size: 0.85em;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #888;
    margin-bottom: 15px;
}

.related-formations-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.related-formations-list li {
    border-bottom: 1px solid #eee;
}

.related-formations-list li a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1px 0;
    text-decoration: none;
    color: #333;
    /* font-size: 0.95em;
    font-weight: 500; */
}

.link-arrow {
    color: var(--nxcv-color-primary);
    opacity: 0;
    transform: translateX(-10px);
    transition: all 0.3s ease;
}

.related-formations-list li a:hover .link-arrow {
    opacity: 1;
    transform: translateX(0);
}


.badges-wrapper {
    display: flex;
    left: 0;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    pointer-events: none;
}

.badge-item {
    padding: 5px 10px;
    color: white;
    font-size: 0.8em;
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.badge-svg-icon svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
    display: block;
}

@media (max-width: 767px) {
    .badge-item {
        font-size: 0.7em;
        padding: 4px 6px;
    }

    #nxcv-filters-container {
    display: none;
}

.nxcv-modalites-container {
    display: none;
}

.nxcv-single-formation-ref-pdf>ul {
    flex-direction: column !important;
}

/* Barre "Modalités" fixée en bas de l'écran : left/right explicites,
   sinon un élément fixed garde sa position horizontale statique
   (d'où le décalage à droite constaté). */
#nxcv-formation-inscription-list-wrapper {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 30px;
    top: auto;
    width: 100%;
    max-width: 100%;
    margin: 0;
    z-index: 999; /* au-dessus du contenu ; le header sticky ne le chevauche jamais (barre en bas) */
    background: var(--nxcv-color-white);
    box-shadow: 0 -4px 15px rgba(0, 0, 0, 0.12);
}

/* Le contenu déplié ne doit pas dépasser l'écran */
#nxcv-formation-inscription-list-wrapper .nxcv-modalites-container {
    max-height: 60vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

#nxcv-mobile-inscription-section {
    max-height: 70vh;
    flex-wrap: nowrap; /* sans quoi la colonne flex se replie côte à côte */
    overflow-y: auto;
}

}

/* ── Sidebar inscription sticky (desktop) ─────────────────────
   Un sticky ne coulisse que dans la hauteur de son parent direct.
   On étire donc tous les wrappers intermédiaires (widget shortcode
   d'Elementor) sur toute la hauteur de la colonne de grille, pour
   que le bloc se cale par rapport au grand-parent (la grille). */
@media (min-width: 768px) {
    .programme-de-formation-wrapper > .nxcv-grid-col-2-8,
    .programme-de-formation-wrapper .nxcv-grid-col-2-8 .elementor-widget-shortcode,
    .programme-de-formation-wrapper .nxcv-grid-col-2-8 .elementor-widget-shortcode > .elementor-widget-container,
    .programme-de-formation-wrapper .nxcv-grid-col-2-8 .elementor-shortcode,
    .programme-de-formation-wrapper .nxcv-grid-col-2-8 .elementor-shortcode > .elementor {
        height: 100%;
    }
}

#formation-search-submit {
    width: 70px;
}

.formation-filter-container {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.formation-search-box {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 10px;
    min-width: 250px;
    height: 60px;
    width: 100% !important;
    transition: border-color 0.2s;
}

.formation-search-box:focus-within {
    border-color: var(--nxcv-color-primary);
}

.formation-search-box input {
    border: none;
    background: transparent;
    padding: 8px 0;
    font-size: 1em !important;
    outline: none;
    flex-grow: 1;
    padding: 10px;
}

.formation-search-box button {
    background: var(--nxcv-color-primary);
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    cursor: pointer;
    transition: opacity 0.2s;
    padding: 0;
    margin-left: 10px;
}

.formation-search-box button:hover {
    opacity: 0.9;
}

.formation-search-box button svg {
    width: 16px;
    height: 16px;
}

/* Reset Button Style */
.filter-reset-link {
    font-size: 0.8em;
    color: #2a2a2a;
    text-decoration: underline;
    cursor: pointer;
    font-weight: 500;
}

.filter-reset-link:hover {
    opacity: 0.7;
}

.formation-filter-submit {
    display: none;
}

.related-formations-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.related-formations-list li {
    margin-bottom: 8px;
}

.related-formations-list li a {
    text-decoration: none;
    color: inherit;
    font-size: 0.9em;
    transition: color 0.2s ease;
}

.related-formations-list li a:hover {
    color: var(--nxcv-color-primary);
    text-decoration: underline;
}

.category-list > li > a {
                color: unset !important;
                text-decoration: none;
            }
            .category-list > li > a:hover {
                color: var(--nxcv-color-primary) !important;
            }
            .category-count {
                font-size: 0.85em;
                color: var(--nxcv-color-white);
                background: var(--nxcv-color-accent);
                margin-left: 5px;
                padding: 2px 3px;
                border-radius: 5px;
            }
            .category-back-link {
                font-weight: bold;
            }

            @media only screen and (max-width:748px) {
    h2.elementor-icon-box-title>span {
        vertical-align: -webkit-baseline-middle;
    }
}

/* ── Accordéon filtres sur mobile ─────────────────────────────
   Chaque groupe de filtre reçoit .lp-filter-acc via filters.js :
   seul le label reste visible, le contenu s'ouvre au clic. */
@media only screen and (max-width: 767px) {
    #nxcv-filters-container {
        max-height: 70vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .lp-filter-acc {
        border-bottom: 1px solid var(--nxcv-color-border);
        padding-bottom: 8px;
    }
    .lp-filter-acc > :first-child {
        cursor: pointer;
    }
    .lp-filter-acc > .lp-range-label {
        display: flex !important;
        justify-content: space-between;
        align-items: center;
    }
    .lp-filter-acc > :first-child::after {
        content: '▾';
        display: inline-block;
        margin-left: 8px;
        transition: transform 0.2s ease;
    }
    .lp-filter-acc.is-open > :first-child::after {
        transform: rotate(180deg);
    }
    .lp-filter-acc:not(.is-open) > :not(:first-child) {
        display: none !important;
    }
}
