/* Native search source selector; iHomefinder owns each widget's results. */
.dz-homes-source-toggle {
  --dz-toggle-teal: #203b42;
  --dz-toggle-paper: #f7f6f2;
  position: relative;
  display: flex;
  width: min(100%, 440px);
  height: 52px;
  box-sizing: border-box;
  margin: 30px auto 0;
  padding: 4px;
  border-radius: 10px;
  background: #e8ebe7;
  box-shadow: inset 0 2px 5px rgba(31, 45, 48, .13), inset 0 0 0 1px rgba(31, 45, 48, .06);
}

.dz-homes-source-toggle__selection {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc((100% - 8px) / 2);
  border-radius: 7px;
  background: var(--dz-toggle-teal);
  box-shadow: 0 2px 5px rgba(22, 43, 48, .22);
  pointer-events: none;
  transition: transform 240ms ease-in-out, box-shadow 240ms ease-in-out;
}

.dz-homes-source-toggle[data-selected="all"] .dz-homes-source-toggle__selection {
  transform: translateX(100%);
  box-shadow: 0 2px 6px rgba(22, 43, 48, .25);
}

.dz-homes-source-toggle__option {
  position: relative;
  z-index: 1;
  flex: 1 1 50%;
  min-width: 0;
  margin: 0;
  padding: 0 4px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #46595c;
  cursor: pointer;
  font: 600 15px/1.2 Manrope, ui-sans-serif, system-ui, sans-serif;
  white-space: nowrap;
  transition: color 240ms ease-in-out;
}

.dz-homes-source-toggle__option[aria-pressed="true"] {
  color: var(--dz-toggle-paper);
}

.dz-homes-source-toggle__option:focus-visible {
  outline: 2px solid #28545f;
  outline-offset: 2px;
}

.dz-homes-results {
  position: relative;
  margin-top: 38px;
}

/* Keep the existing house animation at a stable position while Kestrel mounts
   at its real width. Asynchronous filters cannot push the loader down. */
.dz-homes-results[data-dz-homes-loading="pending"],
.dz-homes-results[data-dz-homes-departing] {
  min-height: clamp(320px, 55vh, 520px);
}

.dz-homes-results[data-dz-homes-loading="pending"] #dz-homes-search {
  position: absolute;
  inset: 0 0 auto;
  visibility: hidden;
  pointer-events: none;
}

.dz-homes-loader {
  position: absolute;
  inset: 0 0 auto;
  box-sizing: border-box;
  width: 100%;
}

.dz-homes-results:not([data-dz-homes-loading="pending"]) .dz-homes-loader,
.dz-homes-loading-error {
  display: none;
}

/* Hide outgoing results without collapsing them, preserving Back restoration
   and scroll position while the existing house supplies navigation feedback. */
.dz-homes-results[data-dz-homes-departing] #dz-homes-search {
  visibility: hidden;
  pointer-events: none;
}

.dz-homes-results[data-dz-homes-departing] .dz-homes-loader {
  display: grid;
}

.dz-homes-results[data-dz-homes-loading="failed"]:not([data-dz-homes-native-error]) .dz-homes-loading-error {
  display: block;
  margin: 0 0 24px;
  color: #526166;
  text-align: center;
}

main#main-content:has(.dz-homes-results) {
  background: #f7f6f2;
}

@media (max-width: 639px) {
  .dz-homes-results[data-dz-homes-loading="pending"],
  .dz-homes-results[data-dz-homes-departing] {
    min-height: min(50vh, 360px);
  }
}

@media (max-width: 479px) {
  .dz-homes-source-toggle__option {
    font-size: clamp(13px, 3.6vw, 15px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dz-homes-source-toggle__selection,
  .dz-homes-source-toggle__option {
    transition: none;
  }
}
