/* 首页 / Holi 轮播：占满首屏，横向滑动、无限循环 */
.banner { position: relative; z-index: 0; height: 100vh; height: 100svh; min-height: 420px; overflow: hidden; background: #1a1a1a; }
.sw { position: relative; height: 100%; overflow: hidden; touch-action: pan-y; }
.sw-track { display: flex; height: 100%; will-change: transform; }
.sw-track.anim { transition: transform 1.6s ease; }
.sw-slide {
  flex: 0 0 100%; height: 100%;
  background-size: cover; background-position: center center; background-repeat: no-repeat;
}

/* 上下渐变遮罩：给导航、Logo、指示条一个稳定的深色底 */
.banner-shade {
  position: absolute; inset: 0; z-index: 5; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .22) 16%, rgba(0, 0, 0, 0) 32%),
    linear-gradient(to top, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .15) 18%, rgba(0, 0, 0, 0) 34%);
}

/* 箭头：白色细线，半透明，悬停变清晰 */
.sw-btn {
  position: absolute; top: 50%; z-index: 10; width: 48px; height: 72px; margin-top: -36px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; opacity: .45; cursor: pointer; transition: opacity .25s;
}
.sw-btn:hover, .sw-btn:focus-visible { opacity: 1; }
.sw-btn svg { width: 20px; height: 40px; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .4)); }
.sw-prev { left: 12px; }
.sw-next { right: 12px; }
@media (max-width: 767px) { .sw-btn { display: none; } }

/* 指示条：细短横线，当前项白色，其余 40% 透明 */
.sw-dots { position: absolute; bottom: 36px; left: 0; width: 100%; z-index: 10; display: flex; justify-content: center; gap: 8px; }
.sw-dots span {
  display: block; width: 24px; height: 2px; padding: 8px 0; background: #fff content-box;
  opacity: .4; cursor: pointer; transition: opacity .3s, width .3s;
}
.sw-dots span.on { opacity: 1; width: 36px; }

/* Logo：左下角，加柔和阴影，不挡画面中心 */
.banner-logo { position: absolute; z-index: 10; left: 6vw; bottom: 64px; pointer-events: none; }
.banner-logo img {
  width: 240px; max-width: 60vw; display: block; border-radius: 0;
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .45));
}
@media (max-width: 767px) {
  .banner-logo { left: 20px; bottom: 64px; }
  .banner-logo img { width: 170px; }
}
