/* Portada de /homes: el lema en la foto, la franja gris con el buscador y las
 * pastillas de operacion (views/homes.php, src/homes/catalog/buscador-portada.js), y
 * las piezas nuevas del listado: el titulo con el lugar, "Ver mas propiedades" y los
 * enlaces a los catalogos de lugares.
 *
 * LA MARCA MANDA. La foto y el lema son .hero y .hero-suptitle, y la franja es
 * .headline con .headline-title, .headline-icon y .search-box: las reglas de
 * css/homes.css de siempre, con su letra (MullerNext Expanded en el lema, Galano en
 * todo lo demas), su negro y su gris. Aqui solo va lo que cambio (el lema mas grande,
 * el titulo mas grande) y lo que no existia (la lista de sugerencias, "Cerca de mi",
 * los atajos), dibujado con las mismas piezas: pastillas negras de borde 1.5px,
 * botones negros redondos, blanco y gris #EAEAEA.
 *
 * Se enlaza FUERA de #root (Vue 2 retira los <style> que quedan dentro al montarse) y
 * su version va por la fecha del archivo (filemtime): cada cambio llega sin tocar sufijos.
 */
:root {
  --inm-tinta: #0A1F16;
  --inm-tinta-suave: #5F6B66;
  --inm-linea: #D9DDDB;
  --inm-resalte: #EEF1EF;
}

/* ============ EL LEMA, EN LA FOTO ============
   Lo demas (posicion arriba a la derecha, blanco, MullerNext Expanded) es
   .hero-suptitle de css/homes.css, como siempre. En escritorio, mas grande y en
   renglones parejos cuando no cabe en uno; en el telefono manda la regla de
   css/homes.css (arriba a la izquierda, 22-30 px). */
#page .inm-lema {
  margin: 0;
  /* Ancho para dos renglones: "Tu hogar," y "posibilidades infinitas". */
  max-width: min(80vw, 72rem);
  font-weight: 400;
  font-size: clamp(1.4rem, 3.3vw, 3rem);
  line-height: 1.08;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: normal;
  overflow-wrap: break-word;
  text-wrap: balance;
  text-shadow: 0 1px 18px rgba(0, 0, 0, .22);
}
@media (max-width: 640px) {
  #page .inm-lema { letter-spacing: .03em; }
}

/* ============ LA FRANJA DEL BUSCADOR ============
   .headline (gris, con su aire arriba y abajo), .headline-row y .headline-title son
   las de css/homes.css. El titulo, mas grande que antes (20-28 px): lo pidio el owner. */
.inm-buscar {
  position: relative;
  /* Encima de lo que sigue: las sugerencias bajan sobre el listado. */
  z-index: 5;
  padding-left: 1rem;
  padding-right: 1rem;
  text-align: center;
}
.inm-buscar *,
.inm-buscar *::before,
.inm-buscar *::after { box-sizing: border-box; }
.inm-buscar .headline-title {
  margin: 0;
  font-size: clamp(1.25rem, 3vw, 2.5rem);
  line-height: 1.15;
  text-wrap: balance;
}
/* En el telefono la casita va arriba del titulo: a su lado quedaba lejos, en la orilla. */
@media (max-width: 640px) {
  .inm-buscar .headline-row { flex-direction: column; gap: .5rem; }
  .inm-buscar .headline-icon { order: -1; }
}
.inm-buscar__cuenta {
  margin: .55rem auto 0;
  font-size: .98rem;
  line-height: 1.4;
  color: var(--inm-tinta-suave);
  text-wrap: balance;
}
/* Los botones del sitio salen En Mayusculas Cada Palabra ("Cerca De Mí"): aqui no. */
.inm-buscar button,
.inm-buscar a { text-transform: none; }

/* ============ EL BUSCADOR ============ */
.inm-buscador {
  position: relative;
  width: min(720px, 100%);
  margin: 1.5rem auto 0;
  text-align: left;
}

/* LA CAJA: es .search-box (blanca, redonda, con su sombra), con la lupa, "Cerca de
   mi" y el boton negro dentro. */
.inm-buscador__campo {
  position: relative;
  width: 100%;
}
.inm-buscar .inm-buscador__caja {
  width: 100%;
  min-height: 3.6rem;
  gap: .35rem;
  padding: 6px 6px 6px 18px;
}
.inm-buscador__lupa {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #000;
  stroke-width: 2;
  stroke-linecap: round;
  opacity: .85;
}
.inm-buscar .inm-buscador__entrada {
  flex: 1 1 auto;
  min-width: 0;
  height: 2.8rem;
  padding: 0 .35rem;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
}
.inm-buscador__cerca {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .4rem;
  height: 2.8rem;
  padding: 0 .85rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #000;
  font-family: inherit;
  font-size: .92rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.inm-buscador__cerca:hover { background: var(--inm-resalte); }
.inm-buscador__cerca svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.inm-buscador__cerca[hidden] { display: none; }
/* El boton negro y redondo de "Filtrar" y "Ver Más". */
.inm-buscador__ir {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  height: 2.8rem;
  padding: 0 1.6rem;
  border: 0;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .01em;
  cursor: pointer;
}
.inm-buscador__ir:hover { background: #1f2a25; }
/* La lupa del boton solo en el telefono, donde el boton es un circulo. */
.inm-buscador__ir svg {
  display: none;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
}
.inm-buscador__cerca:focus-visible,
.inm-buscador__ir:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }

/* LAS SUGERENCIAS, colgadas de la caja (.inm-buscador__campo). */
.inm-sugerencias {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 30;
  margin: .5rem 0 0;
  padding: .4rem;
  list-style: none;
  max-height: min(27rem, 62vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 18px;
  background: #fff;
  color: var(--inm-tinta);
  text-align: left;
  box-shadow: 0 20px 44px rgba(0, 0, 0, .18);
}
.inm-sugerencias[hidden] { display: none; }
.inm-sug {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .55rem .7rem;
  border-radius: 12px;
  cursor: pointer;
}
.inm-sug:hover,
.inm-sug--activa { background: var(--inm-resalte); }
.inm-sug__icono {
  display: grid;
  flex: 0 0 2.3rem;
  height: 2.3rem;
  place-items: center;
  border-radius: 10px;
  background: var(--inm-resalte);
}
.inm-sug--activa .inm-sug__icono,
.inm-sug:hover .inm-sug__icono { background: #fff; }
.inm-sug__icono svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: var(--inm-tinta);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.inm-sug__texto {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}
.inm-sug__nombre,
.inm-sug__contexto {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.inm-sug__nombre { font-size: 1rem; line-height: 1.3; }
.inm-sug__nombre mark {
  background: none;
  color: inherit;
  font-weight: 700;
}
.inm-sug__contexto { font-size: .82rem; line-height: 1.3; color: var(--inm-tinta-suave); }
.inm-sug__cuenta {
  flex: 0 0 auto;
  font-size: .8rem;
  color: var(--inm-tinta-suave);
  white-space: nowrap;
}
.inm-sug__grupo {
  padding: .7rem .7rem .3rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #5F6B66;
}
.inm-sug__vacio {
  padding: .8rem .7rem;
  font-size: .92rem;
  line-height: 1.4;
  color: var(--inm-tinta-suave);
}

/* Todos / Venta / Renta / Stay: las pastillas de siempre, debajo de la caja. */
.inm-buscador__operaciones {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  padding-top: 1rem;
}
.inm-buscador__operaciones button {
  padding: .5rem 1.4rem;
  border: 1.5px solid #000;
  border-radius: 2rem;
  background: transparent;
  color: #000;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.inm-buscador__operaciones button:hover { background: rgba(0, 0, 0, .06); }
.inm-buscador__operaciones button.is-activa,
.inm-buscador__operaciones button[aria-pressed="true"] {
  background: #000;
  color: #fff;
}
.inm-buscador__operaciones button:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }

.inm-buscador__aviso {
  margin: .8rem auto 0;
  width: fit-content;
  max-width: 100%;
  padding: .45rem 1rem;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: .9rem;
  text-align: center;
}
.inm-buscador__aviso[hidden] { display: none; }
/* La linea que explica Stay, solo con su pastilla activa. */
.inm-buscar .homes-stay-nota {
  margin: .9rem auto 0;
  max-width: 40rem;
  font-size: .95rem;
  line-height: 1.4;
  color: var(--inm-tinta);
}
.inm-buscar .homes-stay-nota[hidden] { display: none; }

/* Atajos: los estados con mas propiedades y los catalogos completos, en una linea
   discreta debajo de las pastillas (dos filas de pastillas competian entre si). */
.inm-atajos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: .35rem 1.1rem;
  max-width: 76rem;
  margin: 1.35rem auto 0;
  font-size: .95rem;
  line-height: 1.5;
}
.inm-atajos__titulo { color: var(--inm-tinta-suave); }
.inm-buscar .inm-atajo {
  color: #000;
  text-decoration: underline;
  text-decoration-color: rgba(0, 0, 0, .28);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  white-space: nowrap;
  transition: text-decoration-color .15s ease;
}
.inm-buscar .inm-atajo:hover { text-decoration-color: #000; }
.inm-buscar .inm-atajo--lugar { font-weight: 600; }
.inm-buscar .inm-atajo:focus-visible { outline: 2px solid #000; outline-offset: 3px; border-radius: 2px; }

/* EL TELEFONO. La caja no cabe con todo: "Cerca de mi" se queda en el icono (su
   nombre sigue para el lector de pantalla) y el boton es un circulo con la lupa. */
@media (max-width: 38.74rem) {
  .inm-buscar .inm-buscador__caja { min-height: 3.35rem; padding-left: 14px; }
  .inm-buscador__lupa { display: none; }
  .inm-buscador__cerca { padding: 0 .6rem; }
  .inm-buscador__ir { width: 2.8rem; padding: 0; }
  .inm-buscador__ir svg { display: block; }
  .inm-buscador__cerca span,
  .inm-buscador__ir span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .inm-buscador__operaciones { gap: .5rem; }
  .inm-buscador__operaciones button { padding: .5rem 1.05rem; }
  .inm-sug__cuenta { display: none; }
  .inm-atajos { gap: .3rem .9rem; font-size: .92rem; }
}

/* ============ EL LISTADO ============ */
/* El titulo: donde se busca, su contexto y su pagina. */
#homes .homes-resultados-titulo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .2rem;
  min-width: 0;
}
#homes .homes-lugar-contexto { font-size: .92rem; color: var(--inm-tinta-suave); }
#homes .homes-lugar-pagina {
  font-size: .92rem;
  font-weight: 600;
  color: var(--inm-tinta);
  text-decoration: underline;
  text-underline-offset: 3px;
}

#homes .homes-lugar-no-encontrado {
  max-width: 44rem;
  margin: 0 auto 1rem;
  padding: .8rem 1.1rem;
  border-radius: 14px;
  background: #fff;
  color: #3D4A44;
  font-size: .95rem;
  line-height: 1.45;
  text-align: center;
}
#homes .homes-lugar-no-encontrado a {
  margin-left: .25rem;
  color: var(--inm-tinta);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* "Ver mas propiedades": cuantas van de cuantas, una barra y el boton. */
#homes .homes-ver-mas {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  padding: 1.75rem 1rem 2.25rem;
}
#homes .homes-ver-mas__cuenta { margin: 0; font-size: .95rem; color: #3D4A44; }
#homes .homes-ver-mas__barra {
  display: block;
  width: min(16rem, 70vw);
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: #CDD3D0;
}
#homes .homes-ver-mas__barra > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--inm-tinta);
  transition: width .3s ease;
}
#homes .homes-ver-mas__boton {
  min-height: 3rem;
  padding: 0 2.1rem;
  border: 1.5px solid #000;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
#homes .homes-ver-mas__boton:hover { background: #fff; color: #000; }
#homes .homes-ver-mas__boton[disabled] { opacity: .6; cursor: progress; }
#homes .homes-ver-mas__boton:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 3px; }

/* ============ LOS CARRUSELES: "VER TODOS" ============ */
.homes-galeria-cabecera {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .4rem 1rem;
}
.homes-galeria-ver-todos {
  color: #fff;
  font-size: .92rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.homes-galeria-ver-todos:hover { opacity: .85; }
.homes-galeria-ver-todos--claro,
.homes-galeria-ver-todos--claro:hover { color: var(--inm-tinta); }
.homes-galeria-pie {
  margin: .9rem 0 0;
  padding: 0 max(18px, calc((100% - 1800px) / 2 + 18px));
}
/* Un estado sin foto: su inicial, en lugar de un hueco negro. */
.homes-state-gallery__inicial {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  color: rgba(255, 255, 255, .35);
}

/* ============ FILTROS AL INSTANTE, "MAS FILTROS" Y LAS FICHAS ============
   Las piezas de siempre: pastillas de borde negro de 1.5px, negro para lo marcado,
   gris #EAEAEA de fondo. Cada cambio de la barra filtra solo (filtrarEnSeguida). */
#homes .homes-filtros-abrir,
#homes .homes-filtros-hoja__cabecera,
#homes #filters .homes-filtros-ver { display: none; }
#homes .homes-filtros-abrir__n {
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.35rem;
  margin-left: .45rem;
  padding: 0 .3rem;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
}
#homes #filters.homes-compact-filters .homes-mas-filtros-boton {
  display: inline-flex;
  align-items: center;
  text-transform: none;
  border: 1.5px solid #000;
  background: #fff;
  color: #000;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
}
#homes #filters.homes-compact-filters .homes-mas-filtros-boton[aria-expanded="true"] { background: #000; color: #fff; }
#homes #filters.homes-compact-filters .homes-mas-filtros-boton[aria-expanded="true"] .homes-filtros-abrir__n { background: #fff; color: #000; }
#homes .homes-mas-filtros {
  display: none;
  flex: 1 1 100%;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .75rem;
}
#homes .homes-mas-filtros--abierto { display: flex; }
#homes #filters.homes-compact-filters .homes-filtro-casilla { gap: .5rem; cursor: pointer; }
#homes #filters.homes-compact-filters .homes-filtro-casilla > span { opacity: 1; }
/* build/osgo.css esconde toda casilla y todo radio ([type="checkbox"] { display: none })
   para pintar los suyos: estas se ven tal cual. */
#homes #filters.homes-compact-filters .homes-filtro-casilla input {
  display: inline-block;
  flex: 0 0 auto;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  accent-color: #000;
}

/* LAS FICHAS: lo que esta filtrando, con su x; "Limpiar todo" y "Guardar busqueda". */
#homes .homes-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  width: 100%;
  padding: 0 1rem .25rem;
}
#homes .homes-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.25rem;
  padding: .3rem .45rem .3rem .95rem;
  border: 1.5px solid #000;
  border-radius: 999px;
  background: #fff;
  color: #000;
  font-family: inherit;
  font-size: .88rem;
  font-weight: 600;
  text-transform: none;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
#homes .homes-chip:hover { background: #000; color: #fff; }
#homes .homes-chip__x {
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, .08);
  font-size: 1rem;
  line-height: 1;
}
#homes .homes-chip:hover .homes-chip__x { background: rgba(255, 255, 255, .22); }
#homes .homes-chip:focus-visible,
#homes .homes-chips__limpiar:focus-visible,
#homes .homes-chips__guardar:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }
#homes .homes-chips__limpiar {
  padding: .35rem .5rem;
  border: 0;
  background: transparent;
  color: #000;
  font-family: inherit;
  font-size: .88rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-transform: none;
  cursor: pointer;
}
#homes .homes-chips__guardar {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-left: auto;
  min-height: 2.35rem;
  padding: .35rem 1.1rem;
  border: 0;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 600;
  text-transform: none;
  cursor: pointer;
}
#homes .homes-chips__guardar:hover { background: #1f2a25; }
#homes .homes-chips__guardar svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* GUARDAR BUSQUEDA (busquedas-guardadas): el cuadro de la campana. Al centro en
   escritorio; en el telefono sube desde abajo, como la hoja de filtros. */
html.homes-guardar-abierto { overflow: hidden; }
#homes .homes-guardar {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(10, 31, 22, .45);
}
#homes .homes-guardar__cuadro {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: 28rem;
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  padding: 2rem 1.75rem 1.5rem;
  border-radius: 1rem;
  background: #fff;
  color: var(--inm-tinta);
  text-align: left;
  box-shadow: 0 20px 48px rgba(0, 0, 0, .22);
}
#homes .homes-guardar__cerrar {
  position: absolute;
  top: .6rem;
  right: .6rem;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--inm-tinta);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
#homes .homes-guardar__cerrar:hover { background: var(--inm-resalte); }
#homes .homes-guardar__icono {
  display: block;
  width: 32px;
  height: 32px;
  margin-bottom: .5rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#homes .homes-guardar__titulo {
  margin: 0 0 .35rem;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
#homes .homes-guardar__resumen {
  margin: 0 0 1rem;
  padding: .6rem .8rem;
  border-radius: .6rem;
  background: var(--inm-resalte);
  font-size: .95rem;
  font-weight: 600;
  overflow-wrap: anywhere;
}
#homes .homes-guardar__texto { margin: 0 0 1rem; font-size: .95rem; line-height: 1.45; }
#homes .homes-guardar__etiqueta { display: block; margin-bottom: .35rem; font-size: .85rem; font-weight: 600; }
#homes .homes-guardar__entrada {
  box-sizing: border-box;
  width: 100%;
  min-height: 3rem;
  padding: .6rem .9rem;
  border: 1.5px solid var(--inm-linea);
  border-radius: .6rem;
  background: #fff;
  color: var(--inm-tinta);
  font-family: inherit;
  font-size: 1rem;
}
#homes .homes-guardar__entrada:focus { border-color: #000; outline: none; }
#homes .homes-guardar__entrada[aria-invalid="true"] { border-color: #B3261E; }
#homes .homes-guardar__frecuencia {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
}
#homes .homes-guardar__frecuencia legend { width: 100%; margin-bottom: .35rem; padding: 0; font-size: .85rem; font-weight: 600; }
#homes .homes-guardar__frecuencia label { display: inline-flex; align-items: center; gap: .4rem; font-size: .95rem; cursor: pointer; }
#homes .homes-guardar__frecuencia input { display: inline-block; flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: #000; }
#homes .homes-guardar__aviso { margin: 1rem 0 0; padding: .7rem .9rem; border-radius: .6rem; font-size: .95rem; line-height: 1.45; }
#homes .homes-guardar__aviso--bien { background: #E8F3EC; color: #14532D; }
#homes .homes-guardar__aviso--mal { background: #FCEBEA; color: #8C1D18; }
#homes .homes-guardar__boton {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3rem;
  margin-top: 1.25rem;
  border: 1.5px solid #000;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  text-transform: none;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
#homes .homes-guardar__boton:hover { background: #fff; color: #000; }
#homes .homes-guardar__boton[disabled] { opacity: .6; cursor: progress; }
#homes .homes-guardar__cerrar:focus-visible,
#homes .homes-guardar__boton:focus-visible,
#homes .homes-guardar__letra a:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }
#homes .homes-guardar__letra { margin: .9rem 0 0; font-size: .8rem; line-height: 1.45; color: var(--inm-tinta-suave); }
#homes .homes-guardar__letra a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 47.99rem) {
  #homes .homes-guardar { align-items: flex-end; padding: 0; }
  #homes .homes-guardar__cuadro {
    max-width: none;
    max-height: 92vh;
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
    border-radius: 1.25rem 1.25rem 0 0;
  }
}

/* EL TELEFONO: la barra es una hoja a pantalla completa. "Filtros (n)" la abre;
   cada cambio filtra debajo y "Ver N propiedades" la cierra. */
@media (max-width: 47.99rem) {
  #homes .homes-filtros-abrir {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 2.6rem;
    margin: 0 auto;
    padding: .45rem 1.15rem;
    border: 1.5px solid #000;
    border-radius: 999px;
    background: #fff;
    color: #000;
    font-family: inherit;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
  }
  #homes .homes-filtros-abrir svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
  }
  #homes #filters.homes-compact-filters { display: none; }
  #homes #filters.homes-compact-filters.homes-filtros--abierto {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 2000;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 1rem;
    margin: 0 !important;
    padding: 0 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #EAEAEA;
  }
  #homes #filters.homes-filtros--abierto .homes-filtros-hoja__cabecera {
    display: flex;
    position: sticky;
    top: 0;
    z-index: 1;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0 .5rem;
    background: #EAEAEA;
    font-size: 1.15rem;
  }
  /* Con mas peso que las reglas de la barra de views/homes.php (#homes #filters.homes-compact-filters
     label/button), que van despues y en el telefono hacen crecer cada boton y cada renglon. */
  #homes #filters.homes-compact-filters.homes-filtros--abierto .homes-filtros-hoja__cerrar {
    flex: 0 0 auto;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    padding: 0;
    border: 1.5px solid #000;
    background: #fff;
    color: #000;
    font-size: 1.5rem;
    line-height: 1;
  }
  #homes #filters.homes-compact-filters.homes-filtros--abierto > label,
  #homes #filters.homes-compact-filters.homes-filtros--abierto .homes-mas-filtros > label {
    display: grid;
    flex: 0 0 auto;
    grid-template-columns: 1fr 1fr;
    gap: .4rem .6rem;
    white-space: normal;
  }
  #homes #filters.homes-compact-filters.homes-filtros--abierto label > span,
  #homes #filters.homes-compact-filters.homes-filtros--abierto label > select { grid-column: 1 / -1; }
  #homes #filters.homes-compact-filters.homes-filtros--abierto label > select,
  #homes #filters.homes-compact-filters.homes-filtros--abierto label > input[type="number"],
  #homes #filters.homes-compact-filters.homes-filtros--abierto label > input[type="date"] { flex: none; width: 100%; min-width: 0; height: 2.9rem; }
  #homes #filters.homes-compact-filters.homes-filtros--abierto .homes-mas-filtros > label.homes-filtro-casilla {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
  }
  #homes #filters.homes-compact-filters.homes-filtros--abierto .homes-mas-filtros-boton { display: none; }
  #homes #filters.homes-compact-filters.homes-filtros--abierto .homes-mas-filtros {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }
  #homes #filters.homes-compact-filters.homes-filtros--abierto .homes-filtros-ver {
    display: block;
    flex: 0 0 auto;
    position: sticky;
    bottom: 0;
    width: 100%;
    min-height: 3.1rem;
    height: auto;
    margin-top: auto;
    border: 0;
    background: #000;
    color: #fff;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    text-transform: none;
    /* La segunda sombra tapa el margen de abajo de la hoja: lo que se desplaza no asoma debajo del boton. */
    box-shadow: 0 -8px 24px rgba(234, 234, 234, .95), 0 1.25rem 0 1rem #EAEAEA;
  }
  #homes .homes-chips { justify-content: center; }
  #homes .homes-chips__guardar { margin-left: 0; }
}

/* ============ EL MAPA QUE MANDA (mapa-busqueda.js) ============
   "Buscar al mover el mapa", la tarjeta y el pin resaltados juntos, la ficha del pin
   abajo y el mapa a pantalla completa en el telefono y la tableta. */
.mapa-seguir {
  position: absolute;
  top: .75rem;
  left: .75rem;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .9rem;
  border-radius: 999px;
  background: #fff;
  color: #0A1F16;
  font-size: .85rem;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
  cursor: pointer;
}
.mapa-seguir input {
  display: inline-block;
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  accent-color: #000;
}
.mapa-seguir[hidden],
#mapaBusquedaCol:not(.mapa-abierto) .mapa-seguir { display: none !important; }
#mapaBusquedaLista article.homes-tarjeta--resaltada {
  border-radius: 14px;
  box-shadow: 0 0 0 2px #000;
}
.mapa-ficha {
  position: absolute;
  left: .75rem;
  right: .75rem;
  bottom: 4.75rem;
  z-index: 7;
  padding: .6rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .28);
}
.mapa-ficha[hidden] { display: none; }
.mapa-ficha .mapa-tarjeta {
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  grid-template-rows: auto auto 1fr;
  column-gap: .8rem;
  width: auto;
}
.mapa-ficha .mapa-tarjeta img {
  grid-row: 1 / 4;
  width: 6.5rem;
  height: 5.5rem;
}
.mapa-ficha .mapa-tarjeta__precio { margin-top: .15rem; }
.mapa-tarjeta__aprox {
  align-self: flex-start;
  margin-top: .25rem;
  padding: .1rem .6rem;
  border: 1.5px dashed var(--inm-tinta);
  border-radius: 2rem;
  font-size: .75rem;
  font-weight: 600;
}

/* LA LISTA DE UN PUNTO (mapa-punto.js). Lo que acercar no separa -un edificio, o
   las fichas sin direccion exacta que caen en el centro de su colonia- se abre en
   este panel: abajo en el telefono (encima de "Ver lista") y a un lado del mapa en
   escritorio, con su propio desplazamiento. Antes era la burbuja de Google de
   280 px, con el titulo partido en cinco renglones y 25 precios sueltos.
   CON LAS PIEZAS DEL SITIO, como las tarjetas del listado de al lado: su letra
   (GalanoGrotesqueLight, la que css/homes.css pone a todo #homes; esta hoja no
   nombra letras), el titulo en mayusculas espaciadas de "Guardar busqueda",
   el negro y los grises de --inm-*, las pastillas de borde negro de 1.5px (negro lo
   marcado) y las etiquetas de operacion con los colores de la tarjeta: renta
   #004d43, venta #193133 (views/homes.php). Stay no tiene color en el sitio: negro. */
.mapa-ficha--punto {
  display: flex;
  flex-direction: column;
  padding: 0;
  max-height: min(62vh, 32rem);
  max-height: min(62svh, 32rem);
  overflow: hidden;
}
.mapa-ficha--punto[hidden] { display: none; }
@media (min-width: 64rem) {
  .mapa-ficha--punto {
    left: auto;
    right: .75rem;
    top: .75rem;
    bottom: .75rem;
    width: min(23rem, calc(100% - 1.5rem));
    max-height: none;
  }
}
.mapa-punto {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  color: var(--inm-tinta);
}
/* Cabecera, nota y pestanas no se encogen: solo la lista cede alto y se desplaza. */
.mapa-punto__cabecera,
.mapa-punto__nota,
.mapa-punto__pestanas { flex: 0 0 auto; }
.mapa-punto__cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  padding: 1rem 1rem .6rem;
}
.mapa-punto__titulo {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.mapa-punto__lugar {
  display: block;
  margin-top: .2rem;
  font-size: .85rem;
  color: var(--inm-tinta-suave);
}
.mapa-punto__cerrar {
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  margin: -.4rem -.5rem 0 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--inm-tinta);
  font-family: inherit;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
.mapa-punto__cerrar:hover { background: var(--inm-resalte); }
.mapa-punto__cerrar:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }
.mapa-punto__nota {
  margin: 0 1rem .75rem;
  font-size: .82rem;
  line-height: 1.4;
  color: var(--inm-tinta-suave);
}
.mapa-punto--aproximado .mapa-punto__nota {
  padding: .55rem .7rem;
  border: 1.5px dashed var(--inm-tinta);
  border-radius: .6rem;
  background: var(--inm-resalte);
  color: var(--inm-tinta);
}
.mapa-punto__pestanas {
  display: flex;
  gap: .5rem;
  padding: 0 1rem .75rem;
  overflow-x: auto;
}
.mapa-punto__pestanas button {
  flex: 0 0 auto;
  padding: .4rem 1rem;
  border: 1.5px solid #000;
  border-radius: 2rem;
  background: transparent;
  color: #000;
  font: inherit;
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: none;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.mapa-punto__pestanas button:hover { background: rgba(0, 0, 0, .06); }
.mapa-punto__pestanas button[aria-selected="true"] { background: #000; color: #fff; }
.mapa-punto__pestanas button:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }
.mapa-punto__pestanas button span { margin-left: .3rem; opacity: .7; }
.mapa-punto__lista {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-top: 1px solid var(--inm-linea);
}
.mapa-punto__grupo {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: .45rem 1rem;
  background: #EAEAEA;
  color: var(--inm-tinta);
  font-size: .8rem;
  font-weight: 600;
}
.mapa-punto__fila {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .65rem 1rem;
  border-bottom: 1px solid #f0f0f0;
  color: inherit;
  text-decoration: none;
}
.mapa-punto__fila:hover { background: var(--inm-resalte); }
.mapa-punto__fila:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: -3px; }
.mapa-punto__foto {
  display: block;
  width: 4.25rem;
  height: 3.25rem;
  border-radius: .6rem;
  background: #f0f0f0;
  overflow: hidden;
}
.mapa-punto__foto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mapa-punto__texto {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
}
/* El precio como en la tarjeta: negro y en negrita, el periodo sin negrita. */
.mapa-punto__precio {
  color: #000;
  font-size: .95rem;
  font-weight: 700;
  white-space: nowrap;
}
.mapa-punto__precio small {
  font-size: .8rem;
  font-weight: 400;
}
.mapa-punto__datos {
  font-size: .8rem;
  color: #444;
}
.mapa-punto__datos--cargando {
  display: block;
  width: 60%;
  height: .7rem;
  border-radius: 4px;
  background: linear-gradient(90deg, #f0f0f0, #f7f7f7, #f0f0f0);
  background-size: 200% 100%;
  animation: mapa-punto-carga 1.2s linear infinite;
}
@keyframes mapa-punto-carga { to { background-position: -200% 0; } }
.mapa-punto__nombre {
  overflow: hidden;
  font-size: .8rem;
  color: var(--inm-tinta-suave);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mapa-punto__tipo {
  align-self: start;
  margin-top: .15rem;
  padding: .22rem .6rem;
  border-radius: 20px;
  background: #193133;
  color: #fff;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.mapa-punto__tipo--month { background: #004d43; }
.mapa-punto__tipo--night { background: #000; }
.mapa-punto__mas {
  flex: 0 0 auto;
  margin: .75rem 1rem 1rem;
  padding: .55rem 1.4rem;
  border: 1.5px solid #000;
  border-radius: 2rem;
  background: transparent;
  color: #000;
  font: inherit;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: none;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.mapa-punto__mas:hover { background: #000; color: #fff; }
.mapa-punto__mas:focus-visible { outline: 3px solid var(--inm-tinta); outline-offset: 2px; }
@media (max-width: 23.5rem) {
  .mapa-punto__fila { grid-template-columns: 3.6rem minmax(0, 1fr) auto; gap: .6rem; padding-inline: .8rem; }
  .mapa-punto__foto { width: 3.6rem; height: 2.9rem; }
}
.mapa-ligero__cerrar svg {
  width: 18px;
  height: 18px;
  margin-right: .35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  vertical-align: -.2em;
}
.mapa-flotante {
  position: fixed;
  left: 50%;
  bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  z-index: 1500;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .75rem 1.35rem;
  border: 0;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 600;
  text-transform: none;
  transform: translateX(-50%);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .3);
  cursor: pointer;
}
.mapa-flotante svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linejoin: round;
}
.mapa-flotante[hidden] { display: none; }
@media (min-width: 64rem) {
  .mapa-flotante { display: none !important; }
}
/* Telefono y tableta: el mapa abierto ocupa la pantalla; "Ver lista" abajo al centro. */
@media (max-width: 63.999rem) {
  #mapaBusquedaCol.mapa-pantalla #mapaBusqueda {
    position: fixed;
    inset: 0;
    z-index: 1900;
    height: 100% !important;
    height: 100dvh !important;
    border-radius: 0;
  }
  #mapaBusquedaCol.mapa-pantalla .mapa-ligero__cerrar {
    top: auto;
    right: auto;
    left: 50%;
    bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    padding: .75rem 1.35rem;
    background: #000;
    color: #fff;
    font-size: .95rem;
    transform: translateX(-50%);
  }
  #mapaBusquedaCol.mapa-pantalla #btnBuscarEstaArea {
    position: fixed;
    top: 4rem;
    z-index: 1950;
  }
  #mapaBusquedaCol.mapa-pantalla .mapa-ligero__aviso {
    position: fixed;
    bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
    z-index: 1950;
  }
  html.mapa-pantalla-abierta,
  html.mapa-pantalla-abierta body { overflow: hidden; }
}

@media (prefers-reduced-motion: reduce) {
  .mapa-punto__datos--cargando { animation: none; }
  .inm-buscador__operaciones button,
  .inm-buscar .inm-atajo,
  #homes .homes-ver-mas__barra > span,
  #homes .homes-ver-mas__boton,
  #homes .homes-chip,
  .mapa-punto__pestanas button,
  .mapa-punto__mas { transition: none; }
}
