/* Collection archives only. Homepage, product pages, header and footer excluded. */

/* Remove every catalog sorting selector, including the duplicate Storefront one. */
body.ll-collection-page .woocommerce-ordering {
  display: none !important;
}

/* The first Storefront sorting wrapper incorrectly includes pagination above
   the grid. Preserve the normal pagination rendered after the product list. */
body.ll-collection-page .woocommerce-products-header + .storefront-sorting > .woocommerce-pagination {
  display: none !important;
}

/* Keep the collection artwork intact at every viewport width. */
body.ll-collection-page .ll-collection-hero,
body.ll-collection-page .ll-collection-hero img {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

body.ll-collection-page .ll-collection-hero img {
  width: 100% !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Neutralize Storefront's legacy float/first/last-column rules. */
body.ll-collection-page ul.products,
body.ll-collection-page ul.products.columns-4,
body.ll-collection-page ul.products.columns-5,
body.ll-collection-page ul.products.columns-6 {
  display: grid !important;
  align-items: stretch !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 30px 16px !important;
  width: 100% !important;
  margin: 0 0 62px !important;
  padding: 0 !important;
}

body.ll-collection-page ul.products::before,
body.ll-collection-page ul.products::after {
  display: none !important;
}

body.ll-collection-page ul.products li.product,
body.ll-collection-page ul.products li.product.first,
body.ll-collection-page ul.products li.product.last,
body.ll-collection-page ul.products li.product:nth-child(n) {
  position: relative !important;
  display: flex !important;
  float: none !important;
  clear: none !important;
  grid-column: auto !important;
  flex-direction: column !important;
  width: auto !important;
  min-width: 0 !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.ll-collection-page ul.products li.product > a.woocommerce-loop-product__link,
body.ll-collection-page ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  width: 100% !important;
}

/* Full photograph, consistently framed at the requested 2:3 ratio. */
body.ll-collection-page ul.products li.product img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 2 / 3 !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 0 14px !important;
  border-radius: 10px !important;
  background: #faf6f4 !important;
}

body.ll-collection-page .ll-catalog-tools {
  justify-content: flex-end !important;
}

@media (max-width: 1100px) {
  body.ll-collection-page ul.products,
  body.ll-collection-page ul.products.columns-4,
  body.ll-collection-page ul.products.columns-5,
  body.ll-collection-page ul.products.columns-6 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  body.ll-collection-page .term-description {
    padding-inline: 0 !important;
  }

  body.ll-collection-page .term-description p {
    margin: 8px 0 20px !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
  }

  body.ll-collection-page .ll-catalog-toolbar {
    margin-bottom: 24px !important;
  }

  body.ll-collection-page .ll-catalog-tools {
    justify-content: flex-start !important;
  }

  body.ll-collection-page ul.products,
  body.ll-collection-page ul.products.columns-4,
  body.ll-collection-page ul.products.columns-5,
  body.ll-collection-page ul.products.columns-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 25px 12px !important;
    margin-bottom: 42px !important;
  }

  body.ll-collection-page ul.products li.product img {
    margin-bottom: 11px !important;
    border-radius: 8px !important;
  }
}
