.banner-section {
    position: relative; width: 100%; overflow: hidden;
    background: transparent;
}

.banner-slider { width: 100%; overflow: hidden; }

.banner-track {
    display: flex;
    transition: transform 0.45s cubic-bezier(.4,0,.2,1);
    will-change: transform;
}

.banner-slide { min-width: 100%; position: relative; }

.banner-link, .banner-link--btn, .banner-link--static {
    display: block; width: 100%; border: none; padding: 0;
    background: none; cursor: pointer; text-align: left;
}

.banner-link--static { cursor: default; }

.banner-img-wrap {
    position: relative; width: 100%;
    background: transparent;
    overflow: hidden;
}

.banner-img-wrap img {
    width: 100%; height: auto; object-fit: contain; object-position: center;
    display: block;
}

.banner-dots {
    display: flex; justify-content: center; gap: 5px;
    padding: 6px 0 5px;
    background: transparent;
}

.banner-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--border); border: none; cursor: pointer; padding: 0;
    transition: background var(--transition), width var(--transition);
}

.banner-dot.active {
    background: var(--primary); width: 18px; border-radius: 3px;
}