@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
   24. Portada: bloque para propietarios (lo crea el JS)
   25. Formulario de valoración y botón flotante (lo crea el JS)
   ===================================================================== */


/* =====================================================================
   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: 12px !important;
  padding-bottom: 12px !important;
}

/* Logo, menú y teléfono centrados en vertical. El logo se limita a
   52px de alto: a tamaño natural tocaba los bordes de la cabecera y el
   lema ("Asesoría inmobiliaria") quedaba pegado abajo. */
#modulo-cabecera-2 #header-bloquemenu {
  align-items: center !important;
}

#modulo-cabecera-2 #header-logo {
  display: flex;
  align-items: center;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

#modulo-cabecera-2 #header-logo img {
  display: block;
  max-height: 52px !important;
  width: auto !important;
  height: auto !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;
}



/* =====================================================================
   24. PORTADA: BLOQUE PARA PROPIETARIOS
   Lo crea el JS (función propietarios) entre el eslogan y el buscador:
   #slider-bloque-buscador > h1#slider-slogan + #inmoguer-propietarios
   + #slider-buscador. Panel oscuro translúcido sobre la foto.
   Contraste: blanco y dorado #c9a46b sobre #1f2a30 (el fondo que ven los
   validadores, sección 23) pasan AA.
   ===================================================================== */
/* Titular más largo que el eslogan anterior: algo más pequeño */
#slider-bloque-buscador #slider-slogan {
  max-width: 1100px !important;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important;
  margin-bottom: 26px !important;
  text-wrap: balance;
}

#inmoguer-propietarios {
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 900px;
  margin: 0 auto 20px;
  padding: 20px 28px;
  background: rgba(20,30,28,.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-radius: 20px;
  color: #fff;
  font-weight: 400 !important;
  text-align: center;
}

/* La plantilla pone negrita en todo #slider-bloque-buscador */
#inmoguer-propietarios p,
#inmoguer-propietarios li {
  font-weight: 400 !important;
}

#inmoguer-propietarios .prop-subtitulo {
  max-width: 720px;
  margin: 0 auto 14px !important;
  font-size: 18px !important;
  line-height: 1.55 !important;
  color: #fff !important;
}

#inmoguer-propietarios .prop-titulo-pasos {
  margin: 0 0 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #c9a46b !important;
}

/* Tres pasos en columnas, con número blanco en círculo dorado (solo
   borde: blanco sobre el panel da 14:1) y separados por una
   línea vertical fina (sin caja dentro del panel) */
#inmoguer-propietarios .prop-pasos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0 0 16px !important;
  padding: 0 !important;
  list-style: none;
  counter-reset: paso;
  text-align: left;
}

#inmoguer-propietarios .prop-pasos li {
  position: relative;
  margin: 0 !important;
  padding: 6px 18px 6px 56px !important;
  background: none;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.22);
  font-size: 15px !important;
  line-height: 1.45 !important;
  color: #fff !important;
  counter-increment: paso;
}

#inmoguer-propietarios .prop-pasos li::before {
  content: counter(paso);
  position: absolute;
  left: 18px;
  top: 6px;
  width: 26px;
  height: 26px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 1.5px solid #c9a46b;
  background: transparent;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 23px;
  text-align: center;
}

#inmoguer-propietarios .prop-pasos li:first-child {
  border-left: 0;
}

#inmoguer-propietarios .prop-pasos strong {
  display: block;
  color: #fff !important;
  font-weight: 600;
}

/* Botón y nota */
#inmoguer-propietarios .prop-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  padding: 0 28px;
  border-radius: 999px;
  border: 2px solid #c9a46b;
  background: rgba(201,164,107,.12);
  color: #fff !important;
  font-size: 17px;
  font-weight: 500 !important;
  text-decoration: none !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  transition: background .2s, color .2s;
}

/* Botón con borde dorado #c9a46b y texto blanco. El dorado no puede
   ser el fondo con texto blanco: daría 2,3:1 (WCAG pide 4,5:1). Así, el
   texto blanco queda sobre el panel oscuro (14:1) y el borde dorado
   sobre el panel da 6,3:1. En hover se rellena con un dorado más oscuro
   (#957036, 4,5:1 con blanco) y el texto sigue blanco. */
#inmoguer-propietarios .prop-boton:hover {
  background: #957036;
  color: #fff !important;
}

/* El foco verde general no se ve sobre el panel oscuro: aquí, blanco */
#inmoguer-propietarios .prop-boton:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 3px !important;
}

#inmoguer-propietarios .prop-nota {
  margin: 8px 0 0 !important;
  font-size: 14px !important;
  color: rgba(255,255,255,.9) !important;
}

/* "Destacado estrella" de la plantilla (tarjeta de un inmueble abajo a
   la derecha del slider): con el bloque de propietarios se monta encima
   del buscador. Se oculta solo cuando el bloque está presente (en la
   versión inglesa sigue saliendo). */
#modulo-slider-1:has(#inmoguer-propietarios) #slider-bloque-estrella {
  display: none !important;
}

/* El destino del botón no queda tapado por la cabecera fija */
#pie-contacto {
  scroll-margin-top: 110px;
}

/* Tablet y móvil: pasos en una columna, todo más compacto */
@media (max-width: 899px) {
  #inmoguer-propietarios {
    padding: 18px 16px;
    margin-bottom: 20px;
  }

  #inmoguer-propietarios .prop-subtitulo {
    font-size: 16px !important;
    margin-bottom: 16px !important;
  }

  #inmoguer-propietarios .prop-pasos {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* En columna, la línea separadora pasa a ser horizontal */
  #inmoguer-propietarios .prop-pasos li {
    padding: 10px 4px 10px 40px !important;
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.22);
    font-size: 14px !important;
  }

  #inmoguer-propietarios .prop-pasos li:first-child {
    border-top: 0;
  }

  #inmoguer-propietarios .prop-pasos li::before {
    left: 4px;
    top: 10px;
  }

  #inmoguer-propietarios .prop-boton {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}



/* =====================================================================
   25. FORMULARIO DE VALORACIÓN Y BOTÓN FLOTANTE
   Lo crea el JS (función valoracion). Lo abren el botón de la portada
   (.prop-boton) y el botón flotante de abajo a la derecha.
   Contrastes: texto blanco sobre #1f2a30 14:1; sobre el verde #1b7a5e
   5,3:1; errores #b3261e sobre blanco 6,5:1; bordes de campo #8a8a8a
   sobre blanco 3,5:1 (WCAG 1.4.11 pide 3:1).
   ===================================================================== */
/* ---------- Botón flotante ---------- */
.val-flotante {
  position: fixed;
  right: 20px;
  bottom: 46px; /* centrado con el "¿DUDAS?" de Inmovilla (izquierda) */
  z-index: 9990;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 20px 0 16px;
  border: 0;
  border-radius: 999px;
  background: #957036;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  cursor: pointer;
  transition: background .2s, transform .2s;
}

/* Dorado oscuro = "propietarios" (como el hover del botón de la
   portada). Blanco sobre #957036 4,5:1; sobre el hover #7d5d2c 6:1 */
.val-flotante:hover {
  background: #7d5d2c;
  transform: translateY(-2px);
}

.val-flotante:focus-visible {
  outline: 3px solid #1f2a30 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px #fff, 0 8px 24px rgba(0,0,0,.25);
}

.val-flotante-icono {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='M10 21v-6h4v6'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Con la ventana abierta, el flotante sobra */
html.val-abierto .val-flotante {
  display: none !important;
}

/* ---------- Ventana ---------- */
.val-fondo {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(15,22,26,.65);
  box-sizing: border-box;
}

.val-fondo[hidden] {
  display: none !important;
}

html.val-abierto,
html.val-abierto body {
  overflow: hidden !important;
}

.val-caja {
  position: relative;
  width: 100%;
  max-width: 460px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  box-sizing: border-box;
  padding: 28px 28px 22px;
  border-radius: 20px;
  background: #fff;
  color: var(--texto);
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
  text-align: left;
}

.val-cerrar {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

.val-cerrar::before,
.val-cerrar::after {
  content: "";
  position: absolute;
  left: 13px;
  top: 21px;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: #2b2b2b;
  transform: rotate(45deg);
}

.val-cerrar::after {
  transform: rotate(-45deg);
}

.val-cerrar:hover {
  background: #f1f1f1;
}

.val-titulo {
  margin: 0 40px 6px 0 !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--texto) !important;
  text-align: left !important;
}

.val-intro {
  margin: 0 0 18px !important;
  font-size: 15px !important;
  color: #555 !important;
}

/* ---------- Campos ---------- */
.val-campo {
  margin-bottom: 14px;
}

.val-campo label {
  display: block;
  margin-bottom: 5px;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--texto) !important;
}

.val-campo input {
  width: 100% !important;
  height: 46px !important;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid #8a8a8a !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--texto) !important;
  font-size: 16px !important;
}

.val-campo input:focus {
  border-color: var(--background3) !important;
}

.val-form [aria-invalid="true"] {
  border-color: #b3261e !important;
  box-shadow: 0 0 0 1px #b3261e !important;
}

/* Casilla de privacidad (nativa, en verde) */
.val-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 4px 0 10px;
}

.val-check input {
  flex: 0 0 20px;
  width: 20px !important;
  height: 20px !important;
  margin: 2px 0 0 !important;
  accent-color: var(--background3);
  cursor: pointer;
}

.val-check input[aria-invalid="true"] {
  outline: 2px solid #b3261e;
  outline-offset: 2px;
}

.val-check label {
  font-size: 14px !important;
  line-height: 1.45 !important;
  color: var(--texto) !important;
  cursor: pointer;
}

.val-check a {
  color: var(--background3) !important;
  text-decoration: underline !important;
}

.val-rgpd {
  margin: 0 0 12px !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: #555 !important;
}

.val-error {
  margin: 0 0 10px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #b3261e !important;
}

.val-error:empty {
  display: none;
}

/* ---------- Botones ---------- */
.val-botones {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.val-whatsapp,
.val-llamar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 999px;
  font-size: 16px !important;
  font-weight: 500 !important;
  cursor: pointer;
  transition: background .2s, border-color .2s;
}

.val-whatsapp {
  border: 0;
  background: var(--background3);
  color: #fff !important;
}

.val-whatsapp:hover {
  background: var(--marca-hover);
}

.val-wa-icono {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2c-1.5 0-3-.4-4.3-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.2-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.8 11.9 11.9 0 0 0 4.6 4c1.7.7 2.4.8 3.2.7.5-.1 1.5-.6 1.8-1.2.2-.6.2-1.1.1-1.2l-.5-.3z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* "Llamar ahora": enlace tel: fuera del formulario, tras un separador */
.val-separador {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0 12px;
  font-size: 13px !important;
  color: #555 !important;
}

.val-separador::before,
.val-separador::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e3e3e3;
}

.val-llamar {
  box-sizing: border-box;
  border: 1.5px solid #8a8a8a;
  background: #fff;
  color: var(--texto) !important;
  text-decoration: none !important;
}

.val-llamar:hover {
  border-color: var(--background3);
  background: #f1f6f4;
}

.val-tel-icono {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b2b2b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.val-oblig {
  margin: 12px 0 0 !important;
  font-size: 12px !important;
  color: #555 !important;
}

/* ---------- Móvil ---------- */
@media (max-width: 600px) {
  .val-flotante {
    right: 12px;
    bottom: 12px;
    min-height: 44px;
    padding: 0 16px 0 12px;
    font-size: 14px !important;
  }

  .val-fondo {
    align-items: flex-end;
    padding: 0;
  }

  .val-caja {
    max-width: none;
    max-height: 92vh;
    max-height: 92dvh;
    padding: 24px 18px 18px;
    border-radius: 20px 20px 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .val-flotante:hover {
    transform: none;
  }
}