/* =========================================================
   KARMA NA WAGĘ – motyw potomny Astra
   Czarno-biały, kwadratowe narożniki, bez cieni.
   ========================================================= */
:root {
	--knw-bg: #f6f6f3;
	--knw-paper: #ffffff;
	--knw-ink: #141414;
	--knw-ink-2: #2a2a28;
	--knw-muted: #5e5e5a;
	--knw-line: #d9d9d4;
	--knw-font: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--knw-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--knw-wrap: 1240px;
	--knw-gutter: clamp(16px, 4vw, 40px);
	--knw-s1: 8px;
	--knw-s2: 16px;
	--knw-s3: 32px;
	--knw-s4: clamp(48px, 7vw, 96px);
}

/* ---------- Podstawy ---------- */
body.knw,
body.knw button,
body.knw input,
body.knw select,
body.knw textarea {
	font-family: var(--knw-font);
}
body.knw {
	background: var(--knw-bg);
	color: var(--knw-ink-2);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.knw :where(h1, h2, h3, h4, h5, h6),
body.knw :where(.entry-title, .product_title, .woocommerce-loop-product__title) {
	font-family: var(--knw-font);
	color: var(--knw-ink);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.015em;
}
body.knw a { color: var(--knw-ink); }
body.knw a:hover { color: var(--knw-ink); }
body.knw :focus-visible { outline: 2px solid var(--knw-ink); outline-offset: 3px; }
body.knw ::selection { background: var(--knw-ink); color: var(--knw-paper); }
body.knw .woocommerce-Price-amount, body.knw .price { font-family: var(--knw-mono); }

.knw-wrap {
	width: 100%;
	max-width: calc(var(--knw-wrap) + 2 * var(--knw-gutter));
	margin-inline: auto;
	padding-inline: var(--knw-gutter);
}
.knw-illu { display: block; width: 100%; height: auto; color: var(--knw-ink); }
.knw-h2 {
	font-size: clamp(1.9rem, 3.4vw, 3rem);
	margin: 0 0 var(--knw-s2);
	max-width: 18ch;
}
.knw-link {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}
.knw-link:hover { text-decoration-thickness: 2px; }

/* Container Astra = ta sama szerokość co sekcje */
body.knw .ast-container,
body.knw .site-header .ast-builder-grid-row-container-inner,
body.knw .ast-builder-grid-row-container {
	max-width: calc(var(--knw-wrap) + 2 * var(--knw-gutter));
	padding-inline: var(--knw-gutter);
}
body.knw.ast-plain-container .site-content > .ast-container { max-width: none; padding: 0; }
body.knw.ast-separate-container .ast-article-single,
body.knw.ast-separate-container .ast-article-post,
body.knw.ast-separate-container .ast-woocommerce-container,
body.knw.ast-separate-container #primary,
body.knw .ast-separate-container .ast-article-single:not(.ast-related-post) {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
}
body.knw #primary { margin-top: var(--knw-s3); margin-bottom: var(--knw-s4); }

/* ---------- Przyciski ---------- */
body.knw .knw-btn,
body.knw .button,
body.knw button.button,
body.knw a.button,
body.knw input[type="submit"],
body.knw .wp-block-button__link,
body.knw .ast-button,
body.knw .woocommerce .button.alt,
body.knw .woocommerce button.button.alt,
body.knw .woocommerce a.button.alt,
body.knw .woocommerce-page .button.alt,
body.knw .woocommerce #respond input#submit,
body.knw .woocommerce a.checkout-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 48px;
	padding: .8rem 1.5rem;
	background: var(--knw-ink);
	color: var(--knw-paper);
	border: 1px solid var(--knw-ink);
	border-radius: 0;
	box-shadow: none;
	font-family: var(--knw-font);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: none;
	white-space: nowrap;
	transition: background .15s, color .15s, transform .1s;
}
body.knw .knw-btn:hover,
body.knw .button:hover,
body.knw button.button:hover,
body.knw a.button:hover,
body.knw input[type="submit"]:hover,
body.knw .woocommerce .button.alt:hover,
body.knw .woocommerce button.button.alt:hover,
body.knw .woocommerce a.checkout-button:hover {
	background: #333331;
	border-color: #333331;
	color: var(--knw-paper);
}
body.knw .knw-btn:active,
body.knw .button:active { transform: translateY(1px); }
body.knw .knw-btn--ghost { background: transparent; color: var(--knw-ink); }
body.knw .knw-btn--ghost:hover { background: var(--knw-ink); color: var(--knw-paper); }
body.knw .knw-btn--invert { background: var(--knw-paper); color: var(--knw-ink); border-color: var(--knw-paper); }
body.knw .knw-btn--invert:hover { background: transparent; color: var(--knw-paper); border-color: var(--knw-paper); }
body.knw .button.disabled,
body.knw .button:disabled,
body.knw .button[disabled] { opacity: .35; }

/* Pola formularzy */
body.knw input[type="text"], body.knw input[type="email"], body.knw input[type="tel"],
body.knw input[type="password"], body.knw input[type="number"], body.knw input[type="search"],
body.knw textarea, body.knw select,
body.knw .select2-container--default .select2-selection--single {
	border: 1px solid var(--knw-ink);
	border-radius: 0;
	background: var(--knw-paper);
	color: var(--knw-ink);
	box-shadow: none;
	min-height: 46px;
}
body.knw input:focus, body.knw textarea:focus, body.knw select:focus { border-color: var(--knw-ink); outline: 2px solid var(--knw-ink); outline-offset: 0; }

/* ---------- Nagłówek ---------- */
body.knw .site-header,
body.knw .ast-primary-header-bar,
body.knw .main-header-bar,
body.knw .ast-mobile-header-wrap .ast-primary-header-bar {
	background: var(--knw-bg) !important;
	border-bottom: 1px solid var(--knw-ink) !important;
	box-shadow: none !important;
}
body.knw .ast-above-header-bar, body.knw .ast-below-header-bar { background: var(--knw-bg); border-color: var(--knw-line); }
body.knw .site-title { margin: 0; line-height: 1; }
body.knw .site-title a,
body.knw .site-title a:hover {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--knw-ink) !important;
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
}
body.knw .site-title a::before {
	content: "";
	width: 34px;
	height: 44px;
	background: var(--knw-ink);
	-webkit-mask: url(img/wilk-geometryczny.svg) center / contain no-repeat;
	mask: url(img/wilk-geometryczny.svg) center / contain no-repeat;
	flex: none;
}
body.knw .site-description { font-family: var(--knw-mono); font-size: .72rem; color: var(--knw-muted); margin: 6px 0 0; }
body.knw .main-header-menu .menu-link,
body.knw .main-header-menu > .menu-item > .menu-link,
body.knw .ast-header-woo-cart .ast-cart-menu-wrap,
body.knw .ast-site-header-cart .ast-woo-header-cart-info-wrap {
	color: var(--knw-ink) !important;
	font-weight: 600;
	font-size: .95rem;
}
body.knw .main-header-menu .menu-item:hover > .menu-link,
body.knw .main-header-menu .current-menu-item > .menu-link,
body.knw .main-header-menu .current_page_item > .menu-link {
	color: var(--knw-ink) !important;
	text-decoration: underline;
	text-underline-offset: 6px;
	text-decoration-thickness: 2px;
}
body.knw .main-header-menu .sub-menu { background: var(--knw-paper); border: 1px solid var(--knw-ink); box-shadow: none; }
body.knw .ast-site-header-cart .ast-cart-menu-wrap .count,
body.knw .ast-site-header-cart .ast-addon-cart-wrap .ast-icon-shopping-cart::after,
body.knw .ast-cart-menu-wrap .count::after {
	background: var(--knw-ink) !important;
	color: var(--knw-paper) !important;
	border-color: var(--knw-ink) !important;
	border-radius: 0 !important;
	font-family: var(--knw-mono);
}
body.knw .ast-site-header-cart .ast-site-header-cart-data,
body.knw .ast-site-header-cart .widget_shopping_cart { border: 1px solid var(--knw-ink); box-shadow: none; border-radius: 0; }
body.knw .ast-mobile-menu-trigger-minimal,
body.knw .menu-toggle { background: transparent !important; color: var(--knw-ink) !important; border: 0; min-height: auto; padding: 8px; }
body.knw .ast-mobile-header-content, body.knw .ast-builder-menu-mobile .main-navigation { background: var(--knw-bg); }

/* ---------- Strona główna ---------- */
.knw-home section { position: relative; }

/* Hero */
.knw-hero {
	padding-top: clamp(40px, 6vw, 84px);
	border-bottom: 1px solid var(--knw-ink);
	overflow: hidden;
}
.knw-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: var(--knw-s3);
	align-items: end;
}
.knw-hero__text { padding-bottom: clamp(48px, 7vw, 96px); }
.knw-hero__title {
	font-size: clamp(2.6rem, 6.2vw, 5.4rem);
	line-height: .98;
	letter-spacing: -0.035em;
	margin: 0 0 var(--knw-s3);
	max-width: 13ch;
}
.knw-hero__lead {
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	max-width: 44ch;
	color: var(--knw-ink-2);
	margin: 0 0 var(--knw-s3);
}
.knw-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.knw-hero__art { align-self: end; }
.knw-illu--hero {
	width: min(100%, 520px);
	margin: 0 0 -12% auto;
}

/* Kategorie */
.knw-cats { padding: var(--knw-s4) 0; border-bottom: 1px solid var(--knw-ink); }
.knw-cats__grid {
	list-style: none;
	margin: var(--knw-s3) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--knw-ink);
	border-left: 1px solid var(--knw-ink);
}
.knw-cats__item { margin: 0; border-right: 1px solid var(--knw-ink); border-bottom: 1px solid var(--knw-ink); background: var(--knw-paper); }
.knw-cats__item a {
	display: grid;
	grid-template-columns: 1fr 96px;
	grid-template-rows: auto 1fr auto;
	gap: 6px 16px;
	min-height: 210px;
	padding: 24px 22px 20px;
	text-decoration: none;
	color: var(--knw-ink);
	height: 100%;
	transition: background .15s, color .15s;
}
.knw-cats__name { grid-column: 1; font-size: clamp(1.35rem, 2vw, 1.75rem); font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; }
.knw-cats__desc { grid-column: 1; font-size: .9rem; color: var(--knw-muted); line-height: 1.45; }
.knw-cats__count { grid-column: 1; grid-row: 3; font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); }
.knw-illu--cat-tile { grid-column: 2; grid-row: 1 / span 3; align-self: end; width: 96px; }
.knw-cats__item a:hover { background: var(--knw-ink); color: var(--knw-paper); }
.knw-cats__item a:hover .knw-illu, .knw-cats__item a:hover .knw-cats__desc, .knw-cats__item a:hover .knw-cats__count { color: var(--knw-paper); }

/* Etykieta składu */
.knw-label { padding: var(--knw-s4) 0; border-bottom: 1px solid var(--knw-ink); }
.knw-label__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.knw-label__text p { max-width: 46ch; margin: 0 0 var(--knw-s3); }
.knw-label__card {
	margin: 0;
	background: var(--knw-paper);
	border: 1px solid var(--knw-ink);
	padding: clamp(20px, 3vw, 36px);
}
.knw-label__cap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; align-items: baseline; margin-bottom: var(--knw-s2); }
.knw-label__name { font-weight: 800; font-size: 1.25rem; color: var(--knw-ink); line-height: 1.15; }
.knw-label__ppk { font-size: .95rem; }
.knw-label__card .knw-analysis { margin-top: var(--knw-s3); margin-bottom: 0; }

/* Skala gramatur */
.knw-weights { padding: var(--knw-s4) 0; border-bottom: 1px solid var(--knw-ink); }
.knw-weights__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--knw-s3); align-items: end; }
.knw-weights__head p { max-width: 46ch; margin: 0 0 var(--knw-s2); }
.knw-weights__scale {
	list-style: none;
	margin: var(--knw-s3) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	border-top: 1px solid var(--knw-ink);
}
.knw-weights__scale li { margin: 0; padding: 18px 12px 0 0; border-right: 1px solid var(--knw-line); display: flex; flex-direction: column; gap: 6px; }
.knw-weights__scale li + li { padding-left: 14px; }
.knw-weights__scale li:last-child { border-right: 0; }
.knw-weights__g { font-family: var(--knw-font); font-weight: 800; font-size: clamp(1.6rem, 3.2vw, 2.8rem); line-height: 1; letter-spacing: -0.03em; color: var(--knw-ink); }
.knw-weights__p { font-family: var(--knw-mono); font-size: .82rem; color: var(--knw-ink-2); }
.knw-weights__note { font-family: var(--knw-mono); font-size: .72rem; color: var(--knw-muted); margin: var(--knw-s2) 0 0; }

/* Produkty na stronie głównej */
.knw-products { padding: var(--knw-s4) 0; border-bottom: 1px solid var(--knw-ink); }
.knw-products__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: var(--knw-s3); }
.knw-products__head .knw-h2 { margin: 0; }

/* Zestaw próbny */
.knw-sampler-cta { background: var(--knw-ink); color: var(--knw-paper); padding: var(--knw-s4) 0; overflow: hidden; }
.knw-sampler-cta__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.knw-sampler-cta .knw-h2 { color: var(--knw-paper); }
.knw-sampler-cta p { max-width: 42ch; margin: 0 0 var(--knw-s3); color: #e6e6e1; font-size: 1.1rem; }
.knw-illu--sampler { color: var(--knw-paper); width: min(100%, 420px); margin: -4% auto -10%; }

/* ---------- Stopka ---------- */
.knw-footer { background: var(--knw-bg); border-top: 1px solid var(--knw-ink); padding: var(--knw-s4) 0 var(--knw-s3); font-size: .92rem; }
.knw-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: var(--knw-s3); }
.knw-illu--footer { width: 92px; margin-bottom: var(--knw-s2); }
.knw-footer__note { font-weight: 800; font-size: 1.25rem; line-height: 1.15; color: var(--knw-ink); max-width: 16ch; margin: 0; }
.knw-footer__h { font-size: .72rem !important; font-family: var(--knw-mono) !important; font-weight: 500 !important; text-transform: uppercase; letter-spacing: .12em; color: var(--knw-muted) !important; margin: 0 0 12px !important; }
.knw-footer ul { list-style: none; margin: 0; padding: 0; }
.knw-footer li { margin: 0 0 6px; }
.knw-footer a { text-decoration: none; }
.knw-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.knw-footer address { font-style: normal; line-height: 1.7; }
.knw-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: var(--knw-s4); padding-top: var(--knw-s2); border-top: 1px solid var(--knw-line); font-family: var(--knw-mono); font-size: .72rem; color: var(--knw-muted); }

/* ---------- Sklep: lista i karty ---------- */
body.knw .woocommerce-products-header__title.page-title,
body.knw .ast-archive-description .ast-archive-title,
body.knw h1.page-title {
	font-size: clamp(2.2rem, 4.6vw, 4rem);
	letter-spacing: -0.03em;
	margin: 0 0 var(--knw-s2);
}
body.knw .ast-archive-description,
body.knw .woocommerce-products-header {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0 0 var(--knw-s3);
	position: relative;
}
body.knw .term-description { max-width: 60ch; color: var(--knw-ink-2); }
.knw-cat-hero { float: right; width: clamp(90px, 13vw, 170px); margin: -12px 0 12px 24px; }
.knw-catbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border-top: 1px solid var(--knw-ink);
	border-bottom: 1px solid var(--knw-ink);
	margin: 0 0 var(--knw-s3);
	clear: both;
}
.knw-catbar a {
	padding: 12px 18px;
	text-decoration: none;
	font-weight: 600;
	font-size: .92rem;
	border-right: 1px solid var(--knw-line);
}
.knw-catbar a[aria-current] { background: var(--knw-ink); color: var(--knw-paper); }
.knw-catbar a:not([aria-current]):hover { background: #ececE7; }
body.knw .woocommerce-result-count { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); }
body.knw .woocommerce-ordering select { min-height: 40px; font-size: .9rem; }

body.knw ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 !important;
	margin: 0 0 var(--knw-s3) !important;
	border-top: 1px solid var(--knw-ink);
	border-left: 1px solid var(--knw-ink);
}
body.knw ul.products::before, body.knw ul.products::after { display: none !important; }
body.knw ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 20px 20px 22px !important;
	background: var(--knw-paper);
	border-right: 1px solid var(--knw-ink);
	border-bottom: 1px solid var(--knw-ink);
	display: flex;
	flex-direction: column;
	text-align: left !important;
	box-shadow: none !important;
}
body.knw ul.products li.product .astra-shop-thumbnail-wrap,
body.knw ul.products li.product > a.woocommerce-LoopProduct-link { display: block; }
body.knw ul.products li.product img { margin: 0 0 16px !important; aspect-ratio: 1 / 1; object-fit: contain; background: var(--knw-bg); }
.knw-ph { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: var(--knw-bg); margin: 0 0 16px; padding: 12%; }
.knw-ph .knw-illu { max-height: 100%; width: auto; height: 100%; }
body.knw ul.products li.product .astra-shop-summary-wrap { display: flex; flex-direction: column; flex: 1; padding: 0 !important; }
.knw-card-cat,
body.knw ul.products li.product .ast-woo-product-category {
	display: block;
	font-family: var(--knw-mono);
	font-size: .7rem !important;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--knw-muted) !important;
	margin: 0 0 6px !important;
	opacity: 1 !important;
}
body.knw ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.15rem !important;
	line-height: 1.2;
	margin: 0 0 10px !important;
	padding: 0 !important;
	color: var(--knw-ink);
}
.knw-card-comp { list-style: none; margin: 0 0 14px !important; padding: 0; border-top: 1px solid var(--knw-line); }
.knw-card-comp li { display: flex; justify-content: space-between; gap: 10px; font-size: .82rem; padding: 5px 0; border-bottom: 1px solid var(--knw-line); margin: 0; line-height: 1.3; }
.knw-card-comp b { font-family: var(--knw-mono); font-weight: 500; white-space: nowrap; }
body.knw ul.products li.product .price {
	color: var(--knw-ink) !important;
	font-size: 1rem !important;
	font-weight: 500;
	margin: auto 0 0 !important;
	padding-top: 6px;
}
body.knw ul.products li.product .price del { opacity: .5; }
body.knw ul.products li.product .price ins { text-decoration: none; }
body.knw ul.products li.product .button,
body.knw ul.products li.product .ast-on-card-button {
	margin-top: 14px !important;
	width: 100%;
	min-height: 44px;
	padding: .6rem 1rem;
}
body.knw ul.products li.product .ast-on-card-button { display: none; }
body.knw .onsale,
body.knw .ast-onsale-card {
	background: var(--knw-ink) !important;
	color: var(--knw-paper) !important;
	border-radius: 0 !important;
	min-height: 0; min-width: 0;
	padding: 4px 8px !important;
	line-height: 1.3 !important;
	font-family: var(--knw-mono);
	font-size: .72rem !important;
	font-weight: 500 !important;
	text-transform: uppercase;
	top: 20px !important; left: 20px !important; right: auto !important; margin: 0 !important;
}
body.knw .woocommerce-pagination ul { border: 0 !important; display: flex; gap: 6px; }
body.knw .woocommerce-pagination ul li { border: 0 !important; }
body.knw .woocommerce-pagination ul li a,
body.knw .woocommerce-pagination ul li span { border: 1px solid var(--knw-ink) !important; border-radius: 0 !important; font-family: var(--knw-mono); min-width: 40px; }
body.knw .woocommerce-pagination ul li span.current { background: var(--knw-ink) !important; color: var(--knw-paper) !important; }

/* ---------- Karta produktu ---------- */
body.knw.single-product .product .woocommerce-product-gallery {
	background: var(--knw-paper);
	border: 1px solid var(--knw-ink);
	padding: clamp(16px, 3vw, 40px);
}
.knw-ph--single { padding: 8%; margin: 0; background: transparent; }
.knw-ph--single .knw-illu { width: 100%; height: auto; max-height: 560px; }
body.knw.single-product .summary { padding-top: 4px; }
.knw-single-kicker {
	font-family: var(--knw-mono);
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--knw-muted);
	margin: 0 0 10px;
}
body.knw .product_title.entry-title { font-size: clamp(2rem, 3.6vw, 3.1rem); margin: 0 0 14px; letter-spacing: -0.03em; }
body.knw.single-product .summary > .price,
body.knw.single-product .summary .price {
	color: var(--knw-ink) !important;
	font-size: 1.6rem !important;
	font-weight: 500;
	margin-bottom: 10px;
}
body.knw.single-product .single_variation_wrap .woocommerce-variation-price .price { font-size: 1.6rem !important; }
body.knw .woocommerce-product-details__short-description { color: var(--knw-ink-2); max-width: 54ch; }
body.knw .knw-summary-comp { background: var(--knw-paper); border: 1px solid var(--knw-ink); padding: 18px 20px 16px; }
body.knw .knw-summary-comp .knw-comp { border-top: 0; }
body.knw .variations { margin: 0 0 6px !important; border: 0 !important; }
body.knw .variations th.label,
body.knw .variations td.label { display: block; padding: 0 0 8px !important; font-family: var(--knw-mono); font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; color: var(--knw-muted); }
body.knw .variations th.label label { font-weight: 500; }
body.knw .variations td.value { display: block; padding: 0 !important; }
body.knw .variations tr { display: block; margin-bottom: 8px; }
body.knw .reset_variations { font-family: var(--knw-mono); font-size: .72rem; color: var(--knw-muted); }
body.knw .single_variation_wrap .woocommerce-variation { margin-bottom: 10px; }
body.knw .woocommerce-variation-availability .stock { font-family: var(--knw-mono); font-size: .8rem; color: var(--knw-ink); }
body.knw form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
body.knw form.cart.variations_form { display: block; }
body.knw .woocommerce-variation-add-to-cart { display: flex; gap: 10px; flex-wrap: wrap; }
body.knw .quantity .qty,
body.knw .quantity input.qty { width: 84px; min-height: 48px; border: 1px solid var(--knw-ink); border-radius: 0; font-family: var(--knw-mono); background: var(--knw-paper); }
body.knw .single_add_to_cart_button { flex: 1; min-width: 200px; }
body.knw .ast-quantity-plus, body.knw .ast-quantity-minus { border-color: var(--knw-ink) !important; border-radius: 0 !important; color: var(--knw-ink) !important; background: var(--knw-paper) !important; }
body.knw .product_meta { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); border-top: 1px solid var(--knw-line); padding-top: 12px; margin-top: 18px; }
body.knw .product_meta > span { display: block; margin-bottom: 4px; }

/* Zakładki */
body.knw .woocommerce-tabs { margin-top: var(--knw-s4); border-top: 1px solid var(--knw-ink); padding-top: 0 !important; }
body.knw .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 var(--knw-s3) !important; display: flex; flex-wrap: wrap; border: 0 !important; }
body.knw .woocommerce-tabs ul.tabs::before { display: none !important; }
body.knw .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
}
body.knw .woocommerce-tabs ul.tabs li::before, body.knw .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.knw .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 20px 13px !important;
	font-weight: 600;
	color: var(--knw-muted) !important;
	border-bottom: 3px solid transparent;
}
body.knw .woocommerce-tabs ul.tabs li.active a { color: var(--knw-ink) !important; border-bottom-color: var(--knw-ink); }
body.knw .woocommerce-tabs .panel h2 { font-size: 1.4rem; margin-bottom: 16px; }
body.knw .woocommerce-Tabs-panel { max-width: none; }
body.knw .related.products > h2,
body.knw .up-sells > h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin: var(--knw-s4) 0 var(--knw-s3); }

/* ---------- Koszyk i zamówienie ---------- */
body.knw table.shop_table {
	border: 1px solid var(--knw-ink) !important;
	border-radius: 0 !important;
	background: var(--knw-paper);
	border-collapse: collapse;
}
body.knw table.shop_table th,
body.knw table.shop_table td { border-color: var(--knw-line) !important; padding: 14px 16px !important; }
body.knw table.shop_table thead th { font-family: var(--knw-mono); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 500; color: var(--knw-muted); }
body.knw .cart_totals,
body.knw .woocommerce-checkout-review-order,
body.knw #order_review { background: transparent; border-radius: 0; }
body.knw .cart_totals h2, body.knw #order_review_heading, body.knw .woocommerce-billing-fields h3, body.knw .woocommerce-shipping-fields h3, body.knw .woocommerce-additional-fields h3 { font-size: 1.5rem; }
body.knw dl.variation { font-family: var(--knw-mono); font-size: .75rem; color: var(--knw-muted); margin-top: 6px; }
body.knw dl.variation dt { font-weight: 500; }
body.knw .product-remove a.remove { color: var(--knw-ink) !important; border: 1px solid var(--knw-ink); border-radius: 0; }
body.knw .product-remove a.remove:hover { background: var(--knw-ink); color: var(--knw-paper) !important; }
body.knw .woocommerce-message,
body.knw .woocommerce-info,
body.knw .woocommerce-error,
body.knw .woocommerce-notice {
	background: var(--knw-paper) !important;
	color: var(--knw-ink) !important;
	border: 1px solid var(--knw-ink) !important;
	border-left-width: 4px !important;
	border-radius: 0 !important;
	box-shadow: none;
}
body.knw .woocommerce-message::before,
body.knw .woocommerce-info::before,
body.knw .woocommerce-error::before { color: var(--knw-ink) !important; }
body.knw #payment { background: var(--knw-paper) !important; border: 1px solid var(--knw-ink); border-radius: 0 !important; }
body.knw #payment div.payment_box { background: var(--knw-bg) !important; border-radius: 0; }
body.knw #payment div.payment_box::before { border-bottom-color: var(--knw-bg) !important; }
body.knw #shipping_method li { margin-bottom: 6px; }

/* ---------- Strony treści ---------- */
body.knw.page:not(.home) .entry-title { font-size: clamp(2.2rem, 4.6vw, 4rem); letter-spacing: -0.03em; }
body.knw .entry-content { max-width: 72ch; }
body.knw.woocommerce-cart .entry-content,
body.knw.woocommerce-checkout .entry-content,
body.knw.woocommerce-account .entry-content,
body.knw.knw-wide .entry-content { max-width: none; }
body.knw .entry-content h2 { font-size: 1.6rem; margin-top: 2em; }

/* ---------- Responsywność ---------- */
@media (max-width: 1024px) {
	body.knw ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.knw-cats__grid { grid-template-columns: repeat(2, 1fr); }
	.knw-footer__grid { grid-template-columns: 1fr 1fr; }
	.knw-weights__scale { grid-template-columns: repeat(3, 1fr); }
	.knw-weights__scale li:nth-child(3) { border-right: 0; }
	.knw-weights__scale li:nth-child(n+4) { border-top: 1px solid var(--knw-line); padding-left: 0; }
	.knw-weights__scale li:nth-child(n+5) { padding-left: 14px; }
}
@media (max-width: 768px) {
	body.knw { font-size: 16px; }
	.knw-hero__grid { grid-template-columns: 1fr; }
	.knw-hero__text { padding-bottom: 0; }
	.knw-illu--hero { width: 74%; margin: 0 auto -14%; }
	.knw-label__grid, .knw-weights__head, .knw-sampler-cta__grid { grid-template-columns: 1fr; }
	.knw-illu--sampler { width: 60%; margin: 0 auto; }
	.knw-cats__item a { min-height: 170px; grid-template-columns: 1fr 72px; }
	.knw-illu--cat-tile { width: 72px; }
	.knw-cat-hero { width: 84px; margin-left: 12px; }
}
@media (max-width: 544px) {
	body.knw ul.products { grid-template-columns: 1fr; }
	.knw-cats__grid { grid-template-columns: 1fr; }
	.knw-footer__grid { grid-template-columns: 1fr; }
	.knw-weights__scale { grid-template-columns: repeat(2, 1fr); }
	.knw-weights__scale li { border-right: 0 !important; padding-left: 0 !important; border-top: 1px solid var(--knw-line); }
	.knw-weights__scale li:nth-child(odd) { border-right: 1px solid var(--knw-line) !important; }
	.knw-weights__scale li:nth-child(even) { padding-left: 14px !important; }
	.knw-hero__cta .knw-btn { flex: 1 1 100%; }
	.knw-catbar { flex-wrap: nowrap; overflow-x: auto; }
	.knw-catbar a { white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
	body.knw * { transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Integracje: baner cookies, Astra ---------- */
html:root {
	--surecookie-banner-primary-color: #141414;
	--surecookie-banner-primary-hover-color: #333331;
	--surecookie-banner-secondary-color: #141414;
	--surecookie-banner-text-color: #2a2a28;
	--surecookie-banner-background-color: #ffffff;
}
body.knw .surecookie-banner-inner,
body.knw .surecookie-banner,
body.knw .surecookie-btn-base,
body.knw .surecookie-preferences-modal { border-radius: 0 !important; box-shadow: none !important; }
body.knw .surecookie-banner { border: 1px solid #141414 !important; }
body.knw .surecookie-preferences-btn { background: #fff !important; color: #141414 !important; }
body.knw .ast-shipping-text,
body.knw.single-product .summary .single-product-category { display: none !important; }
body.knw .ast-stock-detail { font-family: var(--knw-mono); font-size: .8rem; margin: 0 0 8px; }
body.knw .ast-stock-avail { display: none; }
@media (max-width: 544px) {
	body.knw ul.products,
	body.knw .woocommerce ul.products,
	body.knw ul.products[class*="columns-"] { grid-template-columns: 1fr !important; }
}
body.knw ul.products li.product .knw-loop-ppk { margin-top: 2px; }
body.knw .knw-tile { text-transform: none !important; letter-spacing: 0 !important; font-weight: 400; min-height: 0; }
body.knw .knw-tile__w { font-weight: 700; }
body.knw .shop_table .product-thumbnail .knw-ph,
body.knw .widget_shopping_cart .knw-ph,
body.knw .moderncart-plugin .knw-ph { width: 72px; height: 72px; padding: 8px; margin: 0; }
body.knw .shop_table .product-thumbnail .knw-ph .knw-illu,
body.knw .widget_shopping_cart .knw-ph .knw-illu,
body.knw .moderncart-plugin .knw-ph .knw-illu { height: 100%; width: auto; }

/* ---------- 1.0.1: czarno-białe nadpisania wtyczek i karta produktu na telefonie ---------- */
body.knw #moderncart-floating-cart .moderncart-floating-cart-count {
	background-color: var(--knw-paper) !important;
	color: var(--knw-ink) !important;
	border: 1px solid var(--knw-ink);
}
body.knw { --pc-primary-color: var(--knw-ink); }
body.knw .woocommerce form .required,
body.knw .woocommerce-checkout .required { color: var(--knw-ink); }
@media (max-width: 921px) {
	body.knw.single-product .knw-ph--single { aspect-ratio: auto; padding: 4% 0; }
	body.knw.single-product .knw-ph--single .knw-illu { width: auto; height: 30vh; max-height: 260px; }
}

/* ---------- Szkice zwierząt na podstronach (dekoracja, kolor = --knw-ink) ---------- */
.knw-sk, body.knw.page:not(.home) .entry-header::after, .knwb-page .knwb-shead::before, .knwb-product .product_meta::after {
	content: "";
	display: block;
	background-color: var(--knw-ink);
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-size: contain; mask-size: contain;
	-webkit-mask-position: center bottom; mask-position: center bottom;
	pointer-events: none;
}

/* Strony informacyjne, koszyk, zamówienie, konto */
body.knw.page:not(.home) .entry-header { position: relative; min-height: clamp(96px, 12vw, 150px); padding-right: clamp(110px, 15vw, 190px); }
body.knw.page:not(.home) .entry-header::after {
	position: absolute; right: 0; bottom: 0;
	width: clamp(84px, 11vw, 150px); height: clamp(96px, 12vw, 160px);
	-webkit-mask-image: url(img/wilk-geometryczny.svg); mask-image: url(img/wilk-geometryczny.svg);
}
body.knw.page:not(.home).page-id-7732 .entry-header::after { -webkit-mask-image: url(img/pomeranian-glowa.svg); mask-image: url(img/pomeranian-glowa.svg); }
body.knw.page:not(.home).page-id-7733 .entry-header::after { -webkit-mask-image: url(img/wilk-profil.svg); mask-image: url(img/wilk-profil.svg); }
body.knw.page:not(.home).page-id-7730 .entry-header::after { -webkit-mask-image: url(img/pomeranian.svg); mask-image: url(img/pomeranian.svg); }
body.knw.page:not(.home).page-id-39 .entry-header::after { -webkit-mask-image: url(img/pomeranian-glowa.svg); mask-image: url(img/pomeranian-glowa.svg); }
body.knw.page:not(.home).page-id-40 .entry-header::after { -webkit-mask-image: url(img/wilk-front.svg); mask-image: url(img/wilk-front.svg); }
body.knw.page:not(.home).page-id-41 .entry-header::after { -webkit-mask-image: url(img/wilk.svg); mask-image: url(img/wilk.svg); }

/* Kategoria BARF i podkategorie: szkic przy nagłówku „Nasze mieszanki” */
.knwb-page .knwb-shead { display: grid !important; grid-template-columns: clamp(64px, 7vw, 96px) minmax(0, 1fr); column-gap: clamp(14px, 2vw, 24px); row-gap: 4px; align-items: end; }
.knwb-page .knwb-shead::before {
	grid-row: 1 / span 2; grid-column: 1; width: 100%; aspect-ratio: 3 / 4;
	-webkit-mask-image: url(img/wilk-front.svg); mask-image: url(img/wilk-front.svg);
}
.knwb-page .knwb-shead > h2 { grid-column: 2; }
.knwb-page .knwb-shead > p { grid-column: 2; text-align: left; }
.knwb-page.term-barf-pure .knwb-shead::before { -webkit-mask-image: url(img/wilk-profil.svg); mask-image: url(img/wilk-profil.svg); }
.knwb-page.term-barf-veggies .knwb-shead::before { -webkit-mask-image: url(img/pomeranian-glowa.svg); mask-image: url(img/pomeranian-glowa.svg); }

/* Karty produktów BARF (mają zdjęcia, więc szkic obok danych produktu) */
.knwb-product .product_meta { position: relative; min-height: 130px; padding-right: 130px; }
.knwb-product .product_meta::after {
	position: absolute; right: 0; bottom: 0; width: 100px; height: 130px;
	-webkit-mask-image: url(img/wilk-profil.svg); mask-image: url(img/wilk-profil.svg);
}
.knwb-product div.product.product_cat-barf-veggies .product_meta::after { -webkit-mask-image: url(img/pomeranian-glowa.svg); mask-image: url(img/pomeranian-glowa.svg); }

@media (max-width: 544px) {
	body.knw.page:not(.home) .entry-header { padding-right: 96px; min-height: 96px; }
	body.knw.page:not(.home) .entry-header::after { width: 76px; height: 92px; }
	.knwb-product .product_meta { padding-right: 96px; min-height: 104px; }
	.knwb-product .product_meta::after { width: 76px; height: 100px; }
}
/* Koszyk, zamówienie, konto (bez tytułu strony): szkic wyśrodkowany nad treścią */
body.knw.page:not(.home):is(.page-id-39, .page-id-40, .page-id-41) .entry-header { display: flex; justify-content: center; min-height: 0; padding: clamp(20px, 3vw, 36px) 0 clamp(12px, 2vw, 20px); }
body.knw.page:not(.home):is(.page-id-39, .page-id-40, .page-id-41) .entry-header::after { position: static; width: clamp(90px, 9vw, 130px); height: clamp(100px, 10vw, 150px); }

/* ---------- Karta produktu: wspólny układ wszystkich produktów (galeria 45% / informacje 55%) ----------
   Przyczyna dawnych różnic: reguła „.ast-plain-container .site-content > .ast-container { max-width: none }”
   rozciągała stronę produktu na całą szerokość okna, a galeria Astry (50%) skalowała zdjęcia 600 px do ~700 px. */
body.knw.single-product .site-content > .ast-container {
	max-width: calc(var(--knw-wrap) + 2 * var(--knw-gutter));
	padding-inline: var(--knw-gutter);
	margin-inline: auto;
}
body.knw.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
	column-gap: clamp(32px, 4vw, 64px);
	align-items: start;
}
body.knw.single-product div.product > * { grid-column: 1 / -1; min-width: 0; }
body.knw.single-product div.product > .woocommerce-product-gallery {
	grid-column: 1;
	grid-row: 1;
	width: 100% !important;
	max-width: 100%;
	float: none !important;
	margin: 0 !important;
	padding: clamp(12px, 2vw, 24px);
	overflow: hidden;
}
body.knw.single-product div.product > .onsale { grid-column: 1; grid-row: 1; }
body.knw.single-product div.product > .summary {
	grid-column: 2;
	grid-row: 1;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
}

/* Zdjęcie główne: proporcje zachowane, maks. 500 px wysokości, bez przycinania. */
body.knw.single-product .woocommerce-product-gallery__image a { display: block; }
body.knw.single-product .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 500px;
	object-fit: contain;
	margin: 0 auto;
}
body.knw.single-product .woocommerce-product-gallery .knw-ph--single,
body.knw.single-product .woocommerce-product-gallery .knwb-ph--single { max-height: 500px; }

/* Miniatury: równa siatka pod zdjęciem, niezależnie od liczby zdjęć. */
body.knw.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 8px;
	margin: 12px 0 0 !important;
	padding: 0 !important;
}
body.knw.single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}
body.knw.single-product .woocommerce-product-gallery .flex-control-thumbs img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--knw-paper);
	border: 1px solid var(--knw-line);
	opacity: .65;
	cursor: pointer;
}
body.knw.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
body.knw.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; border-color: var(--knw-ink); }

/* Kolejność informacji: nazwa, cena, oznaczenia, krótki opis, skład, warianty, zakup, przechowywanie. */
body.knw.single-product .summary > * { order: 20; }
body.knw.single-product .summary > .woocommerce-breadcrumb { order: 0; }
body.knw.single-product .summary > .knw-single-kicker { order: 1; }
body.knw.single-product .summary > .product_title { order: 2; }
body.knw.single-product .summary > .price { order: 3; }
body.knw.single-product .summary > .knw-ppk-line { order: 4; }
body.knw.single-product .summary > .knw-frozen--single,
body.knw.single-product .summary > .knwb-facts,
body.knw.single-product .summary > .knwb-ship { order: 5; }
body.knw.single-product .summary > .woocommerce-product-details__short-description { order: 6; }
body.knw.single-product .summary > .knw-summary-comp { order: 7; }
body.knw.single-product .summary > .knw-sizes,
body.knw.single-product .summary > .knwb-sizes,
body.knw.single-product .summary > .knws-prices { order: 8; }
body.knw.single-product .summary > form.cart { order: 9; }
body.knw.single-product .summary > .knw-batch { order: 10; }
body.knw.single-product .summary > .knwb-store { order: 11; }
body.knw.single-product .summary > .product_meta { order: 12; }
body.knw.single-product .summary > .knw-frozen--single { align-self: flex-start; }

/* Tablet i telefon: jedna kolumna, galeria na górze. */
@media (max-width: 921px) {
	body.knw.single-product div.product { grid-template-columns: minmax(0, 1fr); }
	body.knw.single-product div.product > .summary { grid-column: 1; grid-row: 2; margin-top: var(--knw-s3) !important; }
	body.knw.single-product div.product > .woocommerce-product-gallery { position: static; }
}
/* ---------- Stopka na telefonie: zwarty układ (logo obok hasła, Sklep i Informacje w dwóch kolumnach) ---------- */
@media (max-width: 544px) {
	.knw-footer { padding: var(--knw-s3) 0 calc(var(--knw-s2) + 72px); font-size: .9rem; }
	.knw-footer__grid { grid-template-columns: 1fr 1fr; gap: 24px 20px; }
	.knw-footer__brand,
	.knw-footer__seller { grid-column: 1 / -1; }
	.knw-footer__brand {
		display: flex;
		align-items: center;
		gap: 16px;
		padding-bottom: 20px;
		border-bottom: 1px solid var(--knw-line);
	}
	.knw-footer .knw-illu--footer { width: 56px; flex: 0 0 56px; margin: 0; }
	.knw-footer__note { font-size: 1.05rem; max-width: none; }
	.knw-footer__h { margin-bottom: 8px !important; }
	.knw-footer li { margin: 0; }
	.knw-footer li a { display: block; padding: 5px 0; line-height: 1.3; }
	.knw-footer__seller { padding-top: 20px; border-top: 1px solid var(--knw-line); }
	.knw-footer address { line-height: 1.6; }
	.knw-footer__bottom { flex-direction: column; gap: 4px; margin-top: 24px; }
}