/* Shop category landing pages (shop-category.php, /shop/<slug>). Site tokens from css/style.css. */
.shop-hero { padding: 48px 20px 36px; text-align: center; background: linear-gradient(180deg, rgba(0,204,68,0.06) 0%, transparent 100%); border-bottom: 1px solid var(--border-color); }
.shop-hero h1 { font-family: var(--font-heading); font-size: 2.4rem; letter-spacing: 4px; text-transform: uppercase; color: var(--text-primary); margin: 0 0 12px; }
.shop-hero p { font-size: 1rem; color: var(--text-secondary); max-width: 720px; margin: 0 auto 10px; line-height: 1.7; }
.shop-crumbs { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 14px; letter-spacing: 0.5px; }
.shop-crumbs a { color: var(--green-primary); }

.shop-promo { max-width: 1180px; margin: 32px auto 0; padding: 0 20px; }
.shop-promo a { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; gap: 20px; align-items: center; background: var(--bg-card); border: 1px solid var(--green-primary); border-radius: 10px; padding: 16px 20px; text-decoration: none; color: var(--text-primary); }
.shop-promo img { width: 140px; height: 140px; object-fit: contain; background: #fff; border-radius: 8px; }
.shop-promo strong { display: block; font-family: var(--font-heading); font-size: 1.3rem; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 4px; }
/* The description only: a bare ".shop-promo span" also caught the button's <span> and beat .btn-primary's colour. */
.shop-promo div > span { color: var(--text-secondary); font-size: 0.92rem; line-height: 1.6; }
.shop-promo .btn { white-space: nowrap; }

.shop-section { max-width: 1180px; margin: 0 auto; padding: 36px 20px 8px; }
.shop-section h2 { font-family: var(--font-heading); font-size: 1.4rem; letter-spacing: 3px; text-transform: uppercase; color: var(--text-primary); margin: 0 0 18px; }
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 16px; }
.shop-card { display: flex; flex-direction: column; min-width: 0; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 10px; padding: 12px; text-decoration: none; color: var(--text-primary); }
.shop-card:hover, .shop-card:focus-visible { border-color: var(--green-primary); }
.shop-img { background: #fff; border-radius: 6px; aspect-ratio: 1 / 1; overflow: hidden; margin-bottom: 10px; display: flex; align-items: center; justify-content: center; }
.shop-img img { width: 100%; height: 100%; object-fit: contain; }
.shop-brand { font-size: 0.72rem; color: var(--green-primary); text-transform: uppercase; letter-spacing: 1px; font-weight: 600; margin-bottom: 4px; }
.shop-card h3 { font-size: 0.9rem; font-weight: 600; line-height: 1.4; margin: 0 0 8px; overflow-wrap: anywhere; }
.shop-price { margin-top: auto; font-family: var(--font-heading); font-size: 1.2rem; color: var(--text-primary); }
.shop-empty { color: var(--text-secondary); font-size: 0.95rem; }
.shop-more { text-align: center; margin: 24px 0 0; }

.shop-links { max-width: 1180px; margin: 0 auto; padding: 24px 20px 48px; }
.shop-links ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 24px; }
.shop-links a { color: var(--green-primary); font-size: 0.92rem; }
@media (max-width: 640px) {
  .shop-hero h1 { font-size: 1.7rem; letter-spacing: 2px; }
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .shop-card { padding: 8px; }
  .shop-promo a { grid-template-columns: 88px minmax(0, 1fr); }
  .shop-promo img { width: 88px; height: 88px; }
  .shop-promo .btn { grid-column: 1 / -1; text-align: center; }
}
