.shop-hero { padding: 48px 32px 28px; }
.shop-eyebrow {
  font-size: 12px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--amber-dark); margin-bottom: 12px;
}
.shop-title { font-size: clamp(34px, 4vw, 50px); font-weight: 700; margin: 0 0 12px; }
.shop-sub { color: var(--gray); font-size: 15px; max-width: 620px; margin-bottom: 28px; }

.shop-controls { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.shop-search-wrap {
  position: relative; flex: 1; min-width: 280px; max-width: 480px;
}
.shop-search-wrap .search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font-size: 14px; opacity: 0.5; }
.shop-search-wrap input {
  width: 100%; padding: 12px 16px 12px 38px; border-radius: 999px; border: 1px solid var(--border);
  background: var(--card); font-size: 14px; outline: none;
  transition: border-color var(--dur-2) ease, box-shadow var(--dur-2) ease;
}
.shop-search-wrap input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(44,107,92,0.12); }
#shop-sort {
  padding: 12px 16px; border-radius: 999px; border: 1px solid var(--border); background: var(--card);
  font-size: 14px; font-weight: 600; color: var(--ink); cursor: pointer; outline: none;
}
.shop-count { margin-top: 16px; font-size: 13px; color: var(--gray); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }

.shop-grid-section { padding: 12px 32px 64px; }
.shop-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px;
}
.shop-card {
  display: block; background: var(--card); border: 1px solid var(--border); border-radius: 16px;
  overflow: hidden; transition: transform var(--dur-2) var(--ease-out-cubic), box-shadow var(--dur-2) ease;
}
.shop-card:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(0,0,0,0.1); }
.shop-card-cover {
  width: 100%; aspect-ratio: 3 / 4.2; background-size: cover; background-position: center;
  display: flex; align-items: flex-end; justify-content: center; padding: 14px; position: relative;
}
.shop-card-cover .placeholder-title { color: #fff; font-weight: 800; font-size: 12px; line-height: 1.3; text-align: center; text-shadow: 0 1px 2px rgba(0,0,0,0.2); }
.shop-stock-badge {
  position: absolute; top: 10px; left: 10px; font-size: 10px; font-weight: 800; text-transform: uppercase;
  padding: 4px 9px; border-radius: 999px; background: rgba(255,255,255,0.92); color: var(--teal-dark);
}
.shop-stock-badge.out { color: var(--gray); }
.shop-card-body { padding: 14px 16px 16px; }
.shop-card-title { font-weight: 700; font-size: 13px; line-height: 1.35; margin-bottom: 6px; min-height: 35px; }
.shop-card-isbn { font-size: 11px; color: var(--gray); margin-bottom: 10px; }
.shop-card-price-row { display: flex; align-items: baseline; justify-content: space-between; }
.shop-card-price { font-size: 17px; font-weight: 800; color: var(--teal-dark); }
.shop-card-save { font-size: 10px; color: #1f7a52; font-weight: 700; }

.shop-empty { text-align: center; color: var(--gray); padding: 60px 0; font-size: 14px; }
.shop-load-more { display: block; margin: 36px auto 0; }

@media (max-width: 1100px) { .shop-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .shop-grid { grid-template-columns: repeat(2, 1fr); } .shop-search-wrap { max-width: none; } }
