/* $Base */

.loader {
  display: inline-block;
  position: relative;
  width: 50px;
  height: 50px;
  vertical-align: middle;
  margin: 0 auto;
}

/*	$Loader Multiple circle
	========================================================================== */

.loader-circles {
  border-radius: 50px;
  border: 3px solid transparent;
  border-top-color: #fccd1b;
  -o-animation: spin 1s linear infinite;
  -moz-animation: spin 1s linear infinite;
  -webkit-animation: spin 1s linear infinite;
  animation: spin 1s linear infinite;
}

.loader-circles:before,
.loader-circles:after {
  content: "";
  position: absolute;
  top: 5px;
  right: 5px;
  bottom: 5px;
  left: 5px;
  border-radius: 50px;
  border: 3px solid transparent;
  border-top-color: #7fcdcb;
  opacity: 0.8;
  filter: alpha(opacity=80);
  -o-animation: spinreverse 5s linear infinite;
  -moz-animation: spinreverse 5s linear infinite;
  -webkit-animation: spinreverse 5s linear infinite;
  animation: spinreverse 5s linear infinite;
}

.loader-circles:before {
  top: 12px;
  left: 12px;
  bottom: 12px;
  right: 12px;
  border-top-color: #fc7923;
  -o-animation: spinreverse 10s linear infinite;
  -moz-animation: spinreverse 10s linear infinite;
  -webkit-animation: spinreverse 10s linear infinite;
  animation: spinreverse 10s linear infinite;
}

@-webkit-keyframes grow {
  0% {
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    opacity: 0;
  }
  50% {
    -webkit-transform: scaleY(1);
    transform: scaleY(1);
    opacity: 1;
  }
  100% {
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    opacity: 0;
  }
}

@keyframes grow {
  0% {
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    opacity: 0;
  }
  50% {
    -webkit-transform: scaleY(1);
    transform: scaleY(1);
    opacity: 1;
  }
  100% {
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    opacity: 0;
  }
}

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-webkit-keyframes spinreverse {
  0% {
    -webkit-transform: rotate(0deg);
    tranform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(-360deg);
    tranform: rotate(-360deg);
  }
}

@keyframes spinreverse {
  0% {
    -webkit-transform: rotate(0deg);
    tranform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(-360deg);
    tranform: rotate(-360deg);
  }
}

#loader-overlay {
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background: linear-gradient(135deg, #4ab0b7 0%, #2d8a91 100%);
  position: fixed;
  z-index: 99999;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
  padding: 24px;
}

#loader-overlay .loader-overlay-message {
  color: #ffffff;
  font-size: 17px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.3px;
  margin-top: 8px;
  max-width: 280px;
}

#loader-overlay .loader-overlay-helper {
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
  text-align: center;
  max-width: 280px;
}

#loader-overlay .loader-circles {
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.15));
}
