/** * 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 } :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; position: relative; z-index: 1 } .swiper-vertical>.swiper-wrapper { flex-direction: column } .swiper-wrapper { box-sizing: initial; display: flex; height: 100%; position: relative; 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 { transform: translateZ(0) } .swiper-horizontal { touch-action: pan-y } .swiper-vertical { touch-action: pan-x } .swiper-slide { display: block; flex-shrink: 0; height: 100%; position: relative; 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-backface-hidden .swiper-slide { backface-visibility: hidden; transform: translateZ(0) } .swiper-3d.swiper-css-mode .swiper-wrapper { perspective: 1200px } .swiper-3d .swiper-wrapper { transform-style: preserve-3d } .swiper-3d { perspective: 1200px; .swiper-cube-shadow, .swiper-slide { transform-style: preserve-3d } } .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% } } } .swiper-3d { .swiper-slide-shadow, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left, .swiper-slide-shadow-right, .swiper-slide-shadow-top { height: 100%; left: 0; pointer-events: none; position: absolute; top: 0; width: 100%; z-index: 10 } .swiper-slide-shadow { background: #00000026 } .swiper-slide-shadow-left { background-image: linear-gradient(270deg, #00000080, #0000) } .swiper-slide-shadow-right { background-image: linear-gradient(90deg, #00000080, #0000) } .swiper-slide-shadow-top { background-image: linear-gradient(0deg, #00000080, #0000) } .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 } } :root { --swiper-navigation-size: 44px } .swiper-button-next, .swiper-button-prev { align-items: center; color: var(--swiper-navigation-color, var(--swiper-theme-color)); 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: .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 .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, 40px); left: 555px; top: var(--swiper-pagination-top, auto); } .swiper-pagination-bullets-dynamic { font-size: 0; overflow: hidden; .swiper-pagination-bullet { position: relative; transform: scale(.33) } .swiper-pagination-bullet-active, .swiper-pagination-bullet-active-main { transform: scale(1) } .swiper-pagination-bullet-active-prev { transform: scale(.66) } .swiper-pagination-bullet-active-prev-prev { transform: scale(.33) } .swiper-pagination-bullet-active-next { transform: scale(.66) } .swiper-pagination-bullet-active-next-next { transform: scale(.33) } } .swiper-pagination-bullet { background: var(--swiper-pagination-bullet-inactive-color, #000); border-radius: var(--swiper-pagination-bullet-border-radius, 50%); display: inline-block; height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 15px)); opacity: var(--swiper-pagination-bullet-inactive-opacity, .2); width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 15px)); 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: var(--swiper-pagination-color, var(--swiper-theme-color)); opacity: var(--swiper-pagination-bullet-opacity, 1) } .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 .2s, top .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-bullet { transition: transform .2s, left .2s } } } .swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { transition: transform .2s, right .2s } .swiper-pagination-fraction { color: var(--swiper-pagination-fraction-color, inherit) } .swiper-pagination-progressbar { background: var(--swiper-pagination-progressbar-bg-color, #00000040); position: absolute; .swiper-pagination-progressbar-fill { background: var(--swiper-pagination-color, var(--swiper-theme-color)); height: 100%; left: 0; position: absolute; top: 0; transform: scale(0); transform-origin: left top; width: 100% } .swiper-rtl & .swiper-pagination-progressbar-fill { transform-origin: right top } &.swiper-pagination-horizontal, &.swiper-pagination-vertical.swiper-pagination-progressbar-opposite, .swiper-horizontal>&, .swiper-vertical>&.swiper-pagination-progressbar-opposite { height: var(--swiper-pagination-progressbar-size, 4px); left: 0; top: 0; width: 100% } &.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite, &.swiper-pagination-vertical, .swiper-horizontal>&.swiper-pagination-progressbar-opposite, .swiper-vertical>& { height: 100%; left: 0; top: 0; width: var(--swiper-pagination-progressbar-size, 4px) } } .swiper-pagination-lock { display: none } .swiper-scrollbar { background: var(--swiper-scrollbar-bg-color, #0000001a); border-radius: var(--swiper-scrollbar-border-radius, 10px); position: relative; touch-action: none; &.swiper-scrollbar-disabled, .swiper-scrollbar-disabled>& { display: none !important } &.swiper-scrollbar-horizontal, .swiper-horizontal>& { bottom: var(--swiper-scrollbar-bottom, 4px); height: var(--swiper-scrollbar-size, 4px); left: var(--swiper-scrollbar-sides-offset, 1%); position: absolute; top: var(--swiper-scrollbar-top, auto); width: calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2); z-index: 50 } &.swiper-scrollbar-vertical, .swiper-vertical>& { height: calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2); left: var(--swiper-scrollbar-left, auto); position: absolute; right: var(--swiper-scrollbar-right, 4px); top: var(--swiper-scrollbar-sides-offset, 1%); width: var(--swiper-scrollbar-size, 4px); z-index: 50 } } .swiper-scrollbar-drag { background: var(--swiper-scrollbar-drag-bg-color, #00000080); border-radius: var(--swiper-scrollbar-border-radius, 10px); height: 100%; left: 0; position: relative; top: 0; width: 100% } .swiper-scrollbar-cursor-drag { cursor: move } .swiper-scrollbar-lock { display: none } .swiper-zoom-container { align-items: center; display: flex; height: 100%; justify-content: center; text-align: center; width: 100%; >canvas, >img, >svg { max-height: 100%; max-width: 100%; object-fit: contain } } .swiper-slide-zoomed { cursor: move; touch-action: none } .swiper .swiper-notification { left: 0; opacity: 0; pointer-events: none; position: absolute; top: 0; z-index: -1000 } .swiper-free-mode>.swiper-wrapper { margin: 0 auto; transition-timing-function: ease-out } .swiper-grid>.swiper-wrapper { flex-wrap: wrap } .swiper-grid-column>.swiper-wrapper { flex-direction: column; flex-wrap: wrap } .swiper-fade { &.swiper-free-mode { .swiper-slide { transition-timing-function: ease-out } } .swiper-slide { pointer-events: none; transition-property: opacity; .swiper-slide { pointer-events: none } } .swiper-slide-active { pointer-events: auto; & .swiper-slide-active { pointer-events: auto } } } .swiper.swiper-cube { overflow: visible } .swiper-cube { .swiper-slide { backface-visibility: hidden; height: 100%; pointer-events: none; transform-origin: 0 0; visibility: hidden; width: 100%; z-index: 1; .swiper-slide { pointer-events: none } } &.swiper-rtl .swiper-slide { transform-origin: 100% 0 } .swiper-slide-active { &, & .swiper-slide-active { pointer-events: auto } } .swiper-slide-active, .swiper-slide-next, .swiper-slide-prev { pointer-events: auto; visibility: visible } .swiper-cube-shadow { bottom: 0; height: 100%; left: 0; opacity: .6; position: absolute; width: 100%; z-index: 0; &:before { background: #000; bottom: 0; content: ""; filter: blur(50px); left: 0; position: absolute; right: 0; top: 0 } } } .swiper-cube { .swiper-slide-next+.swiper-slide { pointer-events: auto; visibility: visible } } .swiper-cube { .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, .swiper-slide-shadow-cube.swiper-slide-shadow-left, .swiper-slide-shadow-cube.swiper-slide-shadow-right, .swiper-slide-shadow-cube.swiper-slide-shadow-top { backface-visibility: hidden; z-index: 0 } } .swiper.swiper-flip { overflow: visible } .swiper-flip { .swiper-slide { backface-visibility: hidden; pointer-events: none; z-index: 1; .swiper-slide { pointer-events: none } } .swiper-slide-active { &, & .swiper-slide-active { pointer-events: auto } } } .swiper-flip { .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, .swiper-slide-shadow-flip.swiper-slide-shadow-left, .swiper-slide-shadow-flip.swiper-slide-shadow-right, .swiper-slide-shadow-flip.swiper-slide-shadow-top { backface-visibility: hidden; z-index: 0 } } .swiper-creative { .swiper-slide { backface-visibility: hidden; overflow: hidden; transition-property: transform, opacity, height } } .swiper.swiper-cards { overflow: visible } .swiper-cards { .swiper-slide { backface-visibility: hidden; overflow: hidden; transform-origin: center bottom } }