/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.3
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* Force les menus déroulants des filtres à occuper toute la largeur de leur colonne */
.music-filter-dropdown,
.music-filter-dropdown .dropdown-toggle {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
}

/* Scrollbar pour les menus déroulants de filtres (Style, Ambiance, Thématique) */
.music-filter-dropdown .dropdown-menu {
    max-height: 300px;
    /* Limite la hauteur de la liste */
    overflow-y: auto;
    /* Ajoute le scroll vertical */

    /* Styles de barre de défilement pour Firefox */
    scrollbar-width: thin;
    scrollbar-color: #888888 #222222;
    /* Pouce Gris / Piste Sombre */
}

.music-filter-dropdown .dropdown-menu {
    overscroll-behavior: contain;
}


/* Personnalisation de la barre de défilement (Webkit: Chrome, Safari) */
.music-filter-dropdown .dropdown-menu::-webkit-scrollbar {
    width: 10px;
    /* Largeur confortable */
}

.music-filter-dropdown .dropdown-menu::-webkit-scrollbar-track {
    background: #222222;
    /* Fond sombre pour se fondre dans le menu */
    border-radius: 4px;
}

.music-filter-dropdown .dropdown-menu::-webkit-scrollbar-thumb {
    background-color: #888888;
    /* Gris bien visible */
    border-radius: 4px;
    border: 2px solid #222222;
    /* Marge interne pour détacher le scroller */
}

.music-filter-dropdown .dropdown-menu::-webkit-scrollbar-thumb:hover {
    background-color: #aaaaaa;
    /* Plus clair au survol */
}

.soulignement h1 {
    display: inline-block;
    /* Permet d'ajuster la largeur au texte */
    text-decoration: none;
    /* Supprime le soulignement natif */
    position: relative;
    /* Nécessaire pour le pseudo-élément */
}

.soulignement h1::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -35px;
    /* Ajuste l'espacement entre le texte et le soulignement */
    width: 100%;
    /* Prend uniquement la largeur du texte */
    height: 20px;
    /* Épaisseur du soulignement */
    background-color: currentColor;
    /* Utilise la couleur du texte */
    ;
    border-top-left-radius: 8px;
    /* Ajuste ici le rayon d’arrondi */
    border-top-right-radius: 8px;
}

.audio-player button,
.audio-player button:hover {
    border: none;
    color: #86837a;
    background: none;
    font-size: 30px;
    padding: 0;
}

.play .audio-player button,
.play .titre span.elementor-heading-title {
    color: #bca34f !important;

}


.send,
.basket {
    display: none;
}

.play .send,
.play .basket,
.play {
    display: none;
}

.plyr {
    background: transparent !important;
    box-shadow: none !important;
}

.plyr--audio .plyr__controls {
    background: #f8f8f8;
    /* Fond léger */
    border-radius: 8px;
    padding: 5px 10px;
}

.plyr--audio .plyr__control {
    color: #333;
    background: transparent !important;
}

.plyr--audio .plyr__control:hover {
    color: #0073aa;
}

.plyr__volume {
    display: none;
    /* Cache le bouton volume */
}


.play .basket {
    font-size: 20px;
}

.plyr--audio .plyr__progress {
    margin: 0 10px;
}

.catalogue-audio {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

.product {
    padding: O;
    text-align: center;

}


.product h3 {
    font-size: 18px;
    margin-bottom: 10px;
}

.plyr {
    width: 100%;
    margin-top: 10px;
}

.product-link {
    display: block;
    margin-top: 10px;
    background: #0073aa;
    color: #fff;
    padding: 8px 12px;
    border-radius: 5px;
    text-decoration: none;
}

.product-link:hover {
    background: #005f8d;
}

/* Forcer la largeur du conteneur à 860px */
.elementor-loop-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px;
    /* Espacement entre les éléments */
}

/* S'assurer que chaque produit a la bonne largeur */
.elementor-loop-container .product {
    box-sizing: border-box;
}

/* Optionnel : ajuster les tailles pour les petits écrans */
@media (max-width: 1024px) {
    .elementor-loop-container .product {
        width: 45%;
        /* Ajuste la largeur à 45% sur les écrans plus petits */
    }
}

@media (max-width: 768px) {
    .elementor-loop-container .product {
        width: 100%;
        /* Passe à 100% sur les petits écrans */
    }
}

.elementor-loop-container {
    --product-width: 100%;
    /* Valeur par défaut */
}

.elementor-loop-container .product {
    width: 50%;
}

.music-categories button,
.music-styles button {
    float: left;
    width: 100%;
    background-color: #c1c1c1;
    color: #3e3e3e;
    border: 0;
    margin-bottom: 10px;
    margin-left: 10px;
    border-radius: 0;
    font-family: Arial;
    font-weight: bold;
    font-size: 22px
}

.music-categories button:hover,
.music-categories button.active,
.music-styles button:hover,
.music-styles button.active {
    background-color: #bca34f;
    color: #FFFFFF;
}

.elementor-loop-container {
    width: 100% !important;
    max-width: 100% !important;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    /* ou space-between */
}

.audio-player {
    width: 72px;
}

button:hover {
    background: inherit;
    border: none;
    color: none;
}

.add_to_cart_button.ajax_add_to_cart {
    padding: 0 !important;
}

.send {
    height: 20px;
}

.loopsound .elementor-loop-container.elementor-grid,
.loopsound .elementor-widget-loop-grid .elementor-grid,
.loopsound .elementor-loop-container {
    grid-row-gap: none !important;
    gap: 0 !important;
}

[type=button]:focus,
[type=button]:hover,
[type=submit]:focus,
[type=submit]:hover,
button:focus,
button:hover {
    background: none;
}

.acf-ambiance,
.acf-style,
.acf-thematique,
.acf-global-tags {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Titre de la musique dans la boucle produit */
.product h3,
.product .elementor-heading-title {
    font-size: 16px !important;
    /* Réduit de 18px/20px à 16px */
    margin-bottom: 5px;
    /* Réduit l'espace sous le titre */
    line-height: 1.2;
}

.acf-ambiance li,
.acf-style li,
.acf-thematique li,
.acf-instrument li,
.acf-global-tags li {
    background-color: #bca34f;
    color: #000;
    padding: 4px 8px;
    /* Réduit le padding (était 6px 12px) */
    border-radius: 20px;
    font-size: 10px;
    /* Réduit la police (était 12px) */
    font-weight: 500;
    cursor: pointer;
    line-height: 1.2;
}

/* Espacement entre les tags */
.acf-ambiance,
.acf-style,
.acf-thematique,
.acf-instrument,
.acf-global-tags {
    gap: 5px;
    /* Réduit l'écart entre les tags (était 8px) */
}

/* Couleurs spécifiques par type de tag */
.acf-global-tags li[data-type="style"],
.acf-style li {
    background-color: #bca34f;
    /* Or (Standard) */
}

.acf-global-tags li[data-type="ambiance"],
.acf-ambiance li {
    background-color: #d4c07b;
    /* Or clair / Beige */
}

.acf-global-tags li[data-type="thematique"],
.acf-thematique li {
    background-color: #a28d40;
    /* Or foncé / Bronze */
}

/* On force la couleur pour les instruments partout */
.acf-global-tags li[data-type="instrument"],
.acf-instrument li,
li[data-type="instrument"] {
    background-color: #8c7335 !important;
    /* Marron / Bronze (Instrument) */
}

.acf-global-tags li:hover,
.filter-badge:hover {
    filter: brightness(1.1);
    /* Petit effet de surbrillance pour tous */
}

/* Style du loader - lightbox centrée */
#loader {
    display: none;
    /* Masquer par défaut */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    /* Fond semi-transparent */
    z-index: 9999;
    /* Assurer qu'il reste au-dessus des autres éléments */
    text-align: center;
    justify-content: center;
    align-items: center;
}

/* Style du spinner */
.spinner {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: conic-gradient(#0000 10%, #bca34f);
    -webkit-mask: radial-gradient(farthest-side, #0000 calc(100% - 9px), #000 0);
    animation: spinner-zp9dbg 1s infinite linear;
}

/* Animation du spinner */
@keyframes spinner-zp9dbg {
    to {
        transform: rotate(1turn);
    }
}

/* Style du wrapper */
.music-checkbox-wrapper {
    display: inline-flex;
    align-items: center;
    position: relative;
    cursor: pointer;
}

/* Masquer la case à cocher par défaut */
.music-checkbox {
    display: none;
}

/* Style du label qui remplace la case à cocher */
.music-checkbox-label {
    width: 40px;
    height: 20px;
    background-color: #ccc;
    border-radius: 20px;
    position: relative;
    transition: background 0.3s ease-in-out;
}

/* La pastille du switch */
.music-checkbox-label::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s ease-in-out;
}

/* Quand la case est cochée */
.music-checkbox:checked+.music-checkbox-label {
    background-color: #bca34f;
}

/* Déplacer la pastille quand cochée */
.music-checkbox:checked+.music-checkbox-label::after {
    transform: translateX(20px);
}

/* Infobulle */
.music-checkbox-wrapper::before {
    content: attr(data-tooltip);
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    font-size: 12px;
    padding: 6px 10px;
    border-radius: 5px;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    pointer-events: none;
    z-index: 1;
}

/* Afficher l'infobulle au survol */
.music-checkbox-wrapper:hover::before {
    opacity: 1;
}

.music-tooltip {
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    background: #222;
    color: #fff;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 999;
    opacity: 0;
    animation: fade-in-out 2s forwards;
    pointer-events: none;
}

@keyframes fade-in-out {
    0% {
        opacity: 0;
        transform: translateX(-50%) translateY(10px);
    }

    10% {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    90% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translateX(-50%) translateY(-10px);
    }
}

.product-quantity {
    display: none;
}


.music-tooltip {
    position: absolute;
    background: #222;
    color: white;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 13px;
    top: -35px;
    left: 0;
    white-space: nowrap;
    opacity: 0;
    animation: fadeInOut 2s forwards;
}

.style-filter-dropdown .dropdown-menu {}


@keyframes fadeInOut {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }

    10% {
        opacity: 1;
        transform: translateY(0);
    }

    90% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translateY(-10px);
    }
}

/* Container du filtre */
.music-filter-dropdown {
    position: relative;
    display: inline-block;
    font-family: sans-serif;
    font-size: 14px;
    min-width: 200px;
    /* Largeur uniforme */
}

/* Bouton du titre du filtre */
.music-filter-dropdown .dropdown-toggle {
    background: #0e110f;
    /* Couleur noire */
    color: white;
    /* Texte blanc */
    border: 1px solid #0e110f;
    /* Bordure de la même couleur */
    padding: 10px 15px;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    transition: all 0.3s ease;
    box-shadow: 0px 4px 10px #0e110f;
    /* Ombre plus marquée */
}

.music-filter-dropdown .dropdown-toggle:hover {
    background: #333;
    /* Changement de couleur au survol */
    border-color: #333;
}

/* Chevron du bouton */
.music-filter-dropdown .chevron {
    margin-left: 10px;
    font-size: 12px;
}

/* Menu déroulant */
.music-filter-dropdown .dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: #171716;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    /* Ombre pour le menu */
    display: none;
    margin-top: 4px;
    padding: 10px;
    z-index: 1000;
    width: 100%;
    /* Même largeur que le bouton */
    color: #FFFFFF;
    font-weight: bold
}

/* Style des éléments de la liste */
.music-filter-dropdown .dropdown-menu label {
    display: block;
    margin: 8px 0;
    cursor: pointer;
    font-size: 14px;
}

.music-filter-dropdown .dropdown-menu label:hover {
    border-radius: 4px;
    color: #BCA34F
}

/* Affichage du menu déroulant quand il est ouvert */
.music-filter-dropdown.open .dropdown-menu {
    display: block;
}

/* Style des cases à cocher */
.music-filter-dropdown input[type="checkbox"] {
    margin-right: 8px;
}

/* Animation d'ouverture du menu */
@keyframes dropdownAnimation {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

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

/* Animation du dropdown */
.style-filter-dropdown.open .dropdown-menu {
    animation: dropdownAnimation 0.3s ease;
}

/* Ajustement des labels pour les petits écrans */
@media (max-width: 480px) {
    .style-filter-dropdown .dropdown-toggle {
        padding: 8px 12px;
        font-size: 14px;
    }

    .style-filter-dropdown .dropdown-menu label {
        font-size: 13px;
        margin: 6px 0;
    }
}



.filter-checkbox {
    display: none;
}

/* Styliser le label sélectionné */
.filter-label.selected {
    background-color: #2196f3;
    color: white;
    border-radius: 4px;
    padding: 5px;
    margin: 3px;
    cursor: pointer;
}

/* Styliser les labels non sélectionnés */
.filter-label {
    padding: 5px;
    margin: 3px;
    cursor: pointer;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.dropdown-menu input {
    display: none
}

.dropdown-menu label.selected {
    color: #BCA34F;
}

/* Style du lecteur audio */
#global-audio-player {
    background-color: #171717;
    /* Couleur de fond du lecteur */
    padding: 10px;
    border-radius: 5px;
    width: 100%;
    margin: auto;
}



/* La partie buffer de la barre de progression (si tu en as) */
#global-audio-player .plyr__progress--buffer {
    background-color: #999;
    /* Couleur de la partie buffer, tu peux la personnaliser */
}

/* Assure-toi que les autres éléments de style ne sont pas en conflit */
#global-audio-player .plyr__controls {
    background-color: #171717;
    /* Fond du contrôleur */
}

#global-audio-player {
    color: #BCA34F;
}

/* Style du contrôleur de lecture */
#global-audio-player .plyr__controls {
    background-color: #171717;
    /* Fond du contrôleur */
}

/* Modifier les couleurs des boutons de contrôle */
#global-audio-player .plyr__control {
    color: #BCA34F;
    /* Couleur des icônes de contrôle */
}

#global-audio-player .plyr__control:hover {
    color: #fff;
    /* Changer la couleur au survol */
}

/* Modifier l'apparence du bouton de lecture */
#global-audio-player .plyr__control--overlaid {
    background-color: #BCA34F;
    /* Couleur du bouton de lecture */
}

/* Modifier la couleur du texte */
#global-audio-player .plyr__current-time,
#global-audio-player .plyr__duration {
    color: #fff;
    /* Couleur du texte pour le temps actuel et la durée */
}

.stylish-loader {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 60px;
    margin: 20px 0;
}

.stylish-loader .dot {
    width: 12px;
    height: 12px;
    margin: 0 5px;
    border-radius: 50%;
    background-color: #bca34f;
    /* couleur dorée, modifie selon ton style */
    animation: bounce 0.6s infinite ease-in-out;
}

.stylish-loader .dot1 {
    animation-delay: 0s;
}

.stylish-loader .dot2 {
    animation-delay: 0.2s;
}

.stylish-loader .dot3 {
    animation-delay: 0.4s;
}

@keyframes bounce {

    0%,
    80%,
    100% {
        transform: scale(0);
        opacity: 0.3;
    }

    40% {
        transform: scale(1);
        opacity: 1;
    }
}


.tag .e-con-inner {
    padding-top: 0;
}

.download-btn {
    display: inline-block;
    background: #bca34f;
    color: white !important;
    padding: 10px 25px;
    border-radius: 30px;
    font-weight: bold;
    text-decoration: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: background 0.3s ease, transform 0.2s ease;
}

.download-btn:hover {
    background: #a28d40;
    transform: translateY(-2px);
}

.lecteur {
    width: 1140px;
}

.style-filter-dropdown .dropdown-menu,
.ambiance-filter-dropdown .dropdown-menu,
.thematique-filter-dropdown .dropdown-menu {
    display: none;
    position: absolute;
    padding: 10px;
    z-index: 100;
}

.style-filter-dropdown.open .dropdown-menu,
.ambiance-filter-dropdown.open .dropdown-menu,
.thematique-filter-dropdown.open .dropdown-menu {
    display: block;
}

.elementor-loop-container {
    position: relative;
}

/* Ligne verticale au centre */
.elementor-loop-container::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background-color: #ccc;
    /* Choisis ta couleur */
    transform: translateX(-50%);
    margin-right: 10px;
}


.elementor-loop-container>.e-loop-item:nth-child(even) .elementor-element.productsound {
    float: right;
    width: 100%;
}

.elementor-loop-container>.e-loop-item:nth-child(odd) .elementor-element.productsound {
    float: left;
    width: 100%;
}

/* Force Elementor Template inner structure to fill the loop item */
.elementor-loop-container .e-loop-item .elementor-section,
.elementor-loop-container .e-loop-item .elementor-column,
.elementor-loop-container .e-loop-item .elementor-widget-wrap,
.elementor-loop-container .e-loop-item .elementor-container,
.elementor-loop-container .e-loop-item .e-con,
.elementor-loop-container .e-loop-item .e-con-inner,
.elementor-loop-container .e-loop-item .e-loop-item {
    width: 100% !important;
}

.favorite-button {
    display: none;
}

/* ==========================================================================
   REFONTE LAYOUT FILTRES (2 LIGNES) - V6 (Zero Margin Justified)
   ========================================================================== */

/* Conteneur parent Elementor - Forcé à 100% de largeur */
.elementor-element.elementor-element-fa9a206 {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px 15px !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-direction: row !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* On force tous les widgets à ne pas avoir de marges ou paddings parasites */
.elementor-element.elementor-element-fa9a206>.elementor-widget {
    margin: 0 !important;
    padding: 0 !important;
}

/* Les dropdowns de la ligne 1 - Utilisation de flex-grow pour remplir l'espace */
.elementor-element.elementor-element-fa9a206>.elementor-widget:nth-child(-n+4) {
    flex: 1 1 calc(24% - 12px) !important;
    min-width: 150px !important;
    max-width: none !important;
    width: auto !important;
}

/* Le BPM Slider (5ème) sur la ligne 2 */
.elementor-element.elementor-element-fa9a206>.elementor-widget:nth-child(5) {
    flex: 3 1 calc(74% - 15px) !important;
    min-width: 300px !important;
}

/* Le bouton Réinitialiser (6ème) sur la ligne 2 */
.elementor-element.elementor-element-fa9a206>.elementor-widget:nth-child(6) {
    flex: 1 1 calc(24% - 15px) !important;
    display: flex !important;
    justify-content: flex-end !important;
}

/* Ajustement responsive pour mobile */
@media (max-width: 767px) {
    .elementor-element.elementor-element-fa9a206 {
        gap: 15px 0 !important;
    }

    .elementor-element.elementor-element-fa9a206>.elementor-widget {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* ==========================================
   MODERN SEARCH INPUT STYLES
   ========================================== */
.e-search-input {
    background-color: #0e110f !important;
    /* Dark/Black background matching theme */
    border: 1px solid #333 !important;
    color: #fff !important;
    border-radius: 50px !important;
    /* Pill shape */
    padding: 15px 25px !important;
    /* Comfortable padding */
    font-size: 16px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3) !important;
    /* Subtle drop shadow */
    width: 100%;
}

.e-search-input:focus {
    border-color: #bca34f !important;
    /* Gold border */
    box-shadow: 0 0 15px rgba(188, 163, 79, 0.2), 0 4px 6px rgba(0, 0, 0, 0.3) !important;
    /* Gold Glow */
    outline: none !important;
    background-color: #171716 !important;
    /* Slightly lighter on focus */
}

.e-search-input::placeholder {
    color: #666 !important;
    font-weight: 300;
}

/* Adjust the search icon if present (Elementor default class) */
.elementor-search-form__submit {
    background-color: transparent !important;
    color: #bca34f !important;
    /* Gold Icon */
    border-radius: 0 50px 50px 0 !important;
}

.elementor-search-form__submit:hover {
    color: #fff !important;
}

/* Waveform Audio Visualizer */
.waveform-container {
    display: block;
    width: 100%;
    min-height: 40px;
    height: 40px;
    /* Force fixed height to match JS default */
    position: relative;
    z-index: 10;
    margin-top: 10px;
    /* Space from other elements */
    background: transparent;
    /* Debug: change to red if still invisible */
}