/* Modern Slider 1.1.0 — lightweight, responsive, no layout overflow */
.ms-slider{
  position:relative;
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  aspect-ratio:var(--ms-ratio,16/7);
  overflow:hidden;
  border-radius:18px;
  background:#eef1f4;
  isolation:isolate;
  touch-action:pan-y;
}
.ms-slider.ms-height-auto{height:auto}
.ms-slider.ms-height-fixed{aspect-ratio:var(--ms-ratio,16/7);height:auto}
.ms-viewport{position:relative;width:100%;height:100%;min-height:1px;overflow:hidden}
.ms-track{position:relative;width:100%;height:100%;min-height:1px}
.ms-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-width:0;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:0;
  backface-visibility:hidden;
  transform:translate3d(0,0,0);
}
.ms-slide.is-current{opacity:1;visibility:visible;pointer-events:auto;z-index:2}
.ms-slide.is-old,.ms-slide.is-target{visibility:visible;z-index:3}
.ms-slide-link{display:block;width:100%;height:100%;position:relative;z-index:4;cursor:pointer;touch-action:manipulation}
.ms-slide-link img{pointer-events:none}
.ms-picture{display:block;width:100%;height:100%}
.ms-picture img{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  height:auto;
  user-select:none;
  -webkit-user-drag:none;
  vertical-align:middle;
  object-fit:contain;
  object-position:center top;
  backface-visibility:hidden;
}

/* Animation states */
.ms-slider.ms-animating .ms-slide{will-change:transform,opacity,clip-path}
.ms-slider.ms-effect-slide.ms-dir-next .ms-slide.is-target{animation:msInNext var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-slide.ms-dir-next .ms-slide.is-old{animation:msOutNext var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-slide.ms-dir-prev .ms-slide.is-target{animation:msInPrev var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-slide.ms-dir-prev .ms-slide.is-old{animation:msOutPrev var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}

.ms-slider.ms-effect-fade .ms-slide.is-target{animation:msFadeIn var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-fade .ms-slide.is-old{animation:msFadeOut var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}

.ms-slider.ms-effect-zoom .ms-slide.is-target{animation:msZoomIn var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-zoom .ms-slide.is-old{animation:msZoomOut var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}

.ms-slider.ms-effect-reveal.ms-dir-next .ms-slide.is-target{animation:msRevealNext var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-reveal.ms-dir-prev .ms-slide.is-target{animation:msRevealPrev var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-reveal .ms-slide.is-old{animation:msRevealOld var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}

.ms-slider.ms-effect-slide-fade.ms-dir-next .ms-slide.is-target{animation:msSlideFadeInNext var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-slide-fade.ms-dir-next .ms-slide.is-old{animation:msSlideFadeOutNext var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-slide-fade.ms-dir-prev .ms-slide.is-target{animation:msSlideFadeInPrev var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-effect-slide-fade.ms-dir-prev .ms-slide.is-old{animation:msSlideFadeOutPrev var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}

/* First-load intro */
.ms-slider.ms-intro.ms-effect-slide .ms-slide.is-current{animation:msIntroSlide var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-intro.ms-effect-fade .ms-slide.is-current{animation:msFadeIn var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-intro.ms-effect-zoom .ms-slide.is-current{animation:msZoomIntro var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-intro.ms-effect-reveal .ms-slide.is-current{animation:msIntroReveal var(--ms-transition,650ms) cubic-bezier(.22,.61,.36,1) both}
.ms-slider.ms-intro.ms-effect-slide-fade .ms-slide.is-current{animation:msIntroSlideFade var(--ms-transition,600ms) cubic-bezier(.22,.61,.36,1) both}

@keyframes msInNext{from{transform:translate3d(100%,0,0);opacity:1}to{transform:none;opacity:1}}
@keyframes msOutNext{from{transform:none;opacity:1}to{transform:translate3d(-100%,0,0);opacity:1}}
@keyframes msInPrev{from{transform:translate3d(-100%,0,0);opacity:1}to{transform:none;opacity:1}}
@keyframes msOutPrev{from{transform:none;opacity:1}to{transform:translate3d(100%,0,0);opacity:1}}
@keyframes msFadeIn{from{opacity:0}to{opacity:1}}
@keyframes msFadeOut{from{opacity:1}to{opacity:0}}
@keyframes msZoomIn{from{opacity:0;transform:scale(1.055)}to{opacity:1;transform:scale(1)}}
@keyframes msZoomOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.985)}}
@keyframes msZoomIntro{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
@keyframes msRevealNext{from{opacity:1;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes msRevealPrev{from{opacity:1;clip-path:inset(0 0 0 100%)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes msRevealOld{from{opacity:1}to{opacity:.98}}
@keyframes msIntroReveal{from{clip-path:inset(0 100% 0 0);opacity:1}to{clip-path:inset(0);opacity:1}}
@keyframes msSlideFadeInNext{from{opacity:0;transform:translate3d(5%,0,0)}to{opacity:1;transform:none}}
@keyframes msSlideFadeOutNext{from{opacity:1;transform:none}to{opacity:0;transform:translate3d(-5%,0,0)}}
@keyframes msSlideFadeInPrev{from{opacity:0;transform:translate3d(-5%,0,0)}to{opacity:1;transform:none}}
@keyframes msSlideFadeOutPrev{from{opacity:1;transform:none}to{opacity:0;transform:translate3d(5%,0,0)}}
@keyframes msIntroSlide{from{transform:translate3d(20%,0,0);opacity:0}to{transform:none;opacity:1}}
@keyframes msIntroSlideFade{from{opacity:0;transform:translate3d(5%,0,0)}to{opacity:1;transform:none}}

.ms-arrow{
  position:absolute;z-index:20;top:50%;width:46px;height:46px;margin:0;padding:0;
  transform:translateY(-50%);border:0;border-radius:50%;background:rgba(17,24,39,.64);
  display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:.95;
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
  user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.ms-arrow:hover{transform:translateY(-50%) scale(1.06);background:rgba(17,24,39,.82);opacity:1}
.ms-arrow span{display:block;width:10px;height:10px;border-top:2.5px solid #fff;border-right:2.5px solid #fff}
.ms-prev{left:16px}.ms-prev span{transform:rotate(-135deg);margin-left:4px}
.ms-next{right:16px}.ms-next span{transform:rotate(45deg);margin-right:4px}
.ms-arrow:focus-visible,.ms-dot:focus-visible{outline:3px solid rgba(34,113,177,.65);outline-offset:3px}

.ms-dots{
  position:absolute;z-index:20;left:50%;bottom:14px;transform:translateX(-50%);
  display:flex;gap:7px;padding:7px 10px;border-radius:999px;background:rgba(17,24,39,.38);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
.ms-dot{
  width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.58);
  cursor:pointer;transition:width .22s ease,background .22s ease;touch-action:manipulation;
  user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent
}
.ms-dot.is-active{width:24px;border-radius:99px;background:#fff}
.ms-slider.is-dragging{cursor:grabbing}
.ms-slider.is-dragging .ms-slide{transition:none!important}
.ms-slider,.ms-slider *{box-sizing:border-box}
@media(max-width:767px){
  .ms-slider{border-radius:12px}
  .ms-arrow{width:40px;height:40px}
  .ms-prev{left:10px}.ms-next{right:10px}
  .ms-arrow span{width:9px;height:9px}
  .ms-dots{bottom:9px;gap:6px;padding:6px 8px}
  .ms-dot{width:7px;height:7px}.ms-dot.is-active{width:20px}
}
@media(prefers-reduced-motion:reduce){
  .ms-slide,.ms-arrow,.ms-dot{animation:none!important;transition:none!important}
  .ms-slider.ms-intro .ms-slide.is-current{animation:none!important}
}
