img.lazy {
  opacity: 0;
  display: block;
  height: auto;
}

img.lazy:not(.initial) {
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}

img.lazy.initial, img.lazy.loaded, img.lazy.error {
  opacity: 1;
}

img.lazy:not([src]) {
  visibility: hidden;
}

.section.lazy {
  opacity: 0;
  display: block;
  width: 100%;
  height: auto;
}

.section.lazy:not(.initial) {
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}

.section.lazy.initial, .section.lazy.loaded, .section.lazy.error {
  opacity: 1;
}

.section.lazy:not(.loaded) {
  visibility: hidden;
}