/* Shop page specific styles (extends base.css) */
.shop-hero { padding: var(--space-11) 0 var(--space-10); }
.shop-hero-grid { align-items: center; }
.shop-hero-copy p { max-width: 50ch; }
.shop-hero-media img { border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }

.shop-filters { padding: var(--space-10) 0; }
.filters-form { background: var(--color-surface); border: 1px solid var(--gray-200); border-radius: var(--radius-xl); padding: var(--space-7); box-shadow: var(--shadow-sm); }
.filters-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-6); }
.filters-actions { display: grid; grid-template-columns: 1.5fr auto; gap: var(--space-6); align-items: end; margin-top: var(--space-6); }
.filter-buttons { display: flex; gap: var(--space-4); justify-content: flex-end; }
@media (max-width: 900px) {
  .filters-row { grid-template-columns: 1fr 1fr; }
  .filters-actions { grid-template-columns: 1fr; }
  .filter-buttons { justify-content: start; }
}
.filters-sub { color: var(--color-text-muted); margin-bottom: var(--space-6); }
.product-meta { margin: var(--space-6) 0; }

/* Product card */
.product-card { position: relative; background: var(--color-surface); border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-sm); display: grid; gap: var(--space-4); }
.product-card:hover { box-shadow: var(--shadow-md); }
.product-title { font-weight: 700; font-family: var(--font-heading); font-size: var(--fs-lg); }
.product-meta-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
.price { font-weight: 700; }
.rating { color: var(--color-warning); font-variant-numeric: tabular-nums; }
.product-actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.stock-badge { position: absolute; top: var(--space-5); right: var(--space-5); }

/* Labels */
.label { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; font-size: var(--fs-xs); border-radius: var(--radius-full); background: var(--gray-100); color: var(--color-text); border: 1px solid var(--gray-200); }
.label-new { background: color-mix(in srgb, var(--color-secondary) 18%, white); color: var(--color-secondary-700); }
.label-best { background: color-mix(in srgb, var(--color-accent) 18%, white); color: var(--color-accent-700); }

/* Bestsellers + Inspiration */
.shop-bestsellers, .shop-inspiration, .shop-new, .shop-reco, .shop-quick-compare, .shop-stock, .shop-cart, .shop-checkout { padding: var(--space-10) 0; }
.shop-bestsellers-grid, .shop-inspo-grid { align-items: center; }
.inspo-media img { border-radius: var(--radius-xl); box-shadow: var(--shadow-md); }

/* Sidepanels & Modals */
.modal, .sidepanel { position: fixed; inset: 0; display: none; }
.modal[aria-hidden="false"], .sidepanel[aria-hidden="false"] { display: block; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.4); }
.modal-content { position: relative; margin: 10vh auto; max-width: min(720px, 92vw); background: var(--color-surface); border: 1px solid var(--gray-200); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); overflow: hidden; }
.modal-header, .modal-footer { padding: var(--space-6) var(--space-7); border-bottom: 1px solid var(--gray-200); }
.modal-footer { border-top: 1px solid var(--gray-200); border-bottom: 0; }
.modal-body { padding: var(--space-7); }

.sidepanel .sidepanel-content { position: absolute; top: 0; right: 0; width: min(520px, 100%); height: 100%; background: var(--color-surface); border-left: 1px solid var(--gray-200); box-shadow: var(--shadow-lg); display: grid; grid-template-rows: auto 1fr auto; }
.sidepanel-header, .sidepanel-footer { padding: var(--space-6) var(--space-7); border-bottom: 1px solid var(--gray-200); }
.sidepanel-footer { border-top: 1px solid var(--gray-200); border-bottom: 0; }
.sidepanel-body { padding: var(--space-7); overflow: auto; }

/* Compare table */
.compare-table { overflow-x: auto; }
.compare-table table { width: 100%; border-collapse: collapse; }
.compare-table th, .compare-table td { padding: var(--space-4); border-bottom: 1px solid var(--gray-200); text-align: left; }
.compare-table th { background: var(--gray-100); }

/* Cart */
.cart-items { display: grid; gap: var(--space-5); }
.cart-item { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--space-4); padding-bottom: var(--space-4); border-bottom: 1px solid var(--gray-200); }
.cart-item .qty { display: inline-flex; align-items: center; gap: 6px; }
.cart-summary { margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--gray-200); }
.cart-note { color: var(--color-text-muted); margin: var(--space-3) 0 0; }

/* Utilities */
.muted { color: var(--color-text-muted); }
.hidden { display: none !important; }
.product-grid {
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
}