.spinner{
  position: fixed;
  top: 50%;
  left: 0;
  /* background: #2a2a2a55; */
  width: 100%;
  display:block;
  text-align:center;
  height: 300px;
  color: #FFF;
  transform: translateY(-50%);
  z-index: 1300;
  visibility: hidden;
}

.overlay{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(42,42,42,0.75);
  visibility: hidden;
  z-index: 1200;
}

.loader, .loader:before, .loader:after {
  border-radius: 50%;
  width: 2.5em;
  height: 2.5em;
  animation-fill-mode: both;
  animation: load7 1.8s infinite ease-in-out;
}

.loader {
  color: #ffffff;
  font-size: 10px;
  margin: 80px auto;
  position: relative;
  text-indent: -9999em;
  transform: translateZ(0);
  animation-delay: -0.16s;
}
.loader:before, .loader:after {
  content: '';
  position: absolute;
  top: 0;
}
.loader:before {
  left: -3.5em;
  animation-delay: -0.32s;
}
.loader:after {
  left: 3.5em;
}
@keyframes load7 {
  0%,
  80%,
  100% {
      box-shadow: 0 2.5em 0 -1.3em;
  }
  40% {
      box-shadow: 0 2.5em 0 0;
  }
}

.show{
  visibility: visible;
}

.spinner, .overlay{
  opacity: 0;
  transition: all 0.3s;
}

.spinner.show, .overlay.show {
  opacity: 1
}

