/**
 * Styles partagés pour les accordéons FAQvo
 * Utilisés à la fois en front-end et back-end
 * Dernière mise à jour : 05/03/2025
 */

/* Conteneur principal */
.faqvo-container {
    width: 100% !important;
   
    font-family: inherit;
    border: none;
    border-radius: 0 !important;
    overflow: hidden;
    box-shadow: none; 
    box-sizing: border-box;
    max-width: none !important;
    background-color: transparent !important;
    position: relative;
    z-index: 1;
}

/* Pas d'effet de survol sur le conteneur principal */
.faqvo-container:hover {
    box-shadow: none;
}

/* Item FAQ */
.faqvo-item {
    margin: 0 0 1px 0;
    border-bottom: none;
    width: 100% !important;
    border-radius: 0 !important;
    box-sizing: border-box;
    transition: background-color 0.3s ease; 
    will-change: background-color, transform;
}

.faqvo-item:last-child {
    margin-bottom: 0;
}

/* Effet de survol subtil sur chaque élément */
.faqvo-item:hover {
    background-color: transparent;
}

/* Question */
.faqvo-question {
    /* Les couleurs seront définies dynamiquement par le shortcode */
    display: block;
    width: 100%;
}

.faqvo-toggle {
    width: 100% !important;
    border: none !important;
    background: #f9f9f9;
    text-align: left !important;
    font-weight: 600 !important;
    font-size: 1em !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    font-family: inherit !important;
    /* La couleur sera définie dynamiquement */
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    outline: none !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    height: auto !important;
    line-height: 1.5 !important;
    position: relative !important;
    overflow: hidden !important;
    padding:15px;
}

/* Effet de ripple au clic */
.faqvo-toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    background: rgba(0, 0, 0, 0.05);
    opacity: 0;
    border-radius: 100%;
    transform: scale(1, 1) translate(-50%, -50%);
    transform-origin: 50% 50%;
}

.faqvo-toggle:active::after {
    opacity: 1;
    width: 1000px;
    height: 1000px;
    transition: all 0.3s ease-out;
}

.faqvo-toggle:hover {
    /* La couleur sera définie dynamiquement */
    filter: brightness(0.98);
}

.faqvo-toggle:focus {
    outline: none;
}

.faqvo-question-text {
    flex: 1;
    padding-left: 20px;
    position: relative;
}

.faqvo-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-left: 10px;
    transform-origin: center center;
    will-change: transform;
    /* S'assurer que la couleur n'est pas surchargée */
    color: inherit !important;
}

/* Style pour l'icône + et - */
.faqvo-unicode-arrow {
    display: inline-block !important;
    font-size: 20px !important;
    line-height: 1 !important;
    transition: transform 0.3s ease !important;
    /* Permettre aux styles inline de surcharger */
    color: inherit !important;
    font-weight: bold !important;
    content: '+' !important;
}

.faqvo-toggle:hover .faqvo-icon {
    transform: scale(1.1);
}

/* Changement de l'icône + en - quand l'accordéon est ouvert */
.faqvo-toggle .faqvo-unicode-arrow::before {
    content: '+' !important;
}

.faqvo-toggle[aria-expanded="true"] .faqvo-unicode-arrow::before {
    content: '-' !important;
}

/* Mise à jour pour utiliser notre nouveau système de flèche */
.faqvo-toggle:hover[aria-expanded="true"] .faqvo-icon {
    transform: scale(1.1); /* La rotation est maintenant gérée par l'élément flèche */
}

/* Réponse */
.faqvo-answer {
    /* Les couleurs seront définies dynamiquement */
    padding: 20px 20px 20px 20px !important;
    line-height: 1.6 !important;
    border: none !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    will-change: height, opacity, transform; /* Optimisation des performances */
    transform-origin: top center; /* Point d'origine pour les animations */
    backface-visibility: hidden; /* Amélioration des performances de rendu */
    -webkit-font-smoothing: subpixel-antialiased; /* Amélioration du rendu du texte */
    border-radius: 0 0 4px 4px !important;
    margin: 0 !important;
    flex-basis: 100% !important;
    background: #ffffff;
    
    /* Transitions optimisées pour l'animation */
    transition-property: max-height, opacity, padding !important;
    transition-duration: 0.25s !important;
    overflow: hidden !important;
    opacity: 1 !important;
}

/* Classes pour l'animation jQuery */
.faqvo-answer.opening, .faqvo-answer.closing {
    /* Ces classes sont utilisées uniquement comme marqueurs état */
    /* Les propriétés d'animation sont gérées par jQuery */
    transition-property: all !important;
}

/* État ouvert */
.faqvo-answer:not([hidden]) {
    display: block !important;
    opacity: 1 !important;
    width: 100% !important;
    min-width: 100% !important;
}

/* État caché */
.faqvo-answer[hidden] {
    display: none !important; /* Appliqué après la transition */
}

/* État transitoire pour la fermeture */
.faqvo-answer:not([hidden])[aria-hidden="true"] {
    max-height: 0 !important;
    opacity: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
}

/* Classe pour forcer la visibilité */
.faqvo-force-visible {
    display: block !important;
    padding: 20px 30px 25px !important;
}

/* Style actif pour l'accordéon ouvert */
.faqvo-toggle[aria-expanded="true"] {
    /* La couleur sera définie dynamiquement */
    border-bottom: none;
    border-radius: 4px 4px 0 0 !important;
    background: #ffffff;
}

/* Message si pas de FAQ */
.faqvo-no-faqs {
    padding: 20px;
    background-color: #f8f8f8;
    border-left: 4px solid #ddd;
    font-style: italic;
    border-radius: 4px;
}

body.has-faqvo {
    position: relative;
}

/* Responsive */
@media (max-width: 767px) {
    .faqvo-toggle {
        padding: 12px 45px 12px 15px;
        font-size: 0.95em;
    }
    
    .faqvo-answer {
        padding: 15px;
        font-size: 0.95em;
    }
    
    .faqvo-icon {
        right: 15px;
    }
}
