/* Verbindliche FAQ-Komponente. Nach Legacy-/Typografie-/Bereichs-CSS laden. */
.faq { margin-top:24px; color:var(--text); }
.faq.ticket-questions { margin-top:18px; }
.faq .faq-title { padding:0; margin:0 0 12px; color:var(--primary); font-family:var(--font-display); font-size:1.5rem; font-weight:700; line-height:1.25; text-transform:uppercase; }
.faq .faq-item { margin:0; padding:0; border:1px solid var(--light-gray); border-radius:var(--radius-md); background:var(--white); box-shadow:none; }
.faq .faq-item + .faq-item { margin-top:8px; }
.faq .faq-item > summary { display:block; position:relative; list-style:none; margin:0; padding:14px 46px 14px 18px; min-height:48px; color:var(--primary); font-family:var(--font-display); font-size:1.125rem; font-weight:600; line-height:1.35; cursor:pointer; }
.faq .faq-item > summary::-webkit-details-marker { display:none; }
.faq .faq-item > summary::after { content:""; position:absolute; right:20px; top:19px; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); }
.faq .faq-item[open] > summary::after { transform:rotate(225deg); top:23px; }
.faq .faq-item > summary:focus-visible { outline:2px solid var(--primary); outline-offset:-3px; border-radius:var(--radius-md); }
.faq .faq-answer { margin:0; padding:0 18px 14px; color:var(--text); font-family:var(--font-body); font-size:1rem; font-weight:400; line-height:1.45; text-align:left; }
/* Direkte Legacy-Farb-/Listenregeln überschreiben, nicht nur Eltern einfärben. */
.faq .faq-answer :is(p,ul,ol,li,strong,em,span,i) { color:inherit; }
.faq .faq-answer :is(p,ul,ol,li) { font-family:var(--font-body); font-size:inherit; line-height:inherit; text-align:left; }
.faq .faq-answer p { display:block; margin:0; padding:0; }
.faq .faq-answer p + p { margin-top:6px; }
.faq .faq-answer :is(ul,ol) { display:block; float:none; width:auto; margin:6px 0; padding:0 0 0 28px; }
.faq .faq-answer ul { list-style:disc outside; }
.faq .faq-answer ol { list-style:decimal outside; }
.faq .faq-answer li { display:list-item; position:static; float:none; width:auto; margin:0; padding:0; list-style:inherit; }
.faq .faq-answer li + li { margin-top:2px; }
.faq .faq-answer :is(strong,em) { display:inline; float:none; margin:0; padding:0; font-family:inherit; font-size:inherit; line-height:inherit; }
.faq .faq-answer strong { font-weight:500; }
.faq .faq-answer a:not(.btn) { color:var(--accent); font:inherit; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
/* Aktionen behalten die vorhandene Button-Komponente, keine Textlink-Darstellung. */
.faq .faq-answer a.btn { display:inline-flex; margin-top:12px; max-width:100%; font-family:var(--font-display); font-weight:700; text-decoration:none; }
.faq .faq-answer a:is(.btn-dark,.btn-primary) { color:var(--white); }
.faq .faq-answer .btn :is(span,i,svg) { color:inherit; text-decoration:none; }
@media(max-width:640px) {
 .faq { margin-top:18px; }
 .faq .faq-item > summary { padding:13px 42px 13px 14px; }
 .faq .faq-item > summary::after { right:16px; top:18px; }
 .faq .faq-item[open] > summary::after { top:22px; }
 .faq .faq-answer { padding:0 14px 12px; }
 .faq .faq-answer a.btn { white-space:normal; }
}

/* Engerer Abstand von der offenen Frage zur Antwort; Klickfläche bleibt erhalten. */
.faq .faq-item[open] > summary { padding-bottom:8px; }
