/*===================================================================*/
/*=                 estilos-mk.css · NyS Inmobiliarios              =*/
/*===================================================================*/
/*
  ÍNDICE
  00. Variables
  01. Base y tipografía
  02. Utilidades y botones
  03. Animaciones
  04. Formularios (Contact Form 7)
  05. Carrusel (Owl Carousel)
  06. Header y menú
  07. Footer
  08. Home
      08.1 Banner slider
      08.2 Banner home / internas
      08.3 Administración PH
      08.4 Propiedades recientes
      08.5 Otros servicios
      08.6 Últimas noticias (blog)
      08.7 Aniversario
  09. Propiedades (ERE: listados, fichas, búsqueda)
  10. Páginas internas (contacto, requisitos, mapas)
  11. Elementos WPBakery sin estilo (tabs, acordeón, botones)
  12. Botón flotante de WhatsApp
  13. Responsive  [v3]
      13.0 Tamaños fluidos
      13.1 ≤ 1200px
      13.2 ≤ 1024px (tablet horizontal)
      13.3 ≤ 900px (tablet vertical + menú móvil)
      13.4 ≤ 600px (celulares)
      13.5 ≤ 380px (celulares pequeños)
      13.6 Celular horizontal
      13.7 Pantallas táctiles
  14. Accesibilidad y movimiento reducido

  Cambios marcados con [v2] (estilos), [v3] (responsive), [v12] (requisitos), [v5]–[v6] y [v14] (contacto), [v7] (tarjetas de propiedades), [v8] (ficha de propiedad), [v9] (barra de búsqueda), [v10] (inmuebles recientes) [v11] (slider) [v13] (búsqueda avanzada) y [v15] (home renovado)
*/

/*===================================================================*/
/*= 00. VARIABLES                                                   =*/
/*===================================================================*/
:root {
  /* Tipografía */
  --texto-corrido: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
  --titulo: 'Raleway', 'Helvetica Neue', Arial, sans-serif;

  /* Colores de marca */
  --primary: #CE1212;
  --success: #630000;         /* rojo oscuro (antes --sucess) */
  --sucess: var(--success);   /* alias: mantiene compatibilidad con otras hojas */
  --claro: #F9F0CD;
  --crema: #F2F0E6;           /* fondo usado en slider y servicios */
  --grey: #303030;
  --text: #707070;
  --black: #000;
  --white: #fff;
  --linea: #e7e7e7;
  --foco: rgba(206, 18, 18, .15);   /* [v2] halo de foco reutilizable */

  /* Variables que se usaban sin estar definidas */
  --title: var(--grey);
  --blackish: var(--grey);

  /* Espaciado y forma */
  --padding-rp: 0 6%;
  --padding-rp-hd: 0 12%;
  --contenedor: 1170px;
  --radius: 5px;
  --radius-lg: 15px;
  --sombra: 0 10px 20px rgba(0, 0, 0, .2);
  --sombra-suave: 0 6px 16px rgba(0, 0, 0, .08);
  --transicion: .4s all ease;
}

/*===================================================================*/
/*= 01. BASE Y TIPOGRAFÍA                                           =*/
/*===================================================================*/
/* [v2] overflow-x: hidden en html/body desactiva position: sticky y en
   iPhone puede bloquear el scroll. "clip" corta igual sin esos efectos;
   "hidden" queda como respaldo para navegadores viejos. */
html,
body {
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-x: clip;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--texto-corrido);
  color: var(--grey);
  -webkit-font-smoothing: antialiased;
}

/* [v2] Párrafos en gris oscuro (como el resto del texto) en lugar de negro
   puro: con peso 300 el negro se veía duro junto a los títulos grises. */
body p {
  color: var(--grey);
  font-family: var(--texto-corrido);
  font-weight: 300;
  line-height: 1.7;
}

::selection {
  background: var(--primary);
  color: var(--white);
}

img {
  max-width: 100%;
  height: auto;
}

.entry-content {
  margin: 0 auto !important;
  max-width: 100%;
  width: var(--contenedor);
}

.page {
  margin: 0 !important;
}

/* Títulos: escala consistente */
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
  font-family: var(--titulo);
  position: relative;
  color: var(--grey);
  line-height: 1.2;
}
h1 { font-size: 2.6rem; font-weight: 800; }
h2 { font-size: 2rem;   font-weight: 700; }
h3 { font-size: 1.5rem; font-weight: 700; }
h4 { font-size: 1.25rem; font-weight: 600; }
h5 { font-size: 1.1rem; font-weight: 600; }
h6 { font-size: 1rem;   font-weight: 600; }

strong {
  font-weight: 800;
}

/* Listas: reset para menús y componentes */
ul, li {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

/* Listas dentro de textos: viñeta de marca.
   [v2] Antes "ul" y "ol" tenían selectores distintos y las listas
   numeradas fuera de .entry-content quedaban sin margen. */
.wpb_text_column ul,
.wpb_text_column ol {
  margin: 0 0 1.2rem;
  padding-left: 1.2rem;
}
.wpb_text_column ul li {
  list-style: disc;
  margin-bottom: .4rem;
  font-weight: 300;
  line-height: 1.6;
}
.wpb_text_column ol li {
  list-style: decimal;
  margin-bottom: .4rem;
}
.wpb_text_column li::marker {
  color: var(--primary);
}

/* Enlaces */
a {
  text-decoration: none !important;
  display: block;
  color: var(--primary);
  transition: color .3s ease;
}
/* Enlaces dentro de párrafos: en línea, no en bloque */
p a,
li p a,
.wpb_text_column p a {
  display: inline;
  font-weight: 500;
  border-bottom: 1px solid currentColor;
}
p a:hover {
  color: var(--success);
}

/* Citas y tablas */
blockquote {
  margin: 1.5rem 0;
  padding: 1rem 1.5rem;
  border-left: 4px solid var(--primary);
  background: var(--crema);
  font-style: italic;
}
table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  font-family: var(--texto-corrido);
}
th, td {
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--linea);
  text-align: left;
}
th {
  background: var(--grey);
  color: var(--white);
  font-weight: 600;
}

hr {
  border: 0;
  height: 1px;
  background: var(--linea);
  margin: 2rem 0;
}

.entry-footer,
.site-info {
  display: none;
}

/*===================================================================*/
/*= 02. UTILIDADES Y BOTONES                                        =*/
/*===================================================================*/
.title h2 {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.2;
}
.title h2 strong,
.subTitle h2 strong {
  color: var(--primary);
}

.subTitle h2 {
  font-size: 2rem;
  text-transform: uppercase;
  line-height: 1.2;
}

/* Botón principal
   [v2] max-width: 200px partía en dos líneas textos como "Ver Inmuebles"
   con fuentes grandes. Ahora el botón se ajusta a su texto. */
.ctAccion {
  display: inline-block;
  border-radius: 2px;
  color: var(--white) !important;
  background-color: var(--grey);
  text-align: center;
  max-width: 100%;
  white-space: nowrap;
  font-size: 1rem !important;
  padding: 12px 24px;
  box-shadow: var(--sombra);
  font-weight: 600;
  transition: var(--transicion);
  text-shadow: none !important;
  margin: 20px 0;
}
.ctAccion:hover {
  background-color: var(--success);
  color: var(--white) !important;
  transform: translateY(-2px);
}

/* Botón secundario: borde en lugar de relleno */
.ctAccion.outline {
  background: transparent;
  color: var(--grey) !important;
  border: 2px solid var(--grey);
  box-shadow: none;
}
.ctAccion.outline:hover {
  background: var(--grey);
  color: var(--white) !important;
}

/* Secciones WPBakery */
.vc_section {
  padding-top: 80px !important;
  padding-bottom: 50px !important;
}
section.vc_section.articulosHome {
  padding-top: 0 !important;
}
.filtroHome h2.widgettitle {
  display: none;
}

/* Fondos reutilizables */
.bg-crema { background-color: var(--crema); }
.bg-gris  { background-color: var(--grey); }
.bg-gris p,
.bg-gris h2,
.bg-gris h3 { color: var(--white); }

/*===================================================================*/
/*= 03. ANIMACIONES                                                 =*/
/*===================================================================*/
@keyframes fade-in-move-down {
  0%   { opacity: 0; transform: translateY(-3rem); }
  100% { opacity: 1; transform: translateY(0); }
}

/*===================================================================*/
/*= 04. FORMULARIOS (Contact Form 7)                                =*/
/*===================================================================*/
.formContact {
  background: rgba(255, 255, 255, .5);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, .2);
  padding: 2rem;
  margin: 4rem 0;
  border-radius: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.formContact h3 {
  font-size: 1.5rem;
  padding-top: .5rem;
  line-height: 1.2;
  width: 100%;
  color: var(--grey);
  margin-bottom: 30px;
  text-transform: none;
}
.formContact p {
  width: 100%;
  line-height: 1.3;
  font-size: 1rem;
  margin-top: 0;
  margin-bottom: 5px;
}
.formContact > div {
  width: 48%;
}
.formContact > div.send,
.formContact > div.message,
.formContact > div.Terms {
  width: 100%;
}

.formContact input[type="text"],
.formContact input[type="email"],
.formContact input[type="url"],
.formContact input[type="password"],
.formContact input[type="search"],
.formContact input[type="number"],
.formContact input[type="tel"],
.formContact textarea,
.formContact select {
  width: 100%;
  margin: 0 0 10px;
  height: 44px;
  background-color: transparent !important;
  padding: 10px !important;
  border: 1px solid #cfcfcf !important;   /* [v5.1] antes gris oscuro: se veía pesado */
  border-radius: var(--radius);
  font-family: var(--texto-corrido);
  font-size: 1rem;
  color: var(--grey);
  box-sizing: border-box;   /* [v2] evita que el padding desborde el 100% */
  transition: border-color .3s ease, box-shadow .3s ease;
}
.formContact input:hover,
.formContact textarea:hover,
.formContact select:hover {
  border-color: var(--text) !important;
}
.formContact input:focus,
.formContact textarea:focus,
.formContact select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px var(--foco);
}
.formContact textarea {
  height: 120px;
  margin-bottom: 20px;
  resize: vertical;
}
/* Select con flecha propia */
.formContact select {
  -webkit-appearance: none;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--grey) 50%),
                    linear-gradient(135deg, var(--grey) 50%, transparent 50%) !important;
  background-position: calc(100% - 18px) 18px, calc(100% - 13px) 18px;
  background-size: 5px 5px;
  background-repeat: no-repeat;
  padding-right: 35px !important;
}
.formContact input::placeholder,
.formContact textarea::placeholder {
  color: var(--text);
  opacity: 1;
}
.formContact label {
  color: var(--black);
  font-weight: 700;
}

.SusForm .Terms a,
.formContact > div.Terms span,
.formContact a {
  color: var(--black);
  display: inline;
}
.formContact > div.Terms a {
  color: var(--primary);
  border-bottom: 1px solid currentColor;
}

.formContact input[type="checkbox"] {
  accent-color: var(--primary);
  width: 16px;
  height: 16px;
  margin-right: 6px;
  vertical-align: middle;
}

.formContact input[type="submit"] {
  background-color: var(--primary) !important;
  border-radius: 10px;
  color: var(--white);
  font-family: var(--texto-corrido);
  font-weight: 700;
  width: 100%;
  max-width: 240px;
  font-size: 18px;
  text-align: center;
  margin: 10px auto;
  box-shadow: var(--sombra);
  transition: var(--transicion);
  cursor: pointer;
  border: none !important;
  height: 50px;
  float: right;
}
.formContact input[type="submit"]:hover {
  background-color: var(--success) !important;
  color: var(--white);
  box-shadow: 0 0 10px var(--text);
}

/* Mensajes de validación de Contact Form 7 */
.wpcf7-not-valid-tip {
  color: var(--primary);
  font-size: .85rem;
  font-weight: 500;
  margin-top: -6px;
  margin-bottom: 8px;
}
.wpcf7-not-valid {
  border-color: var(--primary) !important;
}
.wpcf7 form .wpcf7-response-output {
  margin: 1rem 0 0;
  padding: .8rem 1rem;
  border-radius: var(--radius);
  font-size: .95rem;
  width: 100%;
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: #2e7d32;
  background: #edf7ee;
  color: #1b5e20;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  border-color: var(--primary);
  background: #fdecec;
  color: var(--success);
}

/* Formulario de suscripción */
.SusForm,
.SusForm .send {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.SusForm .mail { width: 80%; }
.SusForm .send { width: 20%; position: relative; }
.SusForm .send .wpcf7-spinner { position: absolute; }

.imagenBot .wpb_content_element {
  margin-bottom: 0 !important;
}

/*===================================================================*/
/*= 05. CARRUSEL (Owl Carousel)                                     =*/
/*===================================================================*/
.owl-stage {
  display: flex;
}
.owl-stage-outer {
  overflow: hidden;
  padding: 0;
}

/* [v2] Antes las flechas se ocultaban en TODOS los carruseles, incluida
   la galería de fotos de cada propiedad (no se podía pasar de foto sin
   arrastrar). Ahora solo se ocultan en el slider y en "recientes". */
.bannerSlide .owl-nav,
.recentHome .owl-nav {
  display: none;
}
.owl-nav button {
  background: transparent;
  color: transparent;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  border: none;
  box-shadow: var(--sombra);
  background-size: cover;
  margin: 20px;
}
.owl-nav button.owl-prev {
  transform: rotate(180deg);
}

/* Puntos: horizontales y centrados por defecto */
.owl-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 1rem;
}
/* [v2] Puntos verticales a la derecha solo en el slider principal
   (antes se aplicaba a todos los carruseles del sitio). */
.bannerSlide .owl-dots {
  flex-direction: column;
  position: absolute;
  right: 5%;
  top: calc(50% - 50px);
  margin-top: 0;
}
.owl-dots button {
  background-color: transparent;
  border: none !important;
  border-radius: 50%;
  padding: 0;
}
.owl-dots button span {
  display: block;
  background-color: var(--claro);
  border-radius: 50%;
  margin: 10px;
  width: 15px !important;
  height: 15px !important;
  cursor: pointer;
  opacity: .6;
  box-shadow: 0 0 10px rgba(0, 0, 0, .4);
  transition: var(--transicion);
}
.owl-dots button.active span {
  background-color: var(--primary) !important;
  width: 18px !important;
  height: 18px !important;
  opacity: 1;
}

/*===================================================================*/
/*= 06. HEADER Y MENÚ                                               =*/
/*===================================================================*/
.top-nav,
#toggle {
  display: none;
}

header#masthead {
  transition: var(--transicion);
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 999;
}
header#masthead .main-navigation {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  padding: var(--padding-rp-hd);
  padding-top: 20px;
  padding-bottom: 15px;
}
header#masthead.fade-in {
  animation: fade-in-move-down .7s;
  background: var(--primary);
  box-shadow: 0 10px 20px rgba(0, 0, 0, .2);
}

/* Logo: versión a color arriba, versión blanca al hacer scroll */
header#masthead .logo {
  width: 300px;
  max-width: 80%;
}
header#masthead .logo .color          { display: block; }
header#masthead .logo .blnk           { display: none; }
header#masthead.fade-in .logo .color  { display: none; }
header#masthead.fade-in .logo .blnk   { display: block; }

/* Menú principal: espacio fijo entre ítems */
header#masthead ul#primary-menu {
  width: auto;
  max-width: 100%;
  justify-content: flex-end;
  gap: 3rem;
}
header#masthead ul#primary-menu li {
  transition: var(--transicion);
}
header#masthead ul#primary-menu a {
  color: var(--white);
  font-weight: 600;
  position: relative;
  padding-bottom: 5px;
  transition: var(--transicion);
}
/* Subrayado animado: aparece al pasar el mouse, fijo en la página activa */
header#masthead ul#primary-menu a::after {
  content: "";
  height: 2px;
  width: 0;
  background-color: var(--primary);
  position: absolute;
  bottom: 0;
  left: 0;
  transition: width .3s ease;
}
header#masthead ul#primary-menu li:hover > a::after,
header#masthead ul#primary-menu li.current-menu-item > a::after {
  width: 30px;
}
header#masthead.fade-in ul#primary-menu a::after {
  background-color: var(--white);
}
/* WordPress marca como activo el enlace ancla (#oServs) porque apunta a la
   misma página. Solo se subraya el enlace a la página real. */
header#masthead ul#primary-menu li.current-menu-item > a[href*="#"]::after {
  width: 0;
}
header#masthead ul#primary-menu li.current-menu-item > a[href*="#"]:hover::after {
  width: 30px;
}

/* Contraste del menú sobre fotos claras.
   [v2] Antes solo se aplicaba en la portada (.home), pero /propiedades/
   usa el mismo slider crema y ahí el menú blanco no se leía.
   Ahora se aplica a cualquier página que tenga el slider. */
.home header#masthead:not(.fade-in)::before,
body:has(.bannerSlide) header#masthead:not(.fade-in)::before {
  content: "";
  position: absolute;
  inset: 0 0 -40px 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: -1;
}
.home header#masthead:not(.fade-in) ul#primary-menu a,
body:has(.bannerSlide) header#masthead:not(.fade-in) ul#primary-menu a {
  text-shadow: 0 1px 6px rgba(0, 0, 0, .35);
}
.home header#masthead:not(.fade-in) .logo .color,
body:has(.bannerSlide) header#masthead:not(.fade-in) .logo .color { display: none; }
.home header#masthead:not(.fade-in) .logo .blnk,
body:has(.bannerSlide) header#masthead:not(.fade-in) .logo .blnk  { display: block; }

header#masthead ul#primary-menu li.current-menu-item > a {
  font-weight: 700;
  color: var(--white);
}

/* Submenús */
header#masthead ul#primary-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--sombra);
  padding: .5rem 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: var(--transicion);
  z-index: 10;
}
header#masthead ul#primary-menu li:hover > .sub-menu,
header#masthead ul#primary-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
header#masthead ul#primary-menu .sub-menu a {
  color: var(--grey);
  font-weight: 500;
  padding: .6rem 1.2rem;
  text-shadow: none;
}
header#masthead ul#primary-menu .sub-menu a:hover {
  color: var(--primary);
  background: var(--crema);
}
header#masthead ul#primary-menu .sub-menu a::after {
  display: none;
}

/*===================================================================*/
/*= 07. FOOTER                                                      =*/
/*===================================================================*/
#colophon {
  color: var(--white);
  padding-top: 50px;
  background: var(--primary);
  position: relative;
}
#colophon a {
  color: var(--white);
  transition: var(--transicion);
}
#colophon a:hover {
  opacity: .75;
}
#colophon .footer-content p {
  color: var(--white);
  margin-top: 0;
}

#colophon .footer-content {
  width: var(--contenedor);
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}
#colophon .footer-content .foot1 { flex: 0 0 25%; }
#colophon .footer-content .foot2 {
  flex: 1 1 auto;
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}
#colophon .footer-content .foot2 .footer-area-two { flex: 1 1 50%; }
#colophon .foot3 { flex: 0 0 30%; }

#colophon .footer-area {
  padding: 0 2rem;
}
#colophon .footer-content h4 {
  color: var(--white);
  text-transform: uppercase;
  margin-bottom: 20px;
  font-size: 1rem;
  font-weight: 700;
  border-bottom: 2px solid var(--white);
  display: inline-block;
  padding-bottom: 5px;
}

#colophon .socialMedia {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 100px;
}
#colophon .footer-content .footer-area-one ul {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin-top: 10px;
}
#colophon .footer-content .footer-area-two ul li {
  display: flex;
  align-items: flex-start;
  position: relative;
  margin-bottom: 20px;
}
#colophon .footer-content .footer-area-two:nth-child(1) ul li {
  flex-direction: column;
  align-items: flex-start;
  margin-top: 10px;
}
/* Los íconos de "Contáctanos" se cargan desde otro dominio
   (site.marketeros.com.co) y pueden no aparecer. Se ocultan y se
   reemplazan por íconos dibujados en CSS. */
#colophon .footer-content .footer-area-two ul li img {
  display: none;
}
#colophon .footer-content .footer-area-two:nth-child(2) ul li {
  align-items: center;
}
#colophon .footer-content .footer-area-two:nth-child(2) ul li > a {
  display: inline;   /* [v2] el texto queda junto al ícono, no debajo */
}
#colophon .footer-content .footer-area-two:nth-child(2) ul li::before {
  content: "";
  width: 20px;
  height: 20px;
  margin-right: 12px;
  flex-shrink: 0;
  background-color: var(--white);
  -webkit-mask: var(--icono) center / contain no-repeat;
  mask: var(--icono) center / contain no-repeat;
}
/* 1.º ítem: ubicación */
#colophon .footer-content .footer-area-two:nth-child(2) ul li:nth-child(1) {
  --icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}
/* 2.º ítem: teléfono */
#colophon .footer-content .footer-area-two:nth-child(2) ul li:nth-child(2) {
  --icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}
/* [v2] 3.er ítem: WhatsApp (antes mostraba el mismo ícono de teléfono) */
#colophon .footer-content .footer-area-two:nth-child(2) ul li:nth-child(3) {
  --icono: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-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-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.4a.5.5 0 0 0 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.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z'/%3E%3C/svg%3E");
}

#colophon .top-info {
  background-color: transparent;
  align-items: center;
  padding: 0 0 16px;
  height: 45px;
  border-bottom: .7px solid;
}

#colophon ul#menu-menu-principal {
  display: flex;
  justify-content: center;
  flex-direction: column;
}
#colophon ul#menu-menu-principal li {
  margin: 0 0 6px;
  text-transform: capitalize;
}
#colophon ul#menu-menu-principal li a {
  font-weight: 400;
}

#colophon .ctAccion {
  padding: 8px 16px;
}
#colophon .ctAccion:hover {
  background-color: var(--white);
  color: var(--primary) !important;
  opacity: 1;
}

/* Formulario del footer */
#colophon form p {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}
#colophon form p span.wpcf7-form-control-wrap {
  width: 80%;
}
#colophon input[type="email"] {
  border: none;
  border-radius: 3px;
  padding: 0 15px;
  height: 40px;
  width: 100%;
  box-sizing: border-box;
  font-family: var(--texto-corrido);
}
#colophon input[type="submit"] {
  height: 40px;
  border: 2px solid var(--white);
  background: transparent;
  color: var(--white);
  font-weight: 700;
  padding: 0 1rem;
  border-radius: 3px;
  cursor: pointer;
  transition: var(--transicion);
}
#colophon input[type="submit"]:hover {
  background: var(--white);
  color: var(--primary);
}
#colophon .wpcf7-spinner {
  width: 100%;
}
#colophon .wpcf7-not-valid-tip,
#colophon .wpcf7-response-output {
  color: var(--white) !important;
  background: transparent !important;
  border-color: var(--white) !important;
}

/* Copyright */
.copymk {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px 0;
  width: var(--contenedor);
  max-width: 100%;
  margin: 50px auto 0;
  border-top: 1px solid rgba(255, 255, 255, .6);
  opacity: .8;
}
.copymk a {
  color: var(--white) !important;
  letter-spacing: 1px;
  display: inline;
}
.copymk p {
  margin: 0;
  color: var(--white);
}

/*===================================================================*/
/*= 08. HOME                                                        =*/
/*===================================================================*/

/*--- 08.1 Banner slider ---*/
.bannerSlide.vc_section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.bannerSlide .owl-item > .vc_row {
  width: 100% !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top left !important;
  height: 90vh;
  min-height: 560px;
  display: flex;
  align-items: center;
  padding: 0 20%;
}
.bannerSlide h2 {
  font-size: 3.3rem;
  line-height: 1.1;
  font-weight: 500 !important;
  color: var(--grey);
}
.bannerSlide h2 strong {
  font-weight: 800 !important;
  color: var(--primary);
}
.bannerSlide p {
  font-size: 1.2rem;
  line-height: 1.4;
  font-weight: 400 !important;
  color: var(--grey);
  max-width: 520px;
}
.bannerSlide .sliderHome .owl-item > .vc_row {
  position: relative;
}
/* Capas: degradado (1) < asesora (2) < texto (3) < header (999) */
.bannerSlide .sliderHome .owl-item > .vc_row > .wpb_column {
  position: relative;
  z-index: 3;
}
.bannerSlide .sliderHome .owl-item > .vc_row::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 65%;
  background: linear-gradient(90deg,
              rgba(242, 240, 230, .96) 0%,
              rgba(242, 240, 230, .85) 45%,
              rgba(242, 240, 230, 0) 100%);
  z-index: 1;
  pointer-events: none;
}
.bannerSlide .asesorInmobiliario {
  width: 400px;
  max-width: 100%;
  position: absolute;
  bottom: 0;
  right: 10%;
  z-index: 2;
}
.bannerSlide .sliderHome h2,
.bannerSlide .sliderHome p {
  max-width: 520px;
}
.bannerSlide .asesorInmobiliario .wpb_content_element {
  margin-bottom: 0;
}
.bannerSlide .ctAccion {
  background-color: var(--primary);
}
.bannerSlide .ctAccion:hover {
  background-color: var(--success);
}

/* Buscador sobre el slider */
.bannerSlide .busqueda {
  background-color: rgba(255, 255, 255, .7);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  transform: translateY(-100px);
  border-radius: var(--radius-lg);
  box-shadow: var(--sombra);
  position: relative;
  z-index: 5;
}
.bannerSlide .busqueda .form-search-wrap {
  background-color: transparent !important;
}
.bannerSlide .busqueda input[type="text"],
.bannerSlide .busqueda select {
  height: 52px !important;
  padding: 0 16px !important;
  border: 1px solid #dcdcdc !important;
  border-radius: var(--radius) !important;
  background-color: var(--white) !important;
  font-family: var(--texto-corrido);
  font-size: 1rem;
  color: var(--grey);
  box-shadow: none !important;
  transition: border-color .3s ease, box-shadow .3s ease;
}
.bannerSlide .busqueda input[type="text"]:focus,
.bannerSlide .busqueda select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px var(--foco) !important;
}
.bannerSlide .busqueda input::placeholder {
  color: var(--text);
}
.bannerSlide .busqueda button,
.bannerSlide .busqueda .ere-advanced-search-btn {
  height: 52px;
  padding: 0 28px;
  border-radius: var(--radius) !important;
  box-shadow: var(--sombra);
}

/*--- Barra de búsqueda ordenada  [v9] ---*/
/* Antes: la caja ocupaba todo el ancho de la pantalla, los campos
   tocaban el borde de arriba, "Precio máximo" salía cortado y el botón
   quedaba suelto a la derecha. Ahora: caja centrada con el mismo ancho
   del contenido, margen interno parejo y una grilla de 2 filas:
   fila 1 → estado · tipo · título · dirección
   fila 2 → precio mínimo · precio máximo · botón */
.bannerSlide .busqueda {
  width: auto !important;
  max-width: min(var(--contenedor), 92%);
  left: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 1.5rem 1.75rem !important;
  box-sizing: border-box;
}
.bannerSlide .busqueda .vc_column-inner,
.bannerSlide .busqueda .wpb_wrapper,
.bannerSlide .busqueda .form-search-wrap,
.bannerSlide .busqueda .form-search-inner,
.bannerSlide .busqueda form {
  padding: 0 !important;
  margin: 0 !important;
}
.bannerSlide .busqueda .form-search-wrap .row {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  margin: 0 !important;
}
.bannerSlide .busqueda .form-search-wrap .row::before,
.bannerSlide .busqueda .form-search-wrap .row::after {
  display: none !important;
}
.bannerSlide .busqueda .form-search-wrap .row > * {
  grid-column: span 3;
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.bannerSlide .busqueda .form-search-wrap .row > :nth-child(n+5) {
  grid-column: span 4;
}
.bannerSlide .busqueda .form-group {
  margin: 0 !important;
}
.bannerSlide .busqueda input[type="text"],
.bannerSlide .busqueda select {
  width: 100% !important;
  text-indent: 0;
  text-overflow: ellipsis;
}
.bannerSlide .busqueda select {
  padding-right: 36px !important;   /* el texto no choca con la flecha */
}
.bannerSlide .busqueda button,
.bannerSlide .busqueda .ere-advanced-search-btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  font-family: var(--texto-corrido);
  font-size: 1rem;
}

/* Tablet: 2 campos por fila, botón a lo ancho */
@media only screen and (max-width: 1024px) {
  .bannerSlide .busqueda .form-search-wrap .row > *,
  .bannerSlide .busqueda .form-search-wrap .row > :nth-child(n+5) {
    grid-column: span 6;
  }
  .bannerSlide .busqueda .form-search-wrap .row > :last-child {
    grid-column: 1 / -1;
  }
}
/* Celular: un campo por fila */
@media only screen and (max-width: 600px) {
  .bannerSlide .busqueda {
    max-width: none;
    padding: 1.1rem !important;
  }
  .bannerSlide .busqueda .form-search-wrap .row {
    gap: 10px;
  }
  .bannerSlide .busqueda .form-search-wrap .row > *,
  .bannerSlide .busqueda .form-search-wrap .row > :nth-child(n+5) {
    grid-column: 1 / -1;
  }
}

/*--- 08.2 Banner home / internas ---*/
.bannerHome {
  height: 85vh;
  min-height: 480px;
  background-position: center top !important;
  background-repeat: no-repeat !important;
  background-size: cover;
  padding-bottom: 2rem;
  position: relative;
  isolation: isolate;
}
.bannerHome::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .1) 60%);
  z-index: -1;
}
.bannerHome h2 {
  font-size: 4rem;
  line-height: 1;
  font-weight: 700 !important;
  text-transform: uppercase;
  color: var(--white);
}
.bannerInterno.bannerHome {
  height: 50vh;
  min-height: 340px;
}
.bannerInterno.bannerHome h2 {
  font-size: 3rem;
  line-height: 1;
}
.bannerHome p {
  font-size: 1.5rem;
  color: var(--white);
  margin: 0;
}
.bannerHome .redesBanner {
  margin-bottom: 10px;
}

/*--- 08.3 Administración PH ---*/
.adminPh .title h2 {
  font-weight: 800;
  line-height: 1.2;
  font-size: 2.2rem;
}
.adminPh .title h2 strong {
  color: var(--primary);
}
.adminPh .title p {
  color: var(--grey);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.5;
  width: 440px;
  max-width: 100%;
  margin-top: .5rem;
  margin-bottom: 1.5rem;
}
.adminPh .wpb_content_element {
  margin-bottom: 0;
}
.adminPh .ctAccion {
  display: inline-block;
  position: relative;
  margin-top: 0;
}

/*--- 08.4 Propiedades recientes ---*/
.recentHome .ere-property .property-item-content .property-price,
.recentHome .ere-property-carousel .navigation-wrap {
  display: none;
}
/* [v2] Se quitó "justify-content: space-between" del .owl-stage:
   Owl calcula la posición de cada tarjeta y ese reparto la descuadraba
   cuando había pocas propiedades. */
.recentHome .ere-property-carousel .property-content {
  width: 100% !important;
}
.recentHome .property-image {
  height: 400px;
  overflow: hidden;
  border-radius: var(--radius);
}
.recentHome .owl-carousel .owl-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.recentHome .owl-carousel .owl-item .property-inner:hover img {
  transform: scale(1.04);
}
.recentHome .owl-carousel .owl-item .property-inner {
  background-color: transparent;
  transition: all .3s;
  overflow: hidden;
  position: relative;
}
.recentHome .owl-carousel .owl-item .property-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg,
              rgba(0, 0, 0, .7) 0%,
              rgba(0, 0, 0, 0) 40%,
              rgba(0, 0, 0, 0) 65%,
              rgba(0, 0, 0, .6) 100%);
  z-index: 1;
  pointer-events: none;
}
/* [v2] Antes este fondo transparente se aplicaba a TODAS las grillas,
   así que en /propiedades/ la tarjeta blanca se volvía transparente al
   pasar el mouse. Ahora solo afecta al carrusel de la home. */
.recentHome .ere-property.property-carousel .owl-item:nth-child(2n) .property-inner,
.recentHome .ere-property .property-inner:hover {
  background-color: transparent !important;
}
.recentHome .property-heading {
  position: absolute;
  top: 30px;
  left: 20px;
  right: 20px;
  z-index: 9;
}
.recentHome .property-heading a,
.recentHome .property-heading h4 {
  color: var(--white) !important;
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.3;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .5);
}

.recentHome .ere-property,
.recentHome .ere-property-carousel,
.recentHome .ere-property-carousel .owl-stage-outer,
.recentHome .property-item,
.recentHome .property-content {
  background: transparent !important;
}

.recentHome .property-date,
.recentHome .property-item-content .property-date a {
  color: var(--text);
  font-size: .85rem;
  margin-top: .6rem;
}
.recentHome .property-date i {
  color: var(--primary);
  margin-right: 4px;
}
.recentHome .ere-property .property-info {
  background-color: transparent !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, .5);
  position: absolute;
  bottom: 30px;
  right: 40px;
  z-index: 9;
}
.recentHome .ere-property .property-item-content .property-info .property-info-inner {
  width: 100%;
  height: auto;
  line-height: 30px;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column-reverse;
}
.recentHome .ere-property .property-item-content .property-info .property-info-inner > div:not(.tooltip) {
  width: 100%;
  display: flex;
  color: var(--white);
}
.recentHome .ere-property .property-item-content .property-info .property-info-inner > div:not(.tooltip) .property-info-value {
  font-size: 20px;
  line-height: inherit;
  vertical-align: bottom;
  font-weight: 700;
  font-family: var(--titulo);
  color: var(--white);
}

/*--- Inmuebles recientes: correcciones  [v10] ---*/
/* 1. Franja gris: el degradado oscuro cubría toda la tarjeta (incluida
   la zona de la fecha, debajo de la foto). Ahora va solo sobre la foto. */
.recentHome .owl-carousel .owl-item .property-inner::after {
  display: none;
}
.recentHome .property-image {
  position: relative;
}
.recentHome .property-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg,
              rgba(0, 0, 0, .55) 0%,
              rgba(0, 0, 0, 0) 35%,
              rgba(0, 0, 0, 0) 65%,
              rgba(0, 0, 0, .55) 100%);
  border-radius: inherit;
  z-index: 1;
  pointer-events: none;
}
.recentHome .owl-carousel .owl-item .property-inner {
  padding: 0 !important;
}
.recentHome .property-item-content {
  padding: 0 !important;
  min-height: 0 !important;
}
.recentHome .property-heading {
  top: 20px;
  left: 22px;
  right: 22px;
}

/* 2. "1 año ago": se oculta, igual que en el listado */
.recentHome .property-date,
.recentHome .property-element-inline {
  display: none !important;
}

/* 3. Datos (m², alcobas, baños): antes en columna y saliéndose de la
   foto. Ahora en una sola línea, en una cápsula oscura abajo a la
   izquierda, legible sobre cualquier foto. */
.recentHome .ere-property .property-info {
  left: 18px;
  right: auto;
  bottom: 18px;
  width: auto !important;
  background: rgba(0, 0, 0, .5) !important;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  border-radius: 999px;
  padding: .35rem 1rem !important;
  text-shadow: none;
}
.recentHome .ere-property .property-item-content .property-info .property-info-inner {
  flex-direction: row;
  gap: 1.1rem;
  line-height: 1.6;
}
.recentHome .ere-property .property-item-content .property-info .property-info-inner > div:not(.tooltip) {
  width: auto;
  align-items: center;
  gap: .4rem;
}
.recentHome .ere-property .property-item-content .property-info .property-info-inner > div:not(.tooltip) .property-info-value {
  font-size: .95rem;
  font-family: var(--texto-corrido);
  font-weight: 600;
}
.recentHome .ere-property .property-info i {
  color: var(--white) !important;
}

/* 4. Botones de foto / favorito / comparar: por encima del degradado */
.recentHome .property-action {
  z-index: 3;
}

/*--- Inmuebles recientes: segunda pasada  [v10.1] ---*/
/* Separación entre tarjetas (estaban pegadas) */
.recentHome .owl-carousel .owl-item {
  padding: 0 10px;
  box-sizing: border-box;
}
.recentHome .property-image {
  border-radius: 12px;
}
.recentHome .property-image::after {
  background: linear-gradient(0deg,
              rgba(0, 0, 0, .7) 0%,
              rgba(0, 0, 0, 0) 45%,
              rgba(0, 0, 0, 0) 65%,
              rgba(0, 0, 0, .55) 100%);
}

/* Precio visible (antes estaba oculto): blanco y grande, sobre los datos */
.recentHome .ere-property .property-item-content .property-price {
  display: block;
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 70px;
  z-index: 9;
  margin: 0;
  color: var(--white) !important;
  font-family: var(--titulo);
  font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem);
  font-weight: 800;
  line-height: 1.2;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .45);
  background: transparent !important;
}
.recentHome .ere-property .property-item-content .property-price * {
  color: inherit !important;
  background: transparent !important;
}

/* Cápsula de datos: separada del borde y un poco más compacta */
.recentHome .ere-property .property-info {
  left: 22px !important;
  right: auto !important;
  bottom: 22px !important;
  padding: .3rem .9rem !important;
}

@media only screen and (max-width: 600px) {
  .recentHome .ere-property .property-item-content .property-price {
    left: 16px;
    bottom: 60px;
  }
  .recentHome .ere-property .property-info {
    left: 16px !important;
    bottom: 16px !important;
  }
  .recentHome .owl-carousel .owl-item {
    padding: 0 6px;
  }
}

/*--- 08.5 Otros servicios ---*/
.otroServs .vc_row,
.otroServs .vc_inner {
  display: flex;
  flex-wrap: wrap;
}
.otroServs .servCol {
  display: flex;
}
.otroServs .servCol > .vc_column-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.otroServs .servCol > .vc_column-inner > .wpb_wrapper {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  border: 2px solid var(--grey);
  position: relative;
  padding: 3rem 2rem 1.5rem;
  margin: 0 10px 50px;
  min-height: 200px;
  transition: border-color .3s ease;
}
.otroServs .servCol > .vc_column-inner > .wpb_wrapper > :last-child {
  margin-top: auto;
  padding-bottom: 1.5rem;
}
.otroServs .servCol > .vc_column-inner > .wpb_wrapper:hover {
  border-color: var(--primary);
}
.otroServs .servCol > .vc_column-inner > .wpb_wrapper .wpb_single_image {
  position: absolute;
  background-color: var(--crema) !important;
  width: 80px;
  top: -30px;
  padding: 0 1rem;
}
.otroServs .servCol a {
  color: var(--primary);
  font-weight: 700;
  position: relative;
  display: inline-block;
  padding-right: 24px;
  transition: var(--transicion);
}
.otroServs .servCol a::after {
  content: "";
  width: 15px;
  height: 20px;
  background-image: url(https://nysinmobiliarios.com/wp-content/uploads/2023/01/Grupo-18253.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  right: 0;
  top: 0;
  transition: transform .3s ease;
}
.otroServs .servCol a:hover {
  color: var(--success);
}
.otroServs .servCol a:hover::after {
  transform: translateX(4px);
}

/*--- 08.6 Últimas noticias (blog) ---*/
.articulosHome article,
.articulosHome .post {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--sombra-suave);
  transition: box-shadow .3s ease, transform .3s ease;
}
.articulosHome article:hover,
.articulosHome .post:hover {
  box-shadow: var(--sombra);
  transform: translateY(-4px);
}
.articulosHome article img,
.articulosHome .post img {
  width: 100%;
  aspect-ratio: 7 / 5;
  object-fit: cover;
}
.articulosHome .entry-title,
.articulosHome article h2,
.articulosHome article h3 {
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.3;
}
.articulosHome .entry-title a:hover {
  color: var(--primary);
}
.articulosHome .entry-summary p,
.articulosHome article p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .95rem;
}
.articulosHome .entry-meta,
.articulosHome .cat-links,
.articulosHome .posted-on {
  margin-top: auto;
  font-size: .8rem;
  letter-spacing: .5px;
  color: var(--text);
}
.articulosHome .cat-links a {
  display: inline;
  color: var(--primary);
}

/*--- 08.7 Aniversario ---*/
.aniversary .fila {
  margin-bottom: 20px;
}
.aniversary .title h2 {
  font-family: var(--texto-corrido);
  font-weight: 800;
  line-height: 1.2;
  font-size: 2.2rem;
}
.aniversary .title h2 strong {
  color: var(--primary);
}
.aniversary .num h2 {
  font-family: var(--texto-corrido);
  font-weight: 800;
  color: var(--primary);
  font-size: 6.6rem;
  line-height: 1;
  display: flex;
  justify-content: center;
}
.aniversary .text p {
  color: var(--blackish);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  width: 400px;
  max-width: 100%;
  margin-top: 0;
  margin-bottom: 10px;
}
.aniversary .title p {
  color: var(--primary);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.4;
  width: 400px;
  max-width: 100%;
  margin-top: 0;
}
.aniversary .wpb_content_element {
  margin-bottom: 0;
}

/*===================================================================*/
/*= 08.8 HOME RENOVADO  [v15]                                       =*/
/*===================================================================*/
/* Para el código nuevo de la portada (home-wpbakery.txt). */

/* Slider: el título de la primera diapositiva ahora es h1 (la portada
   no tenía ninguno, y Google lo usa para entender la página) */
.bannerSlide h1 {
  font-size: clamp(2rem, 1.1rem + 2.6vw, 3rem);
  line-height: 1.08;
  font-weight: 500;
  color: var(--grey);
  max-width: min(520px, 40vw);
  position: relative;
  z-index: 5;
  margin: 0;
}
.bannerSlide h1 strong {
  font-weight: 800;
  color: var(--primary);
}

/* Par de botones (principal + secundario) */
.botones p,
.botones > .wpb_wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
}
.botones .ctAccion {
  margin: 0 !important;
}
.bannerSlide .botones {
  margin-top: 1.5rem;
}
.bannerSlide .botones p {
  max-width: none;
}
.bannerSlide .ctAccion.outline {
  background: rgba(255, 255, 255, .75) !important;
  color: var(--grey) !important;
  border: 2px solid var(--grey);
  box-shadow: none;
}
.bannerSlide .ctAccion.outline:hover {
  background: var(--grey) !important;
  color: var(--white) !important;
}

/* Títulos de sección centrados con una frase de apoyo */
.seccionTitulo {
  text-align: center;
  margin-bottom: 2.25rem !important;
}
.seccionTitulo h2 {
  text-align: center;
}
.seccionTitulo p {
  max-width: 560px;
  margin: .6rem auto 0;
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--text);
}

/* Botón "Ver todos los inmuebles" bajo el carrusel */
.verTodos {
  text-align: center;
  margin-top: 1.5rem !important;
}

/* ¿Qué necesitas hoy? — 3 caminos, toda la tarjeta es clickeable */
.necesitasHome.vc_section {
  padding-top: 40px !important;
}
.necesitasHome .fila-caminos {
  display: flex;
  flex-wrap: wrap;
}
.necesitasHome .fila-caminos::before,
.necesitasHome .fila-caminos::after {
  display: none;
}
.pathCard {
  display: flex;
  float: none;
}
.pathCard > .vc_column-inner {
  display: flex;
  width: 100%;
}
.pathCard > .vc_column-inner > .wpb_wrapper {
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--linea);
  border-top: 4px solid var(--primary);
  border-radius: var(--radius-lg);
  padding: 2rem 1.75rem 1.75rem;
  margin-bottom: 1.5rem;
  transition: border-color .3s ease, box-shadow .3s ease;
}
.pathCard > .vc_column-inner > .wpb_wrapper:hover {
  border-color: var(--primary);
  box-shadow: var(--sombra-suave);
}
.pathCard .wpb_text_column {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  margin-bottom: 0 !important;
}
.pathCard .wpb_text_column > .wpb_wrapper {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
.pathCard h3 {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: .7rem;
}
.pathCard p {
  font-size: .98rem;
  margin: 0 0 1.25rem;
}
.pathCard .pathLink {
  margin: auto 0 0;
}
.pathCard .pathLink a {
  display: inline;
  font-weight: 700;
  color: var(--primary);
  border-bottom: 2px solid currentColor;
}
.pathCard .pathLink a::before {
  content: "";
  position: absolute;
  inset: 0;              /* toda la tarjeta lleva al enlace */
  border-radius: var(--radius-lg);
}
.pathCard > .vc_column-inner > .wpb_wrapper:hover .pathLink a {
  color: var(--success);
}

/* Otros servicios: títulos de cada servicio como subtítulo real */
.otroServs .servCol h3 {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 .7rem;
}
.otroServs .servCol p {
  font-size: .97rem;
  margin: 0 0 1rem;
}
.otroServs .title p {
  line-height: 1.7;
  margin-top: 1rem;
}

/* Blog: frase de apoyo bajo el título */
.blogHome .lastNews .title p {
  color: var(--text);
  margin: .6rem 0 0;
}

/* Llamado final: tarjeta roja antes del footer */
.ctaFinal.vc_section {
  padding-top: 30px !important;
  padding-bottom: 70px !important;
}
.ctaFinal .vc_column-inner > .wpb_wrapper {
  background: var(--primary);
  border-radius: var(--radius-lg);
  padding: 3.5rem 2rem;
  text-align: center;
  box-shadow: var(--sombra);
}
.ctaFinal h2 {
  color: var(--white);
  font-size: clamp(1.7rem, 1.3rem + 1.5vw, 2.4rem);
  font-weight: 800;
  margin-bottom: .75rem;
}
.ctaFinal p {
  color: rgba(255, 255, 255, .92);
  font-size: 1.1rem;
  font-weight: 400;
  max-width: 560px;
  margin: 0 auto;
}
.ctaFinal .botones p {
  justify-content: center;
  margin-top: 1.75rem;
  max-width: none;
}
.ctAccion.blanco {
  background: var(--white) !important;
  color: var(--primary) !important;
}
.ctAccion.blanco:hover {
  background: var(--claro) !important;
  color: var(--success) !important;
}
.ctAccion.outline-blanco {
  background: transparent !important;
  color: var(--white) !important;
  border: 2px solid var(--white);
  box-shadow: none;
}
.ctAccion.outline-blanco:hover {
  background: var(--white) !important;
  color: var(--primary) !important;
}

@media only screen and (max-width: 900px) {
  .bannerSlide h1 {
    max-width: 100%;
  }
  .pathCard {
    width: 100% !important;
    flex: 0 0 100%;
  }
  .ctaFinal .vc_column-inner > .wpb_wrapper {
    padding: 2.5rem 1.5rem;
  }
}
@media only screen and (max-width: 600px) {
  .botones p {
    flex-direction: column;
    align-items: stretch;
  }
  .botones .ctAccion {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
}

/*===================================================================*/
/*= 09. PROPIEDADES (Essential Real Estate)                         =*/
/*===================================================================*/
.ere-property.property-grid .property-inner,
.ere-property.property-list .property-inner {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
  box-shadow: var(--sombra-suave);
  transition: box-shadow .3s ease, transform .3s ease;
}
.ere-property.property-grid .property-inner:hover,
.ere-property.property-list .property-inner:hover {
  box-shadow: var(--sombra);
  transform: translateY(-3px);
}

/* [v2] Listado /propiedades/: tarjetas de igual altura.
   Las fotos tienen proporciones distintas (algunas son capturas de
   pantalla) y cada tarjeta terminaba a una altura diferente. */
.ere-property.property-grid .property-item {
  display: flex;
}
.ere-property.property-grid .property-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
.ere-property.property-grid .property-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
}
.ere-property .property-image img {
  width: 100%;
  object-fit: cover;
}
.ere-property.property-grid .property-image img {
  height: 100%;
  transition: transform .6s ease;
}
.ere-property.property-grid .property-inner:hover .property-image img {
  transform: scale(1.04);
}
.ere-property.property-grid .property-item-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 1.2rem 1.4rem 1.4rem;
}

.ere-property .property-heading h2,
.ere-property .property-heading h4,
.ere-property .property-title a {
  font-family: var(--titulo);
  color: var(--grey);
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.3;
}
.ere-property .property-title a:hover {
  color: var(--primary);
}
.ere-property .property-price,
.single-property .property-price {
  color: var(--primary);
  font-family: var(--titulo);
  font-weight: 800;
  font-size: 1.25rem;
  margin: .4rem 0;
}
.ere-property .property-location,
.ere-property .property-location a,
.ere-property .property-date,
.ere-property .property-date a {
  color: var(--text);
  font-size: .85rem;
}

/* [v2] Descripción: máximo 3 líneas. Antes se cortaba a mitad de
   palabra ("Ofrece tres") y cada tarjeta mostraba un largo distinto. */
.ere-property .property-excerpt,
.ere-property .property-excerpt p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .92rem;
  line-height: 1.55;
  margin: .6rem 0 0;
}

/* [v2] Datos (m², alcobas, baños) siempre al pie de la tarjeta,
   separados por una línea y con íconos en color de marca. */
.ere-property.property-grid .property-element-inline,
.ere-property.property-grid .property-info {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--linea);
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.2rem;
  font-size: .85rem;
  color: var(--grey);
}
.ere-property .property-element-inline i,
.ere-property .property-info i {
  color: var(--primary);
}

/* [v2] Botones sobre la foto (fotos, favoritos, comparar):
   círculos blancos legibles sobre cualquier imagen. */
.ere-property .property-action {
  z-index: 2;
}
.ere-property .property-action a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-left: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--grey) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
  transition: background-color .3s ease, color .3s ease;
}
.ere-property .property-action a:hover {
  background: var(--primary);
  color: var(--white) !important;
}

/* Etiquetas de estado (venta / arriendo) */
.ere-property .property-status,
.ere-property .property-label,
.property-status span {
  background-color: var(--primary) !important;
  color: var(--white) !important;
  border-radius: 2px;
  font-weight: 600;
  font-size: .8rem;
}
.ere-property .property-status::before,
.ere-property .property-status::after {
  border-color: var(--success) transparent !important;
}

/* Ficha individual */
.single-property .property-info-header h1,
.single-property .property-title {
  font-size: 2.2rem;
  font-weight: 800;
}
.single-property .ere-heading h2,
.single-property .property-tab h4 {
  font-size: 1.4rem;
  padding-bottom: .5rem;
  margin-bottom: 1rem;
  border-bottom: 2px solid var(--primary);
  display: inline-block;
}
.single-property .property-features ul li,
.single-property .property-overview ul li {
  padding: .5rem 0;
  border-bottom: 1px solid var(--linea);
}

/* Formulario de búsqueda */
.ere-search-properties .form-control,
.form-search-wrap .form-control,
.form-search-wrap select,
.form-search-wrap input {
  height: 44px;
  border: 1px solid var(--linea);
  border-radius: var(--radius);
  font-family: var(--texto-corrido);
}
.ere-search-properties .form-control:focus,
.form-search-wrap select:focus,
.form-search-wrap input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--foco);
}
.form-search-wrap .ere-advanced-search-btn,
.form-search-wrap button[type="submit"],
.ere-search-properties button {
  background-color: var(--primary) !important;
  border: none !important;
  color: var(--white) !important;
  font-weight: 700;
  border-radius: var(--radius);
  transition: var(--transicion);
}
.form-search-wrap .ere-advanced-search-btn:hover,
.form-search-wrap button[type="submit"]:hover,
.ere-search-properties button:hover {
  background-color: var(--success) !important;
}

/* Paginación */
.paging-navigation,
.ere-paging-wrap,
.nav-links {
  display: flex;
  justify-content: center;
  gap: .5rem;
  margin: 2rem 0;
}
.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  border: 1px solid var(--linea);
  border-radius: var(--radius);
  color: var(--grey);
  font-weight: 600;
}
.page-numbers.current,
.page-numbers:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}

/*--- Tarjetas del listado: sin naranja ni gris  [v7] ---*/
/* El plugin trae su propio color de acento (naranja) en la franja de
   m², alcobas y baños, y fondos grises en la tarjeta. Se reemplazan
   por los colores de la marca. */
.ere-property.property-grid .property-inner,
.ere-property.property-grid .property-inner:hover,
.ere-property.property-grid .property-item-content,
.ere-property.property-list .property-inner,
.ere-property.property-list .property-inner:hover,
.ere-property.property-list .property-item-content {
  background-color: var(--white) !important;
}
/* Foto pegada al borde de la tarjeta (antes tenía un marco alrededor) */
.ere-property.property-grid .property-inner {
  padding: 0 !important;
  border: 0 !important;
}

/* Título completo en hasta 2 líneas (antes se cortaba: "Fontibó") */
.ere-property.property-grid .property-heading h2,
.ere-property.property-grid .property-heading h4,
.ere-property.property-grid .property-title {
  white-space: normal !important;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  min-height: 2.6em;   /* 2 líneas: los precios quedan alineados */
}

/* Fecha "1 año ago": hace ver las propiedades viejas y está a medio
   traducir. Se oculta. (Para mostrarla de nuevo, borra este bloque.) */
.ere-property.property-grid .property-date,
.ere-property.property-list .property-date {
  display: none !important;
}
.ere-property.property-grid .property-element-inline {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}

/* Franja de datos: fondo blanco, línea fina arriba, íconos rojos
   y números en gris oscuro, con espacio entre cada dato */
.ere-property.property-grid .property-info,
.ere-property.property-list .property-info,
.ere-property.property-grid .property-info-inner,
.ere-property.property-list .property-info-inner,
.ere-property.property-grid .property-info-inner > div,
.ere-property.property-list .property-info-inner > div {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.ere-property.property-grid .property-info,
.ere-property.property-list .property-info {
  margin: auto 0 0 !important;
  padding: 1rem 0 0 !important;
  border-top: 1px solid var(--linea) !important;
  width: 100%;
}
.ere-property.property-grid .property-info-inner,
.ere-property.property-list .property-info-inner {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1.5rem;
  height: auto !important;
}
.ere-property.property-grid .property-info-inner > div:not(.tooltip),
.ere-property.property-list .property-info-inner > div:not(.tooltip) {
  display: inline-flex !important;
  align-items: center;
  gap: .45rem;
  width: auto !important;
  padding: 0 !important;
  float: none !important;
  color: var(--grey) !important;
}
.ere-property.property-grid .property-info-inner i,
.ere-property.property-list .property-info-inner i {
  color: var(--primary) !important;
  font-size: 1rem;
}
.ere-property.property-grid .property-info-value,
.ere-property.property-list .property-info-value {
  color: var(--grey) !important;
  font-weight: 600;
  font-size: .95rem;
}
.ere-property.property-grid .property-info-inner .tooltip,
.ere-property.property-list .property-info-inner .tooltip {
  display: none !important;
}

/* El naranja del plugin también aparece en etiquetas y enlaces */
.ere-property .property-featured,
.ere-property .property-label-wrap span,
.ere-property .property-status-wrap span {
  background-color: var(--primary) !important;
  color: var(--white) !important;
}

/*--- Ficha de cada propiedad  [v8] ---*/
/* body.single-property la agrega WordPress a todas las fichas, así que
   estos estilos solo afectan la página de cada inmueble. */

/* 1. Header: en las fichas no hay foto de portada, así que el menú
   blanco quedaba invisible sobre fondo blanco hasta hacer scroll.
   Ahora el header es rojo desde el inicio (también en entradas del blog). */
.single header#masthead {
  background: var(--primary);
  box-shadow: 0 10px 20px rgba(0, 0, 0, .15);
}
.single header#masthead .logo .color { display: none; }
.single header#masthead .logo .blnk  { display: block; }
.single header#masthead ul#primary-menu a::after {
  background-color: var(--white);
}

/* 2. Espacio arriba para que el título no quede debajo del header fijo.
   [v8.2] Se aplica al body: la ficha no usa la clase .site-main. */
body.single-property,
body.single-post {
  padding-top: 140px;
}

/* 3. Sin barra lateral ("Categorías", "Entradas recientes") ni
   comentarios: el contenido usa todo el ancho */
.single-property #secondary,
.single-property .widget-area,
.single-property #comments,
.single-property .comments-area,
.single-property .comment-respond {
  display: none !important;
}
.single-property #primary,
.single-property .content-area {
  width: 100% !important;
  max-width: var(--contenedor);
  margin: 0 auto;
  float: none !important;
  padding-left: 4%;
  padding-right: 4%;
  box-sizing: border-box;
}

/* 4. Título y precio */
/* [v8.2] Solo títulos de sección (no el título de la propiedad) */
.single-property .single-property-element h2:not(:only-of-type) ~ h2,
.single-property .ere-heading h2,
.single-property .ere-heading-style2 h2 {
  font-size: 1.35rem;
  font-weight: 700;
  margin-bottom: 1.1rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--primary);
  display: inline-block;
}
.single-property .property-info-header h2,
.single-property .property-heading h2,
.single-property .property-title {
  font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem) !important;
  font-weight: 800;
  line-height: 1.2;
  border-bottom: 0;
  padding-bottom: 0;
  display: block;
}
.single-property .property-price {
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  color: var(--primary) !important;
  background: transparent !important;
}

/* 5. Cada bloque (descripción, dirección, visión de conjunto) como
   tarjeta blanca, igual que en el resto del sitio */
.single-property .single-property-element {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--sombra-suave);
  padding: 2rem 2.25rem;
  margin-bottom: 1.75rem;
  border: 0;
}
.single-property .single-property-element p {
  font-size: 1.02rem;
  line-height: 1.75;
  max-width: 75ch;
}

/* 6. Listas de datos en 2 columnas: "Alcobas ...... 2" */
.single-property .single-property-element ul:not(.nav-tabs) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0 2.5rem;
}
.single-property .single-property-element ul:not(.nav-tabs) li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .7rem 0;
  border-bottom: 1px solid var(--linea);
  color: var(--grey);
}
.single-property .single-property-element ul:not(.nav-tabs) li strong {
  font-weight: 600;
  color: var(--text);
}
/* Pestaña única "Visión de conjunto": no sirve como pestaña, se oculta */
.single-property .nav-tabs:has(> li:only-child) {
  display: none;
}
.single-property .nav-tabs li a {
  color: var(--grey);
  font-weight: 600;
}
.single-property .nav-tabs li.active a,
.single-property .nav-tabs li a:hover {
  color: var(--primary);
}

/* 7. Galería: fotos con esquinas redondeadas y flechas visibles.
   (El estilo general de flechas las dejaba transparentes y la de
   "anterior" girada, apuntando al lado equivocado.) */
.single-property .owl-carousel img {
  border-radius: var(--radius);
}
.single-property .owl-nav {
  display: block;
}
.single-property .owl-nav button,
.single-property .owl-nav button.owl-prev {
  transform: none;
  color: var(--grey) !important;
  background: rgba(255, 255, 255, .92) !important;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  transition: background-color .3s ease, color .3s ease;
}
.single-property .owl-nav button:hover {
  background: var(--primary) !important;
  color: var(--white) !important;
}

/* 8. Íconos y acentos del plugin (naranja) con color de marca */
body.single-property i[class*="fa-"]:not(#masthead *, #colophon *) {
  color: var(--primary);
}

/* 9. Bloque de agente vacío: no hay agente asignado y salía una imagen
   rota, un título vacío y "Otras propiedades" sin destino. */
.single-property .single-property-element:has(a[href$="?agent_id"]),
.single-property a[href$="?agent_id"] {
  display: none !important;
}
.single-property img[src=""],
.single-property img:not([src]) {
  display: none;
}

/* [v8.1] Correcciones de la ficha (según captura) */

/* Tarjeta dentro de tarjeta: el bloque interno pierde su caja */
.single-property .single-property-element .single-property-element,
.single-property .single-property-element .tab-content,
.single-property .single-property-element .tab-pane {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Lista de datos: 2 columnas, filas parejas, sin fondos grises del
   plugin. Etiqueta a la izquierda, valor a la derecha. */
.single-property .single-property-element ul:not(.nav-tabs) {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  align-items: start;
}
.single-property .single-property-element ul:not(.nav-tabs) li {
  background: transparent !important;
  float: none !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  align-items: baseline;
  margin: 0 !important;
}
.single-property .single-property-element ul:not(.nav-tabs) li > * {
  width: auto !important;
  flex: 0 1 auto;
  float: none !important;
  padding: 0 !important;
}
.single-property .single-property-element ul:not(.nav-tabs) li strong {
  white-space: nowrap;
}
.single-property .single-property-element ul:not(.nav-tabs) li > :last-child {
  margin-left: auto;
  text-align: right;
  font-weight: 600;
  color: var(--grey);
}
/* El precio dentro de la lista salía gigante y cortado ("$220,0(") */
.single-property .single-property-element li .property-price,
.single-property .single-property-element li [class*="price"] {
  font-size: 1.05rem !important;
  line-height: 1.4 !important;
  white-space: nowrap;
  color: var(--primary) !important;
}

/* Íconos naranjas del plugin (fecha, vistas, etc.) → rojo de marca */
body.single-property i:not(#masthead *, #colophon *),
body.single-property [class*="icon-"]:not(#masthead *, #colophon *),
body.single-property svg:not(#masthead *, #colophon *) {
  color: var(--primary) !important;
}

/* [v8.2] Botones compartir / favorito / comparar / imprimir:
   blancos con borde; rojos al pasar el mouse (antes negros) */
.single-property .property-action a,
.single-property .property-actions a,
.single-property .property-action button {
  background: var(--white) !important;
  color: var(--grey) !important;
  border: 1px solid var(--linea) !important;
  box-shadow: var(--sombra-suave);
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.single-property .property-action a i,
.single-property .property-actions a i {
  color: inherit !important;
}
.single-property .property-action a:hover,
.single-property .property-actions a:hover,
.single-property .property-action button:hover {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
}

/* Fecha y vistas: dato menor, sin tarjeta propia */
.single-property .single-property-element:has([class*="eye"]) {
  background: transparent;
  box-shadow: none;
  padding: .25rem 0;
  margin-bottom: 1rem;
  font-size: .9rem;
  color: var(--text);
}

@media only screen and (max-width: 900px) {
  body.single-property,
  body.single-post {
    padding-top: 100px;
  }
  .single-property .single-property-element {
    padding: 1.5rem 1.25rem;
  }
}

/*--- Búsqueda avanzada y resultados  [v13] ---*/
/* Páginas con propiedades pero SIN banner de foto (búsqueda avanzada,
   resultados, archivos). Igual que en la ficha, el menú blanco quedaba
   invisible sobre fondo blanco y el contenido debajo del header. */
body:not(.home):not(.single):has(.ere-property):not(:has(.bannerSlide, .bannerHome, .aniversary)) header#masthead {
  background: var(--primary);
  box-shadow: 0 10px 20px rgba(0, 0, 0, .15);
}
body:not(.home):not(.single):has(.ere-property):not(:has(.bannerSlide, .bannerHome, .aniversary)) header#masthead .logo .color { display: none; }
body:not(.home):not(.single):has(.ere-property):not(:has(.bannerSlide, .bannerHome, .aniversary)) header#masthead .logo .blnk  { display: block; }
body:not(.home):not(.single):has(.ere-property):not(:has(.bannerSlide, .bannerHome, .aniversary)) header#masthead ul#primary-menu a::after {
  background-color: var(--white);
}
body:not(.home):not(.single):has(.ere-property):not(:has(.bannerSlide, .bannerHome, .aniversary)) {
  padding-top: 140px;
}

/* Formulario de búsqueda (fuera del slider) como tarjeta, con los
   campos en una grilla que se acomoda sola al ancho de la pantalla */
body .form-search-wrap:not(.bannerSlide *) {
  background: var(--white) !important;
  border-radius: var(--radius-lg);
  border-top: 5px solid var(--primary);
  box-shadow: var(--sombra-suave);
  padding: 1.75rem !important;
  margin: 0 0 2.5rem !important;
}
body .form-search-wrap:not(.bannerSlide *) .row {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 12px;
  margin: 0 !important;
}
body .form-search-wrap:not(.bannerSlide *) .row::before,
body .form-search-wrap:not(.bannerSlide *) .row::after {
  display: none !important;
}
body .form-search-wrap:not(.bannerSlide *) .row > * {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body .form-search-wrap:not(.bannerSlide *) .form-group {
  margin: 0 !important;
}
body .form-search-wrap:not(.bannerSlide *) select,
body .form-search-wrap:not(.bannerSlide *) input[type="text"] {
  width: 100% !important;
  height: 48px !important;
  padding: 0 14px !important;
  padding-right: 34px !important;
  border: 1px solid #dcdcdc !important;
  border-radius: var(--radius) !important;
  background-color: var(--white) !important;
  font-family: var(--texto-corrido);
  font-size: .95rem;
  color: var(--grey);
  text-overflow: ellipsis;
  box-shadow: none !important;
}
body .form-search-wrap:not(.bannerSlide *) select:focus,
body .form-search-wrap:not(.bannerSlide *) input[type="text"]:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px var(--foco) !important;
}
body .form-search-wrap:not(.bannerSlide *) button,
body .form-search-wrap:not(.bannerSlide *) .btn {
  width: 100%;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border-radius: var(--radius) !important;
  font-family: var(--texto-corrido);
  font-weight: 700;
}
/* "Guardar búsqueda": botón secundario (borde), no compite con "Búsqueda" */
body .form-search-wrap:not(.bannerSlide *) [class*="save-search"],
body .form-search-wrap:not(.bannerSlide *) [data-target*="save"] {
  background: transparent !important;
  color: var(--grey) !important;
  border: 2px solid var(--grey) !important;
  box-shadow: none !important;
}
body .form-search-wrap:not(.bannerSlide *) [class*="save-search"]:hover,
body .form-search-wrap:not(.bannerSlide *) [data-target*="save"]:hover {
  background: var(--grey) !important;
  color: var(--white) !important;
}

/* Campos que no aplican a una inmobiliaria de Bogotá: país (lista de
   250 países), área de terreno, garajes y etiquetas. Se ocultan.
   (Mejor aún: desactívalos en los ajustes de búsqueda del plugin.) */
body .form-search-wrap:not(.bannerSlide *) .row > :has([name*="country"]),
body .form-search-wrap:not(.bannerSlide *) .row > :has([name*="land-area"]),
body .form-search-wrap:not(.bannerSlide *) .row > :has([name*="garage"]),
body .form-search-wrap:not(.bannerSlide *) .row > :has([name*="label"]) {
  display: none !important;
}

/* Menú "Ordenar por" */
.dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem 1rem;
  border: 1px solid var(--linea);
  border-radius: 999px;
  color: var(--grey);
  font-weight: 600;
  font-size: .92rem;
}
.dropdown-menu {
  border: 0 !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--sombra) !important;
  padding: .4rem 0 !important;
  min-width: 220px;
}
.dropdown-menu a,
.dropdown-menu li a {
  display: block;
  padding: .55rem 1.1rem !important;
  color: var(--grey) !important;
  font-size: .92rem;
  background: transparent !important;
}
.dropdown-menu a:hover,
.dropdown-menu .active a {
  background: var(--crema) !important;
  color: var(--primary) !important;
}

/* Ventanas emergentes del plugin ("Guardar búsqueda", "Iniciar sesión") */
.modal-content {
  border: 0 !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--sombra) !important;
  font-family: var(--texto-corrido);
}
.modal-header {
  border-bottom: 1px solid var(--linea) !important;
  padding: 1.1rem 1.5rem !important;
}
.modal-body {
  padding: 1.5rem !important;
}
.modal-footer {
  border-top: 1px solid var(--linea) !important;
  padding: 1rem 1.5rem !important;
}
.modal .btn-primary,
.modal button[type="submit"] {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
  border-radius: var(--radius) !important;
  font-weight: 700;
}
.modal .btn-primary:hover,
.modal button[type="submit"]:hover {
  background: var(--success) !important;
  border-color: var(--success) !important;
}
.modal .btn-default {
  border-radius: var(--radius) !important;
}
.modal input[type="text"],
.modal input[type="email"],
.modal input[type="password"] {
  height: 44px;
  border: 1px solid #dcdcdc;
  border-radius: var(--radius);
  padding: 0 12px;
}

@media only screen and (max-width: 900px) {
  body:not(.home):not(.single):has(.ere-property):not(:has(.bannerSlide, .bannerHome, .aniversary)) {
    padding-top: 100px;
  }
  body .form-search-wrap:not(.bannerSlide *) {
    padding: 1.25rem !important;
  }
}
@media only screen and (max-width: 600px) {
  body .form-search-wrap:not(.bannerSlide *) .row {
    grid-template-columns: 1fr;
  }
}

/*--- Búsqueda avanzada: segunda pasada  [v13.1] ---*/

/* Botones azules del plugin (Bootstrap) → rojo de marca, en todo el sitio */
.btn-primary,
[class*="save-search"],
[data-target*="save-search"] {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
  border-radius: 999px !important;
  font-family: var(--texto-corrido);
  font-weight: 600;
  box-shadow: none !important;
  transition: background-color .3s ease, border-color .3s ease;
}
.btn-primary:hover,
[class*="save-search"]:hover,
[data-target*="save-search"]:hover {
  background-color: var(--success) !important;
  border-color: var(--success) !important;
}

/* Línea naranja donde se apoya "Guardar búsqueda" → línea gris suave */
*:has(> [class*="save-search"]),
*:has(> [data-target*="save-search"]) {
  border-color: var(--linea) !important;
}

/* Subrayado naranja bajo "PROPIEDADES (19)" → rojo de marca */
.ere-heading::before,
.ere-heading::after,
.ere-heading h2::before,
.ere-heading h2::after,
.ere-heading span::before,
.ere-heading span::after {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}
.ere-heading h2 sup,
.ere-heading sup {
  color: var(--text);
  font-size: .5em;
  font-weight: 500;
}

/* "Ordenar por": texto centrado (antes corrido a la derecha) */
.dropdown-toggle {
  justify-content: center;
  padding: .55rem 1.2rem !important;
  min-width: 0 !important;
  background: var(--white) !important;
  text-indent: 0 !important;
}
.dropdown-toggle:hover {
  border-color: var(--primary);
  color: var(--primary);
}

/* Ver como lista / cuadrícula: dos botones limpios en vez de bloques
   negros inclinados. El activo va en rojo. */
[data-view-as] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: 6px;
  border: 1px solid var(--linea) !important;
  border-radius: var(--radius) !important;
  background: var(--white) !important;
  color: var(--grey) !important;
  transform: none !important;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
[data-view-as]::before,
[data-view-as]::after {
  display: none !important;
}
[data-view-as] i {
  color: inherit !important;
  transform: none !important;
}
[data-view-as].active,
[data-view-as]:hover {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--white) !important;
}

/* [v13.3] Separación entre tarjetas del listado.
   La grilla de v13.2 no encontró el contenedor del plugin, así que el
   espacio se da directamente a cada tarjeta con margen: funciona sin
   importar cómo el plugin arme las columnas. */
.ere-property.property-grid .property-inner {
  width: auto !important;
  flex: 1 1 auto !important;   /* sigue ocupando todo el ancho de su columna */
  min-width: 0;
  margin: 0 12px 28px !important;
}
@media only screen and (max-width: 600px) {
  .ere-property.property-grid .property-inner {
    margin: 0 0 22px !important;
  }
}
.ere-property.property-grid .property-info-inner {
  padding-left: 0 !important;
}

/*===================================================================*/
/*= 10. PÁGINAS INTERNAS                                            =*/
/*===================================================================*/
.bannerContact {
  height: 70vh;
  overflow: visible !important;
}
.maps .wpb_content_element {
  margin-bottom: 0;
}
.maps iframe {
  display: block;
  width: 100%;
  height: clamp(300px, 45vh, 460px);   /* [v5] alto razonable en toda pantalla */
  border: 0;
  filter: grayscale(30%);
}

/*--- Formulario de contacto: clases reales  [v5.1] ---*/
/* El CSS buscaba "message" y "Terms", pero el formulario usa
   "Mensaje" y "terms". Por eso el mensaje quedaba a media columna
   y "Acepto términos" se apretaba a su lado. */
.formContact > div.Mensaje,
.formContact > div.terms {
  width: 100%;
}
.formContact > div.Mensaje textarea {
  height: 130px;
}
.formContact > div.terms {
  margin: .25rem 0 .75rem;
}
/* "Acepto" ya no va en negrita ni el enlace gigante en otra línea */
.formContact .terms .wpcf7-list-item {
  margin: 0;
}
.formContact .terms label {
  display: flex;
  align-items: center;
  gap: .55rem;
  font-size: .95rem;
  font-weight: 400;
  color: var(--grey);
  cursor: pointer;
}
.formContact .terms input[type="checkbox"] {
  margin: 0;
  flex-shrink: 0;
}
.formContact .terms a,
.formContact .terms .anchoMedio {
  display: inline;
  font-size: inherit;
  font-weight: 600;
  color: var(--primary);
  border-bottom: 1px solid currentColor;
  cursor: pointer;
}
/* Botón Enviar: a la derecha, sin float (el float se salía de la caja) */
.formContact p:has(> input[type="submit"]),
.formContact p:has(> .wpcf7-submit) {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1rem;
  margin-top: .25rem;
}
.formContact p:has(> input[type="submit"]) input[type="submit"] {
  float: none;
  margin: 0;
}

/* Tarjeta dentro de tarjeta: si el formulario está dentro de la
   columna "infoContact", el formulario pierde su propia caja y queda
   una sola tarjeta limpia con el título y los campos. */
.infoContact .formContact {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  margin: 1.25rem 0 0;
}
/* La frase del formulario funciona como subtítulo de "Contáctanos" */
.infoContact .formContact h3 {
  font-family: var(--texto-corrido);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--text);
  line-height: 1.5;
  margin-bottom: 1.75rem;
}
.infoContact h1 {
  margin-bottom: 0;
}

@media only screen and (max-width: 600px) {
  .formContact p:has(> input[type="submit"]) {
    flex-direction: column;
    align-items: stretch;
  }
  .formContact p:has(> input[type="submit"]) input[type="submit"] {
    width: 100%;
    max-width: 100%;
  }
}

/*--- Formulario de contacto v2  [v6] ---*/
/* Para el código nuevo del formulario (formulario-contacto.txt):
   etiqueta visible arriba de cada campo y fila final con WhatsApp. */
.formContact .campo,
.formContact .Mensaje {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  margin-bottom: .35rem;
}
.formContact .campo label,
.formContact .Mensaje label {
  font-size: .85rem;
  font-weight: 600;
  color: var(--grey);
  line-height: 1.2;
}
/* CF7 mete <br> o <p> entre la etiqueta y el campo: se neutralizan */
.formContact .campo br,
.formContact .Mensaje br {
  display: none;
}
.formContact .campo p,
.formContact .Mensaje p {
  display: contents;
}
/* Desplegable sin opción elegida: texto gris como los placeholders */
.formContact select:has(option[value=""]:checked) {
  color: var(--text);
}

/* Última fila: enlace a WhatsApp a la izquierda, botón a la derecha */
.formContact > div.enviar {
  width: 100%;
}
.formContact .enviar,
.formContact .enviar > p {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  width: 100%;
  margin: .5rem 0 0;
}
.formContact .enviar input[type="submit"] {
  float: none;
  margin: 0;
}
.formContact .alt-wsp {
  font-size: .9rem;
  color: var(--text);
}
.formContact .alt-wsp a {
  display: inline;
  font-weight: 600;
  color: var(--primary);
  border-bottom: 1px solid currentColor;
}
.formContact .alt-wsp a:hover {
  color: var(--success);
}

@media only screen and (max-width: 600px) {
  .formContact .enviar,
  .formContact .enviar > p {
    flex-direction: column-reverse;
    align-items: stretch;
    text-align: center;
  }
  .formContact .enviar input[type="submit"] {
    width: 100%;
    max-width: 100%;
  }
}

/*--- Contacto  [v5] ---*/
/*
  ANTES DE USAR: en WPBakery agrega estas clases ("Extra class name"):
  · A la SECCIÓN que tiene el formulario y los datos → contacto
  · A la COLUMNA con "Llámanos / Escríbenos / Síguenos en" → infoContact
  (Solo se cambian colores, tamaños y espacios; no se mueve ninguna
   columna de lugar, así no se descuadra como pasó en Requisitos.)
*/

/* Título y subtítulo */
.contacto h1 {
  font-size: clamp(2.2rem, 1.6rem + 2vw, 3.2rem);
  font-weight: 800;
  line-height: 1.1;
}
.contacto h3:not(.formContact h3) {
  font-family: var(--texto-corrido);
  font-size: clamp(1.05rem, .95rem + .4vw, 1.3rem);
  font-weight: 400;
  line-height: 1.5;
  max-width: 480px;
  margin: .6rem 0 0;
  text-wrap: balance;
}

/* Formulario: la casilla de términos alineada con su texto */
.contacto .formContact > div.Terms,
.contacto .formContact .wpcf7-acceptance label {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .9rem;
  font-weight: 400;
  color: var(--grey);
}
.contacto .formContact .wpcf7-list-item {
  margin: 0;
}
.contacto .formContact input[type="checkbox"] {
  margin: 0;
  flex-shrink: 0;
}

/* Columna de datos como tarjeta */
.infoContact > .vc_column-inner > .wpb_wrapper {
  background: var(--white);
  border-radius: var(--radius-lg);
  border-top: 5px solid var(--primary);
  box-shadow: var(--sombra-suave);
  padding: 2.25rem 2rem 1.75rem;
  margin: 4rem 0 2rem;
}
.infoContact .wpb_content_element {
  margin-bottom: 1.5rem !important;
}
.infoContact .wpb_content_element:last-child {
  margin-bottom: 0 !important;
}
.infoContact h4 {
  font-family: var(--texto-corrido);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: .3rem;
}
/* Teléfono y correo: grandes y en color de marca, son lo que el
   visitante viene a buscar */
.infoContact .wpb_text_column a,
.infoContact p a {
  display: inline-block;
  font-family: var(--titulo);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--primary);
  border-bottom: 0;
  word-break: break-word;   /* el correo no se sale de la tarjeta en celular */
}
.infoContact .wpb_text_column a:hover,
.infoContact p a:hover {
  color: var(--success);
}

/* Redes sociales: íconos en círculo; al pasar el mouse se vuelven
   blancos sobre rojo */
.infoContact ul {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: .5rem;
  padding: 0;
}
.infoContact ul li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.infoContact ul li::before {
  display: none;
}
.infoContact ul li a {
  display: block;
}
.infoContact ul li img {
  display: block;
  width: 44px;
  height: 44px;
  padding: 11px;
  box-sizing: border-box;
  border-radius: 50%;
  background: var(--crema);
  transition: background-color .3s ease, filter .3s ease;
}
.infoContact ul li:hover img {
  background: var(--primary);
  filter: brightness(0) invert(1);
}

@media only screen and (max-width: 900px) {
  .infoContact > .vc_column-inner > .wpb_wrapper {
    margin: 0 0 2rem;
  }
}
@media only screen and (max-width: 600px) {
  .infoContact > .vc_column-inner > .wpb_wrapper {
    padding: 1.75rem 1.4rem 1.5rem;
  }
  .infoContact .wpb_text_column a,
  .infoContact p a {
    font-size: 1.1rem;
  }
}
@media (hover: none) {
  .infoContact ul li:hover img {
    background: var(--crema);
    filter: none;
  }
}

/*--- Contacto: tarjetas de datos  [v14] ---*/
/* Para el código nuevo de la página (contacto-wpbakery.txt):
   sección "contactoDatos", fila "fila-datos", columnas "datoCard"
   (+ dato-tel / dato-wsp / dato-mail / dato-ubicacion) y fila de
   redes "contacto-redes". */
.contactoDatos.vc_section {
  padding-top: 70px !important;
  padding-bottom: 30px !important;
}
.contactoDatos .fila-datos {
  display: flex;
  flex-wrap: wrap;
}
.contactoDatos .fila-datos::before,
.contactoDatos .fila-datos::after {
  display: none;
}
.contactoDatos .datoCard {
  display: flex;
  float: none;
}
.contactoDatos .datoCard > .vc_column-inner {
  display: flex;
  width: 100%;
}
.contactoDatos .datoCard > .vc_column-inner > .wpb_wrapper {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--sombra-suave);
  padding: 2rem 1.25rem 1.75rem;
  margin-bottom: 1.5rem;
}
.contactoDatos .datoCard .wpb_content_element {
  margin-bottom: 0 !important;
}

/* Ícono en círculo rojo arriba de cada tarjeta */
.contactoDatos .datoCard > .vc_column-inner > .wpb_wrapper::before {
  content: "";
  display: block;
  width: 56px;
  height: 56px;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: var(--primary) var(--icono-dato) center / 26px no-repeat;
}
.contactoDatos .dato-tel {
  --icono-dato: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}
.contactoDatos .dato-wsp {
  --icono-dato: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-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-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.4a.5.5 0 0 0 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.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z'/%3E%3C/svg%3E");
}
.contactoDatos .dato-mail {
  --icono-dato: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm0 2v.5l8 5 8-5V6H4zm16 2.85-7.47 4.67a1 1 0 0 1-1.06 0L4 8.85V18h16V8.85z'/%3E%3C/svg%3E");
}
.contactoDatos .dato-ubicacion {
  --icono-dato: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}

/* Textos de la tarjeta */
.contactoDatos .datoCard h4 {
  font-family: var(--texto-corrido);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: .4rem;
}
.contactoDatos .datoCard p {
  margin: 0;
}
.contactoDatos .datoCard p a,
.contactoDatos .datoCard .dato-texto {
  display: inline;
  font-family: var(--titulo);
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--grey);
  border-bottom: 0;
  line-height: 1.4;
  word-break: break-word;   /* el correo no se sale en celular */
}
.contactoDatos .datoCard p a:hover {
  color: var(--primary);
}
.contactoDatos .datoCard .dato-nota {
  margin-top: .45rem;
  font-size: .88rem;
  color: var(--text);
}
.contactoDatos .datoCard .dato-nota a {
  font-family: var(--texto-corrido);
  font-size: .9rem;
  font-weight: 600;
  color: var(--primary);
  border-bottom: 1px solid currentColor;
}

/* Redes sociales */
.contacto-redes {
  text-align: center;
  margin-top: 1rem;
}
.contacto-redes h4 {
  font-family: var(--texto-corrido);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: .9rem;
}
.contacto-redes ul {
  display: flex;
  justify-content: center;
  gap: .75rem;
  margin: 0 !important;
  padding: 0 !important;
}
.contacto-redes ul li {
  list-style: none !important;
  margin: 0 !important;
}
.contacto-redes ul li a {
  display: block;
  border: 0;
}
.contacto-redes ul li img {
  display: block;
  width: 46px;
  height: 46px;
  padding: 12px;
  box-sizing: border-box;
  border-radius: 50%;
  background: var(--crema);
  transition: background-color .3s ease, filter .3s ease;
}
.contacto-redes ul li a:hover img {
  background: var(--primary);
  filter: brightness(0) invert(1);
}

@media only screen and (max-width: 1024px) {
  .contactoDatos .datoCard {
    width: 50% !important;
    flex: 0 0 50%;
  }
}
@media only screen and (max-width: 600px) {
  .contactoDatos.vc_section {
    padding-top: 40px !important;
  }
  .contactoDatos .datoCard {
    width: 100% !important;
    flex: 0 0 100%;
  }
  .contactoDatos .datoCard > .vc_column-inner > .wpb_wrapper {
    padding: 1.6rem 1.25rem 1.5rem;
  }
}
@media (hover: none) {
  .contacto-redes ul li a:hover img {
    background: var(--crema);
    filter: none;
  }
}

/*--- Requisitos  [v12] ---*/
/*
  Para el código nuevo de la página (requisitos-wpbakery.txt):
  · Sección intro      → clases "requisitos req-intro"
  · Sección personas   → clase "requisitos", fila "fila-personas",
                          columnas "reqCard"
*/

/* Intro: título, frase y beneficios centrados */
.req-intro {
  text-align: center;
}
.req-intro.vc_section {
  padding-bottom: 10px !important;
}
.requisitos h1 {
  font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.6rem);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  max-width: 820px;
  margin: 0 auto 1rem;
  text-wrap: balance;
}
.requisitos h1 .resaltado {
  color: var(--primary);
}
.req-intro .req-sub {
  font-size: clamp(1.05rem, .95rem + .4vw, 1.2rem);
  font-weight: 400;
  line-height: 1.6;
  color: var(--text);
  max-width: 640px;
  margin: 0 auto 2.5rem;
  text-wrap: balance;
}

/* Beneficios: 3 recuadros crema con un check rojo */
.requisitos .req-beneficios ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: left;
}
.requisitos .req-beneficios ul li {
  list-style: none;
  position: relative;
  margin: 0 !important;
  padding: 1.2rem 1.2rem 1.2rem 3.3rem;
  background: var(--crema);
  border-radius: var(--radius-lg);
  font-weight: 400;
  line-height: 1.5;
  color: var(--grey);
}
.requisitos .req-beneficios ul li::before {
  content: "";
  position: absolute;
  left: 1.1rem;
  top: 1.25rem;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 50%;
  background: var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.requisitos .req-beneficios li strong {
  color: var(--grey);
  font-weight: 700;
}

/* Tarjetas de persona natural / jurídica, lado a lado y de igual altura */
.requisitos .fila-personas {
  display: flex;
  flex-wrap: wrap;
}
.requisitos .fila-personas::before,
.requisitos .fila-personas::after {
  display: none;
}
.requisitos .reqCard {
  display: flex;
  float: none;
}
.requisitos .reqCard > .vc_column-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.requisitos .reqCard > .vc_column-inner > .wpb_wrapper {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border-radius: var(--radius-lg);
  border-top: 5px solid var(--primary);
  box-shadow: var(--sombra-suave);
  padding: 2.25rem 2.25rem 2rem;
  margin: 0 0 2rem;
}
.requisitos .reqCard + .reqCard > .vc_column-inner > .wpb_wrapper {
  border-top-color: var(--success);
}
.requisitos .reqCard .wpb_content_element {
  margin-bottom: 0 !important;
}

.requisitos .req-titulo {
  font-size: clamp(1.4rem, 1.2rem + .6vw, 1.7rem);
  font-weight: 800;
  line-height: 1.2;
  margin: 0;
}
.requisitos .req-quien {
  font-size: .95rem;
  color: var(--text);
  margin: .3rem 0 1.25rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--linea);
}
.requisitos .req-subtitulo {
  font-family: var(--texto-corrido);
  font-size: 1rem;
  font-weight: 600;
  color: var(--grey);
  margin: 0 0 .9rem;
}

/* Listas de documentos con punto rojo */
.requisitos .reqCard ul {
  margin: 0 !important;
  padding: 0 !important;
}
.requisitos .wpb_text_column ul li {
  list-style: none;
  position: relative;
  padding-left: 1.8rem;
  margin-bottom: .8rem;
  line-height: 1.55;
}
.requisitos .wpb_text_column ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .4em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 3px solid var(--primary);
  box-sizing: border-box;
}
.requisitos .reqCard li strong {
  color: var(--grey);
  font-weight: 700;
}

/* Nota destacada (representante legal) */
.requisitos .req-nota {
  margin: 1.1rem 0 0;
  padding: .85rem 1rem;
  background: var(--crema);
  border-left: 3px solid var(--primary);
  border-radius: var(--radius);
  font-size: .93rem;
  line-height: 1.5;
}

/* Botón siempre al pie de la tarjeta */
.requisitos .reqCard .req-boton {
  margin-top: auto !important;
  padding-top: 1.5rem;
}
.requisitos .reqCard .ctAccion {
  background-color: var(--primary) !important;
  color: var(--white) !important;
  margin: 0;
}
.requisitos .reqCard .ctAccion:hover {
  background-color: var(--success) !important;
}

/* Aviso final */
.requisitos .req-aviso p {
  text-align: center;
  font-size: .95rem;
  color: var(--text);
  margin: .5rem 0 0;
}
.requisitos .req-aviso a {
  display: inline;
  font-weight: 600;
  color: var(--primary);
  border-bottom: 1px solid currentColor;
}

/* Botón del bloque "15 años" */
.aniversary .ctAccion {
  background-color: var(--primary) !important;
  margin: 1rem 0 0;
}
.aniversary .ctAccion:hover {
  background-color: var(--success) !important;
}

/* Tablet y celular */
@media only screen and (max-width: 900px) {
  .requisitos .req-beneficios ul {
    grid-template-columns: 1fr;
    max-width: 520px;
  }
  .requisitos .reqCard {
    width: 100% !important;
    flex: 0 0 100%;
  }
  .requisitos .reqCard > .vc_column-inner > .wpb_wrapper {
    padding: 2rem 1.75rem 1.75rem;
    margin: 0 0 1.5rem;
  }
}
@media only screen and (max-width: 600px) {
  .requisitos .reqCard > .vc_column-inner > .wpb_wrapper {
    padding: 1.6rem 1.25rem 1.4rem;
  }
  .requisitos .reqCard .ctAccion,
  .aniversary .ctAccion {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  /* Bloque "15 años" centrado en celular */
  .aniversary .title h2,
  .aniversary .title p,
  .aniversary .text p {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Página 404 y resultados de búsqueda */
.error-404 .page-title,
.search .page-title {
  font-size: 2.4rem;
  margin: 140px 0 1rem;
  text-align: center;
}
.error-404 .page-content {
  text-align: center;
  margin-bottom: 4rem;
}

/*===================================================================*/
/*= 11. ELEMENTOS WPBAKERY SIN ESTILO                               =*/
/*===================================================================*/
.vc_btn3.vc_btn3-color-default,
.vc_btn3.vc_btn3-style-flat {
  background-color: var(--primary) !important;
  color: var(--white) !important;
  border-radius: 2px !important;
  font-family: var(--texto-corrido);
  font-weight: 600;
  box-shadow: var(--sombra);
}
.vc_btn3.vc_btn3-color-default:hover,
.vc_btn3.vc_btn3-style-flat:hover {
  background-color: var(--success) !important;
}

.vc_tta.vc_general .vc_tta-panel-title > a,
.vc_tta.vc_general .vc_tta-tab > a {
  font-family: var(--titulo);
  font-weight: 700;
  color: var(--grey) !important;
}
.vc_tta.vc_general .vc_tta-panel.vc_active .vc_tta-panel-title > a,
.vc_tta.vc_general .vc_tta-tab.vc_active > a {
  color: var(--primary) !important;
}
.vc_tta-color-grey.vc_tta-style-classic .vc_tta-panel.vc_active .vc_tta-panel-heading {
  border-left: 3px solid var(--primary) !important;
}

.vc_separator .vc_sep_line {
  border-color: var(--primary) !important;
}

/*===================================================================*/
/*= 12. BOTÓN FLOTANTE DE WHATSAPP  [v2]                            =*/
/*===================================================================*/
/* El botón flotante de WhatsApp se estiliza en estilos-whatsapp-blog.css */

/*===================================================================*/
/*= 13. RESPONSIVE  [v3 · versión corregida]                        =*/
/*===================================================================*/
/*
  Puntos de corte
  · ≤ 1200px  laptops pequeños
  · ≤ 1024px  tablet horizontal (antes no existía: el menú se apretaba)
  · ≤ 900px   tablet vertical + menú hamburguesa
  · ≤ 600px   celulares
  · ≤ 380px   celulares pequeños (iPhone SE, Android básicos)
  · Pantallas táctiles y celular acostado (horizontal)
*/

/*--- 13.0 Tamaños fluidos (todas las pantallas) ---*/
/* Antes los títulos saltaban de golpe en cada punto de corte
   (3.3rem → 2.4rem → 2rem). Con clamp() se ajustan de forma continua
   al ancho de la pantalla, con un mínimo y un máximo. */
h1 { font-size: clamp(2rem, 1.5rem + 1.6vw, 2.6rem); }
h2,
.title h2,
.subTitle h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2rem); }
.adminPh .title h2,
.aniversary .title h2 { font-size: clamp(1.7rem, 1.3rem + 1.3vw, 2.2rem); }
.bannerSlide h2 { font-size: clamp(2rem, 1.2rem + 3vw, 3.3rem); }
.bannerSlide p  { font-size: clamp(1rem, .9rem + .4vw, 1.2rem); }
.bannerHome h2  { font-size: clamp(2.1rem, 1rem + 4vw, 4rem); }
.bannerInterno.bannerHome h2 { font-size: clamp(1.9rem, 1rem + 3vw, 3rem); }
.bannerHome p   { font-size: clamp(1.05rem, .9rem + .7vw, 1.5rem); }
.aniversary .num h2 { font-size: clamp(3.6rem, 2rem + 6vw, 6.6rem); }

/* [v11] Slider: el texto se metía debajo de la asesora ("puedas ter…").
   Se limita el ancho del texto según la pantalla para que nunca llegue
   a la foto, y se asegura que quede por encima de ella. */
.bannerSlide h2 {
  font-size: clamp(2rem, 1.1rem + 2.6vw, 3rem);
  line-height: 1.08;
}
.bannerSlide h2,
.bannerSlide p,
.bannerSlide .sliderHome h2,
.bannerSlide .sliderHome p {
  max-width: min(520px, 40vw);
  position: relative;
  z-index: 5;
}
.bannerSlide p {
  margin-top: 1rem;
  font-weight: 400 !important;
  line-height: 1.5;
  color: var(--grey);
}
.bannerSlide .ctAccion {
  position: relative;
  z-index: 5;
  margin-top: 1.5rem;
}
@media only screen and (max-width: 900px) {
  .bannerSlide h2,
  .bannerSlide p,
  .bannerSlide .sliderHome h2,
  .bannerSlide .sliderHome p {
    max-width: 100%;
  }
}

/* En celular, 100vh incluye la barra del navegador y el banner quedaba
   cortado. "svh" usa la altura visible real. */
@supports (height: 100svh) {
  .bannerSlide .owl-item > .vc_row { height: 90svh; }
  .bannerHome                      { height: 85svh; }
  .bannerInterno.bannerHome        { height: 50svh; }
}

/*--- 13.1 Laptops pequeños (≤ 1200px) ---*/
@media only screen and (max-width: 1200px) {
  header#masthead .main-navigation {
    padding-left: 5%;
    padding-right: 5%;
  }
  header#masthead .logo {
    width: 240px;
  }
  header#masthead ul#primary-menu {
    gap: 1.8rem;
  }
  .entry-content,
  #colophon .footer-content,
  .copymk {
    padding-left: 4%;
    padding-right: 4%;
    box-sizing: border-box;
  }
  .bannerSlide .owl-item > .vc_row {
    padding: 0 8%;
  }
  .bannerSlide .asesorInmobiliario {
    right: 2%;
    width: 320px;
  }
}

/*--- 13.2 Tablet horizontal (≤ 1024px) ---*/
/* Entre 900 y 1024px el logo de 300px y seis ítems de menú no cabían
   en una línea y el menú se partía en dos. */
@media only screen and (max-width: 1024px) {
  header#masthead .main-navigation {
    padding-left: 4%;
    padding-right: 4%;
  }
  header#masthead .logo {
    width: 200px;
  }
  header#masthead ul#primary-menu {
    gap: 1.3rem;
  }
  header#masthead ul#primary-menu a {
    font-size: .92rem;
  }

  .bannerSlide .owl-item > .vc_row {
    padding: 0 6%;
  }
  .bannerSlide .sliderHome .owl-item > .vc_row::after {
    width: 80%;
  }
  .bannerSlide .asesorInmobiliario {
    width: 280px;
  }
  .bannerSlide .busqueda {
    transform: translateY(-60px);
  }

  .otroServs .servCol > .vc_column-inner > .wpb_wrapper {
    padding: 3rem 1.5rem 1.5rem;
  }

  #colophon .footer-area {
    padding: 0 1rem;
  }
}

/*--- 13.3 Tablet vertical + menú móvil (≤ 900px) ---*/
@media only screen and (max-width: 900px) {

  /* Header */
  header#masthead .main-navigation {
    flex-wrap: wrap;
    padding: 12px 5% 0 !important;
  }
  header#masthead .logo {
    width: 140px;
  }
  header#masthead.on {
    background-color: var(--primary);
    height: 100vh;
    height: 100dvh;
    overflow-y: auto;
    overscroll-behavior: contain;  /* la página de atrás no se mueve */
  }

  /* Menú desplegado */
  header#masthead ul#primary-menu {
    flex-direction: column;
    width: 100%;
    gap: 0;
    padding-top: 1rem;
  }
  header#masthead ul#primary-menu li {
    padding: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .25);
  }
  /* Zona de toque de al menos 48px de alto (antes solo el texto) */
  header#masthead ul#primary-menu a {
    font-size: 1.05rem;
    padding: 14px 0;
    min-height: 48px;
    box-sizing: border-box;
  }
  header#masthead ul#primary-menu a::after {
    background-color: var(--white);
    bottom: 8px;
  }
  header#masthead ul#primary-menu .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: transparent;
    box-shadow: none;
    padding: 0 0 .5rem 1rem;
    min-width: 0;
  }
  header#masthead ul#primary-menu .sub-menu li {
    border-bottom: 0;
  }
  header#masthead ul#primary-menu .sub-menu a {
    color: var(--white);
    padding: 10px 0;
    min-height: 44px;
  }
  header#masthead ul#primary-menu .sub-menu a:hover {
    background: transparent;
    color: var(--claro);
  }

  #site-navigation .menu-menu-top-container {
    position: relative;
    left: 0;
    right: 0;
    transform: translateX(-100%);
    transition: var(--transicion);
    width: 100%;
  }
  #site-navigation.toggled .menu-menu-top-container {
    transform: translateX(0%);
  }
  header#masthead .menu-menu-principal-container {
    position: absolute;
  }
  header#masthead .main-navigation.toggled .menu-menu-principal-container {
    position: relative;
    width: 100%;
  }
  header#masthead .topMenu ul {
    justify-content: center;
    align-items: center;
    width: 100%;
  }
  header#masthead .topMenu ul img {
    width: 15px;
    height: 15px;
  }

  /* Botón hamburguesa: área de toque más grande */
  .top-nav,
  #toggle {
    display: block;
  }
  .top-nav {
    padding: 18px 8px;
    margin-right: -8px;
    cursor: pointer;
  }
  #toggle,
  #toggle::after,
  #toggle::before {
    width: 30px;
    height: 4px;
    border-radius: 30px;
  }
  #toggle {
    position: relative;
    transform: translateY(-2px);
    background: var(--white);
    transition: all 0ms 300ms;
  }
  #toggle.animate {
    background: transparent;
  }
  #toggle::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 9px;
    background: var(--white);
    transition: bottom 300ms 300ms cubic-bezier(.23, 1, .32, 1),
                transform 300ms cubic-bezier(.23, 1, .32, 1);
  }
  #toggle::after {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    background: var(--white);
    transition: top 300ms 300ms cubic-bezier(.23, 1, .32, 1),
                transform 300ms cubic-bezier(.23, 1, .32, 1);
  }
  #toggle.animate::after {
    top: 0;
    transform: rotate(45deg);
    transition: top 300ms cubic-bezier(.23, 1, .32, 1),
                transform 300ms 300ms cubic-bezier(.23, 1, .32, 1);
  }
  #toggle.animate::before {
    bottom: 0;
    transform: rotate(-45deg);
    transition: bottom 300ms cubic-bezier(.23, 1, .32, 1),
                transform 300ms 300ms cubic-bezier(.23, 1, .32, 1);
  }

  /* Secciones */
  .vc_section {
    padding-top: 60px !important;
    padding-bottom: 40px !important;
  }

  /* Slider: el texto va arriba sobre la foto aclarada */
  .bannerSlide .owl-item > .vc_row {
    height: auto !important;
    min-height: 70vh;
    min-height: 70svh;
    padding: 110px 6% 70px;
    background-size: cover;
    background-position: center !important;
  }
  .bannerSlide .sliderHome .owl-item > .vc_row::after {
    width: 100%;
    background: linear-gradient(180deg,
                rgba(242, 240, 230, .95) 0%,
                rgba(242, 240, 230, .7) 100%);
  }
  .bannerSlide .asesorInmobiliario {
    display: none;
  }
  .bannerSlide .owl-dots {
    flex-direction: row;
    position: static;
    margin-top: 1rem;
  }

  /* Buscador: antes se movía con transform y tapaba el contenido de
     abajo. Con margen negativo el espacio se recalcula solo. */
  .bannerSlide .busqueda {
    transform: none;
    margin: -40px 4% 0 !important;
    padding: 1.2rem !important;
  }
  .form-search-wrap .row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -6px;
    margin-right: -6px;
  }
  .form-search-wrap .row > [class*="col-"] {
    width: 50% !important;
    max-width: 50%;
    flex: 0 0 50%;
    padding-left: 6px;
    padding-right: 6px;
    margin-bottom: 12px;
    box-sizing: border-box;
  }

  /* Banner home / internas */
  .bannerHome { height: 70vh; height: 70svh; }
  .bannerContact {
    height: auto;
    min-height: 60vh;
  }

  /* Listado de propiedades: 2 columnas */
  .ere-property.property-grid .property-item {
    width: 50% !important;
    max-width: 50%;
    flex: 0 0 50%;
    box-sizing: border-box;
  }
  .recentHome .property-image { height: 320px; }

  /* Otros servicios: 2 por fila en tablet */
  .otroServs .servCol {
    width: 50% !important;
    flex: 0 0 50%;
  }

  /* Blog: tarjetas a 2 columnas sin quedar pegadas */
  .articulosHome .vc_column_container {
    margin-bottom: 1.5rem;
  }

  /* Footer: marca arriba, enlaces y contacto lado a lado, form abajo */
  #colophon .footer-content {
    flex-direction: column;
    gap: 2rem;
  }
  #colophon .footer-content .foot1,
  #colophon .foot3 {
    flex-basis: auto;
    width: 100%;
  }
  #colophon .footer-content .foot2 {
    flex-direction: row;
    gap: 1.5rem;
  }
  .copymk {
    text-align: center;
    margin-top: 30px;
  }

  /* Tablas anchas: se desplazan de lado sin romper la página */
  .entry-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }
}

/*--- 13.4 Celulares (≤ 600px) ---*/
@media only screen and (max-width: 600px) {
  .entry-content {
    padding-left: 5%;
    padding-right: 5%;
  }
  .vc_section {
    padding-top: 48px !important;
    padding-bottom: 32px !important;
  }

  /* Slider */
  .bannerSlide .owl-item > .vc_row {
    min-height: 0;
    padding: 100px 5% 60px;
  }
  .bannerSlide .ctAccion {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  /* Buscador: un campo por fila, botón a lo ancho */
  .bannerSlide .busqueda {
    margin: -30px 0 0 !important;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    padding: 1rem !important;
  }
  .form-search-wrap .row > [class*="col-"] {
    width: 100% !important;
    max-width: 100%;
    flex: 0 0 100%;
  }
  .bannerSlide .busqueda button,
  .bannerSlide .busqueda .ere-advanced-search-btn,
  .form-search-wrap .ere-advanced-search-btn {
    width: 100%;
  }

  /* Banner internas */
  .bannerHome { height: 60vh; height: 60svh; min-height: 380px; }
  .bannerInterno.bannerHome { min-height: 260px; }

  /* Propiedades: 1 columna */
  .ere-property.property-grid .property-item {
    width: 100% !important;
    max-width: 100%;
    flex: 0 0 100%;
  }
  .ere-property.property-grid .property-item-content {
    padding: 1rem 1.1rem 1.2rem;
  }
  .single-property .property-info-header h1,
  .single-property .property-title {
    font-size: 1.6rem;
  }
  .recentHome .property-image { height: 260px; }
  .recentHome .ere-property .property-info { left: 14px; bottom: 14px; }
  .recentHome .property-heading { top: 20px; }

  /* Otros servicios: 1 por fila */
  .otroServs .servCol {
    width: 100% !important;
    flex: 0 0 100%;
  }
  .otroServs .servCol > .vc_column-inner > .wpb_wrapper {
    margin: 0 0 50px;
    padding: 3rem 1.5rem 1.5rem;
  }

  /* Formularios a una columna.
     font-size 16px evita que el iPhone haga zoom al tocar un campo. */
  .formContact {
    padding: 1.5rem;
    margin: 2rem 0;
    border-radius: var(--radius-lg);
  }
  .formContact > div {
    width: 100%;
  }
  .formContact input,
  .formContact textarea,
  .formContact select,
  #colophon input[type="email"],
  .form-search-wrap input,
  .form-search-wrap select {
    font-size: 16px !important;
  }
  .formContact input[type="submit"] {
    float: none;
    max-width: 100%;
  }
  .SusForm .mail,
  .SusForm .send {
    width: 100%;
  }

  /* Footer: todo apilado y centrado */
  #colophon {
    padding-top: 40px;
    text-align: center;
  }
  #colophon .footer-content .foot2 {
    flex-direction: column;
  }
  #colophon .footer-content .footer-area-one ul,
  #colophon .socialMedia {
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }
  #colophon .footer-content .footer-area-two:nth-child(1) ul li {
    align-items: center;
  }
  #colophon .footer-content .footer-area-two ul li {
    justify-content: center;
  }
  #colophon form p {
    justify-content: center;
  }
  #colophon form p span.wpcf7-form-control-wrap {
    width: 100%;
    margin-bottom: .5rem;
  }
  #colophon input[type="submit"] {
    width: 100%;
  }
  .copymk {
    margin-top: 20px;
    padding: 16px 5%;
    font-size: .85rem;
  }

  /* Botones */
  .ctAccion {
    max-width: 100%;
    white-space: normal;
  }

}

/*--- 13.5 Celulares pequeños (≤ 380px) ---*/
@media only screen and (max-width: 380px) {
  header#masthead .logo {
    width: 120px;
  }
  .bannerSlide .owl-item > .vc_row {
    padding: 90px 4% 50px;
  }
  .formContact {
    padding: 1.1rem;
  }
  .ctAccion {
    padding: 11px 18px;
  }
  .ere-property .property-action a {
    width: 30px;
    height: 30px;
  }
}

/*--- 13.6 Celular acostado (horizontal) ---*/
/* Con poca altura, el banner de 70–90% de alto dejaba el texto cortado
   y el menú abierto no se podía recorrer. */
@media only screen and (max-height: 500px) and (orientation: landscape) {
  .bannerSlide .owl-item > .vc_row,
  .bannerHome,
  .bannerInterno.bannerHome {
    height: auto !important;
    min-height: 0 !important;
    padding-top: 90px;
    padding-bottom: 40px;
  }
  header#masthead.on {
    overflow-y: auto;
  }
}

/*--- 13.7 Pantallas táctiles ---*/
/* En celular el efecto "hover" se queda pegado después de tocar:
   tarjetas levantadas o fotos ampliadas. Se desactiva donde no hay mouse. */
@media (hover: none) {
  .ctAccion:hover,
  .articulosHome article:hover,
  .articulosHome .post:hover,
  .ere-property.property-grid .property-inner:hover,
  .ere-property.property-list .property-inner:hover {
    transform: none;
  }
  .ere-property.property-grid .property-inner:hover .property-image img,
  .recentHome .owl-carousel .owl-item .property-inner:hover img {
    transform: none;
  }
}

/*===================================================================*/
/*= 14. ACCESIBILIDAD Y MOVIMIENTO REDUCIDO                         =*/
/*===================================================================*/
*:focus:not(:focus-visible) {
  outline: none;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.ctAccion:focus-visible {
  outline: 2px solid var(--primary) !important;
  outline-offset: 3px;
}
header#masthead.fade-in a:focus-visible,
#colophon a:focus-visible {
  outline-color: var(--white) !important;
}

@media (prefers-reduced-motion: reduce) {
  html,
  body {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}