/* A single row moves between its actual first and last logo. */
.partners-window {
    overflow-x: hidden;
    overflow-y: hidden;
    --partners-edge: 32px;
    padding-inline: var(--partners-edge);
    mask-image: linear-gradient(90deg, transparent 0, #000 var(--partners-edge), #000 calc(100% - var(--partners-edge)), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--partners-edge), #000 calc(100% - var(--partners-edge)), transparent 100%);
    scrollbar-width: thin;
}
.partners-window.is-moving { overflow: hidden; }
.partners-track {
    display: flex;
    width: max-content;
    margin-inline: auto;
    animation: none !important;
}
.partners-set {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 18px;
    padding-right: 0;
}
/* Compatibility with the earlier template which duplicated the row. */
.partners-set[aria-hidden="true"] { display: none; }
.partners-set img {
    display: block;
    width: 160px;
    height: 96px;
    flex: 0 0 160px;
    object-fit: contain;
    object-position: center;
}
@media (max-width: 767px) {
    .partners-window { --partners-edge: 20px; }
    .partners-set { gap: 12px; padding-right: 0; }
    .partners-set img { width: 120px; height: 80px; flex-basis: 120px; }
}
@media (prefers-reduced-motion: reduce) {
    .partners-window.is-moving { overflow-x: hidden; }
}

/* Logos are a passive display, with no pointer, focus or drag controls. */
.partners-window, .partners-window * {
    pointer-events: none !important;
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
}
.partners-window:hover .partners-track,
.partners-window:focus .partners-track,
.partners-window:focus-within .partners-track {
    animation-play-state: running !important;
}
@media (prefers-reduced-motion: reduce) {
    .partners-window, .partners-window.is-moving { overflow: visible; padding-inline: 0; mask-image: none; -webkit-mask-image: none; }
    .partners-track { width: 100%; }
    .partners-set { width: 100%; flex-wrap: wrap; justify-content: center; }
}

/* A tighter rhythm around the logo row. */
.partners.section { padding-top: 32px; padding-bottom: 28px; }
.partners h2 { margin-bottom: 20px; }
@media (max-width: 767px) {
    .partners.section { padding-top: 24px; padding-bottom: 22px; }
    .partners h2 { margin-bottom: 16px; }
}

/* Keep the moving row in its own compositing layer. */
.partners-track { transform: translate3d(0, 0, 0); }
.partners-window.is-moving .partners-track { will-change: transform; }
