/*
 * Buscador inteligente (campo de texto libre) y bloque "Tambien cerca".
 * Se carga solo si el cliente prendio el buscador inteligente. Usa los mismos tokens que el
 * resto del buscador (--immo-input-*, --immo-card-*, --immo-primary) para leerse igual en los
 * temas claros y oscuros: el par fondo/texto del campo y de los chips es el de los selects, el
 * del desplegable es el de la tarjeta.
 */

.gvm-smart { margin: 0 0 1.25rem; text-align: left; }
.gvm-smart-form { position: relative; margin: 0; }
.gvm-smart-row { position: relative; display: flex; gap: .6rem; align-items: stretch; }

.gvm-smart .gvm-smart-row .gvm-smart-input.form-control {
  flex: 1 1 auto;
  min-width: 0;
  height: 52px;
  padding: .6rem 1rem .6rem 2.7rem;
  font-size: 1rem;
  font-weight: 500;
  color: var(--immo-input-text, #1a1a2e);
  background-color: var(--immo-input-bg, #ffffff);
  border: 1px solid var(--immo-input-border, rgba(0,0,0,.18));
  text-overflow: ellipsis;
}
.gvm-smart .gvm-smart-row .gvm-smart-input.form-control::placeholder {
  color: var(--immo-input-label, #5c636a);
  opacity: .9;
}
.gvm-smart .gvm-smart-row .gvm-smart-input.form-control:focus {
  border-color: var(--immo-primary);
  box-shadow: 0 0 0 3px var(--immo-primary-light, rgba(0,0,0,.12));
  outline: none;
}
.gvm-smart-ico {
  position: absolute;
  left: 1rem;
  top: 26px;
  transform: translateY(-50%);
  color: var(--immo-primary);
  pointer-events: none;
  z-index: 2;
}
/* El selector largo gana a los ".hero-search .btn-immo { width: 100% }" de algunos temas */
.gvm-smart .gvm-smart-row .gvm-smart-btn { flex: 0 0 auto; width: auto; height: auto; min-height: 52px; margin: 0; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: .15rem; }

/* Desplegable de zonas: par fondo/texto de la tarjeta */
.gvm-smart-list {
  position: absolute;
  left: 0;
  right: 0;
  top: 56px;
  z-index: 50;
  margin: 0;
  padding: .25rem 0;
  list-style: none;
  background: var(--immo-card-bg, #ffffff);
  color: var(--immo-card-ink, #1a1a2e);
  border: 1px solid var(--immo-primary);
  border-radius: var(--immo-radius, 8px);
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
  max-height: 320px;
  overflow-y: auto;
}
.gvm-smart-list[hidden] { display: none; }
.gvm-smart-opt { padding: .6rem 1rem; cursor: pointer; font-size: .95rem; line-height: 1.3; }
.gvm-smart-opt strong { font-weight: 700; }
.gvm-smart-opt-loc { opacity: .85; }
.gvm-smart-opt:hover,
.gvm-smart-opt.gvm-smart-active {
  background: rgba(127,127,127,.18);
  box-shadow: inset 3px 0 0 var(--immo-primary);
}

/* Chips: lo que se entendio, quitables */
.gvm-smart-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .6rem; }
.gvm-smart-chips:empty { display: none; }
.gvm-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem .35rem .3rem .8rem;
  border-radius: 999px;
  border: 1px solid var(--immo-primary);
  background: var(--immo-input-bg, #ffffff);
  color: var(--immo-input-text, #1a1a2e);
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.2;
}
.gvm-chip-x {
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}
.gvm-chip-x:hover { background: rgba(127,127,127,.28); }
.gvm-chip-x:focus-visible,
.gvm-chip-choice:focus-visible,
.gvm-smart-btn:focus-visible { outline: 2px solid var(--immo-primary); outline-offset: 2px; }
.gvm-chip-ask { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.gvm-chip-ask-t { font-size: .85rem; font-weight: 600; color: var(--immo-card-ink, #1a1a2e); }
.gvm-chip-choice { padding: .3rem .8rem; cursor: pointer; font-family: inherit; }
.gvm-chip-choice:hover { background: rgba(127,127,127,.2); }
.gvm-chip-note { font-size: .8rem; color: var(--immo-input-label, #5c636a); }

.gvm-smart-hint {
  margin: .6rem 0 0;
  padding: .55rem .8rem;
  font-size: .88rem;
  color: var(--immo-card-ink, #1a1a2e);
  border-left: 3px solid var(--immo-primary);
  background: rgba(127,127,127,.12);
  border-radius: 4px;
}
.gvm-smart-hint[hidden] { display: none; }

.gvm-smart-or {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-top: 1rem;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--immo-input-label, #5c636a);
}
.gvm-smart-or::before,
.gvm-smart-or::after { content: ""; flex: 1; height: 1px; background: var(--immo-card-border, rgba(127,127,127,.3)); }

@media (max-width: 575.98px) {
  .gvm-smart-btn-t { display: none; }
  .gvm-smart-btn { padding-left: 1rem; padding-right: 1rem; }
}

/* ---- "Tambien cerca de ..." (propiedades.php) ---- */
.gvm-cerca { margin-top: 3rem; }
.gvm-cerca[hidden] { display: none; }
.gvm-cerca-sub { text-align: center; margin: .25rem 0 1.5rem; color: var(--immo-gray-700); }
.gvm-cerca .property-location .gvm-cerca-km { white-space: nowrap; font-weight: 700; }
