/*
 * EMPRYN Product Experience v0.7.5
 * Blocksy-native structure: Blocksy/WooCommerce own the product layout,
 * gallery width, image ratio and thumbnail placement. EMPRYN only styles the
 * native components and protects the main media from cropping/distortion.
 */

body.empryn-product-page {
  --product-accent: #c99637;
  --product-accent-deep: #a87422;
  --product-accent-soft: #f7edd9;
  --product-stage: #f7f7f4;
  --product-card: #ffffff;
  --product-ink: #071524;
  --product-muted: #687386;
  --product-border: #e8e7e2;
  background: #fff;
}

body.empryn-product--beauty {
  --product-accent: #b98739;
  --product-accent-deep: #966c2b;
  --product-accent-soft: #f8eddf;
  --product-stage: #fbf6ee;
  --product-card: #fffdfa;
  --product-ink: #2d2926;
  --product-muted: #756d66;
  --product-border: #eee2d4;
}
body.empryn-product--smart-home { --product-accent: #c9a34f; --product-stage: #f3f7fa; }
body.empryn-product--audio-tech { --product-accent: #8065ff; --product-accent-deep: #6548f3; --product-accent-soft: #ebe7ff; --product-stage: #f5f4fa; --product-ink: #0b1020; }
body.empryn-product--mobile-accessories { --product-accent: #c9983e; --product-stage: #f8f6f2; }
body.empryn-product--gadgets { --product-accent: #d0a244; --product-stage: #f7f7f4; }

/* Breadcrumb: visual treatment only. */
body.single-product .woocommerce-breadcrumb {
  color: #7a8491;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .025em;
  text-transform: uppercase;
}
body.single-product .woocommerce-breadcrumb a { color: #506173; text-decoration: none; }
body.single-product .woocommerce-breadcrumb a:hover { color: var(--product-accent); }

/*
 * Native Blocksy / WooCommerce gallery.
 * IMPORTANT: no width, float, grid, flex-basis or wrapper geometry overrides.
 * Blocksy remains the single source of truth for the 55/45 product layout.
 */
body.single-product .woocommerce-product-gallery {
  box-sizing: border-box;
  border: 1px solid var(--product-border);
  border-radius: 24px;
  background: var(--product-stage);
  box-shadow: 0 18px 55px rgba(7,21,36,.055);
}

body.single-product .woocommerce-product-gallery__image a {
  background: #fff;
  border-radius: 18px;
}

/* No crop / no distortion: main image keeps the original source ratio. */
body.single-product .woocommerce-product-gallery__image img,
body.single-product .woocommerce-product-gallery__image a img,
body.single-product .woocommerce-product-gallery__image img.wp-post-image {
  display: block;
  max-width: 100% !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin-inline: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 18px;
}

/* Thumbnails: style only; Blocksy controls horizontal/vertical placement and size. */
body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  border: 1px solid transparent;
  border-radius: 10px;
  opacity: .78;
  transition: opacity .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
body.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover {
  opacity: 1;
  border-color: var(--product-accent);
  box-shadow: 0 0 0 1px var(--product-accent);
}

/* Native purchase summary: typography/appearance only, never width/float/layout. */
body.single-product div.product .summary.entry-summary {
  color: var(--product-ink);
}

@media (min-width: 1100px) {
  body.single-product div.product .summary.entry-summary {
    position: sticky;
    top: 96px;
    align-self: start;
  }
}

body.single-product .empryn-product-eyebrow {
  margin: 0 0 9px;
  color: var(--product-accent);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}
body.single-product .empryn-product-eyebrow a { color: inherit; text-decoration: none; }

body.single-product div.product .summary .product_title {
  margin-bottom: 13px;
  color: var(--product-ink) !important;
  font-size: clamp(2.3rem, 3.1vw, 3.75rem);
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
}
body.empryn-product--beauty.single-product div.product .summary .product_title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -.035em;
}

body.single-product div.product .summary .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 13px !important;
}
body.single-product div.product .summary .price {
  margin: 8px 0 18px !important;
  color: var(--product-ink) !important;
  font-size: clamp(1.45rem, 1.9vw, 1.85rem) !important;
  font-weight: 850;
}
body.single-product div.product .summary .price ins { color: var(--product-accent-deep); text-decoration: none; }
body.single-product div.product .summary .price del { color: #9ca3af; opacity: .72; font-size: .75em; }

body.single-product .woocommerce-product-details__short-description {
  margin-bottom: 18px;
  color: var(--product-muted);
  font-size: .99rem;
  line-height: 1.65;
}

body.single-product .empryn-product-delivery {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 2px 0 18px;
  padding: 8px 12px;
  border: 1px solid var(--product-border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--product-accent-soft) 55%, #fff);
  color: var(--product-ink);
  font-size: .79rem;
  font-weight: 700;
}

/* Variations / purchase controls. */
body.single-product .variations_form,
body.single-product form.cart { width: 100%; }
body.single-product table.variations { width: 100%; margin: 10px 0 16px; border: 0; }
body.single-product table.variations th,
body.single-product table.variations td { display: block; width: 100%; padding: 0 0 8px; border: 0; }
body.single-product table.variations label {
  color: var(--product-ink);
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.single-product table.variations select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--product-border);
  border-radius: 10px;
  background: #fff;
}
body.single-product form.cart:not(.variations_form),
body.single-product .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: stretch;
  margin-top: 14px !important;
}
body.single-product form.cart .quantity { flex: 0 0 112px; }
body.single-product form.cart .quantity input.qty {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--product-border);
  border-radius: 12px;
  background: #fff;
}
body.single-product form.cart .single_add_to_cart_button {
  flex: 1 1 260px;
  min-height: 50px;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, var(--product-accent), color-mix(in srgb, var(--product-accent) 72%, #f2d58c)) !important;
  color: #101823 !important;
  font-weight: 850 !important;
  box-shadow: 0 12px 25px color-mix(in srgb, var(--product-accent) 24%, transparent);
}
body.single-product form.cart .single_add_to_cart_button:hover { filter: brightness(.97); transform: translateY(-1px); }
body.single-product form.cart .single_add_to_cart_button.disabled,
body.single-product form.cart .single_add_to_cart_button:disabled { opacity: .5; transform: none; }

/* Compact trust row inside the native Blocksy summary. */
body.single-product .empryn-product-reassurance {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 20px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid var(--product-border);
}
body.single-product .empryn-product-reassurance__item {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 0 10px;
  border-left: 1px solid var(--product-border);
  color: var(--product-ink);
  font-size: .68rem;
  line-height: 1.3;
}
body.single-product .empryn-product-reassurance__item:first-child { padding-left: 0; border-left: 0; }
body.single-product .empryn-product-reassurance__item > span {
  display: inline-grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--product-accent-soft);
  color: var(--product-accent-deep);
  font-weight: 900;
}

/* Below-fold EMPRYN sections: no takeover of Blocksy's product-top structure. */
body.single-product .empryn-product-story,
body.single-product .empryn-product-video-section,
body.single-product .empryn-product-cross-sells,
body.single-product .empryn-product-service-strip,
body.single-product .woocommerce-tabs,
body.single-product .related,
body.single-product .upsells {
  clear: both;
  margin-top: 42px;
}

/* Product story */
body.single-product .empryn-product-story {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--product-border);
  border-radius: 28px;
  background: var(--product-stage);
}
body.single-product .empryn-product-story__media { min-height: 420px; background: #fff; }
body.single-product .empryn-product-story__media img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; display: block; }
body.single-product .empryn-product-story__content,
body.single-product .empryn-product-story__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 5vw, 70px); }
body.single-product .empryn-product-story__content h2,
body.single-product .empryn-product-story__copy h2 { margin: 8px 0 14px; color: var(--product-ink); font-size: clamp(2rem, 3vw, 3.3rem); line-height: 1.05; }
body.empryn-product--beauty.single-product .empryn-product-story__content h2,
body.empryn-product--beauty.single-product .empryn-product-story__copy h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
body.single-product .empryn-product-story__content p,
body.single-product .empryn-product-story__copy p { color: var(--product-muted); line-height: 1.7; }
body.single-product .empryn-product-story__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
body.single-product .empryn-product-story__chips span { padding: 7px 10px; border: 1px solid var(--product-border); border-radius: 999px; background: #fff; font-size: .72rem; font-weight: 700; }

/* Tabs */
body.single-product .woocommerce-tabs { padding-top: 10px; border-top: 1px solid var(--product-border); }
body.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 26px;
  margin: 0 0 28px !important;
  padding: 0 !important;
  border: 0 !important;
}
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.single-product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
body.single-product .woocommerce-tabs ul.tabs li a {
  padding: 10px 0 !important;
  color: var(--product-muted) !important;
  font-weight: 750 !important;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
body.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--product-ink) !important; border-bottom-color: var(--product-accent); }
body.single-product .woocommerce-Tabs-panel { color: var(--product-muted); line-height: 1.75; }

/* Confidence strip */
body.single-product .empryn-product-service-strip {
  display: grid;
  grid-template-columns: .8fr 2.2fr;
  gap: 38px;
  padding: clamp(30px, 4vw, 52px);
  border-radius: 26px;
  background: #071524;
  color: #fff;
}
body.single-product .empryn-product-service-strip h2 { margin: 7px 0 0; color: #fff; font-size: clamp(1.8rem, 2.6vw, 2.8rem); }
body.single-product .empryn-product-service-strip__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.single-product .empryn-product-service-strip__items > div { padding: 4px 24px; border-left: 1px solid rgba(255,255,255,.12); }
body.single-product .empryn-product-service-strip__items span { display: block; margin-bottom: 14px; color: #e1b958; font-size: .7rem; font-weight: 850; }
body.single-product .empryn-product-service-strip__items strong { display: block; margin-bottom: 8px; }
body.single-product .empryn-product-service-strip__items small { color: rgba(255,255,255,.62); line-height: 1.55; }

/* Related/cross-sell presentation. */
body.single-product .related > h2,
body.single-product .upsells > h2,
body.single-product .empryn-product-cross-sells h2,
body.single-product .empryn-product-video-section h2 {
  color: var(--product-ink);
  font-size: clamp(2rem, 2.7vw, 3rem);
  letter-spacing: -.035em;
}
body.single-product .related ul.products,
body.single-product .upsells ul.products,
body.single-product .empryn-product-cross-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

/* Mobile sticky purchase shortcut */
body.single-product .empryn-mobile-product-bar { display: none; }

@media (max-width: 1080px) {
  body.single-product div.product .summary.entry-summary { position: static; top: auto; }
  body.single-product .empryn-product-service-strip { grid-template-columns: 1fr; }
  body.single-product .empryn-product-story { grid-template-columns: 1fr; }
  body.single-product .related ul.products,
  body.single-product .upsells ul.products,
  body.single-product .empryn-product-cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  body.single-product div.product .summary .product_title { font-size: clamp(2.1rem, 9vw, 3rem); }
  body.single-product .empryn-product-reassurance { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 0; }
  body.single-product .empryn-product-reassurance__item:nth-child(3) { border-left: 0; padding-left: 0; }
  body.single-product .empryn-product-service-strip__items { grid-template-columns: 1fr; }
  body.single-product .empryn-product-service-strip__items > div { padding: 16px 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  body.single-product .empryn-mobile-product-bar {
    display: flex;
    position: fixed;
    z-index: 9998;
    left: 10px;
    right: 10px;
    bottom: 10px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--product-border);
    border-radius: 16px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 15px 40px rgba(7,21,36,.16);
    backdrop-filter: blur(14px);
  }
  body.single-product .empryn-mobile-product-bar__info { min-width: 0; display: grid; gap: 2px; }
  body.single-product .empryn-mobile-product-bar__info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .75rem; }
  body.single-product .empryn-mobile-product-bar__button { flex: 0 0 auto; padding: 12px 16px; border-radius: 10px; background: var(--product-accent); color: #101823; font-weight: 850; text-decoration: none; }
}

@media (max-width: 520px) {
  body.single-product form.cart .quantity,
  body.single-product form.cart .single_add_to_cart_button { flex: 1 0 100%; }
  body.single-product .related ul.products,
  body.single-product .upsells ul.products,
  body.single-product .empryn-product-cross-sells ul.products { grid-template-columns: 1fr; }
}

/* ==========================================================================
   v0.7.4 — Native Blocksy product-page visual polish
   Geometry stays native. These rules only refine the visual hierarchy inside
   the gallery and summary so the working 55/45 layout is not destabilized.
   ========================================================================== */

body.single-product.empryn-product-page div.product .summary.entry-summary {
  min-width: 0;
}

/* Let native Blocksy elements use the full width of the purchase column. */
body.single-product.empryn-product-page div.product .summary.entry-summary > *:not(.empryn-product-stock) {
  max-width: none;
}

body.single-product.empryn-product-page div.product .summary .product_title {
  max-width: 18ch;
  margin-top: 0;
  margin-bottom: 12px;
  font-size: clamp(2.15rem, 2.65vw, 3.25rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}

body.single-product.empryn-product-page div.product .summary .price {
  margin: 10px 0 17px !important;
  font-size: clamp(1.5rem, 1.7vw, 1.9rem) !important;
  letter-spacing: -.02em;
}

body.single-product.empryn-product-page .woocommerce-product-details__short-description {
  max-width: 60ch;
  margin-bottom: 16px;
  font-size: .98rem;
  line-height: 1.62;
}

/* Real review output only. */
body.single-product.empryn-product-page .woocommerce-product-rating .star-rating,
body.single-product.empryn-product-page .woocommerce-product-rating .star-rating::before,
body.single-product.empryn-product-page .woocommerce-product-rating .star-rating span::before {
  color: var(--product-accent-deep) !important;
}
body.single-product.empryn-product-page .woocommerce-review-link {
  color: var(--product-muted);
  font-size: .9rem;
  text-decoration: none;
}

/* Real stock state from WooCommerce. */
body.single-product.empryn-product-page .empryn-product-stock {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: auto;
  margin: -2px 0 14px;
  padding: 7px 11px;
  border-radius: 999px;
  background: #eef8ef;
  color: #27733a;
  font-size: .76rem;
  font-weight: 800;
}
body.single-product.empryn-product-page .empryn-product-stock > span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

body.single-product.empryn-product-page .empryn-product-option-heading {
  margin: 17px 0 10px;
  color: var(--product-ink);
  font-size: .9rem;
  font-weight: 850;
}

/* Variations and swatches: preserve WooCommerce semantics, improve touch target. */
body.single-product.empryn-product-page table.variations {
  margin-top: 0;
}
body.single-product.empryn-product-page table.variations label {
  display: inline-block;
  margin-bottom: 5px;
  font-size: .7rem;
  letter-spacing: .11em;
}
body.single-product.empryn-product-page .variable-items-wrapper,
body.single-product.empryn-product-page .ct-variation-swatches,
body.single-product.empryn-product-page .ct-swatch-container {
  gap: 9px;
}
body.single-product.empryn-product-page .variable-item,
body.single-product.empryn-product-page .ct-swatch,
body.single-product.empryn-product-page [class*="variation"] .button-variable-item {
  min-height: 44px;
  padding: 8px 16px !important;
  border: 1px solid var(--product-border) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.single-product.empryn-product-page .variable-item.selected,
body.single-product.empryn-product-page .ct-swatch.active,
body.single-product.empryn-product-page .ct-swatch[aria-checked="true"] {
  border-color: var(--product-accent) !important;
  box-shadow: inset 0 0 0 1px var(--product-accent) !important;
}

/* Purchase row: large premium CTA while keeping quantity native. */
body.single-product.empryn-product-page form.cart:not(.variations_form),
body.single-product.empryn-product-page .woocommerce-variation-add-to-cart {
  width: 100%;
  gap: 10px;
}
body.single-product.empryn-product-page form.cart .quantity {
  flex: 0 0 112px;
}
body.single-product.empryn-product-page form.cart .single_add_to_cart_button {
  flex: 1 1 0;
  min-width: 0;
  min-height: 54px;
  border-radius: 10px !important;
  font-size: .95rem !important;
  letter-spacing: .005em;
}

/* Common express-pay wrappers should visually align with the main CTA. */
body.single-product.empryn-product-page .summary [class*="payment-request"],
body.single-product.empryn-product-page .summary [class*="express-checkout"],
body.single-product.empryn-product-page .summary [class*="express_checkout"],
body.single-product.empryn-product-page .summary .wcpay-payment-request-wrapper,
body.single-product.empryn-product-page .summary #wc-stripe-payment-request-wrapper {
  width: 100%;
  max-width: none;
  margin-top: 10px;
}

/* Gallery polish. Main media remains uncropped; thumbnails may be square. */
body.single-product.empryn-product-page .woocommerce-product-gallery {
  overflow: hidden;
  border-radius: 22px;
}
body.single-product.empryn-product-page .woocommerce-product-gallery__image a,
body.single-product.empryn-product-page .woocommerce-product-gallery__image img {
  border-radius: 16px;
}
body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-thumbs img {
  aspect-ratio: 1 / 1;
  width: 100%;
  height: auto;
  object-fit: cover;
  background: #fff;
  border-radius: 9px;
}

/* Trust row closer to the approved concept. */
body.single-product.empryn-product-page .empryn-product-reassurance {
  gap: 0;
  margin-top: 18px;
  padding-top: 15px;
}
body.single-product.empryn-product-page .empryn-product-reassurance__item {
  align-items: flex-start;
  gap: 8px;
  padding-inline: 11px;
}
body.single-product.empryn-product-page .empryn-product-reassurance__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--product-accent-soft);
  color: var(--product-accent-deep);
  font-size: .72rem;
  font-weight: 900;
}
body.single-product.empryn-product-page .empryn-product-reassurance__copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}
body.single-product.empryn-product-page .empryn-product-reassurance__copy strong {
  color: var(--product-ink);
  font-size: .68rem;
  line-height: 1.2;
}
body.single-product.empryn-product-page .empryn-product-reassurance__copy small {
  overflow-wrap: anywhere;
  color: var(--product-muted);
  font-size: .59rem;
  line-height: 1.25;
}

/* Desktop tabs visually echo the approved Product Story bar. */
@media (min-width: 1081px) {
  body.single-product.empryn-product-page .woocommerce-tabs {
    margin-top: 48px;
    padding-top: 0;
    border-top: 1px solid var(--product-border);
  }
  body.single-product.empryn-product-page .woocommerce-tabs ul.tabs {
    gap: clamp(22px, 3vw, 44px);
    margin-bottom: 24px !important;
  }
}

@media (max-width: 1180px) {
  body.single-product.empryn-product-page .empryn-product-reassurance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 0;
  }
  body.single-product.empryn-product-page .empryn-product-reassurance__item:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }
}

@media (max-width: 780px) {
  body.single-product.empryn-product-page div.product .summary .product_title {
    max-width: none;
    font-size: clamp(2rem, 9vw, 2.8rem);
  }
  body.single-product.empryn-product-page .empryn-product-stock {
    margin-top: 0;
  }
}

/* ==========================================================================
   v0.7.5 — Product page finishing pass
   Keeps Blocksy in charge of the 55/45 product columns. This pass only widens
   the product canvas, places gallery thumbnails below the main media, improves
   compact-summary readability and keeps the no-crop media contract intact.
   ========================================================================== */

/* Slightly wider product canvas on real desktop screens; no column geometry override. */
@media (min-width: 1100px) {
  body.single-product.empryn-product-page .empryn-store-main {
    width: min(calc(100% - 48px), 1360px);
  }

  body.single-product.empryn-product-page div.product .summary .product_title {
    max-width: 23ch;
    font-size: clamp(2.15rem, 2.45vw, 3.05rem);
    line-height: 1.045;
  }
}

/*
 * Horizontal thumbnail rail, independent of Blocksy's visual left/right rail.
 * It changes only the gallery's internal presentation, not the product columns.
 */
body.single-product.empryn-product-page .woocommerce-product-gallery {
  display: block !important;
}
body.single-product.empryn-product-page .woocommerce-product-gallery .flex-viewport {
  width: 100% !important;
  margin: 0 !important;
}
body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs,
body.single-product.empryn-product-page .woocommerce-product-gallery ol.flex-control-thumbs {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: stretch;
  gap: 10px;
  width: 100% !important;
  max-width: 100% !important;
  margin: 11px 0 0 !important;
  padding: 2px 2px 5px !important;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs > li,
body.single-product.empryn-product-page .woocommerce-product-gallery ol.flex-control-thumbs > li {
  float: none !important;
  flex: 0 0 86px !important;
  width: 86px !important;
  max-width: 86px !important;
  margin: 0 !important;
  padding: 0 !important;
  scroll-snap-align: start;
}
body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-thumbs img {
  display: block;
  width: 86px !important;
  height: 86px !important;
  aspect-ratio: 1 / 1;
  object-fit: cover !important;
  border: 1px solid var(--product-border);
  border-radius: 11px;
  background: #fff;
}
body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
  border-color: var(--product-accent) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--product-accent) 22%, transparent) !important;
}

/* Keep the main media completely uncropped even with the horizontal thumb rail. */
body.single-product.empryn-product-page .woocommerce-product-gallery__wrapper,
body.single-product.empryn-product-page .woocommerce-product-gallery__image,
body.single-product.empryn-product-page .woocommerce-product-gallery__image a {
  max-width: 100%;
}
body.single-product.empryn-product-page .woocommerce-product-gallery__image img,
body.single-product.empryn-product-page .woocommerce-product-gallery__image a img,
body.single-product.empryn-product-page .woocommerce-product-gallery__image img.wp-post-image {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Summary uses its available column more efficiently. */
body.single-product.empryn-product-page div.product .summary.entry-summary {
  container-type: inline-size;
  container-name: empryn-product-summary;
}
body.single-product.empryn-product-page .empryn-product-option-heading {
  margin-top: 20px;
}
body.single-product.empryn-product-page form.cart .single_add_to_cart_button.disabled,
body.single-product.empryn-product-page form.cart .single_add_to_cart_button:disabled,
body.single-product.empryn-product-page form.cart .single_add_to_cart_button.disabled:hover,
body.single-product.empryn-product-page form.cart .single_add_to_cart_button:disabled:hover {
  background: linear-gradient(135deg, color-mix(in srgb, var(--product-accent) 64%, #fff), color-mix(in srgb, var(--product-accent) 48%, #fff)) !important;
  color: color-mix(in srgb, var(--product-ink) 62%, #fff) !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

/* Trust row: legible four-up when space allows, automatic two-up in narrow summaries. */
body.single-product.empryn-product-page .empryn-product-reassurance {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 0;
  row-gap: 0;
  margin-top: 19px;
  padding-top: 16px;
}
body.single-product.empryn-product-page .empryn-product-reassurance__item {
  min-width: 0;
  padding: 0 12px;
  gap: 9px;
}
body.single-product.empryn-product-page .empryn-product-reassurance__item:first-child {
  padding-left: 0;
}
body.single-product.empryn-product-page .empryn-product-reassurance__item:last-child {
  padding-right: 0;
}
body.single-product.empryn-product-page .empryn-product-reassurance__icon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--product-accent) 28%, var(--product-border));
}
body.single-product.empryn-product-page .empryn-product-reassurance__icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.single-product.empryn-product-page .empryn-product-reassurance__copy strong {
  font-size: .72rem;
  line-height: 1.18;
}
body.single-product.empryn-product-page .empryn-product-reassurance__copy small {
  overflow-wrap: normal;
  word-break: normal;
  font-size: .62rem;
  line-height: 1.28;
}

@container empryn-product-summary (max-width: 560px) {
  body.single-product.empryn-product-page .empryn-product-reassurance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 0;
  }
  body.single-product.empryn-product-page .empryn-product-reassurance__item:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }
}

@media (max-width: 900px) {
  body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs > li,
  body.single-product.empryn-product-page .woocommerce-product-gallery ol.flex-control-thumbs > li {
    flex-basis: 74px !important;
    width: 74px !important;
    max-width: 74px !important;
  }
  body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-thumbs img {
    width: 74px !important;
    height: 74px !important;
  }
}

@media (max-width: 520px) {
  body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs,
  body.single-product.empryn-product-page .woocommerce-product-gallery ol.flex-control-thumbs {
    gap: 8px;
  }
  body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs > li,
  body.single-product.empryn-product-page .woocommerce-product-gallery ol.flex-control-thumbs > li {
    flex-basis: 66px !important;
    width: 66px !important;
    max-width: 66px !important;
  }
  body.single-product.empryn-product-page .woocommerce-product-gallery .flex-control-thumbs img {
    width: 66px !important;
    height: 66px !important;
  }
}


/* ==========================================================================
   v0.7.6 — Product trust row readability fix
   Blocksy continues to own the product columns. This patch only repairs the
   compact reassurance area so labels and notes remain readable at real summary
   widths and inside the WordPress Customizer preview.
   ========================================================================== */
body.single-product.empryn-product-page .empryn-product-reassurance {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin: 20px 0 0 !important;
  padding: 16px 0 0 !important;
  border-top: 1px solid var(--product-border) !important;
}

body.single-product.empryn-product-page .empryn-product-reassurance__item,
body.single-product.empryn-product-page .empryn-product-reassurance__item:first-child,
body.single-product.empryn-product-page .empryn-product-reassurance__item:nth-child(3),
body.single-product.empryn-product-page .empryn-product-reassurance__item:last-child {
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  min-height: 72px;
  margin: 0 !important;
  padding: 12px 13px !important;
  border: 1px solid var(--product-border) !important;
  border-radius: 14px;
  background: color-mix(in srgb, var(--product-accent-soft) 38%, #fff);
}

body.single-product.empryn-product-page .empryn-product-reassurance__icon {
  display: inline-grid !important;
  place-items: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  margin: 0 !important;
  border: 1px solid color-mix(in srgb, var(--product-accent) 28%, var(--product-border)) !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--product-accent-deep) !important;
}

body.single-product.empryn-product-page .empryn-product-reassurance__icon svg {
  width: 18px !important;
  height: 18px !important;
}

body.single-product.empryn-product-page .empryn-product-reassurance__copy {
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  line-height: 1.25;
}

body.single-product.empryn-product-page .empryn-product-reassurance__copy strong,
body.single-product.empryn-product-page .empryn-product-reassurance__copy small {
  display: block !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

body.single-product.empryn-product-page .empryn-product-reassurance__copy strong {
  margin: 0 !important;
  color: var(--product-ink) !important;
  font-size: .74rem !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

body.single-product.empryn-product-page .empryn-product-reassurance__copy small {
  margin-top: 4px !important;
  color: var(--product-muted) !important;
  font-size: .64rem !important;
  line-height: 1.3 !important;
}

/* A very narrow summary (Customizer split view / small tablet) gets one card per row. */
@container empryn-product-summary (max-width: 430px) {
  body.single-product.empryn-product-page .empryn-product-reassurance {
    grid-template-columns: 1fr !important;
  }
  body.single-product.empryn-product-page .empryn-product-reassurance__item,
  body.single-product.empryn-product-page .empryn-product-reassurance__item:first-child,
  body.single-product.empryn-product-page .empryn-product-reassurance__item:nth-child(3),
  body.single-product.empryn-product-page .empryn-product-reassurance__item:last-child {
    min-height: 64px;
  }
}

@media (max-width: 520px) {
  body.single-product.empryn-product-page .empryn-product-reassurance {
    grid-template-columns: 1fr !important;
  }
}


/* v0.7.7 — Product video sizing
 * Keep vertical product videos elegant and contained instead of allowing
 * them to fill the full content width/viewport height. Landscape embeds
 * can still expand to a wider editorial presentation.
 */
body.single-product .empryn-product-video-section {
  width: 100%;
}

body.single-product .empryn-product-video-frame {
  width: 100%;
  margin: 24px auto 0;
  padding: clamp(12px, 2vw, 22px);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid var(--product-border);
  border-radius: 28px;
  background: linear-gradient(145deg, var(--product-stage), #fff);
}

body.single-product .empryn-product-video-frame video {
  display: block !important;
  width: min(100%, 420px) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: min(72vh, 680px) !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  border-radius: 20px;
  background: #000;
  box-shadow: 0 18px 50px rgba(7, 21, 36, .12);
}

body.single-product .empryn-product-video-frame.is-portrait video {
  width: min(100%, 390px) !important;
  max-height: min(72vh, 680px) !important;
}

body.single-product .empryn-product-video-frame.is-square video {
  width: min(100%, 620px) !important;
  max-height: none !important;
}

body.single-product .empryn-product-video-frame.is-landscape video {
  width: min(100%, 960px) !important;
  max-height: none !important;
}

body.single-product .empryn-product-video-frame iframe {
  display: block;
  width: min(100%, 960px) !important;
  max-width: 960px !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  border: 0;
  border-radius: 20px;
  background: #000;
  box-shadow: 0 18px 50px rgba(7, 21, 36, .12);
}

@media (max-width: 780px) {
  body.single-product .empryn-product-video-frame {
    margin-top: 18px;
    padding: 10px;
    border-radius: 20px;
  }

  body.single-product .empryn-product-video-frame video,
  body.single-product .empryn-product-video-frame.is-portrait video {
    width: min(100%, 350px) !important;
    max-height: 70vh !important;
    border-radius: 16px;
  }

  body.single-product .empryn-product-video-frame.is-square video,
  body.single-product .empryn-product-video-frame.is-landscape video,
  body.single-product .empryn-product-video-frame iframe {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 16px;
  }
}
