/*  Rose Couture — single product page
    CSS-only transform over Flatsome's single-product markup.         */

/* ---- Page chrome -------------------------------------------------- */

.single-product #main,
.single-product .shop-container {
  background: var(--wml-bg);
}

.single-product .product-page-title-wrapper { background: transparent; }

/* ---- Gallery ------------------------------------------------------ */

.single-product .product-gallery,
.single-product .product-images {
  background: var(--wml-bg-deep);
  border: var(--wml-hairline-rule);
}
.single-product .product-gallery-slider img,
.single-product .product-thumbnails img {
  mix-blend-mode: multiply;
}
.single-product .slider-nav-simple .flickity-prev-next-button,
.single-product .product-gallery .flickity-prev-next-button {
  background: var(--wml-bg) !important;
  border: var(--wml-hairline-rule) !important;
  border-radius: 0 !important;
  color: var(--wml-ink) !important;
}
.single-product .product-thumbnails .thumbnail.is-nav-selected img {
  outline: 2px solid var(--wml-accent);
  outline-offset: -2px;
}

/* ---- Summary (right column) -------------------------------------- */

.single-product .product-summary-wrapper,
.single-product .product_meta,
.single-product .summary {
  background: transparent;
}

/* Breadcrumb / back link above title */
.single-product .woocommerce-breadcrumb {
  margin-bottom: 1.25rem;
}

/* Brand / category eyebrow — rendered by Flatsome in .product_meta */
.single-product .product_meta .posted_in,
.single-product .product_meta .sku_wrapper {
  font-family: var(--wml-font-heading);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.72rem;
  color: var(--wml-muted);
  display: block;
  margin-bottom: 0.35rem;
}
.single-product .product_meta a {
  color: var(--wml-accent) !important;
  background-image: none !important;
}
.single-product .product_meta a:hover { text-decoration: underline; }

/* Product title */
.single-product .product_title,
.single-product h1.product_title {
  font-family: var(--wml-font-display) !important;
  font-weight: 300 !important;
  font-style: italic !important;
  font-size: clamp(1.75rem, 3.2vw, 2.75rem) !important;
  line-height: 1.1 !important;
  letter-spacing: 0.005em;
  color: var(--wml-ink) !important;
  margin: 0.25rem 0 1rem !important;
}

/* Star rating */
.single-product .woocommerce-product-rating {
  margin: 0 0 1rem;
}
.single-product .star-rating { color: var(--wml-gilt); }
.single-product .star-rating::before { color: var(--wml-hairline); }

/* Price */
.single-product .price,
.single-product p.price {
  font-family: var(--wml-font-body) !important;
  font-size: clamp(1.15rem, 1.8vw, 1.45rem) !important;
  font-weight: 500 !important;
  color: var(--wml-ink) !important;
  letter-spacing: 0.03em;
  margin: 0.25rem 0 1.25rem;
  border-top: var(--wml-hairline-rule);
  border-bottom: var(--wml-hairline-rule);
  padding: 1rem 0;
}
.single-product .price del {
  color: var(--wml-muted);
  margin-right: 0.75rem;
  font-weight: 400;
}
.single-product .price ins {
  color: var(--wml-accent);
  text-decoration: none;
  font-weight: 500;
}

/* Short description */
.single-product .woocommerce-product-details__short-description,
.single-product .product-short-description {
  font-family: var(--wml-font-body);
  font-size: var(--wml-size-base);
  line-height: 1.75;
  color: var(--wml-ink-soft);
  margin-bottom: 1.5rem;
}
.single-product .woocommerce-product-details__short-description p { max-width: 55ch; }

/* ---- Variations & quantity --------------------------------------- */

.single-product table.variations {
  border: 0;
  margin-bottom: 1.25rem;
}
.single-product table.variations td,
.single-product table.variations th {
  background: transparent;
  border: 0;
  padding: 0.4rem 0.5rem 0.4rem 0;
  vertical-align: middle;
}
.single-product table.variations label {
  font-family: var(--wml-font-heading);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.72rem;
  color: var(--wml-ink-soft);
  margin: 0;
}
.single-product .variations select {
  font-family: var(--wml-font-body);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--wml-hairline);
  border-radius: 0;
  padding: 0.6rem 0;
  color: var(--wml-ink);
}
.single-product .variations_reset { color: var(--wml-muted) !important; font-size: 0.75rem; }

/* Quantity stepper */
.single-product .quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--wml-hairline);
  background: transparent;
}
.single-product .quantity .qty {
  width: 3.5rem !important;
  text-align: center;
  border: 0 !important;
  background: transparent;
  font-size: var(--wml-size-base);
  color: var(--wml-ink);
  padding: 0.65rem 0 !important;
}
.single-product .quantity button,
.single-product .quantity .minus,
.single-product .quantity .plus {
  background: transparent !important;
  color: var(--wml-ink) !important;
  border: 0 !important;
  width: 2.4rem;
  height: 2.4rem;
  line-height: 1;
  font-family: var(--wml-font-body);
  font-size: 1.2rem;
}
.single-product .quantity button:hover { color: var(--wml-accent) !important; }

/* Add to cart */
.single-product .single_add_to_cart_button,
.single-product button.single_add_to_cart_button,
.single-product .cart button[type="submit"] {
  font-family: var(--wml-font-heading) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.22em !important;
  font-size: 0.88rem !important;
  background: var(--wml-ink) !important;
  color: var(--wml-white) !important;
  border: 1px solid var(--wml-ink) !important;
  border-radius: 0 !important;
  padding: 1rem 2.5rem !important;
  min-height: 3.25rem;
  box-shadow: none !important;
  transition: background var(--wml-dur-base) var(--wml-ease),
              border-color var(--wml-dur-base) var(--wml-ease),
              color var(--wml-dur-fast) var(--wml-ease);
}
.single-product .single_add_to_cart_button:hover,
.single-product .single_add_to_cart_button:focus-visible {
  background: var(--wml-accent) !important;
  border-color: var(--wml-accent) !important;
}
.single-product .cart {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  border-top: var(--wml-hairline-rule);
  padding-top: 1.5rem;
}

/* Wishlist / favorite — often from Flatsome */
.single-product .yith-wcwl-add-to-wishlist,
.single-product .wishlist-text {
  font-family: var(--wml-font-heading);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 0.72rem;
}

/* ---- Tabs -> accordion-like (visual) ------------------------------ */

.single-product .product-tabs,
.woocommerce-tabs.tabbed-content {
  margin-top: clamp(2.5rem, 4vw, 4rem);
  border-top: var(--wml-hairline-rule);
}
.single-product .product-tabs ul.tabs,
.woocommerce-tabs ul.tabs {
  padding: 0 !important;
  border: 0 !important;
  margin: 0 !important;
  background: transparent;
}
.single-product .product-tabs ul.tabs li,
.woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: 0 !important;
  border-bottom: var(--wml-hairline-rule) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  width: 100% !important;
}
.single-product .product-tabs ul.tabs li a,
.woocommerce-tabs ul.tabs li a {
  font-family: var(--wml-font-heading) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.22em !important;
  font-size: 0.88rem !important;
  color: var(--wml-ink) !important;
  padding: 1.2rem 0 !important;
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  background: transparent !important;
  border: 0 !important;
}
.single-product .product-tabs ul.tabs li a::after,
.woocommerce-tabs ul.tabs li a::after {
  content: "+";
  font-family: var(--wml-font-display);
  font-size: 1.3rem;
  color: var(--wml-accent);
  transition: transform var(--wml-dur-base) var(--wml-ease);
}
.single-product .product-tabs ul.tabs li.active a::after,
.woocommerce-tabs ul.tabs li.active a::after {
  content: "−";
}
.single-product .product-tabs .panel,
.woocommerce-tabs .panel {
  padding: 1rem 0 2rem !important;
  max-width: 70ch;
}
.single-product .product-tabs .panel p { line-height: 1.78; }

/* ---- Related products ------------------------------------------- */

.single-product .related.products,
.single-product .up-sells {
  margin-top: clamp(3rem, 5vw, 5rem);
  border-top: var(--wml-hairline-rule);
  padding-top: clamp(2rem, 3vw, 3rem);
}
.single-product .related > h2,
.single-product .up-sells > h2 {
  font-family: var(--wml-font-display) !important;
  font-style: italic;
  font-weight: 300;
  text-align: center;
  margin-bottom: 2rem;
}

/* ---- Reviews ---------------------------------------------------- */

.single-product #reviews .commentlist li,
.single-product #reviews .comment {
  border-bottom: var(--wml-hairline-rule);
  padding: 1.25rem 0;
}
.single-product #reviews .comment_container {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
}
.single-product #reviews .avatar {
  border-radius: 0;
  border: var(--wml-hairline-rule);
}
.single-product #reviews #commentform input,
.single-product #reviews #commentform textarea {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--wml-hairline);
  border-radius: 0;
  padding: 0.75rem 0;
  width: 100%;
  color: var(--wml-ink);
}
.single-product #reviews #commentform .submit {
  background: var(--wml-ink) !important;
  color: var(--wml-white) !important;
  border: 1px solid var(--wml-ink) !important;
  border-radius: 0 !important;
  padding: 1rem 2.5rem !important;
  font-family: var(--wml-font-heading) !important;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.85rem;
}
.single-product #reviews #commentform .submit:hover {
  background: var(--wml-accent) !important;
  border-color: var(--wml-accent) !important;
}

/* ---- Layout: sticky summary on desktop --------------------------- */

@media (min-width: 850px) {
  .single-product div.product {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
  }
  .single-product div.product .summary {
    position: sticky;
    top: 96px;
    padding: 1rem 0;
  }
  .single-product div.product .woocommerce-tabs,
  .single-product div.product .up-sells,
  .single-product div.product .related {
    grid-column: 1 / -1;
  }
}

@media (max-width: 48em) {
  .single-product .product_title { font-size: 1.75rem !important; }
  .single-product .single_add_to_cart_button { width: 100%; }
}
