/* Single product page: gallery, sale price row, add to cart / buy now buttons */

/* Gallery column */
.single-product .insi-product-gallery-column,
.single-product .insi-product-gallery-column > .col-inner {
  position: relative !important;
  overflow: visible !important;
}

.single-product .woocommerce-product-gallery,
.single-product .product-gallery,
.single-product .product-images,
.single-product .product-gallery-slider {
  position: relative !important;
  overflow: visible !important;
}

/* Rounded image */
.single-product .product-gallery .flickity-viewport,
.single-product .woocommerce-product-gallery .flickity-viewport {
  border-radius: 20px !important;
  overflow: hidden !important;
}

.single-product .woocommerce-product-gallery__image {
  border-radius: 20px !important;
  overflow: hidden !important;
}

.single-product .woocommerce-product-gallery__image > a {
  display: block !important;
  border-radius: 20px !important;
  overflow: hidden !important;
}

.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 20px !important;
  background: #f5f6f8 !important;
}

/* Sale price row (large layout) */
.product-price-container.is-xlarge .price.product-page-price.price-on-sale {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.product-price-container.is-xlarge .price.product-page-price.price-on-sale del {
  color: #6f6f6f;
  font-size: 15px;
  font-weight: 300;
  line-height: 1;
  opacity: 1;
  text-decoration: none;
}

.product-price-container.is-xlarge .price.product-page-price.price-on-sale del .woocommerce-Price-amount {
  position: relative;
  display: inline-block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-decoration: none;
}

/* Strike line only across the number, not the currency symbol */
.product-price-container.is-xlarge .price.product-page-price.price-on-sale del .woocommerce-Price-amount::after {
  content: "";
  position: absolute;
  left: calc(0.62em - 3px);
  right: 0;
  top: 50%;
  height: 1px;
  background: #6f6f6f;
  transform: translateY(-50%);
  pointer-events: none;
}

.product-price-container.is-xlarge .price.product-page-price.price-on-sale ins {
  color: #000;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -0.25px;
  text-decoration: none;
}

.product-price-container.is-xlarge .price.product-page-price.price-on-sale del *,
.product-price-container.is-xlarge .price.product-page-price.price-on-sale ins * {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

@media (max-width: 549px) {
  .product-price-container.is-xlarge .price.product-page-price.price-on-sale {
    gap: 8px;
  }

  .product-price-container.is-xlarge .price.product-page-price.price-on-sale del {
    font-size: 13px;
  }

  .product-price-container.is-xlarge .price.product-page-price.price-on-sale ins {
    font-size: 27px;
    line-height: 1.8;
    letter-spacing: -0.2px;
  }

  .product-price-container.is-xlarge .price.product-page-price.price-on-sale ins .woocommerce-Price-currencySymbol {
    margin-top: 5px;
    margin-right: 2px;
  }

  .product-price-container.is-xlarge .price.product-page-price.price-on-sale del .woocommerce-Price-amount::after {
    left: calc(0.62em + 4px);
  }
}

/* Add to cart and Buy Now: stacked, full width */
.woocommerce div.product form.cart,
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px;
  width: 100% !important;
}

.woocommerce div.product form.cart div.quantity {
  float: none !important;
  margin: 0 !important;
  flex: 1 1 100%;
}

.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart a.button,
.woocommerce div.product form.cart [class*="buy-now"],
.woocommerce div.product form.cart [class*="buy_now"],
.woocommerce div.product form.cart .wpcbn-btn {
  float: none !important;
  margin: 0 !important;
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
