/* LHB globaler Filtervertrag v1.6
   Gemeinsame Rollen fuer Filterrahmen, Bedienfelder, Trefferzahl und Kanten.
   Seitenspezifische Daten- und Filterlogik bleibt erhalten. */

.lhb-filter {
  --lhb-filter-pad-x: 24px;
  --lhb-filter-pad-y: 18px;
  background: var(--weiss);
  min-width: 0;
}
.lhb-filter__bar {
  min-height: 56px;
  padding: 10px var(--lhb-filter-pad-x);
  border-bottom: var(--linie) solid var(--lhb-line-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: var(--weiss);
}
.lhb-filter__toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.lhb-filter__count {
  margin-left: auto;
  font-family: var(--lhb-font-display);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-meta);
}
.lhb-filter__panel { min-width: 0; }
.lhb-filter__panel[hidden] { display: none !important; }
.lhb-filter__fields { min-width: 0; }
.lhb-filter__field { min-width: 0; }
.lhb-filter__label {
  font-family: var(--lhb-font-display);
  font-size:var(--lhb-type-kicker-size);
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.lhb-filter__actions { min-width: 0; }
.lhb-filter__reset { white-space: nowrap; }
.lhb-filter__control { box-sizing: border-box; max-width: 100%; }
.lhb-multiselect { position: relative; min-width: 0; }
.lhb-multiselect__toggle { box-sizing: border-box; max-width: 100%; }
.lhb-multiselect__summary { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.lhb-multiselect__panel { min-width: 0; }
.lhb-range-filter { min-width: 0; }

/* Darstellungsvarianten: nur Geometrie, keine fachliche Filterlogik. */
.lhb-filter--bar .lhb-filter__panel { border-bottom: var(--linie) solid var(--lhb-line-color); }
.lhb-filter--sidebar { height: 100%; }
.lhb-filter--embedded .lhb-filter__bar { padding-left: 0; padding-right: 0; }

/* Gemeinsame Kantenverantwortung: Der Inhalt besitzt die Abschlusskante,
   der direkt folgende Footer zeichnet sie nicht ein zweites Mal. */
main[data-footer-edge-owner="content"] + #lhb-footer footer { border-top: 0; }

@media (max-width: 900px) {
  .lhb-filter { --lhb-filter-pad-x: 22px; }
}
@media (max-width: 600px) {
  .lhb-filter__bar { align-items: flex-start; flex-direction: column; gap: 10px; }
  .lhb-filter__toggle { width: 100%; justify-content: space-between; }
  .lhb-filter__count { margin-left: 0; }
}


/* v1.1 – verbindliche Geometrie und Bedienzeichen
   Die fachlichen Filter bleiben individuell; Rahmen, Steuerelemente,
   Mindestbreiten und Toggle-Zeichen sind global. */
.lhb-filter .lhb-filter__toggle{
  min-height:42px;
  padding:10px 14px;
  border:var(--lhb-line-width-medium) solid var(--lhb-line-color);
  background:var(--weiss);
  color:var(--schwarz);
  font:800 10px/1 var(--lhb-font-display);
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
}
.lhb-filter .lhb-filter__toggle:hover,
.lhb-filter .lhb-filter__toggle[aria-expanded="true"]{
  background:var(--schwarz);
  color:var(--weiss);
}
.lhb-filter .lhb-filter__toggle > i{
  margin-left:auto;
  font-size:16px;
  transition:transform .18s ease;
}
.lhb-filter .lhb-filter__toggle[aria-expanded="true"] > i{transform:rotate(180deg)}
.lhb-filter .lhb-filter__control,
.lhb-filter .lhb-multiselect__toggle{
  min-height:48px;
  border:var(--lhb-line-width-medium) solid var(--lhb-line-color) !important;
  border-radius:0;
  background-color:var(--weiss);
  color:var(--schwarz);
  font:15px/1.2 var(--lhb-font-body);
  box-sizing:border-box;
}
.lhb-filter .lhb-filter__control:focus-visible,
.lhb-filter .lhb-multiselect__toggle:focus-visible{
  border-color:var(--lila) !important;
  outline:var(--lhb-focus-width) solid var(--lhb-focus-color);
  outline-offset:var(--lhb-focus-offset);
}
.lhb-filter .lhb-multiselect__toggle{padding:10px 12px}
.lhb-filter .lhb-multiselect__panel{
  border:var(--lhb-line-width-medium) solid var(--lhb-line-color);
  border-top:0;
  border-radius:0;
  box-shadow:0 12px 24px rgba(0,0,0,.12);
  overflow-x:hidden;
}

/* Veranstaltungen: drei fachlich unterschiedliche Mehrfachauswahlen brauchen
   belastbare Mindestbreiten; die Reihenliste darf breiter als ihr Toggle sein. */
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__fields{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(320px,1.35fr) minmax(220px,auto);
  gap:18px;
  align-items:end;
}
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-multiselect{width:100%;min-width:0}
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-multiselect__panel{min-width:100%}
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__field:nth-child(3) .lhb-multiselect__panel{
  width:max(100%,390px);
  right:auto;
}
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-multiselect__panel label{
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Publikationen: Filterinhalt folgt exakt derselben linken Satzkante wie
   Hero und Kartenraster. Lokale display:contents-Regeln dürfen diese Kante
   nicht verschieben. */
.lhb-filter[data-filter-id="publikationen"] .lhb-filter__bar,
.lhb-filter[data-filter-id="publikationen"] > .lhb-filter__panel{
  padding-left:var(--lhb-filter-pad-x) !important;
  padding-right:var(--lhb-filter-pad-x) !important;
}

/* Eingebettete Journalfilter verwenden dieselbe Linienstärke wie alle
   übrigen Filter. Innenlinien werden nicht mit 1px-Sonderregeln gedoppelt. */
.lhb-filter[data-filter-id="journal"]{
  border-top:0 !important;
  border-bottom:var(--linie) solid var(--lhb-line-color) !important;
}
.lhb-filter[data-filter-id="journal"] .feed-tools,
.lhb-filter[data-filter-id="journal"] .feed-filter-grid{
  border:0 !important;
}

/* Kantenvertrag v1.1: bei ausgewiesenem Inhaltseigentümer hat der Footer
   keine zusätzliche Oberkante. Die höhere Spezifität gilt auch nach dem
   dynamischen Laden des Footers. */
main[data-footer-edge-owner="content"] + #lhb-footer > footer{
  border-top:0 !important;
}

@media (max-width:1100px){
  .lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__fields{
    grid-template-columns:minmax(210px,1fr) minmax(210px,1fr) minmax(280px,1.25fr);
  }
  .lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__actions{grid-column:1/-1}
}
@media (max-width:760px){
  .lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__fields{grid-template-columns:1fr}
  .lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__field:nth-child(3) .lhb-multiselect__panel{width:100%}
}

/* v1.2 – konsistenter Feldvertrag
   Bezeichnungen, Typografie, Suchfelder, Feldreihenfolge und Chevron-Geometrie
   werden seitenweit vereinheitlicht. Fachliche Filterfunktionen bleiben erhalten. */
.lhb-filter {
  --lhb-filter-label-color: var(--lila);
  --lhb-filter-control-font-size: 15px;
  --lhb-filter-control-height: var(--lhb-control-height);
  --lhb-filter-control-pad-x: var(--lhb-control-padding-inline);
  --lhb-filter-chevron-size: 18px;
  --lhb-filter-chevron-right: 14px;
}
.lhb-filter .lhb-filter__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.lhb-filter .lhb-filter__label {
  display: block !important;
  margin: 0 !important;
  color: var(--lhb-filter-label-color) !important;
  font-family: var(--lhb-font-display) !important;
  font-size:var(--lhb-type-kicker-size) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}
.lhb-filter .lhb-filter__control,
.lhb-filter .lhb-multiselect__toggle {
  width: 100%;
  min-height: var(--lhb-filter-control-height);
  margin: 0 !important;
  padding: 12px calc(var(--lhb-filter-chevron-right) + var(--lhb-filter-chevron-size) + 12px) 12px var(--lhb-filter-control-pad-x) !important;
  border: var(--linie) solid var(--lhb-line-color) !important;
  border-radius: 0 !important;
  background-color: var(--weiss) !important;
  color: var(--schwarz) !important;
  font-family: var(--lhb-font-body) !important;
  font-size: var(--lhb-filter-control-font-size) !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  text-align: left;
  box-sizing: border-box;
}
.lhb-filter input.lhb-filter__control::placeholder {
  color: var(--lhb-neutral-575);
  opacity: 1;
  font-family: var(--lhb-font-body);
  font-size: var(--lhb-filter-control-font-size);
  font-weight: 400;
}
.lhb-filter select.lhb-filter__control {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right var(--lhb-filter-chevron-right) center !important;
  background-size: var(--lhb-filter-chevron-size) var(--lhb-filter-chevron-size) !important;
}
.lhb-filter .lhb-multiselect__toggle {
  position: relative;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  cursor: pointer;
}
.lhb-filter .lhb-multiselect__summary,
.lhb-filter .lhb-multiselect__toggle strong {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--schwarz) !important;
  font-family: var(--lhb-font-body) !important;
  font-size: var(--lhb-filter-control-font-size) !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.lhb-filter .lhb-multiselect__toggle > i {
  flex: 0 0 var(--lhb-filter-chevron-size);
  width: var(--lhb-filter-chevron-size);
  height: var(--lhb-filter-chevron-size);
  margin: 0 !important;
  font-size: var(--lhb-filter-chevron-size) !important;
  line-height: var(--lhb-filter-chevron-size);
  transition: transform .18s ease;
}
.lhb-filter .lhb-multiselect__toggle.is-open > i,
.lhb-filter .lhb-multiselect__toggle[aria-expanded="true"] > i {
  transform: rotate(180deg);
}
.lhb-filter .lhb-filter__toggle > i {
  flex: 0 0 16px;
  width: 16px;
  margin-left: 10px !important;
  line-height: 1;
}
.lhb-filter .lhb-filter__toggle {
  justify-content: flex-start;
}
.lhb-filter .lhb-filter__reset {
  font-family: var(--lhb-font-display) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

/* Einheitliche Suchfeldbreite und Suchfeldbezeichnung. */
.lhb-filter .lhb-filter__field--search { min-width: min(100%, 280px); }

/* Standardreihenfolge: Suche, Thema, Landkreis, weitere Fachfilter, Zeitraum. */
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__fields {
  grid-template-columns: minmax(220px,1fr) minmax(220px,1fr) minmax(320px,1.35fr) minmax(220px,auto);
}

/* Journal: dieselben Feldabstände und sichtbare Feldbezeichnungen wie andere Filter. */
.lhb-filter[data-filter-id="journal"] .feed-filter-left,
.lhb-filter[data-filter-id="journal"] .feed-filter-right {
  gap: 14px !important;
}
.lhb-filter[data-filter-id="journal"] .feed-taxonomy-row {
  gap: 14px !important;
}
.lhb-filter[data-filter-id="journal"] .lhb-filter__field {
  gap: 8px;
}

@media (max-width: 600px) {
  .lhb-filter .lhb-filter__toggle { justify-content: space-between; }
}

/* v1.3 – visueller Normierungslauf
   Diese Regeln vereinheitlichen ausschliesslich die sichtbare Sprache der
   Filter. Fachliche Filterlogik, Mehrfachauswahl, URL-/Session-Zustaende,
   Kartenkopplung und Zeitraumfunktionen bleiben seitenspezifisch erhalten. */
.lhb-filter{
  --lhb-filter-panel-bg:var(--lhb-neutral-60);
  --lhb-filter-gap:18px;
  --lhb-filter-row-gap:18px;
  --lhb-filter-control-height:50px;
  --lhb-filter-control-font-size:15px;
  --lhb-filter-label-size:9px;
  --lhb-filter-action-size:10px;
  --lhb-filter-border:var(--linie) solid var(--lhb-line-color);
}
.lhb-filter .lhb-filter__bar{
  min-height:66px;
  padding:10px 24px !important;
  border-bottom:var(--lhb-filter-border) !important;
  background:var(--weiss) !important;
}
.lhb-filter .lhb-filter__toggle{
  width:auto;
  min-width:224px;
  min-height:52px;
  padding:0 16px !important;
  justify-content:space-between !important;
  gap:18px !important;
  border:var(--lhb-filter-border) !important;
}
.lhb-filter .lhb-filter__toggle > i{
  position:static;
  flex:0 0 18px;
  width:18px;
  height:18px;
  margin:0 !important;
  font-size:18px !important;
  line-height:18px !important;
}
.lhb-filter .lhb-filter__count{
  margin-left:auto;
  color:var(--lhb-neutral-600);
  font-size:10px !important;
  line-height:1.2;
  letter-spacing:.1em;
}
.lhb-filter .lhb-filter__panel{
  background:var(--lhb-filter-panel-bg) !important;
}
.lhb-filter--bar > .lhb-filter__panel{
  padding:22px 24px !important;
  border-bottom:var(--lhb-filter-border) !important;
}
.lhb-filter .lhb-filter__fields{
  gap:var(--lhb-filter-gap) !important;
}
.lhb-filter .lhb-filter__field{
  gap:8px !important;
}
.lhb-filter .lhb-filter__label{
  color:var(--lila) !important;
  font-size:var(--lhb-filter-label-size) !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  letter-spacing:.13em !important;
}
.lhb-filter .lhb-filter__control,
.lhb-filter .lhb-multiselect__toggle{
  height:var(--lhb-filter-control-height) !important;
  min-height:var(--lhb-filter-control-height) !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  padding-left:16px !important;
  padding-right:50px !important;
  border:var(--lhb-filter-border) !important;
  color:var(--schwarz) !important;
  font-family:var(--lhb-font-body) !important;
  font-size:var(--lhb-filter-control-font-size) !important;
  font-weight:400 !important;
  line-height:1.25 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.lhb-filter input.lhb-filter__control::placeholder{
  color:var(--lhb-neutral-575) !important;
  font-family:var(--lhb-font-body) !important;
  font-size:var(--lhb-filter-control-font-size) !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.lhb-filter .lhb-multiselect__toggle{
  position:relative;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.lhb-filter .lhb-multiselect__toggle > i{
  position:absolute;
  top:50%;
  right:14px;
  width:18px;
  height:18px;
  margin:0 !important;
  transform:translateY(-50%);
  font-size:18px !important;
  line-height:18px !important;
}
.lhb-filter .lhb-multiselect__toggle.is-open > i,
.lhb-filter .lhb-multiselect__toggle[aria-expanded="true"] > i{
  transform:translateY(-50%) rotate(180deg);
}
.lhb-filter .lhb-multiselect__summary,
.lhb-filter .lhb-multiselect__toggle strong{
  color:var(--schwarz) !important;
  font-family:var(--lhb-font-body) !important;
  font-size:var(--lhb-filter-control-font-size) !important;
  font-weight:400 !important;
  line-height:1.25 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.lhb-filter .lhb-filter__reset,
.lhb-filter .archiv-btn,
.lhb-filter .karte-expand-btn{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  min-height:36px;
  margin:0 !important;
  padding:6px 0 !important;
  border:0 !important;
  background:transparent !important;
  color:var(--lhb-neutral-625) !important;
  box-shadow:none !important;
  font-family:var(--lhb-font-display) !important;
  font-size:var(--lhb-filter-action-size) !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  white-space:nowrap;
}
.lhb-filter .lhb-filter__reset:hover,
.lhb-filter .archiv-btn:hover,
.lhb-filter .karte-expand-btn:hover{
  color:var(--lila) !important;
}
.lhb-filter .lhb-filter__reset i,
.lhb-filter .archiv-btn i,
.lhb-filter .karte-expand-btn i{
  width:16px;
  height:16px;
  margin:0 !important;
  font-size:16px !important;
  line-height:16px !important;
}
.lhb-range-filter input[type="number"].lhb-filter__control{
  min-width:112px;
  padding-right:12px !important;
  font-family:var(--lhb-font-body) !important;
  font-size:15px !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

/* Bar-Variante: Veranstaltungen. */
.lhb-filter[data-filter-id="veranstaltungen"] > .lhb-filter__panel{
  grid-template-columns:minmax(230px,1fr) minmax(230px,1fr) minmax(330px,1.35fr) auto !important;
  align-items:end !important;
  column-gap:22px !important;
  row-gap:18px !important;
}
.lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
  padding-bottom:7px;
}

/* Bar-Variante: Publikationen. */
.lhb-filter[data-filter-id="publikationen"] > .lhb-filter__panel{
  display:grid !important;
  grid-template-columns:minmax(280px,.85fr) minmax(560px,1.55fr) auto !important;
  align-items:end !important;
  gap:24px !important;
}
.lhb-filter[data-filter-id="publikationen"] .pub-filter-fields{display:contents !important}
.lhb-filter[data-filter-id="publikationen"] .pub-year-controls{
  display:grid !important;
  grid-template-columns:112px 112px minmax(240px,1fr) !important;
  align-items:center !important;
  gap:12px !important;
  margin-top:0 !important;
}
.lhb-filter[data-filter-id="publikationen"] .pub-filter-meta{
  align-items:center !important;
  justify-content:flex-end !important;
  padding:0 0 7px !important;
}

/* Embedded-Variante: Sachsen-Anhalt-Journal. */
.lhb-filter[data-filter-id="journal"] .feed-filter-panel{
  padding:22px 24px !important;
  background:var(--lhb-filter-panel-bg) !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-grid--journal{
  display:grid !important;
  grid-template-columns:minmax(520px,1.35fr) minmax(480px,1fr) !important;
  gap:24px !important;
  align-items:start !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-left,
.lhb-filter[data-filter-id="journal"] .feed-filter-right{
  display:grid !important;
  grid-template-rows:auto auto !important;
  gap:18px !important;
  min-width:0;
}
.lhb-filter[data-filter-id="journal"] .feed-taxonomy-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:16px !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-right > .feed-reset{
  order:1;
  justify-self:end !important;
  align-self:end !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-right > .lhb-filter__field{
  order:2;
}
.lhb-filter[data-filter-id="journal"] .feed-row-years{
  display:grid !important;
  grid-template-columns:112px 112px minmax(230px,1fr) !important;
  gap:12px !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  align-items:center !important;
}

/* Sidebar-Variante: Archiv. */
.lhb-filter[data-filter-id="archiv"]{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:24px !important;
  background:var(--lhb-filter-panel-bg) !important;
}
.lhb-filter[data-filter-id="archiv"] .lhb-filter__field{gap:8px !important}
.lhb-filter[data-filter-id="archiv"] .range-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:12px !important;
}
.lhb-filter[data-filter-id="archiv"] .range-values{
  font-family:var(--lhb-font-body) !important;
  font-size:12px !important;
}
.lhb-filter[data-filter-id="archiv"] .filter-actions{margin-top:0 !important}

/* Sidebar-/Listenvariante: Vereinsdatenbank. */
.lhb-filter[data-filter-id="vereine"] .lhb-filter__panel{
  display:grid !important;
  grid-template-columns:minmax(280px,1.15fr) minmax(190px,.75fr) minmax(210px,.85fr) minmax(220px,.9fr) auto auto !important;
  align-items:end !important;
  gap:18px !important;
  padding:22px 30px !important;
  background:var(--lhb-filter-panel-bg) !important;
}
.lhb-filter[data-filter-id="vereine"] .karte-expand-btn{
  justify-self:end;
  align-self:end;
  padding-bottom:7px !important;
}
.lhb-filter[data-filter-id="vereine"] .lhb-filter__reset{
  align-self:end;
  padding-bottom:7px !important;
}

@media(max-width:1180px){
  .lhb-filter[data-filter-id="publikationen"] > .lhb-filter__panel{
    grid-template-columns:minmax(250px,.8fr) minmax(470px,1.4fr) !important;
  }
  .lhb-filter[data-filter-id="publikationen"] .pub-filter-meta{grid-column:1/-1;justify-content:flex-start !important;padding-bottom:0 !important}
  .lhb-filter[data-filter-id="journal"] .feed-filter-grid--journal{grid-template-columns:1fr !important}
  .lhb-filter[data-filter-id="vereine"] .lhb-filter__panel{grid-template-columns:minmax(260px,1.15fr) minmax(190px,.8fr) minmax(210px,.9fr) minmax(210px,.9fr) !important}
  .lhb-filter[data-filter-id="vereine"] .lhb-filter__reset{grid-column:1/3;justify-self:start}
  .lhb-filter[data-filter-id="vereine"] .karte-expand-btn{grid-column:3/5;justify-self:end}
}
@media(max-width:900px){
  .lhb-filter[data-filter-id="veranstaltungen"] > .lhb-filter__panel,
  .lhb-filter[data-filter-id="publikationen"] > .lhb-filter__panel,
  .lhb-filter[data-filter-id="vereine"] .lhb-filter__panel{
    grid-template-columns:1fr !important;
  }
  .lhb-filter[data-filter-id="veranstaltungen"] .lhb-filter__actions,
  .lhb-filter[data-filter-id="publikationen"] .pub-filter-meta{
    justify-content:flex-start !important;
    padding-bottom:0 !important;
  }
  .lhb-filter[data-filter-id="journal"] .feed-taxonomy-row{grid-template-columns:1fr 1fr !important}
  .lhb-filter[data-filter-id="vereine"] .lhb-filter__reset{grid-column:auto;justify-self:start}
  .lhb-filter[data-filter-id="vereine"] .karte-expand-btn{grid-column:auto;justify-self:start}
}
@media(max-width:650px){
  .lhb-filter .lhb-filter__toggle{min-width:0;width:100%}
  .lhb-filter[data-filter-id="publikationen"] .pub-year-controls,
  .lhb-filter[data-filter-id="journal"] .feed-row-years{
    grid-template-columns:1fr 1fr !important;
  }
  .lhb-filter[data-filter-id="publikationen"] .pub-range,
  .lhb-filter[data-filter-id="journal"] .feed-range{grid-column:1/-1}
  .lhb-filter[data-filter-id="journal"] .feed-taxonomy-row{grid-template-columns:1fr !important}
}

/* Journal-Toggle liegt redaktionell im Abschnittskopf ausserhalb des Panels,
   bleibt aber sichtbar Teil desselben globalen Filtervertrags. */
.feed-filter-toggle.lhb-filter__toggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  min-width:224px;
  min-height:52px;
  padding:0 16px !important;
  border:var(--linie) solid var(--lhb-line-color) !important;
  background:var(--weiss) !important;
  color:var(--schwarz) !important;
  font:800 10px/1 var(--lhb-font-display) !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
}
.feed-filter-toggle.lhb-filter__toggle:hover,
.feed-filter-toggle.lhb-filter__toggle[aria-expanded="true"]{
  background:var(--schwarz) !important;
  color:var(--weiss) !important;
}
.feed-filter-toggle.lhb-filter__toggle > i{
  flex:0 0 18px;
  width:18px;
  height:18px;
  margin:0 !important;
  font-size:18px !important;
  line-height:18px !important;
  transition:transform .18s ease;
}
.feed-filter-toggle.lhb-filter__toggle[aria-expanded="true"] > i{transform:rotate(180deg)}
.lhb-filter.feed-filter-panel[data-filter-id="journal"]{
  padding:22px 24px !important;
  background:var(--lhb-filter-panel-bg) !important;
}
@media(max-width:650px){.feed-filter-toggle.lhb-filter__toggle{width:100%;min-width:0}}

/* v1.5 – Korrekturen nach visuellem Kontrolllauf
   1. hidden ist fuer alle Filterpanels verbindlich und kann durch lokale
      display:grid-Regeln nicht aufgehoben werden.
   2. Im eingebetteten Journalfilter endet die Zeitraumsteuerung auf derselben
      Grundlinie wie Thema und Landkreis. */
.lhb-filter__panel[hidden],
.lhb-filter .lhb-filter__panel[hidden] {
  display: none !important;
}

.lhb-filter[data-filter-id="journal"] .feed-filter-grid--journal {
  align-items: end !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-left,
.lhb-filter[data-filter-id="journal"] .feed-filter-right {
  align-content: end;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-right > .lhb-filter__field {
  align-self: end;
}
.lhb-filter[data-filter-id="journal"] .feed-row-years {
  min-height: var(--lhb-filter-control-height);
  align-items: stretch !important;
}
.lhb-filter[data-filter-id="journal"] .feed-range {
  align-self: center;
}

/* Kantenvertrag v1.4: Bei data-footer-edge-owner="footer" zeichnet allein
   der Footer die durchgehende Abschlusskante. Das ist insbesondere bei
   dynamischen, unvollständigen Kartenrastern belastbarer als eine Rasterkante. */
main[data-footer-edge-owner="footer"] + #lhb-footer > footer{
  border-top:var(--linie) solid var(--lhb-line-color) !important;
}


/* v1.6 – globale Überlagerungs- und Vereinsfilterregel für aufklappbare Filter
   Dropdown-Panels dürfen nachfolgende Karten, Raster oder Medienflächen
   überlagern. Sie werden nicht an der Filterkante abgeschnitten und liegen
   oberhalb der Leaflet-Panes. Diese Regel gilt für alle Filterkomponenten. */
.lhb-filter {
  position: relative;
  z-index: 800;
  overflow: visible;
}
.lhb-filter__panel,
.lhb-filter__fields,
.lhb-filter__field,
.lhb-multiselect {
  overflow: visible;
}
.lhb-filter .lhb-multiselect__panel {
  z-index: 1200;
}


/* v247 – Journalfilter als geordnetes Dreizeilenraster.
   Zeile 1: Freitext und Story. Zeile 2: Thema, Landkreis und Zeitraum.
   Zeile 3: reduzierte Ruecksetz-Aktion. Die fachliche Filterlogik bleibt
   unveraendert; nur die gemeinsame Komponentenanordnung wird korrigiert. */
.lhb-filter[data-filter-id="journal"] .feed-filter-grid--journal{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:18px !important;
  align-items:stretch !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-row{
  display:grid !important;
  min-width:0;
  gap:16px !important;
  align-items:end !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-row--primary{
  grid-template-columns:minmax(0,2fr) minmax(280px,1fr) !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-row--secondary{
  grid-template-columns:minmax(210px,.8fr) minmax(210px,.8fr) minmax(480px,1.65fr) !important;
}
.lhb-filter[data-filter-id="journal"] .feed-period-field,
.lhb-filter[data-filter-id="journal"] .feed-period-field .feed-period{min-width:0;width:100%}
.lhb-filter[data-filter-id="journal"] .feed-row-years{
  grid-template-columns:96px 96px minmax(230px,1fr) !important;
  min-height:var(--lhb-filter-control-height);
  width:100% !important;
  max-width:none !important;
  gap:12px !important;
  align-items:stretch !important;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-height:20px;
}
.lhb-filter[data-filter-id="journal"] .feed-filter-actions .lhb-filter__reset{
  margin:0 !important;
  padding:0 !important;
  min-height:20px;
  font-size:var(--lhb-type-kicker-size) !important;
}
@media(max-width:1180px){
  .lhb-filter[data-filter-id="journal"] .feed-filter-row--secondary{
    grid-template-columns:1fr 1fr !important;
  }
  .lhb-filter[data-filter-id="journal"] .feed-period-field{grid-column:1/-1}
}
@media(max-width:760px){
  .lhb-filter[data-filter-id="journal"] .feed-filter-row--primary,
  .lhb-filter[data-filter-id="journal"] .feed-filter-row--secondary{grid-template-columns:1fr !important}
  .lhb-filter[data-filter-id="journal"] .feed-period-field{grid-column:auto}
  .lhb-filter[data-filter-id="journal"] .feed-filter-actions{justify-content:flex-start}
}
@media(max-width:650px){
  .lhb-filter[data-filter-id="journal"] .feed-row-years{grid-template-columns:1fr 1fr !important}
  .lhb-filter[data-filter-id="journal"] .feed-range{grid-column:1/-1}
}


/* v271 – Journal-Zeitraum: sichtbare Thumb-Aussenkanten sind rasterbuendig.
   Die Range-Spalte selbst war in v270 korrekt; die natuerliche halbe
   Thumbbreite ragte jedoch optisch ueber die Spaltengrenze. Track und native
   Range-Ebene werden deshalb um den halben Thumbdurchmesser eingerueckt. */
.lhb-filter[data-filter-id="journal"] .feed-range{
  --lhb-journal-range-thumb-size:20px;
  --lhb-journal-range-edge-inset:10px;
  position:relative;
}
.lhb-filter[data-filter-id="journal"] .feed-range-track{
  left:var(--lhb-journal-range-edge-inset) !important;
  right:var(--lhb-journal-range-edge-inset) !important;
}
.lhb-filter[data-filter-id="journal"] .feed-range input[type=range]{
  left:var(--lhb-journal-range-edge-inset) !important;
  width:calc(100% - var(--lhb-journal-range-thumb-size)) !important;
}
.lhb-filter[data-filter-id="journal"] .feed-range input[type=range]::-webkit-slider-thumb{
  box-sizing:border-box;
  width:var(--lhb-journal-range-thumb-size);
  height:var(--lhb-journal-range-thumb-size);
}
.lhb-filter[data-filter-id="journal"] .feed-range input[type=range]::-moz-range-thumb{
  box-sizing:border-box;
  width:var(--lhb-journal-range-thumb-size);
  height:var(--lhb-journal-range-thumb-size);
}
