/* Native Woo product data, forms, variation images and full-image lightbox. */
.nd-product-page {
  --nd-product-line: var(--wp--preset--color--line, #dce0e5);
  --nd-product-surface: var(--wp--preset--color--surface, #f5f6f8);
  --nd-product-ink: var(--wp--preset--color--ink, #171a21);
  --nd-product-muted: var(--wp--preset--color--muted, #565d68);
  --nd-product-brand: var(--wp--preset--color--brand, #f84e45);
  --nd-product-stage-height: clamp(340px, 46vw, 520px);
  --nd-product-stage-surface: linear-gradient(145deg, #fff7f5 0%, var(--nd-product-surface) 75%);
  color: var(--nd-product-ink);
  padding-block: clamp(1.25rem, 3vw, 2.75rem) clamp(3rem, 6vw, 6rem);
}
.nd-product-page .nd-product-container { max-width: 1280px; margin-inline: auto; }
.nd-product-page .nd-product-breadcrumbs { color: var(--nd-product-muted); font-size: .8125rem; line-height: 1.7; margin-bottom: clamp(1.75rem, 3vw, 3rem); }
.nd-product-page .woocommerce-breadcrumb { margin: 0; }
.nd-product-page .nd-product-layout { align-items: flex-start; gap: clamp(2rem, 4vw, 4.5rem); margin-block: 0; }
.nd-product-page .nd-product-layout > .wp-block-column { min-width: 0; }
.nd-product-page .nd-product-visual { position: sticky; top: 2rem; }
.nd-product-page .nd-product-title { font-size: clamp(1.75rem, 2.7vw, 2.75rem); line-height: 1.13; font-weight: 600; letter-spacing: -.035em; margin: 0 0 1.25rem; overflow-wrap: anywhere; }
.nd-product-page .nd-product-intro > * + * { margin-block-start: 1.5rem; }
.nd-product-page .nd-product-price { font-size: clamp(1.375rem, 2vw, 1.75rem); font-weight: 600; line-height: 1.4; }
.nd-product-page .nd-product-price del { color: var(--nd-product-muted); font-size: .85em; font-weight: 400; }
.nd-product-page .nd-product-price ins { color: inherit; text-decoration: none; }
.nd-product-page .woocommerce-product-rating { font-size: .875rem; }

/* Preserve every edge of every source image; native slider owns slide widths. */
.nd-product-page .nd-product-gallery { position: relative; max-width: none; }
.nd-product-page .nd-product-gallery.nd-gallery-all-wide { --nd-product-stage-height: 320px; }
.nd-product-page .woocommerce-product-gallery {
  position: relative;
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  opacity: 1 !important;
  display: flow-root;
}
.nd-product-page .woocommerce-product-gallery.nd-gallery-with-thumbs { width: calc(100% - 92px) !important; margin-left: 92px !important; }
.nd-product-page .woocommerce-product-gallery > .flex-viewport,
.nd-product-page .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { min-width: 0; }
.nd-product-page .woocommerce-product-gallery .flex-viewport { height: var(--nd-product-stage-height) !important; border-radius: 1.5rem; background: var(--nd-product-stage-surface); }
.nd-product-page .woocommerce-product-gallery__image,
.nd-product-page .woocommerce-product-gallery__image--placeholder { background: var(--nd-product-stage-surface); border-radius: 1.5rem; }
.nd-product-page .woocommerce-product-gallery__image > a { display: flex; align-items: center; justify-content: center; height: var(--nd-product-stage-height); }
.nd-product-page .woocommerce-product-gallery__image > a > img,
.nd-product-page .woocommerce-product-gallery__image--placeholder > img {
  width: 100% !important;
  height: var(--nd-product-stage-height) !important;
  max-height: var(--nd-product-stage-height);
  box-sizing: border-box;
  padding: clamp(1rem, 2.5vw, 2rem);
  object-fit: contain !important;
  object-position: center;
  border-radius: 1.5rem;
}
.nd-product-page .woocommerce-product-gallery .flex-control-thumbs {
  position: absolute;
  right: calc(100% + 1rem);
  top: 0;
  width: 76px;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  max-height: var(--nd-product-stage-height);
  margin: 0;
  padding: 3px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  list-style: none;
  scrollbar-width: thin;
}
.nd-product-page .woocommerce-product-gallery .flex-control-thumbs li { width: 100% !important; float: none !important; flex: 0 0 auto; margin: 0; }
.nd-product-page .woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100% !important; height: 70px !important; object-fit: contain; box-sizing: border-box; padding: .35rem; border: 1px solid var(--nd-product-line); border-radius: .65rem; background: #fff; opacity: 1; cursor: pointer; transition: border-color .15s ease; }
.nd-product-page .woocommerce-product-gallery .flex-control-thumbs img.flex-active { border: 2px solid var(--nd-product-brand); }
.nd-product-page .woocommerce-product-gallery .flex-control-thumbs img:focus-visible { outline: 3px solid var(--nd-product-ink); outline-offset: 1px; }
.nd-product-page .woocommerce-product-gallery .flex-control-thumbs img:hover { border-color: var(--nd-product-muted); }
.nd-product-page .nd-product-gallery-tools { display: flex; justify-content: flex-end; clear: both; margin-top: .85rem; }
.nd-product-page .nd-product-enlarge { position: static; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--nd-product-line); border-radius: 999px; background: #fff; font-size: .8125rem; font-weight: 600; color: var(--nd-product-ink); line-height: 1.4; text-decoration: none; }
.nd-product-page .nd-product-enlarge:hover { background: var(--wp--preset--color--brand-tint, #fff3f1); border-color: var(--nd-product-brand); }
.nd-product-page .nd-product-enlarge:focus-visible { outline: 3px solid var(--nd-product-ink); outline-offset: 3px; }
.nd-product-page .nd-product-has-enlarger .woocommerce-product-gallery__trigger { display: none !important; }
.nd-product-page .nd-product-enlarge::after { content: '\2197'; font-size: 1.1em; }
.nd-product-page .nd-product-gallery > .onsale { position: absolute; z-index: 2; top: 1rem; right: 1rem; left: auto; min-height: auto; min-width: auto; margin: 0; padding: .4rem .75rem; border-radius: 999px; background: var(--nd-product-brand); color: var(--nd-product-ink); font-size: .75rem; line-height: 1.4; }

/* Woo retains the complete form/action/variation and availability behavior. */
.nd-product-page .nd-product-purchase { padding: clamp(1.25rem, 2vw, 1.75rem); border: 1px solid var(--nd-product-line); border-radius: 1.25rem; background: var(--nd-product-surface); scroll-margin-top: 1.5rem; }
.nd-product-page .nd-product-purchase:empty { display: none; }
.nd-product-page .nd-product-purchase .cart { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0 !important; }
.nd-product-page .nd-product-purchase .variations_form { display: block; }
.nd-product-page .nd-product-purchase .variations { width: 100%; margin: 0 0 1rem; border: 0; }
.nd-product-page .nd-product-purchase .variations th,
.nd-product-page .nd-product-purchase .variations td { display: block; text-align: left; padding: 0; border: 0; }
.nd-product-page .nd-product-purchase .variations th { padding-block: .25rem .5rem; font-size: .8125rem; font-weight: 600; }
.nd-product-page .nd-product-purchase .variations td { padding-bottom: 1rem; }
.nd-product-page .nd-product-purchase select { width: 100%; max-width: 100%; min-height: 48px; padding: .65rem .85rem; border: 1px solid var(--nd-product-line); border-radius: .65rem; background-color: #fff; color: var(--nd-product-ink); font: inherit; }
.nd-product-page .nd-product-purchase .reset_variations { display: inline-flex; min-height: 44px; align-items: center; margin-top: .25rem; font-size: .8125rem; color: var(--nd-product-muted); text-underline-offset: .2rem; }
.nd-product-page .nd-product-purchase .single_variation { margin-block: 0 1rem; }
.nd-product-page .nd-product-purchase .single_variation:empty { margin: 0; }
.nd-product-page .nd-product-purchase .woocommerce-variation-add-to-cart { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.nd-product-page .nd-product-purchase .quantity { margin: 0 !important; float: none !important; }
.nd-product-page .nd-product-purchase .qty { width: 5rem; min-height: 48px; border: 1px solid var(--nd-product-line); border-radius: .65rem; background: #fff; color: var(--nd-product-ink); font: inherit; text-align: center; }
.nd-product-page .nd-product-purchase .single_add_to_cart_button { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 12rem; min-height: 48px; padding: .85rem 1.25rem; border: 0; border-radius: .65rem; background: var(--nd-product-brand); color: var(--nd-product-ink); font: inherit; font-weight: 600; line-height: 1.3; cursor: pointer; }
.nd-product-page .nd-product-purchase .single_add_to_cart_button:hover { background: var(--wp--preset--color--brand-tint, #fff3f1); color: var(--nd-product-ink); }
.nd-product-page .nd-product-purchase .single_add_to_cart_button.disabled,
.nd-product-page .nd-product-purchase .single_add_to_cart_button:disabled { opacity: 1; background: #eceef2; color: #545b66; cursor: not-allowed; }
.nd-product-page .nd-product-purchase .stock { font-size: .875rem; }
.nd-product-page .nd-product-purchase .group_table { flex-basis: 100%; width: 100%; }
.nd-product-page .nd-product-purchase .group_table td { padding: .5rem; vertical-align: middle; }
.nd-product-page .nd-product-intro .wc-block-components-product-summary { font-size: .9375rem; line-height: 1.75; }
.nd-product-page .nd-product-intro .wc-block-components-product-summary > :first-child { margin-top: 0; }
.nd-product-page .nd-product-meta-list { padding-top: 1.5rem; border-top: 1px solid var(--nd-product-line); color: var(--nd-product-muted); font-size: .8125rem; line-height: 1.8; }
.nd-product-page .nd-product-meta-list > * { margin-block: .25rem; }
.nd-product-page .nd-product-meta-list a { color: inherit; text-underline-offset: .2rem; }

.nd-product-page .nd-product-information { margin-top: clamp(3rem, 6vw, 6rem); padding-top: 2rem; border-top: 1px solid var(--nd-product-line); scroll-margin-top: 1.5rem; }
.nd-product-page .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0 0 2rem !important; padding: 0 !important; overflow: visible !important; border: 0; }
.nd-product-page .woocommerce-tabs ul.tabs::before,
.nd-product-page .woocommerce-tabs ul.tabs li::before,
.nd-product-page .woocommerce-tabs ul.tabs li::after { display: none !important; }
.nd-product-page .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; }
.nd-product-page .woocommerce-tabs ul.tabs a { display: inline-flex; align-items: center; min-height: 48px; color: var(--nd-product-muted); text-decoration: none; border-bottom: 2px solid transparent; font-weight: 600; }
.nd-product-page .woocommerce-tabs ul.tabs li.active a { color: var(--nd-product-ink); border-bottom-color: var(--nd-product-brand); }
.nd-product-page .woocommerce-tabs .wc-tab { max-width: 100%; margin: 0; font-size: .9375rem; line-height: 1.8; overflow-wrap: anywhere; }
.nd-product-page .woocommerce-tabs .wc-tab > h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.2; letter-spacing: -.025em; }
.nd-product-page .woocommerce-tabs .wc-tab img { max-width: 100%; height: auto; object-fit: contain; }
/* Bound legacy description tables before scripts, without hiding source content. */
.nd-product-page .nd-product-information table:not(.nd-product-media-table):not(.nd-product-data-table),
.nd-product-page .nd-product-intro .wc-block-components-product-summary table:not(.nd-product-media-table):not(.nd-product-data-table) { width: 100% !important; max-width: 100%; table-layout: fixed; overflow-wrap: anywhere; }
.nd-product-page .nd-product-media-table { display: grid; grid-template-columns: repeat(var(--nd-product-media-columns, 2), minmax(0, 1fr)); gap: 1.25rem; width: 100% !important; max-width: 100%; margin-block: 1.5rem; padding: 0 !important; border: 0 !important; border-spacing: 0; }
.nd-product-page .nd-product-media-table > tbody,
.nd-product-page .nd-product-media-table > thead,
.nd-product-page .nd-product-media-table > tfoot,
.nd-product-page .nd-product-media-table tr { display: contents; }
.nd-product-page .nd-product-media-table td { display: block; min-width: 0; width: auto !important; max-width: 100%; padding: 0 !important; border: 0 !important; border-radius: 1rem; background: var(--nd-product-surface); }
.nd-product-page .nd-product-media-table td > * { max-width: 100%; margin-block: 0; }
.nd-product-page .nd-product-media-table img { display: block; width: 100% !important; max-width: 100%; height: auto !important; max-height: 540px; object-fit: contain; border-radius: 1rem; }
.nd-product-page .nd-product-table-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; }
.nd-product-page .nd-product-table-scrollable { margin-block: 1rem; padding-bottom: .5rem; }
.nd-product-page .nd-product-table-scroll:focus-visible { outline: 3px solid var(--nd-product-ink); outline-offset: 3px; }
.nd-product-page .nd-product-data-table { width: 100%; max-width: none; table-layout: auto; }
.nd-product-page .woocommerce-product-attributes { width: 100%; border-collapse: collapse; border: 0; }
.nd-product-page .woocommerce-product-attributes th,
.nd-product-page .woocommerce-product-attributes td { padding: 1rem; border: 0; border-bottom: 1px solid var(--nd-product-line); vertical-align: top; text-align: left; }
.nd-product-page .woocommerce-product-attributes th { width: 32%; font-weight: 600; background: var(--nd-product-surface); }
.nd-product-page .woocommerce-product-attributes td { font-style: normal; }
.nd-product-page .woocommerce-product-attributes p { margin: 0; }
.nd-product-page .nd-product-related { margin-top: clamp(3rem, 6vw, 6rem); padding-top: 2rem; border-top: 1px solid var(--nd-product-line); }
.nd-product-page .nd-product-related h2 { margin-block: 0 1.5rem; font-size: clamp(1.5rem, 2.2vw, 2rem); letter-spacing: -.025em; }
.nd-product-page .nd-product-related .wc-block-product-template { gap: 1.5rem; }
.nd-product-page .nd-product-related .wc-block-components-product-image { padding: 1rem; border-radius: 1rem; background: var(--nd-product-surface); }
.nd-product-page .nd-product-related .wc-block-components-product-image img { object-fit: contain !important; max-height: 260px; }
.nd-product-page .nd-product-related .wp-block-post-title { margin-block: 1rem .5rem; font-size: 1rem; line-height: 1.45; font-weight: 600; }
.nd-product-page .nd-product-related .wp-block-post-title a { color: inherit; text-decoration: none; }
.nd-product-page .nd-product-related .wp-block-woocommerce-product-price { margin-block: .5rem; }
.nd-product-page .nd-product-related .wp-block-woocommerce-product-button { margin-top: .75rem; }

@media (max-width: 1023px) {
  .nd-product-page .nd-product-layout { flex-wrap: wrap !important; }
  .nd-product-page .nd-product-layout > .wp-block-column { flex-basis: 100% !important; }
  .nd-product-page .nd-product-visual { position: static; }
  .nd-product-page { --nd-product-stage-height: min(440px, 52svh); }
  .nd-product-page .nd-product-gallery.nd-gallery-all-wide { --nd-product-stage-height: clamp(230px, 28vw, 320px); }
  .nd-product-page .nd-product-intro { max-width: 760px; }
  .nd-product-page .woocommerce-product-gallery.nd-gallery-with-thumbs { width: 100% !important; margin-left: 0 !important; }
  .nd-product-page .woocommerce-product-gallery.images .flex-control-thumbs { position: static; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; flex-direction: row; max-height: none; margin-top: .85rem !important; padding: 3px !important; overflow-x: auto !important; overflow-y: hidden !important; overscroll-behavior-x: contain; }
  .nd-product-page .woocommerce-product-gallery .flex-control-thumbs li { width: 74px !important; }
  .nd-product-page .woocommerce-product-gallery .flex-control-thumbs img { height: 70px !important; }
  .nd-product-page .nd-product-gallery-tools { margin-top: .65rem; }
}
@media (max-width: 767px) {
  .nd-product-page { --nd-product-stage-height: min(360px, 46svh); }
  .nd-product-page .nd-product-gallery.nd-gallery-all-wide { --nd-product-stage-height: 230px; }
  .nd-product-page .nd-product-layout { gap: 2rem; }
  .nd-product-page .nd-product-purchase { padding: 1.25rem; }
  .nd-product-page .nd-product-media-table { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .nd-product-page .woocommerce-product-attributes th,
  .nd-product-page .woocommerce-product-attributes td { padding: .85rem .6rem; font-size: .875rem; }
  .nd-product-page .nd-product-related .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1rem; }
  .nd-product-page .nd-product-related .wc-block-components-product-image { padding: .5rem; }
  .nd-product-page .nd-product-related .wc-block-components-product-image img { max-height: 160px; }
}
@media (prefers-reduced-motion: reduce) {
  .nd-product-page *, .nd-product-page *::before, .nd-product-page *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}
