.bphc-dynamic-vial--media,
.bphc-live-search__image .bphc-dynamic-vial--media,
.bphc-category-card__vial .bphc-dynamic-vial--media,
.bphc-hero-product .bphc-dynamic-vial--media {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
}

.bphc-dynamic-vial--media > img,
.bphc-live-search__image .bphc-dynamic-vial--media > img,
.bphc-category-card__vial .bphc-dynamic-vial--media > img,
.bphc-hero-product .bphc-dynamic-vial--media > img {
  position: static;
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
}

.bphc-product-art--no-science .bphc-dynamic-vial {
  right: 20%;
  width: 60%;
}

.bpe-elementor-single-product .bpew-mobile-product-purchase > .bpew-mobile-purchase-countdown.bpp-shipping-policy-notice,
.bpe-elementor-single-product .bpew-mobile-purchase-countdown.bpp-shipping-policy-notice {
  display: block;
  padding: 10px 12px;
  border-color: #d8e0e5;
  background: #f5f8fa;
  color: #334b5d;
}

.bpp-shipping-policy-note {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
}

.bpp-shipping-policy-note a,
.bphc-product-purchase__note a {
  color: #1c625e;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.bphc-product-science .bpp-storage-conditions {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #d6e4e3;
}

.bphc-product-science .bpp-storage-conditions__heading {
  margin: 0 0 10px;
  color: #176d69;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.bphc-product-science .bpp-storage-conditions dl {
  display: block;
}

.bphc-product-science .bpp-storage-conditions__line + .bpp-storage-conditions__line {
  margin-top: 10px;
}

.bphc-product-science .bpp-storage-conditions dd,
.bphc-product-science .bpp-storage-conditions__single {
  margin: 0;
  color: var(--bphc-ink);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

/* WooCommerce nests a variable product's quantity and button under
   .single_variation_wrap; the simple-product > selectors do not reach them. */
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable form.variations_form.cart {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 14px !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable form.variations_form.cart > .variations,
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable form.variations_form.cart > .single_variation_wrap {
  grid-column: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .variations tbody,
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .variations tr {
  display: block;
  width: 100%;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .variations th.label {
  display: block;
  padding: 0 0 7px !important;
  color: #152f3d;
  font-family: Outfit, sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .variations td.value {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  padding: 0 0 14px !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .variations select {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid #dde5ea;
  border-radius: 8px;
  background: #f8faf9;
  color: #152f3d;
  font-family: Outfit, sans-serif;
  font-size: 14px;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .reset_variations {
  flex: 0 0 auto;
  color: #247f43;
  font-size: 12px;
}

/* The stock notifier is nested inside variation availability. Keep that
   container full-width and place only its short stock label beside the price. */
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .single_variation {
  position: relative;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .single_variation > .woocommerce-variation-price {
  float: none;
  max-width: none;
  padding-right: 130px;
  box-sizing: border-box;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .single_variation > .woocommerce-variation-availability {
  float: none;
  clear: both;
  width: 100% !important;
  max-width: none !important;
  margin-top: 14px;
  text-align: left;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-price .price,
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-price .woocommerce-Price-amount,
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-price .woocommerce-Price-amount bdi,
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-price .woocommerce-Price-currencySymbol {
  color: #152f3d !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-availability .stock.out-of-stock,
body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-availability .stock.in-stock {
  position: absolute;
  top: 10px;
  right: 0;
  margin: 0 !important;
  font-family: Outfit, sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-align: right !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-availability .stock.out-of-stock {
  color: #c52019 !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-availability .stock.in-stock {
  color: #247f43 !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart {
  display: grid !important;
  grid-template-columns: minmax(86px, 112px) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 10px !important;
  width: 100%;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart > .quantity {
  grid-column: 1 !important;
  width: 100% !important;
  margin: 0 !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart > .single_add_to_cart_button {
  grid-column: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 12px 20px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #2e9b52 !important;
  color: #fff !important;
  font-family: Outfit, sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  box-shadow: 0 10px 22px rgba(46, 155, 82, .2) !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart > .single_add_to_cart_button:hover {
  background: #247f43 !important;
}

body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart > .bp-bac-upsell {
  grid-column: 1 / -1 !important;
}

@media (max-width: 767px) {
  body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart > .quantity,
  body.single-product .elementor-widget-woocommerce-product-add-to-cart .elementor-product-variable .woocommerce-variation-add-to-cart > .single_add_to_cart_button {
    grid-column: 1 !important;
  }
}

/* The static Elementor shipping icon box can be served from its element cache. */
body.bpp-alternate-shipping .elementor-element-9a866e73 {
  display: none !important;
}

/* Elementor's element cache can retain the static documentation container. */
body.bpp-hide-coa #product-documentation {
  display: none !important;
}

body.woocommerce-checkout.bpp-checkout-research .woocommerce-billing-fields__field-wrapper::before {
  content: "BioPure Peptides sells exclusively to qualified researchers and licensed laboratories. Please provide the required information below and confirm how the products will be used.";
}

body.woocommerce-checkout.bpp-checkout-merchandise-only .woocommerce-billing-fields__field-wrapper::before {
  content: "Please provide the required billing information below.";
}

/* Match the Terms checkbox rather than the checkout theme's boxed form-row style. */
body.woocommerce-checkout #payment .form-row.place-order > p.bpp-research-use-declaration,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper + p.bpp-research-use-declaration {
  padding: 0;
  border-radius: 0;
  background: transparent;
}

/* Keep the optional WooCommerce field for normal order saving, but show its
   synced, customer-facing editor beside payment only after JavaScript mounts. */
body.woocommerce-checkout #order_comments_field.bpp-notes-original-hidden,
body.woocommerce-checkout .woocommerce-additional-fields.bpp-notes-empty {
  display: none !important;
}

body.woocommerce-checkout #payment .bpp-order-notes {
  margin: 12px 0 0;
  padding: 15px 3px 0;
  border-top: 1px solid #e1e9ec;
}

body.woocommerce-checkout #payment .bpp-order-notes__toggle {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: #38535e;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  cursor: pointer;
}

body.woocommerce-checkout #payment .bpp-order-notes__toggle input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #2ebfae;
}

body.woocommerce-checkout #payment .bpp-order-notes__editor {
  margin: 12px 0 0;
}

body.woocommerce-checkout #payment .bpp-order-notes__editor label {
  display: block;
  margin-bottom: 6px;
  color: #38535e;
  font-size: 10px;
  font-weight: 820;
  letter-spacing: .035em;
  text-transform: uppercase;
}

body.woocommerce-checkout #payment .bpp-order-notes__editor textarea {
  display: block;
  width: 100%;
  min-height: 90px;
  padding: 11px 12px;
  box-sizing: border-box;
  border: 1px solid #cad9df;
  border-radius: 8px;
  background: #fbfdfd;
  color: #173a48;
  font: inherit;
  font-size: 12px;
  resize: vertical;
}

body.woocommerce-checkout #payment .bpp-order-notes__editor textarea:focus {
  border-color: #2ebfae;
  outline: 2px solid rgba(46, 191, 174, .18);
}

body.woocommerce-checkout #payment .bpp-order-notes__editor[hidden],
body.woocommerce-checkout #payment .bpp-zelle-clarification[hidden] {
  display: none !important;
}

body.woocommerce-checkout #payment .form-row.place-order > p.bpp-zelle-clarification {
  margin: 12px 0 10px !important;
  color: #b42318 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}

/* The coupon remains available, but no longer competes with payment. */
body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-coupon-box {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-coupon-box .e-coupon-anchor,
body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-coupon-box .e-woocommerce-coupon-nudge.e-checkout-secondary-title {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 4px 2px !important;
  border: 0 !important;
  background: transparent !important;
  color: #617a83 !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}

body.woocommerce-checkout .elementor-widget.elementor-widget-woocommerce-checkout-page .e-coupon-box .e-woocommerce-coupon-nudge.e-checkout-secondary-title {
  display: none !important;
}

body.woocommerce-checkout #order_review .order-total th .bpp-coupon-link {
  display: block;
  margin-top: 4px;
  color: #1c625e;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: underline;
}

body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-coupon-box .e-show-coupon-form {
  color: #1c625e !important;
  font-weight: 700 !important;
}

body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-coupon-box .e-coupon-box__form {
  margin-top: 8px !important;
  border: 1px solid #d7e2e6 !important;
  border-radius: 9px !important;
  background: #fff !important;
}

body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-coupon-box input#coupon_code {
  background-color: #fff !important;
  border: 1px solid #c9dadd !important;
}

body.woocommerce-checkout .elementor-widget-woocommerce-checkout-page .e-checkout__order_review-2 #payment {
  margin-bottom: 0 !important;
}

body.woocommerce-checkout #payment .form-row.place-order {
  padding-bottom: 29px !important;
}
