.ge-rs-faq {
    margin: 24px 0;
}

.ge-rs-faq__heading {
    /* Pas de typo imposée : hérite du style H3 déjà défini par le thème. */
    margin: 0 0 12px;
}

.ge-rs-faq__list {
    border-top: 1px solid #e0e0e0;
}

.ge-rs-faq__item {
    border-bottom: 1px solid #e0e0e0;
}

.ge-rs-faq__question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: none;
    border: none;
    text-align: left;
    padding: 16px 4px;
    cursor: pointer;
    /* Hérite la police/couleur/taille du thème au lieu d'imposer un style :
       les <button> ne récupèrent pas la police du body par défaut dans tous
       les navigateurs, d'où le font:inherit explicite. */
    font: inherit;
    color: inherit;
}

.ge-rs-faq__question:hover {
    opacity: 0.8;
}

/* Certains thèmes définissent "button:focus { outline: 1px dotted; ... }"
   avec une spécificité plus forte qu'un simple outline:none sur la classe.
   On neutralise donc explicitement l'état :focus (spécificité 0,2,0,
   supérieure à celle de "button:focus" = 0,1,1), puis on ré-affiche un
   anneau propre uniquement pour la navigation clavier via :focus-visible. */
.ge-rs-faq__question:focus {
    outline: none;
}

.ge-rs-faq__question:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Icône +/- construite avec de vrais éléments DOM (et non un ::before/::after
   généré en CSS) : certains thèmes/constructeurs de pages neutralisent le
   contenu des pseudo-éléments ("content: '' !important") pour désactiver
   leurs propres icônes, ce qui effaçait le signe +/- sur certains sites. */
.ge-rs-faq__icon {
    position: relative;
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
}

.ge-rs-faq__icon-bar {
    position: absolute;
    top: 50%;
    left: 50%;
    background-color: currentColor;
    transform: translate(-50%, -50%);
}

.ge-rs-faq__icon-bar--h {
    width: 14px;
    height: 2px;
}

.ge-rs-faq__icon-bar--v {
    width: 2px;
    height: 14px;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.ge-rs-faq__question[aria-expanded="true"] .ge-rs-faq__icon-bar--v {
    transform: translate(-50%, -50%) rotate(90deg);
    opacity: 0;
}

.ge-rs-faq__answer {
    padding: 0 4px 16px;
}

.ge-rs-faq__answer[hidden] {
    display: none;
}

.ge-rs-faq__answer-inner p:first-child {
    margin-top: 0;
}

.ge-rs-faq__answer-inner p:last-child {
    margin-bottom: 0;
}
