/* Shop blocks on the content sites. Each site sets its own colours on :root:
   --sb-accent (button/link colour), --sb-ink (text), --sb-line (borders), --sb-card (card background). */
.sb { margin: 3rem auto 2rem; max-width: 72rem; padding: 0 1rem; font: inherit; color: var(--sb-ink, inherit); }
.sb-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.sb-title { margin: 0; font-size: 1.35rem; line-height: 1.2; }
.sb-all { color: var(--sb-accent, currentColor); font-weight: 600; text-decoration: none; white-space: nowrap; }
.sb-all:hover { text-decoration: underline; }
.sb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.sb-card { display: flex; flex-direction: column; gap: .4rem; min-width: 0; padding: .6rem; border: 1px solid var(--sb-line, rgba(0,0,0,.1));
  border-radius: 10px; background: var(--sb-card, #fff); color: inherit; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.sb-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -14px rgba(0,0,0,.35); }
.sb-img { display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 6px; background: #f2f2f2; }
.sb-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sb-name { font-size: .92rem; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sb-price { font-size: .95rem; color: var(--sb-accent, currentColor); font-weight: 700; }
@media (max-width: 760px) { .sb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
