.avp-partners-wrap{
    --avp-columns:5;
    --avp-gap:24px;
    --avp-total-gap:96px;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    position:relative;
    overflow-x:hidden;
    overflow-x:clip;
}

.avp-partners,
.avp-partners *{
    box-sizing:border-box;
}

/* Desktop / výchozí režim: flex místo pevného gridu.
   Díky tomu se i 1–4 položky skutečně centrují jako celek. */
.avp-partners{
    width:100%;
    max-width:100%;
    min-width:0;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:stretch;
    gap:var(--avp-gap);
    margin:0;
    padding:4px 0;
}

.avp-item{
    min-width:0;
    width:min(247px, calc((100% - var(--avp-total-gap)) / var(--avp-columns)));
    max-width:247px;
    flex:0 1 min(247px, calc((100% - var(--avp-total-gap)) / var(--avp-columns)));
}

.avp-link{
    width:100%;
    min-height:124px;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    border-radius:16px;
    background:#fff;
    overflow:hidden;
    transition:transform .2s ease, box-shadow .2s ease;
    text-decoration:none!important;
}

a.avp-link:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(0,0,0,.12);
}

.avp-logo{
    display:block!important;
    width:100%!important;
    height:82px!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0!important;
}

.avp-card-transparent .avp-link{
    background:transparent;
    padding:16px;
}

.avp-card-transparent a.avp-link:hover{
    box-shadow:none;
}

.avp-pagination{
    display:none;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:9px;
    width:100%;
    max-width:100%;
    margin:16px 0 0;
    padding:0;
    min-height:14px;
}

/* Vyšší specificita + !important kvůli globálním button stylům Elementoru/tématu. */
.avp-partners-wrap .avp-pagination .avp-dot{
    -webkit-appearance:none!important;
    appearance:none!important;
    display:block!important;
    flex:0 0 9px!important;
    width:9px!important;
    min-width:9px!important;
    max-width:9px!important;
    height:9px!important;
    min-height:9px!important;
    max-height:9px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:999px!important;
    background:#ffffff!important;
    background-color:#ffffff!important;
    opacity:.42!important;
    box-shadow:none!important;
    outline:0!important;
    cursor:pointer;
    transform:none!important;
    transition:opacity .2s ease, transform .2s ease, background-color .2s ease!important;
}

.avp-partners-wrap .avp-pagination .avp-dot:hover,
.avp-partners-wrap .avp-pagination .avp-dot:focus-visible{
    background:#ffffff!important;
    background-color:#ffffff!important;
    opacity:.78!important;
}

.avp-partners-wrap .avp-pagination .avp-dot.is-active,
.avp-partners-wrap .avp-pagination .avp-dot[aria-current="true"]{
    background:#ffb800!important;
    background-color:#ffb800!important;
    opacity:1!important;
    transform:scale(1.28)!important;
}

/* Slider se aktivuje JS jen do 1024 px a jen pokud se položky opravdu nevejdou. */
@media (max-width:1024px){
    .avp-partners-wrap.avp-is-slider{
        width:100%;
        max-width:100%;
        min-width:0;
        overflow-x:hidden;
        overflow-x:clip;
    }

    .avp-partners-wrap.avp-is-slider .avp-partners{
        width:100%;
        max-width:100%;
        min-width:0;
        display:flex;
        flex-wrap:nowrap;
        justify-content:flex-start;
        align-items:stretch;
        gap:min(var(--avp-gap), 20px);
        overflow-x:auto;
        overflow-y:hidden;
        scroll-snap-type:x mandatory;
        scroll-behavior:smooth;
        overscroll-behavior-x:contain;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        padding:4px 0 6px;
        margin:0;
    }

    .avp-partners-wrap.avp-is-slider .avp-partners::-webkit-scrollbar{
        display:none;
        width:0;
        height:0;
    }

    .avp-partners-wrap.avp-is-slider .avp-item{
        flex:0 0 min(247px, 46%);
        width:min(247px, 46%);
        max-width:min(247px, 46%);
        min-width:0;
        scroll-snap-align:center;
        scroll-snap-stop:always;
    }

    .avp-partners-wrap.avp-is-slider .avp-pagination{
        display:flex;
    }
}

@media (max-width:600px){
    .avp-partners{
        gap:min(var(--avp-gap), 14px);
    }

    /* Když slider není potřeba (typicky jen jedno logo), karta zůstane uprostřed. */
    .avp-item{
        width:min(247px, 86%);
        max-width:min(247px, 86%);
        flex-basis:min(247px, 86%);
    }

    .avp-partners-wrap.avp-is-slider .avp-partners{
        gap:min(var(--avp-gap), 14px);
    }

    .avp-partners-wrap.avp-is-slider .avp-item{
        flex:0 0 min(247px, 82%);
        width:min(247px, 82%);
        max-width:min(247px, 82%);
    }

    .avp-link{
        min-height:112px;
        padding:20px;
        border-radius:14px;
    }

    .avp-logo{
        height:74px!important;
    }
}
