.hdeng-pagination-item() {
    text-align: center;
    min-width: 48px;
    display: inline-block;
    color: @hdeng-body-font-highlight-color !important;
    margin: (@hdeng-spacing / 4);
    padding: (@hdeng-spacing / 4) (@hdeng-spacing / 2);
    border-radius: @hdeng-border-radius;

    &:first-child {
        margin-left: 0;
    }

    &:last-child {
        margin-right: 0;
    }
}

.hdeng-pagination-item-page() {
    .hdeng-pagination-item();

    background: @hdeng-body-bg-contrast-color;

    cursor: pointer;
    text-decoration: none;

    &:hover {
        color: @hdeng-body-font-highlight-color !important;
        background: @hdeng-body-bg-highlight-color;
    }

    @media (max-width: @hdeng-breakpoint-default) {
        display: none;

        &:first-child,
        &:last-child {
            display: inline-block;
        }
    }
}

.hdeng-pagination-item-dots() {
    padding: (@hdeng-spacing / 4);
}

.hdeng-pagination-item-current() {
    .hdeng-pagination-item();
    background: @hdeng-body-bg-highlight-color;
}

.hdeng-pagination-item-disabled() {
    .hdeng-pagination-item();

    color: fade(@hdeng-body-font-highlight-color, 25%) !important;
    background: fade(@hdeng-body-bg-contrast-color, 50%);

    cursor: default;
    pointer-events: none;
}

//== Generates
.hdeng-pagination-critical-generate() {
    // Silence
}

.hdeng-pagination-generate() {
    .pagination {
        text-align: center;
    }

    .pagination__page {
        .hdeng-pagination-item-page();
    }

    .pagination__dots {
        .hdeng-pagination-item-dots();
    }

    .pagination__current {
        .hdeng-pagination-item-current();
    }

    .pagination__disabled {
        .hdeng-pagination-item-disabled();
    }
}
