/* Product page (inc/product.php) on top of Blocksy's single-product layout. */

.single-product .site-main > [class*="ct-container"] { padding-top: 0; }
.single-product .hero-section { margin-top: 0; margin-bottom: 0; padding: 20px 0 0; }
.single-product .hero-section .ct-breadcrumbs { font-size: 13px; color: var(--grc-body); }
.single-product .hero-section .ct-breadcrumbs a { color: var(--grc-body); text-decoration: none; }
.single-product .hero-section .ct-breadcrumbs a:hover { color: var(--grc-ink); }

/* ---------- layout: gallery | summary ---------- */
.single-product .product-entry-wrapper {
  display: grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; padding-top: 20px;
}
.single-product .product-entry-wrapper > * { width: auto !important; max-width: none !important; margin: 0 !important; }
@media (min-width: 1000px) {
  .single-product .product-entry-wrapper .entry-summary { position: sticky; top: 100px; }
}

/* ---------- gallery ---------- */
.single-product .woocommerce-product-gallery .flexy-view,
.single-product .woocommerce-product-gallery .flexy-item figure { border-radius: 28px; overflow: hidden; }
.single-product .woocommerce-product-gallery .flexy-item figure,
.single-product .woocommerce-product-gallery > .ct-media-container { background: var(--grc-tile); }
.single-product .woocommerce-product-gallery img { mix-blend-mode: multiply; object-fit: contain !important; }
.single-product .woocommerce-product-gallery .flexy-item figure img:not(.zoomImg) { padding: 6%; box-sizing: border-box; }
/* hover zoom: the enlarged copy must not inherit the inset, or jQuery Zoom's offsets miss the edges */
.single-product .woocommerce-product-gallery img.zoomImg { padding: 0 !important; max-width: none !important; object-fit: fill !important; background: transparent !important; }
/* both photos multiply onto the grey tile, so the original would show through the zoom: hide it while zooming
   (mouse only — on touch there is no hover zoom and :hover would stick) */
.single-product .woocommerce-product-gallery .flexy-item figure img:not(.zoomImg) { transition: opacity .12s ease; }
@media (hover: hover) and (pointer: fine) {
  .single-product .woocommerce-product-gallery .flexy-item figure:has(.zoomImg):hover img:not(.zoomImg) { opacity: 0; }
}
.single-product .flexy-pills ol {
  display: flex !important; flex-wrap: nowrap !important; gap: 10px; margin: 12px 0 0 !important; padding: 2px 2px 6px !important;
  overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; grid-template-columns: none !important;
}
.single-product .flexy-pills li {
  flex: 0 0 76px; width: 76px !important; height: 76px !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
  border-radius: 14px; overflow: hidden; background: var(--grc-tile); box-shadow: inset 0 0 0 1.5px transparent; cursor: pointer;
  scroll-snap-align: start; transition: box-shadow .15s ease; isolation: isolate;
}
.single-product .flexy-pills li::before, .single-product .flexy-pills li::after { display: none !important; }
.single-product .flexy-pills li:hover { box-shadow: inset 0 0 0 1.5px #B8BDC6; }
.single-product .flexy-pills li.active { box-shadow: inset 0 0 0 2px var(--grc-ink); }
.single-product .flexy-pills { display: block !important; }
/* the thumbnail's own box is a stacking context, so it carries the grey: multiply then melts the white photo into it */
.single-product .flexy-pills li .ct-media-container { display: block; width: 100%; height: 100%; background: var(--grc-tile) !important; border-radius: 0 !important; }
.single-product .flexy-pills li img { width: 100% !important; height: 100% !important; padding: 10%; box-sizing: border-box; object-fit: contain !important; mix-blend-mode: multiply; background: transparent !important; border-radius: 0 !important; }
.single-product .flexy-arrow-prev, .single-product .flexy-arrow-next { width: 44px; height: 44px; border-radius: 999px; background: #FFFFFF; color: var(--grc-ink); box-shadow: 0 6px 20px rgba(11, 13, 18, .12); }
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px;
  background: #FFFFFF; box-shadow: 0 6px 20px rgba(11, 13, 18, .12); font-size: 0; color: transparent; /* WooCommerce prints a 🔍 emoji */
}
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::before {
  content: ""; position: absolute; inset: 0; width: 20px; height: 20px; margin: auto; border: 0; transform: none; background: var(--grc-ink); /* WooCommerce pins it top-left */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger::after { display: none; }
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger:focus-visible { outline: 2px solid var(--grc-ink); outline-offset: 2px; }

/* ---------- summary ---------- */
.single-product .entry-summary { display: flex; flex-direction: column; gap: 0; }
.single-product .entry-summary .ct-product-divider { display: none; }
.grc-pdp-kicker { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.grc-pdp-brand { font-family: var(--grc-mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--grc-muted); text-decoration: none; }
a.grc-pdp-brand:hover { color: var(--grc-ink); }
.grc-chip--grey { background: var(--grc-tile); }
.single-product .entry-summary .product_title { margin: 0 0 14px; font-family: var(--grc-head); font-size: 26px; line-height: 1.25; letter-spacing: -0.015em; font-weight: 700; color: var(--grc-ink); }
.single-product .entry-summary .price { display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 0; font-family: var(--grc-head); font-size: 28px; font-weight: 700; color: var(--grc-ink); letter-spacing: -0.01em; }
.single-product .entry-summary .price del { order: 2; font-size: 18px; font-weight: 500; color: var(--grc-muted); }
.single-product .entry-summary .price ins { text-decoration: none; }
.single-product .entry-summary .price .grc-from { font-size: 15px; }
.grc-pdp-off { margin: 10px 0 0; align-self: flex-start; font-size: 12px; }
.single-product .woocommerce-product-details__short-description { margin: 18px 0 0; color: var(--grc-body); font-size: 15px; line-height: 1.6; }
.single-product .woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }

/* ---------- add to cart ---------- */
.single-product .ct-product-add-to-cart { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--grc-line); }
.single-product .entry-summary .stock { margin: 0 0 14px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--grc-ink); }
.single-product .entry-summary .stock.in-stock::before, .single-product .woocommerce-variation-availability .stock.in-stock::before { content: ""; width: 8px; height: 8px; border-radius: 99px; background: #2FA84F; }
.single-product .entry-summary .stock.out-of-stock { color: #B42318; }
.single-product form.cart .ct-cart-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; }
.single-product form.cart .quantity {
  position: relative; display: flex !important; align-items: center; height: 56px !important; width: 136px !important; flex: 0 0 136px;
  padding: 0 4px !important; box-sizing: border-box; border-radius: 999px !important; border: 1.5px solid #DADDE3 !important; background: #FFFFFF;
}
.single-product form.cart .quantity:focus-within { border-color: var(--grc-ink) !important; }
.single-product form.cart .quantity .ct-decrease { order: 0; }
.single-product form.cart .quantity input.qty { order: 1; }
.single-product form.cart .quantity .ct-increase { order: 2; }
.single-product form.cart .quantity .ct-increase, .single-product form.cart .quantity .ct-decrease {
  position: static !important; inset: auto !important; transform: none !important; flex: 0 0 40px; width: 40px !important; height: 40px !important;
  display: flex !important; align-items: center; justify-content: center; border: 0 !important; border-radius: 999px; background: transparent; color: var(--grc-ink); cursor: pointer;
}
.single-product form.cart .quantity .ct-increase:hover, .single-product form.cart .quantity .ct-decrease:hover { background: var(--grc-tile); }
.single-product form.cart .quantity input.qty {
  flex: 1 1 auto; min-width: 0; width: auto !important; height: 100% !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; outline: none;
  text-align: center; font: 600 16px var(--wp--preset--font-family--body); color: var(--grc-ink); -moz-appearance: textfield;
}
.single-product form.cart .quantity input.qty::-webkit-outer-spin-button, .single-product form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.single-product form.cart .single_add_to_cart_button {
  flex: 1 1 200px; height: 56px; min-height: 56px; border-radius: 999px !important; background: var(--grc-ink) !important; color: #FFFFFF !important;
  font: 600 16px/1 var(--wp--preset--font-family--body); letter-spacing: 0;
}
.single-product form.cart .single_add_to_cart_button:hover { background: #2A2E37 !important; }
.single-product form.cart .single_add_to_cart_button.disabled { opacity: .45; }
.single-product form.cart .ppc-button-wrapper { flex-basis: 100%; }

/* variation options (Variation Swatches buttons) */
.single-product table.variations { margin: 0 0 18px; border: 0; }
.single-product table.variations tr { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.single-product table.variations th.label, .single-product table.variations td { padding: 0; border: 0; text-align: left; }
.single-product table.variations th.label label { font-family: var(--grc-mono); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--grc-muted); }
.single-product .variable-items-wrapper { gap: 8px; margin: 0 !important; padding: 2px; } /* no inner scroll box: the chosen option stays in view */
.single-product .variable-items-wrapper .variable-item.button-variable-item {
  margin: 0 !important; min-height: 44px; height: auto !important; padding: 8px 14px !important; border-radius: 12px !important;
  box-shadow: inset 0 0 0 1px #DADDE3 !important; background: #FFFFFF !important; color: var(--grc-ink) !important; transition: box-shadow .15s ease;
}
.single-product .variable-items-wrapper .variable-item.button-variable-item:hover { box-shadow: inset 0 0 0 1.5px var(--grc-ink) !important; }
.single-product .variable-items-wrapper .variable-item.button-variable-item.selected { background: var(--grc-ink) !important; color: #FFFFFF !important; box-shadow: none !important; }
.single-product .variable-items-wrapper .variable-item-span-button { font-size: 14px; font-weight: 500; line-height: 1.3; white-space: normal; text-align: left; }
.single-product .reset_variations { font-size: 13px; color: var(--grc-body); }
.single-product .woocommerce-variation-price .price { font-size: 26px; }
.single-product .woocommerce-variation-availability .stock { margin-top: 8px; }

/* ---------- facts panel ---------- */
.grc-pdp-facts { list-style: none; margin: 22px 0 0; padding: 6px 20px; border-radius: 20px; background: var(--grc-tile); }
.grc-pdp-facts li { display: flex; gap: 14px; padding: 14px 0; color: var(--grc-ink); font-size: 14px; line-height: 1.5; }
.grc-pdp-facts li + li { border-top: 1px solid #E2E4E9; }
.grc-pdp-facts svg { flex: 0 0 22px; margin-top: 1px; }
.grc-pdp-facts b { display: block; font-size: 15px; }
.grc-pdp-facts span { color: var(--grc-body); }
.grc-pdp-policy { display: flex; gap: 18px; margin: 12px 0 0; font-size: 13px; }
.grc-pdp-policy a { color: var(--grc-body); text-decoration: underline; text-underline-offset: 3px; }
.single-product .product_meta { margin-top: 18px; font-family: var(--grc-mono); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--grc-muted); }
.single-product .product_meta > span { display: inline-block; margin-right: 14px; }
.single-product .product_meta .posted_in { display: none; }

/* ---------- description, tabs, related ---------- */
.store-product-description { margin-top: 80px; }
.store-product-description__inner { box-sizing: border-box; max-width: calc(880px + 2 * var(--grc-gutter)); margin: 0 auto; padding-inline: var(--grc-gutter); }
.store-product-description__inner img { border-radius: 20px; }
.single-product .woocommerce-tabs { box-sizing: border-box; max-width: calc(880px + 2 * var(--grc-gutter)); margin: 72px auto 0; padding-inline: var(--grc-gutter); }
.single-product .woocommerce-tabs ul.tabs { display: flex; justify-content: flex-start; gap: 8px; width: auto; max-width: none; margin: 0 0 28px !important; padding: 0 !important; border: 0 !important; }
.single-product .woocommerce-tabs ul.tabs::before, .single-product .woocommerce-tabs ul.tabs li::before, .single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.single-product .woocommerce-tabs ul.tabs li a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px !important; border-radius: 999px; border: 1px solid #DADDE3;
  font: 600 14px/1 var(--wp--preset--font-family--body); color: var(--grc-ink) !important; text-transform: none; letter-spacing: 0;
}
.single-product .woocommerce-tabs ul.tabs li.active a { background: var(--grc-ink); border-color: var(--grc-ink); color: #FFFFFF !important; }
.single-product .woocommerce-Tabs-panel { max-width: 880px; padding: 0 !important; }
.single-product table.shop_attributes { width: 100%; border: 0; border-collapse: collapse; border-radius: 20px; overflow: hidden; background: var(--grc-tile); }
.single-product table.shop_attributes th, .single-product table.shop_attributes td { padding: 14px 20px !important; border: 0 !important; border-bottom: 1px solid #E2E4E9 !important; background: transparent !important; font-size: 14px; text-align: left; vertical-align: top; }
.single-product table.shop_attributes tr:last-child th, .single-product table.shop_attributes tr:last-child td { border-bottom: 0 !important; }
.single-product table.shop_attributes th { width: 34%; font-family: var(--grc-mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--grc-muted); }
.single-product table.shop_attributes td p { margin: 0; }
.single-product .woocommerce-Reviews .woocommerce-noreviews { font-size: 15px; color: var(--grc-body); }
.single-product .related.products { margin-top: 88px; }
.single-product .related.products > h2 { margin: 0 0 24px; font-family: var(--grc-head); font-size: clamp(22px, 2.4vw, 28px); letter-spacing: -0.015em; }

/* ---------- phones ---------- */
@media (max-width: 999px) {
  .single-product .product-entry-wrapper { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .single-product .woocommerce-product-gallery .flexy-view, .single-product .woocommerce-product-gallery .flexy-item figure { border-radius: 22px; }
  .single-product .entry-summary .product_title { font-size: 21px; }
  /* phones: plain translucent chevrons instead of white discs over the photo */
  .single-product .flexy-arrow-prev, .single-product .flexy-arrow-next { width: 32px; height: 44px; border-radius: 8px; background: transparent; box-shadow: none; opacity: 1; }
  .single-product .flexy-arrow-prev svg, .single-product .flexy-arrow-next svg { display: none; }
  .single-product .flexy-arrow-prev::before, .single-product .flexy-arrow-next::before {
    content: ""; width: 22px; height: 22px; background: rgba(11, 13, 18, .45);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .single-product .flexy-arrow-next::before { transform: scaleX(-1); }
  .single-product .entry-summary .price { font-size: 24px; }
  .store-product-description { margin-top: 48px; }
  .single-product .woocommerce-tabs { margin-top: 48px; }
  .single-product .woocommerce-tabs ul.tabs { overflow-x: auto; flex-wrap: nowrap; }
  .single-product .related.products { margin-top: 56px; }
}
.grc-buybar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: #FFFFFF; border-top: 1px solid var(--grc-line); box-shadow: 0 -8px 24px rgba(11, 13, 18, .08); transform: translateY(110%); transition: transform .2s ease;
}
.grc-buybar[hidden] { display: none; }
.grc-buybar.is-shown { transform: none; }
.grc-buybar__text { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.grc-buybar__name { font-size: 12px; color: var(--grc-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grc-buybar__price, .grc-buybar__price .amount { font-family: var(--grc-head); font-size: 18px; font-weight: 700; color: var(--grc-ink); }
.grc-buybar__price del { display: none; }
.grc-buybar__price ins { text-decoration: none; }
.grc-buybar__btn { flex: 0 0 auto; min-height: 48px; padding: 0 22px; }
@media (min-width: 1000px) { .grc-buybar { display: none !important; } }
.grc-pdp-ends { display: block; margin: 8px 0 0; font: 600 13px var(--grc-mono); letter-spacing: .02em; color: var(--grc-body); }
.store-product-description__title { margin: 0 0 20px; padding-top: 32px; border-top: 1px solid var(--grc-line); font-family: var(--grc-head); font-size: clamp(22px, 2.4vw, 28px); letter-spacing: -0.015em; color: var(--grc-ink); }

/* Breadcrumb like the category pages': sentence case, regular weight, muted */
.single-product .ct-breadcrumbs { text-transform: none; font-weight: 400; font-size: 13px; color: var(--grc-body); }
.single-product .ct-breadcrumbs a { color: var(--grc-body); }
.single-product .ct-breadcrumbs a:hover { color: var(--grc-ink); }
.single-product .ct-breadcrumbs .ct-separator { width: 8px; height: 8px; opacity: .5; }
/* variable products: the chosen variation's price shows in the main price at the top (product.js), not twice */
.single-product .single_variation .woocommerce-variation-price { display: none; }
