

.imslider, .imslider * { box-sizing: border-box; }
.imslider { position: relative; width: 100%; overflow: hidden; }

.imslider-full { width: auto; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.imslider .swiper { width: 100%; height: 100%; }
.imslider .swiper-wrapper { height: 100%; }

.imslide {
  position: relative; width: 100%;
  background-position: center; background-size: cover; background-repeat: no-repeat;
  overflow: hidden;
}

.imslide-bg { position: absolute; inset: 0; background-position: center; background-size: cover; background-repeat: no-repeat; z-index: 0; }
.imslide-ov { position: absolute; inset: 0; background: #000; pointer-events: none; z-index: 1; }

.imslide-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

.imsl-lb-link {
  position: absolute; inset: 0; z-index: 4; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(10,10,12,0) 40%, rgba(10,10,12,.55) 100%);
  opacity: 0; transition: opacity .3s ease;
}
.imsl-lb-link:hover { opacity: 1; }
.imsl-lb-ic { display: flex; align-items: center; justify-content: center; color: #fff; }
.imsl-lb-ic svg {
  background: #8f0d27; border-radius: 50%; padding: 12px; width: 46px; height: 46px;
  transform: scale(.6); transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.imsl-lb-link:hover .imsl-lb-ic svg { transform: scale(1); }

.imsl-lb .imslide-bg { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.imsl-lb .imslide:hover .imslide-bg { transform: scale(1.06); }
.imslide-stage { position: relative; width: 100%; height: 100%; margin: 0 auto; z-index: 2; }

.imslide-scale { z-index: 2; }
.imsl-prop .imslide-scale {
  position: absolute; top: 50%; left: 50%;
  width: var(--imdw, 1920px); height: var(--imdh, 800px);
  transform: translate(-50%, -50%) scale(var(--imsc, 1));
  transform-origin: center center;
}
.imsl-prop .imslide-scale > .imslide-stage { width: 100%; height: 100%; }

@media (max-width: 1024px) {
  .imsl-prop .imslide-scale {
    position: static; width: auto; height: 100%; transform: none;
  }
}

.imlayer { position: absolute; margin: 0; max-width: 92%; }
.imlayer-i { margin: 0; }
.imlayer h2.imlayer-i, .imlayer .imlayer-i { margin: 0; }
.imslider-btn {
  display: inline-block; text-decoration: none; cursor: pointer;
  font-weight: 700; transition: filter .2s ease, transform .2s ease;
}
.imslider-btn:hover { background: var(--imbtn-hover, #8f0d27) !important; border-color: var(--imbtn-hover, #8f0d27) !important; transform: translateY(-1px); }
.imlayer-image .imlayer-i, .imlayer img.imlayer-i { display: block; max-width: 100%; height: auto; }

.imslider-card { display: inline-flex; flex-direction: column; align-items: center; text-align: center; }
.imslider-card.imslider-card-left { align-items: flex-start; text-align: left; }

.imslider-card-ic { font-size: 26px; line-height: 1; height: 44px; display: flex; align-items: center; justify-content: center; }
.imslider-card-ic i { font-size: inherit; }
.imslider-card-v { font-weight: 700; line-height: 1.1; margin-top: 10px; }
.imslider-card-l { font-size: 14px; margin-top: 4px; line-height: 1.25; }

.imslider .swiper-button-prev, .imslider .swiper-button-next { color: #fff; }
.imslider .swiper-button-prev::after, .imslider .swiper-button-next::after { font-size: 26px; }
.imslider .swiper-pagination-bullet { background: #fff; opacity: .55; width: 9px; height: 9px; transition: opacity .2s, transform .2s; }
.imslider .swiper-pagination-bullet-active { opacity: 1; transform: scale(1.25); }

.imslider-js .imlayer-i[data-anim] { opacity: 0; will-change: transform, opacity;
  transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.imslider-js .imlayer-i[data-anim="fade-up"]    { transform: translateY(44px); }
.imslider-js .imlayer-i[data-anim="fade-down"]  { transform: translateY(-44px); }
.imslider-js .imlayer-i[data-anim="fade-left"]  { transform: translateX(44px); }
.imslider-js .imlayer-i[data-anim="fade-right"] { transform: translateX(-44px); }
.imslider-js .imlayer-i[data-anim="zoom"]       { transform: scale(.82); }
.imslider-js .imlayer-i.imlayer-in { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
  .imslider-js .imlayer-i[data-anim] { transition: opacity .3s ease; transform: none !important; }
}
