.slider {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    box-shadow: var(--shadow)
}

.slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .8s
}

.slide.show {
    opacity: 1
}

.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.slider::before {
    content: '';
    display: block;
    padding-top: 56%
}

/* controls for slider--controlled */
.slider--controlled .slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(11,18,32,0.6);
    color: #fff;
    border: none;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 5;
}

.slider--controlled .slider-btn.prev { left: 12px }
.slider--controlled .slider-btn.next { right: 12px }

.slider--controlled .slider-dots {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 12px;
    display: flex;
    gap: 8px;
    z-index: 5;
}

.slider--controlled .slider-dots .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.55);
    cursor: pointer;
}

.slider--controlled .slider-dots .dot.active {
    background: #fff;
}