$pagination-color: $black !default;
$pagination-bg-color: $white !default;

$pagination-hover-bg-color: $black !default;
$pagination-hover-color: $white !default;

$pagination-current-bg-color: $black !default;
$pagination-current-color: $white !default;
$pagination-current-font-weight: $weight-bold;

.pagination {
  font-size: $size-normal;
  margin: -0.25rem;
}

.pagination,
.pagination-list {
  display: flex;
  align-items: center;
  text-align: center;
}

.pagination-prev,
.pagination-next,
.pagination-link,
.pagination-ellipsis {
  @extend %control;
  @extend %unselectable;

  line-height: 1.5;
  font-size: 1em;
  padding-left: 0.5em;
  padding-right: 0.5em;
  justify-content: center;
  margin: 0.25rem;
  text-align: center;

  .icon {
    width: 0.5em;
  }
}

.pagination-prev,
.pagination-next,
.pagination-link {
  color: $pagination-color;
  background-color: $pagination-bg-color;

  &:hover {
    background-color: $pagination-hover-bg-color;
    color: $pagination-hover-color;
  }

  &[disabled] {
    opacity: 0.5;
  }
}

.pagination-previous,
.pagination-next {
  padding-left: 0.75em;
  padding-right: 0.75em;
  white-space: nowrap;
}

.pagination-link {

  &.is-current {
    background-color: $pagination-current-bg-color;
    color: $pagination-current-color;
    font-weight: $pagination-current-font-weight;
  }
}

.pagination-list li:not(:last-child) {
  .pagination-link,
  .pagination-ellipsis {
    margin-right: 1.25em;
  }
}

.pagination-ellipsis {
  pointer-events: none;
}

.pagination-list {
  flex-wrap: wrap;
  justify-content: center;
}

@include mobile {
  .pagination {
    flex-wrap: wrap;
  }

  .pagination-prev,
  .pagination-next {
    flex-grow: 1;
    flex-shrink: 1;
  }

  .pagination-list {
    li {
      flex-grow: 1;
      flex-shrink: 1;
    }
  }
}

@include tablet {
  .pagination-list {
    justify-content: flex-start;
    order: 2;
  }

  .pagination-prev {
    order: 1;
  }

  .pagination-next {
    order: 3;
  }

  .pagination {

  }
}
