.shop-archive,
.shop-product,
.shop-transaction {
  padding-bottom: var(--wp--preset--spacing--50);
  padding-top: var(--wp--preset--spacing--40);
}

.shop-archive__intro,
.shop-product__hero,
.shop-transaction > .alignwide {
  width: 100%;
}

.shop-archive__intro {
  border-bottom: 1px solid var(--wp--preset--color--line);
  padding-bottom: var(--wp--preset--spacing--40);
}

.shop-archive__intro .wp-block-query-title {
  font-size: var(--wp--preset--font-size--title);
  margin-bottom: var(--wp--preset--spacing--30);
  margin-top: var(--wp--preset--spacing--20);
}

.shop-archive__statement {
  max-width: 46rem;
}

.shop-archive__controls {
  border-bottom: 0;
  color: var(--wp--preset--color--muted);
  margin-bottom: 20px;
  padding-bottom: 0;
  padding-top: var(--wp--preset--spacing--30);
}

.shop-archive__controls select,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.woocommerce form .input-text,
.woocommerce select {
  background: var(--wp--preset--color--canvas);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 0;
  color: var(--wp--preset--color--ink);
  min-height: 3rem;
}

.shop-product-grid .wc-block-product {
  border-bottom: 1px solid var(--wp--preset--color--line);
  padding-bottom: var(--wp--preset--spacing--30);
  min-width: 0;
  text-align: left;
}

/* Share the four content rows, not a cropped image frame. Natural image and
   title heights determine each row; prices/buttons align despite long titles. */
@supports (grid-template-rows: subgrid) {
  .shop-product-grid .wc-block-product-template {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 1.25rem;
    row-gap: 0;
  }

  .shop-product-grid .wc-block-product {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
    align-items: start;
    width: auto !important;
    margin-block: 0 var(--wp--preset--spacing--30);
  }

  @media (max-width: 600px) {
    .shop-product-grid .wc-block-product-template {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 1.125rem;
    }
  }
}

.shop-product-grid .wc-block-components-product-image {
  aspect-ratio: auto;
  width: 100%;
}

.shop-product-grid .wc-block-components-product-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.shop-product-grid .wp-block-post-title {
  margin: 1.1rem 0 0.65rem !important;
  width: 100%;
  max-width: none;
  font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem) !important;
  line-height: 1.3;
  text-align: left !important;
  overflow-wrap: break-word;
}

.shop-product-grid .wc-block-components-product-price {
  margin: 0;
  color: var(--wp--preset--color--ink);
  font-size: 1.125rem !important;
  font-weight: 500;
  line-height: 1.5;
  text-align: left !important;
}

.shop-product-grid .wp-block-button {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  margin: 1.1rem 0 0;
}

.shop-product-grid .wp-block-button__link {
  width: auto;
  flex: none;
  margin: 0;
  text-align: left !important;
}

.shop-related-products {
  margin-top: var(--wp--preset--spacing--50);
}

.shop-related-products > .wp-block-heading {
  font-size: clamp(1.75rem, 3.5vw, 3.5rem);
  line-height: 1.1;
  font-weight: 400;
  margin: 0 0 var(--wp--preset--spacing--30);
}

.shop-product-grid .wp-block-button__link,
.shop-product .single_add_to_cart_button,
.shop-transaction .wc-block-components-button {
  border-radius: 0;
}

.shop-product__hero {
  gap: clamp(2rem, 5vw, 6rem);
  margin-top: var(--wp--preset--spacing--30);
}

.shop-product__summary {
  align-self: flex-start;
  position: sticky;
  top: 7rem;
}

.shop-product__summary .wp-block-post-title {
  font-size: clamp(2.25rem, 4vw, 4.5rem);
  margin-top: 0;
}

.shop-product__summary .wp-block-woocommerce-product-summary {
  color: var(--wp--preset--color--muted);
  margin-bottom: var(--wp--preset--spacing--30);
}

.shop-product__summary .wc-block-components-product-summary {
  line-height: 1.7;
}

.shop-product__summary .wc-block-components-product-summary p {
  margin: 0 0 1em;
}

.shop-product__summary .wc-block-components-product-summary p:last-child {
  margin-bottom: 0;
}

/* Keep controls in reserved gutters, outside the artwork and native zoom. */
.shop-product__media .woocommerce-product-gallery.bf-shop-gallery,
.shop-product__media .woocommerce-product-gallery.bf-product-hero-gallery {
  box-sizing: border-box;
  float: none;
  width: 100%;
  position: relative;
  padding-inline: 2.75rem;
}

/* No opacity/JS gate on the hero. Before native enhancement, show only its
   first slide; FlexSlider's own viewport/slide styles take over afterward. */
.shop-product__media .bf-product-hero-gallery:not(:has(> .flex-viewport)) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
  display: none;
}

.bf-shop-gallery .woocommerce-product-gallery__trigger {
  right: 3.25rem !important;
}

.bf-shop-gallery__arrow {
  position: absolute;
  top: var(--bf-shop-gallery-center, 10rem);
  transform: translateY(-50%);
  z-index: 3;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--wp--preset--color--ink);
  font: inherit;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0.65;
}

.bf-shop-gallery__previous { left: 0; }
.bf-shop-gallery__next { right: 0; }
.bf-shop-gallery__arrow:hover,
.bf-shop-gallery__arrow:focus-visible { opacity: 1; }

.bf-shop-gallery__status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.shop-product .quantity .qty {
  background: transparent;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 0;
  min-height: 3rem;
}

.wp-block-woocommerce-product-meta,
.binfeng-product-edition {
  border-top: 1px solid var(--wp--preset--color--line);
  font-size: var(--wp--preset--font-size--small);
  margin-top: var(--wp--preset--spacing--30);
  padding-top: var(--wp--preset--spacing--20);
}

.binfeng-product-edition {
  display: grid;
  gap: 0.5rem;
}

.binfeng-product-edition__row {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(8rem, 1fr) 1fr;
}

.binfeng-product-edition dt {
  color: var(--wp--preset--color--muted);
}

.binfeng-product-edition dd {
  margin: 0;
}

.shop-product__details {
  border-top: 1px solid var(--wp--preset--color--line);
  margin-top: var(--wp--preset--spacing--50);
  padding-top: var(--wp--preset--spacing--30);
}

.shop-transaction .wp-block-post-title {
  margin-bottom: var(--wp--preset--spacing--40);
}

.shop-transaction .wc-block-components-sidebar-layout {
  gap: clamp(2rem, 5vw, 5rem);
}

.shop-transaction .wc-block-components-sidebar,
.shop-transaction .wc-block-components-order-summary {
  border-color: var(--wp--preset--color--line);
}

.shop-empty-state {
  border-bottom: 1px solid var(--wp--preset--color--line);
  border-top: 1px solid var(--wp--preset--color--line);
  margin-bottom: var(--wp--preset--spacing--50);
  padding-bottom: var(--wp--preset--spacing--40);
  padding-top: var(--wp--preset--spacing--40);
  text-align: center;
}

.shop-archive :focus-visible,
.shop-product :focus-visible,
.shop-transaction :focus-visible {
  outline: 2px solid var(--wp--preset--color--ink);
  outline-offset: 4px;
}

@media (min-width: 1024px) {
  .shop-product__hero {
    /* Core's .is-layout-flex is important; scope this override to Desktop. */
    display: grid !important;
    grid-template-columns: minmax(0, .52fr) minmax(0, .48fr);
    column-gap: clamp(3rem, 4vw, 4rem) !important;
    align-items: start;
  }

  .shop-product__media .wp-block-woocommerce-product-image-gallery {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 960px) {
  .shop-product__hero {
    gap: var(--wp--preset--spacing--30);
  }

  .shop-product__summary {
    position: static;
  }
}

@media (max-width: 680px) {
  .shop-archive,
  .shop-product,
  .shop-transaction {
    padding-top: var(--wp--preset--spacing--30);
  }

  .shop-product__hero {
    display: block;
  }

  .shop-product__summary {
    margin-top: var(--wp--preset--spacing--30);
  }

  .shop-archive__controls {
    align-items: stretch;
    flex-direction: column;
  }

  .binfeng-product-edition__row {
    gap: 0.25rem;
    grid-template-columns: 1fr;
  }

  .shop-transaction .wc-block-components-sidebar-layout {
    display: block;
  }
}
