/* constatntes -------------------------------------------------*/

:root {
    --fuenteHeading: 'PT Sans', sans-serif;
    --fuenteParrafos: 'Open Sans', sans-serif;
    --colorCafe: #784D3C;
    --colorBlanco: #ffffff;
    --colorBlanco2: #CACFD2;
    --colorNegro: #000000;
    --colorGris: #e1e1e1;
    --colorGrisObscuro: #8E8C8C;
    --colorGrisObscuro2: #444444;   
    --colorGrisObscuro3: #262626; 
    --colorAzul: #33D4FF;
    --colorAzulClaro: #213C4A;
    --colorAzulClaro2: #0273B4;
}

/*contacto------------------------------------------------------------------------------------------------------------------------------*/
.formulario {
    background-color: var(--colorBlanco);
    padding: 3rem;
    border-radius: 12px;
    box-sizing: border-box;
    
}

.contacto p {
  line-height: 1;
}

/* Texto y títulos */
.Contacto1 {
    text-align: center;
    color: var(--colorGrisObscuro2);
    font-weight: 700;
    border-radius: 8px;
}

.contc {
   text-align: center;   /* Centrado */
    line-height: 1.2;     /* Espacio controlado entre líneas */
    margin-bottom: 0.5rem;
    font-weight: bold;
    font-size: 16px;
}

.datos {
    text-align: justify;     /* O center si quieres centrarlo */
    line-height: 1.2;        /* Espacio reducido */
    margin-bottom: 0.5rem;   /* Espacio entre párrafos */
    font-size: 14px;
    white-space: nowrap;      /* Evita saltos de línea automáticos */
    overflow: hidden;         /* Oculta exceso si no cabe */
    text-overflow: ellipsis;  /* Opcional: muestra "..." si se corta */
    word-wrap: break-word; /* evita que el texto se salga en pantallas pequeñas */
}


.redes {
    display: flex;
    justify-content: center; /* Centra horizontalmente */
    margin-top: 1.5rem;
}

.rd {
    display: flex;
    gap: 20px;       /* Espacio entre íconos */
    flex-wrap: wrap; /* Se van a otra fila si no caben */
    justify-content: center;
}

.rI {
    width: 40px;     /* Tamaño de los íconos */
    height: 40px;
    border-radius: 50%; 
    object-fit: cover;
    transition: transform 0.3s; /* efecto al pasar el mouse */
}

.rI:hover {
    transform: scale(1.2); /* Agranda ícono al pasar mouse */
    cursor: pointer;
    box-shadow: 0px 0px 40px 8px rgba(74,188,240,1);
}


.cnt {
    text-align: center;
    font-weight: 600;
    font-size: 1.8rem;
    margin-bottom: 2rem;  /* espacio entre título y formulario */
}

.contacto {
    position: relative; /* contenedor relativo */
    overflow: visible;  /* permite que el bg sobresalga */
    width: 95%;
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

.separador{
    border: 1px solid var(--colorGrisObscuro);
}


.map-container {
    width: 95%;          /* ancho relativo al contenedor */
    max-width: 900px;    /* límite en pantallas grandes */
    margin: 2rem auto;   /* centrado horizontal con espacio arriba y abajo */
    border-radius: 12px; /* opcional: bordes redondeados */
    overflow: hidden;
}

.map-container iframe {
    width: 100%;
    height: 450px;       /* altura inicial */
    border: 0;
}



.galeria {
    display: flex;
    flex-wrap: wrap;           /* Permite que las imágenes bajen de fila si no caben */
    justify-content: center;   /* Centra horizontalmente */
    gap: 20px;                 /* Espacio entre imágenes */
    margin: 2rem auto;
    max-width: 1200px;
}

.galeria-item {
    flex: 1 1 200px;           /* Cada imagen ocupa mínimo 200px, se ajusta automáticamente */
    max-width: 250px;
    display: flex;
    justify-content: center;   /* Centra la imagen dentro del bloque */
}

.galeria-item img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    object-fit: cover;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
}

/* Hover sutil */
.galeria-item img:hover {
    transform: scale(1.05);                  /* Zoom muy leve */
    box-shadow: 0 6px 15px rgba(0,0,0,0.2);  /* Sombra ligera */
}



/* Modal general */
.modal {
    display: none;                  /* Oculto por defecto */
    position: fixed;                /* Fijo en pantalla */
    z-index: 1000;                  /* Sobre todo */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.8); /* Fondo oscuro semi-transparente */
    overflow: auto;
}

/* Imagen centrada */
.modal-contenido {
    display: block;
    max-width: 90%;
    max-height: 90%;
    margin: 5% auto;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.5);
    animation: zoom 0.4s;
}


/* Animación de zoom */
@keyframes zoom {
    from {transform: scale(0.5);}
    to {transform: scale(1);}
}

/* Botón cerrar */
.cerrar {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #f16060;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.3s;
}

.cerrar:hover {
    color: #bbb;
}


.contacto-bg {
  position: absolute;
  top: -20%;          /* sobresale un 20% hacia arriba */
  left: 50%;
  transform: translateX(-50%);
  width: 100%;         /* ancho deseado */
  height: 40%;        /* altura del fondo */
  background: url('../img/fotos/banner6.jpg') no-repeat center/cover;
  /*border-radius: 20px;*/
  z-index: -1;        /* queda detrás del formulario */
  box-shadow: 0 5px 15px rgba(0,0,0,0.2); /* opcional */
}

.contacto-container{
    margin-top: 120px; /* ajusta según cuánto quieras que sobresalga el fondo */
    position: relative; /* mantiene el formulario por encima del fondo */
    z-index: 1;         /* asegura que el formulario quede delante del bg */
}


.formulario p, .formulario input, .formulario textarea {
  width: 100%;
  box-sizing: border-box;
}



/* --- Responsivo -------------------------------------------------------------------------------------------------------------------------------------------- */
@media (max-width: 768px) {   /* Tablets */
    .formulario {
        padding: 3rem;
        margin: -5rem auto 0 auto;
    }
    .contc {
        font-size: 18px;
    }


    .cnt {
        font-size: 1.4rem;
    }

    .rI {
        width: 35px;
        height: 35px;
        margin-right: 10px;
    }
    .rd {
        gap: 15px;
    }


    .map-container iframe {
        height: 350px;
    }


   .contacto-bg {
    height: 30%;          /* menos altura en pantallas pequeñas */
    top: -15%;
  }

   .contacto-container {
    margin-top: 100px;
    padding: 0.5rem;
  }
    

}








@media (max-width: 480px) {   /* Celulares */
    .formulario {
        padding: 2rem;
        margin: -3rem auto 0 auto;
        width: 100%;
        border-radius: 8px;
    }

    .contc {
        font-size: 14px;
        line-height: 1.2;
        margin-bottom: 0.4rem;
    }
  
    .datos {
        font-size: 10px;
        line-height: 1.4;
      
    }


    .rI {
        width: 16px;
        height: 16px;
        margin-right: 8px;
    }

    .cnt {
        font-size: 1.2rem;
        
    }


    .rd {
        gap: 12px;
    }

    .map-container iframe {
        height: 250px;
    }


    .contacto-bg {
    height: 25%;
    top: -10%;
  }

  .contacto-container {
    margin-top: 80px;
    padding: 0.5rem;
  }

}











