.ipsf,
.ipsf * {
  box-sizing: border-box !important;
}
.ipsf {
  --ipsf-bg: #ffffff;
  --ipsf-card: #ffffff;
  --ipsf-text: #111111;
  --ipsf-muted: #666666;
  --ipsf-border: #dddddd;
  --ipsf-focus: rgba(0, 0, 0, 0.15);
  --ipsf-black: #000000;
  --ipsf-grey-light: #f5f5f5;
  --ipsf-grey-hover: #eaeaea;
  --ipsf-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);

  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  color: var(--ipsf-text) !important;
  width: 100% !important;
}
form.ipsf{
	background: var(--ipsf-card) !important;
	}
/* Card */
.ipsf-card {
  background:var(--ipsf-card) !important;
  border: 1px solid var(--ipsf-border) !important;
  box-shadow: var(--ipsf-shadow) !important;
}
@media (min-width: 768px) {
  .ipsf-card {
	padding: 18px 110px !important;
	 }
}
.ipsf-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  margin-bottom: 14px !important;
  letter-spacing: -0.3px !important;
}
.ipsf-subtitle {
  font-size: 13px !important;
  color: var(--ipsf-muted) !important;
  margin-bottom: 18px !important;
}
/* Grid */
.ipsf-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 6px 14px!important;
}
.ipsf-col-12 { grid-column: span 12 !important; }
.ipsf-col-6  { grid-column: span 12 !important; }
.ipsf-col-4  { grid-column: span 12 !important; }
.ipsf-col-2 { grid-column: span 12 !important; }
@media (min-width: 768px) {
.ipsf-grid { grid-template-columns: repeat(12, 1fr) !important; }
  .ipsf-col-2 { grid-column: span 3 !important; }
  .ipsf-col-6 { grid-column: span 6 !important; }
  .ipsf-col-4 { grid-column: span 4 !important; }
  .ipsf-col-3 { grid-column: span 3 !important; }
}
@media (min-width: 1170px) {
  .ipsf-col-2 { grid-column: span 2 !important; }
}
/* Labels */
.ipsf-field label {
  font-size: 12px !important;
  font-weight: 600 !important;
  display: block !important;
  color: var(--ipsf-text) !important;
}

/* Inputs */
.ipsf input[type="text"],
.ipsf input[type="number"],
.ipsf select {
  width: 100% !important;
  border: 1px solid var(--ipsf-border) !important;
  border-radius: 4px !important;
  background: #ffffff !important;
  padding: 6px 12px !important;
  font-size: 14px !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}
/* Global typography for ALL form controls */
.ipsf input,
.ipsf select,
.ipsf textarea,
.ipsf button,
.ipsf-dropdown-selected,
.ipsf-dropdown-menu label {
  font-size: 14px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
}
.ipsf select[multiple] {
  min-height: 110px !important;
}
.ipsf input:focus,
.ipsf select:focus {
  border-color: #000000 !important;
  box-shadow: 0 0 0 3px var(--ipsf-focus) !important;
}
.ipsf input::placeholder {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ipsf-muted) !important;
}
/* Checkbox container */
.ipsf-inline {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 6px 12px !important;
  border: 1px solid var(--ipsf-border) !important;
  border-radius: 4px !important;
  background: var(--ipsf-grey-light) !important;
}
.ipsf-inline input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: #000000 !important;
  margin: 0 !important;
}
/* Buttons */
.ipsf-actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin-top: 18px !important;
}
@media (min-width: 768px) {
  .ipsf-actions {
    flex-direction: row !important;
    justify-content: flex-end !important;
  }
}
.ipsf-btn {
  border-radius: 4px !important;
  padding: 12px 18px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
.ipsf-btn-primary {
  background: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #000000 !important;
}
.ipsf-btn-primary:hover {
  background: #333333 !important;
  border-color: #333333 !important;
}
.ipsf-btn-ghost {
  background: #ffffff !important;
  border: 1px solid var(--ipsf-border) !important;
  color: #000000 !important;
}
.ipsf-btn-ghost:hover {
  background: var(--ipsf-grey-hover) !important;
}
/* Hidden utility */
.ipsf-hidden {
  display: none !important;
}
/* Dropdown container */
.ipsf-dropdown {
  position: relative !important;
  width: 100% !important;
}

/* Selected box */
.ipsf-dropdown-selected {
  border: 1px solid var(--ipsf-border) !important;
  border-radius: 4px !important;
  padding: 6px 12px !important;
  background: #fff !important;
  cursor: pointer !important;
  min-height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

/* Dropdown menu (hidden on load) */
.ipsf-dropdown-menu {
  position: absolute !important;
  top: calc(100% + 1px);
  left: 0;
  width: 100% !important;

  background: #ffffff !important;
  border: 1px solid var(--ipsf-border) !important;
  border-radius: 4px !important;

  max-height: 220px !important;
  overflow-y: auto !important;

  box-shadow: 0 10px 25px rgba(0,0,0,0.08) !important;

  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: all 0.15s ease !important;

  z-index: 9999 !important;
  padding: 6px 0 !important;
}

/* When active */
.ipsf-dropdown.open .ipsf-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Options */
.ipsf-dropdown-menu label {
  display: block !important;
  padding: 8px 12px !important;
  cursor: pointer !important;
  font-size: 14px !important;
}

.ipsf-dropdown-menu label:hover {
  background: #f2f2f2 !important;
}
.ipsf-clickable {
  cursor: pointer !important;
  transition: background 0.15s ease !important;
}

.ipsf-clickable:hover {
  background: #f0f0f0 !important;
}

.ipsf-clickable:active {
  background: #e6e6e6 !important;
}
.ipsf-selectall {
  border-bottom: 1px solid #e6e6e6 !important;
  margin-bottom: 6px !important;
  padding-bottom: 8px !important;
  font-weight: 600 !important;
}
.hideInput, .ipsf-dropdown-menu label.hideInput{
	display:none !important;
	}
/* Force title + reset on the same row */
.ipsf-header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:14px !important;
}

/* Title should NOT push the layout down */
/* Override late-loaded global button styles */
form.ipsf button.ipsf-btn,
form.ipsf button.ipsf-reset-top,
form.ipsf button.ipsf-btn-ghost {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 0 0 auto!important;
  padding: 8px 16px !important;
  line-height: normal !important;
  font-size: 14px !important;
  color: #000 !important;
  background: #fff !important;
  border: 1px solid #ddd !important;
  text-align: center !important;
}

/* Also protect the submit button (since their CSS hits input[type="submit"]) */
form.ipsf button[type="submit"].ipsf-btn-primary {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 !important;
  padding: 10px 28px !important;
  font-size: 15px !important;
  line-height: normal !important;
  color: #fff !important;
  background: #000 !important;
  border: 1px solid #000 !important;
}
.ipsf-header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:14px !important;
}
.ipsf-header .ipsf-title{ margin:0 !important; }
.ipsf-header .ipsf-reset-top{ white-space:nowrap !important; }
.ipsf-invalid {
  outline: 2px solid #d33;
  border-color: #d33;
}
.ipsf-error {
  color: #d33;
}
.ps-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:16px 0 12px;
  flex-wrap:wrap;
}

.ps-sort-form{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
}

.ps-sort-label{
  font-size:13px;
  opacity:.8;
  white-space:nowrap;
}

.ps-sort-select{
  min-width:190px;
  height:38px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  font-size:14px;
}
.ps-count{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:10px;
  background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.08);
  font-size:14px;
}
.ps-count-number{
  font-weight:700;
  font-size:15px;
}
.ps-count-label{
  opacity:.7;
}
.ps-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
@media (max-width: 1024px){.ps-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 640px){.ps-grid{grid-template-columns:1fr;}}

.ps-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  padding:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  transition:transform .15s ease, box-shadow .15s ease;
}
.ps-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(0,0,0,.10);
}

.ps-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ps-price{font-size:18px;font-weight:700}
.ps-ref{
  font-size:11px !important;
  font-weight:600 !important;
  opacity:1 !important;
  padding:4px 8px !important;
  border-radius:6px !important;
  background:rgba(0,0,0,.06) !important;
  border:1px solid rgba(0,0,0,.12) !important;
  letter-spacing:.3px !important;
  white-space:nowrap !important;
}
.ps-type{margin-top:6px;font-weight:600;font-size:14px}
.ps-loc{margin-top:4px;font-size:13px;opacity:.85}

.ps-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.ps-chip{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(0,0,0,.04);
}
.ps-chip-label{font-size:12px;opacity:.75}
.ps-chip-val{font-size:13px;font-weight:600}

.ps-empty{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  padding:18px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
}
.ps-empty-title{font-weight:700;font-size:16px}
.ps-empty-sub{margin-top:4px;opacity:.8;font-size:13px}

.ps-pagination{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:18px 0 6px;
}
.ps-pagebtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  text-decoration:none;
  color:inherit;
  font-weight:600;
}
.ps-pagebtn.is-disabled{
  pointer-events:none;
  opacity:.45;
}
.ps-pageinfo{font-size:13px;opacity:.8;text-align:center;min-width:70px;}
/* Hard clamp images inside the wrap */
.ps-imgwrap{
  position: relative;
  overflow: hidden;
}

/* Force the <img> to behave */
.ps-imgwrap img.ps-img{
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover;
  object-position: center;
}

/* In case global CSS sets images to absolute/floats */
.ps-img{
  float: none !important;
  position: static !important;
}
/* === FORCE property card images to never escape (wins against theme CSS) === */
.ipsf .ps-card,
.ipsf .ps-card *{
  box-sizing:border-box !important;
}

/* Clip anything inside the card */
.ps-card{
  overflow:hidden !important; /* important for hover transforms inside */
}
/* Image container clips the image */
.ps-card .ps-imgwrap{
  position: relative !important;
  width: 100% !important;
  height: 280px !important; /* STANDARD HEIGHT */
  overflow: hidden !important;
  border-radius: 12px !important;
  background: #f2f2f2 !important;
  margin-bottom: 10px !important;
}
/* Absolutely override any global img styles */
.ps-card .ps-imgwrap > img.ps-img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;     /* crops instead of stretching */
  object-position: center !important;
  display: block !important;
  max-width: none !important;
  max-height: none !important;
  position: static !important;
  float: none !important;
  transition: transform .25s ease !important;
}
.ps-card:hover .ps-imgwrap > img.ps-img{
  transform: scale(1.04) !important;
}
.ps-pagination{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin:18px 0 6px;
}

.ps-pag-left, .ps-pag-right, .ps-pag-mid{
  display:flex;
  align-items:center;
  gap:8px;
}

.ps-pagenum{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 10px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  text-decoration:none;
  color:inherit;
  font-weight:700;
  font-size:13px;
}

.ps-pagenum:hover{ background:rgba(0,0,0,.04); }

.ps-pagenum.is-active{
  background:#000;
  color:#fff;
  border-color:#000;
  pointer-events:none;
}

.ps-ellipsis{
  opacity:.6;
  padding:0 4px;
  font-weight:700;
}

.ps-jump{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}

.ps-jump-label{
  font-size:13px;
  opacity:.75;
}

.ps-jump-input{
  width:72px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  padding:0 10px;
  font-size:14px;
}
@media (max-width: 640px) {
  .ps-jump{
    display:none !important;
  }
}
.ps-distance{
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.3;
  opacity: .8;
}
.sBtnCont{
  justify-self: end !important;
}

@media (min-width: 768px){
  .ipsf-grid .sBtnCont{
    grid-column: -4 / -1 !important; /* last columns of the grid */
    display: flex !important;
    justify-content: flex-end !important;
  }
}

@media (min-width: 1170px){
  .ipsf-grid .sBtnCont{
    grid-column: -3 / -1 !important;
  }
}
/* === Overlay badge: force above image & above theme CSS === */
.ps-badge-stack {
  position: absolute;
  top: 10px !important;
  left: 10px !important;
  z-index: 9999 !important;
}
.ps-badge-overlay{
	padding:5px 10px;
	border-radius:3px;
	display:inline-block;
	text-align:center;
	vertical-align:top;
	color:#fff;
	background:rgba(0,0,0,0.7);
	line-height:20px;
	font-size:15px;
	}
.ipsf input[type="range"]{
  width:100% !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background:transparent !important;
  padding:0 !important;
  margin-top:-10px;
  height:26px !important;
}

.ipsf input[type="range"]::-webkit-slider-runnable-track{
  height:6px !important;
  border-radius:999px !important;
  background:#ddd !important;
}

.ipsf input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none !important;
  appearance:none !important;
  width:18px !important;
  height:18px !important;
  border-radius:50% !important;
  background:#000 !important;
  border:none !important;
  margin-top:-6px !important;
  cursor:pointer !important;
}

.ipsf input[type="range"]::-moz-range-track{
  height:6px !important;
  border-radius:999px !important;
  background:#ddd !important;
}

.ipsf input[type="range"]::-moz-range-thumb{
  width:18px !important;
  height:18px !important;
  border-radius:50% !important;
  background:#000 !important;
  border:none !important;
  cursor:pointer !important;
}

#radius_value{
  margin-left:8px;
  font-size:14px;
  font-weight:500;
}
