/* Naturalszop design (November 2026).
   Zielen marki, miodowy akcent na promocjach i rabatach, karty produktow na bialym tle.
   Kolory i fonty bazowe ustawia kit Elementora (post 18); tu sa komponenty sklepu i sekcje strony glownej. */
:root {
  --nsz-bg: #F9FAF7;
  --nsz-band: #F1F4EE;
  --nsz-surface: #FFFFFF;
  --nsz-hero: #F6F1E4;
  --nsz-ink: #1B2A1E;
  --nsz-muted: #56625A;
  --nsz-line: #E3E8E0;
  --nsz-line-strong: #7E8A80;
  --nsz-accent: #3A6B32;
  --nsz-accent-hover: #2F5A29;
  --nsz-accent-soft: #E3EDDF;
  --nsz-honey: #E3A23B;
  --nsz-honey-ink: #3A2604;
  --nsz-honey-soft: #FBF1DE;
  --nsz-sale: #A3461A;
  --nsz-shadow: 0 10px 30px rgba(15, 25, 15, .07);
  --nsz-display: "Young Serif", Georgia, serif;
  --nsz-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --nsz-ease: cubic-bezier(.2, .7, .2, 1);
}
body { background: var(--nsz-bg); color: var(--nsz-ink); -webkit-font-smoothing: antialiased; }
.nsz-i { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- przyciski WooCommerce ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
  background: var(--nsz-accent); color: #fff; border: 0; border-radius: 999px;
  font-family: var(--nsz-ui); font-weight: 600; font-size: 15px; line-height: 1.2; padding: 13px 24px;
  transition: background 180ms var(--nsz-ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--nsz-accent-hover); color: #fff; }
.woocommerce a.button.disabled, .woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { background: var(--nsz-accent); color: #fff; opacity: .5; }

/* ---------- karta produktu na liscie ---------- */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  display: flex; flex-direction: column; text-align: left;
  background: var(--nsz-surface); border: 1px solid var(--nsz-line); border-radius: 16px; padding: 12px;
  transition: border-color 180ms var(--nsz-ease), box-shadow 180ms var(--nsz-ease);
}
.woocommerce ul.products li.product:hover { border-color: var(--nsz-line-strong); box-shadow: var(--nsz-shadow); }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { flex: 1; display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.woocommerce ul.products li.product a img {
  width: 100%; aspect-ratio: 1; object-fit: contain; background: #fff; border-radius: 10px; margin: 0 0 12px;
  transition: scale 300ms var(--nsz-ease);
}
.woocommerce ul.products li.product:hover a img { scale: 1.03; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--nsz-ui); font-size: 15px; font-weight: 500; line-height: 1.35; color: var(--nsz-ink); padding: 0 2px; margin: 0 0 6px;
}
.woocommerce ul.products li.product .price {
  margin-top: auto; padding: 8px 2px 0; color: var(--nsz-ink); font-family: var(--nsz-ui); font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums;
}
.woocommerce ul.products li.product .price del { color: var(--nsz-muted); font-size: 14px; font-weight: 400; opacity: 1; }
.woocommerce ul.products li.product .price ins { color: var(--nsz-sale); text-decoration: none; }
.woocommerce ul.products li.product .naturalszop-unit-price { display: block; margin: 2px 0 0; }
.woocommerce ul.products li.product .button { margin: 12px 2px 2px; align-self: stretch; text-align: center; font-size: 14px; padding: 11px 16px; }
.woocommerce ul.products li.product .added_to_cart { display: block; text-align: center; padding-top: 8px; font-size: 14px; font-weight: 600; color: var(--nsz-accent); }
.woocommerce ul.products li.product .star-rating { margin: 0 2px 6px; color: var(--nsz-honey); font-size: 13px; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
  top: 20px; left: 20px; right: auto; margin: 0; min-width: 0; min-height: 0; padding: 3px 8px; line-height: 1.4;
  background: var(--nsz-honey); color: var(--nsz-honey-ink); border-radius: 6px; font-size: 12px; font-weight: 600;
}
.nsz-deal {
  align-self: flex-start; display: inline-block; margin: 2px 2px 0; padding: 2px 8px; border-radius: 999px;
  background: var(--nsz-honey-soft); color: var(--nsz-honey-ink); font-size: 12px; font-weight: 600; line-height: 1.5;
}
.woocommerce ul.products li.product.outofstock a img { opacity: .55; }

/* ---------- strona produktu ---------- */
.single-product .product_title { font-family: var(--nsz-display); font-weight: 400; line-height: 1.15; color: var(--nsz-ink); }
.single-product .elementor-widget-woocommerce-product-price .price,
.single-product div.product p.price { color: var(--nsz-ink); font-size: 28px; font-weight: 600; font-variant-numeric: tabular-nums; }
.single-product div.product p.price ins { color: var(--nsz-sale); text-decoration: none; }
.single-product div.product p.price del { color: var(--nsz-muted); font-size: 18px; font-weight: 400; }
.single-product .woocommerce-product-gallery__image img, .single-product .woocommerce-product-gallery img { border-radius: 16px; background: #fff; }
.single-product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.single-product form.cart .quantity { margin: 0 !important; }
.single-product form.cart .quantity .qty {
  height: 52px; width: 84px; border: 1px solid var(--nsz-line-strong); border-radius: 999px; background: #fff;
  font-size: 16px; font-weight: 600; text-align: center;
}
.single-product form.cart .single_add_to_cart_button { flex: 1 1 14rem; min-height: 52px; font-size: 16px; padding: 14px 28px; }
.nsz-tiers { width: 100%; margin: 16px 0; }
.nsz-tiers-title { font-size: 14px; font-weight: 600; margin: 0 0 8px; }
.nsz-tiers-title span { font-weight: 400; color: var(--nsz-muted); }
.nsz-tiers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.nsz-tier {
  display: grid; gap: 2px; padding: 12px 8px; text-align: center; background: #fff;
  border: 1px solid var(--nsz-line); border-radius: 10px; transition: background 180ms var(--nsz-ease), border-color 180ms var(--nsz-ease);
}
.nsz-tier small { font-size: 12px; color: var(--nsz-muted); }
.nsz-tier strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.nsz-tier em { font-style: normal; font-size: 12px; font-weight: 600; color: var(--nsz-sale); }
.nsz-tier[data-on="true"] { background: var(--nsz-honey-soft); border-color: var(--nsz-honey); box-shadow: inset 0 0 0 1px var(--nsz-honey); }
.naturalszop-qty-info { display: none; }
.nsz-pdp-perks { list-style: none; margin: 16px 0 0; padding: 16px; display: grid; gap: 8px; background: var(--nsz-band); border-radius: 10px; font-size: 14px; }
.nsz-pdp-perks li { display: flex; gap: 12px; align-items: center; margin: 0; }
.nsz-pdp-perks .nsz-i { width: 18px; height: 18px; color: var(--nsz-accent); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 999px 999px 0 0; }
.nsz-buybar { display: none; }
@media (max-width: 820px) {
  .nsz-buybar[data-show="true"] {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 12px); background: #fff; border-top: 1px solid var(--nsz-line);
    box-shadow: 0 -8px 24px rgba(15, 25, 15, .08); animation: nsz-bar-in 200ms var(--nsz-ease);
  }
  .nsz-buybar-price { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
  .nsz-buybar button.nsz-buybar-btn {
    display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 24px; border: 0; border-radius: 999px;
    background: var(--nsz-accent); color: #fff; font-weight: 600; font-size: 16px; cursor: pointer;
  }
  .nsz-buybar-btn .nsz-i { width: 18px; height: 18px; }
}
@keyframes nsz-bar-in { from { translate: 0 100%; } to { translate: 0 0; } }

/* ---------- komunikaty, formularze, koszyk i kasa ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border: 0; border-left: 4px solid var(--nsz-accent); border-radius: 10px; background: var(--nsz-accent-soft); color: var(--nsz-ink);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--nsz-accent); }
.woocommerce-error { border-left-color: #B3261E; background: #FBEAEA; }
.woocommerce form .form-row label { font-size: 14px; font-weight: 500; color: var(--nsz-ink); }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce-page form .form-row .input-text,
.woocommerce .select2-container .select2-selection--single, .woocommerce .coupon .input-text {
  min-height: 48px; padding: 10px 14px; border: 1px solid var(--nsz-line-strong); border-radius: 10px; background: #fff; color: var(--nsz-ink); font-size: 15px;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; padding: 0; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 10px; right: 8px; }
.woocommerce form .form-row .input-text:focus, .woocommerce form .form-row select:focus { outline: 2px solid var(--nsz-accent); outline-offset: 1px; border-color: var(--nsz-accent); }
.woocommerce table.shop_table { border: 1px solid var(--nsz-line); border-radius: 16px; background: #fff; border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--nsz-line); padding: 14px 16px; }
.woocommerce-cart table.cart img { width: 72px; border-radius: 8px; }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout h3, #order_review_heading { font-family: var(--nsz-display); font-weight: 400; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 {
  background: #fff; border: 1px solid var(--nsz-line); border-radius: 16px; padding: 24px; margin-bottom: 20px;
}
.woocommerce-checkout #order_review { background: #fff; border: 1px solid var(--nsz-line); border-radius: 16px; padding: 24px; }
.woocommerce-checkout #order_review table.shop_table { border: 0; border-radius: 0; }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 0; margin: 0 0 16px; }
.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none; margin: 0 0 8px; padding: 14px 16px; border: 1px solid var(--nsz-line); border-radius: 10px; background: #fff;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--nsz-accent); background: var(--nsz-accent-soft); box-shadow: inset 0 0 0 1px var(--nsz-accent); }
.woocommerce-checkout #payment ul.payment_methods li input { accent-color: var(--nsz-accent); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: 10px; color: var(--nsz-ink); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.woocommerce-checkout #payment div.place-order { padding: 0; }
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { width: 100%; float: none; min-height: 56px; font-size: 17px; margin-top: 12px; }
.woocommerce ul#shipping_method li { margin-bottom: 8px; }
.woocommerce ul#shipping_method input { accent-color: var(--nsz-accent); }

/* ---------- wysuwany koszyk (Side Cart) ---------- */
.xoo-wsc-container { font-family: var(--nsz-ui); color: var(--nsz-ink); }
.xoo-wsc-header { border-bottom: 1px solid var(--nsz-line); }
.xoo-wsch-text { font-family: var(--nsz-display); font-weight: 400; color: var(--nsz-ink); }
.xoo-wsc-product { border-bottom: 1px solid var(--nsz-line); }
.xoo-wsc-img-col img { border-radius: 8px; background: #fff; }
.xoo-wsc-pname, .xoo-wsc-pname a { color: var(--nsz-ink); font-weight: 500; font-size: 14px; }
.xoo-wsc-footer { border-top: 1px solid var(--nsz-line); }
.xoo-wsc-ft-btn { border-radius: 999px !important; font-weight: 600 !important; text-transform: none !important; }
.nsz-cart-deal {
  display: flex; gap: 8px; align-items: center; margin: 0 0 12px; padding: 8px 12px; border-radius: 10px;
  background: var(--nsz-honey-soft); color: var(--nsz-honey-ink); font-size: 14px; line-height: 1.4;
}
.nsz-cart-deal .nsz-i { width: 16px; height: 16px; }

/* ---------- sekcje strony glownej ---------- */
.nsz-wrap { max-width: 1200px; margin-inline: auto; padding-inline: 16px; }
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode > section[class^="nsz-"]),
.elementor-widget-shortcode:has(> .elementor-shortcode > section[class^="nsz-"]) { width: 100%; margin: 0 !important; }
.nsz-eyebrow { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--nsz-accent); }
.nsz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 26px;
  border-radius: 999px; border: 1px solid transparent; font-family: var(--nsz-ui); font-weight: 600; font-size: 16px; text-decoration: none;
  transition: background 180ms var(--nsz-ease), border-color 180ms var(--nsz-ease);
}
.nsz-btn .nsz-i { width: 18px; height: 18px; }
a.nsz-btn.nsz-btn-primary, a.nsz-btn.nsz-btn-primary:visited { background: var(--nsz-accent); color: #fff; }
a.nsz-btn.nsz-btn-primary:hover, a.nsz-btn.nsz-btn-primary:focus { background: var(--nsz-accent-hover); color: #fff; }
a.nsz-btn.nsz-btn-ghost, a.nsz-btn.nsz-btn-ghost:visited { background: transparent; color: var(--nsz-ink); border-color: var(--nsz-line-strong); }
a.nsz-btn.nsz-btn-ghost:hover, a.nsz-btn.nsz-btn-ghost:focus { border-color: var(--nsz-ink); background: #fff; color: var(--nsz-ink); }
.nsz-link { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; color: var(--nsz-accent); text-decoration: none; }
.nsz-link:hover { text-decoration: underline; text-underline-offset: 4px; color: var(--nsz-accent-hover); }
.nsz-link .nsz-i { width: 18px; height: 18px; }
.nsz-sec { padding-block: 64px; }
.nsz-band { background: var(--nsz-band); }
.nsz-head-row { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; align-items: end; margin-bottom: 24px; }
.nsz-sec h2, .nsz-hero h1 { font-family: var(--nsz-display); font-weight: 400; color: var(--nsz-ink); letter-spacing: -.01em; text-wrap: balance; margin: 0; }
.nsz-sec h2 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.25rem); line-height: 1.15; }
.nsz-center { display: flex; margin: 24px 0 0; }

.nsz-hero { background: radial-gradient(60% 90% at 78% 45%, var(--nsz-honey-soft), transparent 70%), var(--nsz-hero); }
.nsz-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; align-items: center; padding-block: 48px 104px; min-height: 480px; }
.nsz-hero h1 { font-size: clamp(2.25rem, 1.5rem + 3.2vw, 4rem); line-height: 1.08; margin-top: 12px; }
.nsz-hero-lead { margin: 16px 0 0; font-size: 18px; line-height: 1.5; max-width: 46ch; color: var(--nsz-muted); }
.nsz-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.nsz-hero-media { position: relative; }
.nsz-hero-media img { display: block; width: 100%; aspect-ratio: 812 / 510; object-fit: cover; object-position: 100% 50%; mix-blend-mode: multiply; }
.nsz-hero-tag {
  position: absolute; top: -4%; right: -2%; width: 104px; aspect-ratio: 1; margin: 0; display: grid; place-content: center; text-align: center;
  background: var(--nsz-honey); color: var(--nsz-honey-ink); border-radius: 50%; rotate: 8deg;
  font-size: 12px; font-weight: 600; line-height: 1.2; letter-spacing: .02em;
}
.nsz-hero-tag strong { display: block; font-family: var(--nsz-display); font-weight: 400; font-size: 1.75rem; letter-spacing: 0; }

.nsz-perks { position: relative; z-index: 3; margin-top: -48px; }
.nsz-perks-list {
  list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  background: #fff; border: 1px solid var(--nsz-line); border-radius: 16px; box-shadow: var(--nsz-shadow);
}
.nsz-perks-list li { display: flex; gap: 12px; align-items: center; padding: 20px 24px; min-width: 0; margin: 0; }
.nsz-perks-list li + li { border-left: 1px solid var(--nsz-line); }
.nsz-perk-ico { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--nsz-accent-soft); color: var(--nsz-accent); }
.nsz-perks strong { display: block; font-weight: 600; font-size: 14px; line-height: 1.3; }
.nsz-perks span span { display: block; font-size: 14px; color: var(--nsz-muted); line-height: 1.4; margin-top: 2px; }

.nsz-cats-sec { padding-top: 48px; }
.nsz-cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px; }
.nsz-cats li { margin: 0; }
.nsz-cat {
  display: grid; justify-items: center; gap: 6px; height: 100%; padding: 16px 8px; text-align: center; text-decoration: none; color: var(--nsz-ink);
  background: #fff; border: 1px solid var(--nsz-line); border-radius: 16px; transition: border-color 180ms var(--nsz-ease), translate 180ms var(--nsz-ease);
}
a.nsz-cat:hover, a.nsz-cat:focus { border-color: var(--nsz-line-strong); translate: 0 -2px; color: var(--nsz-ink); }
.nsz-cat img { width: 76px; height: 76px; object-fit: contain; border-radius: 10px; background: #fff; }
.nsz-cat strong { font-size: 14px; font-weight: 600; line-height: 1.3; }
.nsz-cat span { font-size: 12px; color: var(--nsz-muted); }
.nsz-cat[data-hot="true"] { background: var(--nsz-honey-soft); border-color: var(--nsz-honey); }

.nsz-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.nsz-tabs button.nsz-tab {
  min-height: 40px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--nsz-line-strong); background: #fff; color: var(--nsz-ink);
  font-family: var(--nsz-ui); font-size: 14px; font-weight: 600; cursor: pointer; transition: background 180ms var(--nsz-ease), color 180ms var(--nsz-ease);
}
.nsz-tabs button.nsz-tab:hover, .nsz-tabs button.nsz-tab:focus { border-color: var(--nsz-ink); background: #fff; color: var(--nsz-ink); }
.nsz-tabs button.nsz-tab[aria-selected="true"], .nsz-tabs button.nsz-tab[aria-selected="true"]:hover { background: var(--nsz-ink); border-color: var(--nsz-ink); color: #fff; }
.nsz-panel ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0 !important; }
.nsz-panel ul.products::before, .nsz-panel ul.products::after { display: none !important; }
.nsz-panel ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }

.nsz-story { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.nsz-story figure { position: relative; margin: 0; }
.nsz-story figure img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 24px; }
.nsz-story figcaption { position: absolute; left: 16px; bottom: 16px; background: #fff; border-radius: 10px; padding: 8px 12px; font-size: 14px; font-weight: 500; }
.nsz-story-text { display: grid; gap: 16px; justify-items: start; }
.nsz-story-text p { margin: 0; color: var(--nsz-muted); max-width: 60ch; }
.nsz-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.nsz-checks li { display: flex; gap: 12px; margin: 0; }
.nsz-checks .nsz-i { color: var(--nsz-accent); margin-top: 2px; }

.nsz-promo {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; align-items: center;
  padding: 32px 40px; background: var(--nsz-hero); border-radius: 24px; overflow: hidden;
}
.nsz-promo-img { display: block; width: 100%; max-height: 380px; object-fit: contain; mix-blend-mode: multiply; }
.nsz-promo p { margin: 12px 0 0; max-width: 52ch; color: var(--nsz-muted); }
.nsz-promo .nsz-eyebrow { margin: 0 0 8px; color: var(--nsz-accent); }
.nsz-award { display: flex; align-items: center; gap: 12px; margin-top: 20px !important; font-size: 14px; font-weight: 500; color: var(--nsz-ink) !important; }
.nsz-award img { width: 64px; height: 64px; border-radius: 50%; mix-blend-mode: multiply; }
.nsz-promo .nsz-btn { margin-top: 24px; }

.nsz-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.nsz-post {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--nsz-line); border-radius: 16px; overflow: hidden;
  text-decoration: none; color: var(--nsz-ink); transition: border-color 180ms var(--nsz-ease);
}
.nsz-post:hover { border-color: var(--nsz-line-strong); color: var(--nsz-ink); }
.nsz-ph { aspect-ratio: 4 / 3; background: #fff; overflow: hidden; }
.nsz-ph img { width: 100%; height: 100%; object-fit: contain; transition: scale 300ms var(--nsz-ease); }
.nsz-post:hover .nsz-ph img { scale: 1.03; }
.nsz-post-body { padding: 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.nsz-post time { font-size: 12px; color: var(--nsz-muted); letter-spacing: .04em; text-transform: uppercase; }
.nsz-post h3 { margin: 0; font-family: var(--nsz-display); font-weight: 400; font-size: 18px; line-height: 1.3; }
.nsz-post p { margin: 0; font-size: 14px; color: var(--nsz-muted); }
.nsz-more { margin-top: auto; padding-top: 8px; font-size: 14px; font-weight: 600; color: var(--nsz-accent); }

@media (max-width: 1080px) {
  .nsz-cats { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 128px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 2px; }
  .nsz-cats::-webkit-scrollbar { display: none; }
  .nsz-cats li { scroll-snap-align: start; }
  .nsz-panel ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .nsz-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; padding-block: 24px 88px; min-height: 0; }
  .nsz-hero-media { order: -1; }
  .nsz-hero-media img { max-height: 220px; object-fit: contain; }
  .nsz-hero-tag { width: 84px; top: -6%; right: 0; }
  .nsz-hero-tag strong { font-size: 1.35rem; }
  .nsz-hero-cta .nsz-btn { flex: 1 1 12rem; }
  .nsz-perks { margin-top: -40px; }
  .nsz-perks-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsz-perks-list li { padding: 16px; }
  .nsz-perks-list li + li { border-left: 0; }
  .nsz-perks-list li:nth-child(even) { border-left: 1px solid var(--nsz-line); }
  .nsz-perks-list li:nth-child(n+3) { border-top: 1px solid var(--nsz-line); }
  .nsz-story, .nsz-promo { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nsz-promo { padding: 24px; }
  .nsz-posts { grid-template-columns: minmax(0, 1fr); }
  .nsz-post { display: grid; grid-template-columns: 140px minmax(0, 1fr); }
  .nsz-ph { aspect-ratio: auto; height: 100%; }
}
@media (max-width: 640px) {
  .nsz-sec { padding-block: 48px; }
  .nsz-panel ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .woocommerce ul.products li.product { padding: 8px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
  .nsz-perks-list li { flex-direction: column; align-items: flex-start; gap: 8px; }
  .nsz-perk-ico { width: 36px; height: 36px; }
  .nsz-post { grid-template-columns: minmax(0, 1fr); }
  .nsz-ph { aspect-ratio: 16 / 9; height: auto; }
  .nsz-tiers-grid { gap: 6px; }
  .woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2, .woocommerce-checkout #order_review { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .nsz-buybar, .nsz-cat, .nsz-post, .woocommerce ul.products li.product a img { animation: none !important; transition: none !important; }
}

/* ---------- naglowek (szablon UAE 70) ---------- */
.elementor-70 .elementor-element-198a63c5 { background: var(--nsz-accent) !important; }
.elementor-70 .elementor-element-198a63c5 :is(span, a, i, svg, .elementor-icon-list-text) { color: #fff !important; fill: #fff !important; }
.elementor-70 .elementor-element-198a63c5 .elementor-divider-separator { border-color: rgba(255, 255, 255, .35) !important; }
.elementor-70 .elementor-element-198a63c5 .elementor-social-icon { background: transparent !important; }
.elementor-70 .elementor-element-da012df { border-bottom: 1px solid var(--nsz-line); }

/* ---------- szablon karty produktu (Elementor 221) ---------- */
/* widget "star-rating" w szablonie pokazywal stale 5 gwiazdek przy kazdym produkcie, niezaleznie od opinii */
.elementor-221 .elementor-widget-star-rating { display: none !important; }
.single-product .elementor-widget-woocommerce-product-title .product_title {
  font-family: var(--nsz-display) !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: -.01em !important; line-height: 1.15 !important;
}
.single-product .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button {
  text-transform: none !important; letter-spacing: 0 !important; border-radius: 999px !important; font-family: var(--nsz-ui) !important; font-weight: 600 !important;
}
.single-product .elementor-widget-woocommerce-product-add-to-cart .quantity .qty { border-radius: 999px !important; height: 52px !important; }
.single-product .woocommerce-tabs .tabs li a { text-transform: none !important; }
.single-product .stock.in-stock { color: var(--nsz-accent); font-size: 14px; font-weight: 500; }
.xoo-wsc-ft-btn-continue { background: #fff !important; color: var(--nsz-ink) !important; border: 1px solid var(--nsz-line-strong) !important; }
.xoo-wsc-ft-btn-continue:hover { border-color: var(--nsz-ink) !important; }
.xoo-wsc-ft-btn-cart { background: #fff !important; color: var(--nsz-accent) !important; border: 1px solid var(--nsz-accent) !important; }
.xoo-wsc-ft-totals { font-variant-numeric: tabular-nums; }
.woocommerce-checkout .elementor-widget-woocommerce-checkout-page :is(h3, .e-checkout-secondary-title, .woocommerce-billing-fields h3, #order_review_heading),
.woocommerce-cart .elementor-widget-woocommerce-cart h2 {
  font-family: var(--nsz-display) !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important;
}
@media (max-width: 640px) {
  .single-product form.cart .single_add_to_cart_button { flex: 1 1 0 !important; min-width: 0 !important; padding-inline: 16px !important; }
  .single-product form.cart { flex-wrap: nowrap; }
}

/* ---------- baner cookies (Cookie Notice) jako okno na srodku ekranu ----------
   Logika zgody (cookie_notice_accepted, Consent Mode v2 w GTM) zostaje bez zmian, zmienia sie tylko wyglad.
   "Akceptuje" i "Odrzucam" maja ten sam rozmiar i sa obok siebie, zeby odmowa byla rownie latwa. */
#cookie-notice:is(.cookie-notice-visible, .cn-animated:not(.cookie-revoke-visible)) {
  position: fixed !important; inset: 0 !important; z-index: 100000 !important; display: grid !important; place-items: center;
  padding: 16px; background: rgba(15, 25, 15, .45) !important; font-family: var(--nsz-ui) !important; min-width: 0 !important;
}
#cookie-notice:is(.cookie-notice-visible, .cn-animated:not(.cookie-revoke-visible)) .cookie-notice-container {
  position: relative; width: min(520px, 100%); max-height: calc(100vh - 32px); overflow: auto; margin: 0; text-align: left;
  display: grid; gap: 20px; padding: 28px 28px 24px; background: #fff; color: var(--nsz-ink) !important;
  border-radius: 20px; box-shadow: 0 24px 60px rgba(15, 25, 15, .25);
}
#cookie-notice:is(.cookie-notice-visible, .cn-animated:not(.cookie-revoke-visible)) .cookie-notice-container::before {
  content: "Pliki cookies"; font-family: var(--nsz-display); font-size: 24px; line-height: 1.2; color: var(--nsz-ink);
}
#cookie-notice .cn-text-container { margin: 0 !important; font-size: 15px; line-height: 1.55; color: var(--nsz-muted); display: block; }
#cookie-notice .cn-buttons-container { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 !important; }
#cookie-notice .cn-button {
  margin: 0 !important; min-height: 48px; padding: 0 16px !important; border-radius: 999px !important; font-family: var(--nsz-ui) !important;
  font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.2 !important;
  cursor: pointer; transition: background 180ms var(--nsz-ease), border-color 180ms var(--nsz-ease);
}
#cookie-notice #cn-accept-cookie { background: var(--nsz-accent) !important; color: #fff !important; border: 1px solid var(--nsz-accent) !important; }
#cookie-notice #cn-accept-cookie:hover { background: var(--nsz-accent-hover) !important; }
#cookie-notice #cn-refuse-cookie { background: #fff !important; color: var(--nsz-ink) !important; border: 1px solid var(--nsz-ink) !important; }
#cookie-notice #cn-refuse-cookie:hover { background: var(--nsz-band) !important; }
#cookie-notice #cn-more-info {
  grid-column: 1 / -1; min-height: 40px; background: transparent !important; border: 0 !important; color: var(--nsz-accent) !important;
  text-decoration: underline !important; text-underline-offset: 3px; font-weight: 500 !important;
}
#cookie-notice .cn-button:focus-visible { outline: 3px solid var(--nsz-honey) !important; outline-offset: 2px; }
/* Cookie Notice zdejmuje .cookie-notice-visible przed animacja znikania; okno trzyma wyglad takze w trakcie .cn-animated,
   inaczej na chwile wracal domyslny pasek na dole ekranu. */
/* krzyzyk zapisywal zgode ("accept") mimo etykiety "Odrzucam", wiec go ukrywamy */
#cookie-notice .cn-close-icon { display: none !important; }
/* po decyzji: maly przycisk do zmiany ustawien w lewym dolnym rogu */
#cookie-notice.cookie-revoke-visible {
  position: fixed !important; inset: auto auto 16px 16px !important; width: auto !important; min-width: 0 !important; z-index: 9980 !important;
  background: transparent !important; box-shadow: none !important;
}
#cookie-notice.cookie-revoke-visible .cookie-revoke-container { padding: 0 !important; }
#cookie-notice.cookie-revoke-visible .cn-text-container { display: none; }
#cookie-notice.cookie-revoke-visible .cn-buttons-container { display: block !important; }
#cookie-notice #cn-revoke-cookie {
  min-height: 40px; background: #fff !important; color: var(--nsz-ink) !important; border: 1px solid var(--nsz-line-strong) !important;
  box-shadow: var(--nsz-shadow); font-size: 13px !important;
}
@media (max-width: 420px) {
  #cookie-notice:is(.cookie-notice-visible, .cn-animated:not(.cookie-revoke-visible)) { place-items: end center; padding: 12px; }
  #cookie-notice:is(.cookie-notice-visible, .cn-animated:not(.cookie-revoke-visible)) .cookie-notice-container { padding: 22px 20px 18px; }
  #cookie-notice .cn-buttons-container { grid-template-columns: 1fr; }
}

/* ---------- stopka [nsz_footer] w szablonie UAE 78 ---------- */
.nsz-footer { background: var(--nsz-band); border-top: 1px solid var(--nsz-line); color: var(--nsz-ink); font-family: var(--nsz-ui); font-size: 14px; }
.nsz-fmain { display: grid; grid-template-columns: 1.3fr repeat(3, minmax(0, 1fr)) 1.3fr; gap: 32px; padding-block: 48px 40px; }
.nsz-footer h2 { margin: 0 0 12px; font-family: var(--nsz-ui); font-size: 14px; font-weight: 600; letter-spacing: 0; line-height: 1.3; color: var(--nsz-ink); }
.nsz-footer ul { list-style: none; margin: 0; padding: 0; }
.nsz-flist { display: grid; gap: 8px; }
.nsz-flist li { margin: 0; }
.nsz-footer a { color: var(--nsz-muted); text-decoration: none; }
.nsz-footer a:hover { color: var(--nsz-ink); text-decoration: underline !important; text-underline-offset: 3px; }
.nsz-fbrand p { margin: 12px 0 16px; color: var(--nsz-muted); max-width: 30ch; line-height: 1.5; }
.nsz-flogo img { display: block; width: 120px; height: auto; }
.nsz-fsocial { display: flex; gap: 8px; }
.nsz-fsocial a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1px solid var(--nsz-line); color: var(--nsz-accent); }
.nsz-fsocial a:hover { border-color: var(--nsz-accent); color: var(--nsz-accent); }
.nsz-fsocial .nsz-i { width: 18px; height: 18px; }
.nsz-fcontact .nsz-flist a { display: inline-flex; gap: 8px; align-items: center; color: var(--nsz-ink); font-weight: 500; }
.nsz-fcontact .nsz-i { width: 16px; height: 16px; color: var(--nsz-accent); }
.nsz-fcontact address { margin-top: 12px; font-style: normal; color: var(--nsz-muted); line-height: 1.6; }
.nsz-fbottom { border-top: 1px solid var(--nsz-line); }
.nsz-fbottom .nsz-wrap { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; padding-block: 16px; color: var(--nsz-muted); font-size: 13px; }
.nsz-fbottom p { margin: 0; }
.nsz-fbottom ul { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-left: auto; }
.nsz-fbottom a { color: var(--nsz-muted); text-decoration: underline; text-underline-offset: 3px; }
.elementor-78 .elementor-widget-shortcode { margin: 0 !important; width: 100%; }
@media (max-width: 1080px) { .nsz-fmain { grid-template-columns: repeat(3, minmax(0, 1fr)); } .nsz-fbrand { grid-column: 1 / -1; } }
@media (max-width: 640px) {
  .nsz-fmain { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; padding-block: 36px 28px; }
  .nsz-fcontact { grid-column: 1 / -1; }
  .nsz-fbottom ul { margin-left: 0; }
}

/* ---------- dostepnosc (WCAG 2.1 AA) ---------- */
.screen-reader-text, .nsz-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
/* widoczny fokus przy obsludze klawiatura */
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--nsz-honey) !important; outline-offset: 2px !important; box-shadow: 0 0 0 5px rgba(27, 42, 30, .85) !important;
}
.nsz-skip {
  position: fixed; left: 16px; top: -80px; z-index: 100001; padding: 12px 18px; border-radius: 10px;
  background: var(--nsz-ink); color: #fff !important; font-weight: 600; text-decoration: none;
}
.nsz-skip:focus { top: 16px; }
/* podkreslone linki w tresci, zeby nie rozpoznawac ich tylko po kolorze */
:is(.elementor-widget-text-editor, .woocommerce-product-details__short-description, .woocommerce-Tabs-panel, .term-description, .entry-content) a:not(.button):not(.elementor-button) {
  text-decoration: underline !important; text-underline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .elementor-invisible { visibility: visible !important; }
  .animated { animation: none !important; }
}
.woocommerce .woocommerce-breadcrumb, .woocommerce .woocommerce-breadcrumb a { color: var(--nsz-muted) !important; }
.woocommerce .woocommerce-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.single-product .stock, .single-product .elementor-widget-woocommerce-product-stock .stock { color: var(--nsz-accent) !important; font-weight: 500; }
.single-product .stock.out-of-stock { color: #B3261E !important; }

/* baner promocyjny na stronie glownej [nsz_home section="banner"] */
.nsz-banner-sec { padding-top: 40px; }
.nsz-banner { display: block; border-radius: 20px; overflow: hidden; box-shadow: var(--nsz-shadow); }
.nsz-banner img { display: block; width: 100%; height: auto; }
.nsz-banner:focus-visible { outline-offset: 4px !important; }

/* ---------- mega menu "Sklep" (panel z naturalszop-home.php, obsluga w design.js) ---------- */
.nsz-mega {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 9990;
  background: #fff; border-top: 1px solid var(--nsz-line); border-bottom: 1px solid var(--nsz-line);
  box-shadow: 0 18px 40px rgba(15, 25, 15, .10); font-family: var(--nsz-ui); color: var(--nsz-ink);
  animation: nsz-mega-in 180ms var(--nsz-ease);
}
@keyframes nsz-mega-in { from { opacity: 0; translate: 0 -6px; } to { opacity: 1; translate: 0 0; } }
.nsz-mega ul { list-style: none; margin: 0; padding: 0; }
.nsz-mega li { margin: 0; }
.nsz-mega-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; padding-block: 28px 32px; }
.nsz-mega-title, .nsz-mega-label { margin: 0 0 12px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--nsz-muted); }
.nsz-mega-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 12px; }
.nsz-mega-cats a {
  display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px;
  border-radius: 10px; text-decoration: none !important; color: var(--nsz-ink); transition: background 180ms var(--nsz-ease);
}
.nsz-mega-cats a:hover, .nsz-mega-cats a:focus-visible { background: var(--nsz-band); color: var(--nsz-ink); }
.nsz-mega-cats img, .nsz-mega-noimg {
  width: 48px; height: 48px; object-fit: contain; border-radius: 8px; background: #fff; border: 1px solid var(--nsz-line);
  display: grid; place-items: center; color: var(--nsz-accent);
}
.nsz-mega-cats strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.3; }
.nsz-mega-cats a > span > span { display: block; font-size: 12px; color: var(--nsz-muted); }
.nsz-mega-links a {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0;
  border-bottom: 1px solid var(--nsz-line); color: var(--nsz-ink); font-size: 14px; font-weight: 500; text-decoration: none !important;
}
.nsz-mega-links li:first-child a { padding-top: 6px; }
.nsz-mega-links a:hover, .nsz-mega-links a:focus-visible { color: var(--nsz-accent); }
.nsz-mega-links .nsz-i { width: 16px; height: 16px; color: var(--nsz-muted); transition: translate 180ms var(--nsz-ease); }
.nsz-mega-links a:hover .nsz-i { translate: 3px 0; color: var(--nsz-accent); }
.nsz-mega-feature {
  display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: center; align-self: start;
  padding: 16px; background: var(--nsz-honey-soft); border-radius: 16px;
}
.nsz-mega-fimg img { display: block; width: 112px; height: 112px; object-fit: contain; border-radius: 10px; background: #fff; }
.nsz-mega-feature h3 { margin: 0; font-family: var(--nsz-display); font-weight: 400; font-size: 17px; line-height: 1.25; }
.nsz-mega-feature h3 a { color: var(--nsz-ink); text-decoration: none; }
.nsz-mega-feature h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.nsz-mega-price { margin: 8px 0 0; font-weight: 600; font-variant-numeric: tabular-nums; display: block !important; }
.nsz-mega-price .naturalszop-unit-price { display: inline; }
.nsz-mega-sold { margin: 4px 0 0; font-size: 12px; color: var(--nsz-muted); }
.nsz-mega-foot { border-top: 1px solid var(--nsz-line); background: var(--nsz-bg); }
.nsz-mega-foot p { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0 auto; padding-block: 12px; font-size: 13px; color: var(--nsz-muted); }
.nsz-mega-foot span { display: inline-flex; gap: 8px; align-items: center; }
.nsz-mega-foot .nsz-i { width: 16px; height: 16px; color: var(--nsz-accent); }
/* na komputerze stara lista rozwijana pod "Sklep" ustepuje mega menu */
.nsz-has-mega > .sub-menu { display: none !important; }
@media (max-width: 1240px) { .nsz-mega-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1024px) { .nsz-mega { display: none !important; } }
