/*
Theme Name: Divi Child theme of Divi
Theme URI: 
Description: Child theme of Divi theme for the Divi theme
Author: <a href="http://www.elegantthemes.com">Elegant Themes</a>
Author URI: 
Template: Divi
Version: 5.14.0
*/

/* Generated by Orbisius Child Theme Creator (https://orbisius.com/products/wordpress-plugins/orbisius-child-theme-creator/) on Tue, 29 Sep 2026 11:13:07 +0000 */ 
/* The plugin now uses the recommended approach for loading the css files.*/

/* ==========================================================================
   namgrass.pl — Divi 5 (motyw potomny). Zmiany tylko przez deploy.
   Kolory marki: zieleń #7CB137, tekst #333, ciemna zieleń stopki #1f2a16
   ========================================================================== */

:root {
	--ng-green: #7cb137;
	--ng-green-dark: #5e8a26;
	--ng-text: #333333;
	--ng-footer-bg: #1f2a16;
	--ng-footer-text: #dfe7d4;
	--ng-footer-link: #a3d468;
}

/* ---------- Nagłówek ---------- */
.ng-header {
	box-shadow: 0 2px 12px rgba(0, 0, 0, .08);
	z-index: 99;
}
@media (min-width: 981px) {
	.ng-header-row {
		display: flex !important;
		align-items: center;
	}
	.ng-header-row > .et_pb_column {
		margin-bottom: 0 !important;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}
.ng-header .et_pb_module,
.ng-header .et_pb_button_module_wrapper {
	margin-bottom: 0 !important;
}
.ng-menu .et_pb_menu__logo img {
	max-height: 64px;
	width: auto;
}
.ng-menu .et-menu > li > a {
	padding-bottom: 0 !important;
}
.ng-menu .et-menu > li > a:hover,
.ng-menu .et-menu > li.current-menu-item > a {
	color: var(--ng-green) !important;
	opacity: 1;
}
.ng-header .et_pb_button {
	white-space: nowrap;
	transition: background-color .2s ease;
}
.ng-header .et_pb_button:hover {
	background-color: var(--ng-green-dark) !important;
	padding: .3em 1em !important;
}
/* Tablet i telefon: logo + hamburger + przycisk w jednej linii */
@media (max-width: 980px) {
	.ng-header-row {
		display: flex !important;
		align-items: center;
		flex-wrap: nowrap;
	}
	.ng-header-row > .et_pb_column {
		margin-bottom: 0 !important;
	}
	.ng-header-row > .et_pb_column:first-child {
		flex: 1 1 auto;
		width: auto !important;
	}
	.ng-header-row > .et_pb_column:last-child {
		flex: 0 0 auto;
		width: auto !important;
		margin: 0 0 0 12px !important;
	}
	.ng-menu .et_pb_menu__logo img {
		max-height: 52px;
	}
	.ng-menu .mobile_menu_bar:before {
		color: var(--ng-green) !important;
	}
	.ng-header .et_pb_button {
		font-size: 14px !important;
		padding: .35em .8em !important;
	}
	/* rozwijane menu na całą szerokość nagłówka, nie kolumny */
	.ng-header-row,
	.ng-header-row > .et_pb_column:first-child,
	.ng-menu,
	.ng-menu .et_pb_menu_inner_container,
	.ng-menu .et_pb_menu__wrap,
	.ng-menu .et_mobile_nav_menu,
	.ng-menu .mobile_nav {
		position: static !important;
	}
	.ng-menu .et_mobile_menu {
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		top: 100% !important;
		border-top: 3px solid var(--ng-green) !important;
		box-shadow: 0 8px 16px rgba(0, 0, 0, .1);
	}
	.ng-menu .et_mobile_menu li a {
		font-size: 16px;
		padding: 12px 5%;
	}
}

/* ---------- Stopka ---------- */
.ng-footer,
.ng-footer .et_pb_text,
.ng-footer p {
	color: var(--ng-footer-text) !important;
	font-size: 15px;
	line-height: 1.7;
}
.ng-footer a {
	color: var(--ng-footer-link) !important;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .2s ease, border-color .2s ease;
}
.ng-footer a:hover {
	color: #ffffff !important;
	border-bottom-color: rgba(255, 255, 255, .6);
}
.ng-footer .ng-foot-h {
	font-family: 'Montserrat','Montserrat Fallback',sans-serif;
	font-weight: 700;
	font-size: 16px;
	color: #ffffff !important;
	margin-bottom: 10px;
	padding-bottom: 0;
}
.ng-footer a.ng-foot-cta {
	display: inline-block;
	margin-top: 6px;
	padding: 8px 16px;
	border: 0;
	border-radius: 4px;
	background: var(--ng-green);
	color: #ffffff !important;
	font-family: 'Montserrat','Montserrat Fallback',sans-serif;
	font-weight: 700;
	font-size: 14px;
}
.ng-footer a.ng-foot-cta:hover {
	background: var(--ng-green-dark);
	color: #ffffff !important;
}
.ng-social {
	margin-top: 12px;
}
.ng-social a.icon {
	border-bottom: 0 !important;
}
.ng-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, .15);
}
.ng-footer .ng-foot-copy p {
	font-size: 13px;
	opacity: .85;
}

/* ---------- Typografia i elementy wspólne ---------- */
body {
	color: var(--ng-text);
	font-family: 'Open Sans', 'Open Sans Fallback', Arial, sans-serif;
}
h1, h2, h3, h4,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4 {
	font-family: 'Montserrat','Montserrat Fallback',sans-serif;
	font-weight: 700;
	color: #1f2a16;
	line-height: 1.25;
}
.et_pb_module h2 { font-size: 32px; padding-bottom: 14px; }
.et_pb_module h3 { font-size: 20px; }
@media (max-width: 767px) {
	.et_pb_module h2 { font-size: 25px; }
}

/* ===== Strona główna — projekt 2026-09 (klasa .ngx) ===== */
:root{--green:#7cb137; --green-d:#5e8a26; --green-l:#a3d468;
  --forest:#1f2a16; --forest-2:#2b3a1f;
  --cream:#faf8f2; --mist:#f1f5ea; --line:#e3ebd8;
  --text:#333; --muted:#5f6b57;
  --r:18px; --shadow:0 18px 40px rgba(31,42,22,.14);}
.ngx *{box-sizing:border-box}
.ngx{margin:0;font-family:'Open Sans','Open Sans Fallback',system-ui,sans-serif;color:var(--text);background:#fff;line-height:1.65;font-size:16px}
.ngx img{max-width:100%;display:block}
.ngx a{color:inherit}
.ngx h1,.ngx h2,.ngx h3,.ngx h4{font-family:'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);line-height:1.15;margin:0}
.ngx .wrap{width:min(1240px,92%);margin:0 auto}
.ngx .eyebrow{display:inline-flex;align-items:center;gap:8px;font:600 13px/1 'Montserrat','Montserrat Fallback',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d)}
.ngx .eyebrow:before{content:"";width:22px;height:2px;background:var(--green)}
.ngx .btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font:700 15px/1 'Montserrat','Montserrat Fallback',sans-serif;text-decoration:none;transition:.2s ease;border:2px solid transparent;white-space:nowrap}
.ngx .btn--primary{background:var(--green);color:#fff;box-shadow:0 8px 20px rgba(124,177,55,.35)}
.ngx .btn--primary:hover{background:var(--green-d);transform:translateY(-1px)}
.ngx .btn--ghost{border-color:var(--forest);color:var(--forest)}
.ngx .btn--ghost:hover{background:var(--forest);color:#fff}
.ngx .btn--light{background:#fff;color:var(--forest)}
.ngx .btn--outline-light{border-color:rgba(255,255,255,.6);color:#fff}
.ngx .btn svg{width:18px;height:18px}
.ngx .sec{padding:96px 0}
.ngx .sec-head{max-width:720px;margin-bottom:44px}
.ngx .sec-head h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;margin-top:12px}
.ngx .sec-head p{font-size:18px;color:var(--muted);margin:14px 0 0}
.ngx .center{text-align:center;margin-left:auto;margin-right:auto}
.ngx .center .eyebrow{justify-content:center}
.ngx .hero{position:relative;background:var(--cream);overflow:hidden;padding:72px 0 110px}
.ngx .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.ngx .hero .wrap > *{min-width:0}
.ngx .hero h1{font-size:clamp(34px,4.2vw,56px);font-weight:800;letter-spacing:-.01em;margin:18px 0 20px}
.ngx .hero h1 em{font-style:normal;color:var(--green-d);background:linear-gradient(transparent 72%,rgba(124,177,55,.25) 72%);-webkit-box-decoration-break:clone;box-decoration-break:clone}

.ngx .hero .lead{font-size:19px;color:var(--muted);max-width:560px;margin:0 0 30px}
.ngx .hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.ngx .stats{display:flex;gap:34px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.ngx .stats b{display:block;font:800 30px/1 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .stats span{font-size:14px;color:var(--muted)}
.ngx .hero-visual{position:relative}
.ngx .hero-visual .photo{border-radius:28px 28px 28px 120px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/4.3}
.ngx .hero-visual .photo img{width:100%;height:100%;object-fit:cover}
.ngx .float-card{position:absolute;left:-36px;bottom:34px;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:12px 18px 12px 12px;display:flex;gap:14px;align-items:center;text-decoration:none;max-width:300px}
.ngx .float-card img{width:58px;height:58px;border-radius:12px;object-fit:cover}
.ngx .float-card small{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ngx .float-card strong{font:700 16px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .badge{position:absolute;right:-18px;top:28px;width:124px;height:124px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;text-align:center;font:800 15px/1.2 'Montserrat','Montserrat Fallback',sans-serif;box-shadow:0 12px 26px rgba(124,177,55,.45);transform:rotate(8deg)}
.ngx .badge span{display:block;font-size:11px;line-height:1.25;font-weight:600;opacity:.9;margin-top:4px}
.ngx .badge>div{padding:0 18px}
@media (max-width:680px){.ngx .badge span{display:none}}
.ngx .blades{position:absolute;left:0;right:0;bottom:-1px;height:70px;color:#fff}
.ngx .blades svg{width:100%;height:100%;display:block}
.ngx .trust{padding:34px 0;border-bottom:1px solid var(--line)}
.ngx .trust ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.ngx .trust li{display:flex;gap:12px;align-items:center;font:600 14px/1.35 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .trust svg{flex:0 0 38px;height:38px;padding:8px;border-radius:12px;background:var(--mist);color:var(--green-d)}
.ngx .uses{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:260px 260px;gap:18px}
.ngx .use{position:relative;border-radius:var(--r);overflow:hidden;text-decoration:none;color:#fff;isolation:isolate}
.ngx .use img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;z-index:-2}
.ngx .use:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(16,24,9,.82));z-index:-1}
.ngx .use:hover img{transform:scale(1.06)}
.ngx .use .t{position:absolute;left:22px;right:22px;bottom:20px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.ngx .use h3{color:#fff;font-size:21px}
.ngx .use p{margin:4px 0 0;font-size:14px;opacity:.85}
.ngx .use .arr{flex:0 0 40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;backdrop-filter:blur(4px);transition:.2s}
.ngx .use:hover .arr{background:var(--green)}
.ngx .use--big{grid-row:span 2}
.ngx .use--big h3{font-size:28px}
.ngx .ruler-sec{background:var(--mist)}
.ngx .ruler{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;align-items:end;min-height:420px;padding:0 6px}
.ngx .model{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--forest)}
.ngx .model .thumb{width:84px;height:84px;border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:0 8px 18px rgba(0,0,0,.12);margin-bottom:12px;transition:.2s}
.ngx .model .thumb img{width:100%;height:100%;object-fit:cover}
.ngx .model .bar{width:100%;max-width:110px;border-radius:14px 14px 0 0;background:linear-gradient(180deg,var(--green) 0%,var(--green-d) 100%);position:relative;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;color:#fff;font:800 18px 'Montserrat','Montserrat Fallback',sans-serif;transition:.25s}
.ngx .model .bar:before{content:"";position:absolute;left:0;right:0;top:-10px;height:12px;background:
  radial-gradient(circle at 10% 100%,var(--green) 6px,transparent 7px) 0 0/22px 12px repeat-x}
.ngx .model:hover .bar{filter:brightness(1.08)}
.ngx .model:hover .thumb{transform:translateY(-4px)}
.ngx .model h3{font-size:16px;margin-top:14px}
.ngx .model small{font-size:13px;color:var(--muted)}
.ngx .model .tag{position:absolute;top:-38px;background:var(--forest);color:#fff;font:700 11px 'Montserrat','Montserrat Fallback',sans-serif;padding:5px 9px;border-radius:999px;white-space:nowrap}
.ngx .ground{height:14px;background:var(--forest);border-radius:0 0 12px 12px;margin:0 6px}
.ngx .other{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px;align-items:center}
.ngx .pill{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 16px 6px 6px;text-decoration:none;font:600 14px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .pill img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.ngx .pill em{font-style:normal;color:var(--muted);font-weight:500}
.ngx .why{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ngx .card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px;transition:.25s}
.ngx .card:hover{box-shadow:var(--shadow);transform:translateY(-3px);border-color:transparent}
.ngx .card .ic{width:54px;height:54px;border-radius:16px;background:var(--mist);color:var(--green-d);display:grid;place-items:center;margin-bottom:20px}
.ngx .card .ic svg{width:28px;height:28px}
.ngx .card h3{font-size:20px;margin-bottom:8px}
.ngx .card p{margin:0;color:var(--muted)}
.ngx .card--accent{background:var(--forest);border-color:var(--forest)}
.ngx .card--accent h3{color:#fff}
.ngx .card--accent p{color:#cfdcbf}
.ngx .card--accent .ic{background:rgba(255,255,255,.1);color:var(--green-l)}
.ngx .steps-wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.ngx .steps{list-style:none;margin:0;padding:0;counter-reset:s}
.ngx .steps li{counter-increment:s;position:relative;padding:0 0 34px 76px}
.ngx .steps li:before{content:counter(s);position:absolute;left:0;top:-4px;width:52px;height:52px;border-radius:50%;background:var(--mist);color:var(--green-d);display:grid;place-items:center;font:800 20px 'Montserrat','Montserrat Fallback',sans-serif;border:2px solid var(--green)}
.ngx .steps li:after{content:"";position:absolute;left:25px;top:52px;bottom:4px;border-left:2px dashed #cbdcb5}
.ngx .steps li:last-child:after{display:none}
.ngx .steps h3{font-size:20px;margin-bottom:6px}
.ngx .steps p{margin:0;color:var(--muted)}
.ngx .steps-img{border-radius:28px;overflow:hidden;box-shadow:var(--shadow);position:relative}
.ngx .steps-img figcaption{position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.95);border-radius:12px;padding:10px 14px;font:600 14px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .warranty{background:var(--forest);color:#e6eedc;position:relative;overflow:hidden}
.ngx .warranty .wrap{display:grid;grid-template-columns:auto 1fr;gap:64px;align-items:center}
.ngx .big10{font:800 clamp(160px,20vw,260px)/.8 'Montserrat','Montserrat Fallback',sans-serif;color:transparent;-webkit-text-stroke:3px var(--green);letter-spacing:-.04em}
.ngx .warranty h2{color:#fff;font-size:clamp(28px,3.4vw,42px);font-weight:800;margin:12px 0 18px}
.ngx .warranty .eyebrow{color:var(--green-l)}
.ngx .checks{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px}
.ngx .checks li{display:flex;gap:12px;align-items:flex-start}
.ngx .checks li:before{content:"";flex:0 0 24px;height:24px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/14px no-repeat;margin-top:1px}
.ngx .warranty .glow{position:absolute;right:-160px;top:-160px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(124,177,55,.25),transparent 70%)}
.ngx .visit{display:grid;grid-template-columns:1fr 1fr;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.ngx .visit .info{padding:52px}
.ngx .visit h2{font-size:clamp(26px,3vw,38px);font-weight:800;margin:12px 0 18px}
.ngx .visit dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0 0 30px}
.ngx .visit dt{font:700 14px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .visit dd{margin:0;color:var(--muted)}
.ngx .visit dd a{color:var(--forest);font-weight:600}
.ngx .visit .map{position:relative;min-height:420px;background:#e8efdd}
.ngx .visit .map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ngx .visit .ctas{display:flex;gap:12px;flex-wrap:wrap}
.ngx .toc{position:sticky;top:110px;align-self:start;background:var(--mist);border-radius:var(--r);padding:26px}
.ngx .toc b{font:700 13px 'Montserrat','Montserrat Fallback',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d)}
.ngx .toc ol{margin:14px 0 0;padding-left:18px;display:grid;gap:10px;font-size:15px}
.ngx .toc a{text-decoration:none;color:var(--forest)}
.ngx .toc a:hover{color:var(--green-d)}
.ngx .final{background:linear-gradient(120deg,var(--green) 0%,#6aa12c 100%);border-radius:32px;padding:64px;display:grid;grid-template-columns:1.3fr auto;gap:40px;align-items:center;color:#fff;position:relative;overflow:hidden}
.ngx .final h2{color:#fff;font-size:clamp(28px,3.4vw,42px);font-weight:800}
.ngx .final p{margin:12px 0 0;font-size:18px;opacity:.95}
.ngx .final .ctas{display:flex;gap:12px;flex-wrap:wrap}
.ngx .final:after{content:"";position:absolute;right:-60px;bottom:-60px;width:260px;height:260px;border-radius:50%;border:40px solid rgba(255,255,255,.12)}
@media (max-width:1080px){
.ngx .hero .wrap,.ngx .steps-wrap,.ngx .visit{grid-template-columns:1fr}
.ngx .hero-visual{max-width:560px}
.ngx .trust ul{grid-template-columns:repeat(2,1fr)}
.ngx .uses{grid-template-columns:1fr 1fr;grid-template-rows:auto}
.ngx .use{min-height:220px}
.ngx .use--big{grid-row:auto;grid-column:span 2;min-height:300px}
.ngx .why{grid-template-columns:1fr 1fr}
.ngx .warranty .wrap{grid-template-columns:1fr;gap:10px}
.ngx .toc{position:static}
.ngx .final{grid-template-columns:1fr;padding:44px}
}
@media (max-width:680px){.ngx .sec{padding:64px 0}
.ngx .hero{padding:40px 0 90px}
.ngx .stats{gap:20px}
.ngx .stats b{font-size:24px}
.ngx .float-card{left:12px;bottom:12px}
.ngx .badge{right:8px;top:8px;width:96px;height:96px;font-size:13px}
.ngx .trust ul{grid-template-columns:1fr}
.ngx .uses{grid-template-columns:1fr}
.ngx .use--big{grid-column:auto}
.ngx .ruler-sec .scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4%;padding:0 4% 10px}
.ngx .ruler-sec .scroll > *{min-width:660px}
.ngx .ruler{min-height:380px}
.ngx .scroll-hint{display:block!important}
.ngx .hero h1{font-size:34px}
.ngx .hero h1 em{white-space:normal}
.ngx .hero .lead{font-size:17px}
.ngx .stats{flex-wrap:wrap}
.ngx .why{grid-template-columns:1fr}
.ngx .visit .info{padding:32px}
.ngx .visit .map{min-height:260px}
}

/* integracja z Divi */
.et_pb_section.ngx-sec{padding:0!important;background:transparent}
.et_pb_section.ngx-sec .et_pb_row.ngx-row{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}
.et_pb_section.ngx-sec > .et_pb_row.ngx-row > .et_pb_column{margin:0!important}
.et_pb_section.ngx-sec > .et_pb_row > .et_pb_column > .et_pb_code{margin:0!important}
.ngx p,.ngx h1,.ngx h2,.ngx h3,.ngx h4,.ngx li{padding-bottom:0}
.ngx ul,.ngx ol{line-height:inherit}
.ngx-article-row{width:min(1240px,92%)!important;max-width:none!important;padding:0 0 96px!important;display:grid!important;grid-template-columns:280px 1fr;gap:64px}
.ngx-article-row>.et_pb_column{width:auto!important;margin:0!important}
.ngx-article-row .toc{position:sticky;top:110px}
.ngx-prose{max-width:760px}
.ngx-prose h2{font-family:'Montserrat','Montserrat Fallback',sans-serif;font-size:28px;font-weight:800;color:#1f2a16;margin:40px 0 14px;padding:0;scroll-margin-top:100px}
.ngx-prose p{font-size:17px;line-height:1.7;margin:0 0 16px;padding:0}
@media (max-width:1080px){.ngx-article-row{grid-template-columns:1fr;gap:28px}.ngx-article-row .toc{position:static}}

/* ===== Poprawki po audycie 2026-09-30 (kontrast, fokus, cele dotykowe, stany) ===== */
:root{--btn:#4a7a1c;--btn-h:#3a6212;--label:#4a7a1c}
/* kontrast: biały tekst tylko na ciemniejszej zieleni (5,1:1 / 7,2:1) */
.ngx .btn--primary{background:var(--btn);box-shadow:0 8px 20px rgba(74,122,28,.3)}
.ngx .btn--primary:hover{background:var(--btn-h)}
.ngx .eyebrow{color:var(--label)}
.ngx .badge{background:var(--btn)}
.ngx .badge span{opacity:1}
.ngx .model .bar{background:linear-gradient(180deg,#5e8a26 0%,var(--btn) 100%);font-size:20px}
.ngx .model .bar:before{background:radial-gradient(circle at 10% 100%,#5e8a26 6px,transparent 7px) 0 0/22px 12px repeat-x}
.ngx .final{background:linear-gradient(120deg,var(--btn) 0%,#3f6a14 100%)}
.ngx .final:after{pointer-events:none}
.ngx .card .ic,.ngx .trust svg{color:var(--label)}
.ngx .steps li:before{color:var(--label)}
/* nagłówek i stopka — ten sam przycisk co w sekcjach */
.ng-header .et_pb_button,.ng-footer a.ng-foot-cta{background-color:var(--btn)!important;border-radius:999px!important}
.ng-header .et_pb_button:hover,.ng-footer a.ng-foot-cta:hover{background-color:var(--btn-h)!important}
/* widoczny fokus z klawiatury */
.ngx a:focus-visible,.ngx button:focus-visible,.ng-header a:focus-visible,.ng-footer a:focus-visible,.ng-menu .mobile_menu_bar:focus-visible,.ngx-skip:focus-visible{outline:3px solid #1f2a16;outline-offset:3px;border-radius:6px}
.ngx .warranty a:focus-visible,.ngx .final a:focus-visible,.ng-footer a:focus-visible,.ngx .use:focus-visible{outline-color:#fff}
.ngx .use:focus-visible{outline-offset:-4px}
/* karty informacyjne nie udają przycisków */
.ngx .card{transition:none}
.ngx .card:hover{box-shadow:none;transform:none;border-color:var(--line)}
.ngx .card--accent:hover{border-color:var(--forest)}
.ngx .card-link{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:var(--green-l)!important;font:700 15px 'Montserrat','Montserrat Fallback',sans-serif;text-decoration:none;min-height:44px}
.ngx .card-link:hover{color:#fff!important}
/* nazwy modeli jako linki */
.ngx a.model--label{text-decoration:none;padding-top:6px}
.ngx a.model--label:hover h3{color:var(--label)}
/* spis treści + CTA obok artykułu */
.ngx .toc-cta{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:10px}
.ngx .toc-cta b{font:700 15px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);letter-spacing:0;text-transform:none}
.ngx .toc-cta .btn{justify-content:center;padding:13px 18px;font-size:14px}
.ngx .toc-tel{font-size:14px;color:var(--forest);text-decoration:underline;min-height:44px;display:flex;align-items:center}
/* cele dotykowe min. 44 px */
.ng-header .et_pb_button{min-height:44px;line-height:1.2!important;padding:12px 22px!important}
.ng-header .et_pb_button:hover{padding:12px 22px!important}
.ng-menu .mobile_nav .mobile_menu_bar{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}
.ng-social li a.icon{width:44px!important;height:44px!important;display:flex!important;align-items:center;justify-content:center}
.ng-social li{margin-right:10px!important}
.ng-footer a.ng-foot-cta{min-height:44px;display:inline-flex;align-items:center;padding:10px 20px}
/* telefon: krócej, bez wychodzenia poza ekran */
@media (max-width:680px){
  .ngx .sec{padding:52px 0}
  .ngx .sec-head{margin-bottom:28px}
  .ngx .use{min-height:180px}
  .ngx .use--big{min-height:240px}
  .ngx .card{padding:22px}
  .ngx .hero{padding:32px 0 80px}
}
@media (max-width:400px){
  .ngx .btn{white-space:normal;text-align:center;justify-content:center;max-width:100%}
}
/* link „przejdź do treści” */
.ngx-skip{position:absolute;left:12px;top:-60px;z-index:100000;background:#fff;color:#1f2a16;padding:12px 18px;border-radius:8px;font:700 15px 'Montserrat','Montserrat Fallback',sans-serif;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.ngx-skip:focus{top:12px}
/* menu: tekst pozycji na osi logo i przycisku (Divi dodaje 31 px od góry) */
@media (min-width:981px){
  .ng-menu .et-menu{align-items:center}
  .ng-menu .et-menu > li > a{padding-top:0!important;padding-bottom:0!important;min-height:44px;display:flex!important;align-items:center}
}
/* telefon: węższy przycisk w nagłówku, logo nie może się zgniatać */
@media (max-width:980px){
  .ng-header .et_pb_button,.ng-header .et_pb_button:hover{padding:12px 14px!important;font-size:14px!important}
  .ng-menu .et_pb_menu__logo-wrap,.ng-menu .et_pb_menu__logo{flex:0 0 auto}
  .ng-menu .et_pb_menu__logo img{min-width:52px;max-height:52px;width:auto}
}

/* ===== Kontakt (strona 39) — 2026-09-30 ===== */
#PROBKI{scroll-margin-top:100px}
.ngx .hero--sm{padding:64px 0 72px}
.ngx .hero--sm .lead p{margin:0 0 10px}
.ngx .k-cards{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ngx .k-cards li{display:flex;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 24px}
.ngx .k-ic{flex:0 0 52px;height:52px;border-radius:16px;background:var(--mist);color:var(--green-d);display:grid;place-items:center}
.ngx .k-ic svg{width:24px;height:24px}
.ngx .k-cards small{display:block;font:600 12px/1.2 'Montserrat','Montserrat Fallback',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--label)}
.ngx .k-cards a{display:inline-block;font:800 22px/1.3 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);text-decoration:none;padding:8px 0;min-height:44px;word-break:break-word}
.ngx .k-cards a:hover{color:var(--btn)}
.ngx .k-cards span{display:block;font-size:14px;color:var(--muted)}
.ngx .k-form-sec{background:var(--mist);padding:80px 0}
.ngx .k-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:28px;align-items:start}
.ngx .k-grid > *{min-width:0}
.ngx .k-form h2,.ngx .k-visit h2{font-size:clamp(24px,2.6vw,32px);font-weight:800;margin:12px 0 10px}
.ngx .k-sub{color:var(--muted);margin:0 0 22px}
.ngx .k-legal{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.55;color:var(--muted)}
.ngx .k-legal p{margin:0 0 8px}
.ngx .k-legal a{color:var(--btn)}
.ngx .k-visit{position:sticky;top:110px}
.ngx .k-list{list-style:none;margin:6px 0 22px;padding:0;display:grid;gap:16px}
.ngx .k-list li{display:flex;gap:14px;align-items:flex-start}
.ngx .k-list svg{flex:0 0 22px;width:22px;height:22px;color:var(--green-d);margin-top:3px}
.ngx .k-visit .ctas{display:flex;flex-wrap:wrap;gap:10px}
.ngx .k-visit .k-fb{margin:22px 0 0!important;padding:10px 0 0!important;border-top:1px solid var(--line);font-size:14px}
.ngx .k-fb a{color:var(--btn);font-weight:600;display:inline-flex;align-items:center;min-height:44px}
.ngx .k-map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);margin-top:-1px}
.ngx .k-map iframe{display:block;width:100%;height:420px;border:0}
.ngx .k-map-sec{background:var(--mist);padding-bottom:80px!important}
/* Ninja Forms w karcie */
.ngx .k-nf .nf-form-content{padding:0;max-width:none}
.ngx .k-nf .nf-field-label label{font:600 14px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .k-nf input:not([type=submit]):not([type=checkbox]):not([type=radio]),.ngx .k-nf select,.ngx .k-nf textarea{border:1px solid #cfd9c2!important;border-radius:10px!important;background:#fff!important;min-height:48px;padding:10px 14px!important;font-size:16px!important}
.ngx .k-nf input:focus,.ngx .k-nf select:focus,.ngx .k-nf textarea:focus{border-color:var(--btn)!important;outline:2px solid rgba(74,122,28,.25)}
.ngx .k-nf input[type=submit],.ngx .k-nf input[type=button]{background:var(--btn)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:15px 30px!important;font:700 15px 'Montserrat','Montserrat Fallback',sans-serif!important;min-height:48px;cursor:pointer}
.ngx .k-nf input[type=submit]:hover{background:var(--btn-h)!important}
.ngx .k-nf .nf-form-fields-required{font-size:13px;color:var(--muted);margin-bottom:14px}
/* Kontakt: lista modeli w próbkach w siatce */
.ngx .k-nf .listcheckbox-container ul{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:4px 16px;margin:0!important;padding:0!important}
.ngx .k-nf .listcheckbox-container li{margin:0!important;padding:0!important;display:flex;align-items:center;min-height:40px}
.ngx .k-nf .listcheckbox-container li label{margin:0 0 0 8px!important;cursor:pointer}
@media (max-width:980px){
.ngx .k-grid{grid-template-columns:1fr}
.ngx .k-visit{position:static}
.ngx .hero--sm{padding:40px 0 48px}
.ngx .k-form-sec{padding:48px 0}
.ngx .k-cards a{font-size:20px}
.ngx .k-map iframe{height:320px}
.ngx .card.k-form,.ngx .card.k-visit{padding:22px}
}

/* ===== Produkty (strona 30) — 2026-09-30 ===== */
.ngx .p-hero .lead{max-width:600px}
.ngx .p-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.ngx .p-jump .pill{padding:10px 18px;min-height:44px}
.ngx .p-jump .pill em{background:var(--mist);border-radius:999px;padding:2px 8px;font-size:12px}
.ngx .p-facts{list-style:none;margin:0;display:grid;gap:14px;padding:30px}
.ngx .p-facts li{display:flex;gap:12px;align-items:flex-start;color:var(--muted)}
.ngx .p-facts b{color:var(--forest)}
.ngx .p-facts svg{flex:0 0 22px;width:22px;height:22px;color:#fff;background:var(--btn);border-radius:50%;padding:4px;margin-top:1px}
.ngx .p-sec{scroll-margin-top:90px;padding:80px 0}
.ngx .p-group{scroll-margin-top:90px}
.ngx .p-sec--mist{background:var(--mist)}
.ngx .p-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ngx .p-grid > *{min-width:0}
.ngx .p-grid--2{grid-template-columns:repeat(2,1fr)}
.ngx .p-two{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.ngx .p-two > *{min-width:0}
.ngx .p-two .sec-head{margin-bottom:28px}
.ngx .p-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--text);transition:border-color .2s,box-shadow .2s}
.ngx .p-card:hover{border-color:var(--green);box-shadow:var(--shadow)}
.ngx .p-card:focus-visible{outline:3px solid var(--btn);outline-offset:3px}
.ngx .p-img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--mist)}
.ngx .p-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ngx .p-card:hover .p-img img{transform:scale(1.04)}
.ngx .p-body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.ngx .p-runo{align-self:flex-start;font:700 12px/1 'Montserrat','Montserrat Fallback',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--label);background:var(--mist);border-radius:999px;padding:6px 10px}
.ngx .p-card h3{font-size:22px;margin:12px 0 6px}
.ngx .p-opis{font-size:15px;color:var(--muted);line-height:1.5;flex:1}
.ngx .p-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.ngx .p-cena{font-size:14px;color:var(--muted)}
.ngx .p-cena b{font:800 20px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .p-more{display:inline-flex;align-items:center;gap:6px;font:700 14px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--btn)}
.ngx .p-more svg{width:16px;height:16px;transition:transform .2s}
.ngx .p-card:hover .p-more svg{transform:translateX(3px)}
.ngx .p-tag{position:absolute;top:12px;left:12px;z-index:1;background:var(--forest);color:#fff;font:700 11px/1.2 'Montserrat','Montserrat Fallback',sans-serif;padding:6px 10px;border-radius:999px}
.ngx .p-cta{padding:90px 0}
.ngx .p-cta-box{background:var(--forest);border-radius:24px;padding:44px 48px;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center}
.ngx .p-cta-box h2{color:#fff;font-size:clamp(24px,2.6vw,34px);font-weight:800;margin-bottom:10px}
.ngx .p-cta-box p{color:#cfdcbf;margin:0}
.ngx .p-cta-box .ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
.ngx .p-card--cta{background:var(--forest);border-color:var(--forest);justify-content:flex-end;min-height:260px}
.ngx .p-card--cta .eyebrow{color:var(--green-l)}
.ngx .p-card--cta h3{color:#fff;font-size:24px}
.ngx .p-card--cta .p-opis{color:#cfdcbf}
.ngx .p-card--cta .p-foot{border-top-color:rgba(255,255,255,.15)}
.ngx .p-card--cta .p-more{color:#fff}
.ngx .p-card--cta:hover{border-color:var(--forest-2);background:var(--forest-2)}
@media (max-width:1100px){.ngx .p-grid{grid-template-columns:repeat(3,1fr)}.ngx .p-grid--2{grid-template-columns:repeat(2,1fr)}.ngx .p-two{grid-template-columns:1fr}}
@media (max-width:980px){.ngx .p-grid{grid-template-columns:repeat(2,1fr)}.ngx .p-sec{padding:52px 0}.ngx .p-cta-box{grid-template-columns:1fr;padding:30px 24px}.ngx .p-cta-box .ctas{justify-content:flex-start}.ngx .p-cta{padding:52px 0}}
@media (max-width:560px){.ngx .p-grid,.ngx .p-grid--2{grid-template-columns:1fr;gap:12px}.ngx .p-facts{padding:22px}
.ngx .p-card{flex-direction:row}
.ngx .p-img{flex:0 0 36%;aspect-ratio:auto;min-height:150px}
.ngx .p-body{padding:14px}
.ngx .p-card h3{font-size:19px;margin:8px 0 4px}
.ngx .p-opis{font-size:14px}
.ngx .p-foot{margin-top:10px;padding-top:10px}
.ngx .p-cena b{font-size:18px}
.ngx .p-card:not(.p-card--cta) .p-more{display:none}
.ngx .p-tag{top:8px;left:8px;max-width:calc(36% - 16px);white-space:normal;font-size:10px;padding:5px 8px}
.ngx .p-card--cta{min-height:0}}

/* ===== Współpraca (strona 41) — 2026-09-30 ===== */
#formularz{scroll-margin-top:100px}
.ngx .w-img img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:24px;box-shadow:var(--shadow)}
.ngx .w-hero .w-img{max-width:520px;justify-self:end}
.ngx .w-b2b{padding:80px 0}
.ngx .w-why{grid-template-columns:repeat(3,1fr)}
.ngx .w-cards{margin:8px 0 18px}
.ngx .w-cards li{padding:16px 18px}
.ngx .w-note{margin:0;font-size:15px;color:var(--muted)}
.ngx .w-note a{color:var(--btn);font-weight:600}
/* lista rozwijana Ninja Forms: natywna strzałka i normalna wysokość wiersza (NF daje line-height 48px przy naszym odstępie 10px — tekst wychodził pod dolną krawędź); tło-atrapa NF ukryte — 02.10.2026 */
.ngx .k-nf select{-webkit-appearance:menulist!important;appearance:auto!important;line-height:1.4!important}
.ngx .k-nf .listselect-wrap .nf-field-element>div{display:none!important}
.ngx .k-nf .nf-field-container{margin-bottom:18px}
.ngx .k-nf textarea{height:140px!important;min-height:120px}
@media (max-width:980px){.ngx .w-hero .w-img{justify-self:stretch;max-width:none}.ngx .w-img img{aspect-ratio:4/3}.ngx .w-why{grid-template-columns:1fr}.ngx .w-b2b{padding:52px 0}}

/* ===== Pielęgnacja (strona 32) — 2026-09-30 ===== */
.ngx .c-hero .wrap{grid-template-columns:1fr}
.ngx .c-hero .lead{max-width:680px}
.ngx .c-sec{padding:80px 0;scroll-margin-top:90px}
.ngx .c-sec--mist{background:var(--mist)}
.ngx .c-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.ngx .c-grid > *{min-width:0}
.ngx .c-sticky{position:sticky;top:110px;margin-bottom:0}
.ngx .c-alert{display:flex;gap:14px;margin-top:28px;background:#fff7e6;border:1px solid #f1d9a6;border-radius:var(--r);padding:18px 20px;color:#5b4a1f}
.ngx .c-alert svg{flex:0 0 24px;width:24px;height:24px;color:#b7791f}
.ngx .c-alert strong{font-family:'Montserrat','Montserrat Fallback',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:13px}
.ngx .c-alert p{margin:4px 0 0;font-size:15px}
.ngx .c-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ngx .c-list li{display:flex;gap:18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.ngx .c-n{flex:0 0 auto;font:800 15px/1 'Montserrat','Montserrat Fallback',sans-serif;color:var(--label);background:var(--mist);border-radius:10px;padding:10px 10px;height:max-content}
.ngx .c-list h3{font-size:18px;margin:4px 0 6px}
.ngx .c-list p{margin:0;color:var(--muted)}
.ngx .c-list a{color:var(--btn);font-weight:600}
.ngx .c-brush{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.ngx .c-brush > *{min-width:0}
.ngx .c-brush h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;margin:12px 0 18px}
.ngx .c-brush p{font-size:17px;color:var(--muted)}
.ngx .c-img img{width:100%;max-width:460px;height:auto;border-radius:24px;box-shadow:var(--shadow)}
.ngx .c-avoid .card p{color:var(--forest);font-weight:600;font-size:17px}
.ngx .c-avoid .ic{background:#fdecea;color:#b42318}
@media (max-width:980px){.ngx .c-grid,.ngx .c-brush{grid-template-columns:1fr;gap:28px}.ngx .c-sticky{position:static}.ngx .c-sec{padding:52px 0}.ngx .c-img img{max-width:none;aspect-ratio:4/3;object-fit:cover}.ngx .c-avoid{grid-template-columns:1fr}}

/* ===== RODO (strona 37) — 2026-09-30 ===== */
.ngx .r-sec{padding:64px 0 90px}
.ngx .r-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.ngx .r-grid > *{min-width:0}
.ngx .r-h{font-size:22px;font-weight:800;margin:0 0 16px}
.ngx .r-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ngx .r-doc{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;text-decoration:none;color:var(--forest);font-weight:600;transition:border-color .2s,box-shadow .2s}
.ngx .r-doc:hover{border-color:var(--green);box-shadow:var(--shadow)}
.ngx .r-ic{flex:0 0 40px;height:40px;border-radius:10px;background:var(--mist);color:var(--green-d);display:grid;place-items:center}
.ngx .r-ic svg{width:20px;height:20px}
.ngx .r-t{flex:1;line-height:1.35}
.ngx .r-t small{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:2px}
.ngx .r-dl{flex:0 0 20px;width:20px;height:20px;color:var(--btn)}
.ngx .r-box{display:flex;gap:16px;margin-top:28px;background:var(--mist);border-radius:var(--r);padding:20px}
.ngx .r-box p{margin:4px 0 0;color:var(--muted)}
.ngx .r-box a{color:var(--btn);font-weight:600}
@media (max-width:980px){.ngx .r-grid{grid-template-columns:1fr}.ngx .r-sec{padding:40px 0 60px}}

/* ===== Strony lokalne Poznań (1605) / Warszawa (1623) — 2026-09-30 ===== */
.ngx .l-info{padding:26px 28px}
.ngx .l-info .k-list{margin:14px 0 0}
.ngx .l-info a{color:var(--btn);font-weight:700;text-decoration:none}
.ngx .l-sec{padding:80px 0}
.ngx .l-sec--mist{background:var(--mist)}
.ngx .l-split{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.ngx .l-split--top{align-items:start}
.ngx .l-split > *{min-width:0}
.ngx .l-split h2{font-size:clamp(26px,3vw,38px);font-weight:800;margin:12px 0 18px}
.ngx .l-split p{font-size:17px;color:var(--muted)}
.ngx .l-img img{width:100%;height:auto;border-radius:24px;box-shadow:var(--shadow)}
.ngx .l-groups{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ngx .l-groups a{display:block;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;text-decoration:none;color:var(--muted);transition:border-color .2s,box-shadow .2s}
.ngx .l-groups a:hover{border-color:var(--green);box-shadow:var(--shadow)}
.ngx .l-groups strong{display:block;font:800 20px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);margin-bottom:8px}
.ngx .l-h2b{font-size:clamp(22px,2.4vw,28px);font-weight:800;margin:56px 0 22px}
.ngx .l-facts{grid-template-columns:repeat(4,1fr)}
.ngx .l-steps{margin-top:26px}
.ngx .l-montaz{padding:30px}
.ngx .l-montaz h3{font-size:22px}
.ngx .l-montaz p{margin:10px 0 0}
.ngx .l-montaz a{color:var(--btn);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px;min-height:44px}
.ngx .l-montaz a svg{width:16px;height:16px}
.ngx .l-uses{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ngx .l-uses li{background:var(--cream);border-radius:14px;padding:18px 20px;border-left:4px solid var(--green)}
.ngx .l-uses strong{display:block;font:700 17px 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
.ngx .l-uses span{font-size:15px;color:var(--muted)}
.ngx .l-note{margin:26px 0 0;color:var(--muted);max-width:820px}
.ngx .l-note a{color:var(--btn);font-weight:600}
.ngx .l-band{display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--cream);border:1px solid var(--line);border-radius:24px;padding:34px 40px}
.ngx .l-band h2{font-size:clamp(22px,2.4vw,30px);font-weight:800;margin:10px 0 8px}
.ngx .l-band p{margin:0;color:var(--muted);max-width:640px}
.ngx .l-faq-wrap{max-width:900px}
.ngx .l-faq{display:grid;gap:10px}
.ngx .l-faq-i{background:#fff;border:1px solid var(--line);border-radius:14px}
.ngx .l-faq-i summary{cursor:pointer;list-style:none;padding:18px 52px 18px 22px;font:700 17px/1.35 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);position:relative;min-height:44px}
.ngx .l-faq-i summary::-webkit-details-marker{display:none}
.ngx .l-faq-i summary:after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--btn)}
.ngx .l-faq-i[open] summary:after{content:"–"}
.ngx .l-faq-i div{padding:0 22px 18px}
.ngx .l-faq-i p{margin:0;color:var(--muted)}
.ngx .l-img--hero img{aspect-ratio:16/9;object-fit:cover}
@media (max-width:1100px){.ngx .l-facts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:980px){.ngx .l-split{grid-template-columns:1fr;gap:28px}.ngx .l-sec{padding:52px 0}.ngx .l-groups,.ngx .l-uses{grid-template-columns:1fr}.ngx .l-band{flex-direction:column;align-items:flex-start;padding:26px 22px}.ngx .l-h2b{margin-top:40px}}
@media (max-width:560px){.ngx .l-facts{grid-template-columns:1fr}}

/* ===== Szablony Theme Builder: wpis, blog, kategorie, produkt — 2026-09-30 ===== */
.ngx-tb{padding:0!important;font-family:'Open Sans','Open Sans Fallback',system-ui,sans-serif}
.ngx-tb .et_pb_row{width:min(1240px,92%)!important;max-width:none!important;padding:0!important}
.ngx-tb .et_pb_row.ngx-row-narrow{width:min(820px,92%)!important}
.ngx-tb .et_pb_row.ngx-row-full{width:100%!important}
.ngx-tb .et_pb_row.ngx-row-full .et_pb_column{width:100%!important;margin:0!important}
.ngx-tb .et_pb_code{margin:0!important}
.ngx-tb .ngx *{box-sizing:border-box}
/* okruszki (Yoast) */
.ngx .t-bc{font-size:14px;color:var(--muted);margin-bottom:18px}
.ngx .t-bc a{color:var(--btn);text-decoration:none;font-weight:600}
.ngx .t-bc .breadcrumb_last{color:var(--muted)}
/* hero wpisu */
.ngx-post-hero{background:var(--cream)!important;padding:48px 0 40px!important}
.ngx-ptitle{margin:0!important}
.ngx-ptitle h1,.ngx-ptitle .entry-title{font:800 clamp(30px,4vw,46px)/1.15 'Montserrat','Montserrat Fallback',sans-serif!important;color:var(--forest)!important;letter-spacing:-.01em;padding:0!important;margin:0 0 16px!important}
.ngx-ptitle .et_pb_title_meta_container,.ngx-ptitle .post-meta{font-size:15px!important;color:var(--muted)!important}
.ngx-ptitle .et_pb_title_meta_container a{color:var(--btn)!important;font-weight:600;text-decoration:none}
/* treść wpisu */
.ngx-post-body{padding:44px 0 64px!important;background:#fff}
.ngx-content{font-size:18px;line-height:1.75;color:var(--text)}
.ngx-content p{margin:0 0 1.1em;padding:0}
.ngx-content h2{font:800 clamp(24px,2.6vw,30px)/1.25 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);margin:1.8em 0 .6em;padding:0;scroll-margin-top:100px}
.ngx-content h3{font:700 clamp(19px,2vw,22px)/1.3 'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest);margin:1.5em 0 .5em;padding:0;scroll-margin-top:100px}
.ngx-content a{color:var(--btn);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ngx-content ul,.ngx-content ol{margin:0 0 1.2em 1.2em;padding:0 0 0 .6em;line-height:1.7}
.ngx-content li{margin:0 0 .4em}
.ngx-content img{border-radius:16px;height:auto}
.ngx-content .wp-caption{max-width:100%!important;margin:0 0 1.6em;background:none;padding:0;border:0}
.ngx-content .wp-caption-text,.ngx-content figcaption{font-size:14px;color:var(--muted);text-align:left;margin-top:8px;padding:0}
.ngx-content blockquote{border-left:4px solid var(--green);background:var(--mist);margin:1.4em 0;padding:16px 22px;border-radius:0 14px 14px 0;font-style:normal}
.ngx-content table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:16px;display:block;overflow-x:auto}
.ngx-content th,.ngx-content td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.ngx-content th{background:var(--mist);font-family:'Montserrat','Montserrat Fallback',sans-serif;color:var(--forest)}
/* CTA pod wpisem */
.ngx .t-cta{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:center;margin-top:48px;background:var(--mist);border:1px solid var(--line);border-radius:24px;padding:30px 32px}
.ngx .t-cta-h{font:800 24px/1.25 'Montserrat','Montserrat Fallback',sans-serif;margin:10px 0 8px}
.ngx .t-cta p{margin:0;color:var(--muted);font-size:16px}
.ngx .t-cta .ctas{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.ngx .t-cta .btn{justify-content:center}
/* podobne / siatka wpisów */
.ngx-post-rel{background:var(--cream)!important;padding:64px 0!important}
.ngx .t-rel-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;margin-bottom:26px}
.ngx .t-rel-head .eyebrow{flex-basis:100%}
.ngx .t-rel-head h2{font:800 clamp(24px,2.8vw,34px)/1.2 'Montserrat','Montserrat Fallback',sans-serif;margin:0}
.ngx .t-more{display:inline-flex;align-items:center;gap:6px;color:var(--btn);font:700 15px 'Montserrat','Montserrat Fallback',sans-serif;text-decoration:none;min-height:44px}
.ngx .t-more svg{width:16px;height:16px}
.ngx-blog .et_pb_blog_posts,.ngx-blog .et_pb_salvattore_content{display:grid!important;grid-template-columns:repeat(3,1fr);gap:22px}
.ngx-blog .et_pb_salvattore_content .column{display:contents}
.ngx-blog .et_pb_post{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line)!important;border-radius:18px;overflow:hidden;padding:0!important;margin:0!important;transition:border-color .2s,box-shadow .2s}
.ngx-blog .et_pb_post:hover{border-color:var(--green)!important;box-shadow:0 18px 40px rgba(31,42,22,.12)}
.ngx-blog .et_pb_image_container{margin:0!important}
.ngx-blog .et_pb_image_container img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;min-width:0!important}
.ngx-blog .et_overlay{display:none!important}
.ngx-blog .entry-title{font:700 19px/1.3 'Montserrat','Montserrat Fallback',sans-serif!important;margin:16px 20px 6px!important;padding:0!important}
.ngx-blog .entry-title a{color:var(--forest)!important;text-decoration:none}
.ngx-blog .et_pb_post:hover .entry-title a{color:var(--btn)!important}
.ngx-blog .post-meta{margin:0 20px 8px!important;padding:0!important;font-size:13px!important;color:var(--muted)!important}
.ngx-blog .post-meta a{color:var(--label)!important;font-weight:600}
.ngx-blog .post-content{margin:0 20px 20px;font-size:15px;line-height:1.6;color:var(--muted)}
.ngx-blog .post-content p{padding:0}
.ngx-blog .pagination,.ngx-blog .wp-pagenavi{grid-column:1/-1;margin-top:18px}
.ngx-blog .pagination a{display:inline-flex;align-items:center;min-height:44px;color:var(--btn)!important;font:700 15px 'Montserrat','Montserrat Fallback',sans-serif;text-decoration:none}
/* blog: nagłówek i kategorie */
.ngx .b-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.ngx .b-cats .pill{padding:8px 16px;min-height:40px}
.ngx .b-cats .pill:hover,.ngx .b-cats .pill.is-on{border-color:var(--btn);color:var(--btn)}
.ngx-blog-list{padding:56px 0 80px!important;background:#fff}
.ngx-arch-hero{background:var(--cream)!important;padding:48px 0 36px!important}
.ngx-arch-hero .ngx-ptitle h1{margin-bottom:6px!important}
/* produkt */
.ngx-prod-top{padding:40px 0 56px!important;background:#fff}
.ngx-prod-top .et_pb_row{display:grid!important;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
.ngx-prod-top .et_pb_row:after{display:none}
.ngx-prod-top .et_pb_column{width:auto!important;margin:0!important;min-width:0}
.ngx-prod-top .woocommerce-product-gallery{margin:0!important;width:100%!important;float:none!important}
.ngx-prod-top .woocommerce-product-gallery__wrapper img{border-radius:18px}
.ngx-prod-top .flex-control-thumbs{display:grid!important;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px!important}
.ngx-prod-top .flex-control-thumbs li{width:auto!important;margin:0!important}
.ngx-prod-top .flex-control-thumbs img{border-radius:10px;opacity:.7}
.ngx-prod-top .flex-control-thumbs img.flex-active,.ngx-prod-top .flex-control-thumbs img:hover{opacity:1}
.ngx-prod-top .woocommerce-product-gallery__trigger{display:none}
.ngx-wcbc{font-size:14px!important;margin-bottom:14px!important}
.ngx-wcbc a{color:var(--btn)!important;font-weight:600;text-decoration:none}
.ngx-wctitle h1{font:800 clamp(30px,3.6vw,44px)/1.15 'Montserrat','Montserrat Fallback',sans-serif!important;color:var(--forest)!important;margin:0 0 12px!important;padding:0!important}
.ngx-price{margin-bottom:22px!important}
.ngx-price .price{font:800 30px 'Montserrat','Montserrat Fallback',sans-serif!important;color:var(--forest)!important}
.ngx-price .price:after{content:" netto/m²";font:600 16px 'Open Sans',sans-serif;color:var(--muted)}
.ngx .t-pcta .ctas{display:flex;flex-wrap:wrap;gap:12px}
.ngx .t-pfacts{list-style:none;margin:22px 0 0;padding:20px 0 0;border-top:1px solid var(--line);display:grid;gap:10px}
.ngx .t-pfacts li{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:15px}
.ngx .t-pfacts b{color:var(--forest)}
.ngx .t-pfacts svg{flex:0 0 20px;width:20px;height:20px;color:#fff;background:var(--btn);border-radius:50%;padding:4px}
.ngx .t-pnote{margin:18px 0 0;font-size:13px;color:var(--muted)}
.ngx-prod-desc{padding:0 0 64px!important;background:#fff}
.ngx .t-desc-h{font:800 clamp(24px,2.6vw,30px)/1.2 'Montserrat','Montserrat Fallback',sans-serif;margin:10px 0 16px}
.ngx-wcdesc{font-size:17px;line-height:1.75;color:var(--text)}
.ngx-wcdesc p{padding:0;margin:0 0 1em}
.ngx .t-models{padding:64px 0}
.ngx .t-other{margin-top:0}
.ngx-prodcat-list{padding:40px 0 80px!important}
.ngx-shop ul.products{display:grid!important;grid-template-columns:repeat(4,1fr);gap:20px;margin:0!important}
.ngx-shop ul.products:before,.ngx-shop ul.products:after{display:none!important}
.ngx-shop ul.products li.product{width:auto!important;margin:0!important;float:none!important;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;padding:0 0 16px!important}
.ngx-shop ul.products li.product img{aspect-ratio:3/2;object-fit:cover;margin:0 0 12px!important}
.ngx-shop .woocommerce-loop-product__title{font:700 18px 'Montserrat','Montserrat Fallback',sans-serif!important;color:var(--forest)!important;padding:0 16px!important}
.ngx-shop .price{padding:0 16px;color:var(--forest)!important;font-weight:800}
.ngx-shop .price:after{content:" netto/m²";font-weight:400;color:var(--muted);font-size:13px}
.ngx-shop .et_overlay,.ngx-shop .button,.ngx-shop .star-rating{display:none!important}
.ngx .t-prodcat-note{margin:14px 0 0;color:var(--muted)}
.ngx .t-prodcat-note a{color:var(--btn);font-weight:600}
@media (max-width:980px){
.ngx-blog .et_pb_blog_posts,.ngx-blog .et_pb_salvattore_content{grid-template-columns:repeat(2,1fr)}
.ngx .t-cta{grid-template-columns:1fr;padding:24px 22px}
.ngx-prod-top .et_pb_row{grid-template-columns:1fr;gap:26px}
.ngx-shop ul.products{grid-template-columns:repeat(2,1fr)}
.ngx-post-hero{padding:32px 0 28px!important}.ngx-content{font-size:17px}
}
@media (max-width:640px){.ngx-blog .et_pb_blog_posts,.ngx-blog .et_pb_salvattore_content{grid-template-columns:1fr}.ngx-shop ul.products{grid-template-columns:1fr}}

/* poprawki szablonów TB 30.09 (zgłoszenie Marcina): przezroczyste tło kodu w sekcjach hero, rozmiar ikon w linkach */
.ngx-post-hero .ngx,.ngx-arch-hero .ngx{background:transparent}
.ngx a > svg{width:16px;height:16px;flex:0 0 auto;vertical-align:-3px}
.ngx .t-prodcat-note a{display:inline-flex;align-items:center;gap:6px}

/* nagłówek: telefon widoczny także na komputerze (decyzja Marcina 30.09), od 1240 px obok CTA (wężej menu by się łamało) */
@media (min-width:1240px){
  .ng-header-row > .et_pb_column:first-child{flex:1 1 auto;width:auto!important;margin-right:0!important}
  .ng-header-row > .et_pb_column:last-child{flex:0 0 auto;width:auto!important;flex-direction:row!important;align-items:center;justify-content:flex-end;gap:14px}
  .ng-header .et_pb_button_1_tb_header_wrapper{order:-1}
  html body #page-container .et-l--header .et_pb_button.ng-tel,html body .et-l--header .et_pb_button.ng-tel{display:inline-flex!important;align-items:center;background:transparent!important;color:#1f2a16!important;border:2px solid #cfd9c2!important}
  html body #page-container .et-l--header .et_pb_button.ng-tel:hover,html body .et-l--header .et_pb_button.ng-tel:hover{background:transparent!important;border-color:#4a7a1c!important;color:#4a7a1c!important}
}

/* nagłówek na telefonie: kompaktowy przycisk telefonu (ikona + numer), bez dotykania krawędzi — zgłoszenie Marcina 30.09.
   Tekst „Zadzwoń: 606 707 721” zostaje w linku dla czytników ekranu (font-size:0), numer pokazuje ::after. */
@media (max-width:980px){
  html body #page-container .et_pb_section .et_pb_button_1_tb_header.ng-tel,html body #page-container .et_pb_section .et_pb_button_1_tb_header.ng-tel:hover{font-size:0!important;line-height:1!important;padding:0 14px!important;min-height:44px;display:inline-flex!important;align-items:center;gap:7px;letter-spacing:0}
  html body #page-container .et_pb_section .et_pb_button_1_tb_header.ng-tel:before{content:""!important;display:inline-block!important;position:static!important;width:16px;height:16px;margin:0!important;opacity:1!important;transform:none!important;top:auto!important;font-size:0!important;line-height:0!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") no-repeat center/contain}
  html body #page-container .et_pb_section .et_pb_button_1_tb_header.ng-tel:after,html body #page-container .et_pb_section .et_pb_button_1_tb_header.ng-tel:hover:after{content:"606 707 721"!important;font:700 14px/1 'Montserrat','Montserrat Fallback',sans-serif!important;position:static!important;opacity:1!important;margin:0!important;display:inline!important;color:#fff!important;letter-spacing:0!important;transform:none!important}
  .ng-header-row > .et_pb_column:last-child{margin-left:8px!important}
}

/* spis treści: przycisk „Zamów darmowe próbki” z białym tekstem (reguła .toc a nadpisywała kolor) — zgłoszenie Marcina 30.09 */
.ngx .toc a.btn--primary,.ngx .toc a.btn--primary:hover{color:#fff}

/* zgłoszenie Marcina 30.09: „lub zadzwoń” wyśrodkowane pod przyciskiem; mniejszy odstęp między artykułem a pasem „Wysyłamy darmowe próbki” */
.ngx .toc-tel{justify-content:center;text-align:center}
.ngx-article-row{padding-bottom:56px!important}
.ngx-article-row .et_pb_text_inner > :last-child{margin-bottom:0!important;padding-bottom:0!important}
@media (max-width:980px){.ngx-article-row{padding-bottom:28px!important}}

/* === Karta produktu: galeria bez przesunięć układu (CLS) — 01.10.2026 ===
   Slider WooCommerce startuje po wczytaniu skryptów. Do tego czasu galeria była niewidoczna (opacity 0),
   a w chwili startu pierwsze zdjęcie na ułamek sekundy rozciągało się na szerokość całej taśmy slajdów
   (ok. 4500 px) i spychało treść pod galerią; miniatury dopisywały się na końcu. */
.woocommerce-product-gallery{opacity:1!important;container-type:inline-size;--ngx-th-cols:4;--ngx-th-gap:30px}
.woocommerce-product-gallery .woocommerce-product-gallery__image img{display:block;width:100%;height:auto}
/* przed startem slidera: widać tylko pierwsze zdjęcie */
.woocommerce-product-gallery>.woocommerce-product-gallery__wrapper>.woocommerce-product-gallery__image:nth-child(n+2){display:none!important}
/* chwila startu (slajdy nie mają jeszcze szerokości od slidera): pierwsze zdjęcie = szerokość galerii, reszta ukryta */
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image:not([style*="width"]){width:100cqw!important}
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image:not([style*="width"]):nth-child(n+2){display:none!important}
/* miniatury: stała siatka i kwadratowe pola od razu */
.woocommerce-product-gallery .flex-control-thumbs{display:grid!important;grid-template-columns:repeat(var(--ngx-th-cols),1fr)!important;gap:var(--ngx-th-gap)!important;margin:10px 0 0!important;padding:0!important}
.woocommerce-product-gallery .flex-control-thumbs li{width:auto!important;margin:0!important;float:none!important}
.woocommerce-product-gallery .flex-control-thumbs li img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
/* rezerwacja miejsca na miniatury, zanim slider je dopisze (1, 2 lub 3 rzędy) */
.woocommerce-product-gallery:not(:has(.flex-control-nav)):has(.woocommerce-product-gallery__image:nth-child(2)){
  --ngx-th:calc((100% - (var(--ngx-th-cols) - 1)*var(--ngx-th-gap))/var(--ngx-th-cols));
  padding-bottom:calc(10px + var(--ngx-th))}
.woocommerce-product-gallery:not(:has(.flex-control-nav)):has(.woocommerce-product-gallery__image:nth-child(5)){
  padding-bottom:calc(10px + 2*var(--ngx-th) + var(--ngx-th-gap))}
.woocommerce-product-gallery:not(:has(.flex-control-nav)):has(.woocommerce-product-gallery__image:nth-child(9)){
  padding-bottom:calc(10px + 3*var(--ngx-th) + 2*var(--ngx-th-gap))}
.woocommerce-product-gallery:not(:has(.flex-control-nav)):has(.woocommerce-product-gallery__image:nth-child(13)){
  padding-bottom:calc(10px + 4*var(--ngx-th) + 3*var(--ngx-th-gap))}

/* === Poprawki z telefonu (zgłoszenie Marcina ze zrzutów) — 01.10.2026 === */

/* 1. Karty kontaktu (/kontakt/, /wspolpraca/): ikona wyśrodkowana w swoim polu.
      Reguła „.ngx .k-cards span{display:block;color:…}” nadpisywała siatkę i kolor pola ikony. */
.ngx .k-cards .k-ic{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;color:var(--green-d)}
.ngx .k-cards .k-ic svg{display:block;width:24px;height:24px}

/* 2. Adres e-mail w karcie zawsze w jednej linii — wielkość czcionki dopasowuje się do szerokości karty */
@supports (width:1cqw){
  .ngx .k-cards li>div{flex:1 1 0;min-width:0;container-type:inline-size}
  .ngx .k-cards a[href^="mailto:"]{white-space:nowrap;word-break:normal;letter-spacing:0;font-size:min(22px,calc(100cqw / 13))}
}
@media (max-width:680px){
  .ngx .k-cards li{padding:16px;gap:14px}
  .ngx .k-cards .k-ic{flex-basis:48px;width:48px;height:48px;border-radius:14px}
}

/* 3. /produkty/ na telefonie: „Jeden z najczęściej zamawianych” jako pas nad kartą (było: trzy linie w pigułce na zdjęciu) */
@media (max-width:560px){
  .ngx .p-card{flex-wrap:wrap}
  .ngx .p-card .p-tag{position:static;order:-1;flex:0 0 100%;max-width:none;border-radius:0;padding:7px 14px;font-size:11px;line-height:1.3;letter-spacing:.02em;white-space:nowrap}
  .ngx .p-card .p-body{flex:1 1 0;min-width:0}
}

/* 4. Formularz próbek: lista modeli — mniejsza czcionka, równe wiersze, większe pole wyboru */
.ngx .k-nf .listcheckbox-container ul{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 14px}
.ngx .k-nf .listcheckbox-container li{min-height:44px;align-items:center}
.ngx .k-nf .listcheckbox-container li input[type=checkbox]{flex:0 0 20px;width:20px!important;height:20px!important;margin:0!important;accent-color:var(--btn)}
.ngx .k-nf .listcheckbox-container li label{font-size:15px!important;line-height:1.25!important;margin:0 0 0 10px!important}
@media (max-width:680px){
  .ngx .k-nf .listcheckbox-container ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 5. Przyciski na telefonie: zawsze pełna szerokość, jeden pod drugim (kolejność jak w treści: główny pierwszy) */
@media (max-width:680px){
  .ngx .ctas{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:10px}
  .ngx .btn{display:flex;width:100%;justify-content:center;padding-left:18px;padding-right:18px}
  .ngx .k-nf input[type=submit],.ngx .k-nf input[type=button]{width:100%!important}
  /* listy modeli („Również w ofercie”, „Inne modele”): równe wiersze zamiast pigułek różnej długości */
  .ngx .other{flex-direction:column;align-items:stretch;gap:8px}
  .ngx .other .pill{width:100%}
  .ngx .other .pill em{margin-left:auto;padding-left:10px;white-space:nowrap}
}

/* 6. Plakietka „Próbki gratis” na telefonie: mniejsza i wysunięta nad róg zdjęcia — nie zasłania kadru */
@media (max-width:680px){
  .ngx .badge{width:84px;height:84px;top:-34px;right:6px;font-size:12px}
  .ngx .badge>div{padding:0 10px}
  /* karta „Wave” pod zdjęciem (zachodzi tylko na dolną krawędź), zamiast zasłaniać dół kadru */
  .ngx .hero-visual .float-card{position:relative;left:auto;bottom:auto;margin:-30px 12px 0;max-width:none}
}

/* 7. Nagłówek na telefonie na kartach i kategoriach produktów: przycisk telefonu był w pełnej wersji („Zadzwoń: 606 707 721”)
      i wychodził 11 px poza ekran — na stronach WooCommerce Divi nadpisywał reguły mocniejszym selektorem (#et-boc).
      Te same trzy reguły co w bloku „nagłówek na telefonie”, z selektorem dla stron WooCommerce. */
@media (max-width:980px){
  html body.et-db #page-container #et-boc .et-l--header .et_pb_button_1_tb_header.ng-tel,
  html body.et-db #page-container #et-boc .et-l--header .et_pb_button_1_tb_header.ng-tel:hover{font-size:0!important;line-height:1!important;padding:0 14px!important;min-height:44px;display:inline-flex!important;align-items:center;gap:7px;letter-spacing:0}
  html body.et-db #page-container #et-boc .et-l--header .et_pb_button_1_tb_header.ng-tel:before{content:""!important;display:inline-block!important;position:static!important;width:16px;height:16px;margin:0!important;opacity:1!important;transform:none!important;top:auto!important;font-size:0!important;line-height:0!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") no-repeat center/contain}
  html body.et-db #page-container #et-boc .et-l--header .et_pb_button_1_tb_header.ng-tel:after,
  html body.et-db #page-container #et-boc .et-l--header .et_pb_button_1_tb_header.ng-tel:hover:after{content:"606 707 721"!important;font:700 14px/1 'Montserrat','Montserrat Fallback',sans-serif!important;position:static!important;opacity:1!important;margin:0!important;display:inline!important;color:#fff!important;letter-spacing:0!important;transform:none!important}
}

/* === Czcionki z własnego serwera (zamiast Google Fonts) — 01.10.2026 ===
   Pliki w folderze fonts/ motywu potomnego; zmienna grubość, znaki łacińskie + polskie; licencja OFL (fonts/OFL-*.txt).
   Open Sans ma osobne reguły dla grubości 300/400/600/700/800 — tak samo jak dotąd z Google
   (tekst o grubości 500, domyślnej w Divi, wyświetla się jak 400). Nie łączyć w zakres „300 800”. */
@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(fonts/opensans-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(fonts/opensans-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(fonts/opensans-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(fonts/opensans-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(fonts/opensans-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(fonts/opensans-italic-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;font-stretch:100%;font-display:swap;src:url(fonts/opensans-italic-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:600;font-stretch:100%;font-display:swap;src:url(fonts/opensans-italic-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:700;font-stretch:100%;font-display:swap;src:url(fonts/opensans-italic-pl.woff2) format('woff2')}
@font-face{font-family:'Open Sans';font-style:italic;font-weight:800;font-stretch:100%;font-display:swap;src:url(fonts/opensans-italic-pl.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/montserrat-pl.woff2) format('woff2')}

/* === Czcionki zastępcze o metrykach Montserrat / Open Sans — 02.10.2026 ===
   Zanim wczyta się plik czcionki, tekst rysuje się Arialem (Android: Roboto) przeskalowanym do szerokości
   docelowej czcionki — wiersze łamią się tak samo i układ nie przeskakuje po podmianie.
   size-adjust = szerokość tekstów strony w czcionce docelowej / w Arialu, osobno dla każdej grubości; wartości dobrane tak,
   żeby jak najmniej elementów zmieniało liczbę wierszy (test 02.10: 9 stron × 2 szerokości); ascent/descent z plików czcionek. */
@font-face{font-family:'Montserrat Fallback';font-style:normal;font-weight:400 500;src:local('Arial'),local('ArialMT'),local('Roboto'),local('Liberation Sans'),local('Arimo');size-adjust:113.7%;ascent-override:85.1%;descent-override:22.1%;line-gap-override:0%}
@font-face{font-family:'Montserrat Fallback';font-style:normal;font-weight:600;src:local('Arial Bold'),local('Arial-BoldMT'),local('Roboto Bold'),local('Roboto-Bold'),local('Liberation Sans Bold'),local('Arimo Bold');size-adjust:106.6%;ascent-override:90.8%;descent-override:23.5%;line-gap-override:0%}
@font-face{font-family:'Montserrat Fallback';font-style:normal;font-weight:700;src:local('Arial Bold'),local('Arial-BoldMT'),local('Roboto Bold'),local('Roboto-Bold'),local('Liberation Sans Bold'),local('Arimo Bold');size-adjust:111.0%;ascent-override:87.2%;descent-override:22.6%;line-gap-override:0%}
@font-face{font-family:'Montserrat Fallback';font-style:normal;font-weight:800 900;src:local('Arial Bold'),local('Arial-BoldMT'),local('Roboto Bold'),local('Roboto-Bold'),local('Liberation Sans Bold'),local('Arimo Bold');size-adjust:112.0%;ascent-override:86.4%;descent-override:22.4%;line-gap-override:0%}
@font-face{font-family:'Open Sans Fallback';font-style:normal;font-weight:300 500;src:local('Arial'),local('ArialMT'),local('Roboto'),local('Liberation Sans'),local('Arimo');size-adjust:104.1%;ascent-override:102.7%;descent-override:28.1%;line-gap-override:0%}
@font-face{font-family:'Open Sans Fallback';font-style:normal;font-weight:600;src:local('Arial Bold'),local('Arial-BoldMT'),local('Roboto Bold'),local('Roboto-Bold'),local('Liberation Sans Bold'),local('Arimo Bold');size-adjust:100.0%;ascent-override:106.9%;descent-override:29.3%;line-gap-override:0%}
@font-face{font-family:'Open Sans Fallback';font-style:normal;font-weight:700 800;src:local('Arial Bold'),local('Arial-BoldMT'),local('Roboto Bold'),local('Roboto-Bold'),local('Liberation Sans Bold'),local('Arimo Bold');size-adjust:103.8%;ascent-override:103.0%;descent-override:28.2%;line-gap-override:0%}

/* === Karta produktu: klik w zdjęcie otwiera powiększenie (js/ngx.js) — 01.10.2026 === */
.woocommerce-product-gallery .woocommerce-product-gallery__image,
.woocommerce-product-gallery .woocommerce-product-gallery__image a,
.woocommerce-product-gallery .woocommerce-product-gallery__image .zoomImg{cursor:zoom-in}

/* === Formularze: wyraźne potwierdzenie po wysłaniu (js/ngx.js przewija do niego) — 02.10.2026 === */
.ngx .k-nf .nf-response-msg:empty{display:none}
.ngx .k-nf .nf-form-title{display:none}
.ngx .k-nf .nf-response-msg:not(:empty){position:relative;margin:8px 0 4px;padding:18px 20px 18px 64px;background:#eef6e2;border:1px solid #b7d596;border-left:6px solid var(--btn,#4a7a1c);border-radius:14px;color:var(--forest,#1f2a16);font-size:17px;line-height:1.55;scroll-margin-top:120px}
.ngx .k-nf .nf-response-msg:not(:empty)::before{content:"";position:absolute;left:18px;top:18px;width:30px;height:30px;border-radius:50%;background:var(--btn,#4a7a1c) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/18px no-repeat}
.ngx .k-nf .nf-response-msg p{margin:0;padding:0}
.ngx .k-nf .nf-response-msg p+p{margin-top:4px}
.ngx .k-nf .nf-response-msg p:first-child:not(:only-child),.ngx .k-nf .nf-response-msg strong{font-family:'Montserrat','Montserrat Fallback',sans-serif;font-weight:700}
.ngx .k-nf .nf-response-msg:focus{outline:2px solid var(--btn,#4a7a1c);outline-offset:3px}
@media (max-width:600px){.ngx .k-nf .nf-response-msg:not(:empty){padding:16px 16px 16px 56px;font-size:16px}.ngx .k-nf .nf-response-msg:not(:empty)::before{left:14px;top:16px}}
