/* ============================================================
   SEARCH — Overlay (Header-Block) + /search Page (page_1)
   ============================================================ */

/* ---- Such-Icon im Header ---- */
#search-overlay__toggle {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0.5rem 1rem;
  color: #fff;
  background-color: unset;
}
#search-overlay__toggle:hover {
  cursor: pointer;
}
#search-overlay__toggle:hover .search-overlay__icon {
  padding-bottom: 0;
  border-bottom: 3px solid white;
}
.search-overlay__icon {
  width: 3rem;
  height: 3rem;
  max-width: none;
  display: block;
  padding-bottom: 3px;
}

/* ---- Overlay-Wrapper ---- */
#block-search-overlay-block {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  background: rgba(0, 0, 0, 0.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  padding: 0;
  overflow: auto;
  max-width: unset;
}
body.search-overlay-open {
  scrollbar-gutter: stable;
}
/* Hintergrundseite nicht scrollen, solange das Overlay offen ist */
html:has(body.search-overlay-open),
body.search-overlay-open {
  overflow: hidden;
}
#block-search-overlay-block {
  overscroll-behavior: contain;
}
body.search-overlay-open #block-search-overlay-block {
  display: flex;
  align-items: center;
  justify-content: center;
}
#block-search-overlay-block .block__content {
  position: absolute;
  top: 10rem;
  width: 90%;
  margin: 0;
  max-width: 700px;
}
#block-search-overlay-block .view-filters {
  margin: 0;
}
#block-search-overlay-block .contextual {
  display: none !important;
}
#block-search-overlay-block h2 {
  display: none;
}
#block-search-overlay-block .view,
#block-search-overlay-block .views-element-container {
  max-width: none;
  margin: 0;
  background: transparent;
  border-radius: 0;
  padding: 0;
  gap: 0;
}

/* Links im Overlay: erben sonst weiß/unterstrichen vom Header */
#block-search-overlay-block a {
  color: black;
  text-decoration-line: none;
}

/* Ergebnis-Links als volle Klickfläche mit grauem Hover statt Unterstreichung */
#block-search-overlay-block .view-content .views-row a {
  display: block;
  width: 100%;
  padding: 0.3rem 0.5rem;
  border-radius: 3px;
}
#block-search-overlay-block .view-content .views-row a:hover {
  background-color: #eee;
}
/* Hover: angrenzende Trennlinien ausblenden, sonst wirkt die graue Box eckig */
#block-search-overlay-block .view-content .views-row:has(> a:hover),
#block-search-overlay-block .view-content .views-row:has(+ .views-row > a:hover) {
  border-bottom-color: transparent;
}

/* ---- Formular: Grid mit Suchfeld+Button (Zeile 1) und Facets (Zeile 2) ---- */
#block-search-overlay-block .views-exposed-form {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 0;
  row-gap: 0.75rem;
  align-items: center;
  padding: 0;
  background: transparent;
}

/* Box A: Suchfeld + Button als eine Pill */
#block-search-overlay-block .form-item-search-api-fulltext {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}
#block-search-overlay-block input[type="text"],
#block-search-overlay-block input[type="search"] {
  width: 100%;
  height: 5rem;
  padding: 0 1.25rem 0 2rem;
  border: none;
  border-radius: 10rem 0 0 10rem;
  background: white;
  font-size: 1.3rem;
  font-family: var(--font-primary);
}
#block-search-overlay-block .form-text:focus,
#block-search-overlay-block .form-text:active {
  outline: none;
}
#block-search-overlay-block .form-actions {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 0 0.3rem 0 0;
  height: 5rem;
  background-color: white;
  border-radius: 0 10rem 10rem 0;
}
#block-search-overlay-block .form-actions .form-submit {
  align-self: center;
  top: 0 !important;
  width: 4.5rem;
  height: 4.5rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 10rem;
  background-color: black;
  background-image: url('/themes/custom/rp/images/search-white.svg');
  background-size: 3.5rem;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
  color: transparent;
  cursor: pointer;
}
#block-search-overlay-block .form-actions .form-submit:hover {
  background-color: #444;
}
#block-search-overlay-block .form-actions .form-submit:active {
  background-color: #222;
}

/* Clear-Button (per JS vor dem Such-Button eingefügt), nur sichtbar mit Suchbegriff */
#block-search-overlay-block .search-clear,
.view-id-search.view-display-id-page_1 .search-clear {
  position: relative;
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0;
  padding: 0;
  border: 2px solid black;
  border-radius: 10rem;
  background: transparent;
  color: black;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
}
#block-search-overlay-block .search-clear::before,
.view-id-search.view-display-id-page_1 .search-clear::before {
  content: "×";
  position: absolute;
  top: -1.2px;
  left: 4px;
}
#block-search-overlay-block .views-exposed-form:has(input[name="search_api_fulltext"]:placeholder-shown) .search-clear,
.view-id-search.view-display-id-page_1 .views-exposed-form:has(input[name="search_api_fulltext"]:placeholder-shown) .search-clear {
  display: none;
}

/* Box B: Facets oben + Ergebnisse unten als eine Box - Karten-Optik nur wenn Ergebnisse existieren */
#block-search-overlay-block fieldset[data-drupal-selector="edit-type"] {
  grid-column: 1 / -1;
  grid-row: 2;
  border: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}
#block-search-overlay-block fieldset[data-drupal-selector="edit-type"] .fieldset__legend {
  display: none;
}
#block-search-overlay-block fieldset[data-drupal-selector="edit-type"] .fieldset__wrapper {
  border: none;
}
#block-search-overlay-block:has(.view-content) fieldset[data-drupal-selector="edit-type"] .fieldset__wrapper {
  background: white;
  border-radius: 1.25rem 1.25rem 0 0;
  padding: 0.75rem 1rem 0.5rem;
}
#block-search-overlay-block .form-radios.form--inline {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 0.4rem;
  padding-bottom: 0.25rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  position: relative;
}
#block-search-overlay-block .form-radios.form--inline .form-type-boolean {
  flex: 0 0 auto;
  margin: 0;
  position: static;
}
/* Facets scrollen links abgeschnitten, wenn die Leiste zentriert ist (zentrierter
   Überlauf ist nicht scrollbar) - daher linksbündig, ohne Olivero-Einrückung */
#block-search-overlay-block .form-radios.form--inline {
  justify-content: flex-start !important;
}
#block-search-overlay-block .form-radios.form--inline .form-type-boolean {
  min-width: max-content;
  padding: 0 !important;
}

#block-search-overlay-block .view-content {
  background: white;
  border-radius: 0 0 1.25rem 1.25rem;
  padding: 0.25rem 1rem 0.5rem;
  margin: 0;
  gap: 0;
}
#block-search-overlay-block .view-content .views-row {
  margin: 0;
  border-bottom: 1px solid #eee;
}
#block-search-overlay-block .view-content .views-row:last-child {
  border-bottom: none;
}
#block-search-overlay-block .view-content .views-field {
  margin: 0;
}

/* "Keine Ergebnisse": eigene abgerundete Box (ohne Treffer gibt es keine Facets darüber) */
#block-search-overlay-block .view-empty {
  margin: 0.75rem 0 0;
  padding: 1.5rem 1rem;
  background: white;
  border-radius: 1.25rem;
  color: #888;
  text-align: center;
}
#block-search-overlay-block .view-empty p {
  margin: 0;
}
/* Facets nur zusammen mit Ergebnissen (sonst stehen sie ohne Box im Overlay) */
#block-search-overlay-block .view:not(:has(.view-content)) fieldset[data-drupal-selector="edit-type"] {
  display: none;
}
/* Leeres Suchfeld (manuell gelöscht oder per ×): Facets, Ergebnisse und
   "Keine Ergebnisse" sofort ausblenden, nicht erst nach der nächsten Suche */
#block-search-overlay-block .view:has(input[name="search_api_fulltext"]:placeholder-shown) :is(fieldset[data-drupal-selector="edit-type"], .view-content, .view-empty, .more-link) {
  display: none;
}

/* Max. 3 Ergebnisse pro Content-Type: jede Zeile mit 3 direkt vorangehenden
   Zeilen ist die 4.+ ihrer Gruppe (das <h3> zwischen den Gruppen bricht die Kette) */
#block-search-overlay-block .view-content .views-row + .views-row + .views-row + .views-row {
  display: none;
}
/* "…" unter der 3. Zeile, wenn die Gruppe noch weitere (ausgeblendete) Treffer hat.
   Die Trennlinie wandert von der Zeile über das "…", damit es nicht in der Zeile klebt */
#block-search-overlay-block .view-content h3 + .views-row + .views-row + .views-row:has(+ .views-row) {
  padding-bottom: 0;
  border-bottom: none;
}
#block-search-overlay-block .view-content h3 + .views-row + .views-row + .views-row:has(+ .views-row)::after {
  content: "…";
  display: block;
  padding: 0.2rem 0.5rem 0;
  border-top: 1px solid #eee;
  color: #888;
  line-height: 1;
}

/* "Alle Ergebnisse" als Button, rechtsbündig als unterer Abschluss der weißen Box */
#block-search-overlay-block:has(.more-link) .view-content {
  border-radius: 0;
}
#block-search-overlay-block .more-link {
  display: flex;
  justify-content: flex-end;
  margin: 0;
  padding: 0.5rem 1rem 1rem;
  background: white;
  border-radius: 0 0 1.25rem 1.25rem;
}
#block-search-overlay-block .view:not(:has(.view-content)) .more-link {
  display: none;
}
#block-search-overlay-block .more-link a {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.5rem 1.1rem;
  border-radius: 25px;
  background: black;
  color: white;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: opacity 0.15s;
}
#block-search-overlay-block .more-link a::after {
  content: "→";
}
#block-search-overlay-block .more-link a:hover {
  opacity: 0.8;
  text-decoration: none;
}

/* ---- Skeleton statt Drupal-Vollbild-Spinner während der AJAX-Suche ----
   Während eines Requests hängt Drupal <div class="ajax-progress-fullscreen"> an den body.
   Den blenden wir aus und zeigen stattdessen die weiße Box mit Platzhaltern:
   ::before = Facet-Pills, ::after = Box mit Gruppen-Überschriften und Ergebniszeilen */
body.search-overlay-open .ajax-progress-fullscreen,
#block-search-overlay-block .ajax-progress {
  display: none !important;
}
#block-search-overlay-block .view-filters {
  position: relative;
  overflow: clip;
}
body:has(.ajax-progress-fullscreen) #block-search-overlay-block fieldset[data-drupal-selector="edit-type"],
body:has(.ajax-progress-fullscreen) #block-search-overlay-block .view-content,
body:has(.ajax-progress-fullscreen) #block-search-overlay-block .view-empty,
body:has(.ajax-progress-fullscreen) #block-search-overlay-block .more-link {
  display: none;
}
/* Facet-Pills: ein Pill + Kopien per box-shadow (Kopien übernehmen den border-radius) */
body:has(.ajax-progress-fullscreen) #block-search-overlay-block .view-filters::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: calc(5rem + 0.75rem + 0.9rem); /* Suchfeld + Grid-Abstand + Box-Padding */
  left: 1rem;
  width: 5.5rem;
  height: 2rem;
  border-radius: 25px;
  background: var(--rp-skeleton);
  box-shadow: 6.25rem 0 0 var(--rp-skeleton), 12.5rem 0 0 var(--rp-skeleton), 18.75rem 0 0 var(--rp-skeleton), 25rem 0 0 var(--rp-skeleton), 31.25rem 0 0 var(--rp-skeleton);
  animation: rp-skeleton-shine 0.9s ease-in-out infinite alternate;
}
/* Box mit Überschriften (kurz, flach) und Ergebniszeilen (unterschiedlich lang) */
body:has(.ajax-progress-fullscreen) #block-search-overlay-block .view-filters::after {
  content: "";
  display: block;
  height: 19rem;
  margin-top: 0.75rem;
  padding: 0 1rem;
  border-radius: 1.25rem;
  background-color: white;
  background-origin: content-box;
  background-repeat: no-repeat;
  background-image:
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)), /* Überschrift 1 */
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)),
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)),
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)),
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)), /* Überschrift 2 */
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)),
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)),
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)); /* "Alle Ergebnisse"-Button */
  background-size:
    7rem 0.8rem,
    85% 1.1rem,
    65% 1.1rem,
    75% 1.1rem,
    5rem 0.8rem,
    80% 1.1rem,
    55% 1.1rem,
    9rem 2.2rem;
  background-position:
    0.5rem 4rem,
    0.5rem 5.75rem,
    0.5rem 7.75rem,
    0.5rem 9.75rem,
    0.5rem 12.25rem,
    0.5rem 14rem,
    0.5rem 16rem,
    right 0 top 16.25rem;
  animation: rp-skeleton-shine 0.9s ease-in-out infinite alternate;
}
/* Nur die Platzhalter schimmern, die weiße Box bleibt: animiert wird die Platzhalter-Farbe
   (als registrierte Property, sonst lässt sie sich nicht animieren) statt der Deckkraft */
@property --rp-skeleton {
  syntax: "<color>";
  inherits: false;
  initial-value: #eee;
}
@keyframes rp-skeleton-shine {
  from { --rp-skeleton: #eee; }
  to { --rp-skeleton: #f8f8f8; }
}


/* ============================================================
   SEARCH — /search Page (page_1): ausführliche Suche
   Suchleiste, darunter eine eigene Filter-Box mit allen Facet-Gruppen
   (immer sichtbar, mit Überschrift), darunter Trefferzahl + Ergebnis-Box
   ============================================================ */
/* Suchseite nicht zu kurz, damit der Footer nicht hochrutscht */
.path-search #content {
  min-height: 40rem;
}
.view-id-search.view-display-id-page_1 {
  display: flex !important;
  flex-direction: column;
  gap: 0;
  max-width: 900px;
  margin: 0 auto;
}
.view-id-search.view-display-id-page_1 .view-filters {
  order: 1;
  margin: 0;
}
.view-id-search.view-display-id-page_1 .view-header {
  order: 2;
  margin: 2rem 0 0.5rem;
  padding: 0 0.25rem;
  color: #888;
  font-size: 0.8rem;
}
.view-id-search.view-display-id-page_1 .view-content,
.view-id-search.view-display-id-page_1 .view-empty {
  order: 3;
}
.view-id-search.view-display-id-page_1 .pager {
  order: 4;
  margin-top: 2rem;
}

/* "Mehr anzeigen" (Views Infinite Scroll, lädt die nächsten 50 darunter):
   unterer Abschluss der weißen Ergebnis-Box, Button als schwarze Pill */
.view-id-search.view-display-id-page_1 .pager:is([data-drupal-views-infinite-scroll-pager], :has(a.button[rel="next"])) {
  display: flex;
  justify-content: center;
  margin: 0;
  padding: 0.75rem 1.25rem 1.25rem;
  border-top: 1px solid #eee;
  border-radius: 0 0 0.5rem 0.5rem;
  background: white;
  list-style: none;
}
/* Nur wenn der Button sichtbar ist (nicht bei "- Alle -"), wird die Box unten eckig */
.view-id-search.view-display-id-page_1:not(:has(input[name="type"][value="All"][checked])):has(.pager:is([data-drupal-views-infinite-scroll-pager], :has(a.button[rel="next"]))) .view-content {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.view-id-search.view-display-id-page_1 .pager:is([data-drupal-views-infinite-scroll-pager], :has(a.button[rel="next"])) .pager__item {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 0;
}
.view-id-search.view-display-id-page_1 .pager:is([data-drupal-views-infinite-scroll-pager], :has(a.button[rel="next"])) a {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.55rem 1.4rem;
  border: none;
  border-radius: 25px;
  background: black;
  color: white;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  box-shadow: none;
  transition: background-color 0.15s;
}
.view-id-search.view-display-id-page_1 .pager:is([data-drupal-views-infinite-scroll-pager], :has(a.button[rel="next"])) a::after {
  content: "↓";
}
.view-id-search.view-display-id-page_1 .pager:is([data-drupal-views-infinite-scroll-pager], :has(a.button[rel="next"])) a:hover {
  background: #444;
  color: white;
}
/* Bei "- Alle -" gibt es pro Typ "Mehr anzeigen", kein Nachladen der ganzen Liste */
.view-id-search.view-display-id-page_1:has(input[name="type"][value="All"][checked]) .pager {
  display: none;
}

/* ---- Suchleiste (wie im Overlay) ---- */
.view-id-search.view-display-id-page_1 .views-exposed-form {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 0;
  row-gap: 0;
  align-items: center;
  padding: 0;
  background: transparent;
}
.view-id-search.view-display-id-page_1 .form-item-search-api-fulltext {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}
.view-id-search.view-display-id-page_1 input[type="text"],
.view-id-search.view-display-id-page_1 input[type="search"] {
  width: 100%;
  height: 5rem;
  padding: 0 1.25rem 0 2rem;
  border: none;
  border-radius: 10rem 0 0 10rem;
  background: white;
  font-size: 1.3rem;
  font-family: var(--font-primary);
}
.view-id-search.view-display-id-page_1 .form-text:focus,
.view-id-search.view-display-id-page_1 .form-text:active {
  outline: none;
}
.view-id-search.view-display-id-page_1 .form-actions {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 0 0.3rem 0 0;
  height: 5rem;
  background-color: white;
  border-radius: 0 10rem 10rem 0;
}
.view-id-search.view-display-id-page_1 .form-actions .form-submit {
  align-self: center;
  top: 0 !important;
  width: 4.5rem;
  height: 4.5rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 10rem;
  background-color: black;
  background-image: url('/themes/custom/rp/images/search-white.svg');
  background-size: 3.5rem;
  background-repeat: no-repeat;
  background-position: center;
  font-size: 0;
  color: transparent;
  cursor: pointer;
}
.view-id-search.view-display-id-page_1 .form-actions .form-submit:hover {
  background-color: #444;
}
.view-id-search.view-display-id-page_1 .form-actions .form-submit:active {
  background-color: #222;
}

/* ---- Filter-Box: alle Facet-Gruppen + ausklappbare "Mehr Filter" (BEF secondary) als eine Box ----
   Jede Gruppe ist ein eigenes Grid-Item; zusammen ergeben sie optisch eine Box:
   erstes Item mit Abstand + oberen Ecken, letztes (vor .form-actions) mit unteren Ecken */
.view-id-search.view-display-id-page_1 .views-exposed-form > :is(fieldset, details) {
  grid-column: 1 / -1;
  min-width: 0;
  margin: 0;
  padding: 1rem 1.5rem;
  border: none;
  border-top: 1px solid #eee;
  border-radius: 0;
  background: white;
  box-shadow: none;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > :is(.form-item-search-api-fulltext, .search-filter-toggle) + :is(fieldset, details) {
  margin-top: 2rem;
  border-top: none;
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > :is(fieldset, details):has(+ .form-actions),
.view-id-search.view-display-id-page_1 .views-exposed-form > :is(fieldset, details):last-child {
  border-bottom-left-radius: 0.75rem;
  border-bottom-right-radius: 0.75rem;
}

/* Gruppen-Überschriften: statt schwarzer Theme-Balken kleine graue Labels.
   float + width 100% holt die legend in die Box (sonst sitzt sie auf der Randlinie) */
.view-id-search.view-display-id-page_1 .views-exposed-form fieldset .fieldset__legend {
  float: left;
  width: 100%;
  margin: 0 0 0.6rem;
  padding: 0;
  border-radius: 0;
  background: none;
  color: #888;
  font-size: inherit;
}
.view-id-search.view-display-id-page_1 .views-exposed-form fieldset .fieldset__label {
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #888;
}
.view-id-search.view-display-id-page_1 .views-exposed-form fieldset .fieldset__wrapper {
  clear: both;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

/* "Mehr Filter ..." (details): Kopfzeile im Stil der Gruppen-Überschriften, Chevron rechts */
.view-id-search.view-display-id-page_1 .views-exposed-form > details {
  padding: 0 1.5rem;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 1rem 0;
  padding-inline-start: var(--sp1);
  border: none;
  border-radius: 0;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E") no-repeat right center / 1rem;
  color: #888;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  list-style: none;
  cursor: pointer;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details[open] > summary {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 10l5-5 5 5' fill='none' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E");
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary::-webkit-details-marker {
  display: none;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary::before,
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary::after {
  display: none;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary:hover {
  color: black;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary:focus {
  outline: none;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > summary:focus-visible {
  outline: 2px solid black;
  outline-offset: 2px;
}
.view-id-search.view-display-id-page_1 .views-exposed-form > details > :not(summary) {
  margin: 0;
  padding: 0 0 1rem;
  border: none;
  background: transparent;
}
/* Gruppen innerhalb von "Mehr Filter": ohne eigene Box, durch Linie getrennt */
.view-id-search.view-display-id-page_1 .views-exposed-form details fieldset {
  min-width: 0;
  margin: 0;
  padding: 0.25rem 0 0;
  border: none;
  background: transparent;
}
.view-id-search.view-display-id-page_1 .views-exposed-form details fieldset ~ fieldset {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #eee;
}
.view-id-search.view-display-id-page_1 .form-radios.form--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  position: relative;
  justify-content: flex-start !important;
}
.view-id-search.view-display-id-page_1 .form-radios.form--inline .form-type-boolean {
  flex: 0 0 auto;
  margin: 0;
  position: static;
  min-width: max-content;
  padding: 0 !important;
}

/* ---- Ergebnis-Box ---- */
.view-id-search.view-display-id-page_1 .view-content {
  background: white;
  border-radius: 0.5rem;
  padding: 0.75rem 1.25rem;
  margin: 0;
  gap: 0;
}
.view-id-search.view-display-id-page_1 .view-content .views-row {
  margin: 0;
  border-bottom: 1px solid #eee;
}
/* Ergebnis-Links als volle Klickfläche mit grauem Hover statt Unterstreichung */
.view-id-search.view-display-id-page_1 .view-content .views-row a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0.8rem 0.5rem;
  border-radius: 3px;
  color: black;
  text-decoration-line: none;
}
.view-id-search.view-display-id-page_1 .view-content .views-row a:hover {
  background-color: #eee;
}
/* Hover: angrenzende Trennlinien ausblenden, sonst wirkt die graue Box eckig */
.view-id-search.view-display-id-page_1 .view-content .views-row:has(> a:hover),
.view-id-search.view-display-id-page_1 .view-content .views-row:has(+ .views-row > a:hover) {
  border-bottom-color: transparent;
}
.view-id-search.view-display-id-page_1 .view-content .views-row:last-child {
  border-bottom: none;
}
.view-id-search.view-display-id-page_1 .view-content .views-field {
  margin: 0;
}

/* ---- "Keine Ergebnisse" ---- */
.view-id-search.view-display-id-page_1 .view-empty {
  margin-top: 2rem;
  padding: 3rem 1.25rem;
  background: white;
  border-radius: 0.5rem;
  color: #888;
  text-align: center;
}
.view-id-search.view-display-id-page_1 .view-empty p {
  margin: 0;
}
/* Ohne Suchbegriff und ohne gewählten Filter nur die Filter zeigen, noch keine Ergebnisse.
   (Die Suche läuft trotzdem, weil die Facets aus den Treffern berechnet werden.)
   Geprüft wird der abgeschickte Stand (value-/checked-Attribut aus dem HTML), nicht der
   gerade getippte - sonst tauchen beim Tippen sofort alle ungefilterten Ergebnisse auf. */
.view-id-search.view-display-id-page_1:has(input[name="search_api_fulltext"]:is([value=""], :not([value]))):not(:has(input[type="radio"][checked]:not([value="All"]))) :is(.view-header, .view-content, .view-empty, .pager) {
  display: none;
}

/* Page-AJAX: statt Drupal-Vollbild-Spinner die alten Ergebnisse abblenden */
body.path-search .ajax-progress-fullscreen {
  display: none !important;
}
.view-id-search.view-display-id-page_1 :is(.view-header, .view-content, .view-empty, .pager) {
  transition: opacity 0.15s;
}
body:not(.search-overlay-open):has(.ajax-progress-fullscreen) .view-id-search.view-display-id-page_1 :is(.view-header, .view-content, .view-empty, .pager) {
  opacity: 0.4;
  pointer-events: none;
}

/* ============================================================
   SEARCH — gemeinsame Regeln Overlay + Page
   ============================================================ */
#block-search-overlay-block .view-content h3,
.view-id-search.view-display-id-page_1 .view-content h3 {
  margin: 1rem 0 0.5rem;
  padding-top: 0.5rem;
  line-height: 1rem;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #888;
}
#block-search-overlay-block .view-content h3:first-of-type,
.view-id-search.view-display-id-page_1 .view-content h3:first-of-type {
  margin-top: 0.5rem;
  padding-top: 0;
  border-top: none;
}

#block-search-overlay-block .form-radios.form--inline label.option,
.view-id-search.view-display-id-page_1 .form-radios.form--inline label.option {
  display: inline-block;
  padding: 0.3rem 0.85rem;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.4;
  margin: 0;
  border-radius: 25px;
  background: transparent;
  color: black;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s, color 0.15s;
}
#block-search-overlay-block .form-radios.form--inline input[type="radio"],
.view-id-search.view-display-id-page_1 .form-radios.form--inline input[type="radio"] {
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
#block-search-overlay-block .form-radios.form--inline input[type="radio"]:checked + label.option,
.view-id-search.view-display-id-page_1 .form-radios.form--inline input[type="radio"]:checked + label.option {
  background: black;
  color: white;
  border-color: black;
}
/* Trefferzahl in der Pill (per JS aus "Session (34)") */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .form-radios.form--inline label.option .facet-count {
  margin-left: 0.35em;
  color: #888;
  font-size: 0.8em;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .form-radios.form--inline input[type="radio"]:checked + label.option .facet-count {
  color: #bbb;
}
#block-search-overlay-block .form-radios.form--inline label.option:hover,
.view-id-search.view-display-id-page_1 .form-radios.form--inline label.option:hover {
  opacity: 0.75;
}

/* Page: max. 5 Ergebnisse pro Content-Type, nur solange "- Alle -" aktiv ist */
.view-id-search.view-display-id-page_1:has(input[name="type"][value="All"]:checked) .view-content .views-row + .views-row + .views-row + .views-row + .views-row + .views-row {
  display: none;
}

/* Page: "Mehr anzeigen" am Ende jeder gekürzten Gruppe (per JS eingefügt) */
.view-id-search.view-display-id-page_1 .search-group-more {
  display: flex;
  justify-content: flex-end;
  padding: 1rem 0 0;
}
.view-id-search.view-display-id-page_1 .search-group-more a {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  margin: 0 auto;
  padding: 0.3rem 0.85rem;
  border: 1px solid black;
  border-radius: 25px;
  color: black;
  font-size: 1rem;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color 0.15s, color 0.15s;
}
.view-id-search.view-display-id-page_1 .search-group-more a::after {
  content: "→";
}
.view-id-search.view-display-id-page_1 .search-group-more a:hover {
  background: black;
  color: white;
}

/* Page bei "- Alle -": Platzhalter-Zeile, solange der Treffer einer fehlenden Gruppe
   nachgeladen wird (per JS). Gleiche Höhe wie eine Ergebniszeile, Balken schimmern
   wie beim Overlay-Skeleton. */
.view-id-search.view-display-id-page_1 .search-skeleton-row {
  height: calc(1.1rem * 1.4 + 1.6rem);
  padding: 0.8rem 0.5rem;
  background-image:
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton)),
    linear-gradient(var(--rp-skeleton), var(--rp-skeleton));
  background-size: 2rem 2rem, 55% 1.1rem;
  background-position: left 0.5rem center, left 3rem center;
  background-repeat: no-repeat;
  animation: rp-skeleton-shine 0.9s ease-in-out infinite alternate;
}
/* ============================================================
   SEARCH — Ergebniszeile (Modul rp_search, Overlay + Page)
   <Titel>: <Snippet>
   <Event-Chip>  <bis zu 3 Personen mit Profilbild>   (Sessions)
   ============================================================ */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result {
  line-height: 1.4;
  font-size: 1.1rem;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__main {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
/* Partner: Logo vor dem Namen, ganz sichtbar (nicht beschnitten) */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__logo {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: 4px;
  background-color: white;
  object-fit: contain;
  display: block;
  margin: 0;
  align-self: center;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__text {
  min-width: 0;
}
/* Event links, Speaker*innen rechts daneben; bricht bei wenig Platz um */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.7rem;
  margin-top: 0.35rem;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__event {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.05rem 0.8rem 0.05rem 0.15rem;
  border-right: 1px solid gray;
  color: #555;
  font-size: 0.875rem;
  white-space: nowrap;
}
/* Ohne Speaker*innen daneben keine Trennlinie */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__event:last-child {
  padding-right: 0;
  border-right: none;
}
/* Overlay: Event links vor dem Titel, Trennlinie zwischen beiden, Titel bricht um */
#block-search-overlay-block .search-result--compact .search-result__event {
  flex: 0 0 auto;
  align-self: center;
}
/* Titel fett (Overlay + Page) */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__title {
  font-weight: bold;
}
/* Logo ganz zeigen: nur leicht gerundet, nicht beschnitten */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__event img {
  width: 2rem;
  height: 2rem;
  border-radius: 4px;
  background-color: white;
  object-fit: contain;
  display: block;
  margin: 0;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__excerpt {
  color: #666;
  font-size: 0.9em;
}
/* Suchbegriff in Titel und Snippet */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result strong {
  color: black;
  font-weight: 700;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__people {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.9rem;
  color: #555;
  font-size: 0.8rem;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__person {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__person img,
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__avatar {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  object-fit: cover;
}
/* Mehr als 3 Speaker*innen/Moderator*innen: "…" rechts daneben */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__people-more {
  align-self: center;
  color: #555;
  font-size: 1rem;
  line-height: 1;
}
/* Ohne Profilbild: Initiale im grauen Kreis */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .search-result__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ddd;
  color: #555;
  font-size: 0.7rem;
  font-weight: 600;
}

/* ============================================================
   SEARCH — /search Page mobil
   ============================================================ */
/* "Filter"-Toggle (per JS eingefügt) nur mobil */
.view-id-search.view-display-id-page_1 .search-filter-toggle {
  display: none;
}

/* ---- Suchfeld: Unterstrich wächst beim Reinklicken von links und bleibt beim Tippen ---- */
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .form-item-search-api-fulltext {
  position: relative;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .form-item-search-api-fulltext::after {
  content: "";
  position: absolute;
  left: 2rem;   /* = linkes Padding des Suchfelds */
  right: 1.25rem;
  bottom: 1.1rem;
  height: 2px;
  border-radius: 2px;
  background: #6c6c6c;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
  pointer-events: none;
}
:is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .form-item-search-api-fulltext:focus-within::after {
  transform: scaleX(1);
}

@media (max-width: 767px) {
  /* Unterstrich an das flachere Suchfeld anpassen */
  :is(#block-search-overlay-block, .view-id-search.view-display-id-page_1) .form-item-search-api-fulltext::after {
    left: 1.25rem;
    right: 0.75rem;
    bottom: 0.85rem;
  }

  /* Suchleiste flacher (Overlay + Page gleich), Such-Button kleiner */
  #block-search-overlay-block input[type="text"],
  #block-search-overlay-block input[type="search"],
  .view-id-search.view-display-id-page_1 input[type="text"],
  .view-id-search.view-display-id-page_1 input[type="search"] {
    height: 4rem;
    padding: 0 0.75rem 0 1.25rem;
    font-size: 1.1rem;
  }
  #block-search-overlay-block .form-actions,
  .view-id-search.view-display-id-page_1 .form-actions {
    height: 4rem;
    gap: 0.5rem;
    padding: 0 0.25rem 0 0;
  }
  #block-search-overlay-block .form-actions .form-submit,
  .view-id-search.view-display-id-page_1 .form-actions .form-submit {
    width: 3.5rem;
    height: 3.5rem;
    background-size: 2.25rem;
  }

  /* Page: Seitentitel "Search" weg, dafür Abstand über der Suchleiste */
  .path-search .page-title,
  .path-search #block-pagetitle {
    display: none;
  }
  .view-id-search.view-display-id-page_1 .views-exposed-form {
    margin: 2rem 2px;
  }

  /* Page: Suchleiste nicht bis an den Bildschirmrand */
  .view-id-search.view-display-id-page_1 .form-item-search-api-fulltext {
    margin-left: 0.75rem;
  }
  .view-id-search.view-display-id-page_1 .form-actions {
    margin-right: 0.75rem;
  }

  /* Overlay: ruhiger hellgrauer Hintergrund statt abgedunkelt + weichgezeichnet,
     weniger Abstand oben, Kreuz oben rechts als Hinweis "außerhalb tippen schließt".
     Das Kreuz ist Teil des Hintergrunds, ein Tipp darauf ist also ein Tipp außerhalb. */
  #block-search-overlay-block {
    background: #eee;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  #block-search-overlay-block .block__content {
    top: 4rem;
  }
  #block-search-overlay-block::before {
    content: "";
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.25rem;
    height: 2.25rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5l14 14M19 5L5 19' stroke='black' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 1.5rem;
    cursor: pointer;
  }
  /* Skeleton-Pills an die flachere Suchleiste anpassen */
  body:has(.ajax-progress-fullscreen) #block-search-overlay-block .view-filters::before {
    top: calc(4rem + 0.75rem + 0.9rem);
  }

  /* Alle Filter hinter einem "Filter"-Toggle, gestylt wie die Filter-Box */
  .view-id-search.view-display-id-page_1 .search-filter-toggle {
    grid-column: 1 / -1;
    display: block;
    margin: 2rem 0 0;
    padding: 0.9rem 1.25rem;
    border: none;
    border-radius: 0.75rem;
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 1.25rem center / 1rem;
    color: black;
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1rem;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
  }
  .view-id-search.view-display-id-page_1 .views-exposed-form.is-filters-open > .search-filter-toggle {
    border-radius: 0.75rem 0.75rem 0 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 10l5-5 5 5' fill='none' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E");
  }
  .view-id-search.view-display-id-page_1 .views-exposed-form:not(.is-filters-open) > :is(fieldset, details) {
    display: none;
  }
  .view-id-search.view-display-id-page_1 .views-exposed-form > .search-filter-toggle + :is(fieldset, details) {
    margin-top: 0;
    border-top: 1px solid #eee;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .view-id-search.view-display-id-page_1 .views-exposed-form > fieldset {
    padding: 0.75rem 1.25rem;
  }
  .view-id-search.view-display-id-page_1 .views-exposed-form > details {
    padding: 0 1.25rem;
  }

  /* Trefferzahl dicht über den Ergebnissen */
  .view-id-search.view-display-id-page_1 .view-header {
    margin: 0.75rem 0 0.25rem;
  }
}
