.element-image {
  border: 0;
  margin: 0;
  padding: 0;
  outline: none;
  height: 100%;
  width: 100%;
  position: relative;
  background-color: #ececec;
}
.element-image .image-body {
  object-fit: cover;
  border: 0;
  height: 100%;
  width: 100%;
  transition: all 0.5s;
}
.element-image .image-loading-layer {
  background-color: #ececec;
  width: 100%;
  height: 100%;
  transition: all 0.5s;
  animation-name: breath;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  position: relative;
}
.element-image .image-loading-layer .loading-icon {
  width: 60px;
  height: auto;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.loader-appear {
  opacity: 0.01;
}
.loader-appear.loader-appear-active {
  opacity: 1;
  transition: opacity 200ms ease-in;
}
.loader-enter {
  opacity: 0.01;
}
.loader-enter.loader-enter-active {
  opacity: 1;
  transition: opacity 200ms ease-in;
}
.loader-leave {
  opacity: 1;
}
.loader-leave.loader-leave-active {
  opacity: 0.01;
  transition: opacity 200ms ease-in;
}
@keyframes breath {
  0% {
    background-color: #ececec;
  }
  50% {
    background-color: #e1e1e1;
  }
  100% {
    background-color: #ececec;
  }
}

