.sf-faq { max-width: 900px; margin: 0 auto; }
.sf-faq__controls { display:flex; gap: .5rem; flex-wrap: wrap; align-items:center; margin-bottom: 1rem; }
.sf-faq__search { flex:1 1 240px; padding:.6rem .8rem; }
.sf-faq__filters { display:flex; gap:.4rem; flex-wrap: wrap; }
.sf-chip { border:1px solid #ddd; background:#fff; padding:.3rem .6rem; border-radius:999px; cursor:pointer; }
.sf-chip.is-active { border-color:#333; }
.sf-faq__q { margin:0; }
.sf-faq__toggle { all:unset; cursor:pointer; display:block; font-weight:600; }
.sf-faq__a { margin-top:.4rem; }
.sf-faq__loadmore { display:block; margin:1rem auto; padding:.6rem 1rem; }

.sf-faq__search {
    flex: 1 1 240px;
    padding: .7rem 1rem;
    border: 1px solid var(--e-global-color-text, #ddd);
    border-radius: 9999px; /* pill shape */
    background: var(--e-form-field-background-color, var(--e-global-color-background, #fff));
    color: var(--e-global-color-text, #111);
    outline: none;
}

.sf-faq__search::placeholder {
    color: color-mix(in srgb, var(--e-global-color-text, #111) 50%, transparent);
    opacity: .7;
}

.sf-faq__search:hover {
    border-color: color-mix(in srgb, var(--e-global-color-text, #111) 70%, transparent);
}

.sf-faq__search:focus,
.sf-faq__search:focus-visible {
    border-color: var(--e-global-color-primary, #2271b1);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--e-global-color-primary, #2271b1) 25%, transparent);
}

.sf-chip {
    border: 1px solid color-mix(in srgb, var(--e-global-color-text, #111) 20%, transparent);
    background: var(--e-global-color-background, #fff);
    color: var(--e-global-color-text, #111);
    padding: .35rem .75rem;
    border-radius: 9999px;
    cursor: pointer;
}

.sf-chip.is-active {
    border-color: var(--e-global-color-primary, #2271b1);
    box-shadow: inset 0 0 0 1px var(--e-global-color-primary, #2271b1);
}


/* Grid für Ergebnisse: 2-spaltig (mobil 1-spaltig) */
.sf-faq__results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

@media (max-width: 768px) {
    .sf-faq__results {
        grid-template-columns: 1fr;
    }
}

/* Karten-Styling */
.sf-faq__item {
    border: 1px solid color-mix(in srgb, var(--e-global-color-text, #111) 15%, transparent);
    border-radius: 12px;
    padding: .9rem 1rem;
    background: var(--e-global-color-background, #fff);
    transition: box-shadow .2s ease, border-color .2s ease, transform .06s ease;
    display: flex;
    flex-direction: column;
}

.sf-faq__item:hover {
    border-color: color-mix(in srgb, var(--e-global-color-primary, #2271b1) 30%, transparent);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--e-global-color-primary, #2271b1) 12%, transparent);
}

.sf-faq__item:active {
    transform: translateY(1px);
}

.sf-faq__header { margin-bottom: .35rem; }
.sf-faq__q { margin: 0; line-height: 1.25; }

.sf-faq__toggle {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
    color: var(--e-global-color-primary, #111);
}

.sf-faq__toggle:focus-visible {
    outline: 2px solid var(--e-global-color-primary, #2271b1);
    outline-offset: 2px;
    border-radius: 6px;
}

/* Preview-Text (Snippet für SEO-Sichtbarkeit im UI) */
.sf-faq__preview {
    margin: .35rem 0 .5rem;
    color: color-mix(in srgb, var(--e-global-color-text, #111) 80%, transparent);
    line-height: 1.4;
    font-size: .95rem;
}

/* Volltext-Antwort (eingeklappt standard) */
.sf-faq__a {
    margin-top: .35rem;
}

/* Footer der Karte: Aktionen */
.sf-faq__actions {
    display: flex;
    justify-content: center; /* center horizontally */
    align-items: flex-end;   /* stick to bottom if card is taller */
    margin-top: auto;        /* push to bottom in flex container */
}

.sf-faq__more {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--e-global-color-text, #111) 20%, transparent);
    background: var(--e-global-color-background, #fff);
    color: var(--e-global-color-text, #111);
    padding: .35rem .75rem;
    border-radius: 9999px;
    cursor: pointer;
    font-size: .9rem;
}

.sf-faq__more:hover {
    border-color: var(--e-global-color-primary, #2271b1);
    box-shadow: inset 0 0 0 1px var(--e-global-color-primary, #2271b1);
}

/* Bereits vorhandene Styles aus deiner Datei – kompatibel lassen: */
.sf-faq { max-width: 900px; margin: 0 auto; }
.sf-faq__controls { display:flex; gap: .5rem; flex-wrap: wrap; align-items:center; margin-bottom: 1rem; }

/* runde Suche (wie zuvor umgesetzt) */
.sf-faq__search {
    flex: 1 1 240px;
    padding: .7rem 1rem;
    border: 1px solid var(--e-global-color-text, #ddd);
    border-radius: 9999px; /* pill shape */
    background: var(--e-form-field-background-color, var(--e-global-color-background, #fff));
    color: var(--e-global-color-text, #111);
    outline: none;
}
.sf-faq__search::placeholder { color: color-mix(in srgb, var(--e-global-color-text, #111) 50%, transparent); opacity: .7; }
.sf-faq__search:hover { border-color: color-mix(in srgb, var(--e-global-color-text, #111) 70%, transparent); }
.sf-faq__search:focus, .sf-faq__search:focus-visible {
    border-color: var(--e-global-color-primary, #2271b1);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--e-global-color-primary, #2271b1) 25%, transparent);
}

/* Filter-Chips (wie zuvor, leicht angepasst) */
.sf-faq__filters { display:flex; gap:.4rem; flex-wrap: wrap; }
.sf-chip {
    border: 1px solid color-mix(in srgb, var(--e-global-color-text, #111) 20%, transparent);
    background: var(--e-global-color-background, #fff);
    color: var(--e-global-color-text, #111);
    padding: .35rem .75rem;
    border-radius: 9999px;
    cursor: pointer;
}
.sf-chip.is-active {
    border-color: var(--e-global-color-primary, #2271b1);
    box-shadow: inset 0 0 0 1px var(--e-global-color-primary, #2271b1);
}

/* Restliche Utility-Elemente */
.sf-faq__link { margin-top: .4rem; }
.sf-faq__loadmore {
    display:block; margin:1rem auto; padding:.6rem 1rem;
    background: var(--e-global-color-background, #fff);
    color: var(--e-global-color-text, #111);
    border: 1px solid color-mix(in srgb, var(--e-global-color-text, #111) 20%, transparent);
}
.sf-faq__loadmore:hover {
    border-color: var(--e-global-color-primary, #2271b1);
    box-shadow: inset 0 0 0 1px var(--e-global-color-primary, #2271b1);
}
.sf-faq__empty {
    text-align:center; padding:.8rem;
    font-size: 1.2rem;
    font-weight: 800;
    width: 300px;
    margin-left: auto;
    margin-right: auto;
}


.sf-faq__loader {
    display: none;
    justify-content: center;
    padding: 1rem;
}
.sf-faq__loader.is-active {     /* <-- neu */
    display: flex;
}

@keyframes sf-spin {
    to { transform: rotate(360deg); }
}

/* ---------- LOADING: Top-Progressbar ---------- */
.sf-faq { position: relative; }
.sf-faq.is-loading::before {
    content: "";
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    display: block;
    background: linear-gradient(90deg,
    var(--e-global-color-primary, #2271b1) 0%,
    color-mix(in srgb, var(--e-global-color-primary, #2271b1) 60%, transparent) 50%,
    transparent 100%);
    animation: sf-progress 1.2s ease-in-out infinite;
    z-index: 2;
}
@keyframes sf-progress {
    0%   { background-position: 0% 0; background-size: 200% 100%; }
    100% { background-position: 200% 0; background-size: 200% 100%; }
}

/* ---------- LOADING: Grid-Skeletons ---------- */
.sf-skel {
    border: 1px solid color-mix(in srgb, var(--e-global-color-text, #111) 15%, transparent);
    border-radius: 12px;
    padding: .9rem 1rem;
    background: var(--e-global-color-background, #fff);
    overflow: hidden;
    position: relative;
}
.sf-skel__line,
.sf-skel__block {
    border-radius: 6px;
    background: color-mix(in srgb, var(--e-global-color-text, #111) 10%, transparent);
    position: relative;
    overflow: hidden;
}
.sf-skel__line { height: 14px; margin: .35rem 0; }
.sf-skel__line.w-80 { width: 80%; }
.sf-skel__line.w-60 { width: 60%; }
.sf-skel__line.w-40 { width: 40%; }
.sf-skel__block { height: 60px; margin-top: .5rem; }

.sf-skel__line::after,
.sf-skel__block::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in srgb, var(--e-global-color-text, #111) 14%, transparent) 45%,
    transparent 90%);
    animation: sf-shimmer 1.1s linear infinite;
    transform: translateX(-100%);
}
@keyframes sf-shimmer {
    100% { transform: translateX(100%); }
}

/* ---------- LOADING: Center Spinner (größer) ---------- */
.sf-faq__loader::after {
    content: "";
    width: 36px;
    height: 36px;
    border: 4px solid var(--e-global-color-primary, #2271b1);
    border-top-color: transparent;
    border-radius: 50%;
    animation: sf-spin 0.7s linear infinite;
}

/* Dezent ausgrauen, solange geladen wird */
.sf-faq.is-loading .sf-faq__results {
    opacity: .9;
    transition: opacity .2s ease;
}

.sf-faq [hidden] { display: none !important; }