*, ::before,::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
 }

 :root{
--colorTextos: #49454567;
 }

 .contact {
    background-color: #fff;
    padding: 40px;
    border-radius: 10px;
    width: 100%;
    margin: 0 auto;
    padding-top:  50px;
  }

  .contact__form {
    width: 100%;
    display: flex;
    justify-content: center;
    background-color:#fff;
    padding: 20px 0;
  }
  

  .contact__form h2,p{
    text-align: center;
  }

  .contact__paragraph{
    color: gray;
    text-align: justify;
  }


  .contenidoForm {
    width: 90%;
    display: flex;
    align-items: stretch; /* Asegura que ambos lados tengan la misma altura */
    gap: 20px; /* Espacio entre columnas (se puede omitir si usas .separador) */
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    padding: 20px;
    margin: auto; /* Centra el contenedor en la página */
  }

  .contenidoForm form {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ladoForm,
.ladoMapa {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ladoForm form {
    width: 100%;
  }

  .ladoForm h2,
.ladoForm p {
  text-align: center;
}
  
.separador {
    width: 2px;               /* Grosor de la línea */
    background-color: #ccc;   /* Color de la línea */
    margin: 0 10px;           /* Espaciado horizontal, opcional */
  }

.contact__grupo {
    position: relative;
    margin-bottom: 20px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  

 .contact__grupo select {
    width: 100%;
    padding: 10px 15px;
    font-size: 16px;
    color: #333;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    transition: border-color 0.3s ease;
    position: relative;
    z-index: 1; /* Para asegurarse de que el select esté por encima de la barra */
}


.contact__grupo label {
    position: absolute;
    top: 10px;
    left: 15px;
    font-size: 14px;
    color: #999;
    transition: all 0.3s ease;
    pointer-events: none; /* Evita que el texto se pueda seleccionar */
}

.grupo__group input,
.grupo__group textarea{
    font-size: 16px;
    padding: 10px;
    border: none;
    border-bottom: 2px solid #ccc;
    outline: none;
    transition: border-color 0.3s ease, backgrond-color 0.3s ease;
}

.contact__grupo input:focus,
.contact__grupo textarea:focus {
  border-color: #007BFF;
}

 .form{
    background: #fff;
    border-radius: 10px;
    width: 150%;
    box-shadow: 0 0 6px 0 rgba(255, 255, 255, 0.8);
    padding: 10px 0;
    
   
 }

 .formulario .grupo{
    position: relative;
    margin: 45px;
 }
 .ladoForm form {
    width: 100%;
  }

 .ladoForm form button {
    width: 80%;
    max-width: 200px;
    background: linear-gradient(90deg, #4d82bc, #c4dafa);
    border: none;
    color: #fff;
    padding: 10px;
    border-radius: 30px;
    font-size: 16px;
    cursor: pointer;
    margin: 20px auto 0 auto;
    transition: background 0.3s ease;
  }
  .ladoForm form button:hover {
    background: linear-gradient(90deg, #3c6b9a, #a3c3e5);
  }
  

 input,textarea{
    background: none;
    color: #c6c6c6;
    font-size: 18px;
    padding: 10px 10px 10px 5px;
    display: block;
    width: 100%;
    border: none;
    border-bottom: 1px solid var(--colorTextos);
    resize: none;
}
.ladoMapa iframe {
    width: 100%;
    height: 100%;
    min-height: 300px; /* Altura mínima para el mapa */
    border: 0;
  }

input:focus,textarea:focus{
outline: none;
color: rgb(94, 93, 93);
}

input:focus~label,
input:valid~label,
textarea:focus~label,
textarea:valid~label{
    position: absolute;
    top: -14px;
    font-size: 12px;
    color: #2196F3;
}

label{
    color: var(--colorTextos);
    font: 16px;
    position: absolute;
    left: 5px;
    top:10px;
    transition: 0.5s ease all;
    pointer-events: none;
}

.barra{
    position: relative;
    display: block;
    width: 100%;
}

.barra::before{
content: '';
height: 2px;
width: 0;
bottom: 0;
position: absolute;
background: linear-gradient(90deg,#4d82bc,#c4dafa);
transition: 0.6s ease all;
left: 0%;
}

input:focus~.barra::before,textarea:focus~.barra::before{
    width: 100%;
}

.formulario button{
    background: linear-gradient(90deg,#4d82bc,#c4dafa);
    display: block;
    width: 100px;
    height: 40px;
    border: none;
    color: white;
    border-radius: 4px;
    font-size: 16px;
    margin: 10px auto;
    cursor: pointer;
}

.formulario button:disabled{
    opacity: 0.5;
    cursor: not-allowed;
}

/* Esto es para los mensajes de error o exito en los inputs */

input, textarea {
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Transición para mensajes de error */
.mensaje-error {
    font-size: 12px;
    margin-top: 5px;
    font-weight: bold;
    color: #FF6961; /* Color del mensaje de error */
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}


.imgModal{
    height: 250px;
    width: 250px;
}

/* Hacer visible el mensaje de error */
input.invalido + .mensaje-error, textarea.invalido + .mensaje-error {
    opacity: 1;
    transform: translateY(0); /* Mostrar el mensaje suavemente */
}

/* Mensajes de error y éxito */
.message {
    display: none;  /* Los mensajes comienzan ocultos */
    opacity: 0;
    transition: opacity 2s ease-in-out;  /* Duración de la transición */
}

/* Barra de entrada cuando hay un error */
input.invalido + .barra::before, textarea.invalido + .barra::before {
    background: linear-gradient(90deg, #FF6961, #ffbfaf); /* Barra roja para el error */
}

/* Barra de entrada cuando hay un éxito */
input.valido + .barra::before, textarea.valido + .barra::before {
    background: linear-gradient(90deg, #A8CA7E, #CBDDB5); /* Barra verde para el éxito */
}
/* Cuando el mensaje es visible, que la barra crezca */
input.invalido + .mensaje-error::before,
textarea.invalido + .mensaje-error::before {
    width: 100%; /* La barra de error se expande */
}

/* Formulario responsivo */

@media screen and (max-width:1100px) {
    .formulario{
        width: 50%;
    }
     
    
}

@media screen and (max-width:600px) {
    .formulario{
        width: 60%;
    }
     
    
}

@media screen and (max-width:450px) {
    .formulario{
        width: 80%;
    }
     
    
}
@media screen and (max-width:300px) {
    .formulario{
        width: 90%;
    }
     
    
}

/* Estilos del Modal */
.modal {
    display: none;  /* Ocultar modal por defecto */
    position: fixed; 
    z-index: 1; /* Por encima de todo el contenido */
    left: 0;
    top: 0;
    width: 100%; /* Ancho completo */
    height: 100%; /* Altura completa */
    background-color: rgba(0, 0, 0, 0.4); /* Fondo oscuro semi-transparente */
    overflow: auto; /* Habilitar desplazamiento si es necesario */
    padding-top: 60px;
}

.modal-contenido {
    background-color: #fff;
    margin: 5% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%; /* Ancho del modal */
    max-width: 400px; /* Tamaño máximo */
    text-align: center;
    border-radius: 8px;
}

.cerrar {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.cerrar:hover,
.cerrar:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

#modal-mensaje {
    font-size: 18px;
    font-weight: bold;
}


@media (max-width: 768px) {
    /* En dispositivos pequeños se apilan los elementos verticalmente */
    .contenidoForm {
      flex-direction: column;
      align-items: center;
      gap: 20px;
      /* Opcional: reducir padding para dispositivos móviles */
      padding: 10px;
    }
    
    /* Oculta o reduce el separador, ya que no es necesario cuando se apilan */
    .separador {
      display: none;
    }
    
    /* Hacemos que cada columna ocupe el 100% del ancho disponible */
    .ladoForm,
    .ladoMapa {
      flex: none;
      width: 100%;
    }
    
    /* Ajustamos el iframe para que ocupe el ancho completo y una altura adecuada */
    .ladoMapa iframe {
      width: 100%;
      /* Puedes ajustar la altura si lo consideras necesario */
      min-height: 250px;
    }
    
    /* Opcional: ajustar tamaños de fuente y padding de inputs para mayor comodidad */
    .contact__grupo input,
    .contact__grupo textarea {
      width: 90%;
    }
    
    .ladoForm form button {
      width: 90%;
    }
  }
