/* Native pagination stays visible until JavaScript has found a working Next link. */
.sdip-infinite-ready > nav.woocommerce-pagination,
.sdip-infinite-ready > .woocommerce-pagination,
.sdip-infinite-ready nav.woocommerce-pagination,
.sdip-infinite-ready .woocommerce-pagination {
    display: none !important;
}

/* If an AJAX request fails, JS removes .sdip-infinite-ready and pagination becomes visible again. */
.sdip-loader,
.sdip-finished {
    clear: both;
    width: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    padding: 18px 0;
    box-sizing: border-box;
}

.sdip-loader[hidden] {
    display: none !important;
}

.sdip-spinner {
    width: 22px;
    height: 22px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: sdip-spin .75s linear infinite;
    box-sizing: border-box;
}

.sdip-sentinel {
    width: 100%;
    height: 1px;
    clear: both;
    pointer-events: none;
}

.sdip-appended-product {
    animation: sdip-fade-in .28s ease both;
}

@keyframes sdip-spin {
    to { transform: rotate(360deg); }
}

@keyframes sdip-fade-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .sdip-spinner,
    .sdip-appended-product {
        animation: none;
    }
}
