/* Adapt WooCommerce's single-product markup to the prototype product layout (product.css owns the look). */
.pdp { padding: 40px 0 0; }
.pdp .nexo-woo-container { min-width: 0; padding: 0; }
.pdp div.product { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; padding: 0 var(--gutter); }
.pdp div.product > .gallery { grid-column: 1; grid-row: 1; min-width: 0; }
.pdp div.product div.summary { grid-column: 2; grid-row: 1; float: none; width: auto; min-width: 0; margin: 0; }
.pdp div.product > .tabs, .pdp div.product > .related, .pdp div.product > .upsells { grid-column: 1 / -1; }
.pdp div.product > .tabs { padding: 0; }
.pdp .gallery__main .badge-sale { position: absolute; top: 20px; left: 20px; z-index: 3; }

/* Woo resets that fight the prototype styles; selectors out-rank `.woocommerce div.product …` rules. */
.pdp .summary .breadcrumb { margin: 0 0 30px; padding: 0; font-size: 14px; color: var(--c-text); }
.pdp div.product .summary p.price, .pdp div.product .summary span.price { margin: 0 0 40px; font-size: 24px; color: var(--c-primary); }
.pdp div.product .summary p.price ins { text-decoration: none; font-weight: 700; }
.pdp div.product .summary p.price del { opacity: 1; color: var(--c-primary); }
.pdp .summary .woocommerce-product-rating { margin: 0 0 14px; }
.pdp .summary .woocommerce-product-details__short-description { margin: 0; }

/* Variation table → prototype .variations block; quantity + button → .cart-form row. */
.pdp .summary form.cart { margin: 0; }
.pdp div.product form.cart::before, .pdp div.product form.cart::after { content: none; display: none; } /* Woo clearfix would be a flex item. */
.pdp div.product form.cart table.variations { display: block; width: 100%; margin: 0 0 24px; padding-bottom: 24px; border: 0; border-bottom: 1px solid var(--c-border-light); }
.pdp .summary table.variations tbody, .pdp .summary table.variations tr, .pdp .summary table.variations th, .pdp .summary table.variations td { display: block; padding: 0; margin: 0; border: 0; background: none; text-align: left; line-height: inherit; }
.pdp div.product form.cart table.variations label { display: block; margin: 0 0 10px; font-weight: 700; color: var(--c-text); }
.pdp div.product form.cart table.variations select { background-image: none; appearance: auto; min-width: 0; line-height: normal; width: 100%; max-width: none; height: 48px; margin: 0; padding: 0 12px; border: 1px solid var(--c-border); border-radius: 2px; background-color: #fff; color: var(--c-text); font-size: 16px; }
.pdp div.product form.cart .reset_variations { display: inline-block; margin-top: 8px; line-height: 1.5; font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: #8a8a8a; }
/* Woo hides the link with an inline `visibility: hidden`; the prototype collapses it. */
.pdp div.product form.cart .reset_variations[style*="hidden"] { display: none; }
.pdp .summary .single_variation_wrap .woocommerce-variation-price, .pdp .summary .single_variation_wrap .woocommerce-variation-description:empty { display: none; }
.pdp .summary .woocommerce-variation-availability p { margin: 0 0 16px; }
.pdp .summary .woocommerce-variation-add-to-cart, .pdp .summary form.cart:not(.variations_form) { display: flex; align-items: center; gap: 30px; margin: 0 0 22px; }
.pdp .summary .quantity { display: block; margin: 0; float: none; }
.pdp .summary .quantity .qty { width: 58px; height: 38px; padding: 0 10px; border: 1px solid var(--c-border); font-size: 16px; text-align: left; }
.pdp div.product .summary button.single_add_to_cart_button.button.alt { float: none; margin: 0; padding: 11px 25px; border: 0; border-radius: 0; background: var(--c-primary-bright-aa); color: #fff; font-family: var(--f-system); font-size: 16.3px; font-weight: 600; line-height: 1.2; }
.pdp div.product .summary button.single_add_to_cart_button.button.alt:hover { background: var(--c-heading-dark); color: #fff; }
.pdp div.product .summary button.single_add_to_cart_button.button.alt.disabled, .pdp div.product .summary button.single_add_to_cart_button.button.alt:disabled { opacity: .5; cursor: not-allowed; background: var(--c-primary-bright-aa); }
.pdp .summary .stock.out-of-stock { margin: 0 0 22px; font-weight: 700; color: #b81c23; }
.pdp .summary .product_meta { padding-top: 14px; border-top: 1px solid var(--c-border-light); font-size: 15px; line-height: 2; }
.pdp .summary .product_meta > span, .pdp .summary .product_meta > div { display: block; }

/* Tabs content from Woo callbacks. */
.pdp .tabs__panel .woocommerce-product-attributes th { font-weight: 400; }
.pdp .tabs__panel .woocommerce-product-attributes td p { margin: 0; }
.pdp #reviews .woocommerce-Reviews-title, .pdp #reviews #reply-title { display: block; margin: 0 0 8px; font-size: 16px; font-weight: 700; color: var(--c-text); }
.pdp #reviews .woocommerce-noreviews { margin: 0 0 20px; }
.pdp #review_form .comment-form { display: grid; gap: 14px; max-width: 700px; margin-top: 12px; }
.pdp #review_form .comment-form p { margin: 0; }
.pdp #review_form label { display: block; font-weight: 700; color: var(--c-text); }
.pdp #review_form input[type="text"], .pdp #review_form input[type="email"], .pdp #review_form textarea { width: 100%; padding: 10px; border: 1px solid var(--c-border); }
.pdp #review_form .form-submit input { padding: 12px 30px; border: 0; background: var(--c-primary-aa); color: #fff; font-weight: 600; cursor: pointer; }
.pdp #review_form .stars a { color: var(--c-star); }

/* Related row: full width like the prototype (the grid brings its own gutter); Woo's
   `div.product p.price` / `del` rules must not restyle the card prices. */
.pdp div.product > .related { margin: 0 calc(-1 * var(--gutter)); padding: 70px 0 20px; }
.pdp div.product .card p.price { margin: 0 0 30px; font-size: 14.4px; color: var(--c-text); }
.pdp div.product .card p.price del { opacity: 1; color: #64748B; }
.pdp div.product .card p.price ins { font-weight: inherit; }
.pdp .woocommerce-error, .pdp .woocommerce-message, .pdp .woocommerce-info { grid-column: 1 / -1; }

@media (max-width: 767px) {
  .pdp { padding-top: 10px; }
  .pdp div.product { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .pdp div.product > .gallery, .pdp div.product div.summary { grid-column: 1; grid-row: auto; }
  .pdp div.product div.summary { margin-top: 40px; } /* prototype gap is gallery → summary only */
}
/* Price styling consistent with the cards (2026-10-27). */
.pdp div.product .summary p.price { font-family: var(--f-display); color: var(--c-heading-dark); }
.pdp div.product .summary p.price ins { color: var(--c-primary-aa); }
.pdp div.product .summary p.price del { color: #8a8a8a; font-size: .8em; font-weight: 400; }
.pdp div.product .summary p.price .price__suffix { font-family: var(--f-text); font-size: 14px; font-weight: 400; color: #8a8a8a; }
.pdp .gallery__main .badge-sale { border-radius: 6px; }

/* ---------- Product page in the new design language (2026-10-27) */
.pdp div.product { padding-left: max(var(--gutter), 24px); padding-right: max(var(--gutter), 24px); column-gap: clamp(28px, 4vw, 56px); }
.pdp .gallery__main { border: 0; border-radius: 16px; background: #f3f3f4; }
.pdp .gallery__thumbs { gap: 10px; margin-top: 10px; }
.pdp .gallery__thumbs button { border: 2px solid transparent; border-radius: 10px; opacity: .7; }
.pdp .gallery__thumbs button[aria-current="true"] { border-color: var(--c-heading-dark); opacity: 1; }
.pdp .gallery__trigger { box-shadow: 0 4px 14px rgba(0, 0, 0, .14); }
.pdp .gallery__main .badge-sale { top: 16px; left: 16px; }
.pdp .summary .breadcrumb { margin-bottom: 18px; font-size: 13px; color: #6b7280; }
.pdp .summary .breadcrumb a { color: #6b7280; }
.pdp .summary .breadcrumb a:hover { color: var(--c-primary-aa); }
.pdp .summary .summary__title { margin: 0 0 14px; font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.375rem); line-height: 1.15; letter-spacing: -.02em; color: var(--c-heading-dark); }
.pdp div.product .summary p.price { margin: 0 0 24px; font-size: 26px; }
.pdp .summary .specs { display: grid; gap: 8px; margin: 0 0 26px; padding: 18px 20px; border-radius: 14px; background: #f6f6f7; list-style: none; font-size: 15px; line-height: 1.5; color: #4b5563; }
.pdp .summary .specs strong { color: var(--c-heading-dark); font-weight: 600; }
.pdp div.product form.cart table.variations { margin-bottom: 18px; padding-bottom: 0; border-bottom: 0; }
.pdp div.product form.cart table.variations label { margin-bottom: 10px; font-family: var(--f-display); font-size: 15px; }
.size-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.size-pill { min-width: 52px; height: 44px; padding: 0 14px; border: 1.5px solid #d5d9de; border-radius: 10px; background: #fff; font-family: var(--f-display); font-size: 15px; font-weight: 600; color: var(--c-heading-dark); cursor: pointer; transition: border-color .15s, background-color .15s, color .15s; }
.size-pill:hover { border-color: var(--c-heading-dark); }
.size-pill[aria-checked="true"] { border-color: var(--c-heading-dark); background: var(--c-heading-dark); color: #fff; }
.size-pill.is-unavailable { color: #a3a8b0; text-decoration: line-through; }
.size-pill:focus-visible { outline: 3px solid var(--c-primary-aa); outline-offset: 2px; }
.pdp .summary .woocommerce-variation-add-to-cart, .pdp .summary form.cart:not(.variations_form) { gap: 12px; margin-bottom: 18px; }
.quantity.qty-stepper { display: inline-flex; align-items: center; height: 54px; border: 1.5px solid #d5d9de; border-radius: 999px; }
.quantity.qty-stepper .qty-step { display: grid; place-items: center; width: 40px; height: 100%; border: 0; background: none; color: var(--c-heading-dark); cursor: pointer; }
.quantity.qty-stepper .qty-step svg { width: 16px; height: 16px; }
.pdp .summary .quantity.qty-stepper .qty, .qv .quantity.qty-stepper .qty { width: 40px; height: 100%; padding: 0; border: 0; background: none; text-align: center; -moz-appearance: textfield; }
.quantity.qty-stepper .qty::-webkit-outer-spin-button, .quantity.qty-stepper .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qv .quantity.qty-stepper { height: 48px; }
.pdp div.product .summary button.single_add_to_cart_button.button.alt { flex: 1; min-height: 54px; border-radius: 999px; font-family: var(--f-display); font-size: 17px; font-weight: 700; }
.pdp-assure { display: grid; gap: 10px; margin: 0 0 24px; padding: 16px 0 0; border-top: 1px solid var(--c-border-light); list-style: none; font-size: 14px; color: #4b5563; }
.pdp-assure li { display: flex; align-items: center; gap: 10px; }
.pdp-assure svg { width: 20px; height: 20px; color: var(--c-primary-aa); fill: none; stroke: currentColor; stroke-width: 1.8; }
.pdp-assure a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.pdp .summary .product_meta { padding-top: 14px; font-size: 13px; color: #6b7280; }
.pdp .summary .payment-message:empty { display: none; }
/* Tabs as pills. */
.pdp div.product > .tabs { margin-top: 64px; }
.pdp .tabs__list { gap: 8px; border-bottom: 0; }
.pdp .tabs__tab { padding: 10px 18px; border: 0; border-radius: 999px; background: #f3f4f6; font-family: var(--f-display); font-size: 15px; font-weight: 600; color: #4b5563; }
.pdp .tabs__tab[aria-selected="true"] { background: var(--c-heading-dark); color: #fff; }
.pdp .tabs__panel { max-width: 860px; padding: 28px 0 0; font-size: 16px; color: #374151; }
.pdp .tabs__panel table th { width: 160px; }
/* Related. */
.pdp div.product > .related { margin: 0; padding: 72px 0 80px; }
.pdp div.product > .related .product-grid { padding: 0; }
.pdp div.product .card p.price { margin: 0; font-size: 17px; color: var(--c-heading-dark); }
.pdp div.product .card p.price ins { color: var(--c-primary-aa); }
.pdp div.product .card p.price del { color: #8a8a8a; font-size: 14px; }
@media (max-width: 767px) {
  .pdp div.product { padding-left: 16px; padding-right: 16px; }
  .pdp div.product div.summary { margin-top: 24px; }
  .pdp .tabs__list { flex-wrap: nowrap; overflow-x: auto; }
  .pdp .tabs__tab { flex: none; }
}
.pdp .summary .quantity.qty-stepper, .qv .quantity.qty-stepper { display: inline-flex; flex: none; }
.pdp div.product form.cart table.variations select.visually-hidden, .qv table.variations select.visually-hidden { position: absolute !important; width: 1px !important; min-width: 0 !important; height: 1px !important; padding: 0 !important; border: 0 !important; }
.pdp .tabs__list { max-width: 100%; }

/* ---------- Reviews tab (2026-10-27) */
.pdp .nx-reviews { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: 24px 48px; align-items: start; }
.pdp .nx-reviews > .clear { display: none; }
.nx-reviews__summary { grid-row: span 2; position: sticky; top: 150px; padding: 24px; border-radius: 16px; background: #f6f6f7; }
.nx-reviews__avg { margin: 0; font-family: var(--f-display); font-size: 48px; font-weight: 700; line-height: 1; color: var(--c-heading-dark); }
.nx-reviews__avg span { margin-left: 4px; font-size: 18px; font-weight: 500; color: #8a8a8a; }
.nx-reviews__summary .stars { margin: 10px 0 4px; }
.nx-reviews__summary .stars svg { width: 20px; height: 20px; }
.nx-reviews__count { margin: 0 0 18px; font-size: 14px; color: #6b7280; }
.nx-reviews__bars { display: grid; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.nx-reviews__bars li { display: grid; grid-template-columns: 34px 1fr 24px; align-items: center; gap: 10px; font-size: 13px; color: #4b5563; }
.nx-reviews__bar-label { display: inline-flex; align-items: center; gap: 3px; }
.nx-reviews__bar-label svg { width: 12px; height: 12px; color: var(--c-star); }
.nx-reviews__bar { height: 8px; border-radius: 4px; background: #e3e5e8; overflow: hidden; }
.nx-reviews__bar span { display: block; height: 100%; border-radius: 4px; background: var(--c-heading-dark); }
.nx-reviews__bar-n { text-align: right; }
.nx-reviews__write { width: 100%; justify-content: center; min-height: 48px; }

.pdp #reviews .nx-reviews__list { min-width: 0; }
.pdp #reviews .commentlist { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pdp #reviews .commentlist li.review { margin: 0; padding: 0; border: 0; }
.pdp #reviews .commentlist .comment_container { display: flex; gap: 14px; padding: 20px; border: 1px solid var(--c-border-light); border-radius: 14px; }
.nx-review__avatar { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: #fff4ed; color: var(--c-primary-aa); font-family: var(--f-display); font-weight: 700; }
.pdp #reviews .comment-text { flex: 1; min-width: 0; margin: 0; padding: 0; border: 0; }
.pdp #reviews .comment-text .meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 4px; font-size: 14px; color: #6b7280; }
.pdp #reviews .woocommerce-review__author { font-family: var(--f-display); font-size: 16px; color: var(--c-heading-dark); }
.nx-review__verified { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; background: #ecfdf3; color: #067647; font-size: 12px; font-weight: 600; }
.nx-review__verified svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2.4; }
.pdp #reviews .comment-text .stars { margin: 2px 0 10px; }
.pdp #reviews .comment-text .description p { margin: 0 0 8px; font-size: 15px; line-height: 1.65; color: #374151; }
.nx-reviews__empty { display: flex; gap: 16px; align-items: flex-start; padding: 24px; border: 1.5px dashed #d5d9de; border-radius: 14px; }
.nx-reviews__empty > svg { flex: none; width: 28px; height: 28px; color: var(--c-primary-aa); fill: none; stroke: currentColor; stroke-width: 1.8; }
.nx-reviews__empty p { display: grid; gap: 4px; margin: 0; font-size: 15px; color: #4b5563; }
.nx-reviews__empty strong { font-family: var(--f-display); font-size: 17px; color: var(--c-heading-dark); }

/* Form. */
.pdp #reviews .nx-reviews__form { grid-column: 2; padding: 24px; border: 1px solid var(--c-border-light); border-radius: 16px; scroll-margin-top: 150px; }
.pdp #reviews #reply-title { display: block; margin: 0 0 4px; font-family: var(--f-display); font-size: 20px; font-weight: 700; color: var(--c-heading-dark); }
.pdp #reviews .comment-notes { margin: 0 0 16px; font-size: 13px; color: #6b7280; }
.pdp #review_form .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: none; margin: 0; }
.pdp #review_form .comment-form > * { grid-column: 1 / -1; margin: 0; }
.pdp #review_form .comment-form > .comment-form-author { grid-column: 1; }
.pdp #review_form .comment-form > .comment-form-email { grid-column: 2; }
.pdp #review_form label { margin-bottom: 6px; font-size: 14px; font-weight: 600; }
.pdp #review_form .required { color: #b81c23; }
.pdp #review_form input[type="text"], .pdp #review_form input[type="email"], .pdp #review_form textarea { height: 48px; padding: 0 14px; border: 1px solid #d5d9de; border-radius: 10px; font-size: 16px; }
.pdp #review_form textarea { height: auto; min-height: 130px; padding: 12px 14px; resize: vertical; }
.pdp #review_form input:focus, .pdp #review_form textarea:focus { border-color: var(--c-primary); outline: 3px solid rgba(221, 94, 31, .2); }
.pdp #review_form p.stars { margin: 4px 0 0; }
.pdp #review_form p.stars a { width: 34px; height: 34px; margin-right: 4px; font-size: 0; color: var(--c-star); text-indent: 0; }
.pdp #review_form p.stars a::before { width: 34px; height: 34px; font-size: 30px; line-height: 34px; }
.pdp #review_form .comment-form-cookies-consent { display: flex; align-items: center; gap: 8px; }
.pdp #review_form .comment-form-cookies-consent label { margin: 0; font-weight: 400; color: #4b5563; }
.pdp #review_form .comment-form-cookies-consent input { width: 18px; height: 18px; accent-color: var(--c-heading-dark); }
.pdp #review_form #respond input#submit.nx-reviews__submit, .pdp #review_form .form-submit input.nx-reviews__submit { min-height: 50px; padding: 0 30px; border: 0; border-radius: 999px; background: var(--c-primary-bright-aa); color: #fff; font-family: var(--f-display); font-size: 16px; font-weight: 700; cursor: pointer; }
.pdp #review_form #respond input#submit.nx-reviews__submit:hover, .pdp #review_form .form-submit input.nx-reviews__submit:hover { background: var(--c-heading-dark); }
.pdp .woocommerce-verification-required { font-size: 15px; color: #4b5563; }

@media (max-width: 767px) {
  .pdp .nx-reviews { grid-template-columns: minmax(0, 1fr); }
  .nx-reviews__summary { position: static; grid-row: auto; }
  .pdp #reviews .nx-reviews__form { grid-column: 1; padding: 18px; }
  .pdp #review_form .comment-form { grid-template-columns: minmax(0, 1fr); }
  .pdp #review_form .comment-form > .comment-form-author, .pdp #review_form .comment-form > .comment-form-email { grid-column: 1; }
}
.nx-reviews__avg--none { font-size: 22px; }
.nx-reviews__empty { align-items: center; }
.pdp #reviews .nx-reviews__empty .woocommerce-noreviews { margin: 0; padding: 0; border: 0; background: none; }
.pdp #reviews .nx-reviews__empty .woocommerce-noreviews::before { display: none; }
.pdp .woocommerce-Tabs-panel--reviews { max-width: none; }
.woocommerce #reviews #comments ol.commentlist li .comment-text, .pdp #reviews #comments ol.commentlist li .comment-text { margin: 0; padding: 0; border: 0; border-radius: 0; }
.pdp #reviews .woocommerce-review__awaiting-approval { display: inline-block; margin-bottom: 6px; padding: 2px 8px; border-radius: 999px; background: #fff7ed; color: #9a3412; font-size: 12px; font-style: normal; font-weight: 600; }
