/* FAQ Accordion (Accessible, no layout jumps) */
.faq-accordion .faq-item { border-bottom: 1px solid rgba(0,0,0,.08); }
.faq-accordion .faq-question { margin: 0; }
.faq-accordion .faq-toggle {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; text-align: left; padding: .9rem 1rem; font-weight: 600;
  background: transparent; border: 0; cursor: pointer;
}
.faq-accordion .faq-icon { transition: transform .25s ease; }
.faq-accordion .faq-toggle[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }

.faq-accordion .faq-answer {
  overflow: hidden;
  transition: grid-template-rows .25s ease, opacity .25s ease;
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
}
.faq-accordion .faq-answer[hidden] { display: grid; grid-template-rows: 0fr; opacity: 0; }
.faq-accordion .faq-toggle[aria-expanded="true"] + .faq-answer { grid-template-rows: 1fr; opacity: 1; }
.faq-accordion .faq-answer-inner { min-height: 0; padding: 0 1rem 1rem; }