/* Collection page: banner, toolbar, product grid + cards, pagination.
   Product card rules are also used by any other product loop (search, related, homepage). */

.wc-page { padding-bottom: var(--section-space); }

/* Title (hidden by default, kept for SEO/screen readers) + description */
.collection--title-hidden .woocommerce-products-header__title {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.woocommerce-products-header { text-align: center; }
.woocommerce-products-header__title { margin: 40px 0 0; }
.term-description, .page-description {
  max-width: 800px;
  text-align: center;
}
.term-description p, .page-description p { margin-bottom: 15px; }

/* Promo banner */
.collection-banner {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 40px;
  padding: 10px 20px;
  text-align: center;
}
.collection-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--banner-tint);
  opacity: var(--banner-opacity);
}
.collection-banner__heading, .collection-banner__text, .collection-banner__link { margin: 5px 10px; }
.collection-banner__heading { font-size: var(--fs-h3); line-height: 1.2; }
a.collection-banner:hover .collection-banner__heading { text-decoration: underline; text-underline-offset: 4px; }

/* Toolbar: product count (+ optional sorting) */
.collection-toolbar {
  display: flex;
  align-items: center;
  justify-content: center; /* centred on mobile like the live store */
  gap: 20px;
  margin: 23px 0 38px;
}
.collection-count { margin: 0; line-height: 1; }
.woocommerce-ordering select { width: auto; padding-block: 6px; }
.woocommerce-ordering { margin: 0; }

/* Grid */
ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--page-gutter);
  row-gap: 15px;
  margin: 0;
}
ul.products::before, ul.products::after { content: none; }
ul.products > li { min-width: 0; margin: 0; }

/* Card */
.woocommerce-loop-product__link { display: block; }
.product-card__media {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--color-small-image-bg);
}
.product-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-card__img--hover { display: none; }
.product-card__tag {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  padding: 6px 5px 6px 7px;
  background: var(--color-sale-tag);
  color: var(--color-sale-tag-text);
  font-size: 11.7px;
  line-height: 1;
}
.product-card__tag.product-card__tag--new {
  inset: 10px auto auto 10px;
  padding: 5px 9px;
  font-size: var(--fs-card-brand);
  font-weight: var(--fw-bold);
  line-height: normal;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.product-card__tag--sold-out {
  background: var(--color-bg);
  color: var(--color-text);
}
.product-card__meta {
  padding: 10px 0 6px;
  text-align: center;
  line-height: 1.3;
}
.product-card__brand {
  margin: 0 0 4px;
  color: var(--color-text-muted);
  font-size: var(--fs-card-brand);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-card-brand);
  line-height: 1.3;
  text-transform: uppercase;
}
.product-card__title {
  margin: 0;
  font-family: var(--font-body);
  font-weight: var(--fw-body);
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}
.product-card__price {
  margin-top: 5px;
  font-size: var(--fs-small);
  line-height: 1.3;
  color: var(--color-price);
}

/* Subcategory tiles that WooCommerce can mix into the grid */
ul.products > li.product-category img { width: 100%; aspect-ratio: 1; object-fit: cover; }
ul.products > li.product-category h2 {
  margin: 10px 0 0;
  font-family: var(--font-body);
  font-size: var(--fs-collection-title);
  letter-spacing: var(--ls-wide);
  text-align: center;
}
ul.products > li.product-category mark { background: none; color: inherit; }

/* Pagination */
.woocommerce-pagination { padding: 40px 0 20px; text-align: center; }
.woocommerce-pagination ul.page-numbers { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; }
.woocommerce-pagination .page-numbers li { display: inline-flex; }
.woocommerce-pagination a.page-numbers, .woocommerce-pagination span.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 35px;
  padding: 8px 12px;
  line-height: 1;
}
.woocommerce-pagination span.current { opacity: 0.3; }
.woocommerce-pagination .prev, .woocommerce-pagination .next {
  width: 35px;
  height: 35px;
  margin: 0 10px;
  padding: 0;
  background: var(--color-button);
  color: var(--color-button-text);
}
.woocommerce-pagination .icon { width: 14px; height: 14px; stroke-width: 4px; }

/* Empty state */
.woocommerce-no-products-found, .wc-page .woocommerce-info { margin: 40px 0; text-align: center; }

@media (min-width: 769px) {
  .collection-banner { flex-direction: row; flex-wrap: wrap;  }
  .collection-toolbar { justify-content: space-between; margin: 46px 0 0; min-height: 40px; }
  ul.products { column-gap: 22px; row-gap: 30px; }
  ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .product-card__tag { padding: 7px 7px 7px 9px; font-size: var(--fs-small); }
  .product-card__title { font-size: 16px; }
  .woocommerce-pagination { padding: 60px 0 0; }
  .woocommerce-pagination .prev, .woocommerce-pagination .next { width: 43px; height: 43px; }
}

/* Second image on hover: desktop pointers only, so mobile never downloads it (lazy + display:none) */
@media (min-width: 769px) and (hover: hover) {
  .product-card__img--hover {
    display: block;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .woocommerce-loop-product__link:hover .product-card__img--hover { opacity: 1; }
}

/* Search results page */
.search-page__form { max-width: 520px; margin: 20px auto 0; }
.search-form { position: relative; }
.search-form input[type="search"] { padding-right: 52px; }
.search-form__submit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border: 0;
  background: none;
}
.search-form__submit .icon { width: 22px; height: 22px; }
.search-page__empty { margin: 40px 0; text-align: center; }
.search-page__empty .btn { margin-top: 15px; }

/* ---------- Design v2 card grids (homepage sections, product page "You may also like") ---------- */
.home-products.products { gap: 32px 12px; }
.home-products .product-card__meta { padding: 14px 0 0; text-align: left; }
.home-products .product-card__brand { margin-bottom: 5px; }
.home-products .product-card__title {
  font-size: 16px;
  font-weight: var(--fw-regular);
  line-height: 1.35;
  letter-spacing: normal;
  text-transform: none;
}
.home-products .product-card__price { display: flex; flex-wrap: wrap; column-gap: 8px; margin-top: 6px; font-size: 15px; font-weight: var(--fw-regular); letter-spacing: normal; }
.home-products .price__compare, .home-products .price__savings { margin: 0; } /* "Save X%" wraps flush left */

/* Swipe row on phones (scroll-snap, no JS) */
.home-products--carousel.products {
  grid-auto-flow: column;
  grid-template-columns: none;
  grid-auto-columns: 61vw;
  margin-inline: calc(-1 * var(--page-gutter));
  padding-inline: var(--page-gutter);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--page-gutter);
  scrollbar-width: none;
}
.home-products--carousel::-webkit-scrollbar { display: none; }
.home-products--carousel > li { scroll-snap-align: start; }

/* ---------- Image with text ---------- */
.home-split { display: grid; }
.home-split__media { position: relative; aspect-ratio: 9 / 10; overflow: hidden; background: var(--brand-primary); }
.home-split__body { display: flex; align-items: center; padding: 56px 23px 48px; }
.home-split .home-eyebrow { margin-bottom: 20px; }
.home-split__text { max-width: 480px; }
.home-split__title { margin: 0; font-size: var(--fs-split-title); line-height: 1.02; letter-spacing: 0.03em; }
.home-split__copy { max-width: 455px; margin-top: 20px; font-size: 17px; line-height: 1.6; letter-spacing: normal; }
.home-split__copy p { margin: 0; }
.home-split__copy strong { font-weight: var(--fw-bold); }

@media (min-width: 769px) {
  .home-products.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
  .home-products--carousel.products {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    margin-inline: 0;
    padding-inline: 0;
    overflow: visible;
  }
}
