.shop-main { padding: 2.5rem 0 4rem; }
.shop-kicker { color: var(--brand-2); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .78rem; }
.shop-main h1 { font-size: clamp(2rem, 4vw, 3rem); margin: .6rem 0 1rem; }
.shop-lead { color: var(--muted); max-width: 62ch; }
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; margin-top: 2rem; }
.shop-card, .shop-buy { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.shop-card { padding: 1rem; display: flex; flex-direction: column; gap: .6rem; }
.shop-card img, .shop-photo { width: 100%; height: 180px; object-fit: cover; border-radius: 12px; background: var(--bg-soft); }
.shop-card h2 { font-size: 1.25rem; }
.shop-price { font-weight: 700; font-size: 1.2rem; }
.shop-buy { display: grid; grid-template-columns: 280px 1fr; gap: 1.5rem; padding: 1.2rem; margin-top: 1.2rem; }
.shop-facts { margin-top: 1rem; color: var(--muted); }
.shop-facts dt { color: var(--text); font-weight: 600; margin-top: .7rem; }
.shop-back { display: inline-block; margin-bottom: 1rem; color: var(--muted); }
.shop-foot { border-top: 1px solid var(--line); padding: 1.6rem 0 2rem; color: var(--muted); }
.shop-foot a { color: var(--text); }
@media (max-width: 720px) { .shop-buy { grid-template-columns: 1fr; } }
