/* ====== FORMULARIO CONTACTO ====== */

/* Card */
.contact-page .card {
  margin-bottom: 3rem;
  border: none;
  background: #fff;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 8px 24px rgba(0,0,0,0.05);
  transition: all 0.3s ease;
}

.contact-page .card:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,0.08);
}

/* Títulos */
.contact-page .card h5 {
  font-weight: 700;
  color: #001f54;
  border-left: 4px solid #3d69e0;
  padding-left: .6rem;
  margin-bottom: 1.5rem;
}

/* Labels */
.contact-page label {
  font-weight: 600;
  color: #001f54;
  font-size: 0.95rem;
  margin-bottom: 0.4rem;
}

/* Inputs */
.contact-page .form-control {
  border-radius: 0.6rem;
  border: 1px solid #e0e6ed;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  transition: all 0.25s ease;
}

.contact-page .form-control:focus {
  border-color: #3d69e0;
  background: #f9fbff;
  box-shadow: 0 0 0 0.25rem rgba(61, 105, 224, 0.15);
}

/* Textarea */
.contact-page textarea.form-control {
  min-height: 140px;
  resize: none;
}

/* Botón */
.contact-page .btn-primary {
  background: linear-gradient(90deg, #001f54, #3d69e0);
  background-size: 200% auto; /* necesario para animar */
  border: none;
  font-weight: 600;
  letter-spacing: 0.5px;
  padding: 0.9rem;
  border-radius: 0.6rem;
  transition: background-position 0.4s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.contact-page .btn-primary:hover {
  background-position: right center; /* desplaza el gradiente suavemente */
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(61,105,224,0.3);
}

/* Íconos dentro del form */
.input-group-text {
  background: #f8f9fa;
  border: 1px solid #e0e6ed;
  border-radius: 0.6rem 0 0 0.6rem;
  color: #3d69e0;
}

/* Alertas */
.contact-page .alert {
  border-radius: 0.6rem;
  font-weight: 500;
}

.icon-circle-sm {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease-in-out;
}

.icon-circle-sm:hover {
    background: linear-gradient(135deg, #001f54, #3d69e0);
    transform: scale(1.1);
}



/* Redes sociales globales */
.social-links a {
    color: #001f54;
    margin-left: 15px;
    font-size: 1.8rem;
    transition: color 0.3s, transform 0.3s;
}

.social-links a:first-child {
    margin-left: 0;
}

.social-links a:hover {
    color: #3d69e0;
    transform: translateY(-3px);
}

/* Línea decorativa debajo del título con animación */
.contact-title {
  position: relative;
  display: inline-block;
  padding-bottom: 0.4rem;
  overflow: hidden; /* para que la animación quede limpia */
}

.contact-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0; /* inicia invisible */
  height: 3px;
  background: linear-gradient(90deg, #001f54, #003d99, #3d69e0);
  border-radius: 2px;
  animation: lineExpand 1s ease forwards; /* ejecuta la animación */
}

/* Animación */
@keyframes lineExpand {
  from {
    width: 0;
  }
  to {
    width: 60%; /* mismo tamaño que tenías */
  }
}
