/* ==========================================================================
   PAGES-BOOKS.CSS — Books catalog page styles
   ========================================================================== */

/* --------------------------------------------------------------------------
   CATALOG HERO
   -------------------------------------------------------------------------- */
.catalog-hero {
  padding-block: var(--space-12) var(--space-8);
  text-align: center;
}

.catalog-hero__title {
  margin-bottom: var(--space-3);
}

.catalog-hero__desc {
  max-width: 55ch;
  margin-inline: auto;
  font-size: var(--font-size-lg);
}

/* --------------------------------------------------------------------------
   CATALOG GRID
   -------------------------------------------------------------------------- */
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-6);
}

.catalog-card {
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: linear-gradient(180deg, var(--color-surface-hover), var(--color-surface));
  overflow: hidden;
  transition: transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal);
}

.catalog-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(250, 204, 21, 0.3);
}

.catalog-card__cover {
  aspect-ratio: 3/2;
  background: 
    radial-gradient(400px 150px at 30% 30%, rgba(250, 204, 21, 0.15), transparent 50%),
    radial-gradient(400px 150px at 70% 50%, rgba(245, 158, 11, 0.1), transparent 50%),
    var(--color-surface);
  border-bottom: 1px solid var(--color-border-subtle);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.catalog-card__cover img {
  height: 100%;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.catalog-card__cover-placeholder {
  text-align: center;
  padding: var(--space-5);
}

.catalog-card__cover-placeholder-title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-extrabold);
  margin-bottom: var(--space-1);
}

.catalog-card__cover-placeholder-sub {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.catalog-card__body {
  padding: var(--space-5);
}

.catalog-card__badge {
  margin-bottom: var(--space-3);
}

.catalog-card__title {
  margin-bottom: var(--space-1);
}

.catalog-card__author {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
}

.catalog-card__desc {
  margin-bottom: var(--space-4);
  font-size: var(--font-size-sm);
}

.catalog-card__actions {
  display: flex;
  gap: var(--space-3);
}

/* --------------------------------------------------------------------------
   EMPTY STATE
   -------------------------------------------------------------------------- */
.catalog-empty {
  text-align: center;
  padding: var(--space-16);
}

.catalog-empty__icon {
  font-size: 48px;
  margin-bottom: var(--space-4);
  opacity: 0.5;
}

.catalog-empty__title {
  margin-bottom: var(--space-2);
}

