/* ==========================================
   Long Pagination
   Supports 1-7+ digit page numbers
   ========================================== */

.pagination-wrapper {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 10px 0;
    -webkit-overflow-scrolling: touch;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    margin-bottom: 0;
}

.pagination .page-item {
    width: auto !important;
    min-width: 0 !important;
    flex: 0 0 auto;
}

.pagination .page-link {
    width: auto !important;
    min-width: 44px !important;
    height: 40px;

    padding: 0 12px !important;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    white-space: nowrap;

    font-size: 14px;
    line-height: 1;

    border-radius: 4px;
}

/* Large numeric page buttons */
.pagination .page-link:not([aria-label]) {
    width: auto !important;
    min-width: 44px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
}

/* Previous / Next */
.pagination .page-link[aria-label="Previous"],
.pagination .page-link[aria-label="Next"] {
    width: auto !important;
    min-width: 44px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
}

/* Active page */
.pagination .page-item.active .page-link,
.pagination .page-item.active span.page-link {
    width: auto !important;
    min-width: 44px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: nowrap;
}

/* Disabled button / ... */
.pagination .page-item.disabled .page-link,
.pagination .page-item.disabled span.page-link {
    width: auto !important;
    min-width: 40px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

/* Prevent long numbers from being cut */
.pagination .page-link,
.pagination .page-item {
    max-width: none !important;
    overflow: visible !important;
    text-overflow: unset !important;
}

/* ==========================================
   Mobile
   ========================================== */

@media (max-width: 767px) {

    .pagination-wrapper {
        overflow-x: auto;
        overflow-y: hidden;
    }

    .pagination {
        flex-wrap: nowrap;
        width: max-content;
        min-width: max-content;
    }

    .pagination .page-item {
        flex: 0 0 auto;
    }

    .pagination .page-link {
        min-width: 42px !important;
        height: 38px;
        padding: 0 10px !important;
        font-size: 13px;
    }

    .pagination .page-link[aria-label="Previous"],
    .pagination .page-link[aria-label="Next"] {
        min-width: 42px !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}