/* Modal aditional css */
.cod_scroll_hidden {
  overflow: hidden;
}
.is-invalid {
  border-color: red;
}

.is-invalid ~ .invalid-feedback {
  display: block;
}

.invalid-feedback {
  display: none;
  color: red;
  font-size: 0.875em;
}

/* Apply animations to button classes */
.shake {
  animation: codshake 3s infinite !important; /* Repetir cada 4 segundos y ser infinita */
}

.bounce {
  animation: codbounce 3s infinite !important; /* Repetir cada 4 segundos y ser infinita */
}

.pulse {
  animation: codpulse 3s infinite !important; /* Repetir cada 4 segundos y ser infinita */
}

/* Define button animations */
@keyframes codshake {
  0% {
    transform: rotate(0);
  }
  2% {
    transform: translateY(-2px) rotate(-2deg);
    transform-origin: center;
  }
  4% {
    transform: translateY(2px) rotate(2deg);
    transform-origin: center;
  }
  6% {
    transform: translateY(-2px) rotate(-2deg);
    transform-origin: center;
  }
  8% {
    transform: translateY(2px) rotate(2deg);
    transform-origin: center;
  }
  10% {
    transform: translateY(-2px) rotate(-2deg);
    transform-origin: center;
  }
  12% {
    transform: rotate(0);
    transform-origin: center;
  }
}

@keyframes codbounce {
  0% {
    transform: translateY(0);
  }
  5% {
    transform: translateY(-8px);
  }
  10% {
    transform: translateY(0);
  }
  15% {
    transform: translateY(-8px);
  }
  20% {
    transform: translateY(0);
  }
}

@keyframes codpulse {
  0% {
    transform: scale(1);
  }
  10% {
    transform: scale(1.1);
  }
  20% {
    transform: scale(1);
  }
}
