/* Make Forms More Mobile User Friendly */
.modal.fade .modal-dialog {
  transform: translate(0, 50px);
}
@media (max-width: 576px) {
  .modal .modal-dialog {
    align-items: end;
    margin: 0;
    min-height: 100%;
  }
  .modal .modal-dialog .modal-content {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    max-height: calc(100% - var(--mdb-modal-margin) * 2);
  }
}
@media (min-width: 576px) {
  .modal.fade .modal-dialog {
    transform: translate(0, -50px);
  }
}
.modal.fade.show .modal-dialog {
  transform: none;
}

/* Handle Invalid Form Inputs */
.is-invalid:focus~.invalid-feedback {
  display: none;
}
/* Shake invalid input */
.form-floating:has(.is-invalid) {
  animation: shakeInvalidInput 0.3s ease-in-out;
}
@keyframes shakeInvalidInput {
  0% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  50% { transform: translateX(5px); }
  75% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

/* Handle Turnstile Styles */
#cf-turnstile {
  interpolate-size: allow-keywords;
  overflow: hidden;
  height: 0px;
}
#cf-turnstile.force-user {
  height: auto;
  margin-bottom: 1rem;
}
#cf-turnstile > div {
  margin-bottom: -10px;
}
#cf-turnstile:has(input[value*="."]) .alert {
  display: none;
}