/* =============================================================
   PDP — Single Product (Nuggela & Sulé design preview)
   Wzorzec: components/pdp.jsx
   ============================================================= */

/* ── Page shell ─────────────────────────────────────────── */
body.single-product .ns-main { background: #fff; }

.ns-pdp-container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 32px);
}

/* ── Breadcrumb ─────────────────────────────────────────── */
.ns-pdp-bread {
  background: #fff;
  border-bottom: 1px solid var(--line);
  padding: 14px 0;
  font-size: 12px;
  color: var(--muted);
}
.ns-pdp-bread a { color: var(--muted); text-decoration: none; }
.ns-pdp-bread a:hover { text-decoration: underline; }
.ns-pdp-bread__sep { opacity: .5; margin: 0 8px; flex-shrink: 0; }
.ns-pdp-bread__current { color: var(--ink); }

/* Mobile: jedna linia, przewijanie w poziomie */
@media (max-width: 979px) {
  .ns-pdp-bread {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .ns-pdp-bread::-webkit-scrollbar {
    display: none;
  }
  .ns-pdp-bread > .ns-pdp-container {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
    width: max-content;
    max-width: none;
  }
  .ns-pdp-bread a,
  .ns-pdp-bread__current {
    flex-shrink: 0;
    white-space: nowrap;
  }
}

/* ── Main 2-col layout ──────────────────────────────────── */
.ns-pdp-main { padding: clamp(20px, 3vw, 32px) 0; }
.ns-pdp-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
  overflow: visible;
}
@media (min-width: 980px) {
  .ns-pdp-grid {
    grid-template-columns: 1.1fr 1fr;
    gap: 56px;
  }
}

/* ── Gallery ────────────────────────────────────────────── */
.ns-pdp-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: start;
  align-self: start;
}
@media (min-width: 980px) {
  .ns-pdp-gallery {
    grid-template-columns: 88px 1fr;
    gap: 16px;
    position: sticky;
    top: 112px;
    z-index: 2;
  }
}

/* Right column wraps main image + quick buttons */
.ns-pdp-gallery__col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.ns-pdp-gallery__main {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper-2);
  touch-action: pan-y;
  user-select: none;
}

/* Track: horizontal flex of slides, transformed by JS */
.ns-pdp-gallery__track {
  position: absolute; inset: 0;
  display: flex;
  width: 100%; height: 100%;
  transition: transform .35s cubic-bezier(.22, 0.61, 0.36, 1);
  will-change: transform;
}
.ns-pdp-gallery__track.is-dragging { transition: none; }

.ns-pdp-gallery__slide {
  flex: 0 0 100%;
  width: 100%; height: 100%;
  position: relative;
  display: flex; align-items: center; justify-content: center;
  background: var(--paper-2);
}

/* Images: contain (bottle has alpha bg, contain looks best) */
.ns-pdp-gallery__slide img {
  width: 100%; height: 100%;
  object-fit: contain;
  display: block;
  -webkit-user-drag: none;
}
/* Efekty image: cover the whole square (fotograficzne ujęcie) */
.ns-pdp-gallery__slide--efekty img { object-fit: cover; }

/* Video: fits the SQUARE area (cover, dark bg behind letterbox) */
.ns-pdp-gallery__slide--video { background: #000; }
.ns-pdp-gallery__slide video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

.ns-pdp-gallery__badge {
  position: absolute; top: 16px; left: 16px; z-index: 4;
  font-size: 11px; font-weight: 600; letter-spacing: .04em;
  padding: 5px 10px; border-radius: 999px;
  background: var(--ink); color: #fff;
  display: inline-flex; align-items: center; gap: 4px;
}
.ns-pdp-gallery__counter {
  position: absolute; bottom: 16px; right: 16px; z-index: 4;
  background: rgba(0,0,0,.65); color: #fff;
  font-size: 11px; padding: 4px 10px; border-radius: 999px;
  pointer-events: none;
}

/* ── Custom cursor navigation (desktop) ─────────────────── */
/* Each half is a transparent overlay; the cursor itself IS the arrow.
   Clean matte-black disc with thin orange ring accent + crisp white chevron.
   40×40 SVG, hotspot center (20 20). */
.ns-pdp-gallery__nav {
  position: absolute;
  top: 0; bottom: 0;
  width: 50%;
  background: transparent;
  border: 0; padding: 0;
  z-index: 4;
  cursor: pointer; /* fallback */
}
.ns-pdp-gallery__nav--prev {
  left: 0;
  cursor:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'><circle cx='20' cy='20' r='18.5' fill='%23080808'/><circle cx='20' cy='20' r='18.5' fill='none' stroke='%23ff6a1a' stroke-width='1' opacity='0.55'/><path d='M22.5 13 L15.5 20 L22.5 27' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>") 20 20,
    w-resize;
}
.ns-pdp-gallery__nav--next {
  right: 0;
  cursor:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'><circle cx='20' cy='20' r='18.5' fill='%23080808'/><circle cx='20' cy='20' r='18.5' fill='none' stroke='%23ff6a1a' stroke-width='1' opacity='0.55'/><path d='M17.5 13 L24.5 20 L17.5 27' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>") 20 20,
    e-resize;
}
/* Hide nav overlays on touch devices */
@media (hover: none), (pointer: coarse) {
  .ns-pdp-gallery__nav { display: none; }
}
/* On video slide: keep nav clickable in upper area, free bottom 64px for native controls */
.ns-pdp-gallery__main.is-video-active .ns-pdp-gallery__nav { bottom: 64px; }

/* ── Custom Play overlay (single, centered, above nav) ──── */
.ns-pdp-gallery__video-play {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 6; /* > .ns-pdp-gallery__nav (4) so pointer cursor wins */
  width: 84px; height: 84px;
  border: 0; padding: 0; margin: 0;
  border-radius: 50%;
  background: rgba(8, 8, 8, 0.66);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  color: #fff;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 1px rgba(255, 106, 26, 0.35), 0 12px 32px rgba(0, 0, 0, 0.35);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.ns-pdp-gallery__video-play[hidden] { display: none; }
.ns-pdp-gallery__video-play:hover {
  background: rgba(8, 8, 8, 0.82);
  transform: translate(-50%, -50%) scale(1.06);
  box-shadow: 0 0 0 1px rgba(255, 106, 26, 0.65), 0 12px 36px rgba(0, 0, 0, 0.45);
}
.ns-pdp-gallery__video-play:active {
  transform: translate(-50%, -50%) scale(0.97);
}
.ns-pdp-gallery__video-play svg {
  width: 28px; height: 28px;
  margin-left: 3px; /* visual centering for triangle */
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.35));
}

/* ── Thumbs ─────────────────────────────────────────────── */
.ns-pdp-gallery__thumbs {
  display: flex;
  flex-direction: row;
  gap: 8px;
  padding: 4px 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 980px) {
  .ns-pdp-gallery__thumbs {
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0;
    /* max-height set by JS to match main image; fallback prevents overflow */
    max-height: 600px;
    align-self: start;
    /* fade-out gradient at the bottom to indicate scroll */
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 36px), transparent 100%);
            mask-image: linear-gradient(to bottom, #000 calc(100% - 36px), transparent 100%);
    /* hide scrollbar, keep scrollability */
    scrollbar-width: none;
    cursor: grab;
    user-select: none;
  }
  .ns-pdp-gallery__thumbs::-webkit-scrollbar { display: none; }
  .ns-pdp-gallery__thumbs.is-dragging { cursor: grabbing; }
  .ns-pdp-gallery__thumbs.is-dragging .ns-pdp-gallery__thumb { pointer-events: none; }
}
.ns-pdp-gallery__thumb {
  flex: 0 0 64px;
  width: 64px; height: 64px;
  border-radius: 8px; overflow: hidden;
  border: 1px solid var(--line);
  background: #fff; cursor: pointer; padding: 0;
  position: relative;
  transition: border-color .12s ease, transform .12s ease;
}
@media (min-width: 980px) {
  .ns-pdp-gallery__thumb { flex: 0 0 88px; width: 88px; height: 88px; }
}
.ns-pdp-gallery__thumb:hover { border-color: var(--ink-3); }
.ns-pdp-gallery__thumb.is-active {
  border: 2px solid var(--ink);
}
.ns-pdp-gallery__thumb img,
.ns-pdp-gallery__thumb video {
  width: 100%; height: 100%; display: block;
  pointer-events: none;
  -webkit-user-drag: none;
}
.ns-pdp-gallery__thumb img   { object-fit: contain; }
.ns-pdp-gallery__thumb video { object-fit: cover; background: #000; }
.ns-pdp-gallery__thumb--efekty img { object-fit: cover; }
.ns-pdp-gallery__thumb--video::after,
.ns-pdp-gallery__thumb--efekty::after {
  content: ''; position: absolute; inset: 0; background: rgba(0,0,0,.28);
  pointer-events: none;
}
.ns-pdp-gallery__thumb--video::before {
  content: ''; position: absolute; inset: 0;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'><polygon points='6,4 20,12 6,20'/></svg>") center/16px no-repeat;
  z-index: 1;
}
.ns-pdp-gallery__thumb--efekty::before {
  content: '✦';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px; z-index: 1; font-weight: 700;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}

/* ── Quick split button (Video | Efekty) ────────────────── */
.ns-pdp-gallery-quick {
  display: inline-flex;
  align-self: center;
  border: 1px solid var(--ink);
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
  margin: 0 auto;
}
.ns-pdp-gallery-quick__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.01em;
  transition: background .15s ease, color .15s ease;
  white-space: nowrap;
}
.ns-pdp-gallery-quick__btn + .ns-pdp-gallery-quick__btn {
  border-left: 1px solid var(--ink);
}
.ns-pdp-gallery-quick__btn:hover {
  background: var(--ink);
  color: #fff;
}
.ns-pdp-gallery-quick__btn svg { flex-shrink: 0; }

/* ── BuyBox ─────────────────────────────────────────────── */
.ns-pdp-buybox {
  display: block;       /* explicit margins per element for pixel control */
  padding: 0;
}

.ns-pdp-buybox__crumbs {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin: 0 0 6px;
}
.ns-pdp-buybox__crumbs .ns-eyebrow { color: var(--muted); }
.ns-pdp-buybox__crumbs__sep { color: var(--muted-2); font-size: 11px; }

.ns-pdp-buybox__title {
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.05;
  margin: 0 0 6px;
  font-weight: 400;
}

.ns-pdp-buybox__short {
  font-size: clamp(13px, 1.1vw, 15px);
  line-height: 1.45;
  color: var(--muted);
  margin: 0 0 10px;
}

.ns-pdp-buybox__rating {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
  font-size: 13px;
  margin: 0 0 12px;
}

/* Subsequent blocks: compact, equal rhythm */
.ns-pdp-buybox__claim   { margin: 0 0 14px; }
.ns-pdp-variants        { margin: 0 0 12px; }
.ns-pdp-pricerow        { margin: 0 0 14px; }
.ns-pdp-buybox .ns-pdp-atc { margin: 0 0 10px; }
.ns-pdp-buybox .ns-pdp-trust { margin: 4px 0 0; }
.ns-pdp-buybox__rating-link {
  color: var(--ink); text-decoration: underline; text-underline-offset: 3px;
}
.ns-pdp-buybox__bought {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; color: var(--ink);
}
.ns-pdp-buybox__rating-dot {
  width: 4px; height: 4px; background: var(--line-2); border-radius: 50%;
}

.ns-pdp-buybox__claim {
  padding: 10px 14px;
  background: var(--orange-tint);
  border: 1px solid var(--orange-soft);
  border-radius: 10px;
  font-size: 13px; color: var(--ink);
  display: flex; align-items: center; gap: 8px;
}
.ns-pdp-buybox__claim svg { color: var(--orange); flex-shrink: 0; }

/* ── Variant tiles ──────────────────────────────────────── */
.ns-pdp-variants__label {
  font-size: 12px; font-weight: 600; margin-bottom: 8px;
  color: var(--ink);
}
.ns-pdp-variants__label-current { color: var(--muted); font-weight: 400; }

.ns-pdp-variants__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media (min-width: 600px) {
  .ns-pdp-variants__grid--3 { grid-template-columns: 1fr 1fr 1fr; }
  .ns-pdp-variants__grid--4 { grid-template-columns: 1fr 1fr; }
}

.ns-pdp-variant {
  position: relative;
  border: 1px solid var(--line);
  background: var(--paper-2);
  padding: 14px 12px;
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: border-color .15s ease, background .15s ease;
}
.ns-pdp-variant:hover { border-color: var(--ink-3); }
.ns-pdp-variant.is-active {
  border: 2px solid var(--ink);
  background: #fff;
  padding: 13px 11px; /* compensate for 2px border */
}
.ns-pdp-variant.is-disabled {
  opacity: .45; cursor: not-allowed;
}
.ns-pdp-variant__label { font-size: 14px; font-weight: 700; }
.ns-pdp-variant__price { font-size: 16px; font-weight: 700; margin-top: 4px; }
.ns-pdp-variant__ppu   { font-size: 11px; color: var(--muted); margin-top: 2px; }
.ns-pdp-variant__badge {
  position: absolute; top: -8px; right: 10px;
  font-size: 9px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 3px 7px;
  background: var(--orange); color: #fff; border-radius: 999px;
}

/* ── Price + qty row (2 kolumny, wyrównanie do dołu) ─────── */
.ns-pdp-pricerow {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: nowrap;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.ns-pdp-pricerow__col--price {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ns-pdp-pricerow__col--qty {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-end;
}
.ns-pdp-pricerow__label {
  font-size: 11px; color: var(--muted); margin-bottom: 2px;
}
.ns-pdp-pricerow__amount {
  font-size: 32px; font-weight: 700; letter-spacing: -0.02em; line-height: 1;
}
.ns-pdp-pricerow__amount del {
  font-size: 16px; color: var(--muted-2); margin-right: 8px; font-weight: 400;
}
.ns-pdp-pricerow__omnibus {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.35;
  margin: 0;
  padding: 0;
}

.ns-pdp-pricerow__omnibus p.iworks-omnibus,
.ns-pdp-pricerow__omnibus .iworks-omnibus {
  margin: 0 !important;
  padding: 0;
}
.ns-pdp-pricerow .ns-qty {
  flex-shrink: 0;
}

/* ── ATC button (PLUS icon, no layout shift) ───────────── */
.ns-pdp-atc,
.ns-pdp-sticky-atc {
  position: relative;
}
.ns-pdp-atc {
  height: 60px;
  font-size: 16px;
}
.ns-pdp-sticky-atc {
  flex-shrink: 0;
  min-height: 44px;
  padding-left: 16px;
  padding-right: 16px;
  font-size: 14px;
}
.ns-pdp-atc__icon {
  flex-shrink: 0;
  transition: opacity .12s ease;
}
.ns-pdp-atc[data-state="loading"] .ns-pdp-atc__icon,
.ns-pdp-atc[data-state="added"] .ns-pdp-atc__icon,
.ns-pdp-sticky-atc[data-state="loading"] .ns-pdp-atc__icon,
.ns-pdp-sticky-atc[data-state="added"] .ns-pdp-atc__icon { opacity: 0; }
.ns-pdp-atc__spinner,
.ns-pdp-atc__check {
  position: absolute;
  left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; gap: 8px;
  opacity: 0; pointer-events: none;
  transition: opacity .12s ease;
  white-space: nowrap;
}
.ns-pdp-atc[data-state="loading"] .ns-pdp-atc__spinner,
.ns-pdp-sticky-atc[data-state="loading"] .ns-pdp-atc__spinner { opacity: 1; }
.ns-pdp-atc[data-state="added"] .ns-pdp-atc__check,
.ns-pdp-sticky-atc[data-state="added"] .ns-pdp-atc__check { opacity: 1; }
.ns-pdp-atc[data-state="loading"] .ns-pdp-atc__main,
.ns-pdp-atc[data-state="added"] .ns-pdp-atc__main,
.ns-pdp-sticky-atc[data-state="loading"] .ns-pdp-atc__main,
.ns-pdp-sticky-atc[data-state="added"] .ns-pdp-atc__main { opacity: 0; }
.ns-pdp-atc__main { display: inline-flex; align-items: center; gap: 8px; transition: opacity .12s ease; }
.ns-pdp-atc__spinner svg { animation: nsAtcSpin .8s linear infinite; }
@keyframes nsAtcSpin { to { transform: rotate(360deg); } }


/* PDP boosters (quick upsell, shipping, bundle): wp-content/necta-storefront/pdp-boosters/tokens.css */
/* ── Trust highlights (necta-pdp-trust-box from Product boosters) ── */
/* Legacy .ns-pdp-trust* rules removed — content comes from necta_pdp_render_product_highlights(). */

/* ── Description Tabs ───────────────────────────────────── */
.ns-pdp-tabs-section {
  padding: 32px 0;
  background: #fff;
}
@media (min-width: 980px) {
  .ns-pdp-tabs-section { padding: 64px 0; }
}
.ns-pdp-tabs__nav {
  display: flex; gap: 4px;
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
  margin-bottom: 24px;
  scrollbar-width: thin;
}
.ns-pdp-tabs__btn {
  padding: 14px 18px;
  border: 0; background: transparent; cursor: pointer;
  font-size: 14px; font-weight: 600;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
  font-family: inherit;
}
.ns-pdp-tabs__btn.is-active {
  color: var(--ink);
  border-bottom-color: var(--orange);
}

.ns-pdp-tabs__panel { display: none; }
.ns-pdp-tabs__panel.is-active { display: block; }
.ns-pdp-tabs__panel {
  font-family: inherit;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink);
}
.ns-pdp-tabs__panel p { margin: 0 0 14px; }
.ns-pdp-tabs__panel p:last-child { margin-bottom: 0; }
.ns-pdp-tabs__panel ul,
.ns-pdp-tabs__panel ol {
  margin: 0 0 14px; padding-left: 0;
  display: flex; flex-direction: column; gap: 8px;
  list-style: none;
}
/* Brand "&" glyph bullet (same SVG as in top marquee).
 * - bullet sits at left:0 of <li>
 * - text starts at left:24px so wrapped lines align with text body */
.ns-pdp-tabs__panel ul li,
.ns-pdp-tabs__panel ol li {
  position: relative;
  padding-left: 24px;
  min-height: 1.6em;
}
.ns-pdp-tabs__panel ul li::before {
  content: "";
  position: absolute;
  left: 2px; top: 0.45em;
  width: 13px; height: 14px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 213 224' fill='%23FF6A1A'><path d='M92.74 0.45C113.52-2.17 151.39 6.97 166.77 21.35C162.74 24.94 158.87 28.72 155.19 32.66C153.16 34.87 145.05 44.91 143.58 45.78C142.02 44.51 140.18 40.96 139.18 39.04C129.36 20.26 110.76 7.9 89.16 13.68C66.69 19.69 64.07 45.28 74.18 62.93C82.73 77.85 94.73 90.68 106.13 103.41C120.29 119.11 134.59 134.69 149.04 150.13C161.15 133.78 179.9 114.1 164.94 95.58C163.6 93.92 160.99 90.3 160.6 88.53C162.79 86.7 205.94 86.62 207.68 88.06C207.59 90.17 199.08 101.21 197.28 103.72L167.09 145.94C164.6 149.43 160.02 155.27 158.02 159.14C157.69 159.79 158.36 160.25 158.98 161.05L212.6 217.42C197.68 217.96 181.08 217.68 166.02 217.69C158.35 208.29 145.55 194.28 137 185.71C111.38 219.89 72.47 233.14 31.93 215.16C0.83 201.36-7.99 159.73 7.4 131.32C18 111.73 35.16 102.27 56.07 96.03C23.48 53.97 37.84 7.3 92.74 0.45ZM96.81 198.23C111.87 193.21 117.38 187.76 128.01 175.92C110.9 158.1 94.11 139.97 77.64 121.56C75.88 119.57 63.75 104.8 62.45 104.22C48.53 113.33 38.3 124.08 34.96 140.68C27.1 179.75 59.26 207.31 96.81 198.23Z'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.ns-pdp-tabs__panel ol {
  counter-reset: nsList;
}
.ns-pdp-tabs__panel ol li::before {
  counter-increment: nsList;
  content: counter(nsList) ".";
  position: absolute;
  left: 0; top: 0;
  width: 18px;
  text-align: center;
  font-weight: 700;
  color: var(--orange);
}

/* ── Right (aux) column: smaller body for ingredient lists,
 *    keep <strong> sub-headings at original size. */
.ns-pdp-tabs__col--aux {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--muted);
}
.ns-pdp-tabs__col--aux p { margin: 0 0 12px; }
.ns-pdp-tabs__col--aux p:last-child { margin-bottom: 0; }
/* Sub-headings rendered as bold paragraphs ("Właściwości:", "Skład:") */
.ns-pdp-tabs__col--aux p strong,
.ns-pdp-tabs__col--aux h2,
.ns-pdp-tabs__col--aux h3,
.ns-pdp-tabs__col--aux h4 {
  display: block;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0;
  margin: 4px 0 10px;
  line-height: 1.3;
}
.ns-pdp-tabs__col--aux p:has(> strong:only-child) {
  margin-bottom: 8px; /* tighten gap between heading-paragraph and following content */
}
/* Lists in aux column: keep at normal body size, bullet aligned with heading */
.ns-pdp-tabs__col--aux ul {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
}
.ns-pdp-tabs__panel h2,
.ns-pdp-tabs__panel h3,
.ns-pdp-tabs__panel h4 {
  font-family: var(--display, "Cormorant Garamond", Georgia, serif);
  font-weight: 400;
  letter-spacing: -0.01em;
  margin: 24px 0 8px;
  line-height: 1.2;
}
.ns-pdp-tabs__panel h2 { font-size: 22px; }
.ns-pdp-tabs__panel h3 { font-size: 18px; }
.ns-pdp-tabs__panel h4 { font-size: 16px; font-family: inherit; font-weight: 700; }
.ns-pdp-tabs__panel strong { font-weight: 700; color: var(--ink); }
.ns-pdp-tabs__panel a { color: var(--orange); text-decoration: underline; text-underline-offset: 2px; }
/* Opis — two columns with vertical divider, top-aligned */
.ns-pdp-tabs__panel--desc {
  display: grid; grid-template-columns: 1fr; gap: 24px;
  align-items: start;
}
.ns-pdp-tabs__panel--desc > * { min-width: 0; }
@media (min-width: 760px) {
  .ns-pdp-tabs__panel--desc.is-active {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 48px;
    align-items: start;
  }
  .ns-pdp-tabs__panel--desc.is-active > *:nth-child(2) {
    border-left: 1px solid var(--line);
    padding-left: 48px;
  }
}
.ns-pdp-tabs__doc {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--line); border-radius: 10px;
  font-size: 14px; font-weight: 500; color: var(--ink);
  text-decoration: none; background: var(--paper-2);
}
.ns-pdp-tabs__doc:hover { background: var(--paper-3); }

/* ── Reviews — N&S custom layout ────────────────────────── */
.ns-pdp-reviews-section {
  padding: 32px 0 48px;
  background: var(--paper-2);
  border-top: 1px solid var(--line);
}
@media (min-width: 980px) {
  .ns-pdp-reviews-section { padding: 64px 0 80px; }
}

.ns-pdp-reviews { width: 100%; }
.ns-pdp-reviews__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
@media (min-width: 980px) {
  .ns-pdp-reviews__grid {
    grid-template-columns: 280px 1fr;
    gap: 48px;
    align-items: start;
  }
}

/* Summary column ----------------------------------------- */
.ns-pdp-reviews__summary {
  display: flex; flex-direction: column;
  gap: 0; /* explicit margins per element below */
}
@media (min-width: 980px) {
  .ns-pdp-reviews__summary {
    position: sticky;
    top: 96px;
  }
}
.ns-pdp-reviews__eyebrow {
  color: var(--muted);
  margin: 0 0 24px;
}
.ns-pdp-reviews__avg-row {
  display: flex; align-items: baseline; gap: 6px;
  margin: 0 0 8px;
}
.ns-pdp-reviews__avg {
  font-family: inherit;
  font-size: clamp(48px, 6vw, 64px);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.ns-pdp-reviews__avg-max {
  font-size: 18px;
  color: var(--muted);
  font-weight: 500;
}
.ns-pdp-reviews__stars {
  color: var(--orange);
  font-size: 22px;
  letter-spacing: 1px;
  margin: 0 0 16px;
}
.ns-pdp-reviews__total {
  font-size: 14px;
  color: var(--muted);
  margin: 0 0 24px;
}
.ns-pdp-reviews__total strong { color: inherit; font-weight: inherit; }

/* Per-rating bars */
.ns-pdp-reviews__bars {
  display: flex; flex-direction: column; gap: 10px;
  margin: 0 0 28px;
}
.ns-pdp-reviews__bar {
  display: grid;
  grid-template-columns: 32px 1fr 40px;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--muted);
}
.ns-pdp-reviews__bar-label {
  display: inline-flex; align-items: center; gap: 3px;
  font-weight: 600; color: var(--ink);
  font-size: 13px;
}
.ns-pdp-reviews__bar-track {
  position: relative;
  height: 7px;
  background: var(--paper-3); /* neutral beige, not orange-tint */
  border-radius: 999px;
  overflow: hidden;
}
.ns-pdp-reviews__bar-fill {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: var(--orange);
  border-radius: 999px;
  transition: width .25s ease;
}
.ns-pdp-reviews__bar-pct {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: 13px;
  color: var(--muted);
}

.ns-pdp-reviews__write,
.ns-pdp-reviews__write:link,
.ns-pdp-reviews__write:visited {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  border: 1px solid var(--ink) !important;
  background: transparent !important;
  color: var(--ink) !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  margin-top: 4px;
}
.ns-pdp-reviews__write:hover {
  background: var(--ink) !important;
  color: #fff !important;
}

/* Reviews list ------------------------------------------- */
.ns-pdp-reviews__list { min-width: 0; }
.ns-pdp-reviews__items {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 12px;
}

/* Card ---------------------------------------------------- */
.ns-rev { display: block; }
.ns-rev__card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px 20px;
}
.ns-rev__head {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  align-items: center;
  gap: 12px;
}
.ns-rev__avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px;
  color: var(--ink);
  background: var(--paper-2);
}
.ns-rev__meta { min-width: 0; }
.ns-rev__name {
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.2;
}
.ns-rev__verified {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; color: #16a34a;
  margin-top: 2px;
}
.ns-rev__verified svg { flex-shrink: 0; }
.ns-rev__date {
  font-size: 12px; color: var(--muted);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ns-rev__stars {
  margin: 10px 0 8px;
  color: var(--orange);
  font-size: 13px;
}
.ns-rev__text {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink);
}
.ns-rev__text p { margin: 0 0 8px; }
.ns-rev__text p:last-child { margin-bottom: 0; }

/* Load more + empty + form ------------------------------- */
.ns-pdp-reviews__more {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  margin-top: 18px;
  border: 1px solid var(--ink) !important;
  background: transparent !important;
  color: var(--ink) !important;
  border-radius: 999px !important;
}
.ns-pdp-reviews__more:hover { background: var(--ink) !important; color: #fff !important; }
.ns-pdp-reviews__more[disabled] { opacity: 0.6; cursor: not-allowed; }
.ns-pdp-reviews__more-spinner { display: none; }
.ns-pdp-reviews__more.is-loading .ns-pdp-reviews__more-label { display: none; }
.ns-pdp-reviews__more.is-loading .ns-pdp-reviews__more-spinner { display: inline-flex; align-items: center; }
.ns-pdp-reviews__more-spinner svg { animation: nsAtcSpin .8s linear infinite; }

.ns-pdp-reviews__empty {
  background: #fff;
  border: 1px dashed var(--line-2);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  color: var(--muted);
  font-size: 14px;
}

.ns-pdp-reviews__form-wrap {
  margin-top: 32px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 24px;
}
.ns-pdp-reviews__form-title {
  font-family: var(--display);
  font-weight: 400;
  font-size: 22px;
  margin: 0 0 16px;
}
.ns-pdp-reviews__form .comment-form-author input,
.ns-pdp-reviews__form .comment-form-email input,
.ns-pdp-reviews__form textarea,
.ns-pdp-reviews__form select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-family: inherit; font-size: 14px;
  background: #fff;
}
.ns-pdp-reviews__form label {
  display: block; font-weight: 600; font-size: 13px;
  margin-bottom: 4px; color: var(--ink);
}
.ns-pdp-reviews__form p { margin: 0 0 12px; }
.ns-pdp-reviews__form .comment-form-rating { margin: 0 0 12px; }
.ns-pdp-reviews__form .form-submit { margin-top: 8px; }
.ns-pdp-reviews__verify {
  background: #fff;
  border: 1px dashed var(--line-2);
  border-radius: 12px;
  padding: 16px 18px;
  font-size: 13px; color: var(--muted);
  margin-top: 24px;
}

/* ── Sticky ATC (mobile) ────────────────────────────────── */
.ns-pdp-sticky {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 100;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 24px rgba(0,0,0,.06);
  padding: 10px 12px;
  transform: translateY(100%);
  transition: transform .25s ease;
}
.ns-pdp-sticky.is-visible { transform: translateY(0); }
.ns-pdp-sticky__inner {
  max-width: 1320px; margin: 0 auto;
  display: flex; align-items: center; gap: 12px;
}
.ns-pdp-sticky__thumb {
  width: 48px; height: 48px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--line);
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ns-pdp-sticky__thumb img { width: 100%; height: 100%; object-fit: contain; }
.ns-pdp-sticky__body { min-width: 0; flex: 1; }
.ns-pdp-sticky__title {
  font-size: 12px; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  line-height: 1.2;
}
.ns-pdp-sticky__meta {
  font-size: 11px; color: var(--muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ns-pdp-sticky__price {
  font-size: 16px; font-weight: 700; white-space: nowrap;
}

/* push body content above sticky bar so we don't cover footer */
@media (max-width: 979px) {
  body.single-product { padding-bottom: 80px; }
}

/* ── Suppress parent theme stale loaders on ATC ─────────── */
.ns-pdp-atc.added::after,
.ns-pdp-atc.loading::after,
.ns-pdp-atc.added::before,
.ns-pdp-atc.loading::before,
.ns-pdp-sticky-atc.added::after,
.ns-pdp-sticky-atc.loading::after,
.ns-pdp-sticky-atc.added::before,
.ns-pdp-sticky-atc.loading::before { display: none !important; }
