/*! ZSlider v2.3.2 | Core structural styles + default theme */
.zs-slider{
    --zs-gap:16px;
    --zs-slide-basis:auto;
    --zs-arrow-size:42px;
    --zs-arrow-bg:#194d4b;
    --zs-arrow-color:#fff;
    --zs-arrow-disabled-opacity:.35;
    --zs-dot-size:10px;
    --zs-dot-gap:8px;
    --zs-dot-bg:#d9d9d9;
    --zs-dot-active-bg:#194d4b;
    --zs-dot-active-width:28px;
    --zs-content-direction:ltr;
    --zs-center-padding:0px;
    --zs-state-duration:280ms;
    --zs-state-easing:ease;
    position:relative;
    min-width:0;
    box-sizing:border-box;
}
.zs-slider *,
.zs-slider *::before,
.zs-slider *::after{box-sizing:border-box;}
.zs-viewport{
    width:100%;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    direction:ltr;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
    transition:height var(--zs-state-duration) var(--zs-state-easing);
}
.zs-viewport::-webkit-scrollbar{display:none;}
.zs-track{
    display:inline-flex;
    align-items:flex-start;
    min-width:100%;
    direction:ltr;
    vertical-align:top;
}
.zs-slide{
    flex:0 0 auto;
    min-width:0;
    scroll-snap-align:start;
    direction:var(--zs-content-direction);
}
.zs-fixed-size:not(.zs-vertical) .zs-slide{flex-basis:var(--zs-slide-basis);}
.zs-variable-size:not(.zs-vertical) .zs-slide{flex-basis:auto;}
.zs-slider:not(.zs-vertical) .zs-slide:not(:last-child){margin-right:var(--zs-gap);}
.zs-center .zs-slide{scroll-snap-align:center;}
.zs-no-snap .zs-viewport{scroll-snap-type:none;}
.zs-slide.zs-clone{pointer-events:none;}
.zs-focus-select .zs-slide.zs-clone{pointer-events:auto;}
.zs-animating .zs-viewport{scroll-snap-type:none;}
.zs-dragging,
.zs-dragging .zs-viewport{cursor:grabbing;user-select:none;-webkit-user-select:none;}
.zs-vertical .zs-viewport{
    width:100%;
    overflow-x:hidden;
    overflow-y:auto;
    scroll-snap-type:y mandatory;
    overscroll-behavior-x:auto;
    overscroll-behavior-y:contain;
}
.zs-vertical .zs-track{
    display:flex;
    flex-direction:column;
    min-width:0;
    width:100%;
    min-height:100%;
}
.zs-vertical.zs-fixed-size .zs-slide{flex-basis:var(--zs-slide-basis);width:100%;}
.zs-vertical.zs-variable-size .zs-slide{flex-basis:auto;width:100%;}
.zs-vertical .zs-slide:not(:last-child){margin-bottom:var(--zs-gap);}
.zs-vertical.zs-no-snap .zs-viewport{scroll-snap-type:none;}
.zs-arrow{
    position:absolute;
    top:50%;
    z-index:5;
    width:var(--zs-arrow-size);
    height:var(--zs-arrow-size);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:999px;
    background:var(--zs-arrow-bg);
    color:var(--zs-arrow-color);
    font:inherit;
    cursor:pointer;
    transform:translateY(-50%);
    transition:opacity var(--zs-state-duration) var(--zs-state-easing),transform var(--zs-state-duration) var(--zs-state-easing),background-color var(--zs-state-duration) var(--zs-state-easing);
}
.zs-prev{left:12px;}
.zs-next{right:12px;}
.zs-prev .zs-arrow-icon::before{content:"‹";}
.zs-next .zs-arrow-icon::before{content:"›";}
.zs-rtl:not(.zs-vertical) .zs-prev{left:auto;right:12px;}
.zs-rtl:not(.zs-vertical) .zs-next{right:auto;left:12px;}
.zs-rtl:not(.zs-vertical) .zs-prev .zs-arrow-icon::before{content:"›";}
.zs-rtl:not(.zs-vertical) .zs-next .zs-arrow-icon::before{content:"‹";}
.zs-vertical .zs-prev{top:12px;left:50%;right:auto;transform:translateX(-50%) rotate(90deg);}
.zs-vertical .zs-next{top:auto;bottom:12px;left:50%;right:auto;transform:translateX(-50%) rotate(90deg);}
.zs-arrow:disabled,.zs-arrow.zs-disabled{opacity:var(--zs-arrow-disabled-opacity);cursor:default;}
.zs-dots{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:var(--zs-dot-gap);
    list-style:none;
    margin:14px 0 0;
    padding:0;
}
.zs-dots li{display:flex;}
.zs-rtl .zs-dots{flex-direction:row-reverse;}
.zs-dots button{
    min-width:var(--zs-dot-size);
    width:var(--zs-dot-size);
    height:var(--zs-dot-size);
    padding:0;
    border:0;
    border-radius:999px;
    background:var(--zs-dot-bg);
    color:inherit;
    font:inherit;
    cursor:pointer;
    transition:width var(--zs-state-duration) var(--zs-state-easing),background var(--zs-state-duration) var(--zs-state-easing),transform var(--zs-state-duration) var(--zs-state-easing),opacity var(--zs-state-duration) var(--zs-state-easing),box-shadow var(--zs-state-duration) var(--zs-state-easing);
}
.zs-dots .zs-dot-active button{width:var(--zs-dot-active-width);background:var(--zs-dot-active-bg);}
.zs-dots-numbers button{width:auto;min-width:32px;height:32px;padding:0 9px;}
.zs-dots-numbers .zs-dot-active button{width:auto;}
.zs-dots-thumbnails{gap:8px;}
.zs-dots-thumbnails button{width:64px;height:48px;border-radius:8px;overflow:hidden;background:#e9e9e9;opacity:.55;}
.zs-dots-thumbnails .zs-dot-active button{width:64px;opacity:1;box-shadow:0 0 0 2px var(--zs-dot-active-bg);}
.zs-dots-thumbnails img{display:block;width:100%;height:100%;object-fit:cover;}
.zs-pagination{margin-top:14px;text-align:center;}
.zs-progress{position:relative;height:4px;background:var(--zs-dot-bg);overflow:hidden;border-radius:999px;}
.zs-progress-bar{display:block;width:100%;height:100%;background:var(--zs-dot-active-bg);transform:scaleX(0);transform-origin:left center;transition:transform var(--zs-state-duration) var(--zs-state-easing);}
.zs-rtl .zs-progress-bar{transform-origin:right center;}
.zs-lazy-loading{opacity:.55;}
.zs-lazy-loaded{opacity:1;}
.zs-lazy-error{opacity:.5;}
.zs-slide,
.zs-arrow,
.zs-dots li{transition-property:opacity,transform,filter;transition-duration:var(--zs-state-duration);transition-timing-function:var(--zs-state-easing);}
/* .zs-active is the logical destination. .zs-settled is applied after physical navigation completes, so projects can animate final slide dimensions without changing the target position mid-navigation. */
/* Slide animation presets. Custom CSS can target .zs-slide.zs-active / .zs-visible directly. */
.zs-slide-effect-fade .zs-slide{opacity:.35;}
.zs-slide-effect-fade .zs-slide.zs-active{opacity:1;}
.zs-slide-effect-scale .zs-slide{transform:scale(.94);}
.zs-slide-effect-scale .zs-slide.zs-active{transform:scale(1);}
.zs-slide-effect-lift .zs-slide{transform:translateY(14px);opacity:.65;}
.zs-slide-effect-lift .zs-slide.zs-active{transform:translateY(0);opacity:1;}
.zs-slide-effect-zoom .zs-slide{transform:scale(.86);opacity:.5;}
.zs-slide-effect-zoom .zs-slide.zs-active{transform:scale(1);opacity:1;}
.zs-slide-effect-blur .zs-slide{filter:blur(3px);opacity:.5;}
.zs-slide-effect-blur .zs-slide.zs-active{filter:blur(0);opacity:1;}
.zs-slide-effect-slide-left .zs-slide{transform:translateX(18px);opacity:.55;}
.zs-slide-effect-slide-left .zs-slide.zs-active{transform:translateX(0);opacity:1;}
.zs-rtl .zs-slide-effect-slide-left .zs-slide{transform:translateX(-18px);}
.zs-rtl .zs-slide-effect-slide-left .zs-slide.zs-active{transform:translateX(0);}
.zs-slide-effect-slide-right .zs-slide{transform:translateX(-18px);opacity:.55;}
.zs-slide-effect-slide-right .zs-slide.zs-active{transform:translateX(0);opacity:1;}
.zs-rtl .zs-slide-effect-slide-right .zs-slide{transform:translateX(18px);}
.zs-rtl .zs-slide-effect-slide-right .zs-slide.zs-active{transform:translateX(0);}
.zs-slide-effect-slide-up .zs-slide{transform:translateY(18px);opacity:.55;}
.zs-slide-effect-slide-up .zs-slide.zs-active{transform:translateY(0);opacity:1;}
.zs-slide-effect-slide-down .zs-slide{transform:translateY(-18px);opacity:.55;}
.zs-slide-effect-slide-down .zs-slide.zs-active{transform:translateY(0);opacity:1;}
.zs-slide-effect-soft-rotate .zs-slide{transform:rotate(-1.5deg) scale(.96);opacity:.65;}
.zs-slide-effect-soft-rotate .zs-slide.zs-active{transform:rotate(0) scale(1);opacity:1;}
.zs-slide-effect-grayscale .zs-slide{filter:grayscale(1);opacity:.58;}
.zs-slide-effect-grayscale .zs-slide.zs-active{filter:grayscale(0);opacity:1;}
.zs-slide-effect-flip .zs-slide{transform:perspective(700px) rotateY(7deg) scale(.97);opacity:.62;}
.zs-slide-effect-flip .zs-slide.zs-active{transform:perspective(700px) rotateY(0) scale(1);opacity:1;}
/* Stationary crossfade transition mode. Navigation changes logical state without track motion. */
.zs-transition-fade .zs-viewport{overflow:hidden;scroll-snap-type:none!important;}
.zs-transition-fade .zs-track{display:grid;width:100%;min-width:100%;}
.zs-transition-fade .zs-slide{grid-area:1/1;width:100%;margin:0!important;opacity:0;z-index:1;pointer-events:none;transform:none!important;filter:none!important;}
.zs-transition-fade .zs-slide.zs-active{opacity:1;z-index:2;pointer-events:auto;}
/* Static navigation mode. Every real slide stays visible and only logical state classes change. */
.zs-active-only .zs-viewport{overflow:hidden;scroll-snap-type:none!important;}
.zs-active-only .zs-slide{scroll-snap-align:none;}
/* Dot animation presets. */
.zs-dot-effect-stretch .zs-dots .zs-dot-active button{width:var(--zs-dot-active-width);}
.zs-dot-effect-scale .zs-dots .zs-dot-active button{transform:scale(1.45);}
.zs-dot-effect-pulse .zs-dots .zs-dot-active button{animation:zsDotPulse 1.1s ease-in-out infinite;}
.zs-dot-effect-ring .zs-dots .zs-dot-active button{background:transparent;box-shadow:0 0 0 2px var(--zs-dot-active-bg) inset;}
.zs-dot-effect-bounce .zs-dots .zs-dot-active button{animation:zsDotBounce .55s cubic-bezier(.2,.8,.2,1);}
.zs-dot-effect-fade .zs-dots li{opacity:.42;}.zs-dot-effect-fade .zs-dots .zs-dot-active{opacity:1;}
/* Arrow animation presets. */
.zs-arrow-effect-scale .zs-arrow:hover:not(:disabled),.zs-arrow-effect-scale .zs-arrow-active{transform:translateY(-50%) scale(1.08);}
.zs-arrow-effect-fade .zs-arrow{opacity:.7;}.zs-arrow-effect-fade .zs-arrow:hover:not(:disabled),.zs-arrow-effect-fade .zs-arrow-active{opacity:1;}
.zs-arrow-effect-slide .zs-prev:hover:not(:disabled),.zs-arrow-effect-slide .zs-prev.zs-arrow-active{transform:translate(-4px,-50%);}
.zs-arrow-effect-slide .zs-next:hover:not(:disabled),.zs-arrow-effect-slide .zs-next.zs-arrow-active{transform:translate(4px,-50%);}
.zs-arrow-effect-pulse .zs-arrow.zs-arrow-active{animation:zsArrowPulse .38s ease-out;}
.zs-vertical.zs-arrow-effect-scale .zs-arrow:hover:not(:disabled),.zs-vertical.zs-arrow-effect-scale .zs-arrow-active{transform:translateX(-50%) rotate(90deg) scale(1.08);}
.zs-vertical.zs-arrow-effect-slide .zs-prev:hover:not(:disabled),.zs-vertical.zs-arrow-effect-slide .zs-prev.zs-arrow-active{transform:translate(-50%,-4px) rotate(90deg);}
.zs-vertical.zs-arrow-effect-slide .zs-next:hover:not(:disabled),.zs-vertical.zs-arrow-effect-slide .zs-next.zs-arrow-active{transform:translate(-50%,4px) rotate(90deg);}
@keyframes zsArrowPulse{0%{opacity:1}50%{opacity:.58}100%{opacity:1}}
@keyframes zsDotBounce{0%{transform:scale(1)}55%{transform:scale(1.55)}100%{transform:scale(1)}}
@keyframes zsDotPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.45)}}
@media (prefers-reduced-motion:reduce){
    .zs-slider *{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;}
}

.zs-autoplay-continuous .zs-viewport{scroll-snap-type:none!important;}

.zs-autoplay-timeline{position:relative;width:100%;height:4px;margin-top:12px;background:#e1e1e1;overflow:hidden;border-radius:999px;}
.zs-autoplay-timeline-bar{display:block;width:100%;height:100%;background:var(--zs-dot-active-bg);transform:scaleX(0);transform-origin:left center;will-change:transform;}
.zs-rtl .zs-autoplay-timeline-bar{transform-origin:right center;}
/* Drag must temporarily own positioning; native snap resumes on release. */
.zs-dragging .zs-viewport{scroll-snap-type:none!important;}
