/* Carrusel de imagenes*/
/* ========== ESTILO COMPARTIDO PARA AMBOS CARRUSELES ========== */

/* CONTENEDOR INTERNO DE LA IMAGEN - Tamaño fijo con fondo blanco */
#CarruselInicio .carousel-inner,
#CarruselResidencial .carousel-inner,
#CarruselConjunto .carousel-inner,
#CarruselComercial .carousel-inner,
#CarruselInteriorismo .carousel-inner,
#CarruselProyectos .carousel-inner {
    background-color: #ffffff; /* Fondo blanco */
}

#CarruselInicio .carousel-item,
#CarruselResidencial .carousel-item,
#CarruselConjunto .carousel-item,
#CarruselComercial .carousel-item,
#CarruselInteriorismo .carousel-item,
#CarruselProyectos .carousel-item {
    height: 700px; /* Altura fija para PC */
    background-color: #ffffff; /* Fondo blanco */
}

/* IMÁGENES DEL CARRUSEL - Mantener proporción y centrar */
#CarruselInicio .carousel-item img,
#CarruselResidencial .carousel-item img,
#CarruselConjunto .carousel-item img,
#CarruselComercial .carousel-item img,
#CarruselInteriorismo .carousel-item img,
#CarruselProyectos .carousel-item img {
    width: 100%;
    height: 100%; /* Ocupa toda la altura del contenedor */
    max-height: 700px; /* Misma altura que el contenedor */
    object-fit: contain; /* Mantiene la imagen completa sin recortar */
    object-position: center; /* Centra la imagen */
}

/* AJUSTES PARA TABLETS (menor a 992px) */
@media (max-width: 991px) {
    #CarruselInicio .carousel-item,
    #CarruselResidencial .carousel-item,
    #CarruselConjunto .carousel-item,
    #CarruselComercial .carousel-item,
    #CarruselInteriorismo .carousel-item,
    #CarruselProyectos .carousel-item {
        height: 500px;
    }
    
    #CarruselInicio .carousel-item img,
    #CarruselResidencial .carousel-item img,
    #CarruselConjunto .carousel-item img,
    #CarruselComercial .carousel-item img,
    #CarruselInteriorismo .carousel-item img,
    #CarruselProyectos .carousel-item img {
        max-height: 500px;
    }
}

/* AJUSTES PARA MÓVILES (menor a 768px) */
@media (max-width: 767px) {
    #CarruselInicio .carousel-item,
    #CarruselResidencial .carousel-item,
    #CarruselConjunto .carousel-item,
    #CarruselComercial .carousel-item,
    #CarruselInteriorismo .carousel-item,
    #CarruselProyectos .carousel-item {
        height: 400px; /* Altura reducida para móviles */
    }
    
    #CarruselInicio .carousel-item img,
    #CarruselResidencial .carousel-item img,
    #CarruselConjunto .carousel-item img,
    #CarruselComercial .carousel-item img,
    #CarruselInteriorismo .carousel-item img,
    #CarruselProyectos .carousel-item img {
        max-height: 400px;
    }
}

/* AJUSTES PARA MÓVILES PEQUEÑOS (menor a 576px) */
@media (max-width: 575px) {
    #CarruselInicio .carousel-item,
    #CarruselResidencial .carousel-item,
    #CarruselConjunto .carousel-item,
    #CarruselComercial .carousel-item,
    #CarruselInteriorismo .carousel-item,
    #CarruselProyectos .carousel-item {
        height: 350px; /* Altura aún más reducida */
    }
    
    #CarruselInicio .carousel-item img,
    #CarruselResidencial .carousel-item img,
    #CarruselConjunto .carousel-item img,
    #CarruselComercial .carousel-item img,
    #CarruselInteriorismo .carousel-item img,
    #CarruselProyectos .carousel-item img {
        max-height: 350px;
    }
}

/* CONTROLES (prev/next) - TODOS LOS CARRUSELES */
#CarruselInicio .carousel-control-prev,
#CarruselInicio .carousel-control-next,
#CarruselResidencial .carousel-control-prev,
#CarruselResidencial .carousel-control-next,
#CarruselConjunto .carousel-control-prev,
#CarruselConjunto .carousel-control-next,
#CarruselComercial .carousel-control-prev,
#CarruselComercial .carousel-control-next,
#CarruselInteriorismo .carousel-control-prev,
#CarruselInteriorismo .carousel-control-next,
#CarruselProyectos .carousel-control-prev,
#CarruselProyectos .carousel-control-next {
    width: 15%;
    opacity: .5;
    transition: opacity .15s ease;
}

/* POSICIONAMIENTO ESPECIAL PARA CARRUSELES (excepto Inicio) */
#CarruselResidencial .carousel-control-prev,
#CarruselResidencial .carousel-control-next,
#CarruselConjunto .carousel-control-prev,
#CarruselConjunto .carousel-control-next,
#CarruselComercial .carousel-control-prev,
#CarruselComercial .carousel-control-next,
#CarruselInteriorismo .carousel-control-prev,
#CarruselInteriorismo .carousel-control-next,
#CarruselProyectos .carousel-control-prev,
#CarruselProyectos .carousel-control-next {
    top: 100px; /* Baja los botones 60px hacia abajo */
}

#CarruselInicio .carousel-control-prev:hover,
#CarruselInicio .carousel-control-next:hover,
#CarruselResidencial .carousel-control-prev:hover,
#CarruselResidencial .carousel-control-next:hover,
#CarruselConjunto .carousel-control-prev:hover,
#CarruselConjunto .carousel-control-next:hover,
#CarruselComercial .carousel-control-prev:hover,
#CarruselComercial .carousel-control-next:hover,
#CarruselInteriorismo .carousel-control-prev:hover,
#CarruselInteriorismo .carousel-control-next:hover,
#CarruselProyectos .carousel-control-prev:hover,
#CarruselProyectos .carousel-control-next:hover {
    opacity: .9;
}

/* ICONOS DE FLECHA (SVG blanco 2rem) */
#CarruselInicio .carousel-control-prev-icon,
#CarruselInicio .carousel-control-next-icon,
#CarruselResidencial .carousel-control-prev-icon,
#CarruselResidencial .carousel-control-next-icon,
#CarruselConjunto .carousel-control-prev-icon,
#CarruselConjunto .carousel-control-next-icon,
#CarruselComercial .carousel-control-prev-icon,
#CarruselComercial .carousel-control-next-icon,
#CarruselInteriorismo .carousel-control-prev-icon,
#CarruselInteriorismo .carousel-control-next-icon,
#CarruselProyectos .carousel-control-prev-icon,
#CarruselProyectos .carousel-control-next-icon {
    width: 2rem;
    height: 2rem;
    background-size: 100% 100%;
}

#CarruselInicio .carousel-control-prev-icon,
#CarruselResidencial .carousel-control-prev-icon,
#CarruselConjunto .carousel-control-prev-icon,
#CarruselComercial .carousel-control-prev-icon,
#CarruselInteriorismo .carousel-control-prev-icon,
#CarruselProyectos .carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3E%3C/svg%3E");
}

#CarruselInicio .carousel-control-next-icon,
#CarruselResidencial .carousel-control-next-icon,
#CarruselConjunto .carousel-control-next-icon,
#CarruselComercial .carousel-control-next-icon,
#CarruselInteriorismo .carousel-control-next-icon,
#CarruselProyectos .carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E");
}

/* INDICADORES (rayitas) */
#CarruselInicio .carousel-indicators [data-bs-target],
#CarruselResidencial .carousel-indicators [data-bs-target],
#CarruselConjunto .carousel-indicators [data-bs-target],
#CarruselComercial .carousel-indicators [data-bs-target],
#CarruselInteriorismo .carousel-indicators [data-bs-target],
#CarruselProyectos .carousel-indicators [data-bs-target] {
    width: 30px;
    height: 3px;
    margin: 3px;
    opacity: .5;
    background-color: #fff;
    transition: opacity .6s ease;
    border: 0;
    border-radius: 2px;
}

#CarruselInicio .carousel-indicators .active,
#CarruselResidencial .carousel-indicators .active,
#CarruselConjunto .carousel-indicators .active,
#CarruselComercial .carousel-indicators .active,
#CarruselInteriorismo .carousel-indicators .active,
#CarruselProyectos .carousel-indicators .active {
    opacity: 1;
    background-color: #fff;
}

/* Ocultar carrusels */
#carruseles {
    margin-top: 3rem;
    padding: 2rem;
    text-align: center;
    background-color: #f8f8f8;
}

.carrusel {
    display: none;
    opacity: 0;
    transition: opacity 0.5s ease;
    max-width: 900px;
    margin: 0 auto;
}

.carrusel.active {
    display: block;
    opacity: 1;
}

.carrusel h2 {
    font-size: 1.8rem;
    color: var(--black);
    margin-bottom: 1rem;
}

.carrusel p {
    font-size: 1rem;
    color: #444;
    line-height: 1.6;
}

.hidden {
    display: none;
}




/* y así con todas tus reglas que hoy empiezan en #CarruselInicio ... */



/* espacio nosotros */

h1 {
    white-space: pre-wrap;
}

h1::after {
    content: "\A";
    white-space: pre;
}




/* Texto de subtítulo */
#caption {
    margin: 15px auto;
    text-align: center;
    color: #fff;
    font-size: 18px;    
}

/* Botón para cerrar el modal */
.close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #fff;
    font-size: 30px;
    font-weight: bold;
    cursor: pointer;
}

.close:hover,
.close:focus {
    color: #bbb;
    text-decoration: none;
    cursor: pointer;
}


/* Introducción de la empresa */
.intro-section {
    background-color: var(#e6e4e1);
    text-align: center;
    margin: 3rem 0;
    border-radius: 10px;
    box-shadow: var(--box-shadow);
    
}

.intro-container {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 100vh;          /* ocupa al menos el alto de la pantalla */
  background-color: #e6e4e1;
  padding: 20px;            /* un poco de aire arriba y abajo */
  overflow: visible;          /* permite ver todo el contenido */
}




/* Texto */
.intro-section h2 {
    font-size: 2rem;
    font-weight: 700;
    color: var(--black);
    margin-bottom: 1rem;
}

.intro-section p {
    font-size: 1.1rem;
    color: var(--black);

    margin-bottom: 2rem;
    line-height: 1.6;
}

/* Imágenes */
 

/* ===== CONTENEDOR GENERAL ===== */

.intro-images {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 1.5rem;
  margin: 3rem auto;

  box-sizing: border-box;
  background-color: #e6e4e1;


}

/* ===== TARJETA ===== */
.image-card {
  background: #ffffff;
  border: 3px solid var(--black);
  border-radius: 0px;
  padding: 12px;
  overflow: hidden;
  flex: 1 1 300px; /* se adapta flexible */
  max-width: 1000px;
  max-height: 1000px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.image-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
}

/* ===== IMAGEN ===== */
.image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.image-card.bienes-raices img {
  max-width: 100%;
  height: 150%;
  object-fit: cover;
  border-radius: 5px;
}

/* ===== DESCRIPCIÓN ===== */
.image-info {
  padding: 1rem 1.2rem 1.5rem;
  text-align: center;
}

.image-info p {
  font-size: 0.95rem;
  color: #333;
  margin-bottom: 1rem;
  font-weight: 500;
}

/* ===== BOTÓN ===== */
.btn-more {
  background-color: #ffffff;           /* Fondo blanco */
  color: #000000;                      /* Texto negro */
  border: 2px solid #000000;           /* Contorno negro marcado */
  padding: 12px 28px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 0;                    /* Bordes totalmente cuadrados */
  cursor: pointer;
  transition: all 0.25s ease-in-out;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
  letter-spacing: 0.5px;
}

/* ===== HOVER ===== */
.btn-more:hover {
  background-color: #2c63da;           /* Fondo negro al pasar el cursor */
  color: #ffffff;                      /* Texto blanco invertido */
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25);
}

/* ===== ACTIVO ===== */
.btn-more:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}




/* Laptops medianas */
@media (max-width: 1024px) {
  .image-card {
    flex: 1 1 30%;
  }

  
}

/* Tablets */
@media (max-width: 820px) {
  .image-card {
    flex: 1 1 45%; /* se acomodan 2 por fila */
  }
}

/* Celulares (por debajo de 700px) */
@media (max-width: 700px) {
  .intro-images {
    gap: 1rem;
    justify-content: center;
    

  }

  .image-card {
    flex: 0 1 48%; /* garantiza 2 por fila sin romper */
    max-width: 48%;
  }

  .image-card img {
    width: 100%;
    height: auto; /* deja que la altura se ajuste naturalmente */
    max-height: 250px;/* límite visual para mantener proporción */
    object-fit: contain; /* muestra toda la imagen completa */
    background-color: #f5f5f5; /* relleno neutral si sobran bordes */
    border-radius: 8px;
  }


}
/* === Teléfonos pequeños y promedio (hasta ~480px) === */
@media (max-width: 480px) {
  .intro-images {
    gap: 0.7rem;
    justify-content: center;
   
  }

  .image-card {
    flex: 0 1 42%;          /* un poco más angosta */
    max-width: 42%;         /* encoge el ancho de la tarjeta */
    padding: 6px;           /* menos relleno interior */
    border-width: 2px;      /* bordes más delgados */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    width: 350px;
  }

  .image-card img {
    width: 100%;
    height: 180px;          /* altura reducida para evitar alargamiento */
    object-fit: cover;
    border-radius: 4px;
     
  }

  .image-info {
    padding: 0.6rem 0.5rem 0.8rem;
  }

  .image-info p {
    font-size: 0.8rem;      /* texto un poco más pequeño */
    margin-bottom: 0.5rem;
  }

  .btn-more {
    font-size: 13px;
    padding: 6px 14px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  }
}







/* proyectos experiencia */

#proyectos {
  background-color: #303030;
  padding-top: 35px;
  padding-bottom: 20px;
}

#proyectos .intro-images {
  background-color: #303030;  /* fondo distinto solo para esta sección */
}

#proyectos .image-card{
  background-color: #e6e4e1;
  
  border-radius: 0px;
border: 5px solid #5e5e5e;   
}

.tituloProyectos{
    text-align: center;
    color: white;
    
}

#proyectos p{
  color: rgb(0, 0, 0);
}




/*Nosotros apartado*/
.nosotros-img-text-container {
    
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    padding: 2rem;
    padding-top: 6rem
}

.nosotros-image-column,
.nosotros-title-column {
    flex: 1 1 100%;
}

.nosotros-image-column {
    display: flex; /* Cambia el comportamiento del contenedor a flexbox */
    justify-content: center; /* Centra horizontalmente el contenido */
    align-items: center; /* Centra verticalmente el contenido */
}
.nosotros-image-column img {
    max-width: 80%; /* Ajusta el tamaño de la imagen para que no ocupe demasiado espacio */
    height: auto; /* Mantiene la proporción de la imagen */
    border-radius: 8px; /* Conserva el borde redondeado */
}

.nosotros-title-column h1 {
    align-items: center;
    justify-content: center;
    font-size: 40px; /* Tamaño más pequeño para texto grande en pantallas grandes */
    color: var(--black);
}

.nosotros-title-column p {
    align-items: center;
    justify-content: center;
    font-size: 30px; /* Tamaño más pequeño para texto pequeño en pantallas grandes */
    color: var(--light-color);
}


@media (min-width: 700px) {
    .nosotros-title-column h1 {
        font-size: 30px; /* Tamaño más reducido específicamente para pantallas grandes */
    }

    .nosotros-title-column p {
        font-size: 20px; /* Tamaño más reducido específicamente para pantallas grandes */
        margin-bottom: 1.5rem; /* Espacio entre párrafos */
    line-height: 1.6; /* Ajusta la altura de línea para mejorar la legibilidad */
    }

    .nosotros-image-column {
        flex: 1 1 48%;
    }

    .nosotros-title-column {
        flex: 1 1 48%;
    }

}

/* Ajustes para dispositivos móviles */
@media (max-width: 700px) {
    .nosotros-title-column h1 {
        font-size: 20px; /* Tamaño pequeño para pantallas pequeñas */
        text-align: center;
    }

    .nosotros-title-column p {
        margin-bottom: 1.5rem; /* Espacio entre párrafos */
    line-height: 1.6; /* Ajusta la altura de línea para mejorar la legibilidad */
    }

    .nosotros-img-text-container {
        flex-direction: column;
        align-items: center;
    }

    .nosotros-image-column img {
        max-width: 80%;
    }
}

/* Estilos generales */
body {
    background-color: #fff;
    scroll-snap-type: y mandatory;
}

.titulo {
    text-align: center;
    font-size: 40px;
    padding-top: 50px;
    scroll-snap-align: start;
}