/* ── NexCove product page ────────────────────────────────────
   Scoped under .nxc-product so it only touches the WooCommerce
   single-product content area; header/nav/footer stay Avada's.  */

.nxc-product {
  --nx-amber:   #ffb01f;
  --nx-pink:    #ff4880;
  --nx-magenta: #d022d4;
  --nx-gradient: linear-gradient(135deg, #ffb01f 0%, #ff4880 52%, #d022d4 100%);
  --nx-pink-ink: #e0206e;
  --nx-magenta-ink: #a614a9;
  --nx-navy: #241338;
  --nx-ink: #241338;
  --nx-muted: #6b5c78;
  --nx-sale: var(--nx-pink-ink);
  --nx-line: #e7e1ec;
  --nx-bg-alt: #faf7fb;
  --nx-focus: #a614a9;
  --nx-radius: 8px;
  --nx-shadow: 0 2px 10px rgba(36, 19, 56, .1);

  color: var(--nx-ink);
  font-size: 16px;
  line-height: 1.5;
  padding-bottom: 24px;
}

.nxc-product *,
.nxc-product *::before,
.nxc-product *::after { box-sizing: border-box; }

.nxc-product [hidden] { display: none !important; }
.nxc-product img { max-width: 100%; display: block; }
.nxc-product a { color: inherit; }
.nxc-product button { font: inherit; cursor: pointer; }
.nxc-product :focus-visible { outline: 3px solid var(--nx-focus); outline-offset: 2px; }

.nxc-product .visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* ── Layout ───────────────────────────────────────────────── */
.nxc-product .nxc-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 440px;
  gap: 48px;
  align-items: start;
  max-width: 1280px;
  margin: 0 auto;
  padding-bottom: 40px;
}

.nxc-product .nxc-recs { max-width: 1280px; margin: 0 auto; }

/* ── Gallery (borderless rail, floating zoom + sale badge) ─── */
.nxc-product .nxc-gallery { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 20px; }

.nxc-product .nxc-thumbs { display: flex; flex-direction: column; gap: 12px; }
.nxc-product .nxc-thumb {
  position: relative; padding: 0; background: var(--nx-bg-alt); border: 0;
  border-radius: 14px; overflow: hidden; aspect-ratio: 1;
  opacity: .55; transition: opacity .2s ease, transform .2s ease;
}
.nxc-product .nxc-thumb img { width: 100%; height: 100%; object-fit: contain; }
.nxc-product .nxc-thumb:hover { opacity: .85; transform: translateY(-1px); }
.nxc-product .nxc-thumb.is-active { opacity: 1; }
.nxc-product .nxc-thumb.is-active::after {
  content: ""; position: absolute; left: 18%; right: 18%; bottom: 6px;
  height: 3px; border-radius: 999px; background: var(--nx-gradient);
}

.nxc-product .nxc-stage {
  position: relative; margin: 0; background: var(--nx-bg-alt);
  border: 0; border-radius: 20px;
  overflow: hidden; aspect-ratio: 1;
}
.nxc-product .nxc-stage img {
  width: 100%; height: 100%; object-fit: contain;
  transition: transform .25s ease;
}
.nxc-product .nxc-stage.is-zoomed img { transform: scale(1.9); cursor: zoom-out; }

.nxc-product .nxc-flag {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  background: var(--nx-gradient); color: #fff; font-size: 12px; font-weight: 700;
  padding: 6px 12px; border-radius: 999px;
}
.nxc-product .nxc-zoom-hint {
  position: absolute; right: 14px; bottom: 14px; z-index: 2;
  width: 42px; height: 42px; border-radius: 999px;
  border: 0; background: rgba(255,255,255,.7);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  display: grid; place-items: center; transition: background .2s ease;
}
.nxc-product .nxc-zoom-hint:hover { background: rgba(255,255,255,.95); }
.nxc-product .nxc-zoom-hint svg {
  width: 20px; height: 20px; fill: none; stroke: var(--nx-ink);
  stroke-width: 2; stroke-linecap: round;
}

/* ── Buy box ──────────────────────────────────────────────── */
.nxc-product .nxc-brand { margin: 0 0 4px; font-size: 15px; font-weight: 700; }
.nxc-product .nxc-brand a { text-decoration: none; }
.nxc-product .nxc-brand a:hover { text-decoration: underline; }

.nxc-product .nxc-buybox h1 {
  margin: 0 0 10px; font-size: 26px; line-height: 1.25; font-weight: 600;
}

.nxc-product .nxc-rating { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-bottom: 14px; flex-wrap: wrap; }
.nxc-product .nxc-stars { color: #d99200; letter-spacing: 1px; }
.nxc-product .nxc-stars .half { opacity: .45; }
.nxc-product .nxc-rating a { color: var(--nx-muted); }

.nxc-product .nxc-price { display: flex; align-items: baseline; gap: 10px; margin: 0 0 18px; flex-wrap: wrap; }
.nxc-product .nxc-price .from { font-size: 15px; color: var(--nx-muted); }
.nxc-product .nxc-price .now,
.nxc-product .nxc-price .now .woocommerce-Price-amount { font-size: 28px !important; font-weight: 700 !important; color: var(--nx-sale) !important; }
.nxc-product .nxc-price .was,
.nxc-product .nxc-price .was .woocommerce-Price-amount { font-size: 17px !important; font-weight: 400 !important; color: var(--nx-muted) !important; }
.nxc-product .nxc-price .save {
  font-size: 13px; font-weight: 700; color: var(--nx-sale);
  border: 1px solid currentColor; border-radius: 999px; padding: 4px 12px; line-height: 1.4;
}
.nxc-product .nxc-price ins { text-decoration: none; }
.nxc-product .nxc-price .price { font-size: 28px; font-weight: 700; color: var(--nx-ink); }

/* Options / variations */
.nxc-product .nxc-option { margin-bottom: 20px; }
.nxc-product .nxc-option-label { margin: 0 0 8px; font-size: 14px; font-weight: 700; display: block; }

.nxc-product table.variations { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.nxc-product table.variations.nxc-attention { animation: nxc-attention-pulse 1.2s ease; }
@keyframes nxc-attention-pulse {
  0%, 100% { box-shadow: none; }
  20%, 60% { box-shadow: 0 0 0 3px var(--nx-pink); }
  40%, 80% { box-shadow: 0 0 0 3px transparent; }
}
.nxc-product table.variations tbody,
.nxc-product table.variations tr,
.nxc-product table.variations th,
.nxc-product table.variations td { display: block; padding: 0; border: 0; }
.nxc-product table.variations tr { margin-bottom: 16px; }
.nxc-product table.variations th.label label {
  margin: 0 0 8px; font-size: 14px; font-weight: 700; display: block;
}
.nxc-product table.variations .reset_variations { font-size: 13px; color: var(--nx-muted); display: inline-block; margin-top: 6px; }

/* Avada's own native variation-swatch feature (avada-select-wrapper /
   avada-color-select / avada-button-select) — restyled to match the
   brand instead of its default square boxes. It already hides the
   underlying <select> itself and drives the real WC variation logic,
   so there's nothing left for us to build here, only to reskin. */
.nxc-product .avada-select-wrapper { gap: 10px; }

.nxc-product .avada-color-select {
  width: 38px !important; height: 38px !important; padding: 0 !important;
  border: 1px solid var(--nx-line) !important; border-radius: 50% !important;
  box-shadow: 0 0 0 2px #fff inset; margin-right: 0 !important;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.nxc-product .avada-color-select > span { border-radius: 50% !important; }
.nxc-product .avada-color-select:hover:not([data-checked]) { border-color: var(--nx-pink) !important; }
.nxc-product .avada-color-select[data-checked] {
  border-color: var(--nx-magenta) !important;
  box-shadow: 0 0 0 2px #fff inset, 0 0 0 4px var(--nx-magenta);
}

.nxc-product .avada-button-select {
  height: 40px !important; min-width: 44px !important; padding: 0 16px !important;
  border: 1px solid var(--nx-line) !important; border-radius: 999px !important;
  background: #fff !important; color: var(--nx-ink) !important;
  font-size: 13px; font-weight: 600; margin-right: 0 !important;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.nxc-product .avada-button-select:hover:not([data-checked]) { border-color: var(--nx-pink) !important; }
.nxc-product .avada-button-select[data-checked] {
  border-color: var(--nx-magenta) !important; background: var(--nx-gradient) !important; color: #fff !important;
}

.nxc-product .woocommerce-variation-add-to-cart,
.nxc-product .single-product-add-to-cart-hint { margin: 0; }
.nxc-product p.stock.out-of-stock { color: var(--nx-sale); font-weight: 600; }

/* Buy row */
.nxc-product .nxc-buy-row { --nxc-row-h: 60px; --nxc-row-r: 16px; display: flex; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; align-items: stretch; }
.nxc-product .product-type-simple .nxc-buybox form.cart,
.nxc-product .woocommerce-variation-add-to-cart {
  --nxc-row-h: 60px; --nxc-row-r: 16px;
  display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; margin: 0;
}

.nxc-product .quantity {
  display: flex !important; align-items: center; flex: none !important; margin: 0 !important;
  float: none !important; justify-content: flex-start !important;
  border: 1px solid var(--nx-line) !important; border-radius: var(--nxc-row-r) !important;
  overflow: hidden; background: #fff;
}
.nxc-product .quantity .nxc-qty-btn {
  width: 48px; height: var(--nxc-row-h); border: 0 !important; background: #fff !important;
  font-size: 20px; font-weight: 600; color: var(--nx-ink); float: none !important; padding: 0 !important;
}
.nxc-product .quantity .nxc-qty-btn:hover { background: var(--nx-bg-alt) !important; }
.nxc-product .quantity .nxc-qty-btn:disabled { opacity: .35; cursor: not-allowed; }
.nxc-product .quantity input.qty {
  width: 48px; height: var(--nxc-row-h); border: 0 !important; text-align: center;
  font-size: 16px; font-weight: 700; -moz-appearance: textfield;
  background: transparent !important; float: none !important; padding: 0 !important;
}
.nxc-product .quantity input.qty::-webkit-inner-spin-button,
.nxc-product .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.nxc-product .single_add_to_cart_button,
.nxc-product .nxc-btn-primary {
  flex: 1; min-height: var(--nxc-row-h); border: 0 !important; border-radius: var(--nxc-row-r) !important;
  background: var(--nx-gradient) !important; background-size: 140% 140% !important;
  color: #fff !important; font-size: 15px; font-weight: 700 !important;
  letter-spacing: .04em; text-transform: uppercase;
  box-shadow: 0 8px 24px rgba(208, 34, 212, .35) !important;
  transition: background-position .3s ease, box-shadow .2s ease;
  padding: 0 24px !important; margin: 0 !important;
}
.nxc-product .single_add_to_cart_button:hover,
.nxc-product .nxc-btn-primary:hover {
  background-position: 100% 100% !important;
  box-shadow: 0 10px 28px rgba(208, 34, 212, .45) !important;
}
.nxc-product .single_add_to_cart_button.disabled,
.nxc-product .single_add_to_cart_button.wc-variation-selection-needed {
  opacity: .5; box-shadow: none !important; cursor: not-allowed;
}

.nxc-product .nxc-btn-wish {
  flex: none; width: var(--nxc-row-h); height: var(--nxc-row-h); border: 1px solid var(--nx-line) !important;
  border-radius: var(--nxc-row-r) !important; background: #fff !important; display: grid; place-items: center;
}
.nxc-product .nxc-btn-wish svg {
  width: 24px; height: 24px; fill: none; stroke: var(--nx-ink);
  stroke-width: 1.7; stroke-linejoin: round;
}
.nxc-product .nxc-btn-wish:hover { border-color: var(--nx-pink); }
.nxc-product .nxc-btn-wish[aria-pressed="true"] svg { fill: var(--nx-pink); stroke: var(--nx-pink); }

.nxc-product .nxc-stock { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--nx-muted); margin: 0 0 18px; }
.nxc-product .nxc-stock .dot { width: 8px; height: 8px; border-radius: 50%; background: #17a34a; flex: none; }
.nxc-product .nxc-stock.is-out .dot { background: var(--nx-sale); }
.nxc-product .nxc-stock.is-backorder .dot { background: var(--nx-amber); }

.nxc-product .nxc-usps { list-style: none; margin: 0 0 28px; padding: 0; font-size: 14px; }
.nxc-product .nxc-usps li { position: relative; padding: 6px 0 6px 26px; }
.nxc-product .nxc-usps li::before {
  content: ""; position: absolute; left: 4px; top: 12px;
  width: 10px; height: 5px; border-left: 2px solid var(--nx-magenta-ink);
  border-bottom: 2px solid var(--nx-magenta-ink); transform: rotate(-45deg);
}

/* ── Accordion ────────────────────────────────────────────── */
.nxc-product .nxc-accordion { border-top: 1px solid var(--nx-line); }
.nxc-product .nxc-accordion details { border-bottom: 1px solid var(--nx-line); }
.nxc-product .nxc-accordion summary {
  list-style: none; cursor: pointer; padding: 16px 0;
  font-size: 16px; font-weight: 700;
  display: flex; align-items: center; justify-content: space-between;
}
.nxc-product .nxc-accordion summary::-webkit-details-marker { display: none; }
.nxc-product .nxc-accordion summary::after {
  content: ""; width: 9px; height: 9px; margin-right: 6px;
  border-right: 2px solid var(--nx-ink); border-bottom: 2px solid var(--nx-ink);
  transform: rotate(45deg); transition: transform .2s ease;
}
.nxc-product .nxc-accordion details[open] summary::after { transform: rotate(-135deg); }

.nxc-product .nxc-acc-body { padding-bottom: 20px; font-size: 15px; }
.nxc-product .nxc-acc-body p { margin: 0 0 12px; }
.nxc-product .nxc-acc-body h3 { font-size: 15px; margin: 20px 0 10px; }
.nxc-product .nxc-acc-body .nxc-code { color: var(--nx-muted); font-size: 13px; }

.nxc-product .nxc-specs { margin: 0; font-size: 14px; }
.nxc-product .nxc-specs > div {
  display: flex; justify-content: space-between; gap: 16px;
  padding: 9px 0; border-bottom: 1px dashed var(--nx-line);
}
.nxc-product .nxc-specs dt { color: var(--nx-muted); }
.nxc-product .nxc-specs dd { margin: 0; font-weight: 600; text-align: right; }

.nxc-product .woocommerce-Reviews-title { font-size: 15px; margin: 0 0 12px; }
.nxc-product #comments .commentlist { list-style: none; margin: 0; padding: 0; }
.nxc-product #comments .comment_container { padding: 14px 0; border-bottom: 1px solid var(--nx-line); }
.nxc-product .star-rating { color: #d99200; }
.nxc-product .comment-form-rating select,
.nxc-product #review_form textarea,
.nxc-product #review_form input[type="text"],
.nxc-product #review_form input[type="email"] {
  width: 100%; padding: 10px 12px; border: 1px solid var(--nx-line); border-radius: var(--nx-radius);
}
.nxc-product #review_form .form-submit input[type="submit"] {
  background: var(--nx-gradient); color: #fff; border: 0; border-radius: var(--nx-radius);
  padding: 12px 22px; font-weight: 700; margin-top: 10px;
}

.nxc-product .nxc-similar { margin-top: 28px; }
.nxc-product .nxc-similar h2 { font-size: 14px; margin: 0 0 10px; }
.nxc-product .nxc-similar ul { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.nxc-product .nxc-similar li { padding: 4px 0; }
.nxc-product .nxc-similar a { color: var(--nx-muted); }

/* ── Recommendations ──────────────────────────────────────── */
.nxc-product .nxc-recs { padding: 40px 0 16px; border-top: 1px solid var(--nx-line); margin-top: 8px; }
.nxc-product .nxc-recs h2 { font-size: 20px; margin: 0 0 20px; }

/* ── Customer reviews (full width, above recommendations) ─────── */
.nxc-product .nxc-reviews { max-width: 1280px; margin: 8px auto 0; padding: 40px 0 16px; border-top: 1px solid var(--nx-line); scroll-margin-top: 90px; }
.nxc-product .nxc-reviews h2 { font-size: 20px; margin: 0 0 20px; }
/* Ryviu floats its widget left; flow-root makes this box wrap it so the section keeps its full height. */
.nxc-product .nxc-reviews .nxc-reviews-ryviu { margin-top: 24px; display: flow-root; }
.nxc-product .nxc-rec-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.nxc-product .nxc-card a { text-decoration: none; display: block; }
.nxc-product .nxc-card-img {
  border: 1px solid var(--nx-line); border-radius: var(--nx-radius);
  overflow: hidden; aspect-ratio: 1; background: #fff; margin-bottom: 10px;
}
.nxc-product .nxc-card-img img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s ease; }
.nxc-product .nxc-card a:hover .nxc-card-img img { transform: scale(1.05); }
.nxc-product .nxc-card-brand { margin: 0; font-size: 13px; font-weight: 700; }
.nxc-product .nxc-card-name { margin: 2px 0 6px; font-size: 14px; color: var(--nx-muted); }
.nxc-product .nxc-card-price { margin: 0; font-size: 15px; }
.nxc-product .nxc-card-price .now { font-weight: 700; color: var(--nx-sale); }
.nxc-product .nxc-card-price s { color: var(--nx-muted); font-size: 13px; margin-left: 4px; }

/* ── Sticky buy bar (mobile) ──────────────────────────────── */
.nxc-product .nxc-sticky-buy {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  display: none; align-items: center; gap: 12px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: #fff; border-top: 1px solid var(--nx-line);
  box-shadow: 0 -4px 16px rgba(16,20,60,.1);
  transform: translateY(110%); transition: transform .25s ease;
}
.nxc-product .nxc-sticky-buy.is-visible { transform: translateY(0); }
.nxc-product .nxc-sticky-info { flex: 1; min-width: 0; }
.nxc-product .nxc-sticky-name {
  margin: 0; font-size: 13px; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nxc-product .nxc-sticky-price { margin: 0; font-size: 14px; }
.nxc-product .nxc-sticky-price .now { color: var(--nx-sale); font-weight: 700; }
.nxc-product .nxc-sticky-price s { color: var(--nx-muted); font-size: 12px; }
.nxc-product .nxc-sticky-buy .nxc-btn-primary { flex: none; width: 150px; min-height: 46px; }

/* ── Toast ────────────────────────────────────────────────── */
.nxc-product .nxc-toast {
  position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px);
  background: var(--nx-navy); color: #fff; padding: 13px 20px;
  border-left: 4px solid var(--nx-pink);
  border-radius: var(--nx-radius); box-shadow: var(--nx-shadow);
  font-size: 14px; opacity: 0; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease; z-index: 100;
}
.nxc-product .nxc-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1080px) {
  .nxc-product .nxc-grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; }
}

@media (max-width: 900px) {
  .nxc-product .nxc-grid { grid-template-columns: 1fr; gap: 28px; }
  .nxc-product .nxc-rec-grid { grid-template-columns: repeat(2, 1fr); }
  .nxc-product .nxc-sticky-buy { display: flex; }
}

@media (max-width: 640px) {
    
  .nxc-short-desc { display: none;  }
  .nxc-product .nxc-gallery { grid-template-columns: 1fr; }
  .nxc-product .nxc-thumbs {
    order: 2; flex-direction: row; overflow-x: auto;
    padding-bottom: 4px; scrollbar-width: none;
  }
  .nxc-product .nxc-thumbs::-webkit-scrollbar { display: none; }
  .nxc-product .nxc-thumb { flex: none; width: 68px; }
  .nxc-product .nxc-buybox h1 { font-size: 21px; }
  .nxc-product .nxc-price .now { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .nxc-product * { transition: none !important; animation: none !important; }
}
