/* KLS – Supplementary CSS for AJAX live search.
   The Elementor-generated <style id="loop-534"> is preserved/re-injected
   by kls.js after each innerHTML replace, so we do NOT need to duplicate
   those rules here.  This file only adds loading, no-results, overflow
   containment, and mobile safety rules that are NOT in the inline style. */

/* ── Loading overlay ── */
.elementor-loop-container.elementor-grid.kls-loading {
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

/* ── No results ── */
.kls-no-results {
  width: 100%;
  text-align: center;
  border: 1px solid rgba(255,255,255,.18);
  background: transparent;
  color: #d5d5d5;
  padding: 32px 18px;
  font-size: 14px;
  letter-spacing: 0.04em;
}
.e-loop-item.kls-no-results-wrap {
  grid-column: 1 / -1;
  width: 100%;
}

/* ── Overflow containment (prevents horizontal scroll on AJAX results) ── */
.elementor-loop-container.elementor-grid > .e-loop-item {
  min-width: 0;
  overflow: hidden;
}
.elementor-534 {
  max-width: 100%;
  box-sizing: border-box;
}
.elementor-534 .elementor-heading-title,
.elementor-534 .elementor-heading-title a,
.elementor-534 .elementor-widget-text-editor {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* ── Fallback: icon reset for .elementor-view-default ──
   Elementor base sets font-size:50px, padding:.5em on stacked/framed.
   The inline style overrides these, but as an extra safety net: */
.elementor-534 .elementor-element.elementor-element-290513b .elementor-icon {
  font-size: 15px;
}
.elementor-534 .elementor-element.elementor-element-290513b .elementor-icon svg {
  height: 15px;
  width: 15px;
}
.elementor-534 .elementor-element.elementor-element-290513b.elementor-view-default .elementor-icon {
  padding: 0;
  border: 0 none;
  background: transparent;
  color: #FFFFFF;
  fill: #FFFFFF;
}
.elementor-534 .elementor-element.elementor-element-290513b.elementor-view-default .elementor-icon svg {
  fill: #FFFFFF;
}

/* ── Mobile safety ── */
@media (max-width: 767px) {
  /* Reduce card padding on small screens */
  .elementor-534 .elementor-element.elementor-element-a3a45b6 {
    --padding-top: 20px;
    --padding-bottom: 20px;
    --padding-left: 16px;
    --padding-right: 16px;
  }
  /* Bottom row wraps */
  .elementor-534 .elementor-element.elementor-element-2962988 {
    --flex-wrap: wrap;
  }
  /* City wrap full width */
  .elementor-534 .elementor-element.elementor-element-64d6ee8 {
    --width: 100%;
  }
  /* Button not pushed right on mobile */
  .elementor-534 .elementor-element.elementor-element-be492ba {
    --align-self: flex-start;
    margin: 0;
    padding: 0;
  }
  /* Ensure cards don't overflow grid cell */
  .elementor-534 .e-con-inner {
    max-width: 100%;
    overflow: hidden;
  }
}
