:root {
  --azul: #003975;
  --rojo: #ed1c24;
  --negro: #000000;
  --blanco: #ffffff;
  --gris: #f3f3f3;
  --gris-oscuro: #8f8f8f;
}

.bg-umss {
  background: var(--azul);
}

.text-rojo {
  color: var(--rojo);
}

.text-azul {
  color: var(--azul);
}

.text-blanco {
  color: var(--blanco);
}

/* HERO */
.hero {
  background:
    linear-gradient(rgba(0, 57, 117, 0.85), rgba(0, 0, 0, 0.75)),
    url("../images/fondo.png");

  background-size: cover;
  background-position: center;
  min-height: 80vh;

  padding-top: 80px;

  padding-bottom: 80px;

  display: flex;

  align-items: center;
  /*color: var(--blanco); */

  position: relative;

  overflow: hidden;
}

/* SECCIONES */
.section-gray {
  background-color: var(--gris);
}

/* ICONOS DESTACADOS */
.icon-box {
  padding: 20px;
  border-radius: 12px;
  background: var(--blanco);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

/* ==========================
   ANIMACIONES
========================== */

.fade-up {
  opacity: 0;
  transform: translateY(40px);
  animation: fadeUp 0.8s ease forwards;
}

.fade-up.delay1 {
  animation-delay: 0.3s;
}

.fade-up.delay2 {
  animation-delay: 0.6s;
}

.fade-up.delay3 {
  animation-delay: 0.9s;
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.search-card {
  background: rgba(255, 255, 255, 0.92);

  backdrop-filter: blur(10px);

  border-radius: 18px;

  padding: 25px;

  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}

.form-control {
  transition: 0.35s;
}

.form-control:focus {
  border-color: #ed1c24;
  box-shadow: 0 0 0 0.25rem rgba(237, 28, 36, 0.25);
  transform: scale(1.02);
}

.btn-umss {
  background: #ed1c24;
  border: none;
  color: white;
  position: relative;
  overflow: hidden;
  transition: 0.3s;
  margin-bottom: 5px;
}

.btn-umss:hover {
  background: var(--gris-oscuro);
}

.btn-umss::before {
  content: "";
  position: absolute;
  left: -120%;
  top: 0;
  width: 80px;
  height: 100%;
  background: rgba(255, 255, 255, 0.35);
  transform: skewX(-30deg);
  transition: 0.7s;
}

.btn-umss:hover::before {
  left: 140%;
}

.loading-card {
  display: inline-block;
  padding: 30px;
  background: white;
  border-radius: 15px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
  color: black;
}

.resultado {
  animation: zoomIn 0.5s;
}

@keyframes zoomIn {
  from {
    opacity: 0;

    transform: scale(0.9);
  }

  to {
    opacity: 1;

    transform: scale(1);
  }
}

.input-group > .form-control {
  width: 100% !important;
  margin-bottom: 12px;
}

.input-group-search {
  display: flex;
}

.input-group-text {
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
}

.input-group-field {
  border-radius: 0px !important;
}

.input-group-send {
  border-top-left-radius: 0px !important;
  border-bottom-left-radius: 0px !important;
  margin-bottom: 0px !important;
  width: 30%;
}

@media (max-width: 768px) {
  .input-group-send {
    width: 50%;
  }

  .search-card {
    padding: 20px;
  }

  .input-group {
    flex-direction: column;
  }

  .input-group > .form-control {
    width: 100%;
    margin-bottom: 12px;
  }

  .input-group > .btn {
    width: 100%;
  }

  .display-4 {
    font-size: 2rem;
  }

  .lead {
    font-size: 1rem;
  }
}

.card-form {
  background: rgba(255, 255, 255, 0.95);

  backdrop-filter: blur(12px);

  border: none;

  border-radius: 18px;

  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.18);
}

.left-box {
  color: white;

  padding: 40px;
}

.left-box h1 {
  font-weight: 700;
}

.left-box p {
  opacity: 0.9;
}

.form-floating {
  margin-bottom: 15px;
}

.section-title {
  color: var(--azul);

  font-weight: 600;

  margin-top: 20px;

  margin-bottom: 15px;

  border-left: 5px solid var(--rojo);

  padding-left: 12px;
}

/* .fade-up {
  animation: fadeUp 0.8s;
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
} */

@media (max-width: 991px) {
  .left-box {
    text-align: center;

    padding-bottom: 10px;
  }
}

.error {
  background: #f8d7da;

  color: #721c24;

  padding: 15px;

  border-radius: 10px;

  margin-bottom: 20px;
}

.badge {
  padding: 8px 12px;
  font-size: 0.8rem;
  border-radius: 30px;
}

.bg-success {
  background: linear-gradient(135deg, #198754, #2fb87d) !important;
}

.institucion {
  font-size: small;
  font-weight: 600;
}
