/* 共通ページング: 親側で色やサイズを変えられるよう変数化 */
.pagination {
  --pagination-gap: 8px;
  --pagination-size: 30px;
  --pagination-border-color: #d7d7d7;
  --pagination-surface-color: var(--brand-white);
  --pagination-text-color: var(--color-muted);
  --pagination-font-size: 15px;
  --pagination-current-surface-color: var(--brand-black);
  --pagination-current-border-color: var(--brand-black);
  --pagination-current-text-color: var(--brand-white);
  --pagination-disabled-color: var(--brand-gray);
  --pagination-arrow-size: 6px;
  --pagination-double-arrow-offset: 2.5px;
  --pagination-arrow-optical-offset: -1px;
}

.pagination__list {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--pagination-gap);
  padding: 0;
  margin: 0;
}

.pagination__item {
  display: flex;
}

.pagination__item .page-numbers,
.pagination__control {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--pagination-size);
  height: var(--pagination-size);
  border: 1px solid var(--pagination-border-color);
  background: var(--pagination-surface-color);
  color: var(--pagination-text-color);
  font-size: var(--pagination-font-size);
  line-height: 1;
}

.pagination__item .page-numbers.current {
  background: var(--pagination-current-surface-color);
  border-color: var(--pagination-current-border-color);
  color: var(--pagination-current-text-color);
}

.pagination__item .page-numbers.dots {
  width: auto;
  min-width: 18px;
  border: none;
  background: transparent;
  color: var(--pagination-text-color);
  padding: 0;
}

.pagination__control::before,
.pagination__control::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--pagination-arrow-size);
  height: var(--pagination-arrow-size);
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
}

.pagination__control--first::before {
  left: calc(50% - var(--pagination-double-arrow-offset) - var(--pagination-arrow-optical-offset));
  transform: translate(-50%, -50%) rotate(-135deg);
}

.pagination__control--first::after {
  left: calc(50% + var(--pagination-double-arrow-offset) - var(--pagination-arrow-optical-offset));
  transform: translate(-50%, -50%) rotate(-135deg);
}

.pagination__control--prev::before {
  left: calc(50% - var(--pagination-arrow-optical-offset));
  transform: translate(-50%, -50%) rotate(-135deg);
}

.pagination__control--prev::after {
  display: none;
}

.pagination__control--next::before {
  left: calc(50% + var(--pagination-arrow-optical-offset));
  transform: translate(-50%, -50%) rotate(45deg);
}

.pagination__control--next::after {
  display: none;
}

.pagination__control--last::before {
  left: calc(50% - var(--pagination-double-arrow-offset) + var(--pagination-arrow-optical-offset));
  transform: translate(-50%, -50%) rotate(45deg);
}

.pagination__control--last::after {
  left: calc(50% + var(--pagination-double-arrow-offset) + var(--pagination-arrow-optical-offset));
  transform: translate(-50%, -50%) rotate(45deg);
}

.pagination__control.is-disabled {
  color: var(--pagination-disabled-color);
}
