/**
 * Suchergebnisseite /suche/: Segmented-Toggle (mit/ohne Termine) und
 * nachgelagerter "Kurse ohne festen Termin"-Button.
 * Gerendert von includes/integrations/jetengine-search-query.php.
 *
 * Bewusst KEINE Hover-Effekte (Entscheid Leon 2026-07-09). Die :hover-Regeln
 * existieren trotzdem und wiederholen den Normalzustand, weil zwei globale
 * Regeln sonst reingrätschen:
 *   .elementor-kit-22 a:hover { font-size: inherit; ... }  -> "Grow"-Effekt
 *   a:hover { color: ... }                                 -> Farbwechsel
 * Spezifität muss über (0,2,1) liegen, daher die verschachtelten Selektoren.
 */

/* "Alle Filter zurücksetzen": hide-widget-Klasse (JSF + hdt-search-url-state.js).
   Ein Elementor-Template setzt auf dem Widget display:block !important
   (.elementor-47 .elementor-element-dfd4c0d) — daher Spezifität (0,4,0). */
.elementor-element.elementor-widget.elementor-widget-jet-smart-filters-remove-filters.hide-widget {
    display: none !important;
}

/* --- Toggle über dem Grid --------------------------------------------- */
.hdt-search-toggle {
    display: inline-flex;
    margin-bottom: 24px;
    border: 1px solid #034F5E;
}

.hdt-search-toggle .hdt-search-toggle__option,
.hdt-search-toggle .hdt-search-toggle__option:hover,
.hdt-search-toggle .hdt-search-toggle__option:focus,
.hdt-search-toggle .hdt-search-toggle__option:visited {
    padding: 10px 20px;
    font-family: "Roboto", sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: normal;
    color: #034F5E;
    background-color: #FFFFFF;
    text-decoration: none;
    white-space: nowrap;
}

.hdt-search-toggle .hdt-search-toggle__option.is-active,
.hdt-search-toggle .hdt-search-toggle__option.is-active:hover,
.hdt-search-toggle .hdt-search-toggle__option.is-active:focus,
.hdt-search-toggle .hdt-search-toggle__option.is-active:visited {
    background-color: #034F5E;
    color: #FFFFFF;
    cursor: default;
}

/* --- Button unter Grid/Pagination ------------------------------------- */
.hdt-search-more-undated {
    margin-top: 32px;
    text-align: center;
}

.hdt-search-more-undated .hdt-search-more-undated__button,
.hdt-search-more-undated .hdt-search-more-undated__button:hover,
.hdt-search-more-undated .hdt-search-more-undated__button:focus,
.hdt-search-more-undated .hdt-search-more-undated__button:visited {
    display: inline-block;
    padding: 12px 32px;
    background-color: #034F5E;
    color: #FFFFFF;
    border: 0;
    font-family: "Roboto", sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: normal;
    text-decoration: none;
}

.hdt-search-more-undated__label {
    color: inherit;
    font-size: inherit;
}

.hdt-search-more-undated__sub {
    display: block;
    margin-top: 8px;
    font-family: "Roboto", sans-serif;
    font-size: 13px;
    color: #525556;
}

/* Flash-Guard: Checkbox-Filterlisten verbergen, bis der JSF-Indexer beim Init
   die irrelevanten Terme ausgeblendet und die Zähler gefüllt hat — sonst sind
   sekundenlang ALLE Themen/Schlagworte ohne Counts sichtbar ("falsche Themen").
   Die Klasse setzt/entfernt ein Inline-Script (theme-support.php); ohne JS
   wird sie nie gesetzt, die Listen bleiben dann normal sichtbar. */
html.hdt-jsf-pending .jet-smart-filters-checkboxes .jet-checkboxes-list {
    visibility: hidden;
    position: relative;
}

/* visibility (anders als display) lässt sich am Pseudo-Element wieder
   einschalten — so zeigt die versteckte Liste selbst den Lade-Hinweis. */
html.hdt-jsf-pending .jet-smart-filters-checkboxes .jet-checkboxes-list::after {
    content: "Lädt …";
    visibility: visible;
    position: absolute;
    top: 0;
    left: 0;
    font-family: "Roboto", sans-serif;
    font-size: 13px;
    color: #525556;
}

/* Busy-Lock: solange ein JSF-Filter-Ajax läuft (html.hdt-jsf-busy, gesetzt
   von hdt-jsf-busy.js), sind alle Filter + Grid gesperrt — sonst lassen sich
   mit den alten Counts unmögliche Filter-Kombinationen anklicken. */
html.hdt-jsf-busy [class*="jet-smart-filters-"],
html.hdt-jsf-busy .jet-listing-grid,
html.hdt-jsf-busy .hdt-search-toggle,
html.hdt-jsf-busy .hdt-search-more-undated {
    pointer-events: none;
    opacity: 0.45;
    transition: opacity 0.15s ease;
}

/* Zentraler Spinner über der Trefferliste */
html.hdt-jsf-busy .jet-listing-grid {
    position: relative;
}

html.hdt-jsf-busy .jet-listing-grid::after {
    content: "";
    position: absolute;
    top: 120px;
    left: 50%;
    width: 40px;
    height: 40px;
    margin-left: -20px;
    border: 4px solid rgba(3, 79, 94, 0.2);
    border-top-color: #034F5E;
    border-radius: 50%;
    animation: hdt-jsf-spin 0.8s linear infinite;
    z-index: 10;
}

@keyframes hdt-jsf-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Karten enthalten eigene verschachtelte Listings (Badges) — Spinner nur auf
   dem äußersten Grid, gedimmt wird ohnehin über den Vorfahren. */
html.hdt-jsf-busy .jet-listing-grid .jet-listing-grid::after {
    content: none;
}
