.single-book,
.books-list {
  --book-cover-radius: var(--literary-cover-radius, 8px);
}

.single-book.has-square-covers,
.books-list.has-square-covers {
  --book-cover-radius: 0px;
}

.books-list .single-book .book-cover {
  width: 100%;
  max-width: var(--book-cover-max, clamp(240px, 28vw, 340px));
  min-width: var(--book-cover-min, 240px); /* prevent excessive shrink on wide-aspect, short viewports */
  margin: 0;
  aspect-ratio: var(--book-cover-aspect, 2 / 3);
  border-radius: var(--book-cover-radius, var(--literary-cover-radius, 8px));
  overflow: hidden;
  filter: drop-shadow(-1px 1px 1px rgba(0, 0, 0, 0.5));
}

.book-purchase img {
  width: auto;
  height: 28px;
}

.single-book .book-cover img,
.books-list .single-book .book-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

/* Widescreen: match Books List grid cap (min(49dvh, 420px)) for visual parity */
@media (min-width: 80em) {
  .single-book {
    --book-cover-min: 260px; /* floor the cover size even when dvh is small */
    --book-cover-max: min(49dvh, 420px);
  }
}

/* Parity with list float variant for mid-wide viewports */
@media (min-width: 64.0625em) and (max-width: 79.999em) {
  .single-book {
    --book-cover-max: 320px;
    --book-cover-min: 260px;
  }
}
