/*
Theme Name: Houzez Child
Theme URI: http://www.favethemes.com/
Author: Favethemes
Author URI: http://www.favethemes.com/
Description: Houzez is a premium WordPress theme for real estate agents where modern aesthetics are combined with tasteful simplicity, and where the ease of use is achieved without compromise in your ability to customise the design. Whether you are a real estate agent looking to build a website for your company or a web developer seeking a perfect WordPress theme for your next project, you are certain to appreciate the numerous features and benefits that our theme provides.
Version: 1.0
Tags: white, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, post-formats, theme-options, translation-ready
License: GNU General Public License version 3.0
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: houzez
Template: houzez
*/

@import url("../houzez/style.css");
@import url("https://fonts.googleapis.com/css2?family=GFS Didot&display=swap"); /* fuente añadida para respetar estilo de plantilla */

/* CORRECIONES GLOBALES
================================================= */

/* Nueva fuente corporativa 
-------------------------------------------------------------------------- */

:root {
  /* --primary-font: "", "", "", Georgia, serif !important; */
  --primary-font: Cardo, Georgia, serif !important;
}

/* Aplicar a todos los headings */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Cardo !important;
}

/* Aplicar a todos los headings excepto h2 */
h1,
h4,
h5,
h6 {
  color: #222 !important;
}

.elementor-widget-container .houzez_section_title_wrap .houzez_section_title {
  margin-bottom: 0 !important;
}

/* EXCEPTO el primer h2 de la página... */
body > *:first-child h2:first-of-type {
  color: #222 !important; /* o el color que quieras para el primero */
}

/* ...o a toda la web */
body {
  font-family: Montserrat !important;
  color: #222 !important;
}

/* Arreglo Logo y texto inicial en Home */
.houzez_section_title {
  margin: 0 !important;
  margin-top: 1.8rem !important;
  padding-bottom: 1.2rem;
  color: #fff !important; /* Por defecto todos en blanco */
}

@media (min-width: 768px) {
  .arregloSub {
    padding: 50px 0 -30px 0 !important;
  }
}

/* Solo el primero de la sección superior en azul */
.elementor-element-6449d78b .houzez_section_title:first-of-type {
  color: #222 !important;
}

.houzez_section_subtitle,
.elementor-widget-container,
.elementor-form input {
  font-family: Cardo !important;
}

/* Arreglo texto en ficha de inmueble */
.titulo-principal {
  color: #000 !important;
}

.houzez_section_subtitle_bub {
  color: #222 !important;
}

.knock-servicios-slider-wrapper h2 {
  color: #222 !important;
}

.knock-servicios-slider-wrapper ul li {
  color: #222 !important;
  font-size: 20px;
}

/* Parrafos de QUIENES SOMOS */
.tamText {
  color: #222 !important;
  font-size: clamp(16px, 1.2vw, 18px) !important;
}

/* Separador en HOME oculto (genera muchos margenes innecesarios) */
.elementor-spacer-inner {
  display: none;
}

/* Arreglo para KNOCK GROUP QUIENES SOMOS en Inicio  < 992px */
@media (max-width: 992px) {
  section[data-id="735bcb17"] .elementor-widget-text-editor {
    columns: 1 !important;
    text-align: center !important;
    padding: 0 15px;
    color: #222 !important;
    font-size: clamp(18px, 1.2vw, 18px) !important;
  }
}

/* Arreglo para KNOCK GROUP QUIENES SOMOS en Inicio > 992px */
section[data-id="735bcb17"] .elementor-widget-text-editor {
  /*
  columns: 1 !important;
  text-align:center !important;
  */
  color: #222 !important;
  font-size: clamp(18px, 1.2vw, 18px) !important;
}

/* ARREGLOS EN ORDEN DE VISUALIZACION DE MISION, VISION Y VALORES
   Usando solo clases personalizadas (no IDs de Elementor) */

/* Desktop - 3 columnas: imágenes arriba, textos abajo */
@media (min-width: 1025px) {
  /* Seleccionar el grid que contenga estos elementos */
  .e-grid:has(.mision-img):has(.vision-img):has(.valores-img) {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
  }

  /* Fila 1 - Imágenes */
  .mision-img {
    order: 1 !important;
  }
  .vision-img {
    order: 2 !important;
  }
  .valores-img {
    order: 3 !important;
  }

  /* Fila 2 - Textos */
  .mision-txt {
    order: 4 !important;
  }
  .vision-txt {
    order: 5 !important;
  }
  .valores-txt {
    order: 6 !important;
  }
}

/* Tablet - 2 columnas opcional */
@media (min-width: 768px) and (max-width: 1024px) {
  .e-grid:has(.mision-img):has(.vision-img):has(.valores-img) {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* Móvil - 1 columna intercalada: img-txt, img-txt, img-txt */
@media (max-width: 767px) {
  .e-grid:has(.mision-img):has(.vision-img):has(.valores-img) {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .mision-img {
    order: 1 !important;
  }
  .mision-txt {
    order: 2 !important;
  }
  .vision-img {
    order: 3 !important;
  }
  .vision-txt {
    order: 4 !important;
  }
  .valores-img {
    order: 5 !important;
  }
  .valores-txt {
    order: 6 !important;
  }
}

/* Menu Desktop 100% ancho y fijo siempre arriba
-------------------------------------------------------------------- */
#header-section {
  width: 100%;
  background-color: #fff;
}

#header-section ul li a {
  color: #222;
}

/* Página Home (ID 16519) */
body.page-id-16519 #header-section {
  position: fixed !important;
  background-color: transparent !important;
  transition:
    background-color 0.3s ease,
    box-shadow 0.3s ease;
}

/* Cuando se hace scroll en la Home */
body.page-id-16519 #header-section.scrolled {
  background-color: #fff !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* Arreglos */ /*
@media (min-width: 992px) {
  .elementor-widget-container {
    margin-top: 5rem;
  }
}
*/

@media (min-width: 768px) and (max-width: 992px) {
  .search-icon {
    display: none;
  }
  .elementor-element {
    margin: -10px;
  }
}
/* Menu mv 100% ancho y fijo siempre arriba
-------------------------------------------------------------------- */

/* Header móvil siempre fijo */
@media (max-width: 767px) {
  #header-mobile {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
  }

  /* NO añadir padding al body, sino al contenido principal */
  .content-wrap,
  #main-content,
  .page-content,
  .site-content {
    padding-top: 10px !important; /* Ajusta según altura de tu header */
  }

  /* O específicamente para las secciones de Elementor */
  .elementor-section:first-child {
    /*  padding-top: 120px !important; */
  }

  /* Arreglo de color de borde en menu mv */
  .nav-mobile .main-nav .nav-item a {
    border-bottom: 1px solid #e8e8e8 !important;
  }
}

/* Eliminar scroll horizontal SOLO en página de Servicios (ID 16519) 
-------------------------------------------------------------------- */

body.page-id-16519 {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  position: relative !important;
}

html:has(body.page-id-16519) {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  position: relative !important;
}

/* CSS para Home (Nuestros Servicios, Destacados, Reseñas y Equipo)
======================================================================== */

/* Nuestros Servicios en HOME
-------------------------------------------------------------------- */

@media (max-width: 767px) {
  .houzez_section_title {
    /* margin: -80px -180px -180px -180px;*/
  }
  /* El segundo widget tiene clase houzez_section_subtitle, el primero NO */
  .home
    .elementor-top-section:first-child
    .elementor-widget:nth-child(2)
    h2.houzez_section_title {
    font-size: 28px !important;
    margin-bottom: 10px !important;
  }
  .arregloSub {
    font-weight: 550;
    font-size: 18px !important;
    padding: 0px 100px 50px 100px;
  }
}

@media (max-width: 1500px) {
  /* Arreglo Logotipo */
  #mortgage-calculator-chart,
  .header-mobile .logo img {
    width: auto;
    height: 50px;
  }
}

/* EQUIPO EN HOME 
================================================= */

/* Estilos adicionales para el botón de ver ficha */
.btn-ver-ficha {
  display: inline-block;
  background: #222;
  color: white !important;
  padding: 8px 20px;
  border-radius: 55px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.85rem;
  transition: all 0.3s ease;
  margin-top: 10px;
}

.btn-ver-ficha:hover {
  background: #976d11;
  color: white !important;
  text-decoration: none;
}

.team-description a[href^="mailto:"],
.team-description a[href^="tel:"] {
  color: #222;
  text-decoration: none;
}

.team-description a[href^="mailto:"]:hover,
.team-description a[href^="tel:"]:hover {
  text-decoration: underline;
}

.team-description p {
  margin-bottom: 10px;
  font-size: 0.9rem;
}

.team-module {
  position: relative;
  width: 100%;
  height: 100%;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 12px;
  overflow: hidden;
  text-align: center;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 360px; /* altura mínima uniforme */
}

.team-module img {
  width: 100%;
  height: 390px; /* tamaño más grande */
  object-fit: cover; /* evita deformaciones */
  border-bottom: 1px solid #eee;
  transition:
    filter 0.4s ease,
    transform 0.4s ease;
}

/* Al pasar el ratón, la imagen recupera el color y se amplía ligeramente */
.team-module:hover img {
  filter: grayscale(0%);
  transform: scale(1.05);
}

.team-content-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 16px;
}

/* Nombre y cargo más visibles */
.team-name strong {
  font-size: 1.2rem;
  display: block;
  margin-bottom: 4px;
}

.team-title {
  font-size: 1rem;
}

/* Hover sutil */
.team-module:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
}

/* Igualar altura de todas las columnas */
.elementor-container.elementor-column-gap-default {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}

.elementor-inner-column {
  display: flex;
  flex-direction: column;
}

.elementor-widget-wrap {
  display: flex;
  flex: 1;
}

.houzez_section_title {
  text-align: center;
  font-family: "Cardo", Sans-serif;
  font-size: 35px;
  font-weight: 400;
  letter-spacing: -1px;
  margin-bottom: 10px;
}

.houzez_section_subtitle {
  text-align: center;
  font-size: 1.14rem !important;
}

/* letra h2 para tres primeras tarjetas con animacion */
.flip-card-front h2 {
  font-size: clamp(24px, 5vw, 48px) !important;
}

.slick-list {
  margin-bottom: 2.2rem !important;
}

/* RESEÑAS DE GOOGLE EN HOME 
=================================================*/

/* Contenedor principal con el mismo estilo que propiedades */
.reviews-carousel-module {
  margin-bottom: 50px;
}

.reviews-header-section {
  text-align: center;
  margin-bottom: 40px;
}

.reviews-main-title {
  font-family: "Cardo", Sans-serif;
  font-size: 35px;
  font-weight: 400;
  letter-spacing: -1px;
  margin-bottom: 10px;
}

.houzez_section_subtitle_bub {
  color: #666;
  font-size: 1.14rem;
}

/* Card de rating de Google - SIN SOMBRA */
.google-rating-summary {
  background: transparent;
  border-radius: 0;
  padding: 25px;
  box-shadow: none;
  max-width: 350px;
  margin: 0 auto 40px;
  border: none;
}

.rating-badge-excellent {
  font-size: 1.3rem;
  font-weight: 700;
  color: #ea4335;
  margin-bottom: 12px;
  display: block;
}

.rating-stars-large {
  margin: 12px 0;
}

.rating-stars-large .star {
  font-size: 24px;
  color: #fbbc04;
  margin: 0 1px;
}

.rating-stars-large .star:before {
  content: "★";
}

.reviews-total-count {
  color: #666;
  font-size: 0.95rem;
  margin: 12px 0;
}

.reviews-total-count strong {
  color: #333;
  font-weight: 600;
}

.google-logo-wrap {
  margin-top: 15px;
}

.google-logo-img {
  max-width: 100px;
  height: auto;
}
/* Contenedor del carrusel con el mismo estilo que propiedades */
.reviews-listing-view {
  position: relative;
}

/* Cards de reseñas con ALTURA FIJA */
.review-item-wrap {
  padding: 0 10px;
}

.review-card-inner {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  height: 280px;
  /* ALTURA FIJA */
  display: flex;
  flex-direction: column;
  border: 1px solid #f0f0f0;
}

.review-card-inner:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  transform: translateY(-3px);
}

.review-card-header {
  padding: 20px 20px 15px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #f5f5f5;
  flex-shrink: 0;
  /* No se comprime */
}

.reviewer-photo {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  object-fit: cover;
  margin-right: 12px;
  border: 2px solid #f0f0f0;
  flex-shrink: 0;
  margin: 1rem !important;
}

.reviewer-details {
  flex: 1;
  min-width: 0;
}

.reviewer-name-text {
  font-size: 1rem;
  font-weight: 600;
  color: #2c2c2c;
  margin: 0 0 3px 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.review-date-text {
  font-size: 0.85rem;
  color: #999;
  margin: 0;
}

.review-card-body {
  padding: 15px 20px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  /* Importante para que funcione el overflow */
}

.review-rating-stars {
  margin-bottom: 12px;
  flex-shrink: 0;
  /* No se comprime */
}

.review-rating-stars .star {
  font-size: 16px;
  color: #fbbc04;
  margin: 0 1px;
}

.review-rating-stars .star:before {
  content: "★";
}

.review-text-content {
  color: #666;
  line-height: 1.6;
  font-size: 0.9rem;
  flex: 1;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  /* Máximo 4 líneas */
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}

.review-text-content p {
  margin: 0;
}

/* Botón de ver más reseñas - MÁS SEPARADO */
.reviews-cta-section {
  text-align: center;
  margin-top: 60px;
  /* Aumentado de 40px a 60px */
}

.btn-view-all-reviews {
  display: inline-block;
  background-color: transparent !important;
  background-image: linear-gradient(
    180deg,
    #e6764e 0%,
    #e6764e 100%
  ) !important;
  color: #ffffff !important;
  padding: 12px 35px;
  border-radius: 55px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(66, 133, 244, 0.3);
}

.btn-view-all-reviews:hover {
  background-color: transparent !important;
  background-image: linear-gradient(180deg, #e6764e 0%, #cc572d 86%) !important;
  color: #ffffff !important;
}

/* Tarjeta de mapa
------------------------------- */

.mappop.info_details .infobox_wrapper_image {
  width: 100%;
  min-height: 100%;
  object-fit: cover;
  flex-shrink: 0;
}

.mappop.info_details .textwrap {
  padding: 5px 5px;
  justify-content: space-between;
}

.mappop.info_details #infobox_title {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.3;
  margin-bottom: 10px;
  padding-right: 20px;
}

.mappop.info_details .cont_abajo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.mappop.info_details .prop_pricex p {
  font-size: 18px;
  font-weight: 300;
  color: #1a1a1a;
  margin: 0;
}

/* Botón Ver detalles */
.mappop.info_details .infobox_details a {
  display: inline-block;
  background-color: transparent;
  background-image: linear-gradient(180deg, #e6764e 0%, #e6764e 100%);
  color: #ffffff !important;
  text-decoration: none;
  border: none;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 55px;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.mappop.info_details .infobox_details a:hover,
.mappop.info_details .infobox_details a:focus {
  background-color: transparent;
  background-image: linear-gradient(180deg, #e6764e 0%, #cc572d 86%);
  color: #ffffff !important;
}

/* Botones Footer 
------------------------*/
div#block-10,
.widget-read-more {
  padding: 10px 20px;
  width: 90% !important;
  /*display: inline-block;*/
  background-color: transparent !important;
  background-image: linear-gradient(
    180deg,
    #e6764e 0%,
    #e6764e 100%
  ) !important;
  color: #ffffff !important;
  border-radius: 55px !important;
  font-weight: 400;
  font-size: 0.95rem;
  text-align: center;
}

div#block-10:hover,
.widget-read-more:hover {
  background-color: transparent !important;
  background-image: linear-gradient(180deg, #e6764e 0%, #cc572d 86%) !important;
  color: #ffffff !important;
}

div#block-10 a,
.widget-read-more a {
  color: #fff !important;
}

/* Slick personalization */
.reviews-listing-view .slick-prev,
.reviews-listing-view .slick-next {
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.95) !important;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  z-index: 10;
}

.reviews-listing-view .slick-prev:hover,
.reviews-listing-view .slick-next:hover {
  background: #fff !important;
}

.reviews-listing-view .slick-prev:before,
.reviews-listing-view .slick-next:before {
  color: #333 !important;
  font-size: 20px;
  opacity: 1;
}

.reviews-listing-view .slick-prev {
  left: -20px;
}

.reviews-listing-view .slick-next {
  right: -20px;
}

.reviews-listing-view .slick-dots {
  bottom: -40px;
}

.reviews-listing-view .slick-dots li button:before {
  font-size: 10px;
  color: #333;
  opacity: 0.3;
}

.reviews-listing-view .slick-dots li.slick-active button:before {
  color: #333;
  opacity: 1;
}

/* Responsive */
@media (max-width: 1200px) {
  .reviews-listing-view .slick-prev {
    left: -15px;
  }

  .reviews-listing-view .slick-next {
    right: -15px;
  }
}

@media (max-width: 768px) {
  .reviews-main-title {
    font-size: 1.6rem;
  }

  .review-card-inner {
    height: 260px;
    /* Altura ajustada para móviles */
  }

  .reviews-listing-view .slick-prev,
  .reviews-listing-view .slick-next {
    width: 35px;
    height: 35px;
  }

  .reviews-listing-view .slick-prev {
    left: -10px;
  }

  .reviews-listing-view .slick-next {
    right: -10px;
  }

  .review-card-inner {
    margin: 0 5px;
  }

  .reviewer-photo {
    width: 45px;
    height: 45px;
  }

  .reviews-cta-section {
    margin-top: 50px;
  }
}

@media (max-width: 480px) {
  .reviews-listing-view .slick-prev {
    left: 5px;
  }

  .reviews-listing-view .slick-next {
    right: 5px;
  }
}

/* Propiedades den Home */
.houzez-properties-carousel-js .item-listing-wrap img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}
.houzez-properties-carousel-js .slick-slide {
  height: auto !important;
}

/* -----------------------------------------------------
   CSS para Propiedades (Mapa, Buscador y Listado)
--------------------------------------------------------- */
/* -----------------------------------------------------
   CSS para Propiedades (Mapa, Buscador y Listado)
--------------------------------------------------------- */

/* Barra buscador que trae la plantilla por defecto 
------------------------------------------------------- */

#desktop-header-search {
  display: none !important;
}

/* CSS para Div que contiene los dos elementos ( Mapa & Buscador + Inmuebles )
------------------------------------------------------------------------------ */

.e-con-inner {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin-top: -10px !important;
  margin-bottom: -10px !important;
}

/* CSS para Propiedades 
------------------------------------------------------------ */

.enlace_inmueble {
  cursor: pointer;
}

.card_inmueble {
  display: block;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  margin-bottom: 2vh;
  margin-top: 2vh;
  margin-right: 1%;
  margin-left: 1%;
  padding-left: 0px;
  padding-right: 0px;
  min-height: 550px; /* CORREGIDO: Aumentado de 490px a 550px para mostrar el precio completo */
  background-color: #00000008;
}

.wpb_wrapper.thegem-custom-65bb861cc30b85803 {
  background-color: #fff0 !important;
}

.card_inmueble {
  position: relative;
  overflow: hidden;
}

.card_inmueble .bg-image {
  transition: transform 0.3s ease-in-out;
  overflow: hidden;
}

.card_inmueble:hover .bg-image {
  transform: scale(1.05);
}

.thegem-custom-65bb861cbde922692 {
  margin: 0px !important;
}

.thegem-custom-inner-65bb861cc30bb {
  padding: 0px !important;
}

.thegem-custom-65bb861cc30b85803 {
  padding-top: 15px !important;
  margin: 0 !important;
}

/* Resto de estilos para el contenido de la tarjeta */

.card_inmueble .bg-image {
  width: 100%;
  height: 25vh;
  background-size: cover;
}

#columnaMapa {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 50%;
  height: 80vh;
  top: 130px;
  background-color: #fff;
}

#columnaInmuebles {
  position: fixed;
  right: 0px;
  bottom: 0px;
  width: 50%;
  top: 130px;
  overflow: hidden scroll;
  background: rgb(247, 247, 247);
  padding: 0px;
  z-index: 0;
  padding-top: 20px;
}

#columnaMapa .vc_column-inner {
  padding-right: 0px;
  padding-left: 0px;
}

.paginacion {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 22px;
  margin-top: 3%;
  background: white;
  margin-bottom: 5%;
  border-radius: 0px;
}

.Bfl {
  margin: 0 3%;
  font-weight: bold;
  color: black;
}

#A1022 {
  flex-wrap: wrap;
  align-items: stretch;
  margin-bottom: 100px; /* AÑADIDO: Espacio para el footer */
}

#resultsyorden h1,
#resultsyorden1 h3 {
  display: flex;
  justify-content: space-between;
  padding: 0px;
  align-items: center;
  font-size: 30px !important;
  font-weight: 700;
  font-family: "thegem-icons";
}

#resultsyorden1 h3 {
  font-size: 20px !important;
}

#resultsyorden1 {
  display: flex;
  justify-content: space-between;
  padding: 0 15px;
  align-items: center;
}

#ordenacion {
  display: block;
  height: 40px;
  color: black;
  vertical-align: middle;
  background-color: #ffffff;
  background-image: none;
  border: 1px solid #eee;
  border-radius: 3px;
  -webkit-box-shadow: none;
  box-shadow: none;
  -webkit-transition:
    border-color ease-in-out 0.15s,
    box-shadow ease-in-out 0.15s;
  transition:
    border-color ease-in-out 0.15s,
    box-shadow ease-in-out 0.15s;
  margin-bottom: 15px;
}

.hidden {
  display: none;
}

.grupbuttons input[type="submit"],
.grupbuttons button {
  margin-top: 0px;
  margin-left: 0px;
  width: 100%;
}

#listing_ajax_container {
  margin-top: 0; /* CORREGIDO: Reducido de 30px a 0 para eliminar espacio superior */
}

.adv1-holder .flagicon {
  margin-bottom: 30px;
}

#resultsyorden h1 {
  margin-left: 10px;
}

#advanced_submit_2 {
  color: white;
}

#extraOC {
  padding: 1px 5px;
  display: block;
  height: 40px;
  min-height: 61px;
  bottom: 18px;
  width: 95%;
  left: 5px;
  background: white;
  border: 1px solid #eee;
  margin-top: 20px;
  margin-left: 20px;
}

#extraOC > div label {
  font-size: 15px;
  margin-bottom: 0;
  font-weight: 600;
}

#extraOC input[type="checkbox"] {
  position: relative;
  outline: 0px !important;
  -moz-appearance: none;
  height: 15px;
  width: 15px;
  margin-bottom: 0px;
  margin-right: 5px;
  vertical-align: middle;
  border: 1px solid #dde4e9;
  background-color: #fff;
  color: #565a5c;
  box-sizing: border-box;
  padding: 0;
  margin-top: 0px;
  border: 1px solid #222;
  margin-left: 5px;
}

#extraOC > div {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 60px;
}

select#EstadoCons {
  background: white;
  border: 1px solid #eee;
  padding: 8px;
}

.pin_mapa svg {
  width: 20px;
  margin-right: 5px;
  margin-left: 5px;
  margin-bottom: 10px;
}

.pin_mapa {
  font-size: 13px;
  color: #000;
  font-weight: 500;
  text-transform: uppercase;
  border-bottom: 1px solid #ffcb26;
  padding-bottom: 2px;
  border-top: 1px solid #ffcb26;
  padding-top: 2px;
  line-height: 1.3em;
}

/* CSS para Mapa (50% izquierda y primer elemento en mv )
------------------------------------------------------------  */

/* Mapa fijo a la izquierda */
#leafletMap {
  position: fixed;
  top: 0; /* o 80px si tienes header fijo */
  left: 0;
  width: 50%;
  height: 100vh; /* o calc(100vh - 80px) si tienes header */
  box-sizing: border-box;
  z-index: 1;
  /* border: 1px solid red; */ /* Descomentar solo para debug */

  /* ✅ Optimización de renderizado */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  will-change: transform;
}

/* Suaviza carga de tiles */
.leaflet-tile-container {
  transition: opacity 0.3s ease-in-out;
}

.leaflet-tile {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  transition: opacity 0.2s;
}

/* Mejora rendimiento durante animaciones */
.leaflet-marker-icon,
.leaflet-marker-shadow {
  will-change: transform;
  transition: opacity 0.2s;
}

/* Suaviza animaciones del zoom */
.leaflet-zoom-animated {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Optimización GPU */
.leaflet-pane {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* css mapa end */

/* Contenedor principal de la página (flex) */
.flex-page-container {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh; /* CORREGIDO: Cambiado de height a min-height para permitir contenido más largo */
}

/* Contenedor del listado */
.listado-container {
  width: 100%;
  height: 100vh;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 10px;
}

/* CORREGIDO: Asegurar que el header esté siempre visible */
.site-header,
#site-header,
header,
.header-wrapper,
nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  background: white;
}

/* Pantallas mayores a 767px (escritorio) */
@media (min-width: 768px) {
  .listado-container {
    width: 100%;
  }
}

/* Pantallas menores a 767px (móvil) */
@media (max-width: 767px) {
  #leafletMap,
  .listado-container {
    width: 100%;
    height: auto;
  }
}

/* Contenedor principal de la página */
.flex-page-container {
  display: flex;
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh; /* CORREGIDO */
}

/* Listado desplazable derecha */
.listado-container {
  position: fixed;
  /* top: 80px; */ /* CORREGIDO: Añadido espacio para el header */
  right: 0;
  width: 50%;
  height: calc(100vh - 80px); /* CORREGIDO: Restar altura del header */
  overflow-y: auto;
  box-sizing: border-box;
  background: #f7f7f7;
  padding: 0; /* CORREGIDO: Eliminado padding superior que causaba el espacio */
  padding-left: 20px;
  padding-right: 20px;
  padding-bottom: 20px;
  z-index: 0;
}

/* Contenedor de las tarjetas */
#A1022 {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
  /*padding-bottom: 100px; */ /* AÑADIDO: Espacio para el footer */
}

/* Pantallas mayores a 767px (escritorio) - 2 columnas */
@media (min-width: 768px) {
  .card_inmueble {
    flex: 0 0 calc(48% - 10px);
    max-width: calc(48% - 10px);
  }

  /* Arreglo tarjetas descripcion */
  .wpb_row,
  .wpb_content_element,
  ul.wpb_thumbnails-fluid > li,
  .last_toggle_el_margin,
  .wpb_button {
    margin: 0.5vw;
  }

  /* Centrar iconos y Descripcion | Añadir font-family  */
  .wpb_text_column {
    align-content: center !important;
    text-align: center !important;
    font-family: "Cardo", sans-serif;
  }

  /* Iconos */
  .card_inmueble .wpb_text_column:nth-child(1) .wpb_wrapper p span.light {
    float: none !important;
    display: inline-block;
    margin-left: 0 !important;
    font-size: clamp(12px, 0.9vw, 16px) !important; /* Mín 12px, máx 16px */
    font-weight: 600;
    letter-spacing: 1px;
    margin-bottom: 10px;
    line-height: 1.8;
    border: 0px solid red;
  }

  /* Texto */
  .card_inmueble .wpb_text_column:nth-child(2) .wpb_wrapper .light {
    float: none !important;
    font-size: clamp(12px, 0.9vw, 16px) !important; /* Mín 12px, máx 16px */
    font-weight: 500;
    letter-spacing: 1px;
    text-align: center !important;
    line-height: 1.4 !important; /* CORREGIDO: Aumentado de 1 a 1.4 para mejor legibilidad */
    padding: 5px 10px;
  }

  /* Precio */
  .card_inmueble .wpb_text_column:last-child .wpb_wrapper p span.light {
    font-size: clamp(12px, 0.9vw, 16px) !important; /* Mín 12px, máx 16px */
    font-weight: 450;
    letter-spacing: 1px;
    margin-bottom: 10px;
    line-height: 1.8;
    border: 0px solid #222;
    text-transform: uppercase;
  }

  /* Arreglo para pin mapa y precio en dispositivos medianos */
  .mapa-precio-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .mapa-precio-row p {
    margin: 0 !important;
    display: flex;
    align-items: center;
  }

  .mapa-precio-row .pin_mapa {
    float: none !important;
  }

  .mapa-precio-row span {
    display: flex;
    align-items: center;
  }
}

/* Pantallas menores a 767px (móvil) */
@media (max-width: 767px) {
  #leafletMap {
    position: relative;
    top: 0; /* CORREGIDO */
    width: 100%;
    height: 30% !important;
  }

  .listado-container {
    position: relative;
    top: 0; /* CORREGIDO */
    width: 100%;
    height: auto;
  }

  /* Arreglo tarjetas descripcion */
  .wpb_row,
  .wpb_content_element,
  ul.wpb_thumbnails-fluid > li,
  .last_toggle_el_margin,
  .wpb_button {
    margin: 0.5vw;
  }

  /* Centrar toda la tarjeta  | Centrar iconos y Descripcion | Añadir font-family  */
  .wpb_text_column {
    align-content: center !important;
    text-align: center !important;
    font-family: "Cardo", sans-serif;
  }

  /* Centrar toda la tarjeta */
  .card_inmueble .wpb_text_column .wpb_wrapper p span.light {
    float: none !important;
    line-height: 1 !important;
  }

  .pin_mapa {
    font-weight: 500;
    text-transform: uppercase !important;
    justify-content: left !important;
    border: 0px solid red !important;
    margin-left: -22px;
  }

  /* Precio */
  .card_inmueble .wpb_text_column .wpb_wrapper p span.light {
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-top: -10px;
  }
}

/***/

/* CSS Buscador - Posicionado arriba del listado, con scroll */
#bloque_buscador {
  width: 100%;
  background: white;
  padding: 20px;
  margin-bottom: 20px;
  margin-top: 20px; /* AÑADIDO: Espacio superior para separar del borde */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  position: relative;
  display: block;
  border: 1px solid #ddd;
}

.search_wrapper {
  width: 100%;
}

.adv-search-1 {
  width: 100%;
}

#adv-search-header-1 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 20px;
  text-align: center;
  font-family: "Cardo", sans-serif;
}

.adv1-holder {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  justify-content: center;
}

/* Arreglo buscador */
/* @media (min-width: 576px) and (max-width: 767px) { */

#extra {
  margin: 0 !important;
}

/* Reset padding/margin de las columnas */
#bloque_buscador .adv1-holder > div[class*="col-"] {
  margin: 0;
  padding: 5px; /* o el valor que quieras uniforme */
  float: left; /* asegurar alineación */
  box-sizing: border-box;
}

/* Hacer que todos los selects e inputs tengan la misma altura y margen */
#bloque_buscador select,
#bloque_buscador input[type="text"],
#bloque_buscador input[type="number"] {
  margin: 0;
  padding: 8px 10px;
  width: 100%;
  box-sizing: border-box;
}

/* Botones */
#bloque_buscador .grupbuttons input,
#bloque_buscador .grupbuttons button {
  margin: 10px 0 0 0;
  width: 100%;
}

/* Ajuste extra para elementos inline-block conflictivos */
#bloque_buscador .selabajo,
#bloque_buscador .metrosparcela,
#bloque_buscador .radiostipo,
#bloque_buscador .bis {
  display: block;
  float: none;
  width: 100%;
  margin: 5px 0;
}

/*}*/

.adv1-holder > div {
  flex: 0 0 calc(33.333% - 10px);
  min-width: 200px;
}

.adv-search-1 .form-control {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  border: 1px solid #ddd !important;
  border-radius: 4px;
  transition: border-color 0.3s ease;
}

.adv-search-1 .form-control:focus {
  border-color: #4285f4; /* CORREGIDO: Cambiado de red a azul para mejor UX */
  outline: none;
  box-shadow: 0 0 0 3px rgba(66, 133, 244, 0.1);
}

/* Botón de búsqueda */
.grupbuttons {
  flex: 0 0 100% !important;
  margin-top: 10px;
}

/* Aproximo el boton de + opciones al de busqueda */
.grupbuttons:last-child {
  margin-top: -25px;
}

#advanced_submit_2 {
  width: 100%;
  background-image: linear-gradient(
    180deg,
    #e6764e 0%,
    #e6764e 100%
  ) !important;
  color: #ffffff !important;
  padding: 12px 20px;
  border: none;
  border-radius: 55px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease;
}

#advanced_submit_2:hover {
  background-color: transparent !important;
  background-image: linear-gradient(180deg, #e6764e 0%, #cc572d 86%) !important;
  color: #ffffff !important;
}

/* Botón + opciones */
#extra {
  width: 100%;
  background: #f5f5f5;
  color: #333;
  padding: 10px 20px;
  border: 1px solid #ddd;
  border-radius: 55px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

#extra:hover {
  background: #e8e8e8;
  border-color: #ccc;
}

/* Opciones extras */
#extraOC {
  width: 100%;
  background: #f9f9f9;
  padding: 15px;
  margin-top: 10px;
  border-radius: 4px;
  border: 1px solid #eee;
}

#extraOC > div {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: center;
}

#extraOC label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  cursor: pointer;
}

/* Campos de precio */
.precios label {
  font-size: 13px;
  margin-bottom: 5px;
  display: block;
}

.precios input[type="number"] {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 14px;
}

/* Responsive */
@media (max-width: 1200px) {
  .adv1-holder > div {
    flex: 0 0 calc(50% - 10px);
  }
}

@media (max-width: 767px) {
  #bloque_buscador {
    width: 100%;
    margin-left: 0;
    padding: 15px;
  }

  .adv1-holder > div {
    flex: 0 0 100%;
  }
}

#extraOC {
  margin: 0;
  width: 100%;
  margin-top: 55px;
  /*border-radius: 4px;
  border: 1px solid #eee;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);*/
  background-color: #fff;
  border: 1px solid #fff;
  /* NO incluir display aquí - se maneja con JavaScript */
}

#extraOC.hidden {
  display: none !important;
}

#extraOC > div {
  display: flex !important;
  flex-wrap: wrap;
  gap: 15px;
  align-items: center;
  min-height: 60px;
  padding: 10px 0;
}

/* El footer está oculto en la pagina de buscar inmuebles */
/* body.page-id-17000 .footer-wrap {
  display: none;
}
*/

@media (min-width: 992px) {
  /* Footer fijo, inicialmente oculto DEBAJO */
  body.page-id-17000 .footer-wrap {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 10000 !important;
    transform: translateY(100%) !important;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
    pointer-events: none !important; /* Transparente al scroll */
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
  }

  /* Footer visible */
  body.page-id-17000 .footer-wrap.visible {
    transform: translateY(0) !important;
  }

  /* Los hijos del footer SÍ son clicables */
  body.page-id-17000 .footer-wrap * {
    pointer-events: auto !important;
  }

  /* Espaciador */
  body.page-id-17000 .paginacion {
    background-color: transparent;
    font-size: clamp(14px, 1.3vw, 20px) !important; /* Mín 14px, máx 20px */
  }
  body.page-id-17000 .paginacion::after {
    content: "";
    display: block;
    height: 150vh;
    pointer-events: none;
  }
}

/*
ARREGLO MENU */

/* Hover en los enlaces del menú */
#main-nav li a:hover {
  color: #e6764e !important;
  background-color: transparent;
}

/* Enlace activo (página actual) */
#main-nav li.current-menu-item > a,
#main-nav li.current-menu-ancestor > a,
#main-nav li.current-page-ancestor > a,
#main-nav li.current_page_item > a,
#main-nav li a.active {
  color: #e6764e !important; /* Cambiado de red a #946807 para consistencia */
}

/* oculto el elemento login del menu */
.login-register {
  display: none;
}

/* boton BUSCAR PROPIEDADES submit post*/
#advanced_submit_2:hover {
  background-color: #000;
}

/* logo negro */
.logo.logo-splash img {
  height: 79px;
  width: auto;
}

/* logo blanco */
.logo.logo-desktop img {
  height: 79px;
  width: auto;
  /* filter: invert(1); */ /* invierte los colores de la imagen */
}

/* arreglo mision vision valores */
.elementor-widget-container {
  /* margin: 10px; */
}

/* Arreglo otros servicios */
/* Principal: clamp a 2 líneas */
.text-with-icon-item .text-with-icon-body {
  /* required for line-clamp */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  /* control de altura/espaciado para fallback y consistencia */
  line-height: 1.199; /* ajusta si tu diseño usa otra */
  max-height: calc(3em * 2); /* fallback: altura de 2 líneas */
}

.elementor-button {
  background-color: #333 !important;
  border-radius: 55px;
}

#scroll-top {
  background-color: #222;
  border: 1px solid transparent;
}

/* Flip en tarjetas de HOME */
.flip-card {
  perspective: 1000px;
  cursor: pointer;
  position: relative;
  min-height: 100px;
}

/* Contenido que gira */
.flip-card-inner {
  position: relative;
  width: 100%;
  transition: transform 0.6s;
  transform-style: preserve-3d;
}

/* Rotación por clase flipped (click/tap) */
.flip-card.flipped .flip-card-inner {
  transform: rotateY(180deg);
}

/* Rotación por hover (solo desktop) */
@media (hover: hover) and (pointer: fine) {
  .flip-card:hover .flip-card-inner {
    transform: rotateY(180deg);
  }
}

.flip-card-face {
  position: absolute;
  width: 100%;
  backface-visibility: hidden;
  top: 0;
  left: 0;
}

.flip-card-front {
  z-index: 2;
}

.flip-card-back {
  transform: rotateY(180deg);
}

/* Arreglo para buscador segun medidas */

@media (min-width: 576px) and (max-width: 767px) {
  .adv1-holder > div {
    flex: 0 0 calc(33.333% - 10px);
    min-width: 500px;
  }
}

@media (min-width: 768px) and (max-width: 1900px) {
  .adv1-holder > div {
    flex: 0 0 calc(33.333% - 10px);
    min-width: auto !important;
  }
}
button#wpforms-submit-119:hover {
  background-color: #ed9d81 !important;
}
.titnegro {
  color: #000;
}
.elementor-element.elementor-element-3a6230c.e-grid.e-con-full.e-con.e-parent.e-lazyloaded {
  z-index: 999;
  margin-top: -20px;
}
div#adv-search-header-1 {
  color: #ea8d6b;
}

/* Arreglo pin mapa y texto descripcion
--------------------------------------- */
@media (max-width: 767px) {
  .pin_mapa {
    display: none;
  }
  .light {
    float: none !important;
  }
}

/* Arreglo nav menu mv
------------------------ */

.nav-mobile,
.nav-mobile .slideout-menu {
  z-index: 9999 !important;
}

.footer-wrap,
.footer-wrap * {
  z-index: auto !important;
}

/* Nav mobile por encima de todo */
.nav-mobile,
.nav-mobile .slideout-menu {
  z-index: 9999 !important;
}

/* Footer no pise */
.footer-wrap,
.footer-wrap * {
  z-index: auto !important;
}

/* Header mobile siempre visible */
#header-mobile {
  top: 0;
  z-index: 99999 !important;
  background: #fff !important;
}

/* Evitar que el slideout tape el header */
.nav-mobile {
  position: relative !important;
}

/* Botón X para cerrar menú mobile */
.nav-mobile .slideout-menu.open::before {
  content: "✕";
  position: fixed;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: #1a1a1a;
  background: #f0f0f0;
  border-radius: 50%;
  cursor: pointer;
  z-index: 100000;
  transition: all 0.3s ease;
  pointer-events: auto;
}

.nav-mobile .slideout-menu.open::before:hover {
  background: #e6764e;
  color: #fff;
}

/* Menú mobile fullscreen */
.nav-mobile .slideout-menu {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;

  width: 100vw !important;
  max-width: 100% !important;
  height: 100vh !important;

  background: #fff !important;
  overflow-y: auto !important;

  z-index: 99999 !important;
}
