:root { --swiper-theme-color: var(--span); }

.swiper { width: 100%; height: 380px; }

.image-slider {
  position: relative;
  overflow: hidden;
  border-radius: var(--br-16);
  background: var(--card);
  border: 1px solid rgb(110 72 255 / 24%);
  box-shadow: 0 18px 50px rgb(0 0 0 / 24%);
}

.image-slider::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 3%);
  z-index: 5;
}

.image-slider__image {
  position: relative;
  height: 100%;
  overflow: hidden;
  isolation: isolate;
}

.image-slider__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.015);
  transition: transform 7s cubic-bezier(.2,.65,.2,1);
}

.swiper-slide-active .image-slider__image img { transform: scale(1.045); }

/* Картинка является полностью готовым баннером. Текст из настроек модуля больше не рисуется. */
.image-slider__image > p,
.image-slider__image > h3 { display: none !important; }

/* Лёгкое затемнение только снизу — не перекрывает дизайн баннера. */
.swiper-slide__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(0deg, rgb(3 6 12 / 42%) 0%, transparent 38%);
}

.image-slider__image .swiper_btn {
  display: flex;
  position: absolute;
  left: 32px;
  bottom: 28px;
  z-index: 7;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  line-height: 1;
  background: var(--span);
  padding: 0 20px 0 45px;
  border-radius: var(--br-8);
  color: var(--text-default);
  font-size: var(--font-size-m);
  font-weight: var(--font-weight-6);
  gap: 10px;
  cursor: pointer;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 8%);
  box-shadow: 0 10px 28px rgb(0 0 0 / 20%);
  text-decoration: none;
  transition: transform var(--transition-duration), filter var(--transition-duration);
}

.image-slider__image .swiper_btn:hover { filter: brightness(1.08); transform: translateY(-2px); }

.swiper_btn svg {
  position: absolute;
  left: 20px;
  height: 8px;
  width: 8px;
  fill: white;
  transition: var(--transition-duration) ease;
}

.swiper_btn:hover svg { transform: rotate(45deg); }

.swiper_action_svg {
  position: absolute;
  height: 24px;
  width: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--input-form);
  border-radius: var(--br-4);
  left: 12px;
  transition: var(--transition-duration) ease-in-out;
  z-index: -1;
}

.swiper_btn:hover .swiper_action_svg {
  width: 300px;
  height: 300px;
  border-radius: var(--br-50);
  left: -12px;
}

.swiper-buttons {
  position: absolute;
  right: 24px;
  bottom: 28px;
  z-index: 8;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 42px;
  padding: 0 6px 0 12px;
  border: 1px solid rgb(255 255 255 / 8%);
  border-radius: var(--br-48);
  background: rgb(8 12 23 / 78%);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: 0 10px 30px rgb(0 0 0 / 24%);
}

.swiper-counter { display: flex; align-items: baseline; gap: 4px; min-width: 40px; color: rgb(255 255 255 / 65%); font-size: var(--font-size-s); font-weight: var(--font-weight-6); letter-spacing: .04em; }
.swiper-counter__current { color: #fff; font-size: var(--font-size-s); }
.swiper-counter__sep { color: rgb(255 255 255 / 25%); }
.swiper-nav { display: flex; align-items: center; gap: 2px; }

.swiper-button-next,
.swiper-button-prev {
  position: relative !important;
  inset: auto !important;
  margin: 0 !important;
  width: 29px !important;
  height: 29px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: var(--br-8);
  transition: background var(--transition-duration), transform var(--transition-duration);
}

.swiper-button-next:hover,
.swiper-button-prev:hover { background: rgb(255 255 255 / 8%); }

.image-slider .swiper-button-next::after,
.image-slider .swiper-button-prev::after { color: rgb(255 255 255 / 55%); font-size: 13px; font-weight: var(--font-weight-6); }
.image-slider .swiper-button-next:hover::after,
.image-slider .swiper-button-prev:hover::after { color: #fff; }

.image-slider .swiper-pagination { display: none; }

.swiper-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  z-index: 9;
  background: rgb(255 255 255 / 8%);
}

.swiper-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--span);
  box-shadow: 0 0 14px rgb(73 154 255 / 45%);
}

@media (max-width: 767px) {
  .swiper { height: 260px; }
  .image-slider__image .swiper_btn { left: 16px; bottom: 18px; min-height: 39px; padding-left: 40px; font-size: 13px; }
  .swiper-buttons { right: 14px; bottom: 18px; height: 38px; }
  .swiper-button-next, .swiper-button-prev { width: 25px !important; height: 25px !important; }
}
