@charset "UTF-8";
/*
  SCSS Variablen & CSS-Variablen-Fallbacks
  - Astra stellt --ast-* zur Verfügung; lokal ggf. nicht. Wir liefern Fallbacks.
*/
:root {
  /* Astra-Farben (Fallbacks) – gemäß Vorgabe */
  --ast-global-color-0: #caecd2;
  --ast-global-color-1: #9edbaa;
  --ast-global-color-2: #0F172A;
  --ast-global-color-3: #2F3B40;
  --ast-global-color-4: #FFFFFF;
  --ast-global-color-5: #caecd2;
  --ast-global-color-6: rgba(245, 113, 61, 0.47);
  --ast-global-color-7: #fafeab;
  --ast-global-color-8: #370e0e;
  --ast-border-color: rgba(0,0,0,.12);
  /* Projektweite Gutter */
  --wj-page-gutter: 16px;
}

/*
!* SCSS Design-Tokens (optional) *!
$wj-breakpoint-xs: 575.98px;
$wj-breakpoint-md: 768px;
$wj-breakpoint-lg: 992px;*/
/* Platzhalter für Mixins (Media-Query-Helper, Clamp-Utilities, etc.) */
/* Globales Layout & generelle Schutzregeln */
/*
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

!* Globale Inhaltskappung, unabhängig vom Theme-Container *!
.entry-header,
.entry-content {
  max-width: min(100%, 1140px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
*/
/* Landingpage-spezifische Regeln */
.wj-lp-list {
  max-width: min(100%, 1140px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(12px, 4vw, 24px);
  padding-right: clamp(12px, 4vw, 24px);
  box-sizing: border-box;
  overflow-x: hidden;
}

.wj-lp-card.wj-result {
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.08);
  min-height: auto;
}

.wj-lp-card > a {
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 0.5rem;
}

.wj-lp-card .image {
  margin: 0 0 0.5rem 0;
  height: auto;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.wj-lp-card .image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

@supports not (aspect-ratio: 1/1) {
  .wj-lp-card .image {
    height: 170px;
  }
}
@media (max-width: 575.98px) {
  .wj-lp-list > .row {
    margin-left: 0;
    margin-right: 0;
    --wj-gx: 16px;
  }
  .wj-lp-list .row > [class^=col],
  .wj-lp-list .row > [class*=" col"] {
    padding-left: 8px;
    padding-right: 8px;
    box-sizing: border-box;
  }
  .wj-lp-list .dontshowmobile {
    display: none !important;
  }
  /* Bilder auf XS spürbar kleiner halten */
  .wj-lp-card .image {
    max-height: clamp(120px, 36vw, 160px);
  }
}
@media (min-width: 576px) {
  .wj-lp-list .dontshowmobile {
    display: block !important;
  }
}
.wj-lp-card .title {
  font-weight: 600;
  margin: 0 0 0.25rem 0;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wj-lp-card .location {
  opacity: 0.85;
  margin-bottom: 0.15rem;
}

.wj-lp-card .price {
  font-weight: 700;
  margin-top: 0.15rem;
}

.wj-lp-card:hover {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transform: translate3d(0, 0, 0);
}

/* ------------------------------
   Landingpage: Such-Headerbereich
   (#search-landingpage Hero + Buttons + Formularposition)
   ------------------------------ */
#search-landingpage {
  position: relative;
  overflow: visible;
}

@media (min-width: 992px) {
  #search-landingpage {
    height: 300px;
  }
}
@media (max-width: 991px) {
  #search-landingpage #main h1 {
    font-size: 1.5em;
  }
}
#search-landingpage #background-image {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  object-fit: cover;
}

@media (max-width: 991px) {
  #search-landingpage #background-image {
    display: none;
  }
}
/* (Widths werden von Astra gesteuert – hier nur Positionierung) */
#search-landingpage #wj-schnell-buttons {
  position: absolute;
  top: 3%;
  left: 3%;
  z-index: 1;
}

@media (max-width: 991px) {
  #search-landingpage #wj-schnell-buttons {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    margin: 0;
  }
}
@media (min-width: 992px) {
  #search-landingpage .search-homepage {
    left: 50px !important;
    max-width: 40% !important;
    transform: translateY(-50%) !important;
  }
}
@media (max-width: 991px) {
  #search-landingpage .search-homepage {
    top: 50px !important;
  }
}
#search-landingpage #wj-start-search {
  position: absolute;
  top: 59%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  max-width: 90%;
  width: 100%;
}

@media (max-width: 991px) {
  #search-landingpage #wj-start-search {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    margin-bottom: 25px;
    margin-top: 1em;
  }
}
@media (min-width: 992px) {
  #search-landingpage #wj-start-search {
    padding: 15px;
  }
}
/* Suchseite: Rahmen/Gutter/Overflow-Schutz + XS-Fixes */
.wj-search-page,
.wj-search-page .entry-header,
.wj-search-page .entry-content,
.wj-search-page .wj-search-results,
.wj-search-page #wj-search-result-container,
.wj-search-page #wj-search-form {
  max-width: min(100%, 1140px);
  box-sizing: border-box;
  padding-left: clamp(12px, 4vw, 24px);
  padding-right: clamp(12px, 4vw, 24px);
  margin-left: auto;
  margin-right: auto;
  overflow-x: hidden;
}

/* Zusätzliche Kappung innerhalb von Astra-Containern, nur im Such-Scope */
.wj-search-page .site-content,
.wj-search-page .ast-container {
  max-width: 100%;
  box-sizing: border-box;
  padding-left: clamp(12px, 4vw, 24px);
  padding-right: clamp(12px, 4vw, 24px);
}

/* Suchbox/Ergebniscontainer Rahmen (wie zuvor) */
.wj-search {
  padding-bottom: 3px;
  padding-top: 3px;
  margin-bottom: 8px;
  background-color: #fafcee;
  border: #0a1a23 solid 1px;
}

/* Ergebnis-Anker (als .row) dürfen umbrechen */
.wj-search-page a.row {
  flex-wrap: wrap;
  width: 100%;
}

/* Bilder im Suchbereich sicher begrenzen */
.wj-search-page img {
  max-width: 100%;
  height: auto;
}

/* Medien/Ads dürfen nie überlaufen */
.wj-search-page iframe,
.wj-search-page video,
.wj-search-page [id^=wohnu-] {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  overflow: auto;
  display: block;
}

/* Ergebnis-Kachel: Grundstyles (wie zuvor im CSS) */
.wj-result {
  color: black;
}
@media (min-width: 991px) {
  .wj-result {
    min-height: 144px;
  }
}
@media (max-width: 990px) {
  .wj-result {
    min-height: 360px;
  }
}
.wj-result ul {
  list-style: none;
  padding: 0;
  margin: 1em 0 0;
  display: table;
  width: 100%;
  table-layout: fixed;
}
.wj-result ul li {
  display: table-cell;
  width: 25%;
  max-width: 25%;
  text-align: center;
}
.wj-result ul li span {
  display: block;
  overflow-wrap: anywhere;
}
.wj-result div {
  border: 0 !important;
}
.wj-result .title {
  font-weight: bold;
}
.wj-result a {
  text-decoration: none !important;
  color: black;
}
.wj-result:hover, .wj-result:visited {
  text-decoration: none !important;
  color: black;
  cursor: pointer;
}

.wj-result .image {
  padding: 0;
  margin: 0;
  height: 144px;
}

.wj-result .image img {
  width: 100%;
  height: 144px;
  object-fit: contain;
}

.wj-result a {
  cursor: pointer;
}

/* Lazy-Load Platzhalter: unsichtbar, aber Platz reservieren, damit die Seite nicht "leer" wirkt */
#wj-search-result-container .exposee-dummy {
  display: block;
  visibility: hidden;
}

#wj-search-result-container .exposee-dummy-hidden {
  display: none;
}

/* Optional: Platzhalterhöhe je Breakpoint (wenn gewünscht) */
@media (min-width: 991px) {
  #wj-search-result-container .exposee-dummy {
    height: 144px;
  }
}
@media (max-width: 990px) {
  #wj-search-result-container .exposee-dummy {
    height: 360px;
  }
}
/* Sicherheitsnetz: Ergebniscontainer bekommt immer eine minimale Höhe, damit nicht alles "weiß" wirkt bis AJAX lädt */
.wj-search-page #wj-search-result-container {
  min-height: 240px;
}

/* Filter-Popups (absolute) auf Viewport begrenzen */
.wj-search-page .search-field-group {
  width: min(100%, 100vw - 2 * var(--wj-page-gutter));
  max-width: 100%;
  left: 0 !important;
  right: auto !important;
}

/* XS: Row-Negativmargen neutralisieren und Col-Paddings schrumpfen */
@media (max-width: 575.98px) {
  .wj-search-page .row {
    margin-left: 0;
    margin-right: 0;
    --wj-gx: 16px;
  }
  .wj-search-page .row > [class^=col],
  .wj-search-page .row > [class*=" col"] {
    padding-left: 8px;
    padding-right: 8px;
    box-sizing: border-box;
  }
}
/* --------------------------------------
   WJ Search Form: Ein-/Ausklappen & Panels
   -------------------------------------- */
.wj-search-page #wj-search-form {
  position: relative;
}

/* Toggle-Header für einzelne Filtergruppen */
.wj-search-page #wj-search-form .search-field-group-title {
  position: relative;
  cursor: pointer;
  user-select: none;
  border: 1px solid var(--ast-border-color, rgba(0, 0, 0, 0.12));
  border-radius: 0.375rem;
  padding: 0.375rem 0.75rem;
  background: var(--ast-global-color-4, #fff);
}

.wj-search-page #wj-search-form .search-field-group-title::after {
  content: "▾";
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  transition: transform 0.2s ease;
}

/* Panel standardmäßig verstecken, innerhalb .optionsselect absolut platzieren */
.wj-search-page #wj-search-form .optionsselect {
  position: relative;
}

.wj-search-page #wj-search-form .optionsselect .search-field-group {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 5;
  background: var(--ast-global-color-4, #fff);
  border: 1px solid var(--ast-border-color, rgba(0, 0, 0, 0.12));
  border-radius: 0.375rem;
  padding: 0.75rem;
  width: min(100%, 100vw - 2 * var(--wj-page-gutter));
  box-sizing: border-box;
}

.wj-search-page #wj-search-form .optionsselect.is-open .search-field-group {
  display: block;
}

.wj-search-page #wj-search-form .optionsselect.is-open .search-field-group-title::after {
  transform: translateY(-50%) rotate(180deg);
}

/* Mobile: Panels dürfen den Viewport nicht sprengen */
@media (max-width: 575.98px) {
  .wj-search-page #wj-search-form .optionsselect .search-field-group {
    left: 0;
    right: auto;
    max-width: 100%;
  }
}
/* Ergebnisliste: Zeilen/Container sicher im Viewport halten */
.wj-search-page .wj-search-results {
  overflow-x: hidden;
}

.wj-search-page .row {
  max-width: 100%;
}

/* Lange Titel/Ortsnamen umbrechen statt Überbreite */
.wj-search-page .title,
.wj-search-page .location {
  overflow-wrap: anywhere;
}

/* Exposé-spezifische Regeln */
body.single-exposee .site-content,
body.single-exposee .entry-header,
body.single-exposee .entry-content {
  max-width: 100%;
  box-sizing: border-box;
  padding-left: clamp(12px, 4vw, 24px);
  padding-right: clamp(12px, 4vw, 24px);
  overflow-x: hidden;
}

/* Exposé Gallery – dependency-free slider UI (CSS)
   - Dots unten mittig
   - Prev/Nächste mit dezentem Hintergrund
   - Autoplay per JS (Standard 3s); Stop nach User-Interaktion
*/
#wj-exposee-gallery {
  width: 100%;
  position: relative;
  overflow: visible;
}

@media (min-width: 992px) {
  #wj-exposee-gallery {
    max-width: 75%;
    margin-left: auto;
    margin-right: auto;
  }
}
/* Legacy Bootstrap-Struktur einkapseln */
#wj-exposee-gallery .carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* Slides: aktiv sichtbar, andere ausgeblendet */
#wj-exposee-gallery .carousel-item {
  aspect-ratio: 16/9;
  max-height: 70vh;
  display: none;
}

#wj-exposee-gallery .carousel-item.active {
  display: block;
}

/* Fallback – falls .active fehlt */
#wj-exposee-gallery .carousel-item:first-child {
  display: block;
}

@media (max-width: 991.98px) {
  #wj-exposee-gallery .carousel-item {
    max-height: 45vh;
  }
}
/* Bild füllt Slide, Cropping erlaubt */
#wj-exposee-gallery .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Bootstrap-Indikatoren ausblenden (wir nutzen eigene Dots) */
#wj-exposee-gallery .carousel-indicators {
  display: none !important;
}

/* Untere Dots */
#wj-exposee-gallery .wj-dots-bottom {
  position: absolute;
  left: 50%;
  bottom: 8px;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}

#wj-exposee-gallery .wj-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(0, 0, 0, 0.18);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
  cursor: pointer;
}

#wj-exposee-gallery .wj-dot.active {
  background: #fff;
}

@media (max-width: 575.98px) {
  #wj-exposee-gallery .wj-dots-bottom {
    bottom: 6px;
    gap: 6px;
  }
  #wj-exposee-gallery .wj-dot {
    width: 8px;
    height: 8px;
  }
}
/* Prev/Next Controls (falls vorhanden) */
#wj-exposee-gallery .carousel-control-prev,
#wj-exposee-gallery .carousel-control-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.35);
  border-radius: 50%;
  opacity: 1;
  text-decoration: none;
  z-index: 2;
}

#wj-exposee-gallery .carousel-control-prev {
  left: 10px;
}

#wj-exposee-gallery .carousel-control-next {
  right: 10px;
}

@media (min-width: 992px) {
  #wj-exposee-gallery .carousel-control-prev {
    left: -28px;
  }
  #wj-exposee-gallery .carousel-control-next {
    right: -28px;
  }
}
@media (min-width: 1200px) {
  #wj-exposee-gallery .carousel-control-prev {
    left: -56px;
  }
  #wj-exposee-gallery .carousel-control-next {
    right: -56px;
  }
}
@media (min-width: 1400px) {
  #wj-exposee-gallery .carousel-control-prev {
    left: -72px;
  }
  #wj-exposee-gallery .carousel-control-next {
    right: -72px;
  }
}
#wj-exposee-gallery .carousel-control-prev:focus-visible,
#wj-exposee-gallery .carousel-control-next:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.35);
}

#wj-exposee-gallery .carousel-control-prev:hover,
#wj-exposee-gallery .carousel-control-next:hover {
  background: rgba(0, 0, 0, 0.45);
}

#wj-exposee-gallery .carousel-control-prev-icon,
#wj-exposee-gallery .carousel-control-next-icon {
  background: none;
  width: 0;
  height: 0;
}

#wj-exposee-gallery .carousel-control-prev::after {
  content: "‹";
  color: #fff;
  font-size: 28px;
  line-height: 1;
}

#wj-exposee-gallery .carousel-control-next::after {
  content: "›";
  color: #fff;
  font-size: 28px;
  line-height: 1;
}

@media (max-width: 575.98px) {
  #wj-exposee-gallery .carousel-control-prev,
  #wj-exposee-gallery .carousel-control-next {
    background: rgba(0, 0, 0, 0.25);
    width: 38px;
    height: 38px;
  }
  #wj-exposee-gallery .carousel-control-prev::after,
  #wj-exposee-gallery .carousel-control-next::after {
    font-size: 24px;
  }
}
/* Kleinere Utilities und Tooltip-/Box-Helfer */
.saved-search-section {
  background-color: var(--wj-saved-search-bg, var(--ast-global-color-6, #ffe8a1));
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
}

/* Kompakt-Formular (unter/nebem Objektdaten) */
.saved-search-compact {
  background-color: var(--ast-global-color-7, #f8f9fa);
  border: 1px solid var(--ast-border-color, rgba(0, 0, 0, 0.12));
  border-radius: 0.375rem;
  padding: 0.5rem 0.75rem;
}

.saved-search-compact__label {
  display: inline-block;
  background: transparent;
  padding: 0;
}

.saved-search-compact__headline {
  font-weight: 700;
  margin: 0.25rem 0 0 0;
}

.saved-search-howto {
  background-color: var(--ast-global-color-6, #ffe8a1);
  border-radius: 0.25rem;
  padding: 0.5rem 0.75rem;
}

.saved-search-section .saved-search-howto {
  background: transparent;
  border: 0;
  padding: 0;
}

.saved-search-section .saved-search-howto h3 {
  margin-top: 0.5rem;
}

.saved-search-section .saved-search-howto ul {
  margin-bottom: 0;
}

/* Kompakt-Formular: Rahmen/Wrapper-Variante */
.saved-search-compact-wrap {
  background-color: var(--ast-global-color-7, #f8f9fa);
  border: 1px solid var(--ast-border-color, rgba(0, 0, 0, 0.12));
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
}

.wj-similar {
  background: transparent;
  border: 1px solid #222;
  border-radius: 0.25rem;
  padding: 0.75rem 1rem;
  max-width: 100%;
  overflow-x: hidden;
}

/* .wj-similar in Kombination mit ast-panel konsistent halten */
.wj-similar.ast-panel {
  background: transparent !important;
  border: 1px solid #222 !important;
  padding: 0.75rem 1rem !important;
  border-radius: 0.25rem !important;
}

.wj-similar .ast-panel {
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

.wj-similar .wj-lp-card {
  border: 0 !important;
  box-shadow: none !important;
}

/* Featured-Badge auf Kacheln */
.featured-item {
  position: relative;
  -webkit-box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.05);
  border: 1px solid #ebebeb;
  height: 100%;
}

.featured-item .featured-item__badge {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  color: #fff;
  width: 92px;
  height: 92px;
}

.featured-item .featured-item__badge .featured-item__badge-text {
  position: relative;
  display: flex;
  top: -46px;
  left: -46px;
  width: 92px;
  height: 92px;
  padding-bottom: 5.75px;
  text-transform: uppercase;
  vertical-align: bottom;
  text-align: center;
  font-weight: 700;
  transform: rotate(-45deg);
  background: #CAECD2; /* Badge-Farbe */
  justify-content: center;
  align-items: flex-end;
  flex: 0 1 auto;
}

/* Tooltip */
.wjtooltip {
  position: relative;
  display: inline-block;
  cursor: pointer;
}

.wjtooltip .wjtooltiptext {
  visibility: hidden;
  width: 350px;
  min-width: 350px;
  background-color: #555;
  color: #fff;
  text-align: justify;
  border-radius: 6px;
  padding: 10px 15px;
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  margin-left: -175px;
  opacity: 0;
  transition: opacity 0.3s;
}

.wjtooltip:hover .wjtooltiptext {
  visibility: visible;
  opacity: 1;
}

/* Widgets/Listen generisch */
.wj-content-widget li.widget_text::marker {
  content: none;
}

/* Button-Wrapper (WPS) */
.wps-button-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-start;
  margin: 1rem 0;
}

.wps-button-wrapper .button {
  border-radius: 0.375rem;
  text-decoration: none;
  white-space: nowrap;
}

.wps-button-raw {
  padding: 0.5rem 1rem;
}

/* Zähler-Boxen Hintergrund (z. B. .wjcount) */
.wjcount {
  background-color: #CAECD2 !important;
}

/* Mobile Sidebar List reset */
.wj-mobile-sidebar ul, .wj-mobile-sidebar li {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

/* --------------------------------------
   Objektdaten-Layout (zweispaltig) + Saved-Search kompakt daneben
   -------------------------------------- */
.wj-objektdaten-layout .saved-search-compact {
  background: transparent; /* weniger „Whitespace“ */
  border: 1px solid var(--ast-border-color, rgba(0, 0, 0, 0.12));
  border-radius: 0.375rem;
  padding: 0.5rem 0.75rem;
}

.wj-objektdaten-layout .saved-search-compact__label {
  margin-bottom: 0.25rem;
}

.wj-objektdaten-layout .saved-search-compact__headline {
  margin-top: 0.15rem;
  font-weight: 700;
}

/* Side Ads (Astra + Hooks) – optional */
:root {
  --content-max: 1200px;
  --gutter: 16px;
  --ad-w: clamp(300px, 18vw, 336px);
}

html body .side-ads {
  position: fixed;
  top: 360px !important;
  width: var(--ad-w);
  line-height: 0;
  box-sizing: content-box;
  overflow: hidden;
  z-index: 1000;
}

html body .side-ads .wohnu-adlabel {
  display: none;
}

@media (max-width: 1200px) {
  html body .side-ads {
    display: none !important;
  }
}
html body .side-ads--left {
  left: max(var(--gutter), (100vw - var(--content-max)) / 2 - var(--ad-w) - var(--gutter));
}

html body .side-ads--right {
  right: max(var(--gutter), (100vw - var(--content-max)) / 2 - var(--ad-w) - var(--gutter));
}

.admin-bar .side-ads {
  top: 390px !important;
}

.ast-sticky-active .side-ads, .ast-sticky-shrunk .side-ads {
  top: 420px !important;
}

.side-ads {
  max-height: calc(100vh - 32px);
  overflow: auto;
}

.side-ads > * + * {
  margin-top: 12px;
}

/* Abstandshalter */
div.add-distance {
  width: 100%;
  height: 30px !important;
}

/* Saved Search / Compact / Howto / Section */
.saved-search-compact__label {
  display: inline-block;
  background: transparent;
  padding: 0;
}

.saved-search-compact__headline {
  font-weight: 700;
  margin: 0.25rem 0 0 0;
}

.saved-search-badge {
  display: inline-block;
  background-color: var(--ast-global-color-6, #ffe8a1);
  color: #1a1a1a;
  border-radius: 999px;
  padding: 0.15rem 0.5rem;
  font-weight: 700;
  line-height: 1;
  transform: rotate(-6deg);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.saved-search-compact {
  background-color: var(--ast-global-color-7, #f8f9fa);
}

.saved-search-howto {
  background-color: var(--ast-global-color-6, #ffe8a1);
  border-radius: 0.25rem;
  padding: 0.5rem 0.75rem;
}

.saved-search-section {
  background-color: var(--wj-saved-search-bg, var(--ast-global-color-6, #ffe8a1));
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
}

.saved-search-section .saved-search-howto {
  background: transparent;
  border: 0;
  padding: 0;
}

.saved-search-section .saved-search-howto h3 {
  margin-top: 0.5rem;
}

.saved-search-section .saved-search-howto ul {
  margin-bottom: 0;
}

/* Exposé – Attribut-Tabellen/Karten */
.wj-attrs-table > [class^=col-],
.wj-attrs-table > [class*=" col-"] {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  background: transparent !important;
}

.wj-attrs-table > [class^=col-],
.wj-attrs-table > [class*=" col-"] {
  border: 0 !important;
  border-bottom: 2px solid #444 !important;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.wj-attrs-table .bezeichnung {
  display: block;
  font-size: 0.9rem;
  opacity: 0.85;
}

.wj-attrs-table .value {
  display: inline-block;
}

.wj-attrs-table .value strong {
  font-weight: 700;
}

.wj-attrs-cards > [class^=col-],
.wj-attrs-cards > [class*=" col-"] {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.wj-attrs-cards > [class^=col-],
.wj-attrs-cards > [class*=" col-"] > * {
  box-sizing: border-box;
}

.wj-attrs-cards > [class^=col-],
.wj-attrs-cards > [class*=" col-"] {
  background-color: var(--ast-global-color-7, #f8f9fa);
  border: 1px solid var(--ast-border-color, rgba(0, 0, 0, 0.12));
  border-radius: 0.5rem;
  padding: 1.25rem;
  text-align: center;
}

.wj-attrs-cards .bezeichnung {
  display: block;
  font-size: 0.9rem;
  opacity: 0.85;
  margin-bottom: 0.2rem;
}

.wj-attrs-cards .value {
  font-weight: 700;
  font-size: 1.05rem;
}

.wj-objektdaten .objektdaten-columns > div {
  border: 0;
  border-bottom: 2px solid #444;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.wj-objektdaten .objektdaten-columns > div:last-child {
  border-bottom: 0;
}

/*
  WJ Bootstrap Substitute CSS
  Ziel: Minimal benötigte Bootstrap-Klassen nachbilden, ohne Bootstrap zu laden.
  Fokus: responsive Container/Grid, gängige Utilities, Buttons/Formfelder, Alerts, Cards.
  Farben: keine harten Farben; falls Astra-Variablen vorhanden sind, werden diese genutzt.
*/
/* Root Fallbacks (werden nur verwendet, wenn Astra-Variablen fehlen) */
:root {
  --wj-primary: var(--ast-global-color-1, #9edba);
  --wj-border: var(--ast-border-color, rgba(0,0,0,.12));
  --wj-light: var(--ast-global-color-7, #f8f9fa);
  /* Falls Bootstrap-Reboot aktiv ist: Link-Variablen an Astra koppeln */
  --bs-link-color: var(--ast-global-color-1, #9edba);
  --bs-link-hover-color: var(--ast-global-color-2, #0F172A);
}

/* Container */
.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl,
.container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

.container-fluid {
  max-width: 100%;
}

/* Max-Widths (ähnlich Bootstrap, ausreichend für unser Layout) */
@media (min-width: 576px) {
  .container, .container-sm {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container, .container-sm, .container-md {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container, .container-sm, .container-md, .container-lg {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    max-width: 1320px;
  }
}
/* Grid */
.row {
  --wj-gx: 30px; /* 2 * 15px */
  display: flex;
  flex-wrap: wrap;
  margin-right: calc(-1 * var(--wj-gx) / 2);
  margin-left: calc(-1 * var(--wj-gx) / 2);
}

.row > [class^=col],
.row > [class*=" col"] {
  padding-right: calc(var(--wj-gx) / 2);
  padding-left: calc(var(--wj-gx) / 2);
  box-sizing: border-box;
}

.col {
  flex: 1 0 0%;
  max-width: 100%;
}

/* 12er Columns */
[class^=col-] {
  flex: 0 0 auto;
}

.col-1 {
  width: 8.333333%;
}

.col-2 {
  width: 16.666667%;
}

.col-3 {
  width: 25%;
}

.col-4 {
  width: 33.333333%;
}

.col-5 {
  width: 41.666667%;
}

.col-6 {
  width: 50%;
}

.col-7 {
  width: 58.333333%;
}

.col-8 {
  width: 66.666667%;
}

.col-9 {
  width: 75%;
}

.col-10 {
  width: 83.333333%;
}

.col-11 {
  width: 91.666667%;
}

.col-12 {
  width: 100%;
}

/* Responsive Columns (md breakpoint ~768px) */
@media (min-width: 768px) {
  .col-md-3 {
    width: 25%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-4 {
    width: 33.333333%;
  }
}
/* Extra large columns (xxl, 1400px) */
@media (min-width: 1400px) {
  .col-xxl-12 {
    width: 100%;
  }
}
/* Large breakpoint (~992px) */
@media (min-width: 992px) {
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-4 {
    width: 33.333333%;
  }
}
/* Flex & Gap Utilities */
.d-flex {
  display: flex !important;
}

.align-items-center {
  align-items: center !important;
}

.gap-1 {
  gap: 0.25rem !important;
}

.gap-2 {
  gap: 0.5rem !important;
}

.gap-3 {
  gap: 1rem !important;
}

/* Spacing Utilities (0..5) */
/* Basisgröße 0.25rem; kompatibel mit existierender Nutzung: mt-2, mb-2, my-2, ms-2, me-2, py-2, ps-2, pe-2, mt-3, mb-3, mt-4 */
:root {
  --wj-sp: .25rem;
}

[class^=m], [class^=p] {
  box-sizing: border-box;
}

/* Margin */
.m-0 {
  margin: 0 !important;
}

.m-1 {
  margin: calc(var(--wj-sp) * 1) !important;
}

.m-2 {
  margin: calc(var(--wj-sp) * 2) !important;
}

.m-3 {
  margin: calc(var(--wj-sp) * 3) !important;
}

.m-4 {
  margin: calc(var(--wj-sp) * 4) !important;
}

.m-5 {
  margin: calc(var(--wj-sp) * 5) !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-1 {
  margin-top: calc(var(--wj-sp) * 1) !important;
}

.mt-2 {
  margin-top: calc(var(--wj-sp) * 2) !important;
}

.mt-3 {
  margin-top: calc(var(--wj-sp) * 3) !important;
}

.mt-4 {
  margin-top: calc(var(--wj-sp) * 4) !important;
}

.mt-5 {
  margin-top: calc(var(--wj-sp) * 5) !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mb-1 {
  margin-bottom: calc(var(--wj-sp) * 1) !important;
}

.mb-2 {
  margin-bottom: calc(var(--wj-sp) * 2) !important;
}

.mb-3 {
  margin-bottom: calc(var(--wj-sp) * 3) !important;
}

.mb-4 {
  margin-bottom: calc(var(--wj-sp) * 4) !important;
}

.mb-5 {
  margin-bottom: calc(var(--wj-sp) * 5) !important;
}

.ms-0 {
  margin-left: 0 !important;
}

.ms-1 {
  margin-left: calc(var(--wj-sp) * 1) !important;
}

.ms-2 {
  margin-left: calc(var(--wj-sp) * 2) !important;
}

.ms-3 {
  margin-left: calc(var(--wj-sp) * 3) !important;
}

.ms-4 {
  margin-left: calc(var(--wj-sp) * 4) !important;
}

.ms-5 {
  margin-left: calc(var(--wj-sp) * 5) !important;
}

.me-0 {
  margin-right: 0 !important;
}

.me-1 {
  margin-right: calc(var(--wj-sp) * 1) !important;
}

.me-2 {
  margin-right: calc(var(--wj-sp) * 2) !important;
}

.me-3 {
  margin-right: calc(var(--wj-sp) * 3) !important;
}

.me-4 {
  margin-right: calc(var(--wj-sp) * 4) !important;
}

.me-5 {
  margin-right: calc(var(--wj-sp) * 5) !important;
}

.my-0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.my-1 {
  margin-top: calc(var(--wj-sp) * 1) !important;
  margin-bottom: calc(var(--wj-sp) * 1) !important;
}

.my-2 {
  margin-top: calc(var(--wj-sp) * 2) !important;
  margin-bottom: calc(var(--wj-sp) * 2) !important;
}

.my-3 {
  margin-top: calc(var(--wj-sp) * 3) !important;
  margin-bottom: calc(var(--wj-sp) * 3) !important;
}

.my-4 {
  margin-top: calc(var(--wj-sp) * 4) !important;
  margin-bottom: calc(var(--wj-sp) * 4) !important;
}

.my-5 {
  margin-top: calc(var(--wj-sp) * 5) !important;
  margin-bottom: calc(var(--wj-sp) * 5) !important;
}

.mx-0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.mx-1 {
  margin-left: calc(var(--wj-sp) * 1) !important;
  margin-right: calc(var(--wj-sp) * 1) !important;
}

.mx-2 {
  margin-left: calc(var(--wj-sp) * 2) !important;
  margin-right: calc(var(--wj-sp) * 2) !important;
}

.mx-3 {
  margin-left: calc(var(--wj-sp) * 3) !important;
  margin-right: calc(var(--wj-sp) * 3) !important;
}

.mx-4 {
  margin-left: calc(var(--wj-sp) * 4) !important;
  margin-right: calc(var(--wj-sp) * 4) !important;
}

.mx-5 {
  margin-left: calc(var(--wj-sp) * 5) !important;
  margin-right: calc(var(--wj-sp) * 5) !important;
}

/* Padding */
.p-0 {
  padding: 0 !important;
}

.p-1 {
  padding: calc(var(--wj-sp) * 1) !important;
}

.p-2 {
  padding: calc(var(--wj-sp) * 2) !important;
}

.p-3 {
  padding: calc(var(--wj-sp) * 3) !important;
}

.p-4 {
  padding: calc(var(--wj-sp) * 4) !important;
}

.p-5 {
  padding: calc(var(--wj-sp) * 5) !important;
}

.pt-0 {
  padding-top: 0 !important;
}

.pt-1 {
  padding-top: calc(var(--wj-sp) * 1) !important;
}

.pt-2 {
  padding-top: calc(var(--wj-sp) * 2) !important;
}

.pt-3 {
  padding-top: calc(var(--wj-sp) * 3) !important;
}

.pt-4 {
  padding-top: calc(var(--wj-sp) * 4) !important;
}

.pt-5 {
  padding-top: calc(var(--wj-sp) * 5) !important;
}

.pb-0 {
  padding-bottom: 0 !important;
}

.pb-1 {
  padding-bottom: calc(var(--wj-sp) * 1) !important;
}

.pb-2 {
  padding-bottom: calc(var(--wj-sp) * 2) !important;
}

.pb-3 {
  padding-bottom: calc(var(--wj-sp) * 3) !important;
}

.pb-4 {
  padding-bottom: calc(var(--wj-sp) * 4) !important;
}

.pb-5 {
  padding-bottom: calc(var(--wj-sp) * 5) !important;
}

.ps-0 {
  padding-left: 0 !important;
}

.ps-1 {
  padding-left: calc(var(--wj-sp) * 1) !important;
}

.ps-2 {
  padding-left: calc(var(--wj-sp) * 2) !important;
}

.ps-3 {
  padding-left: calc(var(--wj-sp) * 3) !important;
}

.ps-4 {
  padding-left: calc(var(--wj-sp) * 4) !important;
}

.ps-5 {
  padding-left: calc(var(--wj-sp) * 5) !important;
}

.pe-0 {
  padding-right: 0 !important;
}

.pe-1 {
  padding-right: calc(var(--wj-sp) * 1) !important;
}

.pe-2 {
  padding-right: calc(var(--wj-sp) * 2) !important;
}

.pe-3 {
  padding-right: calc(var(--wj-sp) * 3) !important;
}

.pe-4 {
  padding-right: calc(var(--wj-sp) * 4) !important;
}

.pe-5 {
  padding-right: calc(var(--wj-sp) * 5) !important;
}

.py-0 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.py-1 {
  padding-top: calc(var(--wj-sp) * 1) !important;
  padding-bottom: calc(var(--wj-sp) * 1) !important;
}

.py-2 {
  padding-top: calc(var(--wj-sp) * 2) !important;
  padding-bottom: calc(var(--wj-sp) * 2) !important;
}

.py-3 {
  padding-top: calc(var(--wj-sp) * 3) !important;
  padding-bottom: calc(var(--wj-sp) * 3) !important;
}

.py-4 {
  padding-top: calc(var(--wj-sp) * 4) !important;
  padding-bottom: calc(var(--wj-sp) * 4) !important;
}

.py-5 {
  padding-top: calc(var(--wj-sp) * 5) !important;
  padding-bottom: calc(var(--wj-sp) * 5) !important;
}

.px-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.px-1 {
  padding-left: calc(var(--wj-sp) * 1) !important;
  padding-right: calc(var(--wj-sp) * 1) !important;
}

.px-2 {
  padding-left: calc(var(--wj-sp) * 2) !important;
  padding-right: calc(var(--wj-sp) * 2) !important;
}

.px-3 {
  padding-left: calc(var(--wj-sp) * 3) !important;
  padding-right: calc(var(--wj-sp) * 3) !important;
}

.px-4 {
  padding-left: calc(var(--wj-sp) * 4) !important;
  padding-right: calc(var(--wj-sp) * 4) !important;
}

.px-5 {
  padding-left: calc(var(--wj-sp) * 5) !important;
  padding-right: calc(var(--wj-sp) * 5) !important;
}

/* Buttons (neutral) – Farben steuert Astra, hier KEINE Farbvorgaben */
.btn {
  display: inline-block;
  font: inherit;
  line-height: 1.5;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--wj-border);
  background: transparent; /* keine Hintergrundfarbe setzen */
  color: inherit; /* Farbe vom Theme erben */
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  border-radius: 0.375rem;
}

.btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

/* Form Controls */
.form-control {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font: inherit;
  line-height: 1.5;
  color: inherit;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid var(--wj-border);
  border-radius: 0.375rem;
}

/* Input Group (einfach) */
.input-group {
  display: flex;
  align-items: stretch;
  width: 100%;
}

.input-group > .form-control {
  flex: 1 1 auto;
}

.input-group > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Alerts (dezente Boxen) */
.alert {
  position: relative;
  padding: 0.75rem 1rem;
  border: 1px solid var(--wj-border);
  border-radius: 0.375rem;
}

.alert-success {
  background: #edf7ed;
  border-color: #cce5cc;
}

.alert-danger {
  background: #fdecea;
  border-color: #f5c2c7;
}

.alert-warning {
  background: #fff8e1;
  border-color: #ffe69c;
}

/* Cards / Panels */
.card {
  border: 1px solid var(--wj-border);
  border-radius: 0.375rem;
  background: #fff;
}

.card-body {
  padding: 1rem;
}

/* Farben/Utilities */
.text-primary {
  color: var(--ast-global-color-0, var(--wj-primary));
}

.bg-light {
  background-color: var(--wj-light) !important;
}

.border {
  border: 1px solid var(--wj-border) !important;
}

/* Helfer: ast-panel (dezente Abtrennung) */
.ast-panel {
  background-color: var(--wj-light);
  border: 1px solid var(--wj-border);
  border-radius: 0.375rem;
  padding: 0.75rem 0.9rem;
}

/* Linkfarben nur in WJ-Bereichen setzen (Elementor-Farben nicht übersteuern) */
.wj-search-page a,
.wj-search-page a:hover,
.wj-exposeelist a,
.wj-exposeelist a:hover,
.saved-search-compact a,
.saved-search-compact a:hover,
.saved-search-howto a,
.saved-search-howto a:hover,
.wj-similar a,
.wj-similar a:hover {
  color: var(--ast-global-color-2, inherit);
}

/* Suchseite: sichere Fluss, keine Nebenstellung von Header/Inhalt */
.wj-search-page .entry-header, .wj-search-page .entry-content {
  clear: both;
}

/* Kompaktformular: dezente Box + gut lesbarer Label-Text */
.saved-search-compact {
  background-color: var(--wj-light);
  border: 1px solid var(--wj-border);
  border-radius: 0.375rem;
  padding: 0.5rem 0.75rem;
}

.saved-search-compact__label span {
  color: inherit;
}

/*# sourceMappingURL=wj-plugin-styles.css.map */
