/* ============================================
 * Product Grid - Shop Page Layout & Filters
 * All values reference CSS variables from variables.css
 * ============================================ */

/* --- Shop Announcement Banner --- */

.shop-announcement {
  background-color: var(--color-primary-dark);
  color: var(--color-surface);
  text-align: center;
  padding: var(--space-3) var(--space-4);
  font-size: var(--font-size-small);
  font-weight: var(--weight-medium);
  line-height: var(--leading-small);
}

.shop-announcement[hidden] {
  display: none;
}

/* --- Shop Header --- */

.shop-header {
  padding-bottom: 0;
}

.shop-header__title {
  margin-bottom: var(--space-8);
}

/* --- Filter Bar --- */

.filter-bar {
  display: flex;
  gap: var(--space-3);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: var(--space-2);
}

.filter-bar::-webkit-scrollbar {
  display: none;
}

/* --- Filter Buttons --- */

.filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--space-2) var(--space-5);
  font-family: var(--font-body);
  font-size: var(--font-size-small);
  font-weight: var(--weight-medium);
  line-height: var(--leading-small);
  white-space: nowrap;
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--easing-ease),
    color var(--duration-fast) var(--easing-ease),
    border-color var(--duration-fast) var(--easing-ease);
}

/* Inactive state - outlined */
.filter-btn {
  background-color: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-border);
}

.filter-btn:hover {
  border-color: var(--color-border-strong);
  color: var(--color-primary-dark);
}

.filter-btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Active state */
.filter-btn--active {
  background-color: var(--color-primary-dark);
  color: var(--color-surface);
  border-color: var(--color-primary-dark);
}

.filter-btn--active:hover {
  background-color: #7A4A2D;
  border-color: #7A4A2D;
  color: var(--color-surface);
}

/* --- Shop Grid Section --- */

.shop-grid {
  padding-top: var(--space-8);
}

/* --- Product Grid Items Container --- */

.product-grid__items {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
}

@media (min-width: 520px) {
  .product-grid__items {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .product-grid__items {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  }
}

/* --- Card Filtering Transitions --- */

.product-card--filtering-out {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity var(--duration-base) var(--easing-ease),
    transform var(--duration-base) var(--easing-ease);
}

.product-card--filtering-in {
  opacity: 1;
  transform: scale(1);
  transition: opacity var(--duration-base) var(--easing-ease),
    transform var(--duration-base) var(--easing-ease);
}

.product-card--hidden {
  display: none;
}

/* --- Empty State --- */

.product-grid__empty {
  text-align: center;
  padding: var(--space-16) var(--space-4);
  color: var(--color-text-muted);
}

.product-grid__empty[hidden] {
  display: none;
}

.product-grid__empty p {
  font-size: var(--font-size-body-lg);
  margin-bottom: var(--space-6);
}

.product-grid__show-all {
  margin-top: var(--space-4);
}

/* --- Reduced Motion --- */

@media (prefers-reduced-motion: reduce) {
  .product-card--filtering-out,
  .product-card--filtering-in {
    transition: none;
  }
}
