.site-main--shop {
  padding-block: 2rem 4rem;
}

.woocommerce-breadcrumb {
  margin: 0;
  color: #8a857d;
  font-size: 0.98rem;
}

.shop-archive__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.shop-archive__actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.shop-archive__result-count,
.shop-archive__result-count p {
  margin: 0;
  color: #8a857d;
  font-size: 0.98rem;
}

.shop-archive__view-icons {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.shop-archive__view-icon {
  position: relative;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
}

.shop-archive__view-icon--grid::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(#111111, #111111) 0 0 / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 50% 0 / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 100% 0 / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 0 50% / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 50% 50% / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 100% 50% / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 0 100% / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 50% 100% / 5px 5px no-repeat,
    linear-gradient(#111111, #111111) 100% 100% / 5px 5px no-repeat;
}

.shop-archive__view-icon--lines::before {
  content: "";
  position: absolute;
  inset: 2px 0;
  background:
    linear-gradient(#b7b2ab, #b7b2ab) 0 0 / 100% 2px no-repeat,
    linear-gradient(#b7b2ab, #b7b2ab) 0 50% / 100% 2px no-repeat,
    linear-gradient(#b7b2ab, #b7b2ab) 0 100% / 100% 2px no-repeat;
}

.shop-filters-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0;
  border: 0;
  background: none;
  color: #111111;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 1em;
  cursor: pointer;
}

.shop-filters-toggle__plus {
  font-size: 1.35rem;
  line-height: 1;
}

.shop-filters-panel {
  margin-bottom: 2rem;
  border: 1px solid rgba(17, 17, 17, 0.12);
  background: #ffffff;
}

.shop-filters-panel__inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  padding: 1.5rem;
}

.shop-filter-widget__title {
  margin: 0 0 0.8rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
}

.shop-filters-panel__empty {
  margin: 0;
  color: #8a857d;
}

.shop-products-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.25rem 1rem;
}

.shop-product-card {
  min-width: 0;
}

.shop-product-card__link {
  display: block;
  color: #111111;
  cursor: pointer;
}

.shop-product-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 0.7;
  background: #f4f1ea;
}

.shop-product-card__media::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 34%;
  z-index: 2;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.42));
  pointer-events: none;
}

.shop-product-card__badge {
  position: absolute;
  top: 0.9rem;
  left: 0.9rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.2rem;
  padding: 0.35rem 0.9rem;
  background: #ffffff;
  color: #111111;
  font-size: 0.8rem;
}

.shop-product-card__badge--sold {
  background: #111111;
  color: #ffffff;
}

.shop-product-card__badge--made-to-order {
  background: #f3ede2;
  color: #111111;
}

.shop-products-grid .shop-product-card__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  transition:
    opacity 320ms ease,
    transform 320ms ease;
}

.shop-products-grid .shop-product-card__image--primary {
  z-index: 1;
  opacity: 1;
}

.shop-products-grid .shop-product-card__image--secondary {
  z-index: 2;
  opacity: 0;
}

@media (hover: hover) {
  .shop-product-card:hover .shop-product-card__image--primary,
  .shop-product-card:focus-within .shop-product-card__image--primary {
    opacity: 0;
    transform: scale(1.03);
  }

  .shop-product-card:hover .shop-product-card__image--secondary,
  .shop-product-card:focus-within .shop-product-card__image--secondary {
    opacity: 1;
    transform: scale(1.03);
  }
}

@media (hover: none) {
  .shop-product-card:active .shop-product-card__image--primary,
  .shop-product-card:focus-within .shop-product-card__image--primary {
    opacity: 0;
    transform: scale(1.018);
  }

  .shop-product-card:active .shop-product-card__image--secondary,
  .shop-product-card:focus-within .shop-product-card__image--secondary {
    opacity: 1;
    transform: scale(1.018);
  }
}

.shop-product-card__image {
  transition:
    opacity 320ms ease,
    transform 320ms ease;
}

.shop-product-card__content {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  z-index: 3;
  padding: 0;
  text-align: left;
}

.shop-product-card__title {
  margin: 0;
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.35;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.shop-product-card__price {
  display: inline-block;
  margin-top: 0.55rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.95rem;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.shop-product-card__price .amount {
  color: inherit;
}

.shop-archive__load-more {
  display: flex;
  justify-content: center;
  margin-top: 2.5rem;
}

.shop-archive__load-more .next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.5rem;
  padding: 0.85rem 2rem;
  border: 1px solid rgba(17, 17, 17, 0.25);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

@media (max-width: 920px) {
  .shop-archive__toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .shop-archive__actions {
    width: 100%;
    justify-content: space-between;
  }

  .shop-filters-panel__inner {
    grid-template-columns: 1fr 1fr;
  }

  .shop-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem 0.75rem;
  }
}

@media (max-width: 640px) {
  .site-main--shop {
    padding-block: 1.5rem 3rem;
  }

  .shop-archive__result-count {
    display: none;
  }

  .shop-filters-panel__inner {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1rem;
  }

  .shop-product-card__title {
    font-size: 0.98rem;
  }
}
