body {
  margin: 0;
}

#loading-bg {
  width: 100%;
  height: 100%;
  background: #fff;
  display: block;
  position: absolute;
}

.loading-logo {
  position: absolute;
  top: 46%;
  left: calc(50% - 67px);
  width: 250px;
  height: 50px;
}

.loading {
  position: absolute;
  left: calc(50% - 35px);
  width: 55px;
  height: 55px;
  border-radius: 50%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 3px solid transparent;
}
.loading .effect-1,
.loading .effect-2 {
  position: absolute;
  width: 100%;
  height: 100%;
  border: 3px solid transparent;
  border-left: 3px solid var(--primary, #058586);
  border-radius: 50%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.loading .effect-1 {
  animation: rotate 1s ease infinite;
}
.loading .effect-2 {
  animation: rotateOpacity 1s ease infinite 0.1s;
}
.loading .effect-3 {
  position: absolute;
  width: 100%;
  height: 100%;
  border: 3px solid transparent;
  border-left: 3px solid var(--primary, #058586);
  -webkit-animation: rotateOpacity 1s ease infinite 0.2s;
  animation: rotateOpacity 1s ease infinite 0.2s;
  border-radius: 50%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.loading .effects {
  transition: all 0.3s ease;
}

.text-loading-container {
  margin: 0;
  position: absolute;
  top: 60%;
  left: 50%;
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

@keyframes rotate {
  0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
  }
  100% {
      -webkit-transform: rotate(1turn);
      transform: rotate(1turn);
  }
}
@keyframes rotateOpacity {
  0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
      opacity: 0.1;
  }
  100% {
      -webkit-transform: rotate(1turn);
      transform: rotate(1turn);
      opacity: 1;
  }
}
.loading-grid {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-right: -50%;
  transform: translate(-50%, -50%);
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(3, 1fr);
  grid-column-gap: 0px;
  grid-row-gap: 0px;
}

.header-loading {
  display: flex;
  width: 250px;
  grid-area: 1 / 1 / 2 / 2;
  justify-content: center;
  align-items: center;
  margin-right: 0.6rem;
}
.middle-loading {
  height: 55px;
  display: flex;
  margin-bottom: 1rem;
  justify-content: center;
  grid-area: 2 / 1 / 3 / 2;
}
.footer-loading {
  display: flex;
  justify-content: center;
  grid-area: 3 / 1 / 4 / 2;
}