/* FAQ accordion — smooth open/close transition, decoupled from the
   details/summary default instant show-hide via grid-template-rows */
#faq-list details > .faq-content {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows 300ms ease-out, opacity 250ms ease-out;
}

#faq-list details[open] > .faq-content {
    grid-template-rows: 1fr;
    opacity: 1;
}

/* Reveal-on-scroll — sections fade/slide in once as they enter the viewport */
.reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 700ms ease-out, transform 700ms ease-out;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
