/* =========================================================================
   NORYX — Página de Produto · direção VITRINE
   Carregada em is_product(). Estiliza content-single-product.php.
   Base visual: Loja-Redesign/noryx-pdp-vitrine.html
   Tokens de categoria via CSS vars no wrapper: --cat / --tint / --tint-2
   ========================================================================= */

.single-product .nx-pdp-product,
.woocommerce div.product.nx-pdp-product {
  --shadow-hover: 0 2px 4px rgba(20,35,58,.05), 0 18px 44px rgba(20,35,58,.12);
  display: block !important; /* Shoptimizer aplica grid ao div.product — anula */
  max-width: var(--noryx-maxw); margin: 0 auto; padding: 0 24px;
}

.nx-pdp { display: grid; grid-template-columns: 1.05fr 1fr; gap: 44px; padding: 18px 0 40px; align-items: start; }

/* ---- Galeria (nativa, thumbs à esquerda + stage tintado) ---- */
.nx-pdp-gallery { position: sticky; top: 96px; }
.nx-pdp-gallery .woocommerce-product-gallery { margin: 0; width: 100% !important; display: grid; grid-template-columns: 76px 1fr; gap: 14px; float: none !important; }
.nx-pdp-gallery .woocommerce-product-gallery__wrapper { grid-column: 2; grid-row: 1; margin: 0; }
.nx-pdp-gallery .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) { grid-template-columns: 1fr; }
.nx-pdp-gallery .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__wrapper { grid-column: 1; }
.nx-pdp-gallery .woocommerce-product-gallery__image,
.nx-pdp-gallery .woocommerce-product-gallery__image--placeholder {
  background: radial-gradient(130% 120% at 50% 0%, var(--tint-2) 0%, var(--tint) 55%, #fff 100%);
  border: 1px solid var(--noryx-line); border-radius: var(--noryx-radius);
  overflow: hidden; aspect-ratio: 1 / 1;
  display: flex; align-items: center; justify-content: center;
}
.nx-pdp-gallery .woocommerce-product-gallery__image a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.nx-pdp-gallery .woocommerce-product-gallery__image img { object-fit: contain; max-height: 100%; mix-blend-mode: multiply; }
.nx-pdp-gallery .flex-control-thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nx-pdp-gallery .flex-control-thumbs li { width: 76px; margin: 0; float: none; }
.nx-pdp-gallery .flex-control-thumbs img {
  aspect-ratio: 1; object-fit: cover; border: 1px solid var(--noryx-line); border-radius: 10px;
  background: radial-gradient(120% 100% at 50% 0%, var(--tint-2), var(--tint) 70%, #fff);
  opacity: 1; transition: .15s;
}
.nx-pdp-gallery .flex-control-thumbs img:hover { border-color: var(--noryx-muted); }
.nx-pdp-gallery .flex-control-thumbs img.flex-active { border-color: var(--noryx-navy); box-shadow: 0 0 0 2px rgba(20,35,58,.08); }
.nx-cat-tag {
  position: absolute; top: 16px; left: 16px; z-index: 5;
  font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--cat);
  background: #fff; border: 1px solid var(--noryx-line); padding: 6px 10px; border-radius: 6px;
  display: inline-flex; align-items: center; gap: 6px; pointer-events: none;
}
.nx-cat-tag .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cat); }
.woocommerce div.product .nx-pdp-gallery span.onsale {
  position: absolute; top: 16px; right: 16px; left: auto; z-index: 5;
  background: var(--noryx-blue); color: #fff; font-size: 12px; font-weight: 600;
  padding: 5px 11px; border-radius: 6px; margin: 0; min-width: 0; min-height: 0; line-height: 1.6;
}
.nx-pdp-gallery .woocommerce-product-gallery__trigger {
  top: auto; bottom: 16px; right: 16px; width: 38px; height: 38px; border-radius: 9px;
  background: rgba(255,255,255,.9); border: 1px solid var(--noryx-line);
}

/* ---- Buy box ---- */
.nx-pdp-sum { float: none !important; width: auto !important; display: flex; flex-direction: column; }
.nx-eyebrow { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--noryx-blue); font-weight: 700; display: flex; align-items: center; gap: 7px; }
.nx-eyebrow .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cat); }
.nx-rating { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 13px; color: var(--noryx-muted); }
.nx-rating .stars { color: var(--noryx-gold); letter-spacing: 2px; }
.nx-rating a { color: var(--noryx-muted); text-decoration: none; }
.nx-rating a:hover { color: var(--noryx-blue); }
.woocommerce div.product .nx-pdp-sum h1.nx-h1 { font-size: 30px; font-weight: 800; letter-spacing: -.025em; line-height: 1.1; margin: 10px 0 6px; color: var(--noryx-navy); }
.nx-molsub { font-size: 13.5px; color: var(--noryx-muted); font-weight: 500; letter-spacing: .01em; }
.nx-molsub sub { font-size: .72em; }

.nx-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 4px; }
.nx-chip { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--noryx-line); border-radius: 999px; padding: 7px 13px; font-size: 12.5px; font-weight: 600; color: var(--noryx-navy); }
.nx-chip.green svg { color: var(--noryx-green); }
.nx-chip.blue svg { color: var(--noryx-blue); }

/* Card de preço */
.nx-pricecard { background: #fff; border: 1px solid var(--noryx-line); border-radius: var(--noryx-radius); padding: 20px; margin: 22px 0 0; }
.nx-priceline { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.woocommerce div.product .nx-pricecard .nx-price { margin: 0; }
.nx-pricecard .nx-price .amount, .nx-pricecard .nx-price ins .amount { font-size: 30px; font-weight: 800; color: var(--noryx-navy); letter-spacing: -.02em; }
.nx-pricecard .nx-price ins { text-decoration: none; }
.nx-pricecard .nx-price del { opacity: 1; }
.nx-pricecard .nx-price del .amount { font-size: 16px; color: var(--noryx-muted); text-decoration: line-through; font-weight: 400; }
.nx-pricenote { font-size: 13.5px; color: var(--noryx-muted); }
.nx-pix { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; background: #EAF5EF; border: 1px solid #cfe9db; color: var(--noryx-green); font-weight: 700; font-size: 13.5px; padding: 8px 12px; border-radius: 9px; }
.nx-pix b, .nx-pix .amount { color: #0f5e39; }
.nx-installments { font-size: 13.5px; color: var(--noryx-muted); margin-top: 10px; }
.nx-installments b, .nx-installments .amount { color: var(--noryx-ink); font-weight: 700; }

/* Estoque + lote */
.nx-stock { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--noryx-ink); margin: 18px 0 0; }
.nx-stock .live { width: 9px; height: 9px; border-radius: 50%; background: var(--noryx-green); box-shadow: 0 0 0 3px rgba(21,127,76,.15); flex-shrink: 0; }
.nx-stock b { font-weight: 700; }
.nx-stock b.out { color: var(--noryx-muted); }
.nx-batchline { font-size: 12.5px; color: var(--noryx-muted); margin-top: 4px; }

/* Dosagens (produtos irmãos) */
.nx-opt-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--noryx-navy); margin: 20px 0 10px; }
.nx-doses { display: flex; gap: 10px; flex-wrap: wrap; }
.nx-dose {
  border: 1px solid var(--noryx-line); background: #fff; border-radius: 10px; padding: 11px 16px;
  font-size: 14px; font-weight: 600; color: #48566a; transition: .15s; text-align: center; min-width: 92px;
  text-decoration: none; display: inline-block;
}
.nx-dose small { display: block; font-size: 11.5px; font-weight: 500; color: var(--noryx-muted); margin-top: 2px; }
.nx-dose small .amount { font-size: inherit; font-weight: inherit; color: inherit; }
a.nx-dose:hover { border-color: var(--noryx-navy); color: #48566a; }
.nx-dose.active { border-color: var(--noryx-navy); background: var(--noryx-navy); color: #fff; }
.nx-dose.active small { color: rgba(255,255,255,.7); }

/* ---- Add to cart (form nativo) + Comprar agora ---- */
.nx-addwrap { margin: 22px 0 0; }
.nx-addwrap form.cart { display: flex; gap: 12px; align-items: stretch; margin: 0 !important; flex-wrap: wrap; }
.nx-addwrap .quantity { display: flex; align-items: center; border: 1px solid var(--noryx-line); border-radius: 11px; background: #fff; overflow: hidden; margin: 0 !important; float: none !important; }
.nx-addwrap .quantity input.qty { width: 48px; height: 52px; border: none; text-align: center; font-size: 16px; font-weight: 700; color: var(--noryx-navy); background: #fff; -moz-appearance: textfield; }
.nx-addwrap .quantity input.qty::-webkit-outer-spin-button,
.nx-addwrap .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nx-addwrap .quantity button.nx-qbtn { width: 44px; height: 52px; border: 0 !important; background: #fff !important; font-size: 20px; color: var(--noryx-navy) !important; cursor: pointer; line-height: 1; padding: 0; min-height: 0; border-radius: 0 !important; }
.nx-addwrap .quantity button.nx-qbtn:hover { background: var(--noryx-paper-2) !important; }
.woocommerce div.product .nx-addwrap form.cart .button.single_add_to_cart_button {
  flex: 1; min-width: 200px; height: 52px; font-size: 15px !important; font-weight: 700 !important;
  border-radius: 11px !important; padding: 0 22px !important;
  background: var(--noryx-navy) !important; border: 1px solid var(--noryx-navy) !important; color: #fff !important;
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; transition: .15s;
}
.woocommerce div.product .nx-addwrap form.cart .button.single_add_to_cart_button:hover { background: #0d1a2c !important; }
.woocommerce div.product form.cart button.nx-buynow, button.nx-buynow {
  width: 100%; height: 52px; margin-top: 12px; border: 1px solid var(--noryx-blue) !important; background: #fff !important;
  color: var(--noryx-blue) !important; border-radius: 11px !important; font-size: 15px !important; font-weight: 700 !important;
  cursor: pointer; transition: .15s; padding: 0 22px !important;
}
.woocommerce div.product form.cart button.nx-buynow:hover, button.nx-buynow:hover { background: #f0f5fb !important; color: var(--noryx-blue) !important; }
/* Shoptimizer sticky add-to-cart / extras que conflitam com a Vitrine */
.single-product .shoptimizer-sticky-add-to-cart, .single-product .product-gallery-summary + .shoptimizer-checkout-trust-badges { display: none; }

/* ---- 4 garantias ---- */
.nx-guars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 24px 0 0; }
.nx-guar { background: #fff; border: 1px solid var(--noryx-line); border-radius: 11px; padding: 14px 10px; text-align: center; }
.nx-guar svg { color: var(--noryx-blue); margin-bottom: 8px; }
.nx-guar span { display: block; font-size: 11.5px; font-weight: 600; color: var(--noryx-navy); line-height: 1.3; }

/* ---- Documentação do lote ---- */
.nx-batchdoc { background: #fff; border: 1px solid var(--noryx-line); border-radius: var(--noryx-radius); margin-top: 20px; overflow: hidden; }
.nx-batchdoc-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--noryx-line); }
.nx-batchdoc-head h4 { margin: 0; font-size: 14px; font-weight: 700; color: var(--noryx-navy); display: flex; align-items: center; gap: 9px; }
.nx-coa-btn {
  border: 1px solid var(--noryx-navy); background: var(--noryx-navy); color: #fff !important; border-radius: 9px;
  padding: 9px 14px; font-size: 12.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 7px;
  text-decoration: none; transition: .15s;
}
.nx-coa-btn:hover { background: #0d1a2c; }
.nx-batchgrid { display: grid; grid-template-columns: repeat(2, 1fr); }
.nx-batchgrid .brow { display: flex; justify-content: space-between; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--noryx-line); font-size: 13px; }
.nx-batchgrid .brow:nth-last-child(-n+2) { border-bottom: 0; }
.nx-batchgrid .brow .k { color: var(--noryx-muted); }
.nx-batchgrid .brow .v { color: var(--noryx-ink); font-weight: 600; text-align: right; }

/* ---- Abas ---- */
.nx-pdp-tabs { margin: 8px 0 0; }
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs {
  padding: 0; margin: 0 calc(50% - 50vw); border-top: 1px solid var(--noryx-line); border-bottom: 1px solid var(--noryx-line);
  background: #fff; display: flex; flex-wrap: nowrap; gap: 4px; overflow-x: auto;
  padding-left: max(24px, calc(50vw - var(--noryx-maxw) / 2 + 24px));
  padding-right: 24px;
}
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs::before { display: none; border: none; }
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs li {
  background: transparent; border: none; border-radius: 0; margin: 0; padding: 0; float: none;
}
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs li a {
  padding: 18px 18px; font-size: 14.5px; font-weight: 600; color: var(--noryx-muted);
  border-bottom: 2px solid transparent; margin-bottom: -1px; display: block; white-space: nowrap;
}
.woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs li.active a { color: var(--noryx-navy); border-bottom-color: var(--noryx-navy); }
.woocommerce div.product .nx-pdp-tabs .woocommerce-Tabs-panel { padding: 34px 0 10px; margin: 0; }
.nx-pdp-tabs .woocommerce-Tabs-panel > h2:first-child { display: none; } /* título duplicado nativo */

.nx-panel-narrow { max-width: 820px; }
.nx-body-p, .nx-pdp-tabs .woocommerce-Tabs-panel p { font-size: 15.5px; color: #3a4759; margin: 0 0 18px; }

/* Descrição persuasiva */
.nx-desc > p:first-of-type { font-size: 22px; font-weight: 700; letter-spacing: -.02em; color: var(--noryx-navy); line-height: 1.35; margin: 0 0 16px; }
.nx-findings { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 24px 0; }
.nx-finding { background: var(--noryx-paper-2); border: 1px solid var(--noryx-line); border-radius: var(--noryx-radius); padding: 20px; }
.nx-finding .fi { width: 38px; height: 38px; border-radius: 10px; background: #fff; border: 1px solid var(--noryx-line); display: grid; place-items: center; color: var(--noryx-blue); margin-bottom: 12px; }
.nx-finding h5 { margin: 0 0 6px; font-size: 15px; font-weight: 700; color: var(--noryx-navy); }
.nx-finding p { margin: 0 0 8px; font-size: 13.5px; color: #48566a; }
.nx-finding cite { font-size: 12px; color: var(--noryx-muted); font-style: normal; }
.nx-ruo { font-size: 12.5px; color: var(--noryx-muted); background: var(--noryx-paper-2); border: 1px solid var(--noryx-line); border-radius: 10px; padding: 14px 16px; margin-top: 8px; }
.nx-ruo b { color: var(--noryx-ink); }

/* Especificações / data rows */
.nx-spec { max-width: 720px; }
.nx-drow { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--noryx-line); font-size: 14.5px; }
.nx-drow .k { color: var(--noryx-muted); font-weight: 500; }
.nx-drow .v { color: var(--noryx-ink); font-weight: 600; text-align: right; }
.nx-drow .v sub { font-size: .72em; }
.nx-panel-narrow .nx-ruo { margin-top: 22px; }

/* Científica */
.nx-research-btn {
  display: inline-block; height: 52px; line-height: 50px; padding: 0 22px; border: 1px solid var(--noryx-blue);
  background: #fff; color: var(--noryx-blue) !important; border-radius: 11px; font-size: 15px; font-weight: 700;
  text-decoration: none; transition: .15s;
}
.nx-research-btn:hover { background: #f0f5fb; }

/* FAQ acordeão */
.nx-faq { max-width: 820px; }
.nx-qa { border-bottom: 1px solid var(--noryx-line); }
.nx-qa summary { list-style: none; cursor: pointer; padding: 18px 0; font-size: 15px; font-weight: 600; color: var(--noryx-navy); display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.nx-qa summary::-webkit-details-marker { display: none; }
.nx-qa summary .ic { transition: .2s; color: var(--noryx-muted); flex-shrink: 0; display: inline-flex; }
.nx-qa[open] summary .ic { transform: rotate(45deg); }
.nx-qa p { margin: 0 0 20px; font-size: 14px; color: #48566a; max-width: 720px; }

/* Avaliações nativas (skin leve estilo Judge.me) */
.nx-pdp-tabs #reviews .comment-form-rating .stars a { color: var(--noryx-gold); }
.nx-pdp-tabs #reviews ol.commentlist { margin: 0; padding: 0; list-style: none; }
.nx-pdp-tabs #reviews ol.commentlist li { border-bottom: 1px solid var(--noryx-line); padding: 20px 0; margin: 0; }
.nx-pdp-tabs #reviews .comment_container img.avatar { border-radius: 50%; }

/* ---- Relacionados (reusam o card .nx-card da loja) ---- */
.nx-pdp-after { margin: 44px 0 0; }
.nx-pdp-after > .related > h2, .nx-pdp-after > .up-sells > h2 { font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--noryx-navy); margin: 0 0 22px; }
.nx-pdp-after ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap: 20px; margin: 0; padding: 0; list-style: none; width: 100%; }
.nx-pdp-after ul.products::before, .nx-pdp-after ul.products::after { display: none; }
.nx-pdp-after ul.products li.nx-card { width: 100%; margin: 0; float: none; }

/* ---- Trust strip ---- */
.nx-pdp-trust { background: #fff; border-top: 1px solid var(--noryx-line); margin: 44px calc(50% - 50vw) 0; }
.nx-pdp-trust .in { max-width: var(--noryx-maxw); margin: 0 auto; padding: 22px 24px; display: flex; gap: 36px; flex-wrap: wrap; justify-content: center; }
.nx-pdp-trust .ti { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #48566a; }
.nx-pdp-trust .ti svg { color: var(--noryx-blue); flex-shrink: 0; }
.nx-pdp-trust .ti b { color: var(--noryx-navy); font-weight: 600; }

/* ---- Barra de compra fixa (mobile) ---- */
.nx-mbar { display: none; }

/* ---- Responsivo ---- */
@media (max-width: 960px) {
  .nx-pdp { grid-template-columns: 1fr; gap: 26px; }
  .nx-pdp-gallery { position: static; }
  /* !important: a regra base de 4 colunas usa !important e vencia esta */
  .nx-pdp-after ul.products { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .nx-findings { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .single-product .nx-pdp-product { padding: 0 16px; }
  .nx-pdp { padding-bottom: 90px; }
  .nx-pdp-gallery .woocommerce-product-gallery { grid-template-columns: 1fr; }
  .nx-pdp-gallery .woocommerce-product-gallery__wrapper { grid-column: 1; grid-row: 1; }
  .nx-pdp-gallery .flex-control-thumbs { grid-column: 1; grid-row: 2; flex-direction: row; }
  .nx-pdp-gallery .flex-control-thumbs li { width: 64px; }
  .woocommerce div.product .nx-pdp-sum h1.nx-h1 { font-size: 24px; }
  .nx-pricecard .nx-price .amount, .nx-pricecard .nx-price ins .amount { font-size: 26px; }
  .nx-guars { grid-template-columns: repeat(2, 1fr); }
  .nx-batchgrid { grid-template-columns: 1fr; }
  .nx-batchgrid .brow:nth-last-child(-n+2) { border-bottom: 1px solid var(--noryx-line); }
  .nx-batchgrid .brow:last-child { border-bottom: 0; }
  /* Relacionados viram carrossel horizontal com scroll-snap: os cards de
     ~320px amontoavam nas colunas de grid estreitas. O card seguinte fica
     parcialmente visível (peek) como affordance de arrasto. */
  .nx-pdp-after ul.products {
    display: flex !important;
    grid-template-columns: none !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 12px;
    padding: 4px 16px 14px;
    margin: 0 -16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .nx-pdp-after ul.products::-webkit-scrollbar { display: none; }
  .nx-pdp-after ul.products li.nx-card,
  .nx-pdp-after ul.products li.product {
    flex: 0 0 76% !important;
    max-width: 76% !important;
    width: 76% !important;
    scroll-snap-align: center;
    margin: 0 !important;
  }
  .woocommerce div.product .nx-pdp-tabs .woocommerce-tabs ul.tabs { padding-left: 16px; padding-right: 16px; }
  .nx-mbar {
    display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 60; background: #fff;
    border-top: 1px solid var(--noryx-line); padding: 12px 16px; gap: 12px; align-items: center;
    box-shadow: 0 -6px 20px rgba(20,35,58,.08);
  }
  .nx-mbar .mp { font-size: 18px; font-weight: 800; color: var(--noryx-navy); }
  .nx-mbar .mp .amount { font-size: inherit; font-weight: inherit; color: inherit; }
  .nx-mbar .mp small { display: block; font-size: 11px; font-weight: 500; color: var(--noryx-muted); }
  .nx-mbar .mp small .amount { font-size: inherit; color: inherit; }
  .nx-mbar .madd { margin-left: auto; height: 46px; padding: 0 22px; border: 0; background: var(--noryx-navy); color: #fff; border-radius: 10px; font-weight: 700; font-size: 14px; cursor: pointer; }
}
