/* The gallery, purchase form and details retain WooCommerce's native markup. */
.single-product .btx-store {
  --product-surface: #fffdfc;
  --product-edge: #eedce7;
  --product-tint: #fff4f8;
}
.single-product .btx-store .woocommerce-breadcrumb {
  padding-bottom: .9rem;
  margin-bottom: clamp(1rem, 2vw, 1.8rem);
  border-bottom: 1px solid var(--product-edge);
  font-size: .82rem;
  overflow-wrap: anywhere;
}
.single-product .btx-store .woocommerce-breadcrumb a { color: var(--rose); }
.single-product .btx-store div.product .woocommerce-product-gallery {
  background: linear-gradient(135deg, #fff9fc, #fff7ed);
  border: 1px solid var(--product-edge);
  border-radius: .85rem;
  padding: clamp(.45rem, 1.45vw, 1rem);
}
.single-product .btx-store .woocommerce-product-gallery img { border-radius: .55rem; }
.single-product .btx-store .woocommerce-product-gallery .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: .7rem 0 0;
}
.single-product .btx-store .woocommerce-product-gallery .flex-control-thumbs li {
  width: clamp(2.75rem, 8vw, 4.5rem);
  float: none;
}
.single-product .btx-store .woocommerce-product-gallery .flex-control-thumbs img {
  border: 1px solid var(--product-edge);
}
.single-product .btx-store .woocommerce-product-gallery .flex-control-thumbs .flex-active {
  border-color: var(--rose);
}
.single-product .btx-store div.product .woocommerce-product-gallery__trigger {
  top: clamp(.8rem, 2vw, 1.4rem);
  right: clamp(.8rem, 2vw, 1.4rem);
  box-shadow: 0 .15rem .65rem #583b5520;
}
.single-product .btx-store div.product .summary {
  background: linear-gradient(145deg, var(--product-surface) 45%, #fff6fa);
  border: 1px solid var(--product-edge);
  border-radius: .85rem;
  padding: clamp(1rem, 3vw, 2.4rem);
}
.single-product .btx-store div.product .product_title {
  margin-bottom: .7rem;
  font-size: clamp(2rem, 4vw, 3.5rem);
  overflow-wrap: anywhere;
}
.single-product .btx-store div.product .summary > p.price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .2rem .4rem;
  font-size: clamp(1.15rem, 2vw, 1.5rem);
  margin-bottom: 1rem;
  color: var(--rose);
}
.single-product .btx-store div.product .price ins { text-decoration: none; }
.single-product .btx-store div.product .price del { font-size: .85em; }
.single-product .btx-store .woocommerce-product-details__short-description { color: var(--muted); }
.single-product .btx-store div.product form.cart { margin: 1.25rem 0; }
.single-product .btx-store div.product form.cart .quantity .qty {
  min-height: 3rem;
  width: 4.15rem;
  padding: .4rem;
  border: 1px solid #ddc6d5;
  border-radius: .35rem;
  color: var(--ink);
  background: #fff;
}
.single-product .btx-store div.product form.cart .single_add_to_cart_button {
  min-height: 3rem;
  padding-inline: clamp(.7rem, 2vw, 1.5rem);
  text-align: center;
  white-space: normal;
}
.single-product .btx-store div.product form.cart .variations :is(td,th) { padding-bottom: .45rem; }
.single-product .btx-store div.product form.cart .variations select {
  padding: .5rem .6rem;
  border: 1px solid #ddc6d5;
  border-radius: .35rem;
  background: #fff;
  color: var(--ink);
}
.single-product .btx-store div.product .stock { font-weight: 600; }
.single-product .btx-store div.product .product_meta {
  padding-top: .9rem;
  border-top: 1px solid var(--product-edge);
  color: var(--muted);
  font-size: .82rem;
  overflow-wrap: anywhere;
}
.btx-product-services {
  clear: both;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  gap: .6rem;
  list-style: none;
  padding: 0;
  margin: 1rem 0;
}
.btx-product-services a {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  height: 100%;
  padding: .7rem;
  border: 1px solid var(--product-edge);
  border-radius: .55rem;
  background: var(--product-surface);
  color: var(--ink);
  text-decoration: none;
}
.btx-product-services a:hover { border-color: var(--rose); }
.btx-product-services .btx-icon { width: 1.15rem; height: 1.15rem; color: var(--rose); margin-top: .1rem; }
.btx-product-services strong,.btx-product-services small { display: block; line-height: 1.35; }
.btx-product-services strong { font-size: .88rem; }
.btx-product-services small { margin-top: .16rem; color: var(--muted); }
.single-product .btx-store div.product .woocommerce-tabs {
  clear: both;
  padding-top: clamp(1rem, 3vw, 2.5rem);
}
.single-product .btx-store div.product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .8rem;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--product-edge);
}
.single-product .btx-store div.product .woocommerce-tabs ul.tabs::before,
.single-product .btx-store div.product .woocommerce-tabs ul.tabs li::before,
.single-product .btx-store div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.single-product .btx-store div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.single-product .btx-store div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: .62rem .75rem;
  border-bottom: 2px solid transparent;
  color: var(--muted);
}
.single-product .btx-store div.product .woocommerce-tabs ul.tabs li.active a {
  border-color: var(--rose);
  color: var(--rose);
}
.single-product .btx-store div.product .woocommerce-tabs .panel {
  padding: clamp(.9rem, 2.5vw, 1.7rem);
  border: 1px solid var(--product-edge);
  border-top: 0;
  border-radius: 0 0 .7rem .7rem;
  background: var(--product-surface);
  overflow-wrap: anywhere;
}
.single-product .btx-store div.product .woocommerce-tabs .panel > h2 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
.single-product .btx-store div.product .woocommerce-tabs .panel > :last-child { margin-bottom: 0; }
.single-product .btx-store div.product :is(.related,.up-sells) > h2 {
  margin-block: clamp(1.5rem, 3vw, 3rem) .9rem;
}
@media (max-width: 768px) {
  .single-product .btx-store div.product .summary { margin-block: .85rem 1.2rem; }
  .single-product .btx-store div.product .woocommerce-tabs ul.tabs li a { padding-inline: .45rem; }
}

/* Keep portrait photography within the desktop purchase area. */
body.single-product {
  background: linear-gradient(155deg, #fae8f1 0, #fdf2f8 22rem, #fffaf5 51rem, #fffafc 100%);
}
.single-product .btx-jewellery-header {
  background: linear-gradient(110deg, #fff5fa 0%, #fdf0f8 50%, #fff5e8 100%);
  border-bottom-color: #eacbdc;
}
.single-product .btx-store { padding-top: clamp(1rem, 2.5vw, 2rem); }
.single-product .btx-store .woocommerce-breadcrumb {
  padding: .75rem 1rem;
  border: 1px solid #efd6e4;
  border-radius: .55rem;
  background: #fff8fc;
}
.single-product .btx-store div.product .summary {
  background: radial-gradient(ellipse at 96% 0, #f9dfeefa, transparent 65%), linear-gradient(140deg, #fffaf5 8%, #fff0f8 100%);
  border-color: #eacbdd;
  box-shadow: 0 .8rem 2rem #9b496b13;
}
.single-product .btx-store div.product .summary > p.price { margin-bottom: 1.15rem; }
.single-product .btx-store div.product .product_title { font-size: clamp(2.15rem, 3.65vw, 3.35rem); }
.single-product .btx-store div.product .woocommerce-product-gallery {
  border-color: #eacbdd;
  background: linear-gradient(135deg, #fae6f1, #fff3e7);
  box-shadow: 0 .7rem 1.9rem #9b496b12;
}
.single-product .btx-store .woocommerce-product-gallery .woocommerce-product-gallery__image > a {
  display: block;
  border-radius: .55rem;
  background: linear-gradient(135deg, #fff5fa, #fff8ed);
  overflow: hidden;
}
.single-product .btx-store .woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg) {
  width: 100%;
  height: auto;
  max-height: min(31rem, 61vh);
  object-fit: contain;
}
.single-product .btx-store .btx-product-services a {
  background: #fffafd;
  border-color: #ead0e1;
}
.single-product .btx-store div.product .woocommerce-tabs ul.tabs {
  border: 1px solid #edd3e2;
  border-radius: .6rem .6rem 0 0;
  padding: 0 .55rem;
  background: #fff0f8;
}
.single-product .btx-store div.product .woocommerce-tabs .panel { background: #fffafc; }
.single-product .btx-store div.product :is(.related,.up-sells) {
  clear: both;
  margin: clamp(1.4rem, 3.5vw, 2.85rem) 0 0;
  padding: clamp(1rem, 3vw, 2.2rem);
  background: linear-gradient(125deg, #fcecf5, #fff7ed);
  border: 1px solid #efd8e4;
  border-radius: .85rem;
}
.single-product .btx-store div.product :is(.related,.up-sells) > h2 {
  display: block;
  width: 100%;
  margin: 0 0 1.1rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid #e8cadb;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.2;
  text-align: left;
}
.single-product .btx-store div.product :is(.related,.up-sells) ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  gap: .9rem;
  margin: 0;
}
.single-product .btx-store div.product :is(.related,.up-sells) ul.products li.product {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .12rem;
  padding: .8rem;
  background: #fffdfc;
  border-color: #eedbe6;
}
.single-product .btx-store div.product :is(.related,.up-sells) li.product a img {
  width: 100%;
  height: clamp(8rem, 13vw, 11rem);
  aspect-ratio: auto;
  object-fit: contain;
  background: #fff6fa;
  border: 1px solid #f3e4ed;
  margin: 0 0 .65rem;
}
.single-product .btx-store div.product :is(.related,.up-sells) li.product .woocommerce-loop-product__title {
  padding: .25rem 0 .42rem;
  line-height: 1.35;
}
.single-product .btx-store div.product :is(.related,.up-sells) li.product .button {
  align-self: flex-start;
  margin-top: auto;
  min-height: 2.2rem;
  padding: .4rem .7rem;
  font-size: .82rem;
  text-align: center;
}
@media (max-width: 768px) {
  .single-product .btx-store .woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg) { max-height: min(24rem, 56vh); }
  .single-product .btx-store div.product :is(.related,.up-sells) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
  .single-product .btx-store div.product :is(.related,.up-sells) ul.products li.product { padding: .45rem; }
  .single-product .btx-store div.product :is(.related,.up-sells) li.product .button { padding-inline: .35rem; }
}
