/* ==========================================================================
   NEXLABO — arkusz motywu
   Wartości 1:1 z projektu (design/Nexlabo Sklep.dc.html)
   Punkty łamania: sm < 700px, md < 1000px

   Kolor akcentu: #9E95F0. Cała paleta jest zdefiniowana poniżej — zmiana
   akcentu w całym sklepie sprowadza się do podmiany zmiennych --nx-brand*.
   ========================================================================== */

:root {
  --nx-bg:        #F6F6F7;
  --nx-ink:       #161520;
  --nx-ink-2:     #3D3C47;
  --nx-muted:     #605F6B;
  --nx-muted-2:   #6C6B77;
  --nx-muted-3:   #8B8A97;
  /* Akcent: tło przycisków i wypełnień. */
  --nx-brand:     #9E95F0;
  /* Akcent w stanie :hover dla wypełnień. */
  --nx-brand-dk:  #8276EA;
  /* Akcent dla tekstu na jasnym tle (linki, ceny) — ciemniejszy, czytelny. */
  --nx-brand-ink: #6356DC;
  /* Najciemniejszy odcień: ciemne sekcje i tekst akcentu na białych przyciskach. */
  --nx-brand-deep:#241F51;
  /* Rozjaśnione odcienie akcentu (tła plakietek, notek, wyróżnień). */
  --nx-mint:      #ECEAFA;
  --nx-mint-2:    #D5D2F4;
  --nx-mint-3:    #B8B2EB;
  --nx-mint-4:    #DBD8F3;
  --nx-mint-5:    #CFCCEA;
  --nx-line:      #EAEAED;
  --nx-line-2:    #E3E3E7;
  --nx-line-3:    #DEDDE2;
  --nx-line-4:    #F1F1F3;
  --nx-surface:   #FFFFFF;
  --nx-soft:      #F2F2F4;
  --nx-soft-2:    #F4F4F6;
  --nx-soft-3:    #F6F6F8;
  --nx-danger:    #C2453B;
  --nx-radius:    20px;
  --nx-gutter:    clamp(16px, 4vw, 32px);
  --nx-header-total: 115px;
}

/* --------------------------------------------------------------- Base --- */

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

body {
  margin: 0;
  background: var(--nx-bg);
  color: var(--nx-ink);
  font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; }

a { color: var(--nx-ink); text-decoration: none; }
a:hover { color: var(--nx-brand-ink); }

input, button, textarea, select { font-family: inherit; }

::selection { background: var(--nx-mint-2); }

.nx-sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

.nx-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--nx-ink); color: #FFF; padding: 12px 20px; border-radius: 0 0 12px 0;
}
.nx-skip-link:focus { left: 0; color: #FFF; }

/* ------------------------------------------------------------- Layout --- */

.nx-container {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: var(--nx-gutter);
  padding-right: var(--nx-gutter);
}

.nx-section        { padding-top: clamp(34px, 5vw, 52px); }
.nx-section--first { padding-top: clamp(14px, 2.5vw, 24px); }
.nx-section--page  { padding-top: clamp(24px, 4vw, 36px); }
.nx-section--tight { padding-top: 16px; }
.nx-section--end   { padding-bottom: clamp(44px, 6vw, 72px); }
.nx-section--foot  { padding-bottom: 30px; }

.nx-card {
  background: var(--nx-surface);
  border-radius: var(--nx-radius);
}

.nx-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.nx-split--gap { gap: 16px; align-items: start; }

.nx-sticky {
  position: sticky;
  top: calc(var(--nx-header-total) + 16px);
}

/* ------------------------------------------------------------ Buttons --- */

.nx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  cursor: pointer;
  border-radius: 999px;
  font-weight: 600;
  text-align: center;
  transition: background .18s ease, color .18s ease;
}
.nx-btn--primary { background: var(--nx-brand); color: #FFF; }
.nx-btn--primary:hover { background: var(--nx-brand-dk); color: #FFF; }

.nx-btn--light {
  background: #FFF; color: var(--nx-brand-deep);
  font-weight: 700; font-size: 15px;
  padding: 16px clamp(28px, 5vw, 38px);
  transition: transform .18s ease, box-shadow .18s ease;
}
.nx-btn--light:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  color: var(--nx-brand-deep);
}

.nx-btn--ghost {
  border: 1px solid rgba(255,255,255,.35);
  color: #FFF; font-size: 15px; font-weight: 600;
  padding: 16px clamp(22px, 4vw, 30px);
}
.nx-btn--ghost:hover { background: rgba(255,255,255,.14); color: #FFF; }

.nx-btn--outline {
  border: 1px solid var(--nx-line-3);
  background: #FFF;
  padding: 14px 28px; font-size: 14.5px;
}
.nx-btn--outline:hover { background: var(--nx-soft); }

.nx-btn--brand-sm { background: var(--nx-brand); color: #FFF; padding: 14px 28px; font-size: 14.5px; }
.nx-btn--brand-sm:hover { background: var(--nx-brand-dk); color: #FFF; }
.nx-btn--pill-xs { background: var(--nx-brand); color: #FFF; padding: 11px 22px; font-size: 13.5px; }
.nx-btn--pill-xs:hover { background: var(--nx-brand-dk); color: #FFF; }
.nx-btn--block { display: block; width: 100%; }

/* ------------------------------------------------------- Announcement --- */

.nx-topbar {
  background: var(--nx-ink);
  color: #FFF;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-align: center;
  padding: 10px 0;
  overflow: hidden;
}
.nx-topbar__track {
  display: flex;
  width: max-content;
  animation: nx-marquee var(--nx-marquee-time, 26s) linear infinite;
}
.nx-topbar:hover .nx-topbar__track { animation-play-state: paused; }
.nx-topbar__group { display: flex; flex: none; }
.nx-topbar__item {
  display: inline-flex; align-items: center;
  padding: 0 26px;
  white-space: nowrap;
}
/* Kropka rozdzielająca komunikaty — bez dodatkowego znacznika. */
.nx-topbar__item::after {
  content: "";
  width: 4px; height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: .45;
  margin-left: 26px;
}
@keyframes nx-marquee {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}
/* Bez ruchu: jedna grupa, wyśrodkowana, druga schowana. */
@media (prefers-reduced-motion: reduce) {
  .nx-topbar__track { animation: none; width: 100%; justify-content: center; flex-wrap: wrap; }
  .nx-topbar__group:nth-child(2) { display: none; }
  .nx-topbar__group { flex-wrap: wrap; justify-content: center; }
}

/* ------------------------------------------------------------- Header --- */

.nx-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--nx-surface);
  box-shadow: 0 1px 0 var(--nx-line);
}
.admin-bar .nx-header { top: 32px; }

.nx-header__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--nx-gutter);
  height: 76px;
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.4vw, 28px);
}

.nx-burger {
  display: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 6px;
  margin-left: -6px;
  flex: none;
  align-items: center;
}
.nx-burger svg { display: block; }

.nx-logo { display: flex; align-items: center; gap: 9px; flex: none; }
.nx-logo__mark {
  width: 28px; height: 28px;
  border-radius: 9px;
  background: var(--nx-brand);
  display: flex; align-items: center; justify-content: center;
  color: #FFF; font-weight: 800; font-size: 14px;
  flex: none;
}
.nx-logo__text {
  font-size: clamp(17px, 4vw, 20px);
  font-weight: 800;
  letter-spacing: .1em;
}
.nx-logo__img { display: block; max-height: 64px; width: auto; }

.nx-nav {
  display: flex;
  gap: 24px;
  font-size: 14.5px;
  font-weight: 600;
  flex: none;
  align-items: center;
  margin: 0; padding: 0; list-style: none;
}
.nx-nav > li { position: relative; }
.nx-nav > li > a {
  color: var(--nx-ink);
  white-space: nowrap;
  transition: color .18s ease;
  display: flex; align-items: center; gap: 6px;
}
.nx-nav > li > a:hover,
.nx-nav > li.current-menu-item > a,
.nx-nav > li.current-menu-parent > a,
.nx-nav > li.current_page_item > a,
.nx-nav > li.nx-active > a { color: var(--nx-brand-ink); }

.nx-nav > li.menu-item-has-children > a { padding: 26px 0; }
.nx-nav__arrow { display: block; transition: transform .2s ease; }
.nx-nav > li.nx-open .nx-nav__arrow { transform: rotate(180deg); }

.nx-nav .sub-menu {
  position: absolute;
  top: 100%; left: -14px;
  background: #FFF;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(24,22,36,.13);
  padding: 8px;
  min-width: 220px;
  margin: 0; list-style: none;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.nx-nav > li:hover .sub-menu,
.nx-nav > li.nx-open .sub-menu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.nx-nav .sub-menu a {
  display: block;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 500;
  color: var(--nx-ink);
  white-space: nowrap;
  transition: background .16s ease;
}
.nx-nav .sub-menu a:hover { background: var(--nx-soft); color: var(--nx-ink); }

.nx-header__right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
}

.nx-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--nx-soft);
  border-radius: 999px;
  padding: 0 16px;
  flex: 1 1 auto;
  min-width: 0;
  transition: background .18s ease;
}
.nx-search:hover { background: var(--nx-line); }
.nx-search svg { flex: none; }
.nx-search input {
  flex: 1; min-width: 0;
  border: 0; outline: 0;
  background: transparent;
  padding: 12px 0;
  font-size: 14px;
  color: var(--nx-ink);
}
.nx-search--mobile { max-width: none; }
.nx-search--mobile input { padding: 13px 0; font-size: 15px; }

/* --------------------------------------------- Podpowiedzi wyszukiwania --- */

/*
 * Panel wisi pod polem, więc opakowanie musi być punktem odniesienia.
 * Na desktopie ma szerokość pola z dolnym minimum, żeby nazwy produktów
 * nie łamały się po każdym słowie.
 */
.nx-searchbox {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 250px;
  display: flex;
}
.nx-searchbox--mobile { max-width: none; margin-bottom: 8px; }

.nx-suggest {
  position: absolute;
  top: calc(100% + 8px);
  /* Panel jest szerszy od pola, więc rośnie w lewo — przy prawej krawędzi
     ekranu nie ma szans wyjść poza widok. */
  right: 0;
  min-width: 100%;
  width: max(100%, 340px);
  max-height: min(70vh, 460px);
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #FFF;
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(24, 22, 36, .16);
  padding: 6px;
  z-index: 70;
}
.nx-searchbox--mobile .nx-suggest { width: 100%; }

.nx-suggest__item {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 10px;
  border-radius: 12px;
  color: var(--nx-ink);
  transition: background .14s ease;
}
.nx-suggest__item:hover,
.nx-suggest__item.is-active { background: var(--nx-soft-3); color: var(--nx-ink); }

.nx-suggest__media {
  flex: none;
  width: 44px; height: 44px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--nx-soft);
  display: flex; align-items: center; justify-content: center;
}
.nx-suggest__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-suggest__ph { width: 100%; height: 100%; background: var(--nx-mint); }

.nx-suggest__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nx-suggest__title {
  font-size: 14px; font-weight: 600; line-height: 1.35;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.nx-suggest__price { font-size: 13px; font-weight: 600; color: var(--nx-brand-ink); }
.nx-suggest__price del { color: var(--nx-muted-3); font-weight: 500; margin-right: 5px; }
.nx-suggest__price ins { text-decoration: none; }

.nx-suggest__badge {
  margin-left: auto; flex: none;
  font-size: 11px; font-weight: 600;
  color: var(--nx-muted-3);
  white-space: nowrap;
}

.nx-suggest__empty {
  margin: 0; padding: 16px 12px;
  font-size: 14px; color: var(--nx-muted);
  text-align: center;
}
.nx-suggest__all {
  display: block;
  margin-top: 4px;
  padding: 12px 10px;
  border-top: 1px solid var(--nx-line);
  border-radius: 0 0 12px 12px;
  font-size: 13.5px; font-weight: 600;
  color: var(--nx-brand-ink);
  text-align: center;
}
.nx-suggest__all span { color: var(--nx-muted-3); font-weight: 500; }
.nx-suggest__all:hover,
.nx-suggest__all.is-active { background: var(--nx-mint); color: var(--nx-brand-ink); }

.nx-cart-btn {
  border: 0; cursor: pointer;
  background: var(--nx-brand);
  color: #FFF;
  border-radius: 999px;
  padding: 13px 20px;
  font-size: 14px; font-weight: 600;
  display: flex; gap: 9px; align-items: center;
  flex: none; white-space: nowrap;
  transition: background .18s ease;
}
.nx-cart-btn:hover { background: var(--nx-brand-dk); color: #FFF; }
.nx-cart-btn svg { flex: none; display: block; }
.nx-cart-btn__count {
  background: #FFF; color: var(--nx-brand-ink);
  border-radius: 999px;
  width: 20px; height: 20px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11.5px; font-weight: 700;
  flex: none;
}

/* mobilne menu — nakładka pod nagłówkiem, nie rozpycha strony */
.nx-mmenu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 5;
  border-top: 1px solid var(--nx-line);
  padding: 12px var(--nx-gutter) 18px;
  display: none;
  flex-direction: column;
  gap: 2px;
  background: #FFF;
  box-shadow: 0 20px 40px rgba(24, 22, 36, .14);
  max-height: calc(100vh - var(--nx-header-total));
  max-height: calc(100dvh - var(--nx-header-total));
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* Widoczne wyłącznie tam, gdzie jest hamburger — nakładka nie może zostać
   otwarta po powiększeniu okna do desktopu. */
@media (max-width: 999px) {
  .nx-mmenu.is-open { display: flex; }
}
.nx-mmenu ul { margin: 0; padding: 0; list-style: none; }
.nx-mmenu > ul > li > a,
.nx-mmenu .nx-mmenu__extra a {
  font-size: 16px; font-weight: 600;
  padding: 13px 4px;
  border-bottom: 1px solid var(--nx-line-4);
  display: block;
  color: var(--nx-ink);
}
.nx-mmenu > ul > li.current-menu-item > a,
.nx-mmenu > ul > li.nx-active > a { color: var(--nx-brand-ink); }
.nx-mmenu__row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 10px; padding: 13px 4px; cursor: pointer;
}
.nx-mmenu__row a { font-size: 16px; font-weight: 600; padding: 0; border: 0; }
.nx-mmenu li.menu-item-has-children { border-bottom: 1px solid var(--nx-line-4); }
.nx-mmenu li.menu-item-has-children > a { border-bottom: 0; }
.nx-mmenu__toggle {
  border: 0; background: transparent; cursor: pointer;
  padding: 13px 4px; display: flex; align-items: center; flex: none;
}
.nx-mmenu__toggle svg { display: block; transition: transform .2s ease; }
.nx-mmenu li.nx-open > .nx-mmenu__row .nx-mmenu__toggle svg { transform: rotate(180deg); }
.nx-mmenu .sub-menu { display: none; flex-direction: column; padding: 0 0 10px; }
.nx-mmenu li.nx-open > .sub-menu { display: flex; }
.nx-mmenu .sub-menu a {
  display: block; padding: 11px 14px;
  font-size: 15px; color: var(--nx-muted);
  border: 0;
}
.nx-mmenu__extra a:last-child { border-bottom: 0; }
.nx-mmenu__extra a { color: var(--nx-muted); }

/* ------------------------------------------------------- Cart drawer --- */

.nx-drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
}
.nx-drawer.is-open { pointer-events: auto; }
.nx-drawer__scrim {
  position: absolute; inset: 0;
  background: rgba(24,22,36,.45);
  opacity: 0;
  transition: opacity .25s ease;
  border: 0; padding: 0; cursor: pointer;
}
.nx-drawer.is-open .nx-drawer__scrim { opacity: 1; }
.nx-drawer__panel {
  position: relative;
  width: 420px;
  max-width: 100%;
  height: 100%;
  background: #FFF;
  display: flex;
  flex-direction: column;
  box-shadow: -20px 0 50px rgba(24,22,36,.16);
  transform: translateX(105%);
  transition: transform .28s cubic-bezier(.22,1,.36,1);
}
.nx-drawer.is-open .nx-drawer__panel { transform: translateX(0); }
/* Kontener podmieniany przez AJAX musi przenosić układ kolumnowy panelu —
   inaczej lista pozycji nie ma czego wypełnić i rośnie poza ekran zamiast
   się przewijać, spychając podsumowanie i przyciski poniżej krawędzi. */
.nx-drawer__contents {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.nx-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px;
  border-bottom: 1px solid var(--nx-line);
  flex: none;
}
.nx-drawer__title { font-size: 17px; font-weight: 700; }
.nx-drawer__close {
  border: 0; background: var(--nx-soft);
  border-radius: 999px;
  width: 34px; height: 34px;
  cursor: pointer; font-size: 13px; color: var(--nx-muted);
  flex: none;
}
.nx-drawer__notice {
  background: var(--nx-mint);
  color: var(--nx-brand-ink);
  font-size: 12.5px; font-weight: 600;
  padding: 12px 22px;
}
.nx-drawer__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 4px 22px;
}
.nx-drawer__notice { flex: none; }
.nx-drawer__foot { flex: none; padding: 20px 22px 24px; border-top: 1px solid var(--nx-line); }
.nx-drawer__total {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
}
.nx-drawer__total-label { font-size: 15px; color: var(--nx-muted); }
.nx-drawer__total-value { font-size: 23px; font-weight: 800; white-space: nowrap; }
.nx-drawer__meta { font-size: 12.5px; color: var(--nx-muted-3); margin: 4px 0 16px; }
.nx-drawer__cta {
  width: 100%; border: 0; cursor: pointer;
  background: var(--nx-brand); color: #FFF;
  padding: 16px; font-size: 15px; font-weight: 600;
  border-radius: 999px;
  transition: background .18s ease;
  display: block; text-align: center;
}
.nx-drawer__cta:hover { background: var(--nx-brand-dk); color: #FFF; }
.nx-drawer__cta--alt {
  border: 1px solid var(--nx-line-3);
  background: #FFF; color: var(--nx-ink);
  padding: 14px; font-size: 14px; font-weight: 600;
  margin-top: 10px;
}
.nx-drawer__cta--alt:hover { background: var(--nx-soft); color: var(--nx-ink); }
.nx-drawer__empty { padding: 40px 0; text-align: center; color: var(--nx-muted-3); font-size: 14.5px; }

.nx-mini-item {
  display: flex; gap: 14px; align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--nx-line);
}
.nx-mini-item:last-child { border-bottom: 0; }
.nx-mini-item__head { display: flex; align-items: flex-start; gap: 10px; }
.nx-mini-item__head .nx-mini-item__name { flex: 1; min-width: 0; }

/* Przycisk usuwania — czerwony ✕ na półprzezroczystym kółku */
.nx-remove {
  flex: none;
  width: 30px; height: 30px;
  border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(194, 69, 59, .09);
  color: var(--nx-danger);
  font-size: 19px; line-height: 1;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.nx-remove:hover { background: rgba(194, 69, 59, .18); color: var(--nx-danger); transform: scale(1.06); }
.nx-mini-item__img {
  width: 64px; height: 64px;
  border-radius: 12px; object-fit: cover;
  background: var(--nx-soft); flex: none;
}
.nx-mini-item__body { flex: 1; min-width: 0; }
.nx-mini-item__name { font-size: 14.5px; font-weight: 600; }
.nx-mini-item__meta { font-size: 11.5px; color: var(--nx-muted-3); margin-top: 4px; }
.nx-mini-item__row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 10px; flex-wrap: wrap;
}
.nx-mini-item__sum { font-size: 14px; font-weight: 700; white-space: nowrap; }

.nx-qty {
  border: 1px solid var(--nx-line-2);
  border-radius: 999px;
  display: inline-flex; align-items: center;
  color: var(--nx-muted);
}
.nx-qty button {
  border: 0; background: transparent;
  padding: 6px 12px; font-size: 15px; line-height: 1;
  color: var(--nx-muted-3); cursor: pointer;
}
.nx-qty__value {
  font-size: 13.5px; font-weight: 600;
  min-width: 18px; text-align: center; color: var(--nx-ink);
}

/* Kompaktowy licznik w szufladzie koszyka */
.nx-qty--mini {
  border-color: var(--nx-line-2);
  border-radius: 999px;
}
.nx-qty--mini button {
  border: 0; background: none;
  width: 26px; height: 26px;
  padding: 0;
  font-size: 15px; line-height: 1;
  color: var(--nx-muted-3);
  cursor: pointer;
  transition: color .18s ease;
}
.nx-qty--mini button:hover { color: var(--nx-brand-ink); }
.nx-qty--mini.is-busy { opacity: .5; pointer-events: none; }

/* --------------------------------------------------------------- Hero --- */

/* --------------------------------------------------------- Hero slider --- */

/*
 * Baner z jednym slajdem wygląda i zachowuje się dokładnie jak wcześniej —
 * sterowanie renderuje się dopiero od dwóch slajdów.
 */
.nx-heroslider { position: relative; }
.nx-heroslider__viewport { overflow: hidden; border-radius: var(--nx-radius); }
.nx-heroslider__track { display: flex; }
.nx-heroslider--multi .nx-heroslider__track {
  transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}
.nx-heroslider__slide { flex: 0 0 100%; min-width: 0; }
.nx-heroslider__slide .nx-hero { border-radius: 0; }

.nx-heroslider__arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border: 0; cursor: pointer;
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
  color: #FFF;
  backdrop-filter: blur(4px);
  transition: background .18s ease;
  z-index: 2;
}
.nx-heroslider__arrow:hover { background: rgba(255, 255, 255, .3); }
.nx-heroslider__arrow--prev { left: 16px; }
.nx-heroslider__arrow--next { right: 16px; }
.nx-heroslider__arrow--prev svg { transform: rotate(90deg); }
.nx-heroslider__arrow--next svg { transform: rotate(-90deg); }

.nx-heroslider__dots {
  position: absolute; left: 0; right: 0; bottom: 18px;
  display: flex; justify-content: center; gap: 8px;
  z-index: 2;
}
.nx-heroslider__dot {
  width: 8px; height: 8px; padding: 0;
  border: 0; border-radius: 999px; cursor: pointer;
  background: rgba(255, 255, 255, .42);
  transition: background .18s ease, width .18s ease;
}
.nx-heroslider__dot.is-active { background: #FFF; width: 22px; }

@media (max-width: 699px) {
  .nx-heroslider__arrow { width: 36px; height: 36px; }
  .nx-heroslider__arrow--prev { left: 8px; }
  .nx-heroslider__arrow--next { right: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .nx-heroslider--multi .nx-heroslider__track { transition: none; }
}

.nx-hero {
  position: relative;
  border-radius: var(--nx-radius);
  overflow: hidden;
  min-height: clamp(380px, 52vw, 460px);
  display: flex;
  align-items: center;
  background: var(--nx-brand-deep);
}
.nx-hero__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .38;
}
.nx-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(36,31,81,.93) 0%, rgba(36,31,81,.86) 42%, rgba(36,31,81,.42) 100%);
}
.nx-hero__body {
  position: relative;
  padding: clamp(32px, 5vw, 64px) clamp(22px, 4.5vw, 60px);
  max-width: 660px;
}
.nx-hero__badge {
  display: inline-block;
  background: rgba(255,255,255,.14);
  color: var(--nx-mint-2);
  border-radius: 999px;
  padding: 7px 16px;
  font-size: 12.5px; font-weight: 600;
  margin-bottom: 20px;
}
.nx-hero__title {
  font-size: clamp(31px, 6.4vw, 52px);
  line-height: 1.06;
  letter-spacing: -.03em;
  font-weight: 800;
  margin: 0 0 16px;
  color: #FFF;
  max-width: 15ch;
  text-wrap: balance;
}
.nx-hero__text {
  font-size: clamp(15px, 2.2vw, 17px);
  line-height: 1.6;
  color: var(--nx-mint-5);
  margin: 0 0 28px;
  max-width: 44ch;
  text-wrap: pretty;
}
.nx-hero__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.nx-hero--page { min-height: clamp(190px, 30vw, 300px); }
.nx-hero--page .nx-hero__overlay {
  background: linear-gradient(100deg, rgba(36,31,81,.92) 0%, rgba(36,31,81,.78) 50%, rgba(36,31,81,.45) 100%);
}
.nx-hero--page .nx-hero__body {
  padding: clamp(26px, 4vw, 40px) clamp(22px, 4.5vw, 56px);
  max-width: none;
}
.nx-hero--page .nx-hero__title {
  font-size: clamp(27px, 5.4vw, 46px);
  line-height: normal;
  letter-spacing: -.03em;
  margin: 0;
  max-width: none;
  text-wrap: wrap;
}
.nx-hero__crumbs {
  font-size: 12.5px; color: var(--nx-mint-3); font-weight: 600;
  margin-bottom: 10px;
  display: flex; gap: 7px; align-items: center; flex-wrap: wrap;
}
.nx-hero__crumbs a { color: var(--nx-mint-3); transition: color .18s ease; }
.nx-hero__crumbs a:hover { color: #FFF; }
.nx-hero__crumbs .nx-sep { opacity: .6; }
.nx-hero__crumbs .nx-current { color: #FFF; }

/* --------------------------------------------------- Section headings --- */

.nx-shead {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; margin-bottom: 18px; flex-wrap: wrap;
}
.nx-shead__title {
  font-size: clamp(22px, 4vw, 28px);
  letter-spacing: -.02em;
  font-weight: 800;
  margin: 0;
}
.nx-shead__link {
  font-size: 14px; font-weight: 600;
  color: var(--nx-brand-ink); white-space: nowrap;
}
.nx-shead__right {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* ----------------------------------------------------- Karuzela produktów --- */

.nx-carousel { position: relative; }

.nx-carousel__nav { display: flex; gap: 8px; }
.nx-carousel__btn {
  width: 38px; height: 38px;
  border-radius: 999px;
  border: 1px solid var(--nx-line-3);
  background: #FFF;
  color: var(--nx-ink);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, opacity .18s ease;
}
.nx-carousel__btn:hover:not(:disabled) { background: var(--nx-soft); border-color: #CAC9D1; }
.nx-carousel__btn:disabled { opacity: .3; cursor: default; }
.nx-carousel.is-static .nx-carousel__nav { display: none; }

.nx-carousel__track {
  --nx-cgap: clamp(10px, 1.4vw, 16px);
  --nx-cols: 4;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--nx-cols) - 1) * var(--nx-cgap)) / var(--nx-cols));
  gap: var(--nx-cgap);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 2px;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  /* zapas na uniesienie kafelka i cień przy najechaniu */
  padding: 6px 2px 22px;
  margin-bottom: -14px;
}
.nx-carousel__track::-webkit-scrollbar { display: none; }
.nx-carousel__track > * { scroll-snap-align: start; }

@media (prefers-reduced-motion: reduce) {
  .nx-carousel__track { scroll-behavior: auto; }
}

/* 4 kafelki w rzędzie na desktopie, mniej na węższych ekranach */
@media (max-width: 1023px) { .nx-carousel__track { --nx-cols: 3; } }
@media (max-width: 767px)  { .nx-carousel__track { --nx-cols: 2; } }
@media (max-width: 459px)  { .nx-carousel__track { --nx-cols: 1.35; } }

/* ------------------------------------------------------ Product cards --- */

.nx-pgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 168px), 1fr));
  gap: clamp(10px, 1.4vw, 16px);
  margin: 0; padding: 0; list-style: none;
}
.nx-pgrid--shop {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
}

/* Podobne produkty: zawsze 4 równe kolumny, żeby kilka kafelków nie ściskało się
   z lewej strony przy pustym miejscu obok (auto-fill tworzył 6 wąskich kolumn). */
.nx-pgrid--related { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1023px) { .nx-pgrid--related { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px)  { .nx-pgrid--related { grid-template-columns: repeat(2, 1fr); } }

.nx-pcard {
  position: relative;
  background: #FFF;
  border-radius: 18px;
  padding: 12px 14px 18px;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
  list-style: none;
}
.nx-pcard:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(24,22,36,.09); }
.nx-pcard__media {
  position: relative;
  border-radius: 14px;
  aspect-ratio: 1/1;
  background: var(--nx-soft-2);
  margin-bottom: 14px;
  overflow: hidden;
}
.nx-pcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-pcard__tag {
  position: absolute; top: 10px; left: 10px;
  background: var(--nx-brand); color: #FFF;
  border-radius: 999px;
  padding: 5px 11px;
  font-size: 10.5px; font-weight: 700;
  z-index: 2;
}
.nx-pcard__tag--sale { background: var(--nx-danger); }
.nx-pcard__name {
  font-size: clamp(14.5px, 1.4vw, 16.5px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--nx-ink);
}
.nx-pcard__name a { color: inherit; }
.nx-pcard__name a::after {
  content: "";
  position: absolute; inset: 0;
  z-index: 1;
}
.nx-pcard__spec { font-size: 12.5px; color: var(--nx-muted-3); margin-top: 6px; }
.nx-pcard__stock { font-size: 12.5px; color: var(--nx-brand-ink); margin-top: 6px; font-weight: 600; }
/* Brak towaru nie może świecić kolorem akcentu jak dostępność. */
.nx-pcard__stock--out { color: var(--nx-muted-3); }
/* Cena zawsze nad przyciskiem — przycisk na pełną szerokość kafelka. */
.nx-pcard__foot {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin-top: auto;
  padding-top: 14px;
}
.nx-pcard--shop .nx-pcard__foot { padding-top: 12px; }
.nx-pcard__price {
  font-size: clamp(15.5px, 1.5vw, 17px);
  font-weight: 800;
  color: var(--nx-ink);
  line-height: 1.25;
}
.nx-pcard__price del {
  color: var(--nx-muted-3);
  font-weight: 600;
  font-size: .72em;
  margin-right: 6px;
  text-decoration-thickness: 1px;
}
.nx-pcard__price ins { text-decoration: none; }

.nx-pcard__cta {
  position: relative;
  z-index: 2;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  background: var(--nx-brand);
  color: #FFF;
  border: 0;
  border-radius: 999px;
  padding: 14px 16px;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.nx-pcard__cta:hover { background: var(--nx-brand-dk); color: #FFF; transform: translateY(-1px); }
.nx-pcard__cta svg { flex: none; }

/* stany AJAX — wspólne dla kafelka i karty produktu */
.nx-pcard__cta.is-loading,
.nx-add-btn.is-loading { opacity: .65; pointer-events: none; }
.nx-pcard__cta.is-loading svg,
.nx-add-btn.is-loading svg { animation: nx-pulse .9s ease-in-out infinite; }
/* Kafelek po dodaniu: przycisk staje się odnośnikiem „Zobacz koszyk”. */
.nx-pcard__cta.is-added { background: var(--nx-ink); }
.nx-pcard__cta.is-added:hover { background: #0D0C15; }

/* Odnośnik doklejany przez WooCommerce jest zbędny — szuflada otwiera się sama. */
.nx-pcard .added_to_cart,
.nx-summary .added_to_cart { display: none; }

@keyframes nx-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}

.nx-add-error {
  margin-top: 8px;
  background: #FBECEA;
  color: var(--nx-danger);
  border-radius: 10px;
  padding: 9px 13px;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.45;
  position: relative;
  z-index: 2;
}
.nx-pcard .added_to_cart {
  position: relative;
  z-index: 2;
  display: block;
  text-align: center;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--nx-brand-ink);
  margin-top: -4px;
}

/* ------------------------------------------------------- Values strip --- */

/* Pas wypełniony akcentem. Akcent jest jasny, więc typografia jest ciemna —
   inaczej biały tekst byłby na nim nieczytelny. */
.nx-values {
  background: var(--nx-brand);
  border-radius: var(--nx-radius);
  color: var(--nx-brand-deep);
  padding: clamp(34px, 5vw, 56px) clamp(24px, 4vw, 56px) clamp(38px, 5vw, 60px);
}
.nx-values__kicker {
  text-align: center;
  font-size: clamp(11.5px, 1.6vw, 13px);
  font-weight: 700;
  letter-spacing: .24em;
  color: rgba(36, 31, 81, .8);
  margin-bottom: clamp(28px, 4vw, 44px);
}
.nx-values__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(28px, 4vw, 48px);
  text-align: center;
}
.nx-values__icon {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .5);
  color: var(--nx-brand-deep);
  margin-bottom: 18px;
}
.nx-values--plain .nx-values__icon { background: rgba(255, 255, 255, .5); }
.nx-values__title {
  font-size: clamp(22px, 3.4vw, 26px);
  font-weight: 800;
  letter-spacing: .04em;
  margin-bottom: 12px;
}
.nx-values__text {
  font-size: 15.5px;
  line-height: 1.65;
  color: rgba(36, 31, 81, .8);
  margin: 0 auto;
  max-width: 32ch;
  text-wrap: pretty;
}
.nx-values--plain {
  padding: clamp(30px, 4.5vw, 52px) clamp(24px, 4vw, 52px);
}
.nx-values--plain .nx-values__grid { }

/* ---------------------------------------------------------- About row --- */

.nx-about {
  background: #FFF;
  border-radius: var(--nx-radius);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.nx-about__text {
  padding: clamp(30px, 4.5vw, 52px);
  display: flex; flex-direction: column; justify-content: center;
}
.nx-kicker {
  font-size: 12.5px; font-weight: 700; letter-spacing: .18em;
  color: var(--nx-brand-ink); margin-bottom: 14px; display: block;
}
.nx-about__title {
  font-size: clamp(26px, 4.4vw, 36px);
  line-height: 1.1; letter-spacing: -.03em; font-weight: 800;
  margin: 0 0 14px;
}
.nx-about__lead {
  font-size: clamp(15px, 2vw, 16px);
  line-height: 1.7; color: var(--nx-muted);
  margin: 0 0 24px; max-width: 46ch; text-wrap: pretty;
}
.nx-about__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.nx-about__media { min-height: clamp(240px, 40vw, 420px); background: var(--nx-soft-2); }
.nx-about__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ----------------------------------------------------------- Post card --- */

.nx-bgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: 16px;
}
.nx-bcard {
  background: #FFF;
  border-radius: 18px;
  padding: 14px 16px 22px;
  display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
}
.nx-bcard:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(24,22,36,.09); color: var(--nx-ink); }
.nx-bcard__media {
  border-radius: 14px; aspect-ratio: 16/10;
  background: var(--nx-soft-2); margin-bottom: 16px; overflow: hidden;
}
.nx-bcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-bcard__meta { font-size: 12.5px; font-weight: 700; color: var(--nx-brand-ink); }
.nx-bcard__title {
  font-size: clamp(17px, 2.2vw, 19px);
  line-height: 1.3; font-weight: 700;
  margin-top: 10px; text-wrap: pretty;
  color: var(--nx-ink);
}
.nx-bcard__lead { font-size: 14px; color: var(--nx-muted-2); line-height: 1.6; margin-top: 8px; }

/* --------------------------------------------------------- Newsletter --- */

.nx-news {
  background: var(--nx-ink);
  border-radius: var(--nx-radius);
  padding: clamp(30px, 4.5vw, 48px) clamp(24px, 4vw, 52px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  color: #FFF;
}
.nx-news__copy { min-width: 0; }
.nx-news__title {
  font-size: clamp(24px, 4vw, 30px);
  line-height: 1.2; letter-spacing: -.02em; font-weight: 800;
  margin: 0 0 10px;
}
.nx-news__text { font-size: 15px; color: #9B9AA6; margin: 0; }
.nx-news__form,
.nx-news__form .wpcf7,
.nx-news__form .nx-news__cf7 { display: block; }
.nx-news__form .wpcf7-form,
.nx-news__form form { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.nx-news__form input[type="email"],
.nx-news__form input[type="text"] {
  flex: 1 1 200px; min-width: 0;
  border: 0; outline: 0;
  background: #FFF;
  border-radius: 999px;
  padding: 16px 22px;
  font-size: 14.5px;
  color: var(--nx-ink);
}
.nx-news__form button,
.nx-news__form input[type="submit"] {
  flex: 0 0 auto;
  border: 0; cursor: pointer;
  background: var(--nx-brand); color: #FFF;
  border-radius: 999px;
  padding: 16px 30px;
  font-size: 14.5px; font-weight: 700;
  white-space: nowrap;
  transition: background .18s ease;
}
.nx-news__form button:hover,
.nx-news__form input[type="submit"]:hover { background: var(--nx-brand-dk); }
.nx-news__form .wpcf7-form-control-wrap { flex: 1 1 200px; min-width: 0; display: block; }
.nx-news__form .wpcf7-form-control-wrap input { width: 100%; }
.nx-news .wpcf7 form .wpcf7-response-output {
  flex: 1 0 100%;
  margin: 8px 0 0; border: 0; padding: 0;
  color: var(--nx-mint-3); font-size: 13px;
}

/*
 * Zgoda przy zapisie do newslettera. Sekcja stoi na ciemnym tle, więc checkbox
 * i tekst mają własne kolory — te z jasnych formularzy byłyby tu nieczytelne.
 */
.nx-news__form .nx-consent {
  flex: 1 0 100%;
  margin: 4px 0 0;
}
.nx-news__form .wpcf7-list-item { margin: 0; }
.nx-news__form .wpcf7-acceptance label {
  display: flex; align-items: flex-start; gap: 10px;
  cursor: pointer;
}
.nx-news__form .wpcf7-acceptance input[type="checkbox"] {
  flex: none;
  width: 18px; height: 18px;
  margin: 1px 0 0;
  accent-color: var(--nx-brand);
  cursor: pointer;
}
.nx-news__form .wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 12.5px; line-height: 1.55;
  color: var(--nx-mint-3);
}
.nx-news__form .wpcf7-acceptance a {
  color: #FFF; font-weight: 600;
  text-decoration: underline; text-underline-offset: 2px;
}
.nx-news__form .wpcf7-acceptance a:hover { color: var(--nx-mint-2); }
.nx-news__form .wpcf7-not-valid-tip { color: var(--nx-mint-2); }

/* ------------------------------------------------------- Popup zapisu --- */

/*
 * Popup korzysta z tego samego formularza co sekcja na stronie głównej, więc
 * pod spodem dostaje klasy `.nx-news__*` i tylko układ jest inny: jedna kolumna
 * i ciemna karta na środku ekranu.
 */
.nx-popup {
  position: fixed; inset: 0;
  z-index: 120;
  display: flex; align-items: center; justify-content: center;
  padding: var(--nx-gutter);
}
.nx-popup[hidden] { display: none; }
.nx-popup__backdrop {
  position: absolute; inset: 0;
  background: rgba(24, 22, 36, .55);
  animation: nx-popup-fade .2s ease both;
}
.nx-popup__box {
  position: relative;
  width: min(100%, 460px);
  max-height: calc(100dvh - 2 * var(--nx-gutter));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--nx-ink);
  color: #FFF;
  border-radius: var(--nx-radius);
  box-shadow: 0 24px 60px rgba(24, 22, 36, .38);
  animation: nx-popup-in .24s cubic-bezier(.22, .61, .36, 1) both;
}
.nx-popup__close {
  position: absolute; top: 12px; right: 12px;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border: 0; cursor: pointer;
  border-radius: 999px;
  background: rgba(255, 255, 255, .14);
  color: #FFF;
  transition: background .16s ease;
  z-index: 2;
}
.nx-popup__close:hover { background: rgba(255, 255, 255, .28); }
.nx-popup__media { margin: 0; }
.nx-popup__media img {
  display: block; width: 100%; height: 170px;
  object-fit: cover;
  border-radius: var(--nx-radius) var(--nx-radius) 0 0;
}
.nx-popup__body { padding: clamp(24px, 5vw, 32px); }

/* W popupie kolumny sekcji układają się jedna pod drugą. */
.nx-popup .nx-news__copy { margin-bottom: 20px; }
.nx-popup .nx-news__title { font-size: clamp(21px, 5vw, 25px); }
.nx-popup .nx-news__form .wpcf7-form,
.nx-popup .nx-news__form form { gap: 10px; }
.nx-popup .nx-news__form input[type="email"],
.nx-popup .nx-news__form input[type="text"] { flex: 1 1 100%; }
.nx-popup .nx-news__form button,
.nx-popup .nx-news__form input[type="submit"] { flex: 1 1 100%; }

@keyframes nx-popup-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes nx-popup-in {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nx-popup__box, .nx-popup__backdrop { animation: none; }
}

/* --------------------------------------------------------- Shop / archive --- */

.nx-shop {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 16px;
  align-items: start;
}
.nx-shop__side {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: start;
}
.nx-widget { background: #FFF; border-radius: 18px; padding: 20px; }
.nx-widget--cats { padding: 20px 20px 22px; }
.nx-widget__head {
  font-size: 12.5px; font-weight: 700; letter-spacing: .14em;
  color: var(--nx-muted-3); margin-bottom: 12px;
}
.nx-widget--price .nx-widget__head { margin-bottom: 18px; }
.nx-catlist { display: flex; flex-direction: column; gap: 2px; }
.nx-catlist a {
  display: flex; justify-content: space-between; align-items: center;
  gap: 10px; padding: 11px 14px;
  border-radius: 12px;
  font-size: 14.5px; font-weight: 500;
  color: var(--nx-ink);
  transition: background .18s ease;
}
.nx-catlist a:hover { background: var(--nx-soft); }
.nx-catlist a .nx-count { font-size: 12px; opacity: .7; }
.nx-catlist a.is-active {
  background: var(--nx-brand); color: #FFF; font-weight: 700;
}
.nx-catlist a.is-active:hover { background: var(--nx-brand-dk); }

.nx-price-slider {
  height: 4px;
  background: #EDEDF0;
  border-radius: 999px;
  position: relative;
  margin: 0 7px;
}
.nx-price-slider__fill {
  position: absolute; top: 0;
  height: 4px;
  background: var(--nx-brand);
  border-radius: 999px;
}

/* Dwa suwaki nałożone na wspólny tor — klikalne są tylko uchwyty. */
.nx-price-slider__input {
  position: absolute;
  top: -6px; left: -7px;
  width: calc(100% + 14px);
  height: 16px;
  margin: 0;
  padding: 0;
  background: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}
.nx-price-slider__input:focus { outline: 0; }
.nx-price-slider__input::-webkit-slider-runnable-track { height: 16px; background: transparent; border: 0; }
.nx-price-slider__input::-moz-range-track { height: 16px; background: transparent; border: 0; }
.nx-price-slider__input::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--nx-brand);
  border: 0;
  cursor: pointer;
  pointer-events: auto;
  margin-top: 1px;
  box-shadow: 0 1px 3px rgba(24, 22, 36, .25);
}
.nx-price-slider__input::-moz-range-thumb {
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--nx-brand);
  border: 0;
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 0 1px 3px rgba(24, 22, 36, .25);
}
.nx-price-slider__input:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--nx-brand); outline-offset: 2px; }
.nx-price-slider__input:focus-visible::-moz-range-thumb { outline: 2px solid var(--nx-brand); outline-offset: 2px; }

.nx-price-values {
  display: flex; justify-content: space-between;
  font-size: 13px; color: var(--nx-muted); margin-top: 16px;
}
.nx-price-apply {
  margin-top: 14px;
  width: 100%;
  border: 1px solid var(--nx-line-3);
  background: #FFF;
  color: var(--nx-ink);
  border-radius: 999px;
  padding: 10px 18px;
  font-size: 13.5px; font-weight: 600;
  cursor: pointer;
  transition: background .18s ease;
}
.nx-price-apply:hover { background: var(--nx-soft); }
.nx-price-clear {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-size: 12.5px; font-weight: 600;
  color: var(--nx-muted-3);
}
.nx-price-clear:hover { color: var(--nx-brand-ink); }

.nx-promo { background: var(--nx-mint); border-radius: 18px; padding: 20px; }
.nx-promo__title { font-size: 16px; font-weight: 700; margin-bottom: 6px; }
.nx-promo__text { font-size: 13.5px; color: var(--nx-muted); line-height: 1.55; margin-bottom: 14px; }

.nx-shopbar {
  background: #FFF; border-radius: 18px;
  padding: 12px 18px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-bottom: 16px; flex-wrap: wrap;
}
.nx-shopbar__count { font-size: 13.5px; color: var(--nx-muted-3); }
.nx-shopbar__query {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--nx-mint); color: var(--nx-brand-ink);
  border-radius: 999px; padding: 7px 14px;
  font-size: 13px; font-weight: 600;
}
.nx-shopbar__query strong { font-weight: 800; }
.nx-shopbar__query a { color: var(--nx-brand-ink); opacity: .65; font-size: 12px; }
.nx-shopbar__query a:hover { opacity: 1; }
.nx-shopbar__sort { font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.nx-shopbar__sort select {
  border: 0; background: transparent; font-size: 13.5px; font-weight: 600;
  color: var(--nx-ink); cursor: pointer; outline: 0;
}

.nx-pagination,
.nx-pagination .nav-links {
  display: flex; justify-content: center; gap: 8px;
  font-size: 14px; font-weight: 600; flex-wrap: wrap;
}
.nx-pagination { margin-top: 30px; }
.nx-pagination .nav-links { width: 100%; }
.nx-pagination .page-numbers {
  padding: 11px 18px; background: #FFF; border-radius: 999px;
  color: var(--nx-ink); display: inline-block;
}
.nx-pagination .page-numbers.current,
.nx-pagination .page-numbers:hover { background: var(--nx-brand); color: #FFF; }

/* -------------------------------------------------------- Single product --- */

.nx-crumbs {
  font-size: 13px; color: var(--nx-muted-3);
  display: flex; gap: 7px; align-items: center; flex-wrap: wrap;
}
.nx-crumbs a { color: var(--nx-muted-3); transition: color .18s ease; }
.nx-crumbs a:hover { color: var(--nx-brand-ink); }
.nx-crumbs .nx-current { color: var(--nx-ink); font-weight: 600; }

.nx-product { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.nx-gallery { background: #FFF; border-radius: var(--nx-radius); padding: clamp(12px, 2vw, 20px); }

.nx-gallery__stage {
  position: relative;
  border-radius: 16px;
  aspect-ratio: 1/1;
  background: var(--nx-soft-2);
  overflow: hidden;
  touch-action: pan-y;
}
.nx-gallery__track {
  display: flex;
  height: 100%;
  transition: transform .45s cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}
.nx-gallery__track.is-dragging { transition: none; }
.nx-gallery__slide {
  flex: 0 0 100%;
  height: 100%;
  user-select: none;
}
.nx-gallery__slide img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  -webkit-user-drag: none;
  user-select: none;
  pointer-events: none;
}

.nx-gallery__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px; height: 42px;
  border-radius: 999px;
  border: 1px solid var(--nx-line-3);
  background: rgba(255, 255, 255, .94);
  color: var(--nx-ink);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(24, 22, 36, .1);
  transition: background .18s ease, opacity .18s ease, transform .18s ease;
  z-index: 2;
}
.nx-gallery__nav:hover:not(:disabled) { background: #FFF; transform: translateY(-50%) scale(1.06); }
.nx-gallery__nav:disabled { opacity: .3; cursor: default; }
.nx-gallery__nav--prev { left: 12px; }
.nx-gallery__nav--next { right: 12px; }

.nx-gallery__counter {
  position: absolute;
  right: 12px; bottom: 12px;
  background: rgba(24, 22, 36, .72);
  color: #FFF;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 12px; font-weight: 600;
  letter-spacing: .02em;
  z-index: 2;
}

.nx-gallery__thumbs {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 10px; margin-top: 10px;
}
.nx-gallery__thumb {
  border-radius: 12px; aspect-ratio: 1/1;
  background: var(--nx-soft-2); overflow: hidden;
  border: 0; padding: 0; cursor: pointer; display: block;
  transition: outline-color .18s ease, opacity .18s ease;
  outline: 2px solid transparent; outline-offset: -2px;
  opacity: .72;
}
.nx-gallery__thumb:hover { opacity: 1; }
.nx-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-gallery__thumb.is-active { outline-color: var(--nx-brand); opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .nx-gallery__track { transition: none; }
}

.nx-summary {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(24px, 3.6vw, 38px) clamp(20px, 3.6vw, 40px);
}
.nx-summary__top {
  display: flex; gap: 10px; align-items: center;
  margin-bottom: 14px; flex-wrap: wrap;
}
.nx-chip {
  background: var(--nx-mint); color: var(--nx-brand-ink);
  border-radius: 999px; padding: 6px 14px;
  font-size: 12px; font-weight: 700;
}
.nx-summary__sku { font-size: 12.5px; color: var(--nx-muted-3); }
.nx-summary__title {
  font-size: clamp(27px, 5vw, 40px);
  letter-spacing: -.03em; font-weight: 800;
  margin: 0 0 10px;
}
.nx-summary__rating {
  font-size: 13.5px; color: var(--nx-muted-2); margin-bottom: 18px;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.nx-summary__rating .nx-stars { color: var(--nx-brand-ink); }
.nx-summary__rating a { color: var(--nx-muted-2); }
.nx-summary__rating a:hover { color: var(--nx-brand-ink); }
.nx-summary__price {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.2;
  color: var(--nx-brand-ink);
  margin-bottom: 18px;
}
.nx-summary__price del {
  font-size: .72em;
  font-weight: 600;
  color: var(--nx-muted-3);
  margin-right: 10px;
  text-decoration-thickness: 1px;
}
.nx-summary__price ins { text-decoration: none; color: var(--nx-brand-ink); }
.nx-summary__price .woocommerce-Price-amount { white-space: nowrap; }
/* Duplikat ceny wewnątrz formularza wariantów — pokazujemy tylko cenę główną. */
.nx-summary .woocommerce-variation-price { display: none; }
.nx-summary .woocommerce-variation-availability { font-size: 13.5px; color: var(--nx-brand-ink); font-weight: 600; margin-bottom: 12px; }
.nx-summary .woocommerce-variation-availability p { margin: 0; }

.nx-summary__excerpt {
  font-size: clamp(15px, 2vw, 16px);
  line-height: 1.65; color: var(--nx-muted);
  margin: 0 0 22px; max-width: 50ch; text-wrap: pretty;
}
.nx-spec {
  background: var(--nx-soft-3);
  border-radius: 14px;
  padding: 16px 18px;
  font-size: 13.5px; line-height: 2;
  color: var(--nx-muted-2);
  margin-bottom: 22px;
}
.nx-spec__row { display: flex; justify-content: space-between; gap: 12px; }
.nx-spec__row span { color: var(--nx-ink); font-weight: 600; }
.nx-spec__row--accent span { color: var(--nx-brand-ink); font-weight: 600; }

.nx-varlabel { font-size: 13.5px; font-weight: 700; margin-bottom: 10px; }
.nx-variants {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px; margin-bottom: 22px;
}
.nx-variant {
  border: 1px solid var(--nx-line-3);
  border-radius: 14px;
  padding: 14px 20px;
  cursor: pointer; background: #FFF;
  text-align: left; display: block; width: 100%;
}
.nx-variant__name { font-size: 15px; font-weight: 600; color: var(--nx-ink); }
.nx-variant__price { font-size: 13px; color: var(--nx-muted-2); margin-top: 4px; display: block; }
.nx-variant__price del { color: var(--nx-muted-3); font-size: .85em; margin-right: 5px; }
.nx-variant__price ins { text-decoration: none; }
.nx-variant__price .amount { white-space: nowrap; }
.nx-variant.is-active {
  border: 2px solid var(--nx-brand);
  background: var(--nx-mint);
}
.nx-variant.is-active .nx-variant__name { font-weight: 700; }
.nx-variant.is-active .nx-variant__price { color: var(--nx-brand-ink); font-weight: 600; }

.nx-addrow {
  display: flex; align-items: stretch; gap: 10px;
  margin-bottom: 18px; flex-wrap: wrap;
}
.nx-qty--lg {
  border: 1px solid var(--nx-line-3);
  border-radius: 999px;
  display: flex; align-items: center; flex: none;
}
.nx-qty--lg button { padding: 0 16px; color: var(--nx-muted-3); font-size: 17px; background: none; border: 0; cursor: pointer; }
.nx-qty--lg input {
  font-size: 15px; font-weight: 600; width: 22px;
  text-align: center; border: 0; outline: 0; background: transparent;
  -moz-appearance: textfield; padding: 14px 0;
}
.nx-qty--lg input::-webkit-outer-spin-button,
.nx-qty--lg input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nx-add-btn {
  flex: 1 1 220px;
  border: 0; cursor: pointer;
  background: var(--nx-brand); color: #FFF;
  border-radius: 999px;
  padding: 17px;
  font-size: clamp(14px, 2vw, 15.5px); font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  transition: background .18s ease;
}
.nx-add-btn svg { flex: none; }
.nx-add-btn:hover { background: var(--nx-brand-dk); color: #FFF; }

.nx-badges { display: flex; gap: 8px; font-size: 12.5px; color: var(--nx-muted); flex-wrap: wrap; }
.nx-badges span { background: var(--nx-soft-3); border-radius: 999px; padding: 9px 15px; }

.nx-tabs-card {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(22px, 3.4vw, 32px) clamp(20px, 3.6vw, 40px) clamp(28px, 4vw, 40px);
}
.nx-tabs {
  display: flex; gap: 8px; margin-bottom: 26px;
  font-size: 14px; font-weight: 600; flex-wrap: wrap;
  list-style: none; padding: 0;
}
.nx-tabs button, .nx-tabs a {
  background: var(--nx-soft-2); border: 0;
  border-radius: 999px; padding: 10px 18px;
  color: var(--nx-muted); cursor: pointer;
  font-size: 14px; font-weight: 600;
  transition: background .18s ease;
}
.nx-tabs button:hover, .nx-tabs a:hover { background: #E4E4E9; color: var(--nx-muted); }
.nx-tabs .is-active button, .nx-tabs button.is-active, .nx-tabs a.is-active {
  background: var(--nx-brand); color: #FFF;
}
.nx-tabpanel { display: none; }
.nx-tabpanel.is-active { display: block; }

.nx-desc-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(24px, 4vw, 56px); }
.nx-desc p {
  font-size: clamp(15px, 2vw, 16.5px);
  line-height: 1.75; margin: 0 0 18px;
  max-width: 64ch; text-wrap: pretty;
}
.nx-desc p + p { color: var(--nx-muted); margin-bottom: 22px; }
.nx-note {
  background: var(--nx-soft-3); border-radius: 14px;
  padding: 18px 20px;
  font-size: 14px; line-height: 1.65; color: var(--nx-muted-2);
  max-width: 64ch;
}
.nx-analysis { background: var(--nx-soft-3); border-radius: 16px; padding: 22px 24px; }
.nx-analysis__head {
  font-size: 12.5px; font-weight: 700; letter-spacing: .14em;
  color: var(--nx-brand-ink); margin-bottom: 14px;
}
.nx-analysis__rows { font-size: 13.5px; line-height: 2.1; color: var(--nx-muted-2); }
.nx-analysis__rows > div { display: flex; justify-content: space-between; gap: 12px; }
.nx-analysis__rows span { color: var(--nx-ink); font-weight: 600; }
.nx-analysis__rows .nx-hl { color: var(--nx-brand-ink); font-weight: 700; }
.nx-analysis__cta {
  display: block; margin-top: 18px;
  background: var(--nx-brand); color: #FFF;
  border-radius: 999px; padding: 13px;
  text-align: center; font-size: 13.5px; font-weight: 600;
  transition: background .18s ease;
}
.nx-analysis__cta:hover { background: var(--nx-brand-dk); color: #FFF; }

/* ------------------------------------------------------------ Opinie --- */

/* Gwiazdki tylko do odczytu — wspólne dla podsumowania i listy opinii.
   Warstwa spodnia to puste gwiazdki, wierzchnia przycięta do wartości oceny. */
.star-rating {
  position: relative;
  display: inline-block;
  width: 5.6em;
  height: 1.15em;
  line-height: 1.15;
  overflow: hidden;
  vertical-align: middle;
  font-size: 15px;
  letter-spacing: .12em;
  white-space: nowrap;
  color: var(--nx-brand-ink);
  flex: none;
}
.star-rating::before {
  content: "★★★★★";
  position: absolute;
  top: 0; left: 0;
  color: #D9D8DE;
}
.star-rating span {
  position: absolute;
  top: 0; left: 0;
  overflow: hidden;
  padding-top: 1.5em;
  height: 0;
}
.star-rating span::before {
  content: "★★★★★";
  position: absolute;
  top: 0; left: 0;
}

.nx-reviews { font-size: 15px; color: var(--nx-ink); }
.nx-reviews #comments { margin-bottom: clamp(28px, 4vw, 40px); }
.nx-reviews .woocommerce-Reviews-title {
  font-size: clamp(19px, 3vw, 22px);
  letter-spacing: -.02em;
  font-weight: 800;
  margin: 0 0 18px;
}
.nx-reviews .woocommerce-noreviews,
.nx-reviews .woocommerce-verification-required,
.nx-reviews .must-log-in {
  background: var(--nx-soft-3);
  border-radius: 14px;
  padding: 16px 20px;
  font-size: 14.5px;
  color: var(--nx-muted-2);
  margin: 0 0 24px;
}
.nx-reviews .must-log-in a,
.nx-reviews .woocommerce-noreviews a { color: var(--nx-brand-ink); font-weight: 600; }

/* --- lista opinii --- */
.nx-reviews .commentlist {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nx-reviews .commentlist li { list-style: none; }
.nx-reviews .commentlist .children {
  list-style: none;
  margin: 14px 0 0 clamp(16px, 4vw, 46px);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nx-reviews .comment_container {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: var(--nx-soft-3);
  border-radius: 16px;
  padding: 20px 22px;
}
.nx-reviews .comment_container img.avatar {
  width: 46px; height: 46px;
  border-radius: 50%;
  flex: none;
  background: var(--nx-soft-2);
}
.nx-reviews .comment-text { flex: 1; min-width: 0; }
.nx-reviews .comment-text .star-rating { margin-bottom: 8px; }
.nx-reviews .comment-text .meta {
  font-size: 13.5px;
  color: var(--nx-muted-3);
  margin: 0 0 10px;
  line-height: 1.5;
}
.nx-reviews .woocommerce-review__author {
  font-size: 15px;
  font-weight: 700;
  color: var(--nx-ink);
}
.nx-reviews .woocommerce-review__verified {
  font-style: normal;
  background: var(--nx-mint);
  color: var(--nx-brand-ink);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 11.5px;
  font-weight: 700;
  margin-left: 4px;
  white-space: nowrap;
}
.nx-reviews .woocommerce-review__dash { margin: 0 2px; opacity: .6; }
.nx-reviews .woocommerce-review__awaiting-approval {
  font-style: normal;
  color: var(--nx-brand-ink);
  font-weight: 600;
  font-size: 13.5px;
}
.nx-reviews .description p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--nx-ink-2);
  margin: 0 0 10px;
  max-width: 68ch;
}
.nx-reviews .description p:last-child { margin-bottom: 0; }

.nx-reviews .woocommerce-pagination { margin: 0 0 8px; }
.nx-reviews .woocommerce-pagination ul {
  display: flex; justify-content: center; gap: 8px;
  list-style: none; margin: 0; padding: 0;
  font-size: 14px; font-weight: 600;
}
.nx-reviews .woocommerce-pagination li { list-style: none; }
.nx-reviews .woocommerce-pagination a,
.nx-reviews .woocommerce-pagination span {
  display: inline-block;
  padding: 9px 16px;
  border-radius: 999px;
  background: #FFF;
  color: var(--nx-ink);
}
.nx-reviews .woocommerce-pagination .current,
.nx-reviews .woocommerce-pagination a:hover {
  background: var(--nx-brand); color: #FFF;
}

/* --- formularz opinii --- */
.nx-reviews #review_form_wrapper {
  border-top: 1px solid var(--nx-line);
  padding-top: clamp(24px, 3.5vw, 32px);
}
.nx-reviews .comment-reply-title {
  display: block;
  font-size: clamp(17px, 2.6vw, 20px);
  font-weight: 800;
  letter-spacing: -.02em;
  margin-bottom: 18px;
}
.nx-reviews .comment-reply-title small { font-size: 13.5px; font-weight: 600; margin-left: 10px; }
.nx-reviews .comment-reply-title small a { color: var(--nx-brand-ink); }

.nx-reviews .comment-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.nx-reviews .comment-form > p,
.nx-reviews .comment-form > .comment-form-rating { margin: 0; grid-column: 1 / -1; }
/* wyższa specyficzność niż reguła `.comment-form > p` powyżej */
.nx-reviews .comment-form > .comment-form-author,
.nx-reviews .comment-form > .comment-form-email { grid-column: auto; }

.nx-reviews .comment-form label {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  margin-bottom: 7px;
  color: var(--nx-ink);
}
.nx-reviews .comment-form .required { color: var(--nx-danger); text-decoration: none; }
.nx-reviews .comment-form input[type="text"],
.nx-reviews .comment-form input[type="email"],
.nx-reviews .comment-form input[type="url"],
.nx-reviews .comment-form textarea,
.nx-reviews .comment-form select {
  width: 100%;
  border: 1px solid var(--nx-line-2);
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 15px;
  background: #FFF;
  color: var(--nx-ink);
  outline: 0;
  font-family: inherit;
}
.nx-reviews .comment-form textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
.nx-reviews .comment-form input:focus,
.nx-reviews .comment-form textarea:focus,
.nx-reviews .comment-form select:focus { border-color: var(--nx-brand); }
.nx-reviews .comment-form-comment { grid-column: 1 / -1; }

.nx-reviews .comment-form-cookies-consent {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.nx-reviews .comment-form-cookies-consent input { margin-top: 3px; accent-color: var(--nx-brand); flex: none; }
.nx-reviews .comment-form-cookies-consent label {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--nx-muted);
}

.nx-reviews .form-submit { grid-column: 1 / -1; margin: 0; }
.nx-reviews .form-submit input[type="submit"] {
  background: var(--nx-brand);
  color: #FFF;
  border: 0;
  border-radius: 999px;
  padding: 15px 32px;
  font-size: 14.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background .18s ease;
}
.nx-reviews .form-submit input[type="submit"]:hover { background: var(--nx-brand-dk); }

/* --- wybór oceny gwiazdkami --- */
.nx-reviews .comment-form-rating label[for="rating"] { margin-bottom: 8px; }
.nx-reviews p.stars {
  margin: 0;
  display: inline-flex;
  gap: 2px;
}
.nx-reviews p.stars span { display: inline-flex; gap: 2px; }
.nx-reviews p.stars a {
  position: relative;
  display: inline-block;
  width: 30px;
  height: 30px;
  text-indent: -9999px;
  overflow: hidden;
  text-decoration: none;
}
.nx-reviews p.stars a::before {
  content: "★";
  position: absolute;
  inset: 0;
  text-indent: 0;
  font-size: 27px;
  line-height: 30px;
  text-align: center;
  color: #D9D8DE;
  transition: color .15s ease;
}
/* stan wybrany */
.nx-reviews p.stars.selected a::before { color: var(--nx-brand-ink); }
.nx-reviews p.stars.selected a.active ~ a::before { color: #D9D8DE; }
/* podgląd przy najechaniu ma pierwszeństwo nad stanem wybranym */
.nx-reviews p.stars:hover a::before { color: var(--nx-brand-ink); }
.nx-reviews p.stars a:hover ~ a::before { color: #D9D8DE; }
.nx-reviews p.stars a:focus-visible { outline: 2px solid var(--nx-brand); outline-offset: 2px; border-radius: 4px; }
/* pole wyboru widoczne, gdy JavaScript nie zadziała */
.nx-reviews #rating { max-width: 240px; }

@media (max-width: 699px) {
  .nx-reviews .comment-form { grid-template-columns: 1fr; }
  .nx-reviews .comment_container { padding: 18px; gap: 13px; }
  .nx-reviews .comment_container img.avatar { width: 38px; height: 38px; }
}

/* ------------------------------------------ Informacje dodatkowe --- */

.nx-attributes .woocommerce-product-attributes,
.nx-attributes table.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: 14.5px;
}
.nx-attributes .woocommerce-product-attributes-item,
.nx-attributes table.shop_attributes tr { border-bottom: 1px solid var(--nx-line); }
.nx-attributes .woocommerce-product-attributes-item:last-child,
.nx-attributes table.shop_attributes tr:last-child { border-bottom: 0; }

.nx-attributes .woocommerce-product-attributes-item__label,
.nx-attributes table.shop_attributes th {
  width: 34%;
  padding: 15px 20px 15px 0;
  text-align: left;
  vertical-align: top;
  font-weight: 600;
  color: var(--nx-muted);
  font-style: normal;
}
.nx-attributes .woocommerce-product-attributes-item__value,
.nx-attributes table.shop_attributes td {
  padding: 15px 0;
  vertical-align: top;
  color: var(--nx-ink);
  font-weight: 600;
  font-style: normal;
}
.nx-attributes .woocommerce-product-attributes-item__value p,
.nx-attributes table.shop_attributes td p {
  margin: 0;
  font-size: inherit;
  line-height: 1.6;
  color: inherit;
}
.nx-attributes a { color: var(--nx-brand-ink); }

/* Na wąskich ekranach etykieta nad wartością */
@media (max-width: 559px) {
  .nx-attributes .woocommerce-product-attributes,
  .nx-attributes table.shop_attributes,
  .nx-attributes tbody,
  .nx-attributes tr,
  .nx-attributes th,
  .nx-attributes td { display: block; width: auto; }

  .nx-attributes .woocommerce-product-attributes-item,
  .nx-attributes table.shop_attributes tr { padding: 14px 0; }

  .nx-attributes .woocommerce-product-attributes-item__label,
  .nx-attributes table.shop_attributes th {
    padding: 0 0 4px;
    font-size: 12.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--nx-muted-3);
  }
  .nx-attributes .woocommerce-product-attributes-item__value,
  .nx-attributes table.shop_attributes td { padding: 0; font-size: 15px; }
}

.nx-related__title {
  font-size: clamp(21px, 3.6vw, 26px);
  letter-spacing: -.02em; font-weight: 800; margin: 0 0 18px;
}
.nx-pcard--mini .nx-pcard__media { margin-bottom: 12px; }
.nx-pcard--mini .nx-pcard__name { font-size: clamp(14.5px, 1.4vw, 16px); }
/* margin-top:auto trzyma cenę i przycisk przy dole — kafelki w rzędzie
   kończą się równo mimo różnej długości nazw i opisów. */
.nx-pcard--mini .nx-pcard__foot { margin-top: auto; padding-top: 12px; }
.nx-pcard--mini .nx-pcard__price { font-size: clamp(15.5px, 1.6vw, 17px); }

/* -------------------------------------------------------------- Cart --- */

.nx-page-title {
  font-size: clamp(26px, 5vw, 36px);
  letter-spacing: -.03em; font-weight: 800;
  margin: 0 0 20px;
}
.nx-cart-layout { display: grid; grid-template-columns: 1fr 370px; gap: 16px; align-items: start; }
.nx-cart-box {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(14px, 2.4vw, 20px) clamp(18px, 3vw, 28px) 24px;
}
.nx-cart-head {
  padding: 10px 0 14px;
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  color: var(--nx-muted-3);
  display: grid; grid-template-columns: 1fr 120px 110px 30px;
  border-bottom: 1px solid var(--nx-line);
}
.nx-cart-row {
  padding: 18px 0;
  border-bottom: 1px solid var(--nx-line);
  display: grid; grid-template-columns: 1fr 120px 110px 30px;
  align-items: center; gap: 14px;
}
.nx-cart-row__prod { display: flex; gap: 14px; align-items: center; min-width: 0; }
.nx-cart-row__img {
  width: clamp(62px, 14vw, 78px); height: clamp(62px, 14vw, 78px);
  border-radius: 14px; object-fit: cover;
  background: var(--nx-soft-2); flex: none;
}
.nx-cart-row__name { font-size: 15px; font-weight: 700; }
.nx-cart-row__meta { font-size: 12.5px; color: var(--nx-muted-3); margin-top: 5px; }
/* Licznik jest ten sam co na karcie produktu (.nx-qty--lg) — bez własnej ramki. */
.nx-cart-row__qty { display: flex; align-items: center; }
.nx-cart-row__qty .nx-qty--lg button { padding: 0 12px; font-size: 16px; }
.nx-cart-row__qty .nx-qty--lg input { padding: 11px 0; font-size: 14px; }
.nx-cart-row__sum { font-size: 16px; font-weight: 700; text-align: right; white-space: nowrap; }
.nx-cart-row__rm { display: flex; justify-content: flex-end; }

.nx-cart-foot {
  padding: 20px 0 0;
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px; flex-wrap: wrap;
}
.nx-cart-foot__back { font-size: 14px; color: var(--nx-muted); font-weight: 600; }
.nx-coupon { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; }
/* W stopce koszyka kupon zajmuje tylko tyle, ile potrzeba — pole nie rozciąga
   się na całą wolną szerokość, ale wciąż mieści się z przyciskiem w jednej linii. */
.nx-cart-foot .nx-coupon { flex: 0 1 auto; }
.nx-cart-foot .nx-coupon__field { flex: 0 1 190px; }
.nx-coupon button { flex: 0 0 auto; }
.nx-coupon__field {
  flex: 1 1 140px;
  min-width: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.nx-coupon input {
  border: 1px solid var(--nx-line-3); border-radius: 999px;
  padding: 12px 20px; font-size: 13.5px; color: var(--nx-ink);
  width: 100%; min-width: 0; outline: 0; background: #FFF;
}
.nx-coupon input::placeholder { color: var(--nx-muted-3); }
.nx-coupon button {
  background: var(--nx-soft-2); border: 0; border-radius: 999px;
  padding: 12px 22px; font-size: 13.5px; font-weight: 600;
  white-space: nowrap; cursor: pointer; color: var(--nx-ink);
  transition: background .18s ease;
}
.nx-coupon button:hover { background: #E4E4E9; }

/* Komunikat o błędnym kuponie: WooCommerce wstrzykuje go obok pola —
   ustawiamy na pełną szerokość pod polem i nadajemy formę czytelnego alertu. */
.nx-coupon .coupon-error-notice {
  display: block;
  width: 100%;
  background: #FBECEA;
  color: var(--nx-danger);
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.5;
}
.nx-coupon input.has-error { border-color: var(--nx-danger); }

.nx-totals { background: #FFF; border-radius: var(--nx-radius); padding: 24px 26px; }
.nx-totals__title { font-size: 18px; font-weight: 800; margin-bottom: 16px; }
.nx-totals__rows { font-size: 14.5px; line-height: 2.3; color: var(--nx-muted-2); }
.nx-totals__rows > div { display: flex; justify-content: space-between; gap: 12px; }
.nx-totals__rows span { color: var(--nx-ink); font-weight: 600; white-space: nowrap; }
.nx-totals__rows .nx-free { color: var(--nx-brand-ink); font-weight: 700; }
.nx-totals__sum {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  border-top: 1px solid var(--nx-line);
  margin-top: 14px; padding-top: 16px;
}
.nx-totals__sum-label { font-size: 16px; font-weight: 700; }
.nx-totals__sum-value { font-size: clamp(22px, 3.4vw, 26px); font-weight: 800; white-space: nowrap; }

/* WooCommerce dokleja do sumy dopisek „(zawiera X VAT)”. Ma być drobną
   notką pod kwotą, a nie częścią samej sumy. */
.nx-totals__sum-value,
.nx-order__total-value,
.nx-drawer__total-value {
  display: flex; flex-direction: column; align-items: flex-end;
}
.includes_tax,
small.tax_label {
  display: block;
  margin-top: 5px;
  max-width: 100%;
  font-size: 12px; font-weight: 500; line-height: 1.4;
  letter-spacing: 0;
  color: var(--nx-muted-3);
  text-align: right;
  white-space: normal;
}
.includes_tax small { font-size: inherit; color: inherit; }

/* Dopisek „z VAT / bez VAT” doklejany do cen w katalogu — zostaje w linii. */
.woocommerce-price-suffix {
  font-size: 12px; font-weight: 500; color: var(--nx-muted-3); white-space: nowrap;
}

.nx-totals__cta {
  display: block; background: var(--nx-brand); color: #FFF;
  border-radius: 999px; padding: 17px;
  text-align: center; font-size: 15px; font-weight: 700;
  margin-top: 20px; transition: background .18s ease;
}
.nx-totals__cta:hover { background: var(--nx-brand-dk); color: #FFF; }
.nx-freeship {
  background: var(--nx-mint); color: var(--nx-brand-ink);
  border-radius: 12px; padding: 12px 16px;
  font-size: 12.5px; font-weight: 600;
  margin-top: 12px; text-align: center;
}

/* ---------------------------------------------------------- Checkout --- */

.nx-coupon-bar {
  background: #FFF; border-radius: 14px;
  border-left: 4px solid var(--nx-brand);
  padding: 16px 20px;
  font-size: 14px; color: var(--nx-muted);
  margin-bottom: 16px;
}
.nx-coupon-bar a { color: var(--nx-brand-ink); font-weight: 600; }

.nx-checkout { display: grid; grid-template-columns: 1fr 420px; gap: 16px; align-items: start; }
.nx-checkout__left { display: flex; flex-direction: column; gap: 16px; }
.nx-panel {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(22px, 3.4vw, 30px) clamp(20px, 3.4vw, 32px);
}
.nx-panel__title { font-size: 18px; font-weight: 800; margin-bottom: 18px; }
.nx-panel__title--tight { margin-bottom: 14px; }

.nx-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.nx-field, .nx-fields > p { display: block; margin: 0; }
.nx-field--full { grid-column: 1/-1; }
/* Klasy układu WooCommerce zostają w znaczniku, bo wiszą na nich jego skrypty
   (przeliczanie zamówienia po zmianie adresu). O szerokości decyduje wyłącznie
   siatka motywu, więc na wszelki wypadek zdejmujemy im procentowe szerokości —
   gdyby arkusz sklepu kiedyś wrócił, rozjechałyby kolumny. */
.nx-fields > .form-row-first,
.nx-fields > .form-row-last,
.nx-fields > .form-row-wide { width: auto; float: none; }
.nx-label, .nx-fields label {
  font-size: 13.5px; font-weight: 600;
  display: block; margin-bottom: 7px;
}

/*
 * Pola wyboru w formularzach WooCommerce (np. własne „Chcę fakturę VAT”).
 * Reguły łapią je po typie pola, a nie po klasie, więc działają także dla
 * pól dopisywanych z pominięciem filtra motywu — wtedy PHP nie ma ich jak
 * oznaczyć, a i tak nie mogą zostać w siatce jako pół kolumny ani przejąć
 * wyglądu pola tekstowego.
 */
.nx-fields > .form-row.checkbox { grid-column: 1 / -1; }
.nx-fields label.checkbox {
  display: flex; align-items: center; gap: 10px;
  margin: 0;
  font-size: 14px; font-weight: 500; line-height: 1.45;
  color: var(--nx-ink-2);
  cursor: pointer;
}
/* :has() w osobnych regułach — w przeglądarce, która go nie zna, cała reguła
   przepada, a nie chcemy przy okazji stracić wariantów po klasie wyżej. */
.nx-fields > p:has(input[type="checkbox"]),
.nx-fields > p:has(input[type="radio"]) { grid-column: 1 / -1; }
.nx-fields label:has(> input[type="checkbox"]),
.nx-fields label:has(> input[type="radio"]) {
  display: flex; align-items: center; gap: 10px;
  margin: 0;
  font-size: 14px; font-weight: 500; line-height: 1.45;
  color: var(--nx-ink-2);
  cursor: pointer;
}
.nx-fields input[type="checkbox"],
.nx-fields input[type="radio"],
.nx-form input[type="checkbox"],
.nx-form input[type="radio"] {
  flex: none;
  width: 18px; height: 18px;
  margin: 0; padding: 0;
  border-radius: 5px;
  accent-color: var(--nx-brand);
  cursor: pointer;
}
.nx-fields input[type="radio"],
.nx-form input[type="radio"] { border-radius: 50%; }
.nx-req, .required { color: var(--nx-danger); text-decoration: none; }

.nx-input,
.nx-fields input[type="text"], .nx-fields input[type="email"],
.nx-fields input[type="tel"], .nx-fields input[type="password"],
.nx-fields select, .nx-fields textarea,
.nx-form input[type="text"], .nx-form input[type="email"],
.nx-form input[type="tel"], .nx-form textarea, .nx-form select {
  width: 100%;
  border: 1px solid var(--nx-line-2);
  border-radius: 10px;
  padding: 13px 14px;
  font-size: 15px;
  background: #FFF;
  color: var(--nx-ink);
  outline: 0;
}
.nx-fields textarea, .nx-form textarea { resize: vertical; }
.nx-input:focus, .nx-fields input:focus, .nx-fields textarea:focus,
.nx-form input:focus, .nx-form textarea:focus { border-color: var(--nx-brand); }
.nx-input + .nx-input { margin-top: 10px; }

/* Listy wyboru WooCommerce (kraj, województwo) podmienia select2 —
   nadajemy mu wygląd zwykłego pola motywu. */
.nx-fields .select2-container,
.nx-form .select2-container { width: 100% !important; }

.select2-container--default .select2-selection--single {
  height: auto;
  border: 1px solid var(--nx-line-2);
  border-radius: 10px;
  background: #FFF;
  padding: 13px 40px 13px 14px;
  outline: 0;
  transition: border-color .18s ease;
}
.select2-container--default .select2-selection--single:hover { border-color: #CAC9D1; }
.select2-container--open.select2-container--default .select2-selection--single,
.select2-container--focus.select2-container--default .select2-selection--single { border-color: var(--nx-brand); }

.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0;
  line-height: 1.45;
  font-size: 15px;
  color: var(--nx-ink);
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--nx-muted-3); }

/* własna strzałka zamiast domyślnego trójkąta select2 */
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  top: 0;
  right: 14px;
  width: 12px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border: 0;
  margin: 0;
  width: 10px; height: 10px;
  top: 50%; left: 0;
  transform: translateY(-70%) rotate(45deg);
  border-right: 2px solid var(--nx-muted-3);
  border-bottom: 2px solid var(--nx-muted-3);
  border-radius: 1px;
}
.select2-container--open.select2-container--default .select2-selection--single .select2-selection__arrow b {
  transform: translateY(-30%) rotate(225deg);
}

.select2-dropdown {
  border: 1px solid var(--nx-line-2);
  border-radius: 12px;
  box-shadow: 0 16px 40px rgba(24, 22, 36, .13);
  overflow: hidden;
  font-size: 15px;
}
.select2-container--default .select2-search--dropdown { padding: 10px; }
.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--nx-line-2);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14.5px;
  outline: 0;
}
.select2-container--default .select2-results__option { padding: 10px 14px; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  background: var(--nx-mint);
  color: var(--nx-brand-ink);
}
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
  background: var(--nx-brand);
  color: #FFF;
}

.nx-check {
  display: flex; gap: 12px; align-items: center;
  margin-top: 18px;
  font-size: 14.5px; font-weight: 600; cursor: pointer;
}
.nx-check__box {
  width: 20px; height: 20px;
  border: 1px solid #C7C6CF; border-radius: 5px; flex: none;
  background: #FFF;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; color: transparent;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.nx-check input { display: none; }
.nx-check input:checked + .nx-check__box {
  background: var(--nx-brand); border-color: var(--nx-brand); color: #FFF;
}

.nx-order { background: #FFF; border-radius: var(--nx-radius); padding: clamp(22px, 3.4vw, 28px) clamp(20px, 3.4vw, 30px); }
.nx-order__title { font-size: 18px; font-weight: 800; margin-bottom: 16px; }
.nx-order__head {
  display: flex; justify-content: space-between;
  font-size: 12px; font-weight: 700; letter-spacing: .08em;
  color: var(--nx-muted-3);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--nx-line);
}
.nx-order__item {
  padding: 14px 0; border-bottom: 1px solid var(--nx-line);
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.nx-order__item-l { display: flex; gap: 12px; align-items: center; min-width: 0; }
.nx-order__img { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; background: var(--nx-soft-2); flex: none; }
.nx-order__name { font-size: 14px; font-weight: 600; }
.nx-order__qty { font-size: 12.5px; color: var(--nx-muted-3); margin-top: 2px; }
.nx-order__price { font-size: 14px; font-weight: 700; white-space: nowrap; }
.nx-order__row {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 16px 0; border-bottom: 1px solid var(--nx-line);
  font-size: 14.5px;
}
.nx-order__row > span:first-child { color: var(--nx-muted); }
.nx-order__row > span:last-child { font-weight: 700; white-space: nowrap; }
.nx-order__shipping { padding: 16px 0; border-bottom: 1px solid var(--nx-line); }
.nx-order__shipping-label { font-size: 14.5px; color: var(--nx-muted); margin-bottom: 12px; }
.nx-radio-list { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.nx-radio {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; cursor: pointer;
}
.nx-radio__l { display: flex; gap: 10px; align-items: center; font-size: 14.5px; color: var(--nx-muted); }
.nx-radio input { display: none; }
.nx-radio__dot {
  width: 12px; height: 12px;
  border: 1px solid #C7C6CF; border-radius: 50%; flex: none;
}
.nx-radio input:checked ~ .nx-radio__dot,
.nx-radio.is-active .nx-radio__dot { border: 4px solid var(--nx-brand); }
.nx-radio input:checked ~ span,
.nx-radio.is-active .nx-radio__l { color: var(--nx-ink); }
.nx-radio__price { font-size: 14px; font-weight: 600; white-space: nowrap; }
.nx-radio input:checked ~ .nx-radio__price,
.nx-radio.is-active .nx-radio__price { font-weight: 700; }
.nx-radio__price--free { color: var(--nx-brand-ink); font-weight: 700; }

.nx-order__total {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 12px; padding: 18px 0;
}
.nx-order__total-label { font-size: 16px; font-weight: 700; }
.nx-order__total-value { font-size: clamp(21px, 3.4vw, 24px); font-weight: 800; white-space: nowrap; }

.nx-payments { background: var(--nx-soft-3); border-radius: 14px; padding: 18px; }
.nx-payments ul, .nx-payments .wc_payment_methods {
  display: flex; flex-direction: column; gap: 14px;
  margin: 0; padding: 0; list-style: none;
}
.nx-payments li { list-style: none; }
.nx-payments label { display: flex; gap: 10px; align-items: center; cursor: pointer; font-size: 14.5px; color: var(--nx-muted); }
.nx-payments label img { max-height: 22px; width: auto; margin-left: auto; }
.nx-payments input[type="radio"] { display: none; }
.nx-payments input[type="radio"] + label::before {
  content: ""; width: 12px; height: 12px;
  border: 1px solid #C7C6CF; border-radius: 50%; flex: none;
}
.nx-payments input[type="radio"]:checked + label::before { border: 4px solid var(--nx-brand); }
.nx-payments input[type="radio"]:checked + label { color: var(--nx-ink); font-weight: 700; }

.nx-payments .payment_box, .nx-payments__box {
  background: #FFF;
  border-radius: 10px;
  padding: 12px 14px;
  margin: 10px 0 0 22px;
  font-size: 13px; line-height: 1.55; color: var(--nx-muted);
}
.nx-payments .payment_box p { margin: 0; }
.nx-payments .payment_box p + p { margin-top: 8px; }
/* Opis pokazujemy tylko przy wybranej metodzie — również zanim zadziała
   skrypt WooCommerce, który potem steruje tym stylem inline. */
.nx-payments input[type="radio"]:not(:checked) ~ .payment_box { display: none; }

.nx-terms { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; cursor: pointer; }
.nx-terms input[type="checkbox"] { display: none; }
.nx-terms__box {
  width: 20px; height: 20px; border-radius: 5px;
  background: #FFF; border: 1px solid #C7C6CF; color: transparent;
  font-size: 12px; display: flex; align-items: center; justify-content: center;
  flex: none; margin-top: 1px;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.nx-terms input[type="checkbox"]:checked + .nx-terms__box {
  background: var(--nx-brand); border-color: var(--nx-brand); color: #FFF;
}
.nx-terms .woocommerce-terms-and-conditions-wrapper { flex: 1 0 100%; }
.nx-terms__text { font-size: 13px; line-height: 1.55; color: var(--nx-muted); }
.nx-terms__text a { color: var(--nx-brand-ink); font-weight: 600; }
.nx-place-order {
  width: 100%; border: 0; cursor: pointer;
  background: var(--nx-brand); color: #FFF;
  border-radius: 999px; padding: 17px;
  font-size: 15px; font-weight: 700;
  margin-top: 16px;
  transition: background .18s ease;
}
.nx-place-order:hover { background: var(--nx-brand-dk); }

/* ------------------------------------------------------- Thank you --- */

.nx-thanks {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(26px, 4vw, 44px) clamp(22px, 4vw, 48px) clamp(28px, 4vw, 46px);
  margin-bottom: 16px;
}
.nx-thanks__head { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.nx-thanks__icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--nx-mint); color: var(--nx-brand-ink);
  display: flex; align-items: center; justify-content: center;
  font-size: 19px; flex: none;
}
.nx-thanks__title {
  font-size: clamp(22px, 4.4vw, 34px);
  line-height: 1.15; letter-spacing: -.03em; font-weight: 800; margin: 0;
}
.nx-thanks__lead {
  font-size: clamp(15px, 2vw, 16px);
  line-height: 1.7; color: var(--nx-muted);
  margin: 0 0 22px; max-width: 70ch; text-wrap: pretty;
}
.nx-thanks__facts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
  background: var(--nx-soft-3); border-radius: 16px;
  padding: 20px 22px;
  margin: 0; list-style: none;
}
.nx-thanks__facts li { list-style: none; }
.nx-fact__label {
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  color: var(--nx-muted-3); margin-bottom: 6px;
}
.nx-fact__value { font-size: 15px; font-weight: 700; word-break: break-word; }

.nx-thanks-grid { display: grid; grid-template-columns: 1fr 420px; gap: 16px; align-items: start; }
.nx-thanks-side { display: flex; flex-direction: column; gap: 16px; }
.nx-sidecard { background: #FFF; border-radius: var(--nx-radius); padding: 26px 28px; }
.nx-sidecard__title { font-size: 18px; font-weight: 800; margin-bottom: 14px; }
.nx-sidecard__text { font-size: 15px; line-height: 1.75; color: var(--nx-ink-2); }
.nx-sidecard--mint { background: var(--nx-mint); }
.nx-sidecard--mint .nx-sidecard__title { font-size: 17px; margin-bottom: 8px; }
.nx-sidecard--mint p { font-size: 14px; color: var(--nx-muted); line-height: 1.6; margin: 0 0 16px; }
.nx-sidecard__note { font-size: 15px; line-height: 1.7; color: var(--nx-muted); margin-bottom: 16px; }
.nx-order-details { background: #FFF; border-radius: var(--nx-radius); padding: clamp(22px, 3.4vw, 32px) clamp(20px, 3.4vw, 34px); }
.nx-order-details .nx-order__item { padding: 16px 0; }
.nx-order-details .nx-order__img { width: 54px; height: 54px; border-radius: 12px; }
.nx-order-details .nx-order__name { font-size: 15px; }
.nx-order-details .nx-order__price { font-size: 15px; }
.nx-order-details .nx-order__row { padding: 14px 0; }
.nx-order-details .nx-order__total { padding: 18px 0 0; }

/*
 * Treści dopisywane przez bramki płatności (np. dane do przelewu z BACS).
 * WooCommerce wypisuje je bez własnych stylów — poniżej dostają wygląd
 * pozostałych kafelków strony podziękowania.
 */
.nx-thanks-extra {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(22px, 3.4vw, 32px) clamp(20px, 3.4vw, 34px);
  margin-top: 16px;
  font-size: 15px; line-height: 1.75; color: var(--nx-ink-2);
}
.nx-thanks-extra > :first-child { margin-top: 0; }
.nx-thanks-extra > :last-child { margin-bottom: 0; }
.nx-thanks-extra p { margin: 0 0 14px; }
.nx-thanks-extra a { color: var(--nx-brand-ink); font-weight: 600; }

.nx-thanks-extra h2,
.wc-bacs-bank-details-heading {
  font-size: 18px; font-weight: 800; letter-spacing: -.01em;
  margin: 0 0 16px;
}
.nx-thanks-extra h3,
.wc-bacs-bank-details-account-name {
  font-size: 14px; font-weight: 700;
  color: var(--nx-muted); margin: 0 0 10px;
}
/* Kolejne konto bankowe — oddzielone od poprzedniej listy. */
.wc-bacs-bank-details + .wc-bacs-bank-details-account-name { margin-top: 20px; }

.wc-bacs-bank-details {
  list-style: none; margin: 0; padding: 16px 18px;
  background: var(--nx-soft-3); border-radius: 14px;
  display: grid; gap: 10px;
  font-size: 14.5px; color: var(--nx-muted);
  /* Dane są krótkie — na całej szerokości karty wartość uciekałaby od etykiety
     na drugi koniec ekranu i numer konta trudno byłoby odczytać. */
  max-width: 560px;
}
.wc-bacs-bank-details li {
  list-style: none;
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 8px 20px;
}
.wc-bacs-bank-details li strong {
  color: var(--nx-ink); font-weight: 700;
  text-align: right; word-break: break-word;
}
/* Numer konta i BIC czyta się cyfra po cyfrze — stała szerokość znaków. */
.wc-bacs-bank-details .account_number strong,
.wc-bacs-bank-details .iban strong,
.wc-bacs-bank-details .bic strong,
.wc-bacs-bank-details .sort_code strong {
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

@media (max-width: 559px) {
  .wc-bacs-bank-details li { flex-direction: column; gap: 2px; }
  .wc-bacs-bank-details li strong { text-align: left; }
}

/* -------------------------------------------------------------- Blog --- */

.nx-bloghead {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(26px, 4vw, 44px) clamp(22px, 4vw, 48px);
}
.nx-bloghead__kicker {
  font-size: 12.5px; font-weight: 700; letter-spacing: .16em;
  color: var(--nx-brand-ink); margin-bottom: 12px;
}
.nx-bloghead__title {
  font-size: clamp(27px, 5.4vw, 42px);
  line-height: 1.1; letter-spacing: -.03em; font-weight: 800;
  margin: 0 0 12px; max-width: 20ch;
}
.nx-bloghead__lead {
  font-size: clamp(15px, 2.2vw, 16.5px);
  color: var(--nx-muted); margin: 0 0 22px;
  max-width: 62ch; text-wrap: pretty;
}
.nx-filters { display: flex; gap: 8px; font-size: 13.5px; font-weight: 600; flex-wrap: wrap; }
.nx-filters a {
  background: var(--nx-soft-2); border-radius: 999px;
  padding: 9px 18px; color: var(--nx-muted);
  transition: background .18s ease;
}
.nx-filters a:hover { background: #E4E4E9; color: var(--nx-muted); }
.nx-filters a.is-active { background: var(--nx-brand); color: #FFF; }

.nx-list { background: #FFF; border-radius: var(--nx-radius); padding: 8px clamp(20px, 3.4vw, 32px) 18px; }
.nx-list__row {
  display: grid; grid-template-columns: 120px 1fr 80px;
  gap: clamp(6px, 2vw, 24px); align-items: center;
  padding: 18px 0; border-bottom: 1px solid var(--nx-line);
  transition: background .18s ease;
}
.nx-list__row:hover { background: #F7F7F9; color: var(--nx-ink); }
.nx-list__row:last-child { border-bottom: 0; }
.nx-list__date { font-size: 13px; color: var(--nx-muted-3); }
.nx-list__cat { font-size: 12px; font-weight: 700; color: var(--nx-brand-ink); display: block; margin-bottom: 5px; }
.nx-list__title { font-size: clamp(16px, 2.2vw, 18px); font-weight: 700; }
.nx-list__min { font-size: 13px; color: var(--nx-muted-3); text-align: right; }

/* ------------------------------------------------------- Single post --- */

.nx-post-cover {
  border-radius: var(--nx-radius); overflow: hidden;
  aspect-ratio: 16/7; min-height: 200px; background: var(--nx-soft-2);
}
.nx-post-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-post-layout { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start; }
.nx-article {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(26px, 4vw, 44px) clamp(20px, 4vw, 52px) clamp(30px, 4.5vw, 48px);
}
.nx-article__meta { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.nx-article__cat {
  background: var(--nx-mint); color: var(--nx-brand-ink);
  border-radius: 999px; padding: 6px 14px;
  font-size: 12.5px; font-weight: 700; text-transform: uppercase;
}
.nx-article__date { font-size: 13.5px; color: var(--nx-muted-3); }
.nx-article__title {
  font-size: clamp(26px, 5vw, 40px);
  line-height: 1.12; letter-spacing: -.03em; font-weight: 800;
  margin: 0 0 18px; max-width: 22ch; text-wrap: balance;
}
.nx-article__lead {
  font-size: clamp(16px, 2.4vw, 18px);
  line-height: 1.7; color: var(--nx-muted);
  margin: 0 0 26px; max-width: 68ch; text-wrap: pretty;
}
.nx-content h2 {
  font-size: clamp(20px, 3.4vw, 24px);
  letter-spacing: -.02em; font-weight: 800; margin: 0 0 12px;
  scroll-margin-top: calc(var(--nx-header-total) + 16px);
}
.nx-content h3 { font-size: clamp(18px, 3vw, 20px); font-weight: 800; margin: 0 0 10px; }
.nx-content p {
  font-size: clamp(15px, 2.2vw, 16.5px);
  line-height: 1.8; color: var(--nx-ink-2);
  margin: 0 0 22px; max-width: 68ch; text-wrap: pretty;
}
.nx-content ul, .nx-content ol {
  font-size: clamp(15px, 2.2vw, 16.5px);
  line-height: 1.9; color: var(--nx-ink-2);
  margin: 0 0 26px; padding-left: 20px; max-width: 68ch;
}
.nx-content blockquote {
  border-left: 4px solid var(--nx-brand);
  background: var(--nx-soft-3);
  border-radius: 0 14px 14px 0;
  padding: 18px 22px;
  margin: 0 0 26px;
  font-size: clamp(15.5px, 2.2vw, 17px);
  line-height: 1.7; color: var(--nx-ink);
  max-width: 68ch;
}
.nx-content blockquote p { font-size: inherit; line-height: inherit; color: inherit; margin: 0; }
.nx-content figure, .nx-content .wp-block-image { margin: 0 0 28px; }
.nx-content figure img, .nx-content .wp-block-image img {
  border-radius: 16px; display: block; width: 100%;
}
.nx-content figcaption { font-size: 13px; color: var(--nx-muted-3); margin-top: 12px; }
.nx-content a { color: var(--nx-brand-ink); font-weight: 600; }

.nx-article__foot {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; border-top: 1px solid var(--nx-line);
  padding-top: 22px; flex-wrap: wrap;
}
.nx-share { font-size: 14px; color: var(--nx-muted-3); }
.nx-share a { color: var(--nx-brand-ink); font-weight: 600; }

.nx-aside { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
.nx-aside__card { background: #FFF; border-radius: var(--nx-radius); padding: 24px 26px; }
.nx-aside__head {
  font-size: 12.5px; font-weight: 700; letter-spacing: .14em;
  color: var(--nx-muted-3); margin-bottom: 14px;
}
.nx-toc { display: flex; flex-direction: column; gap: 12px; font-size: 14.5px; }
.nx-toc a { color: var(--nx-muted); }
.nx-toc a.is-active, .nx-toc a:first-child { color: var(--nx-brand-ink); font-weight: 600; }
.nx-toc a:hover { color: var(--nx-brand-ink); }
.nx-related-posts { display: flex; flex-direction: column; gap: 14px; }
.nx-related-post { display: flex; gap: 12px; align-items: center; }
.nx-related-post img {
  width: 54px; height: 54px; border-radius: 10px;
  object-fit: cover; background: var(--nx-soft-2); flex: none;
}
.nx-related-post__body { min-width: 0; }
.nx-related-post__title { font-size: 14px; font-weight: 700; line-height: 1.35; display: block; }
.nx-related-post__date { font-size: 12.5px; color: var(--nx-muted-3); }
.nx-aside__card--mint { background: var(--nx-mint); }
.nx-aside__card--mint .nx-promo__title { font-size: 17px; font-weight: 800; margin-bottom: 8px; }
.nx-aside__card--mint .nx-promo__text { font-size: 14px; line-height: 1.6; margin-bottom: 16px; }

/* ------------------------------------------------------------ Badania --- */

.nx-pagehead {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(26px, 4vw, 44px) clamp(22px, 4vw, 48px) clamp(28px, 4vw, 46px);
}
.nx-pagehead__kicker {
  font-size: 12.5px; font-weight: 700; letter-spacing: .16em;
  color: var(--nx-brand-ink); margin-bottom: 12px;
}
.nx-pagehead__title {
  font-size: clamp(27px, 5.4vw, 42px);
  letter-spacing: -.03em; font-weight: 800; margin: 0 0 16px;
}
.nx-pagehead__lead {
  font-size: clamp(15px, 2.2vw, 16.5px);
  line-height: 1.75; color: var(--nx-muted); margin: 0; text-wrap: pretty;
}

.nx-studies {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: 16px;
}
.nx-study {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(22px, 3.4vw, 32px) clamp(20px, 3.4vw, 36px) clamp(24px, 3.6vw, 36px);
}
.nx-study__head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 12px; margin-bottom: 12px;
}
.nx-study__title {
  font-size: clamp(20px, 3.4vw, 24px);
  letter-spacing: -.02em; font-weight: 800; margin: 0;
}
.nx-study__result {
  background: var(--nx-mint); color: var(--nx-brand-ink);
  border-radius: 999px; padding: 7px 16px;
  font-size: 13px; font-weight: 700; white-space: nowrap;
}
.nx-study__text {
  font-size: 14.5px; line-height: 1.7; color: var(--nx-muted-2);
  margin: 0 0 20px; max-width: 74ch;
}
.nx-study__media {
  border-radius: 14px; overflow: hidden;
  background: var(--nx-soft-2); aspect-ratio: 16/10;
}
.nx-study__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* -------------------------------------------------------- Kalkulator --- */

.nx-calc-title {
  font-size: clamp(27px, 5vw, 38px);
  letter-spacing: -.03em; font-weight: 800; margin: 0 0 12px;
}
.nx-calc-lead {
  font-size: clamp(15px, 2vw, 16px);
  color: var(--nx-muted); margin: 0 0 24px; max-width: 62ch; text-wrap: pretty;
}
.nx-calc-form {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(24px, 3.6vw, 32px) clamp(20px, 3.6vw, 34px);
  display: flex; flex-direction: column; gap: 18px;
}
.nx-calc-form label { display: block; }
.nx-calc-form .nx-label { font-size: 13.5px; font-weight: 700; margin-bottom: 9px; }
.nx-calc-form input {
  width: 100%;
  border: 1px solid var(--nx-line-2); border-radius: 12px;
  padding: 15px 16px;
  font-size: 17px; font-weight: 600;
  background: #F9F9FA; color: var(--nx-ink);
  outline: 0;
}
.nx-calc-form input:focus { border-color: var(--nx-brand); }
.nx-calc-disclaimer {
  font-size: 13px; color: var(--nx-muted-3); line-height: 1.6;
  border-top: 1px solid var(--nx-line); padding-top: 14px;
}
/* Panel wyniku — jak pas atutów: jasny akcent, ciemna typografia. */
.nx-calc-result {
  background: var(--nx-brand); border-radius: var(--nx-radius);
  padding: clamp(24px, 3.6vw, 32px) clamp(20px, 3.6vw, 34px);
  color: var(--nx-brand-deep);
}
.nx-calc-result__kicker {
  font-size: 12.5px; font-weight: 700; letter-spacing: .16em;
  color: rgba(36, 31, 81, .8); margin-bottom: 16px;
}
.nx-calc-result__value {
  font-size: clamp(42px, 9vw, 60px);
  line-height: 1; font-weight: 800; letter-spacing: -.03em;
}
.nx-calc-result__unit { font-size: 15px; color: rgba(36, 31, 81, .8); margin-top: 8px; }
.nx-calc-bar-wrap { margin: 24px 0 20px; }
.nx-calc-bar {
  height: 22px; border-radius: 999px;
  background: rgba(255,255,255,.45);
  position: relative; overflow: hidden;
}
.nx-calc-bar__fill {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: var(--nx-brand-deep); border-radius: 999px; width: 0;
  transition: width .2s ease;
}
.nx-calc-scale {
  display: flex; justify-content: space-between;
  font-size: 11px; color: rgba(36, 31, 81, .8); margin-top: 8px;
}
.nx-calc-rows {
  font-size: 14px; line-height: 2.2; color: rgba(36, 31, 81, .8);
  border-top: 1px solid rgba(36, 31, 81, .2); padding-top: 14px;
}
.nx-calc-rows > div { display: flex; justify-content: space-between; gap: 12px; }
.nx-calc-rows span { color: var(--nx-brand-deep); font-weight: 700; white-space: nowrap; }

/* ----------------------------------------------------------- O marce --- */

.nx-brand-hero {
  background: #FFF; border-radius: var(--nx-radius);
  overflow: hidden; display: grid; grid-template-columns: 1fr 1fr;
}
.nx-brand-hero__text {
  padding: clamp(28px, 4.5vw, 56px) clamp(22px, 4vw, 52px);
  display: flex; flex-direction: column; justify-content: center;
}
.nx-brand-hero__kicker {
  font-size: 12.5px; font-weight: 700; letter-spacing: .16em;
  color: var(--nx-brand-ink); margin-bottom: 14px;
}
.nx-brand-hero__title {
  font-size: clamp(27px, 5vw, 44px);
  line-height: 1.08; letter-spacing: -.03em; font-weight: 800;
  margin: 0 0 16px;
}
.nx-brand-hero__lead {
  font-size: clamp(15px, 2.2vw, 16.5px);
  line-height: 1.75; color: var(--nx-muted);
  margin: 0; max-width: 50ch; text-wrap: pretty;
}
.nx-brand-hero__media { min-height: clamp(240px, 40vw, 420px); background: var(--nx-soft-2); }
.nx-brand-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.nx-brand-cols {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(28px, 4vw, 48px) clamp(22px, 4vw, 52px) clamp(30px, 4.5vw, 52px);
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(22px, 4vw, 52px);
}
.nx-brand-col { display: flex; flex-direction: column; gap: 22px; }
.nx-brand-col p {
  font-size: clamp(15px, 2.2vw, 16.5px);
  line-height: 1.8; margin: 0; text-wrap: pretty;
}
.nx-brand-col p.nx-muted { color: var(--nx-muted); }

/* ----------------------------------------------------------- Kontakt --- */

.nx-contact { display: grid; grid-template-columns: 1fr 340px; gap: 16px; align-items: start; }
.nx-contact__form {
  background: #FFF; border-radius: var(--nx-radius);
  padding: clamp(24px, 3.6vw, 34px) clamp(20px, 3.6vw, 38px);
}
.nx-contact__info {
  background: #FFF; border-radius: var(--nx-radius);
  padding: 28px 30px;
  display: flex; flex-direction: column; gap: 20px;
}
.nx-info__label { font-size: 13px; font-weight: 700; color: var(--nx-muted-3); margin-bottom: 6px; }
.nx-info__value { font-size: 15.5px; font-weight: 600; word-break: break-word; }
.nx-info__value--plain { font-weight: 400; line-height: 1.55; }
.nx-info__extra { font-size: 13.5px; color: var(--nx-muted-3); margin-top: 2px; }

/* ------------------------------------------------------- CF7 / forms --- */

.nx-form .nx-fields { gap: 14px; }
.nx-form .nx-fields input,
.nx-form .nx-fields textarea { border-radius: 12px; padding: 15px 16px; }
.nx-form p { margin: 0; }
.nx-form .wpcf7-form-control-wrap { display: block; }
.nx-form .nx-col-full { grid-column: 1/-1; }
.nx-submit {
  display: inline-block;
  background: var(--nx-brand); color: #FFF;
  border: 0; border-radius: 999px;
  padding: 15px 30px;
  font-size: 14.5px; font-weight: 700;
  margin-top: 18px; cursor: pointer;
  transition: background .18s ease;
}
.nx-submit:hover { background: var(--nx-brand-dk); }
.wpcf7 form .wpcf7-response-output {
  margin: 16px 0 0; border: 0; border-radius: 12px;
  padding: 14px 16px; font-size: 14px;
  background: var(--nx-mint); color: var(--nx-brand-ink);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { background: #FBECEA; color: var(--nx-danger); }
.wpcf7-not-valid-tip { font-size: 12.5px; color: var(--nx-danger); margin-top: 6px; display: block; }
.wpcf7-spinner { margin: 0 0 0 12px; }
.nx-form .wpcf7-list-item { margin: 0; }
.nx-form .wpcf7-acceptance .wpcf7-list-item-label { font-size: 13px; color: var(--nx-muted); line-height: 1.55; }

/* -------------------------------------------------------------- Footer --- */

.nx-footer { background: #FFF; border-top: 1px solid var(--nx-line); }

/*
 * Stopka: kolumna marki i trzy kolumny list. Wszystko wyrównane do lewej i
 * osadzone na wspólnej linii nagłówków — dzięki temu czyta się ją jednym
 * spojrzeniem, bez skakania wzroku między krawędziami.
 */
.nx-footer__inner {
  max-width: 1280px; margin: 0 auto;
  padding: clamp(40px, 5vw, 60px) var(--nx-gutter) clamp(32px, 4vw, 44px);
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1.3fr;
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}
.nx-footer__col { min-width: 0; }
.nx-footer__logo { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.nx-footer__logo .nx-logo__text { font-size: 19px; }
.nx-footer__tagline {
  font-size: 14px; line-height: 1.7; color: var(--nx-muted-2);
  margin: 0; max-width: 34ch;
}
.nx-footer__head {
  font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nx-muted-3);
  margin: 0 0 16px;
  /* Nagłówek marki jest wizualnie w linii logo, więc kolumny startują równo. */
  line-height: 1.4;
}
.nx-footer__contact,
.nx-footer__links {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 11px;
  margin: 0; padding: 0; list-style: none;
  font-size: 14.5px; font-weight: 500; line-height: 1.4;
}
.nx-footer__contact li,
.nx-footer__links li { list-style: none; }
.nx-footer__contact a,
.nx-footer__links a {
  color: var(--nx-ink-2);
  transition: color .16s ease;
  word-break: break-word;
}
.nx-footer__contact a:hover,
.nx-footer__links a:hover { color: var(--nx-brand-ink); }

.nx-footer__bottom { border-top: 1px solid var(--nx-line); }
.nx-footer__bottom-inner {
  max-width: 1280px; margin: 0 auto;
  padding: 18px var(--nx-gutter);
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px 28px; font-size: 12.5px; color: var(--nx-muted-3); flex-wrap: wrap;
}
.nx-footer__payments { height: 22px; width: auto; display: block; opacity: .85; }
.nx-footer__legal {
  display: flex; flex-wrap: wrap;
  gap: 8px 20px;
  margin: 0; padding: 0;
  list-style: none;
}
.nx-footer__legal li { list-style: none; }
.nx-footer__legal a { color: var(--nx-muted-3); font-size: 12.5px; }
.nx-footer__legal a:hover { color: var(--nx-brand-ink); }

/* Tablet: marka na całą szerokość, trzy listy w jednym rzędzie — bez
   osieroconej kolumny w drugim wierszu. */
@media (max-width: 1023px) {
  .nx-footer__inner { grid-template-columns: repeat(3, 1fr); row-gap: 36px; }
  .nx-footer__col--brand { grid-column: 1 / -1; }
}
@media (max-width: 699px) {
  .nx-footer__inner { grid-template-columns: 1fr; row-gap: 32px; }
  .nx-footer__bottom-inner { justify-content: flex-start; }
}

/* ---------------------------------------------- Udostępnianie wpisu --- */

.nx-share { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nx-share__label { font-size: 14px; color: var(--nx-muted-3); }
.nx-share__btn {
  width: 38px; height: 38px;
  border-radius: 999px;
  border: 1px solid var(--nx-line-3);
  background: #FFF;
  color: var(--nx-muted);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.nx-share__btn:hover {
  background: var(--nx-mint);
  border-color: var(--nx-mint);
  color: var(--nx-brand-ink);
}
.nx-share__icon { display: inline-flex; }
.nx-share__icon--done { display: none; }
.nx-share__btn.is-copied {
  background: var(--nx-brand);
  border-color: var(--nx-brand);
  color: #FFF;
}
.nx-share__btn.is-copied .nx-share__icon { display: none; }
.nx-share__btn.is-copied .nx-share__icon--done { display: inline-flex; }

/* ------------------------------------------------------ WooCommerce --- */

.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  background: #FFF;
  border-left: 4px solid var(--nx-brand);
  border-radius: 14px;
  padding: 16px 20px;
  font-size: 14px; color: var(--nx-muted);
  list-style: none;
  margin: 0 0 16px;
}
.woocommerce-error { border-left-color: var(--nx-danger); }
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: var(--nx-brand-ink); font-weight: 600; }
.woocommerce-message .button, .woocommerce-info .button {
  float: right; background: none; border: 0; color: var(--nx-brand-ink); font-weight: 600; cursor: pointer;
}
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}
.nx-empty { text-align: center; padding: 40px 0; color: var(--nx-muted); font-size: 15px; }

/* ------------------------------------------------------ Moje konto --- */

.nx-account {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 16px;
  align-items: start;
}

.nx-account .woocommerce-MyAccount-navigation {
  background: #FFF;
  border-radius: var(--nx-radius);
  padding: 14px;
}
.nx-account .woocommerce-MyAccount-navigation ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.nx-account .woocommerce-MyAccount-navigation li { list-style: none; }
.nx-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 14.5px; font-weight: 600;
  color: var(--nx-muted);
  transition: background .18s ease, color .18s ease;
}
.nx-account .woocommerce-MyAccount-navigation a:hover { background: var(--nx-soft); color: var(--nx-ink); }
.nx-account .woocommerce-MyAccount-navigation .is-active a { background: var(--nx-brand); color: #FFF; }
.nx-account .woocommerce-MyAccount-navigation--customer-logout a { color: var(--nx-danger); }
.nx-account .woocommerce-MyAccount-navigation--customer-logout a:hover { background: rgba(194, 69, 59, .09); color: var(--nx-danger); }

.nx-account__content {
  background: #FFF;
  border-radius: var(--nx-radius);
  padding: clamp(24px, 3.4vw, 34px) clamp(20px, 3.4vw, 36px);
  min-width: 0;
}
.nx-account__content > p { font-size: 15px; line-height: 1.7; color: var(--nx-ink-2); margin: 0 0 16px; }
.nx-account__content > p:last-child { margin-bottom: 0; }
.nx-account__content a { color: var(--nx-brand-ink); font-weight: 600; }
.nx-account__content h2,
.nx-account__content legend {
  font-size: clamp(18px, 2.6vw, 21px);
  font-weight: 800; letter-spacing: -.02em;
  margin: 0 0 16px; padding: 0;
}
.nx-account__content h3 { font-size: 16px; font-weight: 700; margin: 0 0 12px; }

/* tabele: zamówienia, pobrania */
.nx-account__content table {
  width: 100%; border-collapse: collapse; font-size: 14.5px;
}
.nx-account__content table th {
  text-align: left; padding: 0 12px 12px 0;
  font-size: 12px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--nx-muted-3);
  border-bottom: 1px solid var(--nx-line);
}
.nx-account__content table td {
  padding: 16px 12px 16px 0;
  border-bottom: 1px solid var(--nx-line);
  vertical-align: middle;
}
.nx-account__content table tr:last-child td { border-bottom: 0; }
.nx-account__content table td:last-child,
.nx-account__content table th:last-child { padding-right: 0; text-align: right; }
.nx-account__content .woocommerce-orders-table__cell-order-number a { font-weight: 700; }
.nx-account__content .woocommerce-orders-table__cell-order-actions .button { margin-left: 6px; }

/* przyciski w panelu konta */
.nx-account__content .button,
.nx-account__content button[type="submit"],
.nx-account__content input[type="submit"] {
  display: inline-block;
  background: var(--nx-brand); color: #FFF;
  border: 0; border-radius: 999px;
  padding: 13px 26px;
  font-size: 14px; font-weight: 700;
  cursor: pointer; text-align: center;
  transition: background .18s ease;
}
.nx-account__content .button:hover,
.nx-account__content button[type="submit"]:hover,
.nx-account__content input[type="submit"]:hover { background: var(--nx-brand-dk); color: #FFF; }
.nx-account__content .woocommerce-Button--next,
.nx-account__content .button.view { padding: 9px 18px; font-size: 13px; }

/* formularze konta i adresów */
.nx-account__content form .form-row,
.nx-account__content .woocommerce-address-fields__field-wrapper > p { margin: 0 0 16px; }
.nx-account__content label { display: block; font-size: 13.5px; font-weight: 600; margin-bottom: 7px; }
.nx-account__content input[type="text"],
.nx-account__content input[type="email"],
.nx-account__content input[type="tel"],
.nx-account__content input[type="password"],
.nx-account__content select,
.nx-account__content textarea {
  width: 100%;
  border: 1px solid var(--nx-line-2);
  border-radius: 10px;
  padding: 13px 14px;
  font-size: 15px;
  background: #FFF; color: var(--nx-ink);
  outline: 0;
}
.nx-account__content input:focus,
.nx-account__content select:focus,
.nx-account__content textarea:focus { border-color: var(--nx-brand); }
.nx-account__content fieldset { border: 1px solid var(--nx-line); border-radius: 14px; padding: 20px; margin: 0 0 20px; }
.nx-account__content .woocommerce-form-row--first,
.nx-account__content .woocommerce-form-row--last { width: 100%; }

/* adresy */
.nx-account__content .woocommerce-Addresses {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.nx-account__content .woocommerce-Address {
  background: var(--nx-soft-3); border-radius: 16px; padding: 20px 22px;
}
.nx-account__content .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.nx-account__content .woocommerce-Address-title h2,
.nx-account__content .woocommerce-Address-title h3 { font-size: 16px; margin: 0; }
.nx-account__content .woocommerce-Address address { font-style: normal; font-size: 14.5px; line-height: 1.7; color: var(--nx-ink-2); margin-top: 12px; }

/* --------------------------------------------- Logowanie / rejestracja --- */

.nx-auth { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
.nx-auth--split { grid-template-columns: 1fr 1fr; }
.nx-auth__card {
  background: #FFF;
  border-radius: var(--nx-radius);
  padding: clamp(26px, 3.6vw, 36px) clamp(22px, 3.6vw, 36px);
}
.nx-auth__title {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: 800; letter-spacing: -.02em;
  margin: 0 0 8px;
}
.nx-auth__lead { font-size: 14.5px; line-height: 1.6; color: var(--nx-muted); margin: 0 0 22px; }
.nx-auth__note {
  background: var(--nx-soft-3); border-radius: 12px;
  padding: 12px 16px; font-size: 13.5px; color: var(--nx-muted-2); margin: 0 0 18px;
}
/* WooCommerce dopina do pól hasła własny przycisk „pokaż hasło”. Bez stylów
   sklepu renderuje się jako gołe pudełko, a projekt takiej kontrolki nie ma. */
.password-input { display: block; position: relative; }
.show-password-input { display: none; }

.nx-auth__form .form-row { margin: 0 0 16px; }
.nx-auth__consent {
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 18px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--nx-muted);
}
.nx-auth__consent .nx-check__box { margin-top: 1px; }
.nx-auth__consent a { color: var(--nx-brand-ink); font-weight: 600; }
.nx-auth__form .nx-input { width: 100%; }
.nx-auth__row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; flex-wrap: wrap; margin: 4px 0 20px;
}
.nx-auth__row .nx-check { margin: 0; font-size: 13.5px; font-weight: 500; }
.nx-auth__lost { font-size: 13.5px; font-weight: 600; color: var(--nx-brand-ink); }
.nx-auth__submit {
  width: 100%;
  background: var(--nx-brand); color: #FFF;
  border: 0; border-radius: 999px;
  padding: 15px 26px;
  font-size: 14.5px; font-weight: 700;
  cursor: pointer;
  transition: background .18s ease;
}
.nx-auth__submit:hover { background: var(--nx-brand-dk); }

/* Odzyskiwanie hasła — pojedyncza karta na środku kolumny treści. */
.nx-auth--single { max-width: 560px; margin: 0 auto; }
.nx-auth__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.nx-auth__back { margin: 18px 0 0; text-align: center; font-size: 13.5px; }
.nx-auth__back a {
  display: inline-flex; align-items: center; gap: 7px;
  color: var(--nx-muted); font-weight: 600;
  transition: color .18s ease;
}
.nx-auth__back a:hover { color: var(--nx-brand-ink); }
.nx-auth__card--confirm { text-align: center; }
.nx-auth__icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--nx-mint); color: var(--nx-brand-ink);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 19px; margin-bottom: 16px;
}
.nx-auth__card--confirm .nx-auth__lead { margin-bottom: 0; }

/* ------------------------------------------ Panel konta w nagłówku --- */

.nx-user { position: relative; flex: none; }
.nx-user__toggle {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid var(--nx-line-3);
  background: #FFF;
  color: var(--nx-ink);
  border-radius: 999px;
  padding: 11px 16px;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease;
}
.nx-user__toggle:hover { background: var(--nx-soft); }
.nx-user.is-open .nx-user__toggle { background: var(--nx-soft); border-color: #CAC9D1; }

.nx-user__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 70;
  width: 300px;
  background: #FFF;
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(24, 22, 36, .16);
  padding: 20px;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.nx-user.is-open .nx-user__panel { opacity: 1; transform: translateY(0); pointer-events: auto; }

.nx-user__title { font-size: 16px; font-weight: 800; margin-bottom: 14px; }
.nx-user__form .nx-label { font-size: 12.5px; font-weight: 600; margin-bottom: 6px; display: block; }
.nx-user__form .nx-input { margin-bottom: 12px; padding: 11px 13px; font-size: 14px; }
.nx-user__remember { margin: 0 0 14px; font-size: 13px; font-weight: 500; }
.nx-user__submit {
  width: 100%;
  background: var(--nx-brand); color: #FFF;
  border: 0; border-radius: 999px;
  padding: 12px; font-size: 14px; font-weight: 700;
  cursor: pointer; transition: background .18s ease;
}
.nx-user__submit:hover { background: var(--nx-brand-dk); }
.nx-user__foot {
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--nx-line);
  font-size: 13px; font-weight: 600;
}
.nx-user__foot a { color: var(--nx-muted-3); }
.nx-user__foot a:hover { color: var(--nx-brand-ink); }
.nx-user__register { color: var(--nx-brand-ink); }

.nx-user__greeting { padding-bottom: 14px; border-bottom: 1px solid var(--nx-line); margin-bottom: 10px; }
.nx-user__hello { display: block; font-size: 12px; color: var(--nx-muted-3); }
.nx-user__name { font-size: 15.5px; font-weight: 700; }
.nx-user__links { display: flex; flex-direction: column; gap: 2px; }
.nx-user__links a {
  padding: 10px 12px; border-radius: 10px;
  font-size: 14px; font-weight: 600; color: var(--nx-ink);
  transition: background .16s ease;
}
.nx-user__links a:hover { background: var(--nx-soft); }
.nx-user__logout {
  display: flex; align-items: center; gap: 8px;
  margin-top: 10px; padding: 11px 12px;
  border-top: 1px solid var(--nx-line);
  font-size: 14px; font-weight: 600;
  color: var(--nx-danger);
}
.nx-user__logout:hover { color: var(--nx-danger); }

/* --------------------------------------------------------- Utilities --- */

.nx-mb-16 { margin-bottom: 16px; }
.nx-mt-16 { margin-top: 16px; }
.nx-muted { color: var(--nx-muted); }
.nx-hide { display: none !important; }

/* ------------------------------------------------------- Responsive --- */

@media (max-width: 999px) {
  .nx-nav { display: none; }
  .nx-burger { display: flex; }
  .nx-cart-btn__label { display: none; }

  .nx-split,
  .nx-about,
  .nx-brand-hero,
  .nx-brand-cols,
  .nx-news,
  .nx-product,
  .nx-calc-grid { grid-template-columns: 1fr; }

  .nx-about__text,
  .nx-brand-hero__text { order: -1; }

  .nx-shop { grid-template-columns: 1fr; }
  /* Filtry schodzą pod listę produktów — najpierw towar, potem narzędzia. */
  .nx-shop__main { order: 1; }
  .nx-shop__side { order: 2; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
  .nx-aside { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }

  .nx-cart-layout,
  .nx-checkout,
  .nx-thanks-grid,
  .nx-post-layout,
  .nx-contact { grid-template-columns: 1fr; }

  .nx-account { grid-template-columns: 1fr; }
  .nx-account .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: wrap; }
  .nx-account .woocommerce-MyAccount-navigation a { padding: 10px 16px; border-radius: 999px; }
  .nx-auth--split { grid-template-columns: 1fr; }
  .nx-auth__grid { grid-template-columns: 1fr; }
  .nx-account__content .woocommerce-Addresses { grid-template-columns: 1fr; }

  .nx-desc-grid { grid-template-columns: 1fr; }

  .nx-sticky { position: static; top: auto; }

}

@media (max-width: 699px) {
  .nx-header__inner { height: 62px; }
  .nx-searchbox:not(.nx-searchbox--mobile) { display: none; }
  .nx-cart-btn { padding: 11px 14px; }
  .nx-user__label { display: none; }
  .nx-user__toggle { padding: 10px 12px; }

  /* Na telefonie panel kotwiczymy do nagłówka, a nie do przycisku — przycisk
     stoi za daleko od krawędzi i panel wychodziłby poza ekran. */
  .nx-user__panel {
    position: fixed;
    top: calc(var(--nx-header-total) + 8px);
    left: var(--nx-gutter);
    right: var(--nx-gutter);
    width: auto;
  }

  .nx-fields { grid-template-columns: 1fr; }
  .nx-list__row { grid-template-columns: 1fr; }
  .nx-list__min { text-align: left; }

  .nx-cart-head { display: none; }
  .nx-cart-row { grid-template-columns: 1fr auto; }
  .nx-cart-row__sum { text-align: left; }
  .nx-cart-row__prod { grid-column: 1/-1; }

  .nx-drawer__panel { width: 100%; }

  /* --- Katalog na telefonie: dwa kafelki w rzędzie, ciaśniej i mniejszą czcionką --- */
  .nx-pgrid,
  .nx-pgrid--shop,
  .nx-pgrid--related {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .nx-pcard { padding: 10px 10px 14px; border-radius: 16px; }
  .nx-pcard__media { margin-bottom: 10px; border-radius: 12px; }
  .nx-pcard__tag { top: 8px; left: 8px; padding: 4px 9px; font-size: 9.5px; }
  .nx-pcard__name { font-size: 13.5px; line-height: 1.25; }
  .nx-pcard__spec,
  .nx-pcard__stock { font-size: 11.5px; margin-top: 4px; }
  .nx-pcard__foot { gap: 9px; padding-top: 10px; }
  .nx-pcard--shop .nx-pcard__foot { padding-top: 9px; }
  .nx-pcard__price { font-size: 14.5px; }
  .nx-pcard__price del { font-size: .78em; margin-right: 4px; }
  .nx-pcard__cta { padding: 10px 8px; font-size: 12.5px; gap: 6px; }
  .nx-pcard__cta svg { width: 15px; height: 15px; }

  .nx-shopbar { padding: 10px 14px; gap: 8px; }
  .nx-shopbar__count,
  .nx-shopbar__sort,
  .nx-shopbar__sort select { font-size: 12.5px; }
}
