/* SiteForge catalog layer — blackdiamondequipment.com
 * 列表页筛选、排序、视图切换、加载更多与骨架态。
 */
.wc-catalog { position: relative; }
.wc-catalog__filters { display: grid; gap: var(--wc-space-4); }
.wc-filter-group { border-bottom: 1px solid var(--wc-border); padding-bottom: var(--wc-space-4); }
.wc-filter-group h3 { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--wc-muted); margin-bottom: 10px; }
.wc-filter-group label { display: flex; align-items: center; gap: 8px; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--wc-text); margin: 0 0 8px; }
.wc-filter-group input[type=checkbox] { width: 16px; height: 16px; min-height: 0; }
.wc-catalog__body { min-height: 40vh; }
.wc-catalog.is-loading .wc-products { opacity: .45; pointer-events: none; }
.wc-catalog__sentinel { height: 1px; }
.wc-catalog__status { text-align: center; font-size: 13px; color: var(--wc-muted); padding-block: var(--wc-space-3); }
.wc-price-range { display: flex; align-items: center; gap: 8px; }
.wc-price-range input { min-height: 40px; }
.wc-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--wc-space-4); }
.wc-active-filters button { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--wc-border); border-radius: 999px; font-size: 12.5px; }
.wc-active-filters button::after { content: '×'; font-size: 14px; }

/* 捕获壳原位 hydrate：仅隐藏仍指向源站 /products/ 的死链；已注水节点用 /product/ */
.woocommerce-captured-shell[data-woocommerce-strip-product-nodes] a[href*="/products/"] {
  display: none !important;
}
.woocommerce-card-badge:empty { display: none; }
/* 仅 SiteForge 注水网格强制列布局；原站 ul#product-grid 不套此规则 */
ul.wc-products[data-woocommerce-hydrated-grid],
ul.products[data-woocommerce-hydrated-grid],
.wc-plp-live [data-woocommerce-hydrated-grid] {
  display: grid !important;
  grid-template-columns: repeat(var(--wc-cols, 4), minmax(0, 1fr)) !important;
  gap: clamp(12px, 1.8vw, 28px);
  min-height: 1px;
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 1100px) {
  ul.wc-products[data-woocommerce-hydrated-grid],
  ul.products[data-woocommerce-hydrated-grid],
  .wc-plp-live [data-woocommerce-hydrated-grid] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 720px) {
  ul.wc-products[data-woocommerce-hydrated-grid],
  ul.products[data-woocommerce-hydrated-grid],
  .wc-plp-live [data-woocommerce-hydrated-grid] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
.woocommerce-captured nav.navigation,
.woocommerce-captured .woocommerce-pagination { display: none !important; }
[data-woocommerce-pager], .wc-archive-pager {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
  align-items: center; margin: 28px 0 16px; list-style: none;
}
[data-woocommerce-pager] a, [data-woocommerce-pager] span, .wc-page-num, .wc-page-next, .wc-page-ellipsis {
  min-width: 36px; height: 36px; padding: 0 8px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #e6e1d8; background: #f4f1ea; color: inherit;
  text-decoration: none; font-size: 13px; box-sizing: border-box;
}
[data-woocommerce-pager] a.is-current, .wc-page-num.is-current { background: #fff; border-color: #cfc8bb; }
.wc-page-ellipsis { border: 0; background: transparent; }
.wc-load-more { display: flex; justify-content: center; margin: 8px 0 40px; }
ul.wc-products[data-woocommerce-hydrated-grid] > *:not(.woocommerce-card-item):not(.woocommerce-card-item),
ul.products[data-woocommerce-hydrated-grid] > *:not(.woocommerce-card-item):not(.woocommerce-card-item),
.wc-plp-live [data-woocommerce-hydrated-grid] > *:not(.woocommerce-card-item):not(.woocommerce-card-item) { display: none !important; }
ul.wc-products[data-woocommerce-hydrated-grid] > .woocommerce-card-item.wc-empty-item,
ul.wc-products[data-woocommerce-hydrated-grid] > .woocommerce-card-item.wc-empty-item,
.wc-empty-item { display: flex !important; grid-column: 1 / -1; justify-content: center; padding: 24px; }
.wc-plp-live { display: block; width: 100%; max-width: 100%; margin: 16px 0 40px; box-sizing: border-box; }
.wc-plp-live [data-woocommerce-hydrated-grid] { min-height: 120px; }
.woocommerce-captured-shell [hidden],
.wc-plp-gate { display: none !important; }
.wc-products[data-woocommerce-hydrated-grid] > *,
.wc-plp-live [data-woocommerce-hydrated-grid] > *,
.wc-products[data-woocommerce-hydrated-grid] .woocommerce-card-item { min-width: 0; max-width: 100%; margin: 0; }
.wc-products[data-woocommerce-hydrated-grid] img,
.wc-plp-live [data-woocommerce-hydrated-grid] img {
  max-width: 100% !important; display: block;
}
.wc-products[data-woocommerce-hydrated-grid] a > img:first-of-type,
.wc-plp-live [data-woocommerce-hydrated-grid] a > img:first-of-type,
.wc-products[data-woocommerce-hydrated-grid] [data-woocommerce-slot="image"],
.wc-products[data-woocommerce-hydrated-grid] .card-product_image > figure:first-child img,
.wc-products[data-woocommerce-hydrated-grid] .wc-card-media > img:first-of-type {
  width: 100% !important; height: auto !important;
  aspect-ratio: 3 / 4; object-fit: cover;
}
/* Dawn/BD 原站网格：不强制 3/4，交给源站 CSS */
#product-grid.product-grid img,
ul#product-grid img,
.product-grid.grid img {
  aspect-ratio: auto;
}
[data-woocommerce-hydrated-grid] .wc-card-colorways img {
  width: 12px !important; height: 12px !important; aspect-ratio: 1 !important;
}
.wc-card-has-hover,
[data-woocommerce-hydrated-grid] .card-product_image,
[data-woocommerce-hydrated-grid] .wc-card-media,
[data-woocommerce-hydrated-grid] a:has(> img):has(> img + img),
[data-woocommerce-hydrated-grid] a:has(> figure + figure) {
  position: relative; overflow: hidden; display: block;
}
[data-woocommerce-hydrated-grid] .woocommerce-card-item figure + figure,
[data-woocommerce-hydrated-grid] .woocommerce-card-item a > img + img,
[data-woocommerce-hydrated-grid] .card-product_image figure + figure,
[data-woocommerce-hydrated-grid] .wc-card-has-hover > img + img,
[data-woocommerce-hydrated-grid] .wc-card-has-hover figure + figure {
  position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important;
  max-height: 100% !important; aspect-ratio: auto !important;
  object-fit: cover; opacity: 0; pointer-events: none; margin: 0; z-index: 1;
}
[data-woocommerce-hydrated-grid] .woocommerce-card-item:hover figure + figure,
[data-woocommerce-hydrated-grid] .woocommerce-card-item:hover a > img + img,
[data-woocommerce-hydrated-grid] .card-product_image:hover figure + figure,
[data-woocommerce-hydrated-grid] .wc-card-has-hover:hover > img + img,
[data-woocommerce-hydrated-grid] .wc-card-has-hover:hover figure + figure {
  opacity: 1;
}
.wc-card-colorways {
  display: inline-flex; align-items: center; gap: 6px; margin: 8px 8px 0 0;
}
.wc-card-colorway {
  width: 12px; height: 12px; border-radius: 50%; border: 1px solid #c8c4bc;
  display: inline-block; overflow: hidden; background: #c8c4bc; flex: 0 0 auto;
}
.wc-card-colorway.is-current { box-shadow: 0 0 0 1px #111; border-color: #111; }
.wc-card-colorways-more { font-size: 12px; color: #666; }
.wc-collection-hero, [data-woocommerce-collection-hero] {
  display: block; width: min(calc(100% - var(--wc-gutter) * 2), var(--wc-width-wide));
  max-width: 100%; margin: 12px auto 0; padding: 8px 0 4px;
  box-sizing: border-box; background: transparent; color: inherit; min-height: 0;
}
.wc-collection-hero--copy-only,
.wc-collection-hero:not(:has(.wc-collection-hero__media)) {
  grid-template-columns: 1fr;
}
.wc-collection-hero__copy {
  background: transparent; color: inherit; padding: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  width: 100%;
}
.wc-collection-hero__copy h1 {
  margin: 0 0 8px; font-size: clamp(26px, 3vw, 40px); letter-spacing: .02em;
  font-weight: 400; text-transform: none; color: inherit;
}
.wc-collection-hero__desc { font-size: 15px; line-height: 1.55; opacity: .78; max-width: 42rem; }
.wc-collection-hero__media { display: none; }
@media (max-width: 800px) {
  .wc-collection-hero, [data-woocommerce-collection-hero] { padding-inline: 0; }
}
aside[data-woocommerce-filter-drawer],
dialog[data-woocommerce-filter-drawer],
.wc-filter-drawer-panel[data-woocommerce-filter-drawer] {
  position: fixed !important; inset: 0 auto 0 0; width: min(420px, 94vw);
  background: #fff; z-index: 120; overflow: auto; box-shadow: 8px 0 32px rgba(0,0,0,.12);
  transition: transform .28s ease, visibility .28s ease;
}
aside[data-woocommerce-filter-drawer]:not(.is-open),
dialog[data-woocommerce-filter-drawer]:not(.is-open),
.wc-filter-drawer-panel[data-woocommerce-filter-drawer]:not(.is-open) { transform: translateX(-104%); pointer-events: none; visibility: hidden; }
aside[data-woocommerce-filter-drawer].is-open,
dialog[data-woocommerce-filter-drawer].is-open,
.wc-filter-drawer-panel[data-woocommerce-filter-drawer].is-open { transform: translateX(0); pointer-events: auto; visibility: visible; display: block !important; }
.wc-filter-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 110;
  opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s;
}
.wc-filter-backdrop.is-open { opacity: 1; visibility: visible; }
.wc-search-heading {
  text-align: center; font-size: clamp(22px, 2.2vw, 32px); font-weight: 400;
  margin: 28px 0 24px;
}
.search .wc-breadcrumbs, .search-results .wc-breadcrumbs { display: none !important; }

/* PLP 收尾层（本文件最后入队）：侧栏 26rem + 商品多列，色块勿被 Swiper 拉成 100% */
@media screen and (min-width: 750px) {
  .facets-vertical {
    display: flex !important;
    align-items: flex-start !important;
  }
  .facets-vertical .facets-wrapper,
  .facets-vertical #FacetsWrapperDesktop {
    flex: 0 0 26rem !important;
    width: 26rem !important;
    max-width: 26rem !important;
  }
  .facets-vertical .product-grid-container,
  #ProductGridContainer.product-grid-container {
    flex: 1 1 0% !important;
    width: auto !important;
    min-width: 0 !important;
  }
}
#ProductGridContainer,
.product-grid-container .collection {
  min-width: 0 !important;
  max-width: 100%;
}
ul#product-grid.grid.product-grid,
ul#product-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 1.3rem !important;
  row-gap: 1.3rem !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  list-style: none !important;
}
@media screen and (min-width: 750px) {
  ul#product-grid.grid.product-grid,
  ul#product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 2rem !important;
    row-gap: 2rem !important;
  }
}
@media screen and (min-width: 1400px) {
  ul#product-grid.grid.product-grid,
  ul#product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}
ul#product-grid > li.grid__item,
ul#product-grid > li.woocommerce-card-item {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
ul#product-grid .new-product-card {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
}
ul#product-grid .new-product-img-wrap {
  position: relative !important;
  width: 100% !important;
  overflow: hidden;
}
ul#product-grid .new-product-img {
  aspect-ratio: 3 / 4;
  width: 100%;
  overflow: hidden;
  background: #e8e8e8;
}
ul#product-grid .new-product-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  aspect-ratio: auto !important;
}
ul#product-grid .new-product-info {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
}
ul#product-grid .new-product-swatch .swiper-slide.card-color-swatch,
ul#product-grid .new-product-swatch .card-color-swatch {
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  height: 62px !important;
  flex: 0 0 48px !important;
}
ul#product-grid .new-product-swatch .swiper-wrapper {
  display: flex !important;
  transform: none !important;
  width: auto !important;
  height: auto !important;
}

/* Facet checkbox: center checkmark inside BD circle SVG (Dawn rem offsets misalign) */
.facet-checkbox,
.mobile-facets__label {
  display: flex !important;
  align-items: center !important;
  position: relative;
}
.facet-checkbox > svg:not(.icon-checkmark),
.mobile-facets__label > svg:not(.icon-checkmark) {
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0;
  margin-right: 12px !important;
  position: relative;
}
.facet-checkbox .icon-checkmark,
.mobile-facets__label .icon-checkmark {
  position: absolute !important;
  left: 3px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 10px !important;
  height: 7px !important;
  margin: 0 !important;
  z-index: 5;
  background: transparent !important;
}
.mobile-facets__label .icon-checkmark {
  left: calc(2.5rem + 3px) !important;
}
/* 不依赖 :has() — 零命中选项直接藏 */
.facets__item.sf-facet-empty,
.mobile-facets__item.sf-facet-empty,
li.list-menu__item.facets__item.sf-facet-empty,
li.facets__item[hidden],
li.mobile-facets__item[hidden],
details.sf-facet-group-empty,
details.js-filter[hidden],
details[hidden].js-filter {
  display: none !important;
}
.facet-checkbox--disabled,
.mobile-facets__label--disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Quick Filters — 对齐源站 Qucik Filters */
.sf-quick-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  width: 100%;
  margin: 0 0 1.2rem;
  padding: 0;
  box-sizing: border-box;
}
.sf-quick-filters__label {
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: none;
  color: #111;
}
.sf-quick-filters__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sf-quick-filter {
  appearance: none;
  border: 1px solid #111;
  background: #fff;
  color: #111;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: .02em;
  padding: 0.55rem 1.1rem;
  cursor: pointer;
  border-radius: 0;
  line-height: 1.2;
}
.sf-quick-filter:hover {
  background: #f3f3f3;
}
.sf-quick-filter.is-active {
  background: #111;
  color: #fff;
}
@media screen and (max-width: 749px) {
  .sf-quick-filters { margin-bottom: 0.8rem; }
  .sf-quick-filter { font-size: 1.1rem; padding: 0.5rem 0.9rem; }
}

