/* =========================================
   PREMIUM RESPONSIVE PAGINATION
   Purple + Blue + Orange + Red + White
========================================= */

.premium-pagination {
    --pagination-primary: #f68709;
    --pagination-primary-dark: #d96d00;

    --pagination-purple: #7a1d7c;
    --pagination-blue: #2457c5;
    --pagination-red: #e63946;

    --pagination-text: #344054;
    --pagination-muted: #98a2b3;
    --pagination-border: #e5e7ef;
    --pagination-bg: #ffffff;

    width: 100%;
    margin: 30px 0;
    padding: 0;
}


/* Box sizing */

.premium-pagination,
.premium-pagination * {
    box-sizing: border-box;
}


/* Main container */

.premium-pagination-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    width: 100%;
}


/* =========================================
   PAGE INFORMATION
========================================= */

.pagination-info {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: #667085;
    font-size: 13px;
    font-weight: 500;

    white-space: nowrap;
}

.pagination-info strong {
    color: var(--pagination-purple);
    font-weight: 700;
}

.pagination-info-dot {
    width: 8px;
    height: 8px;

    flex-shrink: 0;
    border-radius: 50%;

    background: linear-gradient(
        135deg,
        var(--pagination-purple),
        var(--pagination-primary)
    );

    box-shadow: 0 0 0 4px rgba(122, 29, 124, 0.10);
}


/* =========================================
   PAGINATION LIST
========================================= */

.premium-pagination-list {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 7px;

    margin: 0;
    padding: 0;

    list-style: none;
}


/* Individual items */

.premium-pagination-list .page-item {
    margin: 0;
    padding: 0;
}


/* =========================================
   PAGINATION BUTTONS
========================================= */

.premium-pagination-list .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-width: 42px;
    height: 42px;

    padding: 0 12px;

    border: 1px solid var(--pagination-border);
    border-radius: 10px;

    background: var(--pagination-bg);
    color: var(--pagination-text);

    font-size: 13px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none;
    white-space: nowrap;

    box-shadow: 0 2px 5px rgba(16, 24, 40, 0.035);

    transition:
        color 0.2s ease,
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}


/* =========================================
   HOVER EFFECT
========================================= */

.premium-pagination-list
.page-item:not(.active):not(.disabled)
.page-link:hover {

    color: var(--pagination-purple);

    background: #f8f3ff;

    border-color: rgba(122, 29, 124, 0.35);

    box-shadow: 0 4px 12px rgba(122, 29, 124, 0.09);

    transform: translateY(-1px);
}


/* Blue hover for navigation buttons */

.premium-pagination-list
.pagination-prev:not(.disabled)
.page-link:hover,
.premium-pagination-list
.pagination-next:not(.disabled)
.page-link:hover {

    color: var(--pagination-blue);

    background: #f1f6ff;

    border-color: rgba(36, 87, 197, 0.35);

    box-shadow: 0 4px 12px rgba(36, 87, 197, 0.08);
}


/* =========================================
   ACTIVE PAGE
========================================= */

.premium-pagination-list
.page-item.active .page-link {

    color: #ffffff;

    background: linear-gradient(
        135deg,
        var(--pagination-primary),
        #ff9c27
    );

    border-color: var(--pagination-primary);

    font-weight: 700;

    box-shadow: 0 5px 14px rgba(246, 135, 9, 0.24);
}


/* =========================================
   PREVIOUS AND NEXT BUTTONS
========================================= */

.premium-pagination-list .pagination-prev .page-link,
.premium-pagination-list .pagination-next .page-link {

    padding: 0 14px;

    font-weight: 600;
}


/* =========================================
   DISABLED BUTTONS
========================================= */

.premium-pagination-list
.page-item.disabled .page-link {

    color: #c2c8d0;

    background: #f9fafb;

    border-color: #edf0f4;

    box-shadow: none;

    cursor: not-allowed;

    pointer-events: none;
}


/* =========================================
   ELLIPSIS
========================================= */

.premium-pagination-list
.pagination-ellipsis .page-link {

    min-width: 22px;

    padding: 0 2px;

    border-color: transparent;

    background: transparent;

    color: var(--pagination-purple);

    font-weight: 700;

    letter-spacing: 1px;

    box-shadow: none;

    cursor: default;
}


/* =========================================
   KEYBOARD ACCESSIBILITY
========================================= */

.premium-pagination-list .page-link:focus-visible {

    outline: 3px solid rgba(122, 29, 124, 0.22);

    outline-offset: 3px;

    z-index: 2;
}


/* =========================================
   TABLET RESPONSIVENESS
========================================= */

@media (max-width: 768px) {

    .premium-pagination {
        margin: 24px 0;
    }

    .premium-pagination-inner {
        flex-direction: column;
        gap: 16px;
    }

    .pagination-info {
        justify-content: center;
    }

    .premium-pagination-list {
        gap: 6px;
    }

    .premium-pagination-list .page-link {
        min-width: 40px;
        height: 40px;

        padding: 0 10px;

        border-radius: 9px;
    }
}


/* =========================================
   MOBILE RESPONSIVENESS
========================================= */

@media (max-width: 480px) {

    .premium-pagination {
        margin: 22px 0;
    }

    .premium-pagination-inner {
        gap: 14px;
    }

    .pagination-info {
        font-size: 12px;
    }

    .premium-pagination-list {
        width: 100%;

        flex-wrap: nowrap;

        justify-content: center;

        gap: 4px;
    }

    .premium-pagination-list .page-link {
        min-width: 34px;
        height: 36px;

        padding: 0 7px;

        border-radius: 8px;

        font-size: 12px;
    }

    .premium-pagination-list .pagination-prev .page-link,
    .premium-pagination-list .pagination-next .page-link {

        gap: 5px;

        padding: 0 9px;
    }

    .premium-pagination-list .pagination-label {
        display: none;
    }

    .premium-pagination-list
    .pagination-ellipsis .page-link {

        min-width: 18px;

        padding: 0;
    }
}


/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {

    .premium-pagination-list .page-link {
        transition: none;
    }

    .premium-pagination-list
    .page-item:not(.active):not(.disabled)
    .page-link:hover {

        transform: none;
    }
}