.book-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.book-card,
.book-card-body {
  min-width: 0;
}

.book-card-image {
  position: relative;
  overflow: hidden;
  padding: 0;
}

.book-card-image img {
  position: absolute;
  inset: 16px;
  display: block;
  width: calc(100% - 32px);
  height: calc(100% - 32px);
  max-width: none;
  object-fit: contain;
}

.book-card h3 {
  overflow-wrap: anywhere;
}

.book-card span {
  display: block;
  line-height: 1.35;
}

@media (max-width: 900px) {
  .book-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .book-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .book-card {
    border-radius: 16px;
  }

  .book-card-image {
    aspect-ratio: 3 / 4;
  }

  .book-card-image img {
    inset: 8px;
    width: calc(100% - 16px);
    height: calc(100% - 16px);
  }

  .book-card-body {
    padding: 12px 10px 14px;
  }

  .book-card h3 {
    font-size: .9rem;
    line-height: 1.18;
  }

  .book-card span {
    font-size: .68rem;
  }
}
