/**
 * Pagination component styles.
 * Reusable page navigation with numbered buttons and first/prev/next/last controls.
 * Used on: radios (home), podcasts, blog pages.
 */

.pagination {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  margin-top: var(--space-xl);
  padding-bottom: var(--space-md);
}

.pagination__info {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  font-weight: var(--font-weight-medium);
}

.pagination__current,
.pagination__total {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
}

.pagination__controls {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

.pagination__button {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  background-color: var(--color-bg-elevated);
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-sm);
  border-radius: var(--radius-sm);
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--transition-fast),
              border-color var(--transition-fast),
              color var(--transition-fast),
              box-shadow var(--transition-fast);
  --ui-hover-transform: scale(1.04);
  --ui-active-transform: scale(0.95);
}

.pagination__button:hover {
  border-color: var(--color-border-hover);
  background-color: var(--color-bg-muted);
  box-shadow: var(--shadow-sm);
}

.pagination__button:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Currently selected page */
.pagination__button--active {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  border-color: var(--color-primary);
  cursor: default;
}

.pagination__button--active:hover {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  border-color: var(--color-primary);
}

/* Disabled state (e.g. prev on first page, next on last page) */
.pagination__button--disabled {
  cursor: default;
  opacity: 0.5;
}

/* Navigation arrow buttons */
.pagination__button--first,
.pagination__button--last,
.pagination__button--prev,
.pagination__button--next {
  font-weight: var(--font-weight-bold);
}

/* Responsive: allow controls to wrap on small screens */
@media (max-width: 768px) {
  .pagination__controls {
    flex-wrap: wrap;
    justify-content: center;
  }
}
