/* ==========================================================================
   Nabiotech Agro — style motywu
   Klasy .nb-* nadawane są elementom Elementora (Zaawansowane → Klasy CSS),
   więc treści edytuje się w Elementorze, a wygląd pozostaje spójny.
   ========================================================================== */

:root {
	--nb-green: #0e3b2c;
	--nb-green-2: #17583f;
	--nb-green-3: #2f7550;
	--nb-accent: #6fa83a;
	--nb-sage: #e4ece0;
	--nb-sage-2: #eef3ea;
	--nb-bg: #f6f8f3;
	--nb-white: #fff;
	--nb-text: #2b3630;
	--nb-muted: #56645c;
	--nb-line: #dce5d7;
	--nb-radius: 18px;
	--nb-radius-lg: 26px;
	--nb-shadow: 0 10px 30px -12px rgba(14, 59, 44, .18), 0 2px 6px rgba(14, 59, 44, .05);
	--nb-shadow-lg: 0 24px 60px -24px rgba(14, 59, 44, .3);
	--nb-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--nb-sans: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--nb-script: "Caveat", "Segoe Script", cursive;
	--nb-wrap: 1240px;
	--nb-gutter: 24px;
	--nb-pad: clamp(64px, 8vw, 112px);
}

/* ---------- Baza ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
	margin: 0;
	background: var(--nb-bg);
	color: var(--nb-text);
	font-family: var(--nb-sans);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
a { color: var(--nb-green-2); }
a:hover, a:focus { color: var(--nb-green); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--nb-accent); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--nb-serif); color: var(--nb-green); font-weight: 600; letter-spacing: -.015em; }
.nb-ico { width: 1em; height: 1em; flex: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 8px; left: 8px; width: auto; height: auto; clip: auto; z-index: 1000; background: #fff; padding: 10px 16px; border-radius: 8px; }

/* Elementor — neutralizacja domyślnych odstępów */
.elementor .e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.elementor .e-con.nb-section { --position: relative; position: relative; overflow: hidden; }
.elementor .elementor-widget p:last-child { margin-bottom: 0; }
.elementor .elementor-widget p { margin: 0 0 .9em; }

/* ---------- Typografia ---------- */
.nb-h .elementor-heading-title { font-family: var(--nb-serif); color: var(--nb-green); font-weight: 600; letter-spacing: -.02em; }
.nb-h1 .elementor-heading-title { font-size: clamp(2.6rem, 5.2vw, 4.4rem); line-height: 1.02; font-weight: 700; }
.nb-h2 .elementor-heading-title { font-size: clamp(2.1rem, 3.8vw, 3.35rem); line-height: 1.06; font-weight: 700; }
.nb-h3 .elementor-heading-title { font-size: 1.3rem; line-height: 1.25; }
.nb-eyebrow .elementor-heading-title {
	font-family: var(--nb-sans); font-size: 13px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--nb-green); margin-bottom: 18px;
}
.nb-eyebrow--wide .elementor-heading-title { letter-spacing: .22em; font-weight: 600; }
.nb-eyebrow--lines .elementor-heading-title { display: inline-flex; align-items: center; gap: 18px; }
.nb-eyebrow--lines .elementor-heading-title::before,
.nb-eyebrow--lines .elementor-heading-title::after { content: ""; width: 56px; height: 1px; background: currentColor; opacity: .5; }
.nb-script .elementor-heading-title, .nb-script {
	font-family: var(--nb-script); font-weight: 500; font-size: 30px; line-height: 1.05;
	color: var(--nb-green); transform: rotate(-8deg); transform-origin: left center;
}
.nb-script--xl .elementor-heading-title { font-size: clamp(34px, 3.6vw, 46px); }
.nb-text { color: var(--nb-text); }
.nb-lead { font-size: 1.1rem; color: var(--nb-text); }
.nb-small, .nb-small p { font-size: .92rem; color: var(--nb-muted); }
.nb-center { text-align: center; }
.nb-pill {
	display: inline-block; padding: 2px 14px; border-radius: 999px; background: var(--nb-sage);
	color: var(--nb-green); font-weight: 700; white-space: nowrap;
}
.nb-pill--lg { font-family: var(--nb-serif); font-size: 1.6rem; padding: 6px 22px; letter-spacing: .01em; }

/* ---------- Przyciski ---------- */
.nb-btn .elementor-button, .nb-button {
	display: inline-flex; align-items: center; gap: 12px;
	background: var(--nb-green); color: #fff; border: 1.5px solid var(--nb-green);
	border-radius: 999px; padding: 15px 28px; font-family: var(--nb-sans);
	font-size: 15.5px; font-weight: 600; line-height: 1.2; text-decoration: none;
	box-shadow: 0 8px 20px -10px rgba(14, 59, 44, .55);
	transition: background .2s, color .2s, transform .2s, box-shadow .2s;
}
.nb-btn .elementor-button:hover, .nb-btn .elementor-button:focus, .nb-button:hover, .nb-button:focus {
	background: var(--nb-green-2); border-color: var(--nb-green-2); color: #fff; transform: translateY(-1px);
}
.nb-btn .elementor-button-content-wrapper { gap: 12px; align-items: center; }
.nb-btn .elementor-button-icon svg, .nb-button .nb-ico { width: 18px; height: 18px; fill: none; stroke: currentColor; }
.nb-btn .elementor-button-icon { display: inline-flex; transition: transform .2s; }
.nb-btn .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }
.nb-btn--outline .elementor-button, .nb-button--outline { background: transparent; color: var(--nb-green); box-shadow: none; }
.nb-btn--outline .elementor-button:hover, .nb-button--outline:hover { background: var(--nb-green); color: #fff; }
.nb-btn--lg .elementor-button, .nb-button--lg { padding: 18px 34px; font-size: 17px; }
.nb-btn--sm .elementor-button { padding: 10px 18px; font-size: 14px; }
.nb-btns.e-con { flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.nb-btns--center.e-con { justify-content: center; }
.nb-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; color: var(--nb-green); }
.nb-link .nb-ico { width: 16px; height: 16px; }

/* ---------- Ikony ---------- */
.nb-icon .elementor-icon, .nb-ibox .elementor-icon { color: var(--nb-green); font-size: 34px; fill: none; }
.nb-icon .elementor-icon svg, .nb-ibox .elementor-icon svg { width: 1em; height: 1em; fill: none; stroke: currentColor; }
.nb-icon .elementor-icon-wrapper { line-height: 0; }
.nb-icon--circle .elementor-icon-wrapper {
	width: 72px; height: 72px; border-radius: 50%; background: var(--nb-sage);
	display: inline-flex; align-items: center; justify-content: center;
}
.nb-icon--circle .elementor-icon { font-size: 32px; }
.nb-icon--solid .elementor-icon-wrapper { width: 70px; height: 70px; border-radius: 50%; background: var(--nb-green); display: inline-flex; align-items: center; justify-content: center; }
.nb-icon--solid .elementor-icon { color: #fff; font-size: 30px; }
.nb-ibox .elementor-icon-box-title { font-family: var(--nb-sans); font-size: 15px; font-weight: 600; color: var(--nb-text); margin: 0; }
.nb-ibox .elementor-icon-box-description { font-size: 14px; color: var(--nb-muted); margin: 2px 0 0; }
.nb-ibox .elementor-icon-box-wrapper { text-align: center; }
.nb-ibox .elementor-icon-box-icon { margin-bottom: 10px; }
.nb-ibox--row .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 16px; text-align: left; }
.nb-ibox--row .elementor-icon-box-icon { margin: 0; }
.nb-ibox--row .elementor-icon-box-icon .elementor-icon {
	width: 50px; height: 50px; border-radius: 50%; background: var(--nb-sage); font-size: 24px;
	display: inline-flex; align-items: center; justify-content: center;
}
.nb-ibox--row .elementor-icon-box-title { font-weight: 700; color: var(--nb-green); }
.nb-ibox--light .elementor-icon-box-icon .elementor-icon { background: rgba(255,255,255,.08); border: 1.5px solid rgba(255,255,255,.7); color: #fff; width: 58px; height: 58px; }
.nb-ibox--light .elementor-icon-box-title { color: #fff; font-family: var(--nb-serif); font-size: 18px; }
.nb-ibox--light .elementor-icon-box-description { color: rgba(255,255,255,.85); }
.nb-ibox--sm .elementor-icon-box-icon .elementor-icon { background: none; font-size: 34px; }
.nb-ilist .elementor-icon-list-item { font-size: 15.5px; padding: 5px 0; align-items: center; }
.nb-ilist .elementor-icon-list-icon svg { width: 22px !important; height: 22px; fill: none; stroke: #fff; background: var(--nb-green); border-radius: 50%; padding: 3px; }
.nb-ilist .elementor-icon-list-icon { padding-right: 10px; }
.nb-ilist .elementor-icon-list-text { color: var(--nb-text); }

/* ---------- Układ ---------- */
.nb-section.e-con { padding: var(--nb-pad) 0; }
.nb-inner.e-con {
	width: 100%; max-width: calc(var(--nb-wrap) + 2 * var(--nb-gutter));
	margin: 0 auto; padding: 0 var(--nb-gutter); position: relative; z-index: 2;
}
.nb-head.e-con { max-width: 640px; margin-bottom: 40px; }
.nb-head--center.e-con { max-width: 820px; margin-left: auto; margin-right: auto; text-align: center; align-items: center; }
.nb-head .nb-lead { margin-top: 18px; }

/* Sekcja „tekst + zdjęcie wychodzące do krawędzi” */
.nb-split.e-con { min-height: 620px; justify-content: center; }
.nb-split__content.e-con { width: 50%; max-width: 620px; position: relative; z-index: 3; }
.nb-split__content .nb-lead, .nb-split__content .nb-text { margin-top: 20px; max-width: 560px; }
.nb-split__media.e-con { position: absolute; top: 0; right: 0; bottom: 0; width: 54%; z-index: 1; }
.nb-cover.elementor-widget { position: absolute; inset: 0; width: 100%; height: 100%; }
.nb-cover img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; }
.nb-split__media .nb-cover img { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28%); mask-image: linear-gradient(90deg, transparent 0, #000 28%); }
.nb-split--compact.e-con { min-height: 540px; }

/* Elementy pływające: pismo odręczne i plakietki */
.nb-float.elementor-element { position: absolute; z-index: 4; width: auto; }
.nb-float--tl { top: 9%; left: 16%; }
.nb-float--tr { top: 9%; right: 6%; }
.nb-float--br { bottom: 9%; right: 6%; }
.nb-split__media .nb-script .elementor-heading-title { color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.35); font-size: 34px; }
.nb-badge.e-con {
	width: 156px; height: 156px; border-radius: 50%; background: var(--nb-green);
	box-shadow: 0 0 0 5px rgba(255,255,255,.4), var(--nb-shadow-lg);
	align-items: center; justify-content: center; text-align: center; padding: 18px;
}
.nb-badge .elementor-icon { color: #fff; font-size: 40px; }
.nb-badge__label .elementor-heading-title {
	color: #fff; font-family: var(--nb-sans); font-size: 12.5px; font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase; line-height: 1.3; margin-top: 8px;
}
.nb-badge__label .elementor-heading-title::after { content: ""; display: block; width: 28px; height: 1.5px; background: #fff; margin: 8px auto 0; opacity: .7; }

/* Wyróżnienie (callout) */
.nb-callout.e-con {
	margin-top: 28px; padding: 24px 28px; border-radius: var(--nb-radius);
	background: rgba(228, 236, 224, .75); gap: 22px; align-items: center; max-width: 580px;
}
.nb-callout__icon .elementor-icon-wrapper { width: 84px; height: 84px; border-radius: 50%; background: #d3e2cc; display: inline-flex; align-items: center; justify-content: center; }
.nb-callout__icon .elementor-icon { font-size: 36px; }
.nb-callout__text .elementor-heading-title { font-family: var(--nb-serif); font-size: 1.35rem; font-weight: 600; line-height: 1.3; color: var(--nb-green); }
.nb-callout--green .nb-callout__icon .elementor-icon-wrapper { background: var(--nb-green); }
.nb-callout--green .nb-callout__icon .elementor-icon { color: #fff; }
.nb-callout__body .nb-text { margin-top: 8px; font-size: 15px; color: var(--nb-muted); }
.nb-callout--line.e-con { background: none; padding: 8px 0; }
.nb-callout--line .nb-callout__icon .elementor-icon-wrapper { width: 64px; height: 64px; }
.nb-callout--line .nb-callout__text { border-left: 2px solid var(--nb-green); padding-left: 20px; }
.nb-callout--line .nb-callout__text .elementor-heading-title { font-family: var(--nb-sans); font-size: 1.05rem; font-weight: 700; }

/* ---------- S1 Hero ---------- */
.nb-hero.e-con { min-height: 660px; padding-top: 72px; padding-bottom: 72px; background: linear-gradient(180deg, #f3f6ef, var(--nb-bg)); }
.nb-hero .nb-lead { font-size: 1.3rem; }
.nb-hero__iung.e-con { margin-top: 36px; gap: 8px; }
.nb-hero__iung-note { font-size: 14px; color: var(--nb-muted); }
.nb-iung.e-con { flex-direction: row; align-items: center; gap: 14px; }
.nb-iung__logo {
	display: inline-flex; align-items: center; gap: 10px; font-family: var(--nb-sans);
	font-weight: 800; font-size: 26px; color: var(--nb-green); letter-spacing: .02em;
}
.nb-iung__logo::before { content: ""; width: 34px; height: 40px; border-radius: 4px 4px 14px 14px; background: #d6202a; box-shadow: inset 0 0 0 3px #fff, 0 0 0 1px #d6202a; }
.nb-iung__name { font-size: 12.5px; line-height: 1.35; color: var(--nb-muted); max-width: 250px; }
.nb-iung--lg .nb-iung__logo { font-size: 34px; }

/* ---------- S2 Pasek korzyści ---------- */
.nb-benefits.e-con { padding: 34px 0; background: #fff; border-top: 1px solid var(--nb-line); border-bottom: 1px solid var(--nb-line); }
.nb-benefits__row.e-con { justify-content: space-between; }
.nb-benefits__row > .elementor-widget { flex: 1; position: relative; }
.nb-benefits__row > .elementor-widget + .elementor-widget::before { content: ""; position: absolute; left: 0; top: 10%; bottom: 10%; width: 1px; background: var(--nb-line); }
.nb-benefits .elementor-icon { font-size: 36px; }

/* ---------- S3 Rolnik ---------- */
.nb-farmer.e-con { background: var(--nb-bg); }
.nb-farmer .nb-split__media .nb-script .elementor-heading-title { color: var(--nb-green); text-shadow: none; }
.nb-farmer .nb-float--tl { top: 12%; left: 4%; }

/* ---------- Kroki (S4, S5) ---------- */
.nb-steps.e-con { gap: 34px; align-items: stretch; }
.nb-step.e-con {
	flex: 1 1 0; min-width: 0; background: #fff; border-radius: var(--nb-radius);
	box-shadow: var(--nb-shadow); position: relative; overflow: visible;
}
.nb-step__media.e-con { height: 180px; position: relative; border-radius: var(--nb-radius) var(--nb-radius) 0 0; overflow: hidden; }
.nb-num {
	position: absolute; top: -14px; left: -10px; z-index: 3; width: 44px; height: 44px; border-radius: 50%;
	background: var(--nb-green); color: #fff; font-weight: 700; font-size: 17px;
	display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 0 0 4px #fff;
}
.nb-step__media .elementor-widget-html { position: static; }
.nb-step__media.e-con { overflow: visible; }
.nb-step__media .nb-cover { border-radius: var(--nb-radius) var(--nb-radius) 0 0; overflow: hidden; }
.nb-step__body.e-con { padding: 20px 20px 26px; align-items: center; text-align: center; gap: 8px; }
.nb-step__title .elementor-heading-title { font-family: var(--nb-sans); font-size: 15.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; line-height: 1.25; }
.nb-step__text { font-size: 14.5px; color: var(--nb-muted); }
.nb-steps--arrows .nb-step:not(:last-child)::after {
	content: "→"; position: absolute; right: -28px; top: 150px; font-size: 22px; color: var(--nb-green); line-height: 1;
}
.nb-step--usage .nb-icon--circle { margin-top: -56px; position: relative; z-index: 2; }
.nb-step--usage .nb-icon--circle .elementor-icon-wrapper { background: #eef3ea; box-shadow: 0 0 0 5px #fff; width: 78px; height: 78px; }
.nb-step--usage .nb-step__title .elementor-heading-title { font-family: var(--nb-serif); text-transform: none; font-size: 1.45rem; font-weight: 700; letter-spacing: -.01em; }
.nb-step--usage .nb-step__media.e-con { height: 170px; }

/* S4 */
.nb-how.e-con { background: linear-gradient(180deg, #f3f6ef 0%, #eaf1e5 100%); }
.nb-how__bg.e-con { position: absolute; top: 0; right: 0; width: 46%; height: 520px; z-index: 1; }
.nb-how__bg .nb-cover img { -webkit-mask-image: linear-gradient(90deg, transparent, #000 35%), linear-gradient(0deg, transparent, #000 40%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent, #000 35%), linear-gradient(0deg, transparent, #000 40%); mask-composite: intersect; }
.nb-how__bg .nb-float--tl { top: 14%; left: 10%; }
.nb-how__head.e-con { max-width: 660px; margin-bottom: 56px; }
.nb-how__foot.e-con {
	margin-top: 56px; padding: 28px 40px; border-radius: var(--nb-radius-lg);
	background: rgba(228, 236, 224, .8); align-items: center; justify-content: center; gap: 48px; flex-wrap: wrap;
}
.nb-how__foot .nb-btns { margin: 0; }

/* S5 */
.nb-usage.e-con { background: #fff; }
.nb-usage .nb-lead p { line-height: 1.8; }
.nb-dose.e-con {
	margin: 56px auto 0; max-width: 820px; width: 100%; padding: 30px 44px; border-radius: var(--nb-radius-lg);
	background: var(--nb-sage-2); border: 1px solid var(--nb-line); align-items: center; gap: 36px; box-shadow: var(--nb-shadow);
}
.nb-dose__icon .elementor-icon { font-size: 76px; }
.nb-dose__body.e-con { border-left: 1px solid #c9d6c3; padding-left: 36px; }
.nb-dose__body .nb-eyebrow .elementor-heading-title { margin-bottom: 4px; }
.nb-dose__value .elementor-heading-title { font-family: var(--nb-serif); font-weight: 700; color: var(--nb-green); font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.05; letter-spacing: -.02em; }
.nb-dose__note { margin-top: 6px; color: var(--nb-muted); }
.nb-usage .nb-btns { margin-top: 40px; }
.nb-usage .nb-float--br { bottom: 0; right: var(--nb-gutter); }

/* ---------- S6 Badania ---------- */
.nb-research.e-con { background: linear-gradient(180deg, var(--nb-bg), #edf3e9); }
.nb-research__top.e-con { justify-content: space-between; align-items: flex-start; gap: 40px; }
.nb-research__top .nb-head { max-width: 700px; }
.nb-stats.e-con { gap: 20px; margin-bottom: 14px; }
.nb-stat.e-con {
	flex: 1 1 0; align-items: center; gap: 20px; padding: 26px 30px; border-radius: var(--nb-radius);
	background: rgba(255,255,255,.7); border: 1px solid var(--nb-line);
}
.nb-stat .elementor-icon { font-size: 60px; }
.nb-stat__value .elementor-heading-title { font-family: var(--nb-serif); font-size: clamp(2.4rem, 4vw, 3.4rem); font-weight: 700; color: var(--nb-green); line-height: 1; letter-spacing: -.02em; }
.nb-stat__value small { font-size: .5em; margin-left: 4px; }
.nb-stat__pre { display: block; font-size: .36em; font-family: var(--nb-sans); letter-spacing: 0; margin-bottom: 4px; text-align: center; }
.nb-stat__label { font-size: 15px; color: var(--nb-text); margin-top: 6px; font-weight: 600; }
.nb-stat--hl.e-con { background: var(--nb-sage); }
.nb-stat--hl .elementor-icon { font-size: 40px; }
.nb-stat--viveko.e-con { background: #fff; box-shadow: var(--nb-shadow); }
.nb-research__note { font-size: 14px; color: var(--nb-muted); font-style: italic; margin-bottom: 36px; }
.nb-photos.e-con { gap: 20px; }
.nb-photo.e-con { flex: 1 1 0; background: #fff; border-radius: var(--nb-radius); overflow: hidden; box-shadow: var(--nb-shadow); }
.nb-photo .nb-cover { position: relative; height: 230px; }
.nb-photo__caption { padding: 18px 22px 22px; font-family: var(--nb-serif); font-weight: 600; font-size: 1.12rem; color: var(--nb-green); line-height: 1.35; }
.nb-research__foot.e-con { margin-top: 40px; justify-content: space-between; align-items: center; gap: 28px; flex-wrap: wrap; }
.nb-research__claim.e-con { align-items: center; gap: 22px; max-width: 620px; flex: 1 1 420px; }
.nb-research__claim .nb-text { font-family: var(--nb-serif); font-size: 1.2rem; color: var(--nb-green); line-height: 1.4; }
.nb-research__foot .nb-btns { margin: 0; }

/* ---------- S7 Dla kogo ---------- */
.nb-farms.e-con { background: linear-gradient(180deg, #f1f5ee, var(--nb-bg)); }
.nb-farms .nb-float--tl { top: -10px; left: var(--nb-gutter); }
.nb-farms .nb-float--tr { top: -10px; right: var(--nb-gutter); left: auto; }
.nb-tiles.e-con { gap: 26px; }
.nb-tile.e-con { flex: 1 1 0; background: #fff; border-radius: var(--nb-radius); box-shadow: var(--nb-shadow); align-items: center; text-align: center; padding-bottom: 30px; overflow: hidden; }
.nb-tile__media.e-con { height: 170px; width: 100%; position: relative; }
.nb-tile__icon { margin-top: -48px; position: relative; z-index: 2; }
.nb-tile__icon .elementor-icon-wrapper { width: 96px; height: 96px; background: #fff; box-shadow: 0 6px 18px -8px rgba(14,59,44,.35); }
.nb-tile__icon .elementor-icon { font-size: 40px; }
.nb-tile__title .elementor-heading-title { font-family: var(--nb-sans); text-transform: uppercase; font-weight: 800; font-size: 1.2rem; margin: 16px 24px 8px; letter-spacing: .01em; }
.nb-tile__text { padding: 0 28px; color: var(--nb-muted); font-size: 15.5px; }
.nb-farms__claim.e-con { margin-top: 56px; align-items: center; text-align: center; gap: 14px; }
.nb-farms__claim .elementor-icon { font-size: 40px; }
.nb-farms__claim .nb-h3 .elementor-heading-title { font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.2; }
.nb-farms__claim .nb-btn { margin-top: 10px; }
.nb-farms__leaf.e-con { position: absolute; left: 0; bottom: 0; width: 26%; height: 44%; z-index: 1; opacity: .9; }
.nb-farms__leaf .nb-cover img { -webkit-mask-image: linear-gradient(0deg, #000 30%, transparent), linear-gradient(90deg, #000 40%, transparent); -webkit-mask-composite: source-in; mask-image: linear-gradient(0deg, #000 30%, transparent), linear-gradient(90deg, #000 40%, transparent); mask-composite: intersect; }

/* ---------- S8 Ekologia ---------- */
.nb-eco.e-con { background: linear-gradient(90deg, #eef4ea, var(--nb-bg)); padding: 80px 0; }
.nb-eco .nb-split__media .nb-cover img { object-position: center 30%; }
.nb-eco .nb-float--tr { top: 7%; right: 5%; }

/* ---------- S9 Technologia ---------- */
.nb-tech.e-con { background: #fff; justify-content: flex-start; }
.nb-tech .nb-split__media.e-con { bottom: auto; height: 700px; }
.nb-tech .nb-split__media .nb-cover img { -webkit-mask-image: linear-gradient(90deg, transparent, #000 25%), linear-gradient(0deg, transparent, #000 25%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent, #000 25%), linear-gradient(0deg, transparent, #000 25%); mask-composite: intersect; }
.nb-tech .nb-split__content .nb-text:last-child { font-size: 15.5px; color: var(--nb-muted); }
.nb-tech__cards.e-con { margin-top: 64px; }
.nb-cards3.e-con { gap: 22px; align-items: stretch; }
.nb-card.e-con {
	flex: 1 1 0; min-width: 0; background: #fff; border-radius: var(--nb-radius-lg); padding: 30px;
	box-shadow: var(--nb-shadow); border: 1px solid #eef2eb; gap: 14px;
}
.nb-card__head.e-con { align-items: center; gap: 16px; margin-bottom: 4px; }
.nb-card__head .elementor-icon { font-size: 46px; }
.nb-card__head .nb-h3 .elementor-heading-title { font-size: 1.4rem; }
.nb-card__note { border-top: 1px solid var(--nb-line); padding-top: 14px; margin-top: auto; }
.nb-minis.e-con { gap: 10px; }
.nb-mini.e-con { flex: 1 1 0; min-width: 0; align-items: center; text-align: center; padding: 16px 8px; border: 1px solid var(--nb-line); border-radius: 14px; background: #fbfcfa; }
.nb-mini .elementor-icon { font-size: 26px; }
.nb-mini__value .elementor-heading-title { font-family: var(--nb-serif); font-size: 1.75rem; font-weight: 700; color: var(--nb-green); margin-top: 6px; }
.nb-mini__label { font-size: 12.5px; line-height: 1.3; color: var(--nb-muted); }
.nb-card .nb-ibox--row .elementor-icon-box-title { font-size: 15px; }

/* ---------- S10 Historia ---------- */
.nb-history.e-con { background: radial-gradient(ellipse at top, #fbfcf9, #eef3ea); }
.nb-history .nb-float--tl { top: 0; left: var(--nb-gutter); }
.nb-history .nb-float--tr { top: 0; right: var(--nb-gutter); }
.nb-timeline.e-con { gap: 26px; position: relative; margin-top: 10px; }
.nb-timeline::before { content: ""; position: absolute; top: 36px; left: 10%; right: 0; height: 1.5px; background: var(--nb-green); opacity: .8; }
.nb-timeline::after { content: ""; position: absolute; top: 31px; right: -2px; width: 10px; height: 10px; border-top: 1.5px solid var(--nb-green); border-right: 1.5px solid var(--nb-green); transform: rotate(45deg); }
.nb-tl.e-con { flex: 1 1 0; min-width: 0; align-items: center; position: relative; }
.nb-tl__icon { position: relative; z-index: 2; }
.nb-tl__icon .elementor-icon-wrapper { box-shadow: 0 0 0 6px #f4f7f1; }
.nb-tl__icon::after { content: ""; display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--nb-green); margin: 12px auto 0; }
.nb-tl__card.e-con { margin-top: 12px; background: #fff; border-radius: var(--nb-radius); box-shadow: var(--nb-shadow); padding: 26px 20px 20px; text-align: center; gap: 8px; width: 100%; flex: 1; }
.nb-tl__year .elementor-heading-title { font-family: var(--nb-serif); font-size: 2rem; font-weight: 600; color: var(--nb-green); line-height: 1; }
.nb-tl__title .elementor-heading-title { font-size: 1.2rem; }
.nb-tl__text { font-size: 15px; color: var(--nb-muted); }
.nb-tl__media.e-con { height: 150px; position: relative; border-radius: 12px; overflow: hidden; margin-top: auto; }
.nb-history .nb-btns { margin-top: 48px; }

/* ---------- S11 FAQ ---------- */
.nb-faq-section.e-con { background: var(--nb-bg); }
.nb-faq-section .nb-inner.e-con { gap: 56px; align-items: stretch; }
.nb-faq__aside.e-con {
	width: 36%; flex: none; min-height: 640px; border-radius: var(--nb-radius-lg); overflow: hidden;
	position: relative; padding: 48px 36px; justify-content: space-between; color: #fff;
}
.nb-faq__aside::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,40,28,.35) 0%, rgba(8,40,28,.05) 40%, rgba(8,40,28,.8) 100%); z-index: 1; }
.nb-faq__aside > .elementor-element:not(.nb-cover) { position: relative; z-index: 2; }
.nb-faq__script .elementor-heading-title { color: #fff; font-size: 42px; }
.nb-faq__points.e-con { gap: 22px; }
.nb-faq__main.e-con { flex: 1 1 0; min-width: 0; }
.nb-faq__main .nb-head.e-con { max-width: none; margin-bottom: 30px; }
.nb-faq .elementor-toggle-item { background: #fff; border: 1px solid var(--nb-line); border-radius: 14px; margin-bottom: 12px; overflow: hidden; box-shadow: 0 4px 12px -8px rgba(14,59,44,.15); }
.nb-faq .elementor-tab-title { padding: 18px 22px; border: 0; display: flex; align-items: center; gap: 16px; cursor: pointer; font-family: var(--nb-serif); font-size: 1.15rem; font-weight: 600; margin: 0; }
.nb-faq .elementor-tab-title.elementor-active { background: var(--nb-sage-2); }
.nb-faq .elementor-toggle-title { color: var(--nb-green); flex: 1; order: 1; text-decoration: none; }
.nb-faq .elementor-toggle-icon { order: 2; width: auto !important; margin: 0 !important; color: var(--nb-green); }
.nb-faq .elementor-toggle-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; }
.nb-faq .elementor-tab-content { padding: 16px 22px 20px; border: 0; color: var(--nb-text); font-size: 15.5px; }
.nb-faq__foot.e-con { margin-top: 28px; align-items: center; gap: 32px; flex-wrap: wrap; }
.nb-faq__foot .nb-ibox { border-left: 1px solid var(--nb-line); padding-left: 32px; }

/* ---------- S12 CTA ---------- */
.nb-cta.e-con { background: linear-gradient(90deg, #eef4ea 0%, #f4f7f1 45%); min-height: 640px; }
.nb-cta .nb-small { margin-top: 18px; }
.nb-minifeatures.e-con { margin-top: 36px; gap: 0; max-width: 520px; }
.nb-minifeatures > .elementor-widget { flex: 1; position: relative; }
.nb-minifeatures > .elementor-widget + .elementor-widget::before { content: ""; position: absolute; left: 0; top: 8%; bottom: 8%; width: 1px; background: var(--nb-line); }
.nb-minifeatures .elementor-icon { font-size: 32px; }
.nb-minifeatures .elementor-icon-box-title { font-size: 14px; font-weight: 500; }

/* ---------- Podstrony ---------- */
.nb-page-hero.e-con { min-height: 480px; padding: 80px 0; background: linear-gradient(180deg, #f1f5ee, var(--nb-bg)); }
.nb-page-hero .nb-h1 .elementor-heading-title { font-size: clamp(2.4rem, 4.6vw, 3.8rem); }
.nb-page-hero--plain.e-con { min-height: 0; text-align: center; }
.nb-page-hero--plain .nb-split__content.e-con { width: 100%; max-width: 820px; margin: 0 auto; align-items: center; }

.nb-textblock.e-con { background: #fff; }
.nb-textblock--alt.e-con { background: var(--nb-sage-2); }
.nb-textblock .nb-inner.e-con { gap: 64px; align-items: center; }
.nb-textblock__main.e-con { flex: 1 1 0; min-width: 0; max-width: 760px; gap: 14px; }
.nb-textblock__main .nb-head { margin-bottom: 12px; }
.nb-textblock__media.e-con { flex: 1 1 0; min-width: 0; height: 420px; position: relative; border-radius: var(--nb-radius-lg); overflow: hidden; box-shadow: var(--nb-shadow-lg); }
.nb-textblock--center .nb-textblock__main.e-con { margin: 0 auto; text-align: center; align-items: center; }
.nb-textblock--center .nb-head.e-con { align-items: center; }

.nb-features-section.e-con { background: var(--nb-sage-2); }
.nb-features.e-con { gap: 22px; flex-wrap: wrap; }
.nb-feature.e-con { flex: 1 1 220px; background: #fff; border-radius: var(--nb-radius); padding: 30px 26px; box-shadow: var(--nb-shadow); align-items: center; text-align: center; gap: 12px; }
.nb-feature__title .elementor-heading-title { font-size: 1.2rem; }
.nb-feature__text { font-size: 15px; color: var(--nb-muted); }
.nb-features--3 > .nb-feature.e-con { flex: 1 1 calc(33.333% - 22px); }
.nb-features--left > .nb-feature.e-con { align-items: flex-start; text-align: left; }

.nb-method.e-con { background: #fff; }
.nb-results.e-con { background: var(--nb-sage-2); }
.nb-bars.e-con { max-width: 820px; width: 100%; margin: 28px auto 24px; gap: 18px; }
.nb-bar .elementor-title { display: block; font-weight: 700; color: var(--nb-green); margin-bottom: 8px; font-size: 15px; }
.nb-bar .elementor-progress-wrapper { background: #d9e4d3; border-radius: 999px; height: 22px; overflow: hidden; }
.nb-bar .elementor-progress-bar { background: #9db89a; height: 22px; border-radius: 999px; }
.nb-bar--viveko .elementor-progress-bar { background: var(--nb-green); }
.nb-gallery-section.e-con { background: #fff; }
.nb-gallery .gallery { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin: 0 0 20px; }
.nb-gallery .gallery-item { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.nb-gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; border: 0 !important; }
.nb-docs.e-con { background: var(--nb-sage-2); }
.nb-docs__grid.e-con { gap: 22px; margin-bottom: 20px; }
.nb-doc.e-con { flex: 1 1 0; background: #fff; border-radius: var(--nb-radius); padding: 28px; box-shadow: var(--nb-shadow); gap: 10px; align-items: flex-start; }
.nb-doc__text { font-size: 15px; color: var(--nb-muted); }
.nb-doc .nb-btn { margin-top: auto; padding-top: 10px; }

.nb-quick.e-con { padding: 0 0 20px; background: var(--nb-bg); margin-top: -20px; }
.nb-quick__grid.e-con { gap: 18px; }
.nb-quick__tile.e-con { flex: 1 1 0; background: var(--nb-green); color: #fff; border-radius: var(--nb-radius); padding: 30px 24px; align-items: center; text-align: center; gap: 6px; }
.nb-quick__tile .elementor-icon { color: #bfe0a2; font-size: 38px; }
.nb-quick__value .elementor-heading-title { font-family: var(--nb-serif); font-size: 2.1rem; font-weight: 700; color: #fff; }
.nb-quick__label { color: rgba(255,255,255,.8); font-size: 14.5px; }
.nb-rules.e-con { background: var(--nb-sage-2); }
.nb-rules__grid.e-con { gap: 22px; align-items: stretch; }

.nb-flagship.e-con { background: #fff; }
.nb-flagship__card.e-con { background: var(--nb-sage-2); border-radius: var(--nb-radius-lg); overflow: hidden; box-shadow: var(--nb-shadow); }
.nb-flagship__media.e-con { width: 45%; min-height: 420px; position: relative; }
.nb-flagship__body.e-con { flex: 1; padding: 56px; justify-content: center; }

/* Kontakt */
.nb-contact.e-con { background: linear-gradient(180deg, #f1f5ee, var(--nb-bg)); }
.nb-contact__grid.e-con { gap: 36px; align-items: flex-start; }
.nb-contact__form.e-con { flex: 1 1 62%; min-width: 0; background: #fff; border-radius: var(--nb-radius-lg); padding: 40px; box-shadow: var(--nb-shadow); }
.nb-contact__info.e-con { flex: 1 1 38%; min-width: 0; background: var(--nb-green); border-radius: var(--nb-radius-lg); padding: 36px; gap: 22px; color: #fff; }
.nb-contact__info .nb-h3 .elementor-heading-title { color: #fff; font-size: 1.6rem; }
.nb-contact__info .nb-ibox--row .elementor-icon-box-icon .elementor-icon { background: rgba(255,255,255,.1); color: #fff; }
.nb-contact__info .elementor-icon-box-title { color: rgba(255,255,255,.7); font-weight: 500; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.nb-contact__info .elementor-icon-box-description, .nb-contact__info .elementor-icon-box-description a { color: #fff; font-size: 17px; font-weight: 600; text-decoration: none; }
.nb-contact__b2b.e-con { margin-top: 10px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); gap: 16px; align-items: flex-start; }
.nb-contact__b2b .elementor-icon { color: #bfe0a2; font-size: 36px; }
.nb-contact__b2b .nb-text, .nb-contact__b2b .nb-text strong { color: #fff; font-size: 15px; }

.nb-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.nb-form__field { display: flex; flex-direction: column; gap: 6px; }
.nb-form__field--wide { grid-column: 1 / -1; }
.nb-form label { font-size: 14px; font-weight: 600; color: var(--nb-green); }
.nb-form label small { font-weight: 400; color: var(--nb-muted); }
.nb-form input[type=text], .nb-form input[type=tel], .nb-form input[type=email], .nb-form select, .nb-form textarea {
	width: 100%; border: 1.5px solid var(--nb-line); border-radius: 12px; padding: 13px 15px; font: inherit; font-size: 16px;
	background: #fbfcfa; color: var(--nb-text); transition: border-color .2s, box-shadow .2s;
}
.nb-form input:focus, .nb-form select:focus, .nb-form textarea:focus { outline: none; border-color: var(--nb-green-3); box-shadow: 0 0 0 4px rgba(111,168,58,.18); background: #fff; }
.nb-form__consent { display: flex !important; gap: 12px; align-items: flex-start; margin: 22px 0 26px; font-weight: 400 !important; color: var(--nb-muted) !important; font-size: 13.5px !important; line-height: 1.5; }
.nb-form__consent input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--nb-green); flex: none; }
.nb-form__consent { margin: 14px 0 0; }
.nb-form__consent--opt { margin-bottom: 26px; }
.nb-form__rodo { margin: 24px 0 0; font-size: 12.5px; line-height: 1.65; color: var(--nb-muted); }
.nb-form__rodo a { color: inherit; text-decoration: underline; }
.nb-form__hp { position: absolute; left: -9999px; }
.nb-form__notice { display: flex; gap: 14px; align-items: flex-start; padding: 16px 20px; border-radius: 12px; margin-bottom: 24px; font-size: 15px; }
.nb-form__notice--ok { background: var(--nb-sage); color: var(--nb-green); }
.nb-form__notice--ok .nb-ico { width: 26px; height: 26px; }
.nb-form__notice--error { background: #fdecea; color: #8a1f17; }

/* Znacznik treści do uzupełnienia */
.nb-todo { display: inline-block; background: #fff6d6; color: #6b5200; border: 1.5px dashed #d8b23a; border-radius: 10px; padding: 8px 14px; font-size: 14px !important; margin: 8px 0 0 !important; }

/* ---------- Nagłówek ---------- */
.nb-header { position: sticky; top: 0; z-index: 100; background: rgba(246, 248, 243, .88); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); transition: box-shadow .2s; }
.admin-bar .nb-header { top: 32px; }
.nb-header.is-scrolled { box-shadow: 0 6px 24px -14px rgba(14,59,44,.35); }
.nb-header__inner { max-width: calc(var(--nb-wrap) + 2 * var(--nb-gutter)); margin: 0 auto; padding: 0 var(--nb-gutter); height: 78px; display: flex; align-items: center; gap: 32px; }
.nb-logo { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; flex: none; }
.nb-logo__word { font-family: var(--nb-sans); font-weight: 800; font-size: 22px; letter-spacing: .02em; color: var(--nb-green); display: inline-flex; align-items: center; }
.nb-logo__o { display: inline-flex; width: .95em; height: .95em; border: 2.5px solid var(--nb-green); border-radius: 50%; align-items: center; justify-content: center; margin: 0 1px; color: var(--nb-accent); }
.nb-logo__o .nb-ico { width: .62em; height: .62em; stroke-width: 2.4; }
.nb-logo__badge { background: var(--nb-accent); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .08em; padding: 3px 8px; border-radius: 6px; }
.custom-logo-link img { max-height: 48px; width: auto; }
.nb-nav { flex: 1; display: flex; justify-content: center; }
.nb-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.nb-nav__list a { display: block; padding: 10px 12px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--nb-green); text-decoration: none; position: relative; }
.nb-nav__list a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; background: var(--nb-accent); transform: scaleX(0); transition: transform .2s; }
.nb-nav__list a:hover::after, .nb-nav__list .current-menu-item > a::after, .nb-nav__list .current_page_parent > a::after { transform: scaleX(1); }
.nb-header__cta { padding: 12px 22px; font-size: 14px; flex: none; }
.nb-header__cta--mobile { display: none; }
.nb-burger { display: none; margin-left: auto; width: 46px; height: 46px; border: 0; background: transparent; border-radius: 12px; position: relative; cursor: pointer; padding: 0; }
.nb-burger span:not(.screen-reader-text) { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--nb-green); border-radius: 2px; transition: transform .25s, opacity .2s; }
.nb-burger span:nth-child(2) { top: 16px; } .nb-burger span:nth-child(3) { top: 22px; } .nb-burger span:nth-child(4) { top: 28px; }
.nb-nav-open .nb-burger span:nth-child(2) { transform: translateY(6px) rotate(45deg); }
.nb-nav-open .nb-burger span:nth-child(3) { opacity: 0; }
.nb-nav-open .nb-burger span:nth-child(4) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- Stopka ---------- */
.nb-footer { background: #eaf0e6; border-top: 1px solid var(--nb-line); margin-top: 0; }
.nb-footer__inner { max-width: calc(var(--nb-wrap) + 2 * var(--nb-gutter)); margin: 0 auto; padding: 64px var(--nb-gutter) 40px; display: grid; grid-template-columns: 1.3fr 1fr 1.3fr 1.2fr; gap: 40px; }
.nb-footer p { margin: 0 0 12px; font-size: 15px; color: var(--nb-muted); }
.nb-footer__brand .nb-logo { margin-bottom: 16px; }
.nb-footer__script { font-family: var(--nb-script); font-size: 28px !important; color: var(--nb-green) !important; transform: rotate(-6deg); margin-top: 24px !important; line-height: 1.05; }
.nb-footer__title { font-weight: 800; color: var(--nb-green) !important; text-transform: uppercase; letter-spacing: .08em; font-size: 13px !important; margin-bottom: 18px !important; }
.nb-footer__links, .nb-footer__contact, .nb-footer__social, .nb-footer__legal { list-style: none; margin: 0; padding: 0; }
.nb-footer__links li { margin-bottom: 8px; }
.nb-footer__links a, .nb-footer__legal a, .nb-footer__social a { color: var(--nb-text); text-decoration: none; font-size: 15px; }
.nb-footer__links a:hover, .nb-footer__legal a:hover { color: var(--nb-green); text-decoration: underline; }
.nb-footer__contact li { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; font-size: 15px; }
.nb-footer__contact .nb-ico { width: 20px; height: 20px; color: var(--nb-green); }
.nb-footer__contact a { color: var(--nb-text); text-decoration: none; }
.nb-footer__social { display: flex; gap: 14px; margin-top: 16px; }
.nb-footer__bottom { max-width: calc(var(--nb-wrap) + 2 * var(--nb-gutter)); margin: 0 auto; padding: 22px var(--nb-gutter); border-top: 1px solid var(--nb-line); display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.nb-footer__bottom p { margin: 0; font-size: 13.5px; }
.nb-footer__legal { display: flex; gap: 20px; }
.nb-footer__legal a { font-size: 13.5px; color: var(--nb-muted); }

/* ---------- Baza wiedzy / artykuły ---------- */
.nb-kb, .nb-article { max-width: calc(var(--nb-wrap) + 2 * var(--nb-gutter)); margin: 0 auto; padding: 72px var(--nb-gutter) var(--nb-pad); }
.nb-kb__head { max-width: 760px; margin-bottom: 30px; }
.nb-eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--nb-green); margin: 0 0 14px; }
.nb-kb__title, .nb-article__title { font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: 1.05; margin: 0 0 16px; font-weight: 700; }
.nb-kb__cats { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.nb-chip { padding: 9px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--nb-line); color: var(--nb-green); text-decoration: none; font-size: 14px; font-weight: 600; transition: background .2s, color .2s; }
.nb-chip:hover { background: var(--nb-sage); color: var(--nb-green); }
.nb-chip.is-active { background: var(--nb-green); color: #fff; border-color: var(--nb-green); }
.nb-kb__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 26px; }
.nb-kb-card { background: #fff; border-radius: var(--nb-radius); overflow: hidden; box-shadow: var(--nb-shadow); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.nb-kb-card:hover { transform: translateY(-3px); box-shadow: var(--nb-shadow-lg); }
.nb-kb-card__media { display: block; aspect-ratio: 16 / 9; background: var(--nb-sage); }
.nb-kb-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-kb-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.nb-kb-card__cat { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--nb-accent); margin: 0; }
.nb-kb-card__title { font-size: 1.35rem; line-height: 1.25; margin: 0; }
.nb-kb-card__title a { color: var(--nb-green); text-decoration: none; }
.nb-kb-card__excerpt { color: var(--nb-muted); font-size: 15px; margin: 0; flex: 1; }
.nb-kb__empty { padding: 40px; background: #fff; border-radius: var(--nb-radius); text-align: center; color: var(--nb-muted); }
.nb-kb__pagination { margin-top: 40px; }
.nb-article { max-width: 820px; }
.nb-link--back { margin-bottom: 26px; }
.nb-article__meta { color: var(--nb-muted); font-size: 14px; }
.nb-article__media { margin: 30px 0; border-radius: var(--nb-radius-lg); overflow: hidden; }
.nb-article__media img { width: 100%; display: block; }
.nb-article__content { font-size: 18px; line-height: 1.75; }
.nb-article__content h2 { font-size: 1.8rem; margin: 1.6em 0 .5em; }
.nb-article__content h3 { font-size: 1.35rem; margin: 1.4em 0 .4em; }
.nb-post-cta { margin-top: 48px; padding: 32px; border-radius: var(--nb-radius-lg); background: var(--nb-sage); text-align: center; }
.nb-post-cta__title { font-family: var(--nb-serif); font-size: 1.6rem; font-weight: 700; color: var(--nb-green); margin: 0 0 18px; }
.nb-post-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* ==========================================================================
   Responsywność
   ========================================================================== */
@media (max-width: 1180px) {
	.nb-nav { position: fixed; inset: 78px 0 auto 0; background: var(--nb-bg); flex-direction: column; padding: 16px var(--nb-gutter) 28px; box-shadow: 0 20px 40px -20px rgba(14,59,44,.35); transform: translateY(-12px); opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; max-height: calc(100vh - 78px); overflow-y: auto; }
	.admin-bar .nb-nav { top: 110px; }
	.nb-nav-open .nb-nav { opacity: 1; visibility: visible; transform: none; }
	.nb-nav__list { flex-direction: column; gap: 0; }
	.nb-nav__list a { padding: 14px 4px; font-size: 15px; border-bottom: 1px solid var(--nb-line); }
	.nb-nav__list a::after { display: none; }
	.nb-header__cta { display: none; }
	.nb-header__cta--mobile { display: inline-flex; margin-top: 20px; justify-content: center; }
	.nb-burger { display: block; }
	.nb-steps.e-con { flex-wrap: wrap; }
	.nb-step.e-con { flex: 1 1 calc(50% - 34px); }
	.nb-steps--arrows .nb-step::after { display: none; }
}

@media (max-width: 1024px) {
	.nb-split.e-con { min-height: 0; padding-top: 0; }
	.nb-split__media.e-con { position: relative; width: 100%; height: 400px; order: -1; margin-bottom: 40px; }
	.nb-split__media .nb-cover img { -webkit-mask-image: linear-gradient(0deg, transparent 0, #000 30%); mask-image: linear-gradient(0deg, transparent 0, #000 30%); }
	.nb-split__content.e-con { width: 100%; max-width: 720px; }
	.nb-tech .nb-split__media.e-con { height: 420px; }
	.nb-how__bg.e-con { opacity: .35; width: 70%; }
	.nb-research__top.e-con { flex-direction: column; }
	.nb-stats.e-con, .nb-photos.e-con, .nb-tiles.e-con, .nb-cards3.e-con, .nb-rules__grid.e-con, .nb-docs__grid.e-con { flex-wrap: wrap; }
	.nb-stat.e-con { flex: 1 1 260px; }
	.nb-photo.e-con, .nb-tile.e-con, .nb-card.e-con, .nb-doc.e-con { flex: 1 1 300px; }
	.nb-timeline.e-con { flex-wrap: wrap; }
	.nb-timeline::before, .nb-timeline::after { display: none; }
	.nb-tl.e-con { flex: 1 1 calc(50% - 26px); }
	.nb-faq-section .nb-inner.e-con { flex-direction: column; }
	.nb-faq__aside.e-con { width: 100%; min-height: 420px; }
	.nb-farms__leaf.e-con { display: none; }
	.nb-hide-mobile { display: none; }
	.nb-footer__inner { grid-template-columns: 1fr 1fr; }
	.nb-textblock .nb-inner.e-con { flex-direction: column; align-items: stretch; }
	.nb-textblock__media.e-con { flex: none; height: 320px; }
	.nb-contact__grid.e-con { flex-direction: column; align-items: stretch; }
	.nb-flagship__card.e-con { flex-direction: column; }
	.nb-flagship__media.e-con { width: 100%; min-height: 280px; }
	.nb-quick__grid.e-con { flex-wrap: wrap; }
	.nb-quick__tile.e-con { flex: 1 1 calc(50% - 18px); }
}

@media (max-width: 767px) {
	:root { --nb-gutter: 16px; }
	body { font-size: 16px; }
	.nb-header__inner { height: 68px; }
	.nb-nav { inset: 68px 0 auto 0; }
	.nb-split__media.e-con { height: 300px; }
	.nb-benefits__row.e-con { flex-wrap: wrap; row-gap: 22px; }
	.nb-benefits__row > .elementor-widget { flex: 1 1 33%; }
	.nb-benefits__row > .elementor-widget::before { display: none; }
	.nb-step.e-con, .nb-tl.e-con { flex: 1 1 100%; }
	.nb-dose.e-con { flex-direction: column; text-align: center; padding: 28px 20px; gap: 16px; }
	.nb-dose__body.e-con { border-left: 0; padding-left: 0; border-top: 1px solid #c9d6c3; padding-top: 16px; }
	.nb-how__foot.e-con { flex-direction: column; gap: 20px; padding: 24px; text-align: center; }
	.nb-callout.e-con { flex-direction: column; align-items: flex-start; }
	.nb-minis.e-con { flex-wrap: wrap; }
	.nb-mini.e-con { flex: 1 1 30%; }
	.nb-faq__foot .nb-ibox { border-left: 0; padding-left: 0; }
	.nb-minifeatures.e-con { flex-wrap: wrap; row-gap: 18px; }
	.nb-footer__inner { grid-template-columns: 1fr; gap: 28px; padding-top: 48px; }
	.nb-form__grid { grid-template-columns: 1fr; }
	.nb-contact__form.e-con, .nb-contact__info.e-con { padding: 24px 20px; }
	.nb-flagship__body.e-con { padding: 32px 24px; }
	.nb-float--tr, .nb-float--tl { top: 6%; }
	.nb-badge.e-con { width: 124px; height: 124px; padding: 12px; }
	.nb-badge .elementor-icon { font-size: 30px; }
	.nb-badge__label .elementor-heading-title { font-size: 10.5px; }
	.nb-split__media .nb-script .elementor-heading-title { font-size: 26px; }
	.nb-btns.e-con .elementor-widget-button { width: 100%; }
	.nb-btns.e-con .elementor-button { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; }
}

/* ---------- Materiały od klienta: zdjęcia IUNG, świadectwo, opakowanie ---------- */
.nb-photo__media.e-con { height: 300px; position: relative; }
.nb-photo .nb-photo__media .nb-cover { position: absolute; height: 100%; }
.nb-photo--roots .nb-cover img { object-position: center 78%; }
.nb-photo .nb-cover a { display: block; height: 100%; cursor: zoom-in; }
.nb-photo__meta { font-family: var(--nb-sans); font-size: 13px; font-weight: 500; color: var(--nb-muted); margin-top: 4px !important; }
.nb-eco__media.e-con { background: radial-gradient(ellipse at 60% 50%, #f7faf4 0%, #e2ecdc 70%); display: flex; align-items: center; justify-content: center; }
.nb-eco__bg img { opacity: .35; }
.nb-doc-preview.elementor-widget { position: relative; z-index: 2; width: min(360px, 60%); transform: rotate(3deg); transition: transform .3s; }
.nb-doc-preview img { display: block; width: 100%; border-radius: 6px; box-shadow: 0 30px 60px -20px rgba(14,59,44,.45), 0 4px 12px rgba(0,0,0,.08); }
.nb-doc-preview:hover { transform: rotate(1deg) scale(1.02); }
.nb-eco .nb-float--tr { top: 6%; right: 6%; }
.nb-textblock__media--product.e-con { background: radial-gradient(ellipse at center, #f7faf4 0%, var(--nb-sage) 75%); display: flex; align-items: center; justify-content: center; padding: 32px; box-shadow: none; }
.nb-product img { max-height: 360px; width: auto; filter: drop-shadow(0 24px 30px rgba(14,59,44,.25)); }
@media (max-width: 1024px) {
	.nb-eco__media.e-con { height: 520px; }
	.nb-doc-preview.elementor-widget { width: min(300px, 70%); }
}
.nb-hero__media .nb-badge.e-con, .nb-cta .nb-split__media .nb-badge.e-con { top: 8%; bottom: auto; left: 26%; right: auto; }
/* Ikony i grupy przycisków nie kurczą się w wierszach flex */
.elementor .nb-icon.elementor-widget, .elementor .nb-badge.e-con { flex-shrink: 0; }
.elementor .nb-btns.e-con { width: auto; }
.nb-hero__media .nb-script .elementor-heading-title, .nb-cta .nb-split__media .nb-script .elementor-heading-title { color: var(--nb-green); text-shadow: 0 0 18px rgba(255,255,255,.8); }
.nb-farmer .nb-float--tl { top: 5%; left: 0; }
.nb-tech .nb-split__media .nb-script .elementor-heading-title { color: var(--nb-green); text-shadow: 0 0 18px rgba(255,255,255,.85); }
.nb-stat > .nb-stat__body.e-con { width: auto; flex: 1 1 auto; min-width: 0; }
.nb-stat__pre { text-align: left; }
@media (max-width: 1024px) {
	.nb-hero__media .nb-badge.e-con, .nb-cta .nb-split__media .nb-badge.e-con { display: none; }
}

/* ---------- Zdjęcia porównawcze IUNG — zawsze w całości (kontrola ↔ VIVEKO) ---------- */
.nb-photo__media.e-con { height: auto; aspect-ratio: 3 / 4; background: #fff; }
.nb-photo--roots .nb-cover img { object-fit: contain; object-position: center; }
.nb-photo:not(.nb-photo--roots) .nb-cover img { object-position: 78% center; }
.nb-photos.e-con { align-items: stretch; }

/* Wiersz ikona + tekst zostaje wierszem także na telefonie */
.nb-ibox--row .elementor-icon-box-wrapper { flex-direction: row !important; text-align: left !important; }

/* ---------- Telefon ---------- */
@media (max-width: 767px) {
	:root { --nb-pad: 56px; }
	.nb-h2 .elementor-heading-title { font-size: 1.95rem; line-height: 1.12; }
	.nb-h1 .elementor-heading-title { font-size: 2.5rem; }
	.nb-head.e-con { margin-bottom: 28px; }
	.nb-lead { font-size: 1.02rem; }

	/* Zdjęcia badań: pełny kadr, podpis pod spodem */
	.nb-photos.e-con { gap: 16px; }
	.nb-photo__caption { padding: 14px 16px 16px; font-size: 1.02rem; }

	/* Kroki (S4, S5): na telefonie karta pionowa — zdjęcie na pełną szerokość,
	   treść pod spodem. Wcześniej karta była pozioma z miniaturą 112 px; po
	   zmianie kadru na proporcję zdjęcie zabierało całą szerokość, a tekst
	   ściskał się do 32 px i wylewał poza kartę (Chrome ucinał to przez
	   `overflow: hidden` sekcji, Safari rozpychał tym całą stronę). */
	.nb-steps.e-con { gap: 14px; }
	.nb-step.e-con { flex-direction: column !important; flex-wrap: nowrap !important; align-items: stretch; flex: 1 1 100%; }
	.nb-step > .nb-step__body.e-con { width: auto; flex: 1 1 auto; min-width: 0; }
	.nb-step__media.e-con, .nb-step--usage .nb-step__media.e-con {
		width: 100%; height: auto; min-height: 0; flex: 0 0 auto;
		border-radius: var(--nb-radius) var(--nb-radius) 0 0;
	}
	.nb-step__media .nb-cover { border-radius: var(--nb-radius) var(--nb-radius) 0 0; }
	.nb-num { width: 32px; height: 32px; font-size: 14px; top: -8px; left: -6px; box-shadow: 0 0 0 3px #fff; }
	.nb-step__body.e-con { align-items: flex-start; text-align: left; padding: 14px 16px; gap: 4px; justify-content: center; }
	.nb-step__body .nb-icon, .nb-step--usage .nb-icon--circle { display: none; }
	.nb-step__title .elementor-heading-title { font-size: 14px; }
	.nb-step--usage .nb-step__title .elementor-heading-title { font-size: 1.15rem; }
	.nb-step__text { font-size: 13.5px; line-height: 1.45; }
	.nb-how__foot.e-con { margin-top: 32px; }
	.nb-how__bg.e-con { height: 300px; }
	.nb-dose.e-con { margin-top: 32px; }
	.nb-dose__icon .elementor-icon { font-size: 52px; }

	/* Wyniki: zwarte kafelki */
	.nb-stats.e-con { gap: 10px; }
	.nb-stat.e-con { flex: 1 1 100%; padding: 16px 20px; gap: 14px; }
	.nb-stat .elementor-icon { font-size: 36px; }
	.nb-stat--hl .elementor-icon { font-size: 30px; }
	.nb-stat__value .elementor-heading-title { font-size: 2.2rem; }
	.nb-stat__label { font-size: 14px; margin-top: 2px; }
	.nb-iung__logo, .nb-iung--lg .nb-iung__logo { font-size: 22px; }
	.nb-iung__logo::before { width: 26px; height: 31px; }
	.nb-research__top.e-con { gap: 18px; }
	.nb-research__claim .nb-text { font-size: 1.05rem; }
	.nb-research__claim .nb-icon--solid .elementor-icon-wrapper { width: 52px; height: 52px; }
	.nb-research__claim .nb-icon--solid .elementor-icon { font-size: 24px; }

	/* Dla kogo */
	.nb-tiles.e-con { gap: 14px; }
	.nb-tile__media.e-con { height: 120px; }
	.nb-tile__icon .elementor-icon-wrapper { width: 72px; height: 72px; }
	.nb-tile__icon .elementor-icon { font-size: 30px; }
	.nb-tile__icon { margin-top: -36px; }
	.nb-tile.e-con { padding-bottom: 22px; }
	.nb-farms__claim.e-con { margin-top: 36px; }

	/* Callouty */
	.nb-callout.e-con { padding: 18px; gap: 12px; flex-direction: row !important; align-items: center; }
	.nb-callout__icon .elementor-icon-wrapper { width: 52px; height: 52px; }
	.nb-callout__icon .elementor-icon { font-size: 24px; }
	.nb-callout__text .elementor-heading-title { font-size: 1.1rem; }
	.nb-callout--line .nb-callout__text { padding-left: 14px; }

	/* Technologia: mini-wyniki */
	.nb-card.e-con { padding: 22px 18px; }
	.nb-minis.e-con { flex-wrap: nowrap; gap: 8px; }
	.nb-mini.e-con { padding: 12px 4px; }
	.nb-mini__value .elementor-heading-title { font-size: 1.25rem; white-space: nowrap; }
	.nb-mini__label { font-size: 12px; }
	.nb-mini .elementor-icon { font-size: 20px; }

	/* Oś czasu: bez ikon, zwarte karty */
	.nb-timeline.e-con { gap: 14px; }
	.nb-tl__icon { display: none; }
	.nb-tl__card.e-con { margin-top: 0; text-align: left; padding: 18px; }
	.nb-tl__year .elementor-heading-title { font-size: 1.5rem; }
	.nb-tl__media.e-con { height: 140px; margin-top: 8px; }
	.nb-history .nb-btns { margin-top: 28px; }

	/* FAQ: niski panel ze zdjęciem */
	.nb-faq-section .nb-inner.e-con { gap: 28px; }
	.nb-faq__aside.e-con { min-height: 200px; padding: 28px 24px; justify-content: flex-end; }
	/* Trzy atuty przy FAQ były na telefonie chowane — to ubytek treści względem
	   desktopu. Zostają, tylko w zwartej formie pod zdjęciem. */
	.nb-faq__points.e-con { gap: 10px; }
	.nb-faq__points .nb-h3 .elementor-heading-title,
	.nb-faq__points .elementor-icon-box-title { font-size: 14px; }
	.nb-faq__points .nb-text, .nb-faq__points .elementor-icon-box-description { font-size: 13px; }
	.nb-faq__script .elementor-heading-title { font-size: 34px; }
	.nb-faq .elementor-tab-title { font-size: 1.02rem; padding: 14px 16px; }
	.nb-faq .elementor-tab-content { padding: 12px 16px 16px; }

	/* CTA */
	.nb-minifeatures .elementor-icon-box-title { font-size: 12.5px; }
}

/* Etykiety wariantów na zdjęciach porównawczych (kontrola skrajnie z lewej, VIVEKO skrajnie z prawej) */
.nb-photo--roots .nb-cover::before, .nb-photo--roots .nb-cover::after {
	position: absolute; top: 12px; z-index: 3; padding: 5px 12px; border-radius: 999px;
	font: 700 11.5px/1 var(--nb-sans); letter-spacing: .08em; text-transform: uppercase; pointer-events: none;
}
.nb-photo--roots .nb-cover::before { content: "Kontrola"; left: 12px; background: rgba(255,255,255,.92); color: var(--nb-green); box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.nb-photo--roots .nb-cover::after { content: "VIVEKO"; right: 12px; background: var(--nb-green); color: #fff; }

/* Pasek korzyści (S2) na telefonie: siatka 2 kolumn z kafelkami ikona + tekst */
@media (max-width: 767px) {
	.nb-benefits.e-con { padding: 20px 0; }
	.nb-benefits__row.e-con { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; }
	.nb-benefits__row > .elementor-widget { flex: none; }
	.nb-benefits__row > .elementor-widget:last-child { grid-column: 1 / -1; }
	.nb-benefits .elementor-icon-box-wrapper {
		display: flex !important; flex-direction: row !important; align-items: center; gap: 10px;
		text-align: left !important; background: var(--nb-sage-2); border-radius: 14px; padding: 10px 12px; height: 100%;
	}
	.nb-benefits .elementor-icon-box-icon { margin: 0 !important; flex: none; }
	.nb-benefits .elementor-icon-box-icon .elementor-icon {
		width: 40px; height: 40px; border-radius: 50%; background: #fff; font-size: 22px;
		display: inline-flex; align-items: center; justify-content: center;
	}
	.nb-benefits .elementor-icon-box-title { font-size: 13.5px; line-height: 1.25; font-weight: 700; color: var(--nb-green); }
}
@media (max-width: 767px) {
	.nb-benefits .elementor-icon-box-content { align-self: center; display: flex; align-items: center; min-height: 40px; }
	.nb-benefits .elementor-icon-box-title { margin: 0 !important; }
	.nb-benefits .elementor-icon-box-title span, .nb-benefits .elementor-icon-box-title a { display: block; }
	.nb-farmer .nb-split__media .nb-script { display: none; }
}

/* ---------- Pasek upraw (sekcja dodana przez klientkę) ---------- */
.nb-crops-section.e-con { background: #fff; padding: clamp(40px, 5vw, 64px) 0; }
.nb-crops-section .nb-h2 .elementor-heading-title { font-size: clamp(1.7rem, 2.6vw, 2.4rem); text-align: center; }
.nb-crops.e-con { flex-wrap: wrap; justify-content: center; gap: 14px; }
.nb-crop.e-con {
	flex: 1 1 calc(10% - 14px); min-width: 104px; max-width: 160px; align-items: center; text-align: center;
	gap: 8px; padding: 16px 10px 14px; border-radius: 16px; background: var(--nb-sage-2);
	border: 1px solid var(--nb-line); transition: transform .2s, box-shadow .2s;
}
.nb-crop.e-con:hover { transform: translateY(-3px); box-shadow: var(--nb-shadow); }
.nb-crop__img img { height: 78px; width: auto; object-fit: contain; display: block; }
.nb-crop__label .elementor-heading-title {
	font-family: var(--nb-sans); font-size: 12px; font-weight: 700; letter-spacing: .05em;
	text-transform: uppercase; color: var(--nb-green); line-height: 1.2;
}
@media (max-width: 767px) {
	.nb-crops.e-con { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.nb-crop.e-con { max-width: none; min-width: 0; padding: 12px 6px 10px; }
	.nb-crop__img img { height: 56px; }
	.nb-crop__label .elementor-heading-title { font-size: 12px; letter-spacing: .02em; }
	/* Plakietka nie zasłania twarzy rolnika */
	.nb-farmer .nb-split__media .nb-badge.e-con { right: auto; left: 12px; bottom: 12px; width: 108px; height: 108px; padding: 10px; }
	.nb-farmer .nb-split__media .nb-badge .elementor-icon { font-size: 26px; }
	.nb-farmer .nb-split__media .nb-badge__label .elementor-heading-title { font-size: 9.5px; margin-top: 4px; }
}
/* Logo z pliku klientki + menu w jednej linii */
.custom-logo-link { display: inline-flex; flex: none; }
.custom-logo-link img { max-height: 36px; width: auto; }
.nb-nav__list a { white-space: nowrap; }
.nb-header__inner { gap: 20px; }
@media (max-width: 1360px) { .nb-nav__list a { font-size: 12px; padding: 10px 8px; } .nb-header__cta { padding: 11px 18px; font-size: 13px; } }
@media (max-width: 767px) { .custom-logo-link img { max-height: 29px; } }
@media (max-width: 1024px) {
	/* Hero: pokaż opakowania w kadrze, nie samo niebo */
	.nb-hero__media.e-con { height: 380px; }
	.nb-hero__media .nb-cover img { object-position: center 72%; }
}

/* ==========================================================================
   Kalkulator VIVEKO (shortcode [viveko_calculator])
   ========================================================================== */
.nb-calc-section.e-con { background: var(--nb-sage-2); }
.nb-calc-section .nb-inner.e-con { max-width: calc(1160px + 2 * var(--nb-gutter)); }
.nb-calc {
	display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: stretch;
	font-family: var(--nb-sans); color: var(--nb-text);
}
.nb-calc__form, .nb-calc__result {
	background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius-lg);
	padding: 30px 32px; box-shadow: var(--nb-shadow); margin: 0;
}
.nb-calc__result { background: var(--nb-sage); border-color: #d3e0cc; display: flex; flex-direction: column; justify-content: center; }
.nb-calc__card-title, .nb-calc__eyebrow {
	font-size: 12.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
	color: var(--nb-green); margin: 0 0 22px;
}
.nb-calc__eyebrow { margin: 0 0 10px; }
.nb-calc__field { margin: 0 0 22px; border: 0; padding: 0; min-width: 0; }
.nb-calc__field label, .nb-calc__field legend { display: block; font-size: 14.5px; font-weight: 700; color: var(--nb-green); margin-bottom: 8px; padding: 0; }
.nb-calc__input { position: relative; display: block; }
.nb-calc__area {
	width: 100%; min-height: 56px; border: 1.5px solid var(--nb-line); border-radius: 14px;
	padding: 14px 56px 14px 18px; font: 700 20px/1.2 var(--nb-sans); color: var(--nb-green);
	background: #fbfcfa; transition: border-color .2s, box-shadow .2s;
}
.nb-calc__area:focus { outline: none; border-color: var(--nb-green-3); box-shadow: 0 0 0 4px rgba(111,168,58,.18); background: #fff; }
.nb-calc__area[aria-invalid="true"] { border-color: #c0523f; }
.nb-calc__unit { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-size: 14px; color: var(--nb-muted); }
.nb-calc__segments { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nb-calc__segment { position: relative; margin: 0; }
.nb-calc__segment input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.nb-calc__segment span {
	display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px;
	border: 1.5px solid var(--nb-line); border-radius: 999px; background: #fff;
	font-size: 15.5px; font-weight: 600; color: var(--nb-green); transition: background .2s, color .2s, border-color .2s;
}
.nb-calc__segment span::before { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid #c3d2bc; flex: none; transition: background .2s, border-color .2s, box-shadow .2s; }
.nb-calc__segment input:checked + span { background: var(--nb-green); border-color: var(--nb-green); color: #fff; }
.nb-calc__segment input:checked + span::before {
	border-color: #fff; background: #fff center / 12px 12px no-repeat
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e3b2c' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.nb-calc__segment input:focus-visible + span { outline: 3px solid var(--nb-accent); outline-offset: 3px; }
.nb-calc__hint, .nb-calc__placeholder { font-size: 13.5px; color: var(--nb-muted); margin: 0; }
.nb-calc__error { margin: 8px 0 0; font-size: 13.5px; color: #a33d2c; }
.nb-calc__amount { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin: 0; }
.nb-calc__amount strong { font-family: var(--nb-serif); font-size: clamp(2.8rem, 5vw, 4rem); font-weight: 700; line-height: 1; color: var(--nb-green); letter-spacing: -.02em; }
.nb-calc__amount span { font-size: 15px; color: var(--nb-muted); }
.nb-calc__equation { margin: 10px 0 0; font-size: 13.5px; color: var(--nb-muted); }
.nb-calc__set { margin-top: 20px; padding-top: 18px; border-top: 1px solid #c9d8c2; }
.nb-calc__packages, .nb-calc__price { font-family: var(--nb-serif); font-size: 1.45rem; font-weight: 700; color: var(--nb-green); margin: 0 0 6px; }
.nb-calc__price { margin-bottom: 8px; }
.nb-calc__vat { font-size: 13.5px; color: var(--nb-muted); margin: 0 0 12px; }
.nb-calc__perha { font-size: 13.5px; font-weight: 700; color: var(--nb-green); margin: 0; }
.nb-calc__cta { grid-column: 1 / -1; display: flex; justify-content: center; }
.nb-calc__cta .nb-button { min-height: 56px; }

@media (max-width: 860px) {
	.nb-calc { grid-template-columns: 1fr; gap: 18px; }
	.nb-calc__form, .nb-calc__result { padding: 24px 20px; }
	.nb-calc__area { min-height: 52px; font-size: 18px; }
	.nb-calc__segment span { min-height: 48px; font-size: 15px; }
	.nb-calc__packages, .nb-calc__price { font-size: 1.25rem; }
	.nb-calc__cta .nb-button { width: 100%; justify-content: center; }
}
/* Link zamiast statycznej ceny w bloku z dawką */
.nb-dose__value .nb-calc-link { display: inline-block; margin-top: 6px; font-family: var(--nb-sans); font-size: 15px; font-weight: 700; color: var(--nb-green-2); text-decoration: underline; text-underline-offset: 3px; }

/* ==========================================================================
   Zastosowanie według uprawy ([viveko_uprawy]) i warunki aplikacji ([viveko_warunki])
   ========================================================================== */
.nb-crops-app { font-family: var(--nb-sans); }
.nb-crops-app__search { position: relative; max-width: 620px; margin: 0 auto 18px; }
.nb-crops-app__search .nb-ico { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; color: var(--nb-muted); pointer-events: none; }
.nb-crops-app__search input {
	width: 100%; min-height: 60px; border: 1.5px solid var(--nb-line); border-radius: 999px;
	padding: 16px 24px 16px 58px; font: 400 16.5px/1.2 var(--nb-sans); color: var(--nb-text); background: #fff;
	box-shadow: var(--nb-shadow); transition: border-color .2s, box-shadow .2s;
}
.nb-crops-app__search input:focus { outline: none; border-color: var(--nb-green-3); box-shadow: 0 0 0 4px rgba(111,168,58,.18); }
.nb-crops-app__filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 26px; }
.nb-crops-app__filters .nb-chip { cursor: pointer; font-family: var(--nb-sans); min-height: 44px; }
.nb-crops-app__filters .nb-chip.is-active { background: var(--nb-green); color: #fff; border-color: var(--nb-green); }
.nb-crops-app__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.nb-crop-card {
	display: flex; align-items: center; gap: 14px; text-align: left; cursor: pointer;
	background: #fff; border: 1.5px solid var(--nb-line); border-radius: var(--nb-radius); padding: 14px 16px;
	box-shadow: 0 4px 14px -10px rgba(14,59,44,.25); transition: transform .2s, box-shadow .2s, background .2s, border-color .2s;
}
.nb-crop-card:hover { transform: translateY(-2px); box-shadow: var(--nb-shadow); }
.nb-crop-card__img { flex: none; width: 56px; height: 68px; display: flex; align-items: center; justify-content: center; }
.nb-crop-card__img img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.nb-crop-card__name { font-family: var(--nb-serif); font-size: 1.12rem; font-weight: 700; color: var(--nb-green); line-height: 1.2; }
.nb-crop-card__name small { display: block; margin-top: 4px; font-family: var(--nb-sans); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nb-muted); }
.nb-crop-card[aria-pressed="true"] { background: var(--nb-green); border-color: var(--nb-green); box-shadow: var(--nb-shadow-lg); }
.nb-crop-card[aria-pressed="true"] .nb-crop-card__name { color: #fff; }
.nb-crop-card[aria-pressed="true"] .nb-crop-card__name small { color: rgba(255,255,255,.75); }
.nb-crops-app__empty { margin: 28px auto 0; max-width: 520px; text-align: center; color: var(--nb-muted); }
.nb-crops-app__hint { margin: 28px 0 0; text-align: center; color: var(--nb-muted); }

.nb-crop-detail { margin-top: 26px; background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius-lg); padding: 32px; box-shadow: var(--nb-shadow); }
.nb-crop-detail__head { display: flex; align-items: center; gap: 24px; }
.nb-crop-detail__img { flex: none; width: 128px; height: 148px; display: flex; align-items: center; justify-content: center; background: var(--nb-sage-2); border-radius: var(--nb-radius); padding: 12px; }
.nb-crop-detail__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.nb-crop-detail h3 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 0; }
.nb-crop-detail__latin { margin: 4px 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nb-muted); }
.nb-crop-badges { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.nb-crop-badges li { background: var(--nb-sage-2); border-radius: 999px; padding: 8px 16px; font-size: 14px; color: var(--nb-green); }
.nb-crop-badges strong { font-weight: 800; }
.nb-crop-timeline { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--nb-line); }
.nb-crop-timeline__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; }
.nb-crop-timeline__head h4 { font-family: var(--nb-serif); font-size: 1.35rem; margin: 0; color: var(--nb-green); }
.nb-crop-timeline__head p { margin: 0; font-size: 13px; color: var(--nb-muted); }
.nb-crop-stages { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; list-style: none; margin: 22px 0 0; padding: 0; position: relative; }
.nb-crop-stages::before { content: ""; position: absolute; left: 6%; right: 6%; top: 17px; height: 1.5px; background: var(--nb-line); }
.nb-crop-stage { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; position: relative; }
.nb-crop-stage__dot { width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--nb-green); background: #fff; color: var(--nb-green); font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.nb-crop-stage__label { font-size: 12.5px; line-height: 1.25; color: var(--nb-text); }
.nb-crop-treatments { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 26px; }
.nb-crop-treatment { background: var(--nb-sage-2); border-left: 3px solid var(--nb-green); border-radius: 14px; padding: 18px 22px; }
.nb-crop-treatment p { margin: 0 0 4px; font-size: 15px; }
.nb-crop-treatment__title { font-size: 12.5px !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--nb-green); margin-bottom: 10px !important; }
.nb-todo--inline { padding: 2px 10px; font-size: 12.5px !important; }
.nb-crop-detail__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--nb-line); }
.nb-crop-detail__foot p { margin: 0; max-width: 620px; font-size: 15px; color: var(--nb-text); }

.nb-conditions__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.nb-condition { background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius); padding: 26px 24px; box-shadow: var(--nb-shadow); }
.nb-condition__icon { display: inline-flex; align-items: center; justify-content: center; width: 62px; height: 62px; border-radius: 50%; background: var(--nb-sage-2); color: var(--nb-green); margin-bottom: 14px; }
.nb-condition__icon .nb-ico { width: 30px; height: 30px; }
.nb-condition h3 { font-family: var(--nb-serif); font-size: 1.2rem; margin: 0 0 8px; color: var(--nb-green); }
.nb-condition p { margin: 0; font-size: 15px; color: var(--nb-muted); }
.nb-conditions__band { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 20px; padding: 24px 28px; border-radius: var(--nb-radius-lg); background: var(--nb-green); color: #fff; }
.nb-conditions__band h3 { font-family: var(--nb-serif); font-size: 1.25rem; margin: 0 0 4px; color: #fff; }
.nb-conditions__band p { margin: 0; font-size: 14.5px; color: rgba(255,255,255,.85); max-width: 640px; }
.nb-conditions__band-icon .nb-ico { width: 40px; height: 40px; color: #bfe0a2; }
.nb-conditions__band .nb-todo { margin: 0 !important; margin-left: auto !important; }
.nb-conditions__note { display: flex; align-items: center; gap: 10px; justify-content: center; margin: 18px 0 0; font-size: 14px; color: var(--nb-muted); }
.nb-conditions__note .nb-ico { width: 18px; height: 18px; }

@media (max-width: 900px) {
	.nb-crop-stages { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.nb-crop-stages::before { display: none; }
	.nb-crop-stage { flex-direction: row; text-align: left; gap: 10px; }
	.nb-crop-treatments { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.nb-crops-app__grid { grid-template-columns: 1fr; }
	.nb-crop-detail { padding: 22px 18px; }
	.nb-crop-detail__head { gap: 16px; }
	.nb-crop-detail__img { width: 92px; height: 108px; padding: 8px; }
	.nb-crop-detail__foot .nb-button { width: 100%; justify-content: center; }
	.nb-conditions__band { padding: 20px; }
	.nb-conditions__band .nb-todo { margin-left: 0 !important; }
}
.nb-calc__perkg { font-size: 14.5px; font-weight: 700; color: var(--nb-green); margin: 0 0 10px; padding: 8px 12px; background: rgba(255,255,255,.65); border-radius: 10px; display: inline-block; }

/* Przycisk menu mobilnego — także po otwarciu (X) w kolorze marki, nie systemowym */
.nb-burger, .nb-burger:focus, .nb-nav-open .nb-burger { color: var(--nb-green); -webkit-tap-highlight-color: transparent; }
.nb-burger span:not(.screen-reader-text) { background: var(--nb-green) !important; }

/* Dymek z terminami przy kafelkach upraw (pasek na stronie głównej) */
.nb-crop { position: relative; }
.nb-crop__tip {
	position: absolute; left: 50%; bottom: calc(100% + 10px);
	transform: translate(calc(-50% + var(--tip-shift, 0px)), 4px);
	width: max-content; max-width: 240px; padding: 10px 14px; border-radius: 12px;
	background: var(--nb-green); color: #fff; font-family: var(--nb-sans); font-size: 12.5px; line-height: 1.35;
	box-shadow: var(--nb-shadow-lg); opacity: 0; visibility: hidden; transition: opacity .18s, transform .18s, visibility .18s; z-index: 20; pointer-events: none;
}
.nb-crop__tip::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 7px solid transparent; border-top-color: var(--nb-green); }
.nb-crop:hover .nb-crop__tip, .nb-crop:focus-within .nb-crop__tip,
.nb-crop.is-tip-open .nb-crop__tip { opacity: 1; visibility: visible; transform: translate(calc(-50% + var(--tip-shift, 0px)), 0); }
.nb-crop__tip::after { left: calc(50% - var(--tip-shift, 0px)); }
/* Sekcje domyślnie przycinają zawartość (overflow: hidden) — dymek musi móc z nich wystawać. */
.elementor .e-con.nb-crops-section,
.elementor .e-con.nb-crops,
.elementor .e-con.nb-section:has(.nb-crops) { overflow: visible; }
@media (max-width: 767px) { .nb-crop__tip { max-width: 200px; font-size: 11.5px; } }

/* ==========================================================================
   Strona „O Nabiotech”
   ========================================================================== */
.nb-onab-hero.e-con { min-height: 620px; background: linear-gradient(180deg, #f1f5ee, var(--nb-bg)); }
.nb-onab-hero .nb-h1 .elementor-heading-title { font-size: clamp(2.4rem, 4.6vw, 3.9rem); }
.nb-tags.e-con { flex-direction: row; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.nb-tag .elementor-heading-title {
	display: inline-block; padding: 9px 18px; border-radius: 999px; background: var(--nb-sage);
	font-family: var(--nb-sans); font-size: 12.5px; font-weight: 800; letter-spacing: .1em;
	text-transform: uppercase; color: var(--nb-green);
}
/* Łańcuch procesu: POMYSŁ → … → ROLNIK */
.nb-process.e-con { flex-wrap: wrap; gap: 12px; align-items: stretch; justify-content: center; }
.nb-process__step.e-con {
	flex: 1 1 150px; align-items: center; text-align: center; gap: 8px; padding: 22px 14px;
	background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius); box-shadow: var(--nb-shadow); position: relative;
}
.nb-process__step:not(:last-child)::after { content: "→"; position: absolute; right: -16px; top: 50%; transform: translateY(-50%); color: var(--nb-green); font-size: 18px; z-index: 2; }
.nb-process__step .elementor-icon { font-size: 30px; }
.nb-process__step .nb-h3 .elementor-heading-title { font-family: var(--nb-sans); font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
/* Produkty: VIVEKO i PLONER */
.nb-solutions.e-con { gap: 22px; align-items: stretch; }
.nb-solution.e-con { flex: 1 1 0; min-width: 0; background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius-lg); padding: 34px; box-shadow: var(--nb-shadow); gap: 10px; }
.nb-solution .nb-eyebrow .elementor-heading-title { margin-bottom: 10px; }
.nb-solution .nb-h3 .elementor-heading-title { font-size: 2rem; }
.nb-solution__claim.e-con { margin-top: 24px; align-items: center; text-align: center; gap: 6px; }
.nb-solution__claim .nb-h3 .elementor-heading-title { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
/* Lokalizacje */
.nb-locations.e-con { gap: 18px; }
.nb-location.e-con { flex: 1 1 0; min-width: 0; background: var(--nb-sage-2); border-radius: var(--nb-radius); padding: 26px; gap: 6px; }
.nb-location .elementor-icon { font-size: 30px; }
.nb-location .nb-h3 .elementor-heading-title { font-size: 1.3rem; margin-top: 8px; }
.nb-location .nb-text { font-size: 15px; color: var(--nb-muted); }
/* Manifest */
.nb-manifest.e-con { background: var(--nb-green); color: #fff; text-align: center; }
.nb-manifest .nb-inner.e-con { align-items: center; max-width: 900px; }
.nb-manifest .nb-eyebrow .elementor-heading-title, .nb-manifest .nb-h2 .elementor-heading-title { color: #fff; }
.nb-manifest .nb-h2 .elementor-heading-title { font-size: clamp(2rem, 4vw, 3.2rem); }
.nb-manifest .nb-text, .nb-manifest .nb-lead { color: rgba(255,255,255,.88); }
.nb-manifest .nb-script .elementor-heading-title { color: #bfe0a2; font-size: clamp(30px, 4vw, 44px); transform: none; margin-top: 18px; }
.nb-manifest .nb-btn .elementor-button { background: #fff; border-color: #fff; color: var(--nb-green); }
.nb-manifest .nb-btn .elementor-button:hover { background: var(--nb-sage); border-color: var(--nb-sage); color: var(--nb-green); }
.nb-manifest .nb-btn--outline .elementor-button { background: transparent; border-color: rgba(255,255,255,.65); color: #fff; }
.nb-manifest .nb-btn--outline .elementor-button:hover { background: rgba(255,255,255,.12); }
@media (max-width: 900px) {
	.nb-process__step:not(:last-child)::after { display: none; }
	.nb-solutions.e-con, .nb-locations.e-con { flex-wrap: wrap; }
	.nb-solution.e-con, .nb-location.e-con { flex: 1 1 260px; padding: 26px 22px; }
}
.nb-manifest .nb-script .elementor-heading-title { transform: none; line-height: 1.15; margin: 22px 0 6px; }
.nb-manifest .nb-text { margin-top: 14px; }
.nb-manifest .nb-btns.e-con { margin-top: 26px; }
.nb-manifest .nb-inner.e-con { flex-direction: column !important; flex-wrap: nowrap; }
.nb-manifest .nb-inner > .elementor-element { width: 100%; }
.nb-manifest .nb-script { transform: none; }
/* Karta uprawy bez osi faz rozwoju — pierwszy blok po nagłówku dostaje własną kreskę */
.nb-crop-detail__head + .nb-crop-treatments { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--nb-line); }

/* Karta uprawy: pora roku, faza i BBCH dla obu zabiegów (dane z „dawkowanie.pdf”) */
.nb-crop-bbch { font-family: var(--nb-serif); font-size: 1.5rem; font-weight: 700; color: var(--nb-green); margin: 0 0 12px !important; }
.nb-crop-row { display: grid; grid-template-columns: 128px 1fr; gap: 10px; margin: 0 0 6px !important; font-size: 14.5px; line-height: 1.4; }
.nb-crop-row span { font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--nb-muted); padding-top: 3px; }
.nb-crop-extra { margin: 14px 0 0; padding: 14px 18px; border-radius: 12px; background: #fbfcfa; border: 1px solid var(--nb-line); font-size: 14.5px; }
.nb-crop-extra strong { color: var(--nb-green); }
.nb-crop-detail__foot p { font-size: 13.5px; color: var(--nb-muted); font-style: italic; }
@media (max-width: 600px) {
	.nb-crop-row { grid-template-columns: 1fr; gap: 2px; }
	.nb-crop-row span { padding-top: 6px; }
}

/* Kafelek uprawy: stany zaznaczenia i skupienia w kolorach marki (motyw nadrzędny dawał różowy) */
.nb-crop-card, .nb-crop-card:hover, .nb-crop-card:focus, .nb-crop-card:active { background: #fff; color: var(--nb-green); }
.nb-crop-card:focus-visible { outline: 3px solid var(--nb-accent); outline-offset: 3px; }
.nb-crop-card[aria-pressed="true"],
.nb-crop-card[aria-pressed="true"]:hover,
.nb-crop-card[aria-pressed="true"]:focus,
.nb-crop-card[aria-pressed="true"]:active { background: var(--nb-green); border-color: var(--nb-green); }
.nb-crop-card[aria-pressed="true"] .nb-crop-card__name { color: #fff; }
.nb-crop-card__name { display: block; }
.nb-crops-app__filters .nb-chip:focus-visible { outline: 3px solid var(--nb-accent); outline-offset: 3px; }

/* Kategorie upraw jako zwijane sekcje (domyślnie schowane) */
.nb-crops-app__groups { display: flex; flex-direction: column; gap: 12px; }
.nb-crop-group { background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius); overflow: hidden; box-shadow: 0 4px 14px -12px rgba(14,59,44,.25); }
.nb-crop-group__head {
	width: 100%; display: flex; align-items: center; gap: 14px; cursor: pointer;
	padding: 18px 22px; background: #fff; border: 0; text-align: left; font-family: var(--nb-sans);
}
.nb-crop-group__head:hover { background: var(--nb-sage-2); }
.nb-crop-group__name { font-family: var(--nb-serif); font-size: 1.3rem; font-weight: 700; color: var(--nb-green); flex: 1; }
.nb-crop-group__count { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--nb-muted); }
.nb-crop-group__chev { width: 12px; height: 12px; border-right: 2px solid var(--nb-green); border-bottom: 2px solid var(--nb-green); transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; flex: none; }
.nb-crop-group__head[aria-expanded="true"] { background: var(--nb-sage-2); }
.nb-crop-group__head[aria-expanded="true"] .nb-crop-group__chev { transform: rotate(-135deg) translate(-2px, -2px); }
.nb-crop-group .nb-crops-app__grid { padding: 4px 18px 20px; }
.nb-crop-group__head:focus-visible { outline: 3px solid var(--nb-accent); outline-offset: -3px; }

/* Dymek z terminami — trzy linie */
.nb-crop__tip { white-space: pre-line; text-align: left; }

/* Grafiki produktowe (nie zdjęcia) pokazujemy w całości — bez kadrowania */
.nb-split__media--contain.e-con { background: linear-gradient(180deg, #eef4ea, #f6f8f3); }
.nb-split__media--contain .nb-cover img { object-fit: contain; object-position: center; -webkit-mask-image: none !important; mask-image: none !important; padding: 10px; }
@media (max-width: 1024px) { .nb-split__media--contain.e-con { height: auto; min-height: 380px; } }

/* Logotypy i pojedyncze grafiki wstawiane w sekcjach — wyśrodkowane */
.nb-section .elementor-widget-image:not(.nb-cover):not(.nb-doc-preview):not(.nb-product) img { margin-left: auto; margin-right: auto; display: block; }
.nb-section .elementor-widget-image:not(.nb-cover) { text-align: center; }
/* `hidden` musi wygrać z display: grid na siatce upraw */
.nb-crops-app__grid[hidden], .nb-crop-group[hidden], .nb-crop-card[hidden] { display: none !important; }
@media (max-width: 767px) {
	/* Dymki na telefonie otwiera dotknięcie kafelka (klasa `is-tip-open` z main.js),
	   bo najechania myszą tam nie ma. Wcześniej były tu po prostu wyłączone. */
	.nb-crop-group__head { padding: 16px 14px; gap: 10px; }
	.nb-crop-group__name { font-size: 1.1rem; }
	.nb-crop-group__count { font-size: 12px; }
	.nb-crop-group .nb-crops-app__grid { padding: 4px 12px 16px; }
}

/* ==========================================================================
   Landing PZKGW (/pzkgw) i sklep
   ========================================================================== */
.nb-pz-hero.e-con { min-height: 640px; background: linear-gradient(180deg, #f1f5ee, var(--nb-bg)); }
.nb-pz-hero__sub .elementor-heading-title { font-size: clamp(1.4rem, 2.4vw, 2rem); color: var(--nb-green-3); margin-top: 10px; }
.nb-pz-badges.e-con { gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.nb-pz-offer.e-con { gap: 14px; flex-wrap: wrap; margin-top: 24px; }
.nb-pz-offer__item.e-con { flex: 1 1 200px; background: #fff; border: 1px solid var(--nb-line); border-radius: var(--nb-radius); padding: 16px 20px; box-shadow: var(--nb-shadow); }
.nb-pz-offer__name .elementor-heading-title { font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--nb-muted); }
.nb-pz-offer__price .elementor-heading-title { font-family: var(--nb-serif); font-size: 1.9rem; color: var(--nb-green); margin-top: 4px; }
.nb-pz-offer__price s, .nb-price-card__price s { font-family: var(--nb-sans); font-size: .55em; color: var(--nb-muted); margin-right: 8px; }

.nb-pz-action.e-con { background: #fff; }
.nb-pz-study.e-con { margin-top: 40px; padding: 32px; border-radius: var(--nb-radius-lg); background: var(--nb-sage-2); border: 1px solid var(--nb-line); align-items: center; }
.nb-pz-study .nb-stats.e-con { width: 100%; margin: 18px 0 14px; }
.nb-pz-study .nb-stat.e-con { justify-content: center; text-align: center; }
.nb-pz-study .nb-stat__body.e-con { align-items: center; }

.nb-pz-video.e-con { background: linear-gradient(180deg, var(--nb-bg), #eef3ea); }
.nb-pz-video .nb-inner.e-con { align-items: center; text-align: center; }
.nb-pz-logo img { max-height: 120px; width: auto; margin: 0 auto 10px; }
.nb-pz-quote .elementor-heading-title { font-family: var(--nb-serif); font-size: clamp(1.4rem, 2.6vw, 2.1rem); font-weight: 600; color: var(--nb-green); max-width: 760px; margin: 24px auto 10px; line-height: 1.3; }

.nb-pz-offer-section.e-con { background: #fff; }
.nb-price-cards.e-con { gap: 24px; align-items: stretch; }
.nb-price-card.e-con { flex: 1 1 0; min-width: 0; background: #fff; border: 1.5px solid var(--nb-line); border-radius: var(--nb-radius-lg); padding: 34px; box-shadow: var(--nb-shadow); gap: 8px; align-items: flex-start; }
.nb-price-card--hl.e-con { border-color: var(--nb-green); background: var(--nb-sage-2); }
.nb-price-card__name .elementor-heading-title { font-family: var(--nb-sans); font-size: 1.4rem; font-weight: 800; letter-spacing: .02em; }
.nb-price-card__desc { font-size: 15px; color: var(--nb-muted); }
.nb-price-card__price .elementor-heading-title { font-family: var(--nb-serif); font-size: clamp(2.4rem, 4vw, 3.4rem); font-weight: 700; color: var(--nb-green); line-height: 1.05; margin-top: 10px; }
.nb-price-card__save .elementor-heading-title { display: inline-block; background: var(--nb-green); color: #fff; border-radius: 999px; padding: 6px 16px; font-size: 13px; font-weight: 700; margin: 10px 0 18px; }
.nb-price-card .nb-btn { width: 100%; }
.nb-price-card .elementor-button { width: 100%; justify-content: center; }
.nb-pz-trust.e-con { gap: 0; margin-top: 34px; flex-wrap: wrap; justify-content: center; }
.nb-pz-trust__item.e-con { flex: 1 1 200px; align-items: center; text-align: center; gap: 8px; padding: 0 16px; position: relative; }
.nb-pz-trust__item + .nb-pz-trust__item::before { content: ""; position: absolute; left: 0; top: 10%; bottom: 10%; width: 1px; background: var(--nb-line); }
.nb-pz-trust__item .elementor-icon { font-size: 30px; }
.nb-pz-trust__label .elementor-heading-title { font-size: 14px; color: var(--nb-text); }
.nb-pz-final.e-con { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--nb-line); align-items: center; text-align: center; gap: 8px; }
.nb-pz-final .nb-h3 .elementor-heading-title { font-size: clamp(1.6rem, 3vw, 2.3rem); }

/* Sklep (WooCommerce) w stylu strony */
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info { border-top-color: var(--nb-green); }
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--nb-green); color: #fff; border-radius: 999px; padding: 14px 26px; font-weight: 600; font-family: var(--nb-sans);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce button.button.alt:hover { background: var(--nb-green-2); color: #fff; }
.woocommerce-page .nb-main { max-width: calc(var(--nb-wrap) + 2 * var(--nb-gutter)); margin: 0 auto; padding: 56px var(--nb-gutter) var(--nb-pad); }
.woocommerce-page h1, .woocommerce-page h2 { font-family: var(--nb-serif); color: var(--nb-green); }
.woocommerce div.product p.price, .woocommerce ul.products li.product .price { color: var(--nb-green); font-family: var(--nb-serif); font-weight: 700; }

@media (max-width: 1024px) {
	.nb-price-cards.e-con { flex-wrap: wrap; }
	.nb-price-card.e-con { flex: 1 1 280px; padding: 26px 22px; }
}
@media (max-width: 767px) {
	.nb-pz-offer__item.e-con { flex: 1 1 100%; }
	.nb-pz-trust__item + .nb-pz-trust__item::before { display: none; }
	.nb-pz-trust.e-con { row-gap: 18px; }
}

/* ---------- Nagłówek i stopka landingu PZKGW ---------- */
.nb-header--landing .nb-header__inner { gap: 24px; }
.nb-header__brands { display: flex; align-items: center; gap: 16px; flex: none; }
.nb-header__sep { width: 1px; height: 32px; background: var(--nb-line); }
.nb-header__partner { max-height: 48px; width: auto; }
.nb-nav--landing .nb-nav__list { gap: 4px; }
.nb-nav--landing .nb-nav__list a { font-size: 12.5px; }
.nb-footer--landing .nb-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 28px; }
.nb-footer__claim { font-family: var(--nb-script); font-size: 26px; color: var(--nb-green) !important; margin: 0 !important; }
.nb-footer__claim--right { font-family: var(--nb-sans); font-size: 14px !important; font-weight: 600; }
@media (max-width: 900px) {
	.nb-header__partner { max-height: 36px; }
	.nb-footer--landing .nb-footer__inner { flex-direction: column; text-align: center; gap: 14px; }
}
@media (max-width: 767px) { .nb-header__sep { display: none; } .nb-header__partner { max-height: 30px; } }

/* ---------- Przegląd mobilny 02.10.2026 ---------- */
/* Siatki 3-kolumnowe zostawały 3-kolumnowe na telefonie: karty po ~105 px,
   nagłówki wychodziły poza kafelek, a tekst łamał się po jednym słowie
   (metodyka na /badania/, korzyści na /pzkgw/). */
@media (max-width: 767px) {
	.nb-features.e-con, .nb-features--3.e-con { flex-direction: column; }
	.nb-features--3 > .nb-feature.e-con, .nb-feature.e-con { flex: 1 1 100%; width: 100%; }

	.nb-minifeatures.e-con { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
	.nb-minifeatures > .elementor-widget { flex: none; width: auto; }
	.nb-minifeatures > .elementor-widget:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.nb-minifeatures > .elementor-widget + .elementor-widget::before { display: none; }
	.nb-minifeatures .elementor-icon-box-wrapper { align-items: center; text-align: center; }

	.nb-minis.e-con { display: grid !important; grid-template-columns: 1fr; }
	.nb-mini.e-con { flex: none; width: auto; }
}

/* Cele dotykowe: minimum ~44 px wysokości dla linków tekstowych w stopce,
   na kartach bloga i w sortowaniu sklepu. */
@media (max-width: 767px) {
	.nb-footer__links a, .nb-footer__contact a, .nb-footer__legal a {
		display: inline-flex; align-items: center; min-height: 44px;
	}
	.nb-link, .nb-post__title a, .nb-card__title a, .nb-kb-card__title a {
		display: inline-flex; align-items: center; min-height: 44px;
	}
	.woocommerce .woocommerce-ordering select { min-height: 44px; padding: 10px 14px; }
	.woocommerce-breadcrumb a { display: inline-block; padding: 6px 0; }
}

/* Drobny tekst nigdy poniżej 12 px (etykiety „(opcjonalnie)” w formularzach). */
.nb-form small, .nb-form__hint, .woocommerce form .optional { font-size: 12.5px; }

/* Przyciski koszyka/zamówienia z bloków WooCommerce były czarne zamiast firmowych. */
.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
	background-color: var(--nb-green) !important; color: #fff !important;
	border-radius: 999px !important; font-family: var(--nb-sans); font-weight: 600;
	min-height: 52px;
}
.wc-block-components-button:not(.is-link):hover { background-color: var(--nb-green-2) !important; }

/* Koszyk (bloki WooCommerce): plakietka „Oszczędzasz …” nie dawała się zwęzić,
   więc kolumna z ceną rozpychała tabelę do 430 px i strona przewijała się w poziomie. */
@media (max-width: 767px) {
	.wc-block-cart-items { width: 100%; max-width: 100%; }
	.wc-block-cart-items__row { max-width: 100%; }
	.wc-block-cart-item__total,
	.wc-block-cart-item__total-price-and-sale-badge-wrapper,
	.wc-block-cart-item__total .wc-block-components-product-price { min-width: 0; }
	/* Kolumna z ceną w siatce WooCommerce ma ~30 px, a „Oszczędzasz” to jedno długie
	   słowo, którego nie da się złamać — na telefonie plakietkę chowamy. Rabat widać
	   po przekreślonej cenie przy produkcie. */
	.wc-block-cart-item__total .wc-block-components-sale-badge { display: none; }
	.wc-block-components-notices__snackbar { max-width: calc(100vw - 32px); }
}

/* Zwijane podsumowanie zamówienia: tytuł sklejał się z kwotą. */
.wc-block-components-order-summary .wc-block-components-panel__button,
.wc-block-components-checkout-order-summary__title-text + * { gap: 12px; }
.wc-block-components-checkout-order-summary__title { display: flex; align-items: center; gap: 12px; }
.wc-block-components-checkout-order-summary__title-text { flex: 1 1 auto; }

/* FAQ: cały wiersz pytania ma być celem dotknięcia, nie sam tekst linku. */
.nb-faq .elementor-tab-title { min-height: 48px; display: flex; align-items: center; }
.nb-faq .elementor-toggle-title { display: block; width: 100%; }

/* ---------- Otwarte menu na telefonie: zielone tło, biały krzyżyk ---------- */
@media (max-width: 1024px) {
	.nb-nav-open .nb-header,
	.nb-nav-open .nb-header__inner { background: var(--nb-green) !important; }
	.nb-nav-open .nb-nav { background: var(--nb-green) !important; }
	.nb-nav-open .nb-nav__list a { color: #fff !important; border-bottom-color: rgba(255,255,255,.18) !important; }
	.nb-nav-open .nb-burger span:not(.screen-reader-text) { background: #fff !important; }
	.nb-nav-open .nb-burger,
	.nb-nav-open .nb-burger:focus { color: #fff !important; }
	/* Logo zostaje w oryginalnych kolorach na białym kafelku — odwracanie kolorów
	   psuło plakietkę „AGRO” (biały napis na zielonym tle znikał). */
	.nb-nav-open .custom-logo-link { background: #fff; border-radius: 10px; padding: 6px 10px; display: inline-flex; }
	.nb-nav-open .nb-header__cta--mobile {
		background: #fff !important; color: var(--nb-green) !important; border-color: #fff !important;
	}
	.nb-nav-open .nb-header__cta--mobile svg,
	.nb-nav-open .nb-header__cta--mobile path { stroke: var(--nb-green); fill: currentColor; }
}

/* ---------- Kadr zdjęć w kartach: wspólna proporcja zamiast sztywnej wysokości ----------
   Wcześniej pudełka miały wysokość w pikselach (np. 150 px). Przy szerokiej karcie
   na desktopie zdjęcie robiło się niskim paskiem („mały kwadrat”), a na telefonie
   kadr ucinał nawet 70% zdjęcia. Proporcja rośnie razem z szerokością karty, więc
   zdjęcie jest zawsze w tej samej skali, a wszystkie karty w rzędzie są równe. */
.nb-step__media.e-con,
.nb-step--usage .nb-step__media.e-con,
.nb-tile__media.e-con,
.nb-tl__media.e-con {
	height: auto; min-height: 0; width: 100%;
	aspect-ratio: 16 / 10;
}
.nb-step__media .nb-cover,
.nb-tile__media .nb-cover,
.nb-tl__media .nb-cover { position: absolute; inset: 0; height: 100%; }
.nb-step__media .nb-cover img,
.nb-tile__media .nb-cover img,
.nb-tl__media .nb-cover img { height: 100% !important; object-fit: cover; }

/* Zdjęcia porównawcze i galeria z badań to ujęcia pionowe dokumentów i roślin —
   tu liczy się całość kadru, więc wspólna ramka 3:4 i zdjęcie wpisane w nią. */
.nb-photo__media.e-con { height: auto; min-height: 0; aspect-ratio: 3 / 4; background: #fff; }
.nb-photo .nb-photo__media .nb-cover { position: absolute; inset: 0; height: 100%; }
.nb-photo .nb-photo__media .nb-cover img { height: 100% !important; object-fit: contain; }
.nb-photo .nb-cover a { height: 100%; }
.nb-gallery .gallery-item img { aspect-ratio: 3 / 4; object-fit: contain; background: var(--nb-sage-2); }

/* Karty w rzędzie zawsze równej wysokości. */
.nb-steps.e-con, .nb-tiles.e-con, .nb-timeline.e-con, .nb-photos.e-con { align-items: stretch; }
.nb-step.e-con, .nb-tile.e-con, .nb-tl.e-con, .nb-photo.e-con { align-self: stretch; }

/* ---------- Zdjęcia treściowe: proporcje z pliku, nie sztywne pudełko ----------
   Dotyczy też desktopu: karty trzymały zdjęcia w niskich prostokątach i pionowe
   kadry robiły się „małymi kwadratami”. Tła sekcji (hero, CTA, split, eco, FAQ)
   zostają kadrowane — tam pełny kadr jest zamierzony. */

/* Na telefonie karty „Zastosowanie” wracają do układu pionowego — w pasku 112 px
   szeroka grafika składnika gubiła dwie trzecie treści. */
@media (max-width: 767px) {
	.nb-step--usage.nb-step.e-con { flex-direction: column !important; }
	.nb-step--usage .nb-step__media.e-con {
		width: 100%; flex: 0 0 auto;
		/* Grafiki w tej sekcji są szerokie (ok. 2,5:1). Przy kadrze 16:10 obraz
		   wpisywał się w pudełko zostawiając po 41 px białej pustki nad i pod. */
		aspect-ratio: 2.4 / 1;
		border-radius: var(--nb-radius) var(--nb-radius) 0 0;
	}
	.nb-step--usage .nb-step__media .nb-cover { border-radius: var(--nb-radius) var(--nb-radius) 0 0; }
	/* Grafiki składników są szerokie i opisowe — pokazujemy je w całości. */
	.nb-step--usage .nb-step__media .nb-cover img { object-fit: contain; background: #fff; }
}

/* ---------- Przycisk menu: twarde wyzerowanie tła ----------
   Klientka i Dawid widzieli czerwone tło pod krzyżykiem, którego nie ma w żadnym
   arkuszu projektu (skan wszystkich elementów przy otwartym menu: zero czerwieni).
   Żeby zamknąć temat niezależnie od źródła — przycisk nie dziedziczy niczego:
   własne tło, brak stylu systemowego, brak podświetlenia dotyku, kolory wpisane
   wprost (bez zmiennych, które mogą nie dojechać przy częściowo wczytanym CSS). */
.nb-burger,
.nb-burger:hover,
.nb-burger:focus,
.nb-burger:active {
	-webkit-appearance: none; appearance: none;
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: none;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.nb-burger::before, .nb-burger::after { content: none !important; }
.nb-burger span:not(.screen-reader-text) { background: #0e3b2c !important; }

.nb-nav-open .nb-burger,
.nb-nav-open .nb-burger:hover,
.nb-nav-open .nb-burger:focus,
.nb-nav-open .nb-burger:active {
	background: #0e3b2c !important;
	border-radius: 10px;
}
.nb-nav-open .nb-burger span:not(.screen-reader-text) { background: #ffffff !important; }

/* Logo Polskiego Związku Kół Gospodyń Wiejskich (widget obrazu w nowym formacie
   Elementora — `e-image-base`, nieobjęty regułą centrowania dla `.elementor-widget-image`)
   siedziało przy lewej krawędzi, choć nagłówki sekcji są wyśrodkowane. */
.nb-section .e-image-base,
.nb-section img.e-image-base,
.nb-section .elementor-widget-e-image img,
.nb-section .e-con > .e-image:not(.nb-cover) img {
	display: block; margin-left: auto; margin-right: auto;
}
.nb-section .e-image:not(.nb-cover),
.nb-section .elementor-widget-e-image { align-self: center; }

/* Hero podstrony VIVEKO: grafika składu była wpisana (`contain`) w pasek o stałej
   wysokości 380 px z paddingiem, więc na telefonie zostawała wyśrodkowanym
   obrazkiem z pustymi bokami. Na wąskim ekranie idzie przez całą szerokość,
   w swoich proporcjach, a dolna krawędź wtapia się w tło sekcji. */
@media (max-width: 1024px) {
	.nb-split__media--contain.e-con {
		min-height: 0; height: auto; background: none;
		order: 1;   /* najpierw nagłówek i opis, grafika pod spodem */
		margin-top: 8px;
	}
	.nb-split__media--contain .nb-cover {
		position: relative; inset: auto; height: auto;
	}
	.nb-split__media--contain .nb-cover img {
		padding: 0 !important;
		width: 100% !important; height: auto !important;
		object-fit: contain;
		-webkit-mask-image: linear-gradient(180deg, #000 86%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 86%, transparent 100%);
	}
}

/* Sekcja „Czym jest Viveko”: na wąskim ekranie kolumny układają się jedna pod
   drugą, a odstęp 64 px (z układu dwukolumnowego) plus 32 px paddingu ramki
   dawały ~100 px pustki między tekstem a grafiką. */
@media (max-width: 1024px) {
	.nb-textblock .nb-inner.e-con { gap: 28px; }
	.nb-textblock__media.e-con { min-height: 0; }
	.nb-textblock__media--product.e-con { padding: 12px; }
}

/* Puste ramki na zdjęcia (kontener został po usuniętym obrazku w Elementorze)
   trzymały swoją wysokość i tło, zostawiając w sekcji kilkaset pikseli pustki
   — np. „Czym jest Viveko” na /viveko/. Pusty kontener nie zajmuje miejsca. */
/* Osobne reguły: gdyby przeglądarka nie znała `:has()`, odrzuciłaby całą listę
   selektorów razem z `:empty` i pusta ramka znów zajęłaby miejsce. */
.nb-textblock__media.e-con:empty,
.nb-split__media.e-con:empty,
.nb-step__media.e-con:empty,
.nb-tile__media.e-con:empty,
.nb-tl__media.e-con:empty,
.nb-photo__media.e-con:empty {
	display: none !important;
}
.nb-textblock__media.e-con:not(:has(> *)),
.nb-split__media.e-con:not(:has(> *)),
.nb-step__media.e-con:not(:has(> *)),
.nb-tile__media.e-con:not(:has(> *)),
.nb-tl__media.e-con:not(:has(> *)),
.nb-photo__media.e-con:not(:has(> *)) {
	display: none !important;
}

/* ---------- Układ płynny zamiast progów ----------
   W flexboksie element ma domyślnie `min-width: auto`, więc nie da się go zwęzić
   poniżej jego zawartości — przy wąskim ekranie rozpycha rodzica i treść wychodzi
   poza stronę. Chrome ukrywał to `overflow: hidden` na sekcjach, Safari rozpychał
   tym całą stronę (stąd „w innych przeglądarkach działa”). Zdejmujemy blokadę
   globalnie, a kolumny zawijają się same — bez sztywnych breakpointów. */
.nb-main .e-con,
.nb-main .elementor-widget { min-width: 0; }
/* Bez globalnego `max-width: 100%` na dzieciach kontenerów — kasowało własne
   ograniczenie szerokości kontenera treści (1272 px) i tekst rozlewał się
   na całą sekcję, wchodząc pod zdjęcie tła. */

/* Sekcje dwukolumnowe: zawijają się, gdy kolumna zeszłaby poniżej ~320 px. */
.nb-textblock .nb-inner.e-con { flex-wrap: wrap; }
.nb-textblock__main.e-con { flex: 1 1 320px; }
.nb-textblock__media.e-con { flex: 1 1 320px; }

/* Karty: łamią się na tyle kolumn, ile zmieści się bez ściskania treści. */
.nb-steps.e-con, .nb-tiles.e-con, .nb-timeline.e-con,
.nb-photos.e-con, .nb-features.e-con, .nb-minis.e-con { flex-wrap: wrap; }
/* Baza 200 px, żeby pięć kart zmieściło się w rzędzie; `max-width` pilnuje,
   by karta, która zostanie sama w kolejnym rzędzie, nie rozciągnęła się na całą
   szerokość (grafika powiększała się wtedy czterokrotnie i rozmywała). */
.nb-step.e-con { flex: 1 1 200px; max-width: 380px; }
.nb-tile.e-con { flex: 1 1 240px; }
.nb-tl.e-con { flex: 1 1 240px; }


/* ---------- Twarda granica: nic nie wychodzi poza szerokość rodzica ----------
   Kontenery Elementora mają szerokości ustawiane w edytorze (często w procentach,
   bez wariantu dla telefonu). Na wąskim ekranie kolumna robiła się za ciasna,
   treść jej nie mieściła i wypychała sąsiednią kolumnę poza ekran — w Safari
   widać to wprost, Chrome maskował to `overflow: hidden` na sekcji.
   Poniżej: kolumny zawijają się, gdy zabraknie miejsca, i nigdy nie schodzą
   poniżej czytelnych 280 px. Bez progów — reguła działa na każdej szerokości. */
/* UWAGA: `flex-wrap: wrap` nie może iść globalnie — w kontenerze ustawionym
   pionowo zawijanie przerzuca treść do kolumny obok (i poza ekran), zamiast
   układać ją niżej. Zawijanie włączamy tylko tam, gdzie układ jest rzędowy. */
.nb-main .e-con.e-child {
	min-width: min(100%, 280px);
	/* Bez `max-width: 100%` — nadpisywało własne ograniczenie szerokości
	   kontenera treści (1272 px) i tekst rozlewał się pod zdjęcie tła. */
}
.nb-main .e-con.e-child > * { min-width: 0; }

/* Panel FAQ: zdjęcie i lista pytań jako dwie zawijające się kolumny. */
.nb-faq-section .nb-inner.e-con { flex-wrap: wrap; }
.nb-faq__aside.e-con { flex: 1 1 280px; }
.nb-faq__main.e-con { flex: 1 1 320px; }

/* Atuty w panelu FAQ: jeden pod drugim, na pełną szerokość panelu — w rzędzie
   nie mieściły się na wąskim ekranie i wychodziły poza kadr. */
.nb-faq__points.e-con { flex-direction: column; flex-wrap: nowrap; }
.nb-faq__points.e-con > * { width: 100%; min-width: 0; max-width: 100%; }
.nb-faq__points .nb-ibox .elementor-icon-box-wrapper { flex-wrap: nowrap; }
.nb-faq__points .nb-ibox .elementor-icon-box-content { min-width: 0; }

/* Panel FAQ układa treść pionowo. Zawijanie musi tu być wyłączone — przy braku
   miejsca w pionie przerzucało kafelki do kolumny obok, poza ekran. */
.nb-faq__aside.e-con,
.nb-faq__points.e-con {
	flex-wrap: nowrap !important;
	flex-direction: column;
	height: auto;
}
.nb-faq__aside.e-con > *, .nb-faq__points.e-con > * { width: 100%; max-width: 100%; }

/* ---------- Kolumny treści zawsze pionowo ----------
   Kontenery z treścią (nagłówek + akapity + lista, nagłówek + pytania FAQ)
   mają układać elementy jeden pod drugim. Gdy przeglądarka potraktuje je jako
   układ rzędowy, nagłówek zostaje w pierwszej kolumnie, a reszta ląduje w drugiej
   — poza ekranem. Stąd „nagłówek jest, treści nie ma”. */
.nb-textblock__main.e-con,
.nb-faq__main.e-con,
.nb-split__content.e-con,
.nb-head.e-con,
.nb-step__body.e-con,
.nb-tl__card.e-con {
	flex-direction: column !important;
	flex-wrap: nowrap !important;
}
.nb-textblock__main.e-con > *,
.nb-faq__main.e-con > *,
.nb-split__content.e-con > * { width: 100%; max-width: 100%; min-width: 0; }

/* ---------- Przesunięcia kontenerów z edytora ----------
   W Elementorze część kontenerów ma ustawiony offset (np. `left: -230px`), żeby
   na szerokim ekranie tekst nachodził na zdjęcie. Przy jednej kolumnie nie ma
   na co nachodzić — przesunięcie wypychało treść poza lewą krawędź ekranu. */
@media (max-width: 1024px) {
	.nb-main .e-con.e-child,
	.nb-main .elementor-widget {
		left: auto !important;
		right: auto !important;
	}
}

/* Tło panelu jest pozycjonowane absolutnie (inset: 0) — nie nadpisujemy mu
   szerokości, bo wychodziło poza panel o szerokość paddingu. */
.nb-faq__aside.e-con > .nb-cover,
.nb-faq__points.e-con > .nb-cover { width: auto; max-width: none; }

/* Odręczne napisy nachodzące na zdjęcia nie mogą wychodzić poza ekran. */
@media (max-width: 1024px) {
	/* Napisy są obrócone, więc ich ramka jest szersza niż sam tekst — trzymamy
	   je z zapasem od krawędzi, inaczej wystawały o kilkanaście pikseli. */
	.nb-script.nb-float--tl { left: 22px !important; right: auto !important; }
	.nb-script.nb-float--tr { right: 22px !important; left: auto !important; }
	.nb-script.nb-float { max-width: calc(100% - 44px); }
}

/* Pasek upraw: dziesięć kafelków w jednym rzędzie było ściśnięte (po 125 px).
   Pięć w rzędzie na szerokim ekranie, mniej na węższym — kafelek nie schodzi
   poniżej 110 px, więc podpis zawsze się mieści. */
.nb-crop.e-con {
	flex: 1 1 calc(20% - 14px);
	min-width: 110px;
	max-width: 280px;
}

/* Grafiki składu w kartach „Co zawiera Viveko” są małe i szerokie (293×116).
   W kadrze 16:10 z wypełnieniem powiększały się dwukrotnie i rozmywały.
   Dopasowany kadr + wpisanie całej grafiki, na każdej szerokości ekranu. */
.nb-step--usage .nb-step__media.e-con { aspect-ratio: 2.4 / 1; }
.nb-step--usage .nb-step__media .nb-cover img {
	object-fit: contain;
	background: #fff;
}

/* ===== Baner zgody na cookies ===== */
.nb-cookies {
    position: fixed;
    z-index: 9999;
    left: 16px;
    right: 16px;
    bottom: 16px;
    display: flex;
    justify-content: center;
}
.nb-cookies[hidden] { display: none; }
.nb-cookies__box {
    width: min(100%, 640px);
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    background: #fff;
    color: var(--nb-green);
    border: 1px solid var(--nb-sage);
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(14, 59, 44, .22);
    padding: 22px 22px 20px;
}
.nb-cookies__title { margin: 0 0 8px; font-size: 18px; font-weight: 600; }
.nb-cookies__text { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--nb-muted); }
.nb-cookies__text a { color: var(--nb-green); text-decoration: underline; }
.nb-cookies__panel { margin-top: 18px; display: grid; gap: 14px; }
.nb-cookies__panel[hidden] { display: none; }
.nb-cookies__kat { display: flex; gap: 12px; align-items: flex-start; font-size: 12.5px; line-height: 1.55; color: var(--nb-muted); }
.nb-cookies__kat input { margin-top: 2px; width: 18px; height: 18px; flex: none; accent-color: var(--nb-green); }
.nb-cookies__kat strong { display: block; color: var(--nb-green); font-size: 13.5px; margin-bottom: 2px; }
.nb-cookies__buttons { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.nb-cookies__buttons .nb-button { flex: 0 1 auto; }
.nb-cookies__link {
    background: none;
    border: 0;
    padding: 10px 4px;
    font: inherit;
    font-size: 13.5px;
    color: var(--nb-muted);
    text-decoration: underline;
    cursor: pointer;
}
.nb-cookies__link:hover { color: var(--nb-green); }
.nb-cookies__save[hidden] { display: none; }

@media (max-width: 560px) {
    .nb-cookies { left: 10px; right: 10px; bottom: 10px; }
    .nb-cookies__box { padding: 18px 16px 16px; border-radius: 16px; }
    .nb-cookies__buttons .nb-button { flex: 1 1 100%; justify-content: center; }
    .nb-cookies__link { flex: 1 1 100%; text-align: center; }
}
.nb-cookies .nb-button--outline { border: 1.5px solid var(--nb-green); }

/* ===== Podstrony prawne ===== */
.nb-legal { max-width: 760px; margin: 0 auto; padding: 0 0 20px; }
.nb-legal__lead { font-size: 17px; line-height: 1.65; color: var(--nb-muted); margin: 0 0 34px; }
.nb-legal__section { margin: 0 0 34px; padding: 0 0 30px; border-bottom: 1px solid var(--nb-sage); }
.nb-legal__section:last-child { border-bottom: 0; }
.nb-legal__section h2 { font-size: 21px; margin: 0 0 14px; color: var(--nb-green); }
.nb-legal__section p { margin: 0 0 12px; line-height: 1.7; }
.nb-legal__todo {
    background: var(--nb-sage-2, #eef3ea);
    border-left: 3px solid var(--nb-green);
    border-radius: 0 10px 10px 0;
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--nb-muted);
}
.nb-legal__todo strong { color: var(--nb-green); }
.nb-legal__download { margin-top: 14px; }

/* ===== Sklep: cena jednostkowa, Omnibus, dokumenty ===== */
.nb-cena-jednostkowa {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 400;
    color: var(--nb-muted);
}
.nb-omnibus {
    margin: 10px 0 18px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--nb-muted);
}
.nb-omnibus strong { color: var(--nb-green); font-weight: 600; }
.nb-dokumenty { margin: 48px 0 0; }
.nb-dokumenty h2 { font-size: 21px; margin: 0 0 16px; color: var(--nb-green); }
.nb-dokumenty__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nb-dokumenty__lista a {
    display: block;
    padding: 14px 18px;
    background: var(--nb-sage-2, #eef3ea);
    border-radius: 12px;
    color: var(--nb-green);
    text-decoration: none;
    font-size: 15px;
}
.nb-dokumenty__lista a:hover { background: var(--nb-sage); }

@media (max-width: 560px) {
    .nb-legal__section h2, .nb-dokumenty h2 { font-size: 19px; }
    .nb-legal__lead { font-size: 15.5px; }
}

/* ===== Blok darmowych próbek ===== */
.nb-probki {
    background: var(--nb-sage-2, #eef3ea);
    border-radius: 20px;
    padding: 34px 30px;
    margin: 40px 0;
}
.nb-probki__title { margin: 0 0 12px; font-size: 24px; color: var(--nb-green); }
.nb-probki__text { margin: 0 0 24px; line-height: 1.65; color: var(--nb-muted); max-width: 56ch; }
.nb-probki__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.nb-probki__rules { font-size: 14px; color: var(--nb-muted); text-decoration: underline; }
.nb-probki__rules:hover { color: var(--nb-green); }

@media (max-width: 560px) {
    .nb-probki { padding: 26px 20px; border-radius: 16px; }
    .nb-probki__title { font-size: 20px; }
    .nb-probki__actions .nb-button { width: 100%; justify-content: center; }
    .nb-probki__rules { width: 100%; text-align: center; }
}
/* Menu prawne w stopce ma 6 pozycji - musi zawijac sie na waskich ekranach. */
.nb-footer__legal { flex-wrap: wrap; gap: 8px 20px; }
