/**
 * Swiper 12.0.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: October 21, 2025
 */

/* 基础变量定义 */
:root {
  --swiper-theme-color: #007aff;
  --swiper-navigation-size: 44px;
}

/* 宿主元素样式 */
:host {
  display: block;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 1;
}

/* 核心容器样式 */
.swiper {
  display: block;
  list-style: none;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  padding: 0;
  z-index: 1;
}
.swiper2 {
  display: block;
  list-style: none;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  padding: 0;
  position: relative;
  z-index: 1;
}
/* 滑动方向 - 垂直 */
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}

/* 滑块包裹层 */
.swiper-wrapper {
  box-sizing: initial;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  width: 100%;
  z-index: 1;
}

/* 硬件加速优化 */
.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {

}

/* 触摸行为优化 */
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-vertical {
  touch-action: pan-x;
}

/* 单个滑块样式 */
.swiper-slide {
  display: block;
  flex-shrink: 0;
  height: 100%;
  transition-property: transform;
  width: 100%;
}

/* 空白不可见滑块 */
.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* 自动高度模式 */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}

/* 背面隐藏优化 */
.swiper-slide {
  backface-visibility: hidden;
}

/* 3D 效果基础样式 */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-3d {
  perspective: 1200px;
}
.swiper-3d .swiper-cube-shadow,
.swiper-3d .swiper-slide {
  transform-style: preserve-3d;
}

/* CSS 模式（原生滚动） */
.swiper-css-mode {
  > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;

    &::-webkit-scrollbar {
      display: none;
    }
  }

  > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
  }

  &.swiper-horizontal {
    > .swiper-wrapper {
      scroll-snap-type: x mandatory;
    }
  }

  &.swiper-vertical {
    > .swiper-wrapper {
      scroll-snap-type: y mandatory;
    }
  }

  &.swiper-free-mode {
    > .swiper-wrapper {
      scroll-snap-type: none;
    }

    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: none;
    }
  }

  &.swiper-centered {
    > .swiper-wrapper:before {
      content: "";
      flex-shrink: 0;
      order: 9999;
    }

    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: center center;
      scroll-snap-stop: always;
    }
  }

  &.swiper-centered.swiper-horizontal {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-centered-offset-before);
    }

    > .swiper-wrapper:before {
      height: 100%;
      min-height: 1px;
      width: var(--swiper-centered-offset-after);
    }
  }

  &.swiper-centered.swiper-vertical {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-centered-offset-before);
    }

    > .swiper-wrapper:before {
      height: var(--swiper-centered-offset-after);
      min-width: 1px;
      width: 100%;
    }
  }
}

/* 3D 滑块阴影 */
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top {
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10;
}
.swiper-3d .swiper-slide-shadow {
  background: #00000026;
}
.swiper-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(270deg, #00000080, #0000);
}
.swiper-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(90deg, #00000080, #0000);
}
.swiper-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(0deg, #00000080, #0000);
}
.swiper-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(180deg, #00000080, #0000);
}

/* 懒加载预加载器 */
.swiper-lazy-preloader {
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top: 4px solid #0000;
  box-sizing: border-box;
  height: 42px;
  left: 50%;
  margin-left: -21px;
  margin-top: -21px;
  position: absolute;
  top: 50%;
  transform-origin: 50%;
  width: 42px;
  z-index: 10;
}

/* 预加载器动画 */
.swiper-watch-progress .swiper-slide-visible,
.swiper:not(.swiper-watch-progress) {
  .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s linear infinite;
  }
}

/* 预加载器颜色变体 */
.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}

/* 旋转动画关键帧 */
@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}

/* 虚拟滑动 */
.swiper-virtual .swiper-slide {
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}
.swiper-virtual.swiper-css-mode {
  .swiper-wrapper:after {
    content: "";
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
  }
}
.swiper-virtual.swiper-css-mode.swiper-horizontal {
  .swiper-wrapper:after {
    height: 1px;
    width: var(--swiper-virtual-size);
  }
}
.swiper-virtual.swiper-css-mode.swiper-vertical {
  .swiper-wrapper:after {
    height: var(--swiper-virtual-size);
    width: 1px;
  }
}

/* 导航按钮基础样式 */
.swiper-button-next,
.swiper-button-prev {
  align-items: center;
  color:#0033ff;
  cursor: pointer;
  display: flex;
  height: var(--swiper-navigation-size);
  justify-content: center;
  position: absolute;
  width: var(--swiper-navigation-size);
  z-index: 10;

  &.swiper-button-disabled {
    cursor: auto;
    opacity: 0.35;
    pointer-events: none;
  }

  &.swiper-button-hidden {
    cursor: auto;
    opacity: 0;
    pointer-events: none;
  }

  .swiper-navigation-disabled & {
    display: none !important;
  }

  svg {
    height: 100%;
    object-fit: contain;
    transform-origin: center;
    width: 100%;
    fill: currentColor;
    pointer-events: none;
  }
}

/* 导航按钮锁定状态 */
.swiper-button-lock {
  display: none;
}

/* 导航按钮位置 - 水平方向 */
.swiper-button-next,
.swiper-button-prev {
  margin-top: calc(0px - var(--swiper-navigation-size) / 2);
  top: var(--swiper-navigation-top-offset, 50%);
}
.swiper-button-prev {
  left: var(--swiper-navigation-sides-offset, 4px);
  right: auto;

  .swiper-navigation-icon {
    transform: rotate(180deg);
  }
}
.swiper-button-next {
  left: auto;
  right: var(--swiper-navigation-sides-offset, 4px);
}

/* 水平滑动导航按钮适配 */
.swiper-horizontal {
  .swiper-button-next,
  .swiper-button-prev,
  ~ .swiper-button-next,
  ~ .swiper-button-prev {
    margin-left: 0;
    margin-top: calc(0px - var(--swiper-navigation-size) / 2);
    top: var(--swiper-navigation-top-offset, 50%);
  }

  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next,
  & ~ .swiper-button-prev,
  .swiper-button-prev {
    left: var(--swiper-navigation-sides-offset, 4px);
    right: auto;
  }

  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev,
  & ~ .swiper-button-next,
  .swiper-button-next {
    left: auto;
    right: var(--swiper-navigation-sides-offset, 4px);
  }

  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next,
  & ~ .swiper-button-prev,
  .swiper-button-prev {
    .swiper-navigation-icon {
      transform: rotate(180deg);
    }
  }

  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev {
    .swiper-navigation-icon {
      transform: rotate(0deg);
    }
  }
}

/* 垂直滑动导航按钮适配 */
.swiper-vertical {
  .swiper-button-next,
  .swiper-button-prev,
  ~ .swiper-button-next,
  ~ .swiper-button-prev {
    left: var(--swiper-navigation-top-offset, 50%);
    margin-left: calc(0px - var(--swiper-navigation-size) / 2);
    margin-top: 0;
    right: auto;
  }

  .swiper-button-prev,
  ~ .swiper-button-prev {
    bottom: auto;
    top: var(--swiper-navigation-sides-offset, 4px);

    .swiper-navigation-icon {
      transform: rotate(-90deg);
    }
  }

  .swiper-button-next,
  ~ .swiper-button-next {
    bottom: var(--swiper-navigation-sides-offset, 4px);
    top: auto;

    .swiper-navigation-icon {
      transform: rotate(90deg);
    }
  }
}

/* 分页器基础样式 */
.swiper-pagination {
  position: absolute;
  text-align: center;
  transform: translateZ(0);
  transition: opacity 0.3s;
  z-index: 10;

  &.swiper-pagination-hidden {
    opacity: 0;
  }

  &.swiper-pagination-disabled,
  .swiper-pagination-disabled > & {
    display: none !important;
  }
}

/* 分页器位置 - 水平方向 */
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: var(--swiper-pagination-bottom, 28px);
  left: 0;
  top: var(--swiper-pagination-top, auto);
  width: 100%;
}

/* 动态分页圆点 */
.swiper-pagination-bullets-dynamic {
  font-size: 0;
  overflow: hidden;

  .swiper-pagination-bullet {
    position: relative;
    transform: scale(0.33);
  }

  .swiper-pagination-bullet-active,
  .swiper-pagination-bullet-active-main {
    transform: scale(1);
  }

  .swiper-pagination-bullet-active-prev {
    transform: scale(0.66);
  }

  .swiper-pagination-bullet-active-prev-prev {
    transform: scale(0.33);
  }

  .swiper-pagination-bullet-active-next {
    transform: scale(0.66);
  }

  .swiper-pagination-bullet-active-next-next {
    transform: scale(0.33);
  }
}

/* 分页圆点样式 */
.swiper-pagination-bullet {
  border: 4px #ffffff solid;
  background: var(--swiper-pagination-bullet-inactive-color, #ffffff);
  border-radius: var(--swiper-pagination-bullet-border-radius, 50%);
  display: inline-block;
  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 18px));
  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.8);
  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 18px));

  button& {
    appearance: none;
    border: none;
    box-shadow: none;
    margin: 0;
    padding: 0;
  }

  .swiper-pagination-clickable & {
    cursor: pointer;
  }

  &:only-child {
    display: none !important;
  }
}

/* 激活状态分页圆点 */
.swiper-pagination-bullet-active {
  background:#000000;
  opacity: var(--swiper-pagination-bullet-opacity, 1);  border: 4px #ffffff solid;
}

/* 分页器位置 - 垂直方向 */
.swiper-pagination-vertical.swiper-pagination-bullets,
.swiper-vertical > .swiper-pagination-bullets {
  left: var(--swiper-pagination-left, auto);
  right: var(--swiper-pagination-right, 8px);
  top: 50%;
  transform: translate3d(0, -50%, 0);

  .swiper-pagination-bullet {
    display: block;
    margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
  }

  &.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px;

    .swiper-pagination-bullet {
      display: inline-block;
      transition: transform 0.2s, top 0.2s;
    }
  }
}

/* 水平分页器圆点间距 */
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-horizontal.swiper-pagination-bullets {
  .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
  }

  &.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;

    .swiper-pagination