/* mod_vmx_manufacturers – no external libraries */
.vmx-mf {
    --vmx-per: var(--vmx-per-sm, 2);
    --vmx-bg: transparent;
    --vmx-border: transparent;
    position: relative;
}
@media (min-width: 768px)  { .vmx-mf { --vmx-per: var(--vmx-per-md, 4); } }
@media (min-width: 992px)  { .vmx-mf { --vmx-per: var(--vmx-per-lg, 5); } }
@media (min-width: 1200px) { .vmx-mf { --vmx-per: var(--vmx-per-xl, 6); } }

.vmx-mf__track {
    display: flex;
    gap: var(--vmx-gap, 15px);
    margin: 0;
    padding: 2px 0;
    list-style: none;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
}
.vmx-mf__track::-webkit-scrollbar { display: none; }
.vmx-mf__track:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.vmx-mf__item {
    flex: 0 0 calc((100% - (var(--vmx-per) - 1) * var(--vmx-gap, 15px)) / var(--vmx-per));
    min-width: 0;
    scroll-snap-align: start;
    text-align: center;
}

.vmx-mf__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: calc(var(--vmx-logo-h, 80px) + 2 * var(--vmx-pad, 10px));
    padding: var(--vmx-pad, 10px);
    background: var(--vmx-bg);
    border: 1px solid var(--vmx-border);
    border-radius: var(--vmx-radius, 4px);
    color: inherit;
    text-decoration: none;
}
.vmx-mf__logo img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.vmx-mf__text { font-weight: 600; overflow-wrap: anywhere; }
.vmx-mf__name { margin-top: .35rem; font-size: .875em; }

.vmx-mf--gray .vmx-mf__logo img { filter: grayscale(1); opacity: .7; transition: filter .25s, opacity .25s; }
.vmx-mf--gray .vmx-mf__logo:hover img,
.vmx-mf--gray .vmx-mf__logo:focus-visible img { filter: none; opacity: 1; }

.vmx-mf__nav {
    position: absolute;
    top: calc(var(--vmx-logo-h, 80px) / 2 + var(--vmx-pad, 10px));
    transform: translateY(-50%);
    z-index: 2;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: opacity .2s;
}
.vmx-mf__nav--prev { left: .25rem; }
.vmx-mf__nav--next { right: .25rem; }
.vmx-mf__nav:disabled { opacity: .25; cursor: default; }
.vmx-mf__nav:focus-visible { outline: 2px solid #fff; box-shadow: 0 0 0 4px rgba(0, 0, 0, .55); }

.vmx-mf__dots { display: flex; justify-content: center; gap: .4rem; margin-top: .6rem; }
.vmx-mf__dots button {
    width: .6rem; height: .6rem; padding: 0; border: 0; border-radius: 50%;
    background: currentColor; opacity: .25; cursor: pointer;
}
.vmx-mf__dots button[aria-current="true"] { opacity: .8; }

/* Everything fits: no navigation needed */
.vmx-mf.is-static .vmx-mf__nav,
.vmx-mf.is-static .vmx-mf__dots { display: none; }

@media (prefers-reduced-motion: reduce) {
    .vmx-mf__track { scroll-behavior: auto; }
}

/* Touch screens: swipe instead of arrows (they would cover the logos) */
@media (max-width: 767.98px) {
    .vmx-mf__nav { display: none; }
}
