@import url("https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500;600;700&display=swap");

/* =====================================================================
   INMOGUER · CSS personalizado sobre la plantilla de Inmovilla
   ---------------------------------------------------------------------
   Debe cargarse DESPUÉS de los CSS de la plantilla (por eso se inyecta
   desde "Scripts en BODY"): así gana en los empates de especificidad.
   Muchos !important son necesarios porque la plantilla también los usa.

   ÍNDICE
    1. Variables
    2. Base y accesibilidad
    3. Cabecera y menú
    4. Botones y campos de formulario
    5. Slider: eslogan y barra de búsqueda (y la de la cabecera fija)
    6. Desplegable de zonas
    7. Desplegable de tipo de propiedad
    8. Buscadores en móvil y tablet
    9. Listado de propiedades: cabecera y filtros
   10. Tarjetas de inmueble
   11. Paginación
   12. Bloque "Ver mapa de propiedades"
   13. Bloque de suscripción
   14. Bloque "Equipo" (oculto)
   15. Pie de página
   16. Formulario de contacto del pie
   17. Créditos de Inmovilla y banner de Kit Digital
   18. Cursor de mano en elementos clicables
   19. Movimiento reducido
   20. Ficha de inmueble
   21. Textos solo para lectores de pantalla
   22. Páginas de sección (Empresa...)
   23. Tipografía de marca (Jost) y eslogan del slider
   ===================================================================== */


/* =====================================================================
   1. VARIABLES
   --background3 y --background3-78 sustituyen al verde de la plantilla
   (#269e7a), que con texto blanco no llega al contraste AA (3,4:1).
   #1b7a5e da 5,3:1.
   ===================================================================== */
:root {
  --background3: #1b7a5e;
  --background3-78: #1b7a5eCC;
  --marca-hover: #145c47;
  --texto: #2b2b2b;
  --radio: 14px;
  --sombra: 0 4px 18px rgba(0,0,0,.08);
}


/* =====================================================================
   2. BASE Y ACCESIBILIDAD
   ===================================================================== */
body {
  color: var(--texto);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
  color: var(--texto);
  letter-spacing: -.01em;
}

/* Placeholders con contraste suficiente */
::placeholder {
  color: #6b6b6b;
  opacity: 1;
}

/* Foco visible al navegar con teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--background3) !important;
  outline-offset: 2px !important;
}


/* =====================================================================
   3. CABECERA Y MENÚ
   ===================================================================== */
/* Fondo blanco: el menú blanco sobre la foto del slider no se leía */
#modulo-cabecera-2 {
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 1px 12px rgba(0,0,0,.08) !important;
}

#modulo-cabecera-2 .header-menu li a {
  color: var(--texto) !important;
}

/* Enlaces del menú con área de clic de 44px */
.header-menu li a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 8px;
  transition: background .2s;
}

.header-menu li a:hover,
.header-menu li.activa a {
  background: rgba(27,122,94,.10);
}

/* Un poco más de aire arriba y abajo en la cabecera */
#modulo-cabecera-2 #header-bloque2 {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

/* Menú: sin fondo en la opción activa ni al pasar el ratón; en su lugar
   texto verde y una línea verde debajo. Solo en escritorio: en móvil el
   menú es un desplegable y sus opciones necesitan el fondo blanco. */
@media (min-width: 901px) {
  html body #modulo-cabecera-2 #header-bloquemenu nav ul li,
  html body #modulo-cabecera-2 #header-bloquemenu nav ul li.activa,
  html body #modulo-cabecera-2 #header-bloquemenu nav ul li:hover {
    background-color: transparent !important;
    border: none !important;
  }

  #modulo-cabecera-2 .header-menu li a,
  #modulo-cabecera-2 .header-menu li a:hover,
  #modulo-cabecera-2 .header-menu li.activa a {
    position: relative;
    background: transparent !important;
  }

  #modulo-cabecera-2 .header-menu li a::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 6px;
    height: 2px;
    border-radius: 2px;
    background: var(--background3);
    transform: scaleX(0);
    transition: transform .2s;
  }

  #modulo-cabecera-2 .header-menu li a:hover,
  #modulo-cabecera-2 .header-menu li.activa a {
    color: var(--background3) !important;
  }

  #modulo-cabecera-2 .header-menu li a:hover::after,
  #modulo-cabecera-2 .header-menu li.activa a::after {
    transform: scaleX(1);
  }
}

/* Banderas de idioma */
.languagepicker li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 28px;
}

/* Teléfono como botón con borde verde */
#modulo-cabecera-2 #header-bloquetfno a {
  background: transparent !important;
  border: 1.5px solid var(--background3);
  color: var(--background3) !important;
  border-radius: 999px !important;
  padding: 7px 16px !important;
  font-weight: 600;
}

#modulo-cabecera-2 #header-bloquetfno a:hover {
  background: var(--background3) !important;
  color: #fff !important;
  filter: none !important;
}


/* =====================================================================
   4. BOTONES Y CAMPOS DE FORMULARIO (estilo general)
   Las secciones 5 y 16 los ajustan en el buscador y en el pie.
   ===================================================================== */
.buscarRapido,
.buscarAvanzado,
.botonEnviar,
.enviarmodalContacto,
.enviarmodalContactoPersonalizado,
#plugin-llamamos-enviar {
  background: var(--background3) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  min-height: 44px;
  padding: 0 22px !important;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s;
}

.buscarRapido:hover,
.buscarAvanzado:hover,
.botonEnviar:hover,
.enviarmodalContacto:hover,
.enviarmodalContactoPersonalizado:hover,
#plugin-llamamos-enviar:hover {
  background: var(--marca-hover) !important;
}

.avanzado {
  border-radius: 999px !important;
  min-height: 44px;
  padding: 0 18px !important;
}

#modulo-buscAvanzado-1 input[type="text"],
#modulo-buscAvanzado-1 input[type="number"],
#modulo-buscAvanzado-1 input[type="string"],
#pie-contacto input[type="text"],
#pie-contacto textarea,
.emailSuscripcion {
  border: 1px solid #cfcfcf !important;
  border-radius: 10px !important;
  min-height: 44px;
}


/* =====================================================================
   5. SLIDER: ESLOGAN Y BARRA DE BÚSQUEDA (escritorio)
   Cada regla de la barra se aplica también a la barra que aparece en la
   cabecera al hacer scroll (#cabecera-buscador), con el prefijo
   #cabecera-bloque-buscador para ganar a la plantilla, que en esa barra
   anula todos los bordes con "border-width:0 !important".
   ===================================================================== */
/* Eslogan sobre caja oscura para que se lea sobre cualquier foto */
#slider-slogan {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  background: rgba(0,0,0,.55);
  color: #fff !important;
  padding: .35em .9em;
  border-radius: 14px;
  text-shadow: none !important;
}

/* Barra blanca única */
#slider-bloque-buscador #slider-buscador,
#cabecera-bloque-buscador #cabecera-buscador {
  background: #fff !important;
  border: 0 !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 34px rgba(0,0,0,.22) !important;
  padding: 8px !important;
  gap: 0 !important;
  align-items: center !important;
  height: auto !important;
}

/* Cada campo de la barra: 48px de alto y separador vertical.
   La plantilla fija 30px con min/max-height, por eso se anulan los tres. */
#slider-bloque-buscador #slider-buscador > div,
#slider-bloque-buscador:not(.slider-bloque-buscador-1) #slider-buscador > div:not(.buttons),
#cabecera-bloque-buscador #cabecera-buscador > div {
  height: 48px !important;
  max-height: none !important;
  min-height: 48px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  display: flex;
  align-items: center;
  border-right: 1px solid #e6e6e6 !important;
  padding: 0 6px !important;
  box-sizing: border-box;
}

#slider-buscador > div.buttons,
#slider-buscador > div.bloque-checkbox,
#cabecera-bloque-buscador #cabecera-buscador > div.buttons,
#cabecera-bloque-buscador #cabecera-buscador > div.bloque-checkbox {
  border-right: 0 !important;
}

/* Campos de texto (precio, referencia y zonas).
   Ojo: no usar "#slider-buscador input" a secas, porque estira también
   las casillas de los desplegables. */
#slider-buscador .bloque-input input,
#slider-buscador .buscador-areas__input-valor,
#slider-buscador .buscador-areas__input-busqueda,
#cabecera-bloque-buscador #cabecera-buscador .bloque-input input,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__input-valor,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__input-busqueda {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--texto) !important;
  height: 44px !important;
  padding: 0 10px !important;
  border-radius: 10px !important;
  outline-offset: 0;
}

/* Hueco a la derecha para la flecha del campo de zonas */
#slider-buscador .buscador-areas__input-valor,
#slider-buscador .buscador-areas__input-busqueda,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__input-valor,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__input-busqueda {
  padding-right: 36px !important;
  text-overflow: ellipsis;
}

#slider-buscador .bloque-input input::placeholder,
#slider-buscador .buscador-areas__input-valor::placeholder,
#cabecera-bloque-buscador #cabecera-buscador .bloque-input input::placeholder,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__input-valor::placeholder {
  color: #555 !important;
  font-weight: 500;
}

#slider-buscador .bloque-input input:focus,
#cabecera-bloque-buscador #cabecera-buscador .bloque-input input:focus {
  background: #f3f6f5 !important;
}

/* "Tipo Propiedad": el texto lo pinta la plantilla con ::before */
#slider-buscador #inmotipos,
#cabecera-bloque-buscador #cabecera-buscador #inmotipos {
  background: transparent !important;
  height: 48px !important;
  max-width: none !important;
  min-width: 170px;
  position: relative;
}

#slider-buscador #inmotipos::before,
#cabecera-bloque-buscador #cabecera-buscador #inmotipos::before {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--texto) !important;
  padding: 0 34px 0 10px !important;
  line-height: 48px !important;
  display: block;
}

/* Flecha fina (chevron) de los selectores.
   La plantilla pintaba dos a la vez: un "▼" de texto y una imagen. */
#slider-buscador #inmotipos::after,
#slider-buscador .custom-select-html::after,
#cabecera-bloque-buscador #cabecera-buscador #inmotipos::after,
#cabecera-bloque-buscador #cabecera-buscador .custom-select-html::after {
  content: "" !important;
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  width: 7px !important;
  height: 7px !important;
  border: 0 !important;
  border-right: 1.6px solid #555 !important;
  border-bottom: 1.6px solid #555 !important;
  transform: translateY(-70%) rotate(45deg) !important;
  background: none !important;
}

/* Campo de zonas: se quita la flecha de la plantilla y se dibuja otra
   igual a la de "Tipo Propiedad" */
#slider-buscador .componentes-v3,
#cabecera-bloque-buscador #cabecera-buscador .componentes-v3 {
  min-width: 250px;
}

#slider-buscador .componentes-v3 label,
#cabecera-bloque-buscador #cabecera-buscador .componentes-v3 label {
  width: 100%;
}

#slider-buscador .componentes-v3 label.custom-select::after,
#slider-buscador .buscador-areas__icono-flecha,
#cabecera-bloque-buscador #cabecera-buscador .componentes-v3 label.custom-select::after,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__icono-flecha {
  display: none !important;
}

#slider-buscador .buscador-areas__toggle,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__toggle {
  background: transparent !important;
  border: 0 !important;
  height: 44px !important;
  width: 34px !important;
}

#slider-buscador .buscador-areas__toggle::after,
#cabecera-bloque-buscador #cabecera-buscador .buscador-areas__toggle::after {
  content: "";
  position: absolute;
  right: 13px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-right: 1.6px solid #555;
  border-bottom: 1.6px solid #555;
  transform: translateY(-70%) rotate(45deg);
}

/* Casilla "Ver Mapa" */
#slider-buscador .bloque-checkbox,
#cabecera-bloque-buscador #cabecera-buscador .bloque-checkbox {
  padding: 0 10px !important;
}

#slider-buscador .bloque-checkbox label,
#cabecera-bloque-buscador #cabecera-buscador .bloque-checkbox label {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--texto) !important;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

#slider-buscador .custom-checkbox + label::before,
#cabecera-bloque-buscador #cabecera-buscador .custom-checkbox + label::before {
  width: 18px !important;
  height: 18px !important;
  border: 1.5px solid #888 !important;
  background: #fff !important;
  border-radius: 5px !important;
  margin: 0 !important;
}

#slider-buscador .custom-checkbox:checked + label::before,
#cabecera-bloque-buscador #cabecera-buscador .custom-checkbox:checked + label::before {
  background: var(--background3) !important;
  border-color: var(--background3) !important;
}

/* Botones "Avanzado" y "Buscar" */
#slider-buscador .buttons,
#cabecera-bloque-buscador #cabecera-buscador .buttons {
  display: flex !important;
  gap: 8px;
  padding-left: 8px !important;
}

#slider-buscador .avanzado,
#cabecera-bloque-buscador #cabecera-buscador .avanzado {
  height: 44px !important;
  padding: 0 18px !important;
  border-radius: 12px !important;
  border: 1px solid #d9d9d9 !important;
  background: #fff !important;
  color: var(--texto) !important;
  font-size: 14px !important;
  font-weight: 500;
  cursor: pointer;
}

#slider-buscador .avanzado:hover,
#cabecera-bloque-buscador #cabecera-buscador .avanzado:hover {
  border-color: var(--background3) !important;
  filter: none !important;
}

#slider-buscador .buscarRapido,
#cabecera-bloque-buscador #cabecera-buscador .buscarRapido {
  height: 44px !important;
  padding: 0 22px !important;
  border-radius: 12px !important;
  background: var(--background3) !important;
  color: #fff !important;
  border: 0 !important;
  font-size: 14px !important;
  font-weight: 600;
  cursor: pointer;
}

#slider-buscador .buscarRapido:hover,
#cabecera-bloque-buscador #cabecera-buscador .buscarRapido:hover {
  background: var(--marca-hover) !important;
}


/* Ajustes propios de la barra de la cabecera fija:
   franja blanca en vez de gris y barra más plana */
#cabecera-bloque-buscador,
#cabecera-bloque-buscador #cabecera-buscador:hover {
  background: #fff !important;
}

/* Barra centrada de hasta 1200px (la plantilla la deja a "max-content") */
#cabecera-bloque-buscador #cabecera-buscador {
  height: auto !important;
  width: 100% !important;
  max-width: min(1200px, calc(100vw - 32px)) !important;
  box-sizing: border-box;
  padding: 6px !important;
  margin: 8px auto !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.08) !important;
  border: 1px solid #e6e6e6 !important;
}

/* La plantilla limita los precios a 100px y cortaba "Precio desde" */
#cabecera-bloque-buscador #cabecera-buscador .slider-buscador-precio {
  max-width: none !important;
  min-width: 130px;
}

#cabecera-bloque-buscador #cabecera-buscador .buttons {
  flex-grow: 0 !important;
  min-width: 0 !important;
}


/* =====================================================================
   6. DESPLEGABLE DE ZONAS ("Escribe donde buscas...")
   ===================================================================== */
.componentes-v3 .buscador-areas__desplegable {
  min-width: 340px !important;
  max-width: min(420px, 92vw) !important;
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 14px 36px rgba(0,0,0,.2) !important;
  margin-top: 8px !important;
}

.componentes-v3 .buscador-areas__contenedor-listado {
  padding: 8px !important;
  max-height: 360px !important;
}

/* Fila de comarca/municipio con su botón +/- */
.componentes-v3 .acordeon__cabecera {
  display: flex !important;
  align-items: center !important;
  gap: 2px;
  list-style: none;
  border-radius: 10px;
}

.componentes-v3 .acordeon__cabecera::-webkit-details-marker {
  display: none;
}

.componentes-v3 .acordeon__icono {
  margin: 0 !important;
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px !important;
  color: #555;
  font-size: 13px !important;
}

.componentes-v3 .acordeon__cabecera:hover .acordeon__icono {
  background: #f0f0f0;
}

/* Cada opción: casilla + nombre + tipo */
.componentes-v3 .opcion {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 10px !important;
  border-radius: 10px !important;
  width: 100%;
  box-sizing: border-box;
  cursor: pointer;
}

.componentes-v3 .opcion:hover {
  background: #f1f6f4;
}

/* Casilla propia de 18px (la de la plantilla salía estirada) */
.componentes-v3 .opcion__checkbox {
  -webkit-appearance: none !important;
  appearance: none !important;
  position: relative !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1.5px solid #9a9a9a !important;
  border-radius: 5px !important;
  background: #fff !important;
  cursor: pointer;
}

.componentes-v3 .opcion__checkbox:checked {
  background: var(--background3) !important;
  border-color: var(--background3) !important;
}

/* La plantilla añade un "✔" de texto: se anula y se dibuja un tic */
.componentes-v3 .opcion__checkbox::after {
  content: none !important;
}

.componentes-v3 .opcion__checkbox:checked::after {
  content: "" !important;
  font-size: 0 !important;
  position: absolute;
  left: 5px;
  top: 1px;
  width: 4px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Textos: nombre en negrita, comarca en gris y tipo debajo */
.componentes-v3 .opcion__contenedor-info {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 1px;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.componentes-v3 .opcion__contenedor-nombre {
  font-size: 14px !important;
  line-height: 1.3 !important;
}

.componentes-v3 .opcion__nombre {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--texto) !important;
}

.componentes-v3 .opcion__nombre-padre {
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #666 !important;
}

.componentes-v3 .opcion__tipo {
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
  color: #6b6b6b !important;
  font-weight: 400 !important;
}

/* Distritos sangrados con línea guía */
.componentes-v3 .contenedor-hijos {
  margin-left: 11px !important;
  padding-left: 10px !important;
  border-left: 2px solid #ececec;
}


/* =====================================================================
   7. DESPLEGABLE DE TIPO DE PROPIEDAD
   ===================================================================== */
.buscadorRapido #inmotipos .cajaGrupoTiposZonas {
  width: 270px !important;
  max-height: 360px !important;
  padding: 8px !important;
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 14px 36px rgba(0,0,0,.2) !important;
  margin-top: 8px !important;
  left: 0 !important;
  top: 100% !important;
  background: #fff !important;
  box-sizing: border-box;
}

.buscadorRapido #inmotipos .cajaGrupoTiposZonas li {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.buscadorRapido #inmotipos .grupoTipoZona {
  height: auto !important;
  min-height: 38px;
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  padding: 6px 10px !important;
  border-radius: 10px;
  margin: 0 !important;
  cursor: pointer;
}

.buscadorRapido #inmotipos .grupoTipoZona:hover {
  background: #f1f6f4;
}

.buscadorRapido #inmotipos .grupoTipoZona span,
.buscadorRapido #inmotipos .grupoTipoZona u {
  font-size: 14px !important;
  color: var(--texto) !important;
  text-decoration: none !important;
  line-height: 1.3;
}

/* "Todas" y los grupos (Casa/Chalet, Piso...) en negrita */
.buscadorRapido #inmotipos .marcarGrupoTiposZonas + span,
.buscadorRapido #inmotipos .marcarTodas + span {
  font-weight: 600 !important;
}

/* Subtipos sangrados con línea guía */
.buscadorRapido #inmotipos .cajaGrupoTiposZonas ul {
  margin: 0 0 4px 21px !important;
  padding-left: 10px !important;
  border-left: 2px solid #ececec;
}

/* Casillas iguales que las del desplegable de zonas */
.buscadorRapido #inmotipos .grupoTipoZona input[type="checkbox"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  position: relative;
  flex: 0 0 18px;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1.5px solid #9a9a9a !important;
  border-radius: 5px !important;
  background: #fff !important;
  cursor: pointer;
}

.buscadorRapido #inmotipos .grupoTipoZona input[type="checkbox"]:checked {
  background: var(--background3) !important;
  border-color: var(--background3) !important;
}

.buscadorRapido #inmotipos .grupoTipoZona input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 4px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}


/* =====================================================================
   8. BUSCADORES EN MÓVIL Y TABLET (hasta 1199px)
   La plantilla pone los campos en columna: tarjeta con separadores
   horizontales y "Avanzado" + "Buscar" en dos columnas.
   Tiene que ir después de la sección 5 para ganarle.
   ===================================================================== */
@media (max-width: 1199px) {
  #slider-bloque-buscador #slider-buscador {
    margin: 0 12px !important;
    width: auto !important;
    padding: 6px 12px 12px !important;
  }

  #slider-bloque-buscador #slider-buscador > div,
  #slider-bloque-buscador:not(.slider-bloque-buscador-1) #slider-buscador > div:not(.buttons) {
    border-right: 0 !important;
    border-bottom: 1px solid #eee !important;
    max-width: none !important;
    width: 100% !important;
  }

  #slider-bloque-buscador #slider-buscador > div.bloque-checkbox {
    border-bottom: 0 !important;
  }

  #slider-bloque-buscador #slider-buscador > div.buttons {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1.4fr;
    gap: 8px;
  }

  #slider-buscador .avanzado,
  #slider-buscador .buscarRapido {
    width: 100% !important;
    margin: 0 !important;
  }
}


/* Barra de la cabecera fija en tablet (900-1199px): no caben todos los
   campos, se quitan "Ref" y "Ver Mapa" */
@media (min-width: 900px) and (max-width: 1199px) {
  #cabecera-bloque-buscador #cabecera-buscador .slider-buscador-ref,
  #cabecera-bloque-buscador #cabecera-buscador .bloque-checkbox {
    display: none !important;
  }
}

/* Barra de la cabecera fija en móvil (hasta 899px): solo zona + "Buscar".
   El resto de filtros sigue en el buscador del slider, arriba del todo. */
@media (max-width: 899px) {
  #cabecera-bloque-buscador #cabecera-buscador {
    padding: 4px !important;
    margin: 6px auto !important;
  }

  #cabecera-bloque-buscador #cabecera-buscador #inmotipos,
  #cabecera-bloque-buscador #cabecera-buscador .slider-buscador-precio,
  #cabecera-bloque-buscador #cabecera-buscador .slider-buscador-ref,
  #cabecera-bloque-buscador #cabecera-buscador .bloque-checkbox,
  #cabecera-bloque-buscador #cabecera-buscador .avanzado {
    display: none !important;
  }

  #cabecera-bloque-buscador #cabecera-buscador .componentes-v3 {
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    flex: 1.3 1 0;
  }

  #cabecera-bloque-buscador #cabecera-buscador .componentes-v3 label,
  #cabecera-bloque-buscador #cabecera-buscador .componentes-v3 iv-buscador-areas-webs {
    width: 100% !important;
    min-width: 0 !important;
  }

  #cabecera-bloque-buscador #cabecera-buscador .buttons {
    flex: 0 0 auto;
    padding-left: 6px !important;
  }

  #cabecera-bloque-buscador #cabecera-buscador .buscarRapido {
    padding: 0 14px !important;
  }
}


/* =====================================================================
   9. LISTADO DE PROPIEDADES: CABECERA Y FILTROS
   ===================================================================== */
#paginacion-titulo h1 {
  font-size: 2rem;
  font-weight: 500 !important;
  margin-top: 48px;
}

/* "Pag 1/2 - Total..." y "Filtrar por:" */
#paginacion-titulo > div > span,
#titulo-filtrar-1 {
  font-size: 14px !important;
  color: #555;
}

/* Botones "Alertas" y "Publica tu inmueble" */
#paginacion-cabecera menu a {
  background: var(--background3) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 10px 22px !important;
  font-weight: 600;
}

#paginacion-cabecera menu a:hover {
  background: var(--marca-hover) !important;
  filter: none !important;
}

/* Vistas / Favoritas / Descartadas */
#paginacion-botonesFiltros a::after {
  font-size: 14px;
}

/* Selectores "Ordenar" y "Propiedades por página" */
#paginacion-ordenarprops,
#paginacion-numElmenetosPagina {
  border: 1px solid #ccc !important;
  border-radius: 10px !important;
  height: 40px !important;
  padding: 0 32px 0 12px !important;
  font-size: 14px !important;
  background-color: #fff !important;
}


/* =====================================================================
   10. TARJETAS DE INMUEBLE
   ===================================================================== */
.paginacion-ficha {
  background: #fff;
  border-radius: var(--radio);
  overflow: hidden;
  box-shadow: var(--sombra);
  transition: transform .2s, box-shadow .2s;
}

.paginacion-ficha:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
}

/* La plantilla fija la altura de la tarjeta y del texto: se libera */
#paginacion-contenido .paginacion-ficha {
  height: auto !important;
  display: flex;
  flex-direction: column;
  margin-bottom: 28px !important;
}

/* Foto */
.paginacion-ficha .paginacion-ficha-bloque1 {
  border-radius: 0 !important;
}

/* Precio en píldora verde sobre la foto */
.paginacion-ficha-tituloprecio {
  background: var(--background3) !important;
  color: #fff !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
  font-weight: 700;
}

/* Flechas de la foto con área de clic de 44px */
.paginacion-ficha .flechaprev,
.paginacion-ficha .flechanext {
  min-width: 44px;
  min-height: 44px;
}

/* Parte de texto */
#modulo-paginacion .paginacion-ficha .paginacion-ficha-bloque2 {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 0 14px 14px !important;
}

#modulo-paginacion .paginacion-ficha .paginacion-ficha-datos {
  height: auto !important;
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 12px 0 0 !important;
}

.paginacion-ficha-datos .titulo {
  font-size: .95rem !important;
  line-height: 1.4;
  color: var(--texto) !important;
}

/* Título limitado a 3 líneas */
#modulo-paginacion .paginacion-ficha-datos .titulo {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 10px;
}

/* Pie de la tarjeta: "+ INFO" a la derecha, precio rebajado a la izquierda */
#modulo-paginacion .paginacion-ficha .paginacion-ficha-pie {
  margin-top: auto;
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

/* Botón "+ INFO" (estilo general y versión del listado) */
.paginacion-ficha-masinfo {
  display: inline-flex !important;
  align-items: center;
  min-height: 44px;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: var(--background3) !important;
  color: #fff !important;
  font-weight: 600;
}

#modulo-paginacion .paginacion-ficha .paginacion-ficha-masinfo {
  display: inline-flex !important;
  align-items: center;
  min-height: 36px;
  padding: 0 16px !important;
  border-radius: 999px !important;
  background: var(--background3) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600;
  filter: none !important;
}

#modulo-paginacion .paginacion-ficha .paginacion-ficha-masinfo:hover {
  background: var(--marca-hover) !important;
}


/* =====================================================================
   11. PAGINACIÓN
   Botones redondos de 42px, iconos en gris, página actual en verde y
   a la derecha, separados por una línea, el selector de "Propiedades"
   y la casilla "#Pag" con la misma altura.
   ===================================================================== */
#paginacion-pie {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 14px !important;
  width: auto !important;
  margin: 40px auto 56px !important;
  padding: 0 16px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#paginacion-pie #paginacion-controlesIzq,
#paginacion-pie #paginacion-controlesDer,
#paginacion-pie #paginacion-numPaginas {
  display: flex !important;
  align-items: center;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

#paginacion-pie #paginacion-numPaginas li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none;
}

/* Todos los botones (flechas y números) */
#paginacion-pie a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #e3e3e3 !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--texto) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition: border-color .2s, color .2s, background .2s;
}

#paginacion-pie a:hover {
  border-color: var(--background3) !important;
  background: #f1f6f4 !important;
  color: var(--background3) !important;
}

/* Página actual */
#paginacion-pie a.activa {
  background: var(--background3) !important;
  border-color: var(--background3) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(27,122,94,.3) !important;
}

/* Iconos de flecha: más pequeños y del color del texto (el SVG trae
   su propio negro, se sustituye por currentColor) */
#paginacion-pie svg {
  width: 11px !important;
  height: auto !important;
  transform: none !important;
}

#paginacion-pie svg path,
#paginacion-pie svg rect {
  fill: currentColor !important;
}

#paginacion-pie #paginacion-controlesIzq a,
#paginacion-pie #paginacion-controlesDer a {
  color: #6b6b6b !important;
}

/* Selector de propiedades por página y casilla "ir a página" */
#paginacion-pie #paginacion-controlesOpciones {
  display: flex !important;
  align-items: center;
  gap: 8px !important;
  height: 42px;
  margin: 0 0 0 10px !important;
  padding: 0 0 0 18px !important;
  border-left: 1px solid #e6e6e6;
}

#paginacion-pie #paginacion-controlesOpciones label.custom-select {
  height: 42px !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#paginacion-pie #paginacion-controlesOpciones label.custom-select::after {
  display: none !important;
}

#paginacion-pie #paginacion-numElmenetosPagina {
  -webkit-appearance: none !important;
  appearance: none !important;
  height: 42px !important;
  padding: 0 36px 0 16px !important;
  border: 1px solid #e3e3e3 !important;
  border-radius: 999px !important;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23555' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center !important;
  color: var(--texto) !important;
  font-size: 14px !important;
  font-weight: 500;
  cursor: pointer;
}

#paginacion-pie #paginacion-irApagina {
  box-sizing: border-box;
  width: 76px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 10px !important;
  border: 1px solid #e3e3e3 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--texto) !important;
  font-size: 14px !important;
  text-align: center;
}

#paginacion-pie #paginacion-irApagina::placeholder {
  color: #6b6b6b !important;
}

#paginacion-pie #paginacion-irApagina:focus {
  border-color: var(--background3) !important;
}

/* Móvil: las opciones bajan a una segunda fila */
@media (max-width: 600px) {
  #paginacion-pie #paginacion-controlesOpciones {
    width: 100%;
    justify-content: center;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    border-left: 0;
  }
}


/* =====================================================================
   12. BLOQUE "VER MAPA DE PROPIEDADES"
   ===================================================================== */
#modulo-mapapropiedades-1 .mapapropiedades-contenedor {
  transition: transform .2s;
}

#modulo-mapapropiedades-1 .mapapropiedades-contenedor:hover {
  transform: scale(1.03);
}

/* Texto blanco sobre fondo oscuro: sobre el mapa gris no se leía */
#modulo-mapapropiedades-1 .mapapropiedades-contenedor span {
  background: rgba(0,0,0,.6);
  color: #fff !important;
  padding: 8px 18px;
  border-radius: 999px;
}


/* =====================================================================
   13. BLOQUE DE SUSCRIPCIÓN ("Recibe nuevas propiedades")
   Capa oscura sobre la foto para que el texto blanco se lea.
   ===================================================================== */
#modulo-suscribete-2 {
  position: relative;
}

#modulo-suscribete-2::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 0;
  pointer-events: none;
}

#modulo-suscribete-2 > * {
  position: relative;
  z-index: 1;
}

#modulo-suscribete-2,
#modulo-suscribete-2 .titulo,
#modulo-suscribete-2 h1,
#modulo-suscribete-2 label {
  color: #fff !important;
}

/* Email y "Enviar" a la misma altura */
#modulo-suscribete-2 .emailSuscripcion,
#modulo-suscribete-2 .botonEnviar {
  height: 44px !important;
  min-height: 44px;
}

#modulo-suscribete-2 .opciones label {
  font-size: 13px !important;
}

#modulo-suscribete-2 .opciones input[type="checkbox"] {
  accent-color: var(--background3);
}


/* =====================================================================
   14. BLOQUE "EQUIPO" (OCULTO)
   Muestra el texto de ejemplo de Inmovilla ("Nombre y Apellidos").
   Quitar esta regla cuando se rellene en el panel.
   ===================================================================== */
#modulo-equipo {
  display: none !important;
}


/* =====================================================================
   15. PIE DE PÁGINA
   ===================================================================== */
#modulo-pie-1 {
  background: #f6f6f4 !important;
  border-top: 1px solid #e6e6e1;
}

/* Contenido centrado con un máximo de 1200px */
#modulo-pie-1 #pie-subfila1 {
  align-items: flex-start;
  gap: 40px;
  padding-top: 40px;
  padding-bottom: 40px;
  max-width: 1200px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box;
}

/* Menú del pie: lista compacta sin líneas */
#modulo-pie-1 #pie-menu menu {
  gap: 0 !important;
}

#modulo-pie-1 #pie-menu li {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

#modulo-pie-1 #pie-menu a {
  display: block;
  padding: 9px 0;
  color: #444;
  font-size: 15px;
  transition: color .2s, padding-left .2s;
}

#modulo-pie-1 #pie-menu a:hover {
  color: var(--background3);
  padding-left: 4px;
}

/* Datos de la agencia */
#modulo-pie-1 .pie-datosagencia .titulo {
  font-size: 18px;
  font-weight: 600;
}

#modulo-pie-1 .pie-datosagencia li {
  font-size: 15px;
  line-height: 1.7;
  color: var(--texto);
}

#modulo-pie-1 .pie-datosagencia a {
  color: var(--background3) !important;
}

/* Mapa y su botón */
#modulo-pie-1 .pie-iframemapa {
  border-radius: var(--radio) !important;
  overflow: hidden;
}

#modulo-pie-1 .botonMostarMapa {
  border: 1px solid #ccc;
  background: #fff;
  border-radius: 999px;
  padding: 6px 16px;
  min-height: 36px;
  cursor: pointer;
}

/* Franja gris con el icono RSS suelto */
#pie-filaSocial {
  display: none !important;
}


/* =====================================================================
   16. FORMULARIO DE CONTACTO DEL PIE
   La plantilla lo hace "flotar" encima del pie con doble caja;
   aquí queda dentro del pie, con una sola tarjeta de 340px.
   ===================================================================== */
#modulo-pie-1 #pie-contacto {
  width: 100% !important;
  max-width: 340px !important;
  flex: 0 1 340px;
}

#modulo-pie-1 #pie-contacto form {
  position: relative !important;
  top: 0 !important;
  left: 0 !important;
  transform: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

#modulo-pie-1 #pie-contacto fieldset {
  background: #fff;
  border-radius: var(--radio);
  box-shadow: var(--sombra);
  padding: 20px !important;
}

#modulo-pie-1 #pie-contacto legend {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 12px;
}

#modulo-pie-1 #pie-contacto input[type="text"],
#modulo-pie-1 #pie-contacto textarea {
  background: #fafafa;
  font-size: 14px;
}

#modulo-pie-1 #pie-contacto input[type="text"]:focus,
#modulo-pie-1 #pie-contacto textarea:focus {
  border-color: var(--background3) !important;
  background: #fff;
}

#modulo-pie-1 #pie-contacto textarea {
  min-height: 90px !important;
  height: 90px !important;
}

/* Texto legal: alineado a la izquierda (justificado dejaba huecos) */
#modulo-pie-1 #pie-contacto .textolegal {
  font-size: 12px;
  line-height: 1.5;
  text-align: left !important;
  color: #555;
}


/* =====================================================================
   17. CRÉDITOS DE INMOVILLA Y BANNER DE KIT DIGITAL
   ===================================================================== */
/* "Diseñado por CRM Inmovilla": línea discreta centrada */
#modulo-disenyadoinmovilla-1 {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 14px 16px 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #555;
  font-size: 12px;
}

#modulo-disenyadoinmovilla-1 span {
  font-size: 12px !important;
  color: #666 !important;
  letter-spacing: .02em;
}

#modulo-disenyadoinmovilla-1 a {
  color: #666 !important;
  text-decoration: underline;
}

/* Logos de financiación: el script los fija a 600px y sin salto de
   línea, lo que desborda en móvil */
img[alt="Kit Digital"] {
  max-width: min(380px, 80vw) !important;
  width: 380px !important;
}

img[alt="Kit Digital"] + div {
  white-space: normal !important;
  padding: 0 16px;
  font-size: 12px !important;
  color: #666 !important;
  font-family: inherit !important;
}


/* =====================================================================
   18. CURSOR DE MANO EN ELEMENTOS CLICABLES
   No se aplica a campos de texto: ahí el cursor de texto indica que
   se puede escribir.
   ===================================================================== */
a,
button,
summary,
select,
label[for],
[onclick],
.custom-select-html,
.buscadorTipos,
.flechaprev,
.flechanext,
.slider-botonAnterior,
.slider-botonSiguiente,
.mapapropiedades-contenedor,
.irAfichaPropiedad,
.botonMostarMapa,
.languagepicker,
.languagepicker *,
input[type="checkbox"],
.custom-checkbox + label,
.componentes-v3 .opcion,
.componentes-v3 .acordeon__cabecera,
.grupoTipoZona,
#plugin-llamamos,
.ocultar,
.avanzado {
  cursor: pointer !important;
}


/* =====================================================================
   19. MOVIMIENTO REDUCIDO
   Sin animaciones para quien las tiene desactivadas en su sistema.
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
  }

  .paginacion-ficha:hover {
    transform: none;
  }
}


/* =====================================================================
   20. FICHA DE INMUEBLE (plantilla común a todas las propiedades)
   Todo va bajo #modulo-fichapropiedad para no afectar al resto.
   ===================================================================== */

/* Ancho de lectura común a todos los bloques de la ficha */
#modulo-fichapropiedad > section,
#modulo-fichapropiedad #fichapropiedad-titulos {
  box-sizing: border-box;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* Títulos de sección ("Características y calidades", "Situación"...) */
#modulo-fichapropiedad h2 {
  font-size: 1.6rem !important;
  font-weight: 500 !important;
  color: var(--texto) !important;
  text-align: left !important;
  margin: 56px 0 20px !important;
  letter-spacing: -.01em;
}

/* ---------- Cabecera: título, acciones, datos y precio ---------- */
#modulo-fichapropiedad #fichapropiedad-titulos {
  margin-top: 32px !important;
  padding-top: 28px !important;
  padding-bottom: 24px !important;
  border-bottom: 1px solid #ececec;
}

#modulo-fichapropiedad .fichapropiedad-tituloprincipal {
  display: flex !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

#modulo-fichapropiedad #fichapropiedad-titulos h1 {
  font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--texto) !important;
  margin: 0 !important;
  text-align: left !important;
}

/* Iconos de acciones y compartir, más discretos */
#modulo-fichapropiedad .fichapropiedad-contenedor-botnes svg,
#modulo-fichapropiedad #botones_redes_sociales svg {
  width: 22px !important;
  height: 22px !important;
}

#modulo-fichapropiedad .fichapropiedad-tituloacciones > span,
#modulo-fichapropiedad #botones_redes_sociales a {
  opacity: .75;
  transition: opacity .2s;
}

#modulo-fichapropiedad .fichapropiedad-tituloacciones > span:hover,
#modulo-fichapropiedad #botones_redes_sociales a:hover {
  opacity: 1;
}

/* Fila inferior: características a la izquierda, precio a la derecha */
#modulo-fichapropiedad .fichapropiedad-titulosecundario {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-top: 20px !important;
}

#modulo-fichapropiedad .fichapropiedad-titulosecundario > div {
  width: auto !important;
  margin: 0 !important;
}

/* Nombre de la agencia: redundante en su propia web */
#modulo-fichapropiedad .fichapropiedad-datosagencia {
  display: none !important;
}

/* Habitaciones y baños como etiquetas */
#modulo-fichapropiedad ul.fichapropiedad-caracteristicastitulo {
  display: flex !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

#modulo-fichapropiedad ul.fichapropiedad-caracteristicastitulo li {
  background-color: #f1f6f4 !important;
  background-size: 20px !important;
  background-position: 14px center !important;
  border-radius: 999px;
  padding: 6px 14px 6px 42px !important;
  height: auto !important;
  width: auto !important;
  font-size: 15px !important;
  font-weight: 600;
  line-height: 24px !important;
  color: var(--texto);
}

/* Se añade la palabra ("Baños", "Habitaciones") desde su atributo title */
#modulo-fichapropiedad ul.fichapropiedad-caracteristicastitulo li::after {
  content: " " attr(title);
  font-weight: 400;
  color: #555;
}

/* Precio grande en verde y "Proponer un precio" como botón secundario */
#modulo-fichapropiedad .fichapropiedad-bloqueprecio {
  display: flex !important;
  align-items: center;
  gap: 12px !important;
  margin: 0 0 0 auto !important;
}

#modulo-fichapropiedad .fichapropiedad-titulosecundario > .fichapropiedad-bloqueprecio {
  margin-left: auto !important;
}

#modulo-fichapropiedad .fichapropiedad-precio {
  order: 1;
  background: transparent !important;
  color: var(--background3) !important;
  font-size: clamp(1.7rem, 3vw, 2.2rem) !important;
  font-weight: 700 !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1.1 !important;
}

#modulo-fichapropiedad .fichapropiedad-proponerprecio {
  order: 2;
  background: #fff !important;
  color: var(--background3) !important;
  border: 1.5px solid var(--background3) !important;
  border-radius: 999px !important;
  padding: 10px 18px !important;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.2 !important;
  cursor: pointer;
  transition: background .2s, color .2s;
}

#modulo-fichapropiedad .fichapropiedad-proponerprecio::before {
  display: none !important;
}

#modulo-fichapropiedad .fichapropiedad-proponerprecio:hover {
  background: var(--background3) !important;
  color: #fff !important;
}

/* ---------- Galería de fotos ---------- */
#modulo-fichapropiedad #fichapropiedad-bloquevisor {
  margin-top: 28px !important;
  margin-bottom: 0 !important;
  padding: 0 24px !important;
  background: transparent !important;
  border: 0 !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquevisor .bloqueVisorIndividual {
  background: #f6f6f4 !important;
  border-radius: 18px !important;
  padding: 16px !important;
  border: 0 !important;
}

#modulo-fichapropiedad .visorficha-principal {
  border-radius: 12px !important;
  overflow: hidden;
  background-color: #e9ecea !important;
}

/* Flechas como botones redondos blancos */
#modulo-fichapropiedad .visorficha-principal .flechaprev,
#modulo-fichapropiedad .visorficha-principal .flechanext {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50%;
  background-color: rgba(255,255,255,.92) !important;
  background-image: none !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
}

/* Chevron dibujado con CSS (la imagen de la plantilla es un sprite doble) */
#modulo-fichapropiedad .visorficha-principal .flechaprev::after,
#modulo-fichapropiedad .visorficha-principal .flechanext::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-left: 2px solid #2b2b2b;
  border-bottom: 2px solid #2b2b2b;
}

#modulo-fichapropiedad .visorficha-principal .flechaprev::after { transform: translate(-30%, -50%) rotate(45deg); }
#modulo-fichapropiedad .visorficha-principal .flechanext::after { transform: translate(-70%, -50%) rotate(-135deg); }

#modulo-fichapropiedad .visorficha-principal .flechaprev { left: 14px !important; }
#modulo-fichapropiedad .visorficha-principal .flechanext { right: 14px !important; }

#modulo-fichapropiedad .visorficha-fullscreen {
  border-radius: 10px;
  background-color: rgba(255,255,255,.92) !important;
}

/* Miniaturas */
#modulo-fichapropiedad .visorficha-miniaturas ul {
  gap: 10px !important;
  margin-top: 14px !important;
  padding: 0 !important;
  border: 0 !important;
}

#modulo-fichapropiedad .visorficha-miniaturas li {
  border-radius: 10px !important;
  border: 2px solid transparent !important;
  margin: 0 !important;
  opacity: .8;
  transition: opacity .2s, border-color .2s;
}

#modulo-fichapropiedad .visorficha-miniaturas li:hover,
#modulo-fichapropiedad .visorficha-miniaturas li.activa,
#modulo-fichapropiedad .visorficha-miniaturas li.seleccionada {
  opacity: 1;
  border-color: var(--background3) !important;
}

/* ---------- Descripción ---------- */
/* Columna de lectura de ~820px alineada a la izquierda con el resto */
#modulo-fichapropiedad #fichapropiedad-bloquedescripcion {
  max-width: 868px !important;
  margin-left: max(0px, calc((100% - 1200px) / 2)) !important;
  margin-right: auto !important;
  margin-top: 40px !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  color: #3a3a3a !important;
  text-align: left !important;
}

/* ---------- Características y calidades ---------- */
#modulo-fichapropiedad .fichapropiedad-listados {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 24px 40px !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Datos en dos columnas dentro de una tarjeta */
#modulo-fichapropiedad ul.fichapropiedad-listadatos {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  column-gap: 40px;
  flex: 1 1 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 8px 24px !important;
  background: #fff !important;
  border: 1px solid #ececec;
  border-radius: 16px !important;
  box-shadow: var(--sombra);
}

#modulo-fichapropiedad ul.fichapropiedad-listadatos li {
  display: flex !important;
  justify-content: space-between;
  gap: 16px;
  background: transparent !important;
  margin: 0 !important;
  padding: 11px 0 !important;
  border-bottom: 1px solid #f0f0f0;
  font-size: 15px !important;
}


#modulo-fichapropiedad ul.fichapropiedad-listadatos .caracteristica {
  font-weight: 500 !important;
  color: #555 !important;
  padding: 0 !important;
  font-size: 15px !important;
}

#modulo-fichapropiedad ul.fichapropiedad-listadatos .valor {
  font-weight: 600;
  color: var(--texto);
  text-align: right;
}

/* Calidades (Exterior, Ascensor...) como etiquetas con check */
#modulo-fichapropiedad div.fichapropiedad-listaderecha {
  flex: 1 1 100% !important;
  width: auto !important;
  padding-top: 0 !important;
}

#modulo-fichapropiedad ul.fichapropiedad-listacalidades {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px !important;
  margin: 0 !important;
}

#modulo-fichapropiedad ul.fichapropiedad-listacalidades li {
  width: auto !important;
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  background: #f1f6f4;
  border-radius: 999px;
  padding: 8px 14px !important;
  line-height: 1 !important;
  font-size: 14px;
}

#modulo-fichapropiedad ul.fichapropiedad-listacalidades .fa-check-circle {
  color: var(--background3) !important;
}

/* Certificación energética */
#modulo-fichapropiedad #fichapropiedad-certificacionenergetica {
  max-width: 600px !important;
  margin: 0 !important;
}

#modulo-fichapropiedad #fichapropiedad-certificacionenergetica table {
  background: #fff !important;
  border: 1px solid #ececec !important;
  border-radius: 16px !important;
  padding: 16px !important;
  border-collapse: separate !important;
}

/* ---------- Situación (mapa) ---------- */
#modulo-fichapropiedad #fichapropiedad-bloquemapa iframe {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  transform: none !important;
  border-radius: 16px !important;
  border: 1px solid #ececec !important;
}

/* ---------- Contáctanos ---------- */
#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .cajas {
  max-width: 640px !important;
  margin: 0 !important;
  padding: 24px !important;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 16px;
  box-shadow: var(--sombra);
  box-sizing: border-box;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .cajaForm {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 12px !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .cajaForm .inputs {
  display: contents !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .comentario {
  grid-column: 1 / -1;
  width: 100% !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos input[type="text"],
#modulo-fichapropiedad #fichapropiedad-bloquecontactanos textarea {
  width: 100% !important;
  box-sizing: border-box;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid #d5d5d5 !important;
  border-radius: 10px !important;
  background: #fafafa !important;
  font-size: 15px !important;
  font-family: inherit !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos textarea {
  height: 110px !important;
  padding: 12px 14px !important;
  resize: vertical;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos input[type="text"]:focus,
#modulo-fichapropiedad #fichapropiedad-bloquecontactanos textarea:focus {
  border-color: var(--background3) !important;
  background: #fff !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .cajaEnviar {
  display: flex !important;
  flex-direction: column;
  width: 100% !important;
  margin: 16px 0 0 !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .opciones {
  order: 1;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 14px !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .custom-checkbox + label::before {
  width: 18px !important;
  height: 18px !important;
  border: 1.5px solid #888 !important;
  background: #fff !important;
  border-radius: 5px !important;
  box-sizing: border-box;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .custom-checkbox:checked + label::before {
  background: var(--background3) !important;
  border-color: var(--background3) !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquecontactanos .botonEnviar {
  order: 2;
  width: auto !important;
  align-self: flex-end;
  float: none !important;
  margin: 0 !important;
  font-size: 15px !important;
}

#modulo-fichapropiedad #texto-legal-contactanos {
  font-size: 12px !important;
  line-height: 1.5;
  color: #555 !important;
  text-align: left !important;
  margin: 0 !important;
}

/* ---------- Simulador de hipoteca ---------- */
#modulo-fichapropiedad #fichapropiedad-bloquesimuladorhipoteca {
  position: relative;
  max-width: none !important;
  margin-top: 64px !important;
  margin-bottom: 0 !important;
  padding: 48px 24px 64px !important;
  background-color: #1f2a30;
}

#modulo-fichapropiedad #fichapropiedad-bloquesimuladorhipoteca::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  pointer-events: none;
}

#modulo-fichapropiedad #fichapropiedad-bloquesimuladorhipoteca > * {
  position: relative;
  z-index: 1;
}

#modulo-fichapropiedad #fichapropiedad-bloquesimuladorhipoteca h2 {
  color: #fff !important;
  text-align: center !important;
  text-shadow: none !important;
  font-weight: 500 !important;
  margin: 0 0 24px !important;
}

#modulo-fichapropiedad #fichapropiedad-bloquesimuladorhipoteca .cajasCalculadoras {
  display: flex;
  justify-content: center;
}

#modulo-fichapropiedad #fichapropiedad-bloquesimuladorhipoteca .cajaCalculadora {
  border-radius: 18px !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.25) !important;
  max-width: 650px;
  width: 100% !important;
  box-sizing: border-box;
}

/* Campos y botones +/- */
#modulo-fichapropiedad .contenedorCalculadoras input[type="text"],
#modulo-fichapropiedad .contenedorCalculadoras input[type="number"],
#modulo-fichapropiedad .contenedorCalculadoras select {
  border: 1px solid #d5d5d5 !important;
  border-radius: 8px !important;
  height: 36px !important;
  max-height: none !important;
  padding: 0 10px;
}

#modulo-fichapropiedad #botonmenosprecio,
#modulo-fichapropiedad #botonmasprecio,
#modulo-fichapropiedad #botonmenosinteres,
#modulo-fichapropiedad #botonmasinteres {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 1px solid #d5d5d5 !important;
  background: #fff !important;
  font-weight: 700;
  cursor: pointer;
}

#modulo-fichapropiedad #botonmenosprecio:hover,
#modulo-fichapropiedad #botonmasprecio:hover,
#modulo-fichapropiedad #botonmenosinteres:hover,
#modulo-fichapropiedad #botonmasinteres:hover {
  border-color: var(--background3) !important;
  color: var(--background3);
}

/* Barras deslizantes: relleno verde en vez de azul (la plantilla lo
   pinta con una sombra gigante en el tirador) */
#modulo-fichapropiedad input[type="range"].slider_hipoteca,
#modulo-fichapropiedad input[type="range"].slider_anos {
  border-color: #dcdcdc !important;
  background-color: #f1f1f1 !important;
}

#modulo-fichapropiedad input[type="range"].slider_hipoteca::-webkit-slider-thumb,
#modulo-fichapropiedad input[type="range"].slider_anos::-webkit-slider-thumb {
  background: #fff !important;
  border: 3px solid var(--background3) !important;
  box-shadow: -5000px 0 0 4990px var(--background3) !important;
}

#modulo-fichapropiedad input[type="range"].slider_hipoteca::-moz-range-progress,
#modulo-fichapropiedad input[type="range"].slider_anos::-moz-range-progress {
  background: var(--background3);
  height: 20px;
  border-radius: 17px;
}

/* La plantilla quita el foco de las barras: se devuelve para teclado */
#modulo-fichapropiedad input[type="range"]:focus-visible {
  outline: 3px solid var(--background3) !important;
  outline-offset: 3px !important;
}

#modulo-fichapropiedad input[type="radio"],
#modulo-fichapropiedad input[type="checkbox"] {
  accent-color: var(--background3);
}

#modulo-fichapropiedad #cuotahipoteca {
  color: var(--background3) !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
}

/* ---------- Móvil ---------- */
@media (max-width: 768px) {
  #modulo-fichapropiedad .fichapropiedad-tituloprincipal {
    flex-direction: column;
  }

  #modulo-fichapropiedad .fichapropiedad-bloqueprecio {
    margin: 0 !important;
    width: 100%;
    justify-content: space-between;
  }

  #modulo-fichapropiedad #fichapropiedad-bloquevisor {
    padding: 0 12px !important;
  }

  #modulo-fichapropiedad #fichapropiedad-bloquecontactanos .cajaForm,
  #modulo-fichapropiedad ul.fichapropiedad-listadatos {
    grid-template-columns: 1fr;
  }
}


/* =====================================================================
   21. TEXTOS SOLO PARA LECTORES DE PANTALLA (.a11y-oculto)
   Los crea el JS de accesibilidad. No se ven, pero los analizadores de
   contraste los evalúan: heredaban texto blanco (p. ej. dentro del
   buscador) y daban error. Se fija texto oscuro sobre blanco.
   ===================================================================== */
.a11y-oculto {
  color: #2b2b2b !important;
  background-color: #fff !important;
}


/* =====================================================================
   22. PÁGINAS DE SECCIÓN (Empresa y demás páginas de texto del panel)
   Estructura de la plantilla: #modulo-seccion-1 > #seccion-cabecera h1
   + #seccion-cuerpo > article.textoComillas > p
   ===================================================================== */
#modulo-seccion-1 {
  padding: 56px 24px 72px !important;
  box-sizing: border-box;
}

/* Título centrado con una línea verde debajo */
#modulo-seccion-1 #seccion-cabecera {
  padding: 0 !important;
  margin: 0 auto 36px !important;
  max-width: 900px;
  background: transparent !important;
  text-align: center;
}

#modulo-seccion-1 #seccion-cabecera h1 {
  display: block;
  width: 100%;
  margin: 0 !important;
  font-size: clamp(2rem, 4vw, 2.6rem) !important;
  font-weight: 600 !important;
  letter-spacing: -.02em;
  color: var(--texto) !important;
  text-align: center !important;
}

#modulo-seccion-1 #seccion-cabecera h1::after {
  content: "";
  display: block;
  width: 56px;
  height: 4px;
  margin: 18px auto 0;
  border-radius: 4px;
  background: var(--background3);
}

/* Cuerpo: tarjeta suave centrada */
#modulo-seccion-1 #seccion-cuerpo {
  position: relative;
  max-width: 900px !important;
  width: auto !important;
  margin: 0 auto !important;
  padding: 56px 64px !important;
  background: #f6f6f4 !important;
  border: 0 !important;
  border-radius: 24px;
  box-sizing: border-box;
  overflow: hidden;
}

/* Barra verde a la izquierda */
#modulo-seccion-1 #seccion-cuerpo::before {
  content: "";
  position: absolute;
  left: 0;
  top: 56px;
  bottom: 56px;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--background3);
}

/* Comilla: la roja de la plantilla se quita y se pone una verde grande
   como marca de agua en la esquina de la tarjeta */
#modulo-seccion-1 .textoComillas {
  position: relative;
  z-index: 1;
  padding: 0 !important;
}

#modulo-seccion-1 .textoComillas::before {
  display: none !important;
}

#modulo-seccion-1 #seccion-cuerpo::after {
  content: "\201C";
  position: absolute;
  top: -6px;
  right: 32px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 200px;
  line-height: 1;
  color: var(--background3);
  opacity: .1;
  pointer-events: none;
  z-index: 0;
}

/* Texto */
#modulo-seccion-1 .textoComillas p,
#modulo-seccion-1 #seccion-cuerpo p {
  position: relative;
  margin: 0 !important;
  font-size: 18px !important;
  line-height: 1.85 !important;
  color: #3a3a3a !important;
  text-align: left !important;
}

#modulo-seccion-1 #seccion-cuerpo strong,
#modulo-seccion-1 #seccion-cuerpo b {
  color: var(--background3);
  font-weight: 700;
}

/* Primera línea un poco más grande, a modo de entradilla */
#modulo-seccion-1 .textoComillas p::first-line {
  font-size: 20px;
  color: var(--texto);
}

#modulo-seccion-1 #seccion-cuerpo a {
  color: var(--background3) !important;
  text-decoration: underline;
}

/* Móvil */
@media (max-width: 700px) {
  #modulo-seccion-1 {
    padding: 40px 16px 56px !important;
  }

  #modulo-seccion-1 #seccion-cuerpo {
    padding: 36px 24px 36px 28px !important;
    border-radius: 18px;
  }

  #modulo-seccion-1 #seccion-cuerpo::before {
    top: 36px;
    bottom: 36px;
  }

  #modulo-seccion-1 .textoComillas p,
  #modulo-seccion-1 #seccion-cuerpo p {
    font-size: 16px !important;
    line-height: 1.75 !important;
  }

  #modulo-seccion-1 .textoComillas p::first-line {
    font-size: 17px;
  }
}


/* =====================================================================
   23. TIPOGRAFÍA DE MARCA Y ESLOGAN
   Jost: geométrica y fina, de la familia del logotipo (tipo Futura).
   Se carga con el @import del principio de este archivo y, por si el
   panel lo ignora, también desde el JS.
   La plantilla fuerza Roboto con !important en casi todo; aquí se gana
   con más especificidad. Se excluyen los iconos (<i>, SVG, Font
   Awesome y la fuente de iconos de Inmovilla, clase "ic").
   ===================================================================== */
html body,
html body *:not(i):not(svg):not(svg *):not([class*="fa-"]):not(.ic):not([class^="ic"]) {
  font-family: "Jost", "Roboto", sans-serif !important;
}

/* Degradado oscuro sobre la foto del slider para que el eslogan se lea
   sin caja gris */
#modulo-slider-1 .slider-1::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.15) 45%, rgba(0,0,0,0) 70%);
  pointer-events: none;
  z-index: 1;
}

#slider-bloque-buscador {
  z-index: 5;
}

/* Color de fondo oscuro bajo la foto del slider. No se ve (la foto lo
   tapa entero), pero es el fondo que usan los analizadores de contraste,
   que no leen imágenes: sin él calculaban el eslogan blanco sobre el
   blanco de la página. También es el fondo real si la foto no carga. */
#modulo-slider-1 {
  background-color: #1f2a30 !important;
}

/* Eslogan: grande, blanco, sin caja, con una línea dorada como la del logo */
#slider-slogan {
  background: none !important;
  padding: 0 16px !important;
  border-radius: 0 !important;
  width: auto !important;
  max-width: 900px;
  margin-bottom: 30px !important;
  color: #fff !important;
  font-size: clamp(2rem, 4.2vw, 3.2rem) !important;
  font-weight: 500 !important;
  letter-spacing: .01em;
  line-height: 1.15 !important;
  text-align: center !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.35) !important;
}

#slider-slogan::after {
  content: "";
  display: block;
  width: 64px;
  height: 3px;
  margin: 12px auto 0;
  border-radius: 3px;
  background: #c9a46a;
}

/* Filtros "Vistas / Favoritas / Descartadas": la plantilla pinta el
   texto dos veces (texto real + ::after). Se deja solo el texto real,
   que es el que leen los lectores de pantalla. */
#paginacion-botonesFiltros a::after {
  content: none !important;
}