.slider{--dur:5.6s;position:relative;overflow:hidden;background:#0F2A5F;outline:none;touch-action:pan-y}
.slider:focus-visible{box-shadow:0 0 0 4px var(--yellow),0 18px 40px rgba(18,48,107,.18)}
.slides{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 0s linear 1.1s}
.slide img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1);transform-origin:50% 50%}
.slide.is-active{opacity:1;visibility:visible;transition:opacity 1.1s ease,visibility 0s;z-index:2}
.slide.is-active img{transform:scale(1.08);transition:transform 7.5s cubic-bezier(.25,.1,.25,1)}
.slide.is-prev{opacity:0;visibility:visible;z-index:1;transition:opacity 1.1s ease,visibility 0s linear 1.1s}
.slide.is-prev img{transform:scale(1.08);transition:none}
.slide::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;background:linear-gradient(180deg,rgba(15,42,95,0),rgba(15,42,95,.55));pointer-events:none}
.slide-cap{position:absolute;left:18px;bottom:52px;z-index:3;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--navy);font-size:13px;font-weight:800;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}
.slide.is-active .slide-cap{opacity:1;transform:none;transition:opacity .6s ease .45s,transform .6s cubic-bezier(.2,.7,.2,1) .45s}

.s-nav{position:absolute;top:50%;z-index:5;width:44px;height:44px;margin-top:-22px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(15,42,95,.3);opacity:0;transition:opacity .25s ease,transform .25s cubic-bezier(.3,1.5,.5,1),background-color .2s}
.s-nav svg{width:22px;height:22px}
.s-prev{left:14px;transform:translateX(-8px)}
.s-next{right:14px;transform:translateX(8px)}
.slider:focus-within .s-nav,.slider:hover .s-nav{opacity:1;transform:none}
.s-nav:hover{background:#fff;transform:scale(1.1)!important}
.s-nav:focus-visible,.s-dot:focus-visible,.s-pause:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}

.s-bar{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:0 16px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.s-dots{display:flex;align-items:center;gap:6px}
.s-dot{position:relative;width:44px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.s-dot i{position:relative;display:block;width:26px;height:5px;border-radius:5px;background:rgba(255,255,255,.45);overflow:hidden;transition:width .4s cubic-bezier(.2,.7,.2,1),background-color .3s}
.s-dot:hover i{background:rgba(255,255,255,.8)}
.s-dot.is-active i{width:40px;background:rgba(255,255,255,.45)}
.s-dot.is-active i::after{content:"";position:absolute;inset:0;background:var(--yellow);transform:scaleX(0);transform-origin:left;animation:sfill var(--dur) linear forwards}
.slider.is-paused .s-dot.is-active i::after{animation-play-state:paused}
.slider.is-manual .s-dot.is-active i::after{animation:none;transform:scaleX(1)}
@keyframes sfill{to{transform:scaleX(1)}}

.s-pause{flex:none;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.88);color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s}
.s-pause:hover{background:#fff;transform:scale(1.1)}
.ic-pause{display:block;width:10px;height:12px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.s-pause.is-stopped .ic-pause{width:0;height:0;border-left:10px solid currentColor;border-right:0;border-top:6px solid transparent;border-bottom:6px solid transparent;margin-left:2px}

@media (max-width:760px){
  .s-nav{display:none}
  .slide-cap{left:12px;bottom:46px;font-size:12px;padding:5px 12px}
  .s-bar{padding:0 10px 10px}
  .s-dots{gap:2px}
  .s-dot{width:26px}
  .s-dot i{width:14px}
  .s-dot.is-active i{width:24px}
}
@media (prefers-reduced-motion:reduce){
  .slide,.slide.is-active,.slide.is-prev{transition:none!important}
  .slide.is-active img{transform:none!important}
  .slide-cap{opacity:1;transform:none}
  .s-dot.is-active i::after{animation:none!important;transform:scaleX(1)}
}
