/* 图片懒加载 + 转圈（Logo / 首屏不套用） */
.ng-lazy-host {
  position: relative;
}
.ng-lazy-host.is-loading::after,
.ng-lazy-box.is-loading .ng-lazy-spin {
  content: "";
  box-sizing: border-box;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border: 2px solid rgba(0, 0, 0, 0.1);
  border-top-color: #1a1a1a;
  border-radius: 50%;
  animation: ng-spin 0.65s linear infinite;
  z-index: 6;
  pointer-events: none;
}
.ng-lazy-box.is-loading .ng-lazy-spin {
  content: none;
  display: block;
}
.casedetail .ng-lazy-host.is-loading::after,
.casedetail .ng-lazy-box.is-loading .ng-lazy-spin,
.ng-banner .ng-lazy-host.is-loading::after {
  border-color: rgba(255, 255, 255, 0.25);
  border-top-color: #fff;
}
.ng-lazy-box {
  position: relative;
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}
.ng-lazy-box > img {
  display: block;
  max-width: 100%;
  box-sizing: border-box;
  height: auto;
}
/* 案例卡片：占位图撑高，主图绝对定位；转圈挂在 .pic 上 */
.case_list .pic.ng-lazy-host,
.indexcase-list .pic.ng-lazy-host,
#pageContent .pic.ng-lazy-host,
.casedetailmain-othercase .pic.ng-lazy-host {
  min-height: 120px;
}
.case_list .pic.ng-lazy-host {
  background: #000;
}
.case_list .pic.ng-lazy-host.is-loading::after {
  border-color: rgba(255, 255, 255, 0.25);
  border-top-color: #fff;
}
img.ng-lazy {
  opacity: 0;
  transition: opacity 0.35s ease;
}
img.ng-lazy-loaded {
  opacity: 1;
}
@keyframes ng-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ng-lazy-host.is-loading::after,
  .ng-lazy-box.is-loading .ng-lazy-spin {
    animation: none;
    border-top-color: transparent;
    opacity: 0.5;
  }
  img.ng-lazy {
    transition: none;
  }
}
