.faq-accordion {
    margin: 1.5rem auto;
}

.faq-item + .faq-item {
    border-top: 1px solid rgba(0,0,0,.08);
}

.faq-question {
    width: 100%;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    padding: 1.2rem 0;
    font-size: 1.05rem;
    font-weight: 600;
    background: none;
    border: none;
    cursor: pointer;
}

.faq-icon {
    display: flex;
    align-items: center;
    transition: transform 0.35s ease;
}

.faq-chevron {
    transition: transform 0.35s ease;
}

.faq-question[aria-expanded="true"] .faq-chevron {
    transform: rotate(180deg);
}

/* Panel base: collapsed by default */
.faq-answer {
    /* We no longer rely on [hidden] for the animation timing itself.
       JS removes/sets hidden only at the very end to keep accessibility intact. */
    padding: 0 0 0 0;
    height: 0;
    opacity: 0;
    overflow: hidden;
}

/* Open state (height is animated inline; class handles opacity) */
.faq-answer.is-open {
    opacity: 1;
}

/* Inner content spacing */
.faq-answer-content {
    padding: 0 0 1rem 0;
}

.faq-answer-content > *:first-child { margin-top: 0; }
.faq-answer-content > *:last-child  { margin-bottom: 0; }

/* Reduced motion: keep things snappy and accessible */
@media (prefers-reduced-motion: reduce) {
    .faq-icon { transition: none; }
}