/* WooCommerce single-product page. */

.woo-single { padding: var(--sp-3) 0; }

.woo-single__layout {
  display: grid;
  gap: var(--sp-6);
  grid-template-columns: 1fr;
  align-items: start;
}
@media (min-width: 960px) {
  .woo-single__layout {
    grid-template-columns: 1.1fr 1fr;
    gap: var(--sp-8);
  }
}

/* Gallery */
.woo-single__media .woocommerce-product-gallery {
  position: sticky;
  top: calc(var(--header-h) + var(--sp-4));
}
.woocommerce-product-gallery img {
  border-radius: var(--radius-sm);
  background: var(--c-cream-soft);
}
.flex-control-thumbs {
  list-style: none;
  padding: 0;
  margin: var(--sp-3) 0 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--sp-2);
}
.flex-control-thumbs img {
  cursor: pointer;
  opacity: .6;
  transition: opacity var(--transition);
  border-radius: var(--radius-sm);
}
.flex-control-thumbs img:hover,
.flex-control-thumbs .flex-active { opacity: 1; }

/* Summary */
.woo-single__summary .product_title {
  font-family: var(--ff-display);
  font-size: var(--fs-h1);
  letter-spacing: var(--ls-display);
  color: var(--c-navy);
  margin: 0 0 var(--sp-3);
  line-height: var(--lh-display);
}
.woo-single__summary .price {
  font-family: var(--ff-ui);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--c-charcoal);
  margin: 0 0 var(--sp-5);
}
.woo-single__summary .price del { color: var(--c-field-gray); font-weight: 400; margin-right: var(--sp-2); }
.woo-single__summary .price ins { text-decoration: none; color: var(--c-red); }

.woocommerce-product-details__short-description {
  font-family: var(--ff-body);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--c-charcoal);
  margin-bottom: var(--sp-5);
}

/* Add-to-cart form */
.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  margin: var(--sp-5) 0;
}
.cart .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--c-field-gray-light);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.cart .qty {
  width: 60px;
  text-align: center;
  border: 0;
  padding: 12px 6px;
}
.cart .single_add_to_cart_button {
  font-family: var(--ff-ui);
  font-weight: 600;
  letter-spacing: var(--ls-ui);
  text-transform: uppercase;
  background: var(--c-navy);
  color: var(--c-cream);
  border: 1px solid var(--c-navy);
  padding: 14px 28px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--transition);
}
.cart .single_add_to_cart_button:hover { background: var(--c-navy-deep); }

/* Variations table */
.variations { width: 100%; margin: 0 0 var(--sp-4); }
.variations td { padding: var(--sp-2) 0; }
.variations th {
  text-align: left;
  font-family: var(--ff-ui);
  font-size: var(--fs-caption);
  letter-spacing: var(--ls-ui);
  text-transform: uppercase;
  color: var(--c-charcoal);
  font-weight: 600;
  padding-right: var(--sp-3);
  vertical-align: middle;
}
.variations select { min-width: 220px; }
.reset_variations {
  display: inline-block;
  font-family: var(--ff-ui);
  font-size: var(--fs-caption);
  letter-spacing: var(--ls-ui);
  text-transform: uppercase;
  color: var(--c-field-gray);
  text-decoration: underline;
}

/* Meta */
.product_meta {
  font-family: var(--ff-ui);
  font-size: var(--fs-caption);
  color: var(--c-field-gray);
  border-top: 1px solid var(--c-rule);
  padding-top: var(--sp-4);
  margin-top: var(--sp-5);
}
.product_meta > span { display: block; margin-bottom: var(--sp-1); }

/* Tabs */
.woocommerce-tabs {
  margin-top: var(--sp-7);
  border-top: 1px solid var(--c-rule);
}
.woocommerce-tabs ul.tabs {
  display: flex;
  gap: var(--sp-5);
  list-style: none;
  padding: 0;
  margin: 0 0 var(--sp-5);
  border-bottom: 1px solid var(--c-rule);
  flex-wrap: wrap;
}
.woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: var(--sp-3) 0;
  font-family: var(--ff-ui);
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: var(--ls-ui);
  text-transform: uppercase;
  color: var(--c-field-gray);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color var(--transition), border-color var(--transition);
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
  color: var(--c-navy);
  border-bottom-color: var(--c-bronze);
}

/* Related products row */
.related.products, .upsells.products {
  margin-top: var(--sp-8);
  padding-top: var(--sp-7);
  border-top: 1px solid var(--c-rule);
}
.related.products > h2, .upsells.products > h2 {
  font-family: var(--ff-display);
  font-size: var(--fs-h2);
  letter-spacing: var(--ls-display);
  text-align: center;
  margin-bottom: var(--sp-6);
}
