/* Shop carousel */
.shop-carousel { --slide-gap: clamp(1rem, 2vw, 1.5rem); --slide-w: calc((100% - 3 * var(--slide-gap)) / 4); }
.shop-card__link { display: block; text-decoration: none; color: inherit; }
.shop-card__media { display: block; position: relative; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius); background: #fff; }
.shop-card__media img, .shop-card__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.shop-card__placeholder { background: linear-gradient(135deg, #fff, var(--c-surface-alt, #f3f1ec)); }
.shop-card__hover { position: absolute; left: 50%; bottom: 1rem; transform: translate(-50%, 8px); opacity: 0; transition: opacity 0.3s, transform 0.35s var(--ease); box-shadow: var(--shadow-card); }
.shop-card:hover .shop-card__media img, .shop-card:focus-within .shop-card__media img { transform: scale(1.05); }
.shop-card:hover .shop-card__hover, .shop-card:focus-within .shop-card__hover { opacity: 1; transform: translate(-50%, 0); }
.shop-card__body { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 1rem 0.25rem 0; }
.shop-card__title { font-family: var(--font-display); font-size: 1.375rem; font-weight: 600; color: var(--c-ink, #141414); line-height: 1.2; }
.shop-card__price { font-size: var(--text-sm); font-weight: 500; color: var(--c-accent, #8a5a24); white-space: nowrap; }
@media (hover: none) { .shop-card__hover { opacity: 1; transform: translate(-50%, 0); } }
@media (max-width: 1024px) { .shop-carousel { --slide-w: calc((100% - 2 * var(--slide-gap)) / 3); } }
@media (max-width: 720px) { .shop-carousel { --slide-w: calc((100% - var(--slide-gap)) / 2); } }
@media (max-width: 480px) { .shop-carousel { --slide-w: 72%; } }
