/* Widget zakupu (2026): lista ilosci z cena za sztuke, przewijane lokalizacje, ciasniejsze opcje,
   rozbicie ceny, podsumowanie kroku 2 i pasek mobilny. Markup: woocommerce/single-product/add-to-cart/variable.php */

form#product_widget {
	--vw-ink: #303435;
	--vw-muted: #5F6366;
	--vw-line: var(--plh-btn-border, #EDEDED); /* linie i obwodki nieformularzowe (2026-10-27) */
	--vw-border: #DDD9D5; /* pola formularzy */
	--vw-btn-border: var(--plh-btn-border, #EDEDED); /* przyciski biale i niezaznaczone kafle (token wspolny, newstyle.css motywu) */
	--vw-btn-hover: var(--vw-ln);
	--vw-brand: #FF5D00;
	--vw-tint: #FFF3EA;
	--vw-radius: var(--r-card);
	/* Tokeny presetow (E2 kolory, E3 ksztalt). Domyslne = polskielajki; inne serwisy nadpisuja inline z PHP (CurdeWidgetLook). */
	--vw-ln: var(--vw-brand); /* linia/obwodka/ikona akcentu (>= 3:1) */
	--vw-at: #B84300; /* tekst akcentu (>= 4,5:1) */
	--vw-tint-p: #FFF4EC; /* P4 tlo popularnych progow */
	--vw-p4-line: var(--vw-ln); /* P4 kreska inset */
	--vw-p4-sep: #F6E6DA; /* P4 linia miedzy popularnymi */
	--vw-p4-hov: #FBE6D6; /* P4 hover / fokus */
	--vw-p4-act: #F8DCC7; /* P4 :active */
	--vw-ring: rgba(255, 93, 0, .16); /* poswiata fokusu */
	--vw-mb-bg: #FFEFE6; /* krok 2 wariant A: tlo przycisku-instrukcji = marka @ .10 (CurdeWidgetLook mbbg) */
	--vw-mb-tx: #B84300; /* tekst na nim = ciemny akcent marki (mbtx, >= 4,5:1 na mb-bg) */
	--vw-ah: #E85400; /* hover/active CTA */
	--vw-on: #FFFFFF; /* tekst na wypelnieniu marki */
	--r-card: 8px;
	--r-cta: 8px;
	--r-field: 8px;
	--r-tile: 8px;
	--r-seg: 8px; /* style 2+ (segment) */
	--r-seg-in: 5px;
	--r-grp-in: 7px;
	--r-pop: 8px;
	--r-sheet: 12px;
	--r-badge: 11px;
}
/* E3: ksztalt widgetu (presety-spec, KSZ). r8 = domyslny (polskielajki), bez bloku. Klasa vw-p-sh-<kod> z PHP (CurdeWidgetLook, E1). */
form#product_widget.vw-p-sh-r4 { --r-card: 4px; --r-cta: 4px; --r-field: 4px; --r-tile: 4px; --r-seg: 4px; --r-seg-in: 1px; --r-grp-in: 3px; --r-pop: 4px; --r-sheet: 8px; --r-badge: 4px; }
form#product_widget.vw-p-sh-r12 { --r-card: 12px; --r-cta: 12px; --r-field: 12px; --r-tile: 12px; --r-seg: 12px; --r-seg-in: 9px; --r-grp-in: 11px; --r-pop: 12px; --r-sheet: 16px; --r-badge: 11px; }
form#product_widget.vw-p-sh-r16 { --r-card: 16px; --r-cta: 16px; --r-field: 16px; --r-tile: 16px; --r-seg: 16px; --r-seg-in: 13px; --r-grp-in: 15px; --r-pop: 16px; --r-sheet: 20px; --r-badge: 11px; }
form#product_widget.vw-p-sh-pill { --r-card: 20px; --r-cta: 999px; --r-field: 999px; --r-tile: 16px; --r-seg: 999px; --r-seg-in: 999px; --r-grp-in: 999px; --r-pop: 16px; --r-sheet: 24px; --r-badge: 11px; }

form#product_widget .card {
	border-radius: var(--r-card) !important;
}
form#product_widget .btn,
form#product_widget .form-control,
form#product_widget .input-group-text {
	border-radius: var(--r-field);
}
form#product_widget .input-group > .form-control,
form#product_widget .input-group > .input-group-text,
form#product_widget .input-group > .btn {
	border-radius: 0;
}
form#product_widget .input-group > :first-child {
	border-radius: var(--r-field) 0 0 var(--r-field);
}
form#product_widget .input-group > :last-child {
	border-radius: 0 var(--r-field) var(--r-field) 0;
}

/* ===== Krok 1 (2026-10-28): L32 lokalizacja, K2 ilosc, S6 jakosc, D6 dodatki =====
   Spec: .claude/skills/design-system/references/widget-krok1-spec.md. Motyw stylizuje globalnie button/h3/p
   (style.css: wysokosc 50, obwodka 2 px, padding 0 60px, transition all) - reset ponizej ma niska specyficznosc (:where). */
form#product_widget .card-body.vw-k1 {
	padding: 20px 16px;
}
form#product_widget :where(.vw-sec, .vw-buy, .vw-qp, .vw-info, .vw-2, .vw-dbar) :where(button) {
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	line-height: inherit;
	letter-spacing: 0;
	text-transform: none;
	text-align: inherit;
	transition: none;
	-webkit-appearance: none;
	appearance: none;
	-webkit-tap-highlight-color: transparent;
	cursor: pointer;
}
/* newstyle.css motywu: .single-product h3 { 20px !important }, .card-body p { 15px !important } */
form#product_widget :where(.vw-sec, .vw-buy, .vw-qp, .vw-info, .vw-2) :where(h3, h4, p) {
	margin: 0;
	padding: 0;
	font-size: 14px !important;
	line-height: 20px;
	letter-spacing: 0;
	text-transform: none;
}
form#product_widget .vw-sec {
	overflow: visible !important; /* style.css motywu: section { overflow-x: hidden } ucinal liste ilosci i popover */
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 28px;
}
form#product_widget .vw-h {
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: var(--vw-ink);
}
form#product_widget .vw-hrow {
	display: flex;
	align-items: center;
	gap: 2px;
	height: 20px;
}
form#product_widget .vw-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* --- Lokalizacja (L32): rowne kafle w jednym rzedzie, okragla flaga, bez przewijania --- */
form#product_widget .vw-loc__grid {
	display: grid;
	gap: 8px;
}
form#product_widget .vw-loc__tile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
	height: 76px;
	padding: 12px 8px 12px 12px;
	border: 1px solid var(--vw-border);
	border-radius: var(--r-tile);
	background: #FFFFFF;
	box-shadow: 0 1px 1px rgba(48, 52, 53, .04), 0 3px 6px rgba(48, 52, 53, .03);
	color: var(--vw-muted);
	text-align: left;
	transition: border-color .18s cubic-bezier(.2, 0, 0, 1), box-shadow .18s cubic-bezier(.2, 0, 0, 1), color .18s cubic-bezier(.2, 0, 0, 1), transform .12s cubic-bezier(.2, 0, 0, 1);
}
@media (hover: hover) {
	/* C2 (28.10): hover niewybranego kafla szary jak w kaflach jakosci */
	form#product_widget .vw-loc__tile:not(.is-on):hover {
		border-color: #8A8E91;
	}
}
form#product_widget .vw-loc__tile:active {
	transform: scale(.97);
}
form#product_widget .vw-loc__tile:focus {
	outline: none;
}
form#product_widget .vw-loc__tile.is-on {
	border-color: var(--vw-ln);
	box-shadow: inset 0 0 0 1px var(--vw-ln), 0 1px 1px rgba(48, 52, 53, .04), 0 3px 6px rgba(48, 52, 53, .03);
	color: var(--vw-ink);
}
form#product_widget .vw-loc__tile:focus-visible {
	border-color: var(--vw-ln);
	box-shadow: inset 0 0 0 1px var(--vw-ln), 0 0 0 4px var(--vw-ring);
}
form#product_widget .vw-flag {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	overflow: hidden;
	line-height: 1;
	opacity: .7;
	transition: opacity .18s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-flag::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(48, 52, 53, .16);
}
form#product_widget .vw-flag.is-mix::after {
	display: none;
}
form#product_widget .vw-flag__i {
	display: block;
	width: 24px;
	height: 24px;
	max-width: none;
}
/* C2 „Pierscien”: SVG 32 px wokol flagi 24 px (odstep ok. 2 px), obrys 1,5 px #FF5D00, start na godz. 12;
   zostaje w stanie wybranym; rysowanie (stroke-dashoffset 1 -> 0, 360 ms) i flaga 0,86 -> 1 (220 ms) tylko przy zmianie kraju (p0/p1). */
form#product_widget .vw-flw {
	position: relative;
	display: block;
	flex: none;
	width: 24px;
	height: 24px;
}
form#product_widget .vw-ring {
	position: absolute;
	left: -4px;
	top: -4px;
	width: 32px;
	height: 32px;
	overflow: visible;
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-ring circle {
	fill: none;
	stroke: var(--vw-ln);
	stroke-width: 1.5;
	stroke-dasharray: 1 1;
	stroke-dashoffset: 1;
	transform: rotate(-90deg);
	transform-origin: 16px 16px;
}
form#product_widget .vw-loc__tile.is-on .vw-ring {
	opacity: 1;
}
/* Po rysowaniu (i bez animacji) obrys ciagly: kreska dasharray zostawiala szew na godz. 12 (02.11).
   Kreska tylko w keyframes; fill backwards = po animacji wraca ta regula. */
form#product_widget .vw-loc__tile.is-on .vw-ring circle {
	stroke-dasharray: none;
	stroke-dashoffset: 0;
}
form#product_widget .vw-loc__tile.is-on.p0 .vw-ring circle { animation: vw-c2d0 .36s cubic-bezier(.4, 0, .2, 1) backwards; }
form#product_widget .vw-loc__tile.is-on.p1 .vw-ring circle { animation: vw-c2d1 .36s cubic-bezier(.4, 0, .2, 1) backwards; }
form#product_widget .vw-loc__tile.is-on.p0 .vw-flag { animation: vw-c2s0 .22s cubic-bezier(.3, 1.4, .5, 1) both; }
form#product_widget .vw-loc__tile.is-on.p1 .vw-flag { animation: vw-c2s1 .22s cubic-bezier(.3, 1.4, .5, 1) both; }
@keyframes vw-c2d0 { from { stroke-dasharray: 1 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1 1; stroke-dashoffset: 0; } }
@keyframes vw-c2d1 { from { stroke-dasharray: 1 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1 1; stroke-dashoffset: 0; } }
@keyframes vw-c2s0 { from { transform: scale(.86); } to { transform: none; } }
@keyframes vw-c2s1 { from { transform: scale(.86); } to { transform: none; } }
form#product_widget .is-on .vw-flag {
	opacity: 1;
}
form#product_widget .vw-flag__e {
	display: block;
	font-size: 42px;
	line-height: 1;
}
form#product_widget .vw-flag__e.is-globe {
	font-size: 25px;
}
form#product_widget .vw-loc__nm {
	display: block;
	max-width: 100%;
	font-size: 14px;
	font-weight: 500;
	line-height: 18px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-loc__foot {
	height: 18px;
	font-size: 13px !important;
	line-height: 18px;
	color: var(--vw-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-loc__txt {
	display: block;
	animation: vw-fadeup .24s cubic-bezier(.2, 0, 0, 1);
}
@keyframes vw-fadeup {
	from { opacity: 0; transform: translateY(2px); }
	to { opacity: 1; transform: none; }
}

/* --- Ilosc (K2): pole w stylu Stripe + arkusz od dolu (telefon) / lista pod polem (desktop) --- */
form#product_widget .vw-qf {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	height: 52px;
	padding: 0 14px;
	border: 1px solid var(--vw-border);
	border-radius: var(--r-field);
	background: #FFFFFF;
	box-shadow: 0 1px 1px rgba(48, 52, 53, .04), 0 3px 6px rgba(48, 52, 53, .03);
	color: var(--vw-ink);
	font-size: 15px;
	line-height: 20px;
	text-align: left;
	transition: border-color .18s, box-shadow .18s;
}
@media (hover: hover) {
	form#product_widget .vw-qf:hover {
		border-color: var(--vw-ln);
	}
}
form#product_widget .vw-qf:focus {
	outline: none;
}
form#product_widget .vw-qf:focus-visible,
form#product_widget .vw-qf.is-open {
	border-color: var(--vw-ln);
	box-shadow: 0 0 0 4px var(--vw-ring);
}
form#product_widget .vw-qf__ic,
form#product_widget .vw-qo__ic {
	flex: none;
	width: 16px;
	font-size: 15px;
	text-align: center;
}
form#product_widget .vw-qf__nm {
	flex: 1;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-qf__pr {
	flex: none;
	color: var(--vw-muted);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
form#product_widget .vw-qf__chev {
	flex: none;
	width: 16px;
	height: 16px;
	transition: transform .2s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-qf.is-open .vw-qf__chev {
	transform: rotate(180deg);
}
form#product_widget .vw-veil {
	position: fixed;
	inset: 0;
	z-index: 1001;
	background: transparent;
}
form#product_widget .vw-qp {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 6px);
	z-index: 1002;
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-pop);
	box-shadow: 0 12px 32px rgba(48, 52, 53, .12);
	overflow: hidden;
	animation: vw-dd .16s cubic-bezier(.2, 0, 0, 1) both;
}
@keyframes vw-dd {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: none; }
}
form#product_widget .vw-ql {
	position: relative;
	max-height: 360px;
	padding: 4px 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	outline: none;
}
form#product_widget .vw-qo {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 10px 0 14px;
	color: var(--vw-ink);
	font-size: 14px;
	line-height: 20px;
	cursor: pointer;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}
form#product_widget .vw-qo::after {
	content: "";
	position: absolute;
	left: 38px;
	right: 10px;
	bottom: 0;
	height: 1px;
	background: var(--vw-line);
}
form#product_widget .vw-qo:last-child::after {
	display: none;
}
/* E2: ✓ na liscie ilosci - atrybut stroke="#FF5D00" w variable.php zostaje (HTML bez zmian), CSS wygrywa z atrybutem prezentacji */
form#product_widget .vw-qo__ck path {
	stroke: var(--vw-ln);
}
form#product_widget .vw-qo.is-pop {
	background: var(--vw-tint-p);
	box-shadow: inset 2px 0 0 var(--vw-p4-line);
}
form#product_widget .vw-qo.is-pop::after {
	background: var(--vw-p4-sep);
}
form#product_widget .vw-qo.is-pop.is-lastpop::after {
	background: var(--vw-line);
}
form#product_widget .vw-qo__nm {
	flex: 1;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-qo__pr {
	flex: none;
	color: var(--vw-muted);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
form#product_widget .vw-qo__ck {
	flex: none;
	width: 18px;
	height: 18px;
	margin-left: -4px;
	visibility: hidden;
}
form#product_widget .vw-qo.is-on .vw-qo__nm,
form#product_widget .vw-qo.is-on .vw-qo__pr {
	color: var(--vw-ink);
	font-weight: 500;
}
form#product_widget .vw-qo.is-on .vw-qo__ck {
	visibility: visible;
}
form#product_widget .vw-qo.is-off {
	opacity: .45;
	cursor: not-allowed;
}
@media (hover: hover) {
	form#product_widget .vw-qo:hover {
		background: #F4F2F0;
	}
	form#product_widget .vw-qo.is-pop:hover {
		background: var(--vw-p4-hov);
	}
}
form#product_widget .vw-ql:focus-visible .vw-qo.is-act {
	background: #F4F2F0;
	box-shadow: inset 2px 0 0 var(--vw-ink);
}
form#product_widget .vw-ql:focus-visible .vw-qo.is-act.is-pop {
	background: var(--vw-p4-hov);
}
form#product_widget .vw-qo:active {
	background: var(--vw-line);
}
form#product_widget .vw-qo.is-pop:active {
	background: var(--vw-p4-act);
}
form#product_widget .vw-grab {
	position: absolute;
	top: 8px;
	left: 50%;
	width: 36px;
	height: 4px;
	margin-left: -18px;
	border-radius: 2px;
	background: var(--vw-border);
}
@media (max-width: 767px) {
	form#product_widget .vw-veil {
		background: rgba(48, 52, 53, .32);
		animation: vw-fin .22s ease both;
	}
	form#product_widget .vw-veil.is-out {
		animation: vw-fout .18s ease both;
	}
	form#product_widget .vw-qp {
		position: fixed;
		top: auto;
		bottom: 0;
		/* Arkusz do krawedzi headera (decyzja 04.11, wariant C): ekran - pasek admina (--plh-top) - widoczna
		   czesc paska promo (--plh-promo-y) - 72 px (header mobile: pl 64, k1/s1 60, + 8 px odstepu). vh = fallback. */
		max-height: calc(100vh - var(--plh-top, 0px) - var(--plh-promo-y, 0px) - 72px);
		max-height: calc(100dvh - var(--plh-top, 0px) - var(--plh-promo-y, 0px) - 72px);
		border: 0;
		border-radius: var(--r-sheet) var(--r-sheet) 0 0;
		box-shadow: 0 -8px 32px rgba(48, 52, 53, .16);
		padding-bottom: env(safe-area-inset-bottom);
		animation: vw-up .3s cubic-bezier(.2, 0, 0, 1) both;
	}
	form#product_widget .vw-qp.is-out {
		animation: vw-down .18s cubic-bezier(.4, 0, 1, 1) both;
	}
	form#product_widget .vw-qp__head {
		flex: none;
		position: relative;
		height: 60px;
		display: flex;
		align-items: flex-end;
		justify-content: center;
		padding-bottom: 13px;
		border-bottom: 1px solid var(--vw-line);
	}
	form#product_widget .vw-qp__head h4 {
		font-size: 16px !important;
		line-height: 22px;
		font-weight: 600;
		color: var(--vw-ink);
	}
	form#product_widget .vw-ql {
		flex: 1;
		min-height: 0;
		max-height: none;
		padding: 0 0 8px;
	}
	form#product_widget .vw-qo {
		height: 48px;
	}
	form#product_widget .vw-qo::after {
		right: 0;
	}
}
@keyframes vw-fin { from { opacity: 0; } to { opacity: 1; } }
@keyframes vw-fout { from { opacity: 1; } to { opacity: 0; } }
@keyframes vw-up { from { transform: translateY(100%); } to { transform: none; } }
@keyframes vw-down { from { transform: none; } to { transform: translateY(100%); } }

/* --- Ikona i przy naglowku (pole dotyku 44 px) --- */
form#product_widget .vw-ib {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: -12px -12px -12px -10px;
	border-radius: var(--r-field);
	color: var(--vw-muted);
	transition: color .15s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-ib svg {
	width: 14px;
	height: 14px;
}
@media (hover: hover) {
	form#product_widget .vw-ib:hover {
		color: var(--vw-ln);
	}
}
form#product_widget .vw-ib:focus {
	outline: none;
}
form#product_widget .vw-ib:focus-visible {
	color: var(--vw-ink);
	box-shadow: inset 0 0 0 2px var(--vw-ink);
}
form#product_widget .vw-ib[aria-expanded="true"] {
	color: var(--vw-ln);
}

/* --- Jakosc (S6 + N2 + A1 + W1, 2026-10-28): kafel 88 px = 16 · emoji 16 · 6 · nazwa 18 · 4 · cena 16 · 10 ---
   Standard i Wysoka: kolor wyboru marki (#FF5D00 / tlo #FFF3EA / cena i kreski #B84300).
   Premium: bursztyn (#B26B00 / #FFF1DA / #8A4F00). Hover: szara obwodka. Badge: biala pigulka 22 px na krawedzi.
   Ruch tylko przy zmianie wyboru (klasy p0/p1 na .vw-qt): pyk kafla, kolysanie badge, kreski; W1 iskry tylko Premium. */
form#product_widget .vw-qa {
	gap: 12px; /* 29.10: naglowek -> kafle 12 jak lokalizacja i ilosc; badge (-11 px) wchodzi w odstep pod naglowkiem, obok tekstu */
}
/* Q-A (28.10): przenikanie 3 kafli <-> 1 Premium przy zmianie kraju; warstwa wychodzaca absolutnie = bez skoku ukladu */
form#product_widget .vw-qa__sw {
	position: relative;
}
form#product_widget .vw-qx-leave-active {
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	right: 0;
	pointer-events: none;
	animation: vw-qaO .18s cubic-bezier(.4, 0, 1, 1) both;
}
form#product_widget .vw-qx-enter-active {
	animation: vw-qaI .24s cubic-bezier(.2, 0, 0, 1) .1s both;
}
@keyframes vw-qaO { from { opacity: 1; transform: none; } to { opacity: 0; transform: scale(.98); } }
@keyframes vw-qaI { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: none; } }
form#product_widget .vw-qa__grid {
	display: grid;
	gap: 8px;
}
form#product_widget .vw-qt--1,
form#product_widget .vw-qt--2 { --c: var(--vw-ln); /* presety-spec 3: linia/obwodka poziomu >= 3:1 (pl: = --vw-brand) */ --tint: var(--vw-tint); --tx: var(--vw-at); --bl: var(--vw-ln); --bx: var(--vw-at); }
form#product_widget .vw-qt--3 { --c: #B26B00; --tint: #FFF1DA; --tx: #8A4F00; --bl: #B26B00; --bx: #8A4F00; }
form#product_widget .vw-qt {
	position: relative;
	min-width: 0;
	transition: transform .12s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-qt:active {
	transform: scale(.98);
}
form#product_widget .vw-qt__tile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	height: 88px;
	padding: 14px 8px 10px; /* 28.10: emoji 20 px (14 · 20 · 4 · 18 · 4 · 16 · 10 = 86 + obwodka), srodek emoji nadal 24 px */
	border: 1px solid var(--vw-border);
	border-radius: var(--r-tile);
	background: #FFFFFF;
	box-shadow: 0 1px 1px rgba(48, 52, 53, .04), 0 3px 6px rgba(48, 52, 53, .03);
	color: var(--vw-muted);
	text-align: center;
	transition: border-color .2s cubic-bezier(.2, 0, 0, 1), box-shadow .2s cubic-bezier(.2, 0, 0, 1), background-color .2s, color .2s cubic-bezier(.2, 0, 0, 1);
}
@media (hover: hover) {
	form#product_widget .vw-qt__tile:not(.is-on):hover {
		border-color: #8A8E91;
	}
}
form#product_widget .vw-qt__tile:focus {
	outline: none;
}
form#product_widget .vw-qt__tile:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
}
form#product_widget .vw-qt__tile.is-on {
	border-color: var(--c);
	background: var(--tint);
	box-shadow: inset 0 0 0 1px var(--c);
	color: var(--vw-ink);
}
form#product_widget .vw-qt__em {
	display: block;
	height: 20px;
	font-size: 17px;
	line-height: 20px;
	white-space: nowrap;
	opacity: .7;
	transition: opacity .2s;
}
form#product_widget .vw-qt__tile.is-on .vw-qt__em {
	opacity: 1;
}
form#product_widget .vw-qt__em .plh-emo {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0 auto;
}
form#product_widget .vw-qt__nm {
	display: block;
	max-width: 100%;
	height: 18px;
	margin-top: 4px;
	font-size: 14px;
	font-weight: 500;
	line-height: 18px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-qt__pr {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	max-width: 100%;
	height: 16px;
	margin-top: 4px;
}
form#product_widget .vw-qt__p {
	font-size: 13px;
	line-height: 16px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	transition: color .2s;
}
form#product_widget .vw-qt__tile.is-on .vw-qt__p {
	color: var(--tx);
	font-weight: 500;
}
form#product_widget .vw-qt__mt {
	flex: none;
	display: inline-flex;
	align-items: flex-end;
	gap: 2px;
	height: 12px;
}
form#product_widget .vw-qt__b {
	display: block;
	width: 3px;
	border-radius: 1px;
	background: var(--vw-line);
	transform-origin: 50% 100%;
	transition: background-color .18s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-qt__b1 { height: 5px; }
form#product_widget .vw-qt__b2 { height: 8px; }
form#product_widget .vw-qt__b3 { height: 12px; }
form#product_widget .vw-qt__b.is-f {
	background: #8A8E91;
}
form#product_widget .vw-qt__tile.is-on .vw-qt__b.is-f {
	background: var(--tx);
}
form#product_widget .vw-qt__bdg {
	position: absolute;
	z-index: 3;
	top: -11px;
	left: 0;
	right: 0;
	width: max-content;
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: 22px;
	padding: 0 10px;
	border: 1.5px solid var(--bl);
	border-radius: var(--r-badge);
	background: #FFFFFF;
	color: var(--bx);
	font-size: 12px;
	font-weight: 500;
	line-height: 19px;
	white-space: nowrap;
	transform-origin: 50% 100%;
	pointer-events: none;
}

/* Ruch A1 (tylko przy zmianie wyboru; p0/p1 = restart animacji) */
form#product_widget .vw-qt.p0 .vw-qt__tile.is-on { animation: vw-pop0 .26s cubic-bezier(.3, 1.4, .5, 1) both; }
form#product_widget .vw-qt.p1 .vw-qt__tile.is-on { animation: vw-pop1 .26s cubic-bezier(.3, 1.4, .5, 1) both; }
@keyframes vw-pop0 { 0% { transform: scale(1); } 40% { transform: scale(1.045); } 100% { transform: scale(1); } }
@keyframes vw-pop1 { 0% { transform: scale(1); } 40% { transform: scale(1.045); } 100% { transform: scale(1); } }
form#product_widget .vw-qt.p0 .vw-qt__bdg { animation: vw-wig0 .34s ease both; }
form#product_widget .vw-qt.p1 .vw-qt__bdg { animation: vw-wig1 .34s ease both; }
@keyframes vw-wig0 { 0% { transform: none; } 25% { transform: translateY(-3px) rotate(-7deg); } 55% { transform: translateY(-1px) rotate(5deg); } 80% { transform: rotate(-2deg); } 100% { transform: none; } }
@keyframes vw-wig1 { 0% { transform: none; } 25% { transform: translateY(-3px) rotate(-7deg); } 55% { transform: translateY(-1px) rotate(5deg); } 80% { transform: rotate(-2deg); } 100% { transform: none; } }
form#product_widget .vw-qt.p0 .vw-qt__tile.is-on .vw-qt__b.is-f { animation: vw-bar0 .22s cubic-bezier(.2, 0, 0, 1) both; }
form#product_widget .vw-qt.p1 .vw-qt__tile.is-on .vw-qt__b.is-f { animation: vw-bar1 .22s cubic-bezier(.2, 0, 0, 1) both; }
form#product_widget .vw-qt.p0 .vw-qt__tile.is-on .vw-qt__b2.is-f,
form#product_widget .vw-qt.p1 .vw-qt__tile.is-on .vw-qt__b2.is-f { animation-delay: .05s; }
form#product_widget .vw-qt.p0 .vw-qt__tile.is-on .vw-qt__b3.is-f,
form#product_widget .vw-qt.p1 .vw-qt__tile.is-on .vw-qt__b3.is-f { animation-delay: .1s; }
@keyframes vw-bar0 { from { transform: scaleY(.3); background: #8A8E91; } to { transform: none; background: var(--tx); } }
@keyframes vw-bar1 { from { transform: scaleY(.3); background: #8A8E91; } to { transform: none; background: var(--tx); } }

/* W1 „Iskry” – tylko przy wyborze Premium: 12 czastek (9 kropek 5 px + 3 gwiazdki 7 px), Premium/zloto na przemian */
form#product_widget .vw-qt__fx {
	position: absolute;
	z-index: 4;
	inset: 0;
	pointer-events: none;
}
form#product_widget .vw-qt__fx i {
	position: absolute;
	display: block;
	left: 50%;
	top: 24px;
	width: 5px;
	height: 5px;
	margin: -2.5px;
	border-radius: 50%;
	background: var(--pc);
	opacity: 0;
}
form#product_widget .vw-qt__fx i:nth-child(2),
form#product_widget .vw-qt__fx i:nth-child(6),
form#product_widget .vw-qt__fx i:nth-child(10) {
	width: 7px;
	height: 7px;
	margin: -3.5px;
	border-radius: 1px;
	clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
}
form#product_widget .vw-qt__fx i:nth-child(1)  { --dx: -2.5px; --dy: -23.9px; --rt: -90deg; --pc: #E9C46A; --dl: 0ms; }
form#product_widget .vw-qt__fx i:nth-child(2)  { --dx: 19.1px; --dy: -24.4px; --rt: -43deg; --pc: var(--c); --dl: 25ms; }
form#product_widget .vw-qt__fx i:nth-child(3)  { --dx: 30px; --dy: -22.3px; --rt: 4deg; --pc: #E9C46A; --dl: 50ms; }
form#product_widget .vw-qt__fx i:nth-child(4)  { --dx: 28.7px; --dy: 4px; --rt: 51deg; --pc: var(--c); --dl: 75ms; }
form#product_widget .vw-qt__fx i:nth-child(5)  { --dx: 30px; --dy: 14.6px; --rt: -82deg; --pc: #E9C46A; --dl: 0ms; }
form#product_widget .vw-qt__fx i:nth-child(6)  { --dx: 10.1px; --dy: 25px; --rt: -35deg; --pc: var(--c); --dl: 25ms; }
form#product_widget .vw-qt__fx i:nth-child(7)  { --dx: 3.6px; --dy: 33.8px; --rt: 12deg; --pc: #E9C46A; --dl: 50ms; }
form#product_widget .vw-qt__fx i:nth-child(8)  { --dx: -15.4px; --dy: 19.7px; --rt: 59deg; --pc: var(--c); --dl: 75ms; }
form#product_widget .vw-qt__fx i:nth-child(9)  { --dx: -25.9px; --dy: 18.8px; --rt: -74deg; --pc: #E9C46A; --dl: 0ms; }
form#product_widget .vw-qt__fx i:nth-child(10) { --dx: -30px; --dy: -5.4px; --rt: -27deg; --pc: var(--c); --dl: 25ms; }
form#product_widget .vw-qt__fx i:nth-child(11) { --dx: -27.4px; --dy: -12.2px; --rt: 20deg; --pc: #E9C46A; --dl: 50ms; }
form#product_widget .vw-qt__fx i:nth-child(12) { --dx: -13.9px; --dy: -34.3px; --rt: 67deg; --pc: var(--c); --dl: 75ms; }
form#product_widget .vw-qt.p0.is-fx .vw-qt__fx i { animation: vw-w1s0 .56s cubic-bezier(.2, .7, .3, 1) both; animation-delay: var(--dl); }
form#product_widget .vw-qt.p1.is-fx .vw-qt__fx i { animation: vw-w1s1 .56s cubic-bezier(.2, .7, .3, 1) both; animation-delay: var(--dl); }
@keyframes vw-w1s0 { 0% { opacity: 0; transform: translate(0, 0) scale(.5); } 20% { opacity: 1; transform: translate(calc(var(--dx) * .45), calc(var(--dy) * .45)) scale(1.25); } 70% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(.3) rotate(var(--rt)); } }
@keyframes vw-w1s1 { 0% { opacity: 0; transform: translate(0, 0) scale(.5); } 20% { opacity: 1; transform: translate(calc(var(--dx) * .45), calc(var(--dy) * .45)) scale(1.25); } 70% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(.3) rotate(var(--rt)); } }

/* H6 „Gwiazdki, potem blysk po pigulce” – tylko przy wyborze Wysokiej: 3 gwiazdki 8/7/6 px przy ⭐️ (0/50/100 ms, kazda 300 ms),
   potem blysk po pigulce badge'a (260 ms od 170 ms) – koniec <= 430 ms; kolysanie A1 zostaje. Ten sam blysk przy Premium („Klasa”, z iskrami W1). */
form#product_widget .vw-qt__hs {
	position: absolute;
	z-index: 4;
	inset: 0;
	pointer-events: none;
}
form#product_widget .vw-qt__hs i {
	position: absolute;
	display: block;
	left: calc(50% + var(--hx));
	top: calc(24px + var(--hy));
	width: var(--hz);
	height: var(--hz);
	margin: calc(var(--hz) / -2);
	background: var(--pc);
	clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
	opacity: 0;
}
form#product_widget .vw-qt__hs i:nth-child(1) { --hx: -20px; --hy: -6px; --hz: 8px; --pc: var(--vw-ln); --dl: 0ms; }
form#product_widget .vw-qt__hs i:nth-child(2) { --hx: 18px; --hy: -10px; --hz: 7px; --pc: #FFB27F; --dl: 50ms; }
form#product_widget .vw-qt__hs i:nth-child(3) { --hx: 13px; --hy: 9px; --hz: 6px; --pc: var(--vw-ln); --dl: 100ms; }
form#product_widget .vw-qt.p0.is-hs .vw-qt__hs i { animation: vw-htw0 .3s cubic-bezier(.2, .7, .3, 1) both; animation-delay: var(--dl); }
form#product_widget .vw-qt.p1.is-hs .vw-qt__hs i { animation: vw-htw1 .3s cubic-bezier(.2, .7, .3, 1) both; animation-delay: var(--dl); }
@keyframes vw-htw0 { 0% { opacity: 0; transform: scale(0) rotate(0); } 40% { opacity: 1; transform: scale(1.1) rotate(45deg); } 100% { opacity: 0; transform: scale(.4) rotate(90deg); } }
@keyframes vw-htw1 { 0% { opacity: 0; transform: scale(0) rotate(0); } 40% { opacity: 1; transform: scale(1.1) rotate(45deg); } 100% { opacity: 0; transform: scale(.4) rotate(90deg); } }
form#product_widget .vw-qt__bdg {
	overflow: hidden;
}
form#product_widget .vw-qt__bdg::after {
	content: "";
	position: absolute;
	top: -4px;
	bottom: -4px;
	left: 0;
	width: 45%;
	background: linear-gradient(90deg, rgba(255, 243, 234, 0), rgba(255, 178, 127, .85), rgba(255, 243, 234, 0));
	opacity: 0;
	pointer-events: none;
}
form#product_widget .vw-qt.p0 .vw-qt__bdg::after { animation: vw-hsb0 .26s cubic-bezier(.4, 0, .2, 1) .17s both; }
form#product_widget .vw-qt.p1 .vw-qt__bdg::after { animation: vw-hsb1 .26s cubic-bezier(.4, 0, .2, 1) .17s both; }
@keyframes vw-hsb0 { 0% { opacity: 0; transform: translateX(-120%) skewX(-20deg); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateX(230%) skewX(-20deg); } }
@keyframes vw-hsb1 { 0% { opacity: 0; transform: translateX(-120%) skewX(-20deg); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateX(230%) skewX(-20deg); } }

/* --- Opcje dodatkowe (D6): wiersz 44 px = przelacznik, linie od krawedzi do krawedzi karty --- */
form#product_widget .vw-ad {
	gap: 8px;
}
/* 30.10 (decyzja wlasciciela): naglowek "Opcje dodatkowe" -> pierwszy wiersz 8 -> 12 px, jak lokalizacja, ilosc i jakosc
   (dol linii naglowka -> pudelko 1. wiersza; 1. wiersz nie ma linii gornej). Sekcja -> "Razem" bez zmian (.vw-buy -8 px). */
form#product_widget .vw-sec.vw-ad {
	gap: 12px;
}
form#product_widget .vw-ad__list {
	display: flex;
	flex-direction: column;
}
form#product_widget .vw-ad__row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	width: calc(100% + 32px);
	height: 44px;
	margin: 0 -16px;
	padding: 0 16px;
	border-top: 1px solid var(--vw-line);
	background: #FFFFFF;
	color: var(--vw-ink);
	font-size: 14px;
	line-height: 18px;
	text-align: left;
	user-select: none;
	transition: background-color .15s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-ad__row.is-first {
	border-top-color: transparent;
}
@media (hover: hover) {
	form#product_widget .vw-ad__row:hover {
		background: #FAF9F8;
	}
	form#product_widget .vw-ad__row:not(.is-on):hover .vw-sw {
		background: #CFCAC5;
	}
}
form#product_widget .vw-ad__row:focus {
	outline: none;
}
form#product_widget .vw-ad__row:focus-visible {
	z-index: 1;
	box-shadow: inset 0 0 0 2px var(--vw-ink);
}
form#product_widget .vw-ad__em {
	flex: none;
	width: 20px;
	text-align: center;
}
/* Emoji Fluent (<img class="plh-emo">, CurdeEmoji): 20 x 20 px na stronie produktu (decyzja wlasciciela 28.10); w tekscie do linii bazowej */
form#product_widget .plh-emo {
	display: inline-block;
	width: 20px;
	height: 20px;
	max-width: none;
	margin: 0;
	vertical-align: -5px;
}
form#product_widget .vw-ad__em .plh-emo,
form#product_widget .vw-info__em .plh-emo,
form#product_widget .vw-sum__e .plh-emo {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0 auto;
}
form#product_widget .vw-ad__em,
form#product_widget .vw-info__em,
form#product_widget .vw-sum__e {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
/* Flaga 16 px w „Szczegolach” kroku 2 (circle-flags / globus MIX), wewnetrzny obrys poza MIX */
form#product_widget .plh-flag {
	position: relative;
	display: block;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	overflow: hidden;
}
form#product_widget .plh-flag img {
	display: block;
	width: 16px;
	height: 16px;
	max-width: none;
}
form#product_widget .plh-flag::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(48, 52, 53, .16);
}
form#product_widget .plh-flag.is-mix::after {
	display: none;
}
form#product_widget .vw-ad__nm {
	flex: 1;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-ad__row.is-on .vw-ad__nm {
	font-weight: 500;
}
form#product_widget .vw-ad__pr {
	flex: none;
	margin-right: 6px;
	color: var(--vw-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
form#product_widget .vw-ad__row.is-on .vw-ad__pr {
	color: var(--vw-ink);
}
form#product_widget .vw-sw {
	flex: none;
	position: relative;
	display: block;
	width: 40px;
	height: 24px;
	border-radius: 12px;
	background: var(--vw-border);
	transition: background-color .15s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-sw__fill {
	position: absolute;
	left: 0;
	top: 0;
	width: 24px;
	height: 24px;
	border-radius: 12px;
	background: var(--vw-brand);
	opacity: 0;
}
form#product_widget .vw-sw__kn {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 20px;
	height: 20px;
	border-radius: 10px;
	background: #FFFFFF;
	box-shadow: 0 1px 2px rgba(48, 52, 53, .22), 0 2px 6px rgba(48, 52, 53, .08);
	transition: left .18s cubic-bezier(.2, 0, 0, 1), width .18s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-ad__row.is-on .vw-sw__fill {
	width: 40px;
	opacity: 1;
}
form#product_widget .vw-ad__row.is-on .vw-sw__kn {
	left: 18px;
}
form#product_widget .vw-ad__row:active .vw-sw__kn {
	width: 24px;
}
form#product_widget .vw-ad__row.is-on:active .vw-sw__kn {
	left: 14px;
}
form#product_widget .vw-ad__row.is-mv.is-on .vw-sw__kn { animation: vw-kOn 380ms linear; }
form#product_widget .vw-ad__row.is-mv.is-on .vw-sw__fill { animation: vw-fOn 380ms linear; }
form#product_widget .vw-ad__row.is-mv.is-on .vw-ad__pr { animation: vw-pOn 380ms linear; }
form#product_widget .vw-ad__row.is-mv:not(.is-on) .vw-sw__kn { animation: vw-kOff 320ms linear; }
form#product_widget .vw-ad__row.is-mv:not(.is-on) .vw-sw__fill { animation: vw-fOff 320ms linear; }
form#product_widget .vw-ad__row.is-mv:not(.is-on) .vw-ad__pr { animation: vw-pOff 320ms linear; }
@keyframes vw-kOn {
	0% { left: 2px; width: 20px; animation-timing-function: cubic-bezier(.2, 0, 0, 1); }
	25% { left: 3px; width: 25px; animation-timing-function: cubic-bezier(.3, 0, .2, 1); }
	50% { left: 19.5px; width: 20px; animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
	72% { left: 17.4px; width: 20px; animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
	88% { left: 18.2px; width: 20px; animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
	100% { left: 18px; width: 20px; }
}
@keyframes vw-fOn {
	0% { width: 24px; opacity: 0; animation-timing-function: cubic-bezier(.2, 0, 0, 1); }
	25% { width: 30px; opacity: 1; animation-timing-function: cubic-bezier(.3, 0, .2, 1); }
	50% { width: 40px; opacity: 1; }
	100% { width: 40px; opacity: 1; }
}
@keyframes vw-pOn { 0% { color: #5F6366; } 25% { color: #5F6366; animation-timing-function: cubic-bezier(.2, 0, 0, 1); } 72% { color: #303435; } 100% { color: #303435; } }
@keyframes vw-kOff {
	0% { left: 18px; width: 20px; animation-timing-function: cubic-bezier(.2, 0, 0, 1); }
	25% { left: 12px; width: 25px; animation-timing-function: cubic-bezier(.3, 0, .2, 1); }
	50% { left: .5px; width: 20px; animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
	72% { left: 2.6px; width: 20px; animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
	88% { left: 1.8px; width: 20px; animation-timing-function: cubic-bezier(.4, 0, .6, 1); }
	100% { left: 2px; width: 20px; }
}
@keyframes vw-fOff {
	0% { width: 40px; opacity: 1; animation-timing-function: cubic-bezier(.2, 0, 0, 1); }
	25% { width: 39px; opacity: 1; animation-timing-function: cubic-bezier(.3, 0, .2, 1); }
	50% { width: 22.5px; opacity: .55; }
	100% { width: 24px; opacity: 0; }
}
@keyframes vw-pOff { 0% { color: #303435; animation-timing-function: cubic-bezier(.2, 0, 0, 1); } 60% { color: #5F6366; } 100% { color: #5F6366; } }

/* --- Razem (licznik z rolka cyfr) + Przejdz dalej (G1, bez "Szczegolow" i bez linii) --- */
form#product_widget .vw-buy {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: -8px; /* 28 px odstepu sekcji - 8 = 20 px swiatla od dodatkow */
}
form#product_widget .vw-tot {
	min-width: 0;
}
form#product_widget .vw-tot small {
	display: block;
	font-size: 12px;
	line-height: 16px;
	color: var(--vw-muted);
}
form#product_widget .vw-tl {
	position: relative;
	display: inline-flex;
	align-items: flex-start;
	height: 30px;
	color: var(--vw-ink);
	font-size: 24px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: -.015em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
/* 30.10 (decyzja wlasciciela): odstep "Razem" -> cyfry kwoty 10 -> 5 px; tylko dol kroku 1 G1 (.vw-tl w podsumowaniu
   kroku 2 i cena w CTA SB12 bez zmian). .vw-tot 46 -> 41 px, wiersz .vw-buy zostaje 48 px (wysokosc daje CTA). */
form#product_widget .vw-buy .vw-tot > .vw-tl {
	margin-top: -5px;
}
@media (max-width: 1023px) {
	/* pasek sticky SB10/SB16 (ten sam selektor co uklad paska nizej): kolumna ilosc nad cena ma wlasny uklad (gap 2 px) - bez korekty */
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot > .vw-tl {
		margin-top: 0;
	}
}
form#product_widget .vw-roll {
	display: inline-flex;
	height: 30px;
}
form#product_widget .vw-dg {
	display: inline-block;
	height: 30px;
	max-width: 1em;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(transparent 0, #000 22%, #000 78%, transparent 100%);
	mask-image: linear-gradient(transparent 0, #000 22%, #000 78%, transparent 100%);
	transition: max-width .3s cubic-bezier(.2, 0, 0, 1), opacity .2s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-st {
	display: inline-block;
	max-width: 1em;
	white-space: pre;
	overflow: hidden;
	transition: max-width .3s cubic-bezier(.2, 0, 0, 1), opacity .2s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-st:first-child,
form#product_widget .vw-st:last-child {
	max-width: none;
}
form#product_widget .vw-dg.is-hide,
form#product_widget .vw-st.is-hide {
	max-width: 0;
	opacity: 0;
}
form#product_widget .vw-col {
	display: block;
	line-height: var(--vw-rh, 30px);
	white-space: pre;
	/* --vw-d = -cyfra (Vue), --vw-rh = wysokosc wiersza (30 px w karcie, mniej w pasku sticky) */
	transform: translateY(calc(var(--vw-d, 0) * var(--vw-rh, 30px)));
	transition: transform .4s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-cta {
	flex: none;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 176px;
	height: 48px;
	border-radius: var(--r-cta);
	background: var(--vw-brand);
	color: var(--vw-on);
	font-size: 15px;
	font-weight: 500;
	line-height: 20px;
	transition: background-color .2s, transform .1s cubic-bezier(.2, 0, 0, 1);
}
@media (min-width: 768px) {
	form#product_widget .vw-cta {
		width: 200px;
	}
}
@media (hover: hover) {
	form#product_widget .vw-cta:not(:disabled, [aria-disabled="true"]):hover {
		background: var(--vw-ah);
	}
}
form#product_widget .vw-cta:not(:disabled, [aria-disabled="true"]):active {
	transform: scale(.98);
	background: var(--vw-ah);
}
form#product_widget .vw-cta:focus {
	outline: none;
}
form#product_widget .vw-cta:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
}
/* Nieaktywny (wariant bez magazynu) = BT1 (presety-spec, sekcja 5; decyzja 30.10 takze na polskielajki): jasne tlo, tekst
   drugorzedny 5,43:1, bez ikony; aria-disabled w variable.php (przycisk zostaje w kolejnosci Tab), :disabled = starszy markup. */
form#product_widget .vw-cta:is(:disabled, [aria-disabled="true"]) {
	background: #F4F2F0;
	color: var(--vw-muted);
	cursor: not-allowed;
}
form#product_widget .vw-cta:is(:disabled, [aria-disabled="true"]) .vw-cta__ic {
	display: none;
}
/* "Wybierz pakiet" z wlasna ikona (sbt.ic_far) - bez drugiej ikony (strzalki) w tym samym przycisku */
form#product_widget .vw-cta__ic.is-hid {
	display: none;
}
form#product_widget .vw-cta.is-go {
	cursor: progress;
}
form#product_widget .vw-cta__ic {
	position: relative;
	flex: none;
	width: 16px;
	height: 16px;
}
form#product_widget .vw-cta__ar,
form#product_widget .vw-cta__sp {
	position: absolute;
	left: 0;
	top: 0;
	display: block;
	width: 16px;
	height: 16px;
}
form#product_widget .vw-cta__sp {
	opacity: 0;
}
form#product_widget .vw-cta__sp svg {
	display: block;
	width: 16px;
	height: 16px;
}
form#product_widget .vw-cta.is-go .vw-cta__sp svg { animation: vw-spin .7s linear infinite; }
form#product_widget .vw-cta.is-go.p0 .vw-cta__ar { animation: vw-arOut0 .16s cubic-bezier(.4, 0, 1, 1) both; }
form#product_widget .vw-cta.is-go.p1 .vw-cta__ar { animation: vw-arOut1 .16s cubic-bezier(.4, 0, 1, 1) both; }
form#product_widget .vw-cta.is-go.p0 .vw-cta__sp { animation: vw-spIn0 .16s cubic-bezier(.2, 0, 0, 1) .14s both; }
form#product_widget .vw-cta.is-go.p1 .vw-cta__sp { animation: vw-spIn1 .16s cubic-bezier(.2, 0, 0, 1) .14s both; }
@keyframes vw-spin { to { transform: rotate(360deg); } }
@keyframes vw-arOut0 { from { transform: translateX(0); opacity: 1; } to { transform: translateX(10px); opacity: 0; } }
@keyframes vw-arOut1 { from { transform: translateX(0); opacity: 1; } to { transform: translateX(10px); opacity: 0; } }
@keyframes vw-spIn0 { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes vw-spIn1 { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
form#product_widget .vw-buy.has-err {
	margin-bottom: 20px;
}
form#product_widget .vw-cta-err {
	position: absolute;
	right: 0;
	top: calc(100% + 4px);
	margin: 0 !important;
	color: #B3261E;
	font-size: 12px !important;
	line-height: 16px !important;
	text-align: right;
	white-space: nowrap;
}

/* --- Arkusz (telefon) / popover 320 px (desktop) z opisami --- */
form#product_widget .vw-info {
	position: absolute;
	top: 30px;
	left: 0;
	z-index: 1002;
	width: 320px;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-pop);
	box-shadow: 0 12px 32px rgba(48, 52, 53, .12);
	color: var(--vw-ink);
	text-align: left;
	animation: vw-dd .16s cubic-bezier(.2, 0, 0, 1) both;
}
form#product_widget .vw-info__head {
	position: relative;
	display: flex;
	align-items: center;
	padding: 12px 16px 8px;
}
form#product_widget .vw-info__head .vw-grab {
	display: none;
}
form#product_widget .vw-info__head h4 {
	font-size: 14px !important;
	font-weight: 600;
	line-height: 20px;
}
form#product_widget .vw-info__body {
	max-height: 50vh;
	overflow-y: auto;
	overscroll-behavior: contain;
}
form#product_widget .vw-info__it {
	padding: 7px 16px 8px;
	border-top: 1px solid var(--vw-line);
}
form#product_widget .vw-info__it:first-child {
	border-top: 0;
}
form#product_widget .vw-info__it1 {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
}
form#product_widget .vw-info__em {
	width: 20px;
	text-align: center;
}
form#product_widget .vw-info__pr {
	margin-left: auto;
	color: var(--vw-muted);
	font-size: 13px;
	font-weight: 400;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
form#product_widget .vw-info__d {
	margin: 1px 0 0 28px !important;
	color: var(--vw-muted);
	font-size: 13px !important;
	line-height: 17px !important;
}
form#product_widget .vw-info__it--plain .vw-info__d {
	margin: 0 !important;
	color: var(--vw-ink);
	font-size: 14px !important;
	line-height: 20px !important;
}
form#product_widget .vw-info__html {
	padding: 0 16px;
	font-size: 13px;
	line-height: 17px;
	color: var(--vw-muted);
}
form#product_widget .vw-info__html p {
	margin: 0 !important;
	padding: 7px 0 8px;
	border-top: 1px solid var(--vw-line);
	font-size: 13px !important;
	line-height: 17px !important;
	color: var(--vw-muted);
}
form#product_widget .vw-info__html p:first-child {
	border-top: 0;
}
/* 04.11 (kuplike): listy w opisie jakosci jak na pl - motyw serwisu dawal li padding-bottom 15 px (okno o ok. 280 px wyzsze) */
form#product_widget .vw-info__html ul {
	margin: 4px 0 8px !important;
	padding: 0 0 0 32px !important;
}
form#product_widget .vw-info__html li {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 17px;
}
form#product_widget .vw-info__html b,
form#product_widget .vw-info__html strong {
	display: inline-block;
	margin-bottom: 1px;
	color: var(--vw-ink);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
}
form#product_widget .vw-info__foot {
	padding: 10px 16px 12px;
	border-top: 1px solid var(--vw-line);
}
form#product_widget .vw-info__ok {
	width: 100%;
	height: 44px;
	border: 1px solid var(--vw-btn-border);
	border-radius: var(--r-cta);
	background: #FFFFFF;
	color: var(--vw-ink);
	font-size: 15px;
	font-weight: 500;
	text-align: center;
	transition: border-color .15s;
}
@media (hover: hover) {
	form#product_widget .vw-info__ok:hover {
		border-color: var(--vw-ln);
	}
}
form#product_widget .vw-info__ok:focus {
	outline: none;
}
form#product_widget .vw-info__ok:focus-visible {
	border-color: var(--vw-ln);
	box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--vw-ink);
}
/* 04.11 (kuplike, lajki24): motyw serwisu ma .summary.entry-summary { position: relative; z-index: 1 } - przodek widgetu
   tworzy wtedy kontekst warstw, ktory zamyka wszystkie warstwy fixed widgetu (zaslona 1001, arkusze 1002, pasek .vw-dbar 980,
   pasek .vw-mbar) na poziomie 1: header (990) zaslanial gore arkusza, a "Czytaj wiecej" opisu (z-index 3) wchodzil na .vw-dbar.
   z-index: auto = brak kontekstu, warstwy widgetu licza sie wzgledem calej strony (nad trescia, pod headerem i modalami).
   Na polskielajki przodek nie ma z-index - bez zmian. */
.entry-summary:has(form#product_widget) {
	z-index: auto !important;
}
@media (max-width: 767px) {
	form#product_widget .vw-info {
		position: fixed;
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;
		width: auto;
		max-width: none;
		/* 04.11 (kuplike): arkusz do 85% ekranu (dvh = bez paska Safari, vh = zapas); naglowek i "Rozumiem" stale, przewija sie tresc */
		max-height: 85vh;
		max-height: 85dvh;
		border: 0;
		border-radius: var(--r-sheet) var(--r-sheet) 0 0;
		box-shadow: 0 -8px 32px rgba(48, 52, 53, .16);
		padding-bottom: env(safe-area-inset-bottom);
		animation: vw-up .3s cubic-bezier(.2, 0, 0, 1) both;
	}
	form#product_widget .vw-info.is-out {
		animation: vw-down .22s cubic-bezier(.3, 0, 1, 1) both;
	}
	form#product_widget .vw-info__head {
		flex: none;
		height: 48px;
		align-items: flex-end;
		justify-content: center;
		padding: 0 0 10px;
		border-bottom: 1px solid var(--vw-line);
	}
	form#product_widget .vw-info__head .vw-grab {
		display: block;
	}
	form#product_widget .vw-info__head h4 {
		font-size: 16px !important;
		line-height: 22px;
	}
	form#product_widget .vw-info__body {
		flex: 1;
		min-height: 0;
		max-height: none;
	}
}

/* ===== Krok 2 (R1, 2026-10-28): podsumowanie Z1, jedno pole P2, karta linku i pomoc P5, siatka postow =====
   Makiety: scratchpad R1/P2/P5/Z1 (design-system). Markup: variable.php (.vw-2), CTA: variation-add-to-cart-button.php. */
form#product_widget .vw-sum {
	border-bottom: 1px solid var(--vw-line);
}
/* Y9 (28.10): caly naglowek podsumowania = jeden przycisk; nazwa B, meta jak w koszyku, cena po prawej, bez podkreslen */
form#product_widget .vw-2 .vw-sum__hd {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 10px 16px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--vw-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: background-color .15s;
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-sum__hd:hover {
		background: #FAF9F8;
	}
}
form#product_widget .vw-2 .vw-sum__hd:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 2px var(--vw-ink);
}
form#product_widget .vw-sum__t {
	flex: 1;
	min-width: 0;
}
form#product_widget .vw-sum__nm {
	display: block;
	font-size: 15px;
	line-height: 20px;
	font-weight: 500;
	color: var(--vw-ink);
}
form#product_widget .vw-sum__mt {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px 5px;
	margin-top: 4px;
	font-size: 12.5px;
	line-height: 17px;
	color: var(--vw-muted);
}
/* Separator "·" jako poczatek kolejnego elementu (nowrap) - przy zawijaniu nie zostaje sam na koncu linii */
form#product_widget .vw-sum__mi + .vw-sum__mi::before {
	content: "·";
	content: "·" / "";
	margin-right: 0;
	color: var(--vw-muted); /* separator zawsze szary, nie w kolorze poziomu jakosci (.is-lv2/.is-lv3) */
}
form#product_widget .vw-sum__mi {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	white-space: nowrap;
}
form#product_widget .vw-sum__mi.is-lv2 {
	color: var(--vw-at);
}
form#product_widget .vw-sum__mi.is-lv3 {
	color: #8A4F00;
}
form#product_widget .vw-sum__mt .plh-flag,
form#product_widget .vw-sum__mt .plh-flag img,
form#product_widget .vw-sum__mt .vw-sum__e,
form#product_widget .vw-sum__mt .vw-sum__e .plh-emo {
	width: 14px;
	height: 14px;
	font-size: 12px;
}
form#product_widget .vw-sum__pr {
	flex: none;
	font-size: 15px;
	line-height: 20px;
	font-weight: 600;
	color: var(--vw-ink);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
form#product_widget .vw-sum__chev {
	flex: none;
	width: 11px;
	height: 11px;
	color: var(--vw-muted);
	transition: transform .22s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-sum__hd[aria-expanded="true"] .vw-sum__chev {
	transform: rotate(180deg);
}
form#product_widget .vw-sum__h {
	margin: 0 0 2px;
	font-size: 12px;
	line-height: 16px;
	color: var(--vw-muted);
}
form#product_widget .vw-sum__none {
	margin: 0 0 6px;
	font-size: 13px;
	line-height: 18px;
	color: var(--vw-muted);
}
form#product_widget .vw-sum__det {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows .22s cubic-bezier(.2, 0, 0, 1), visibility 0s linear .22s;
}
form#product_widget .vw-sum__det.is-on {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows .22s cubic-bezier(.2, 0, 0, 1), visibility 0s;
}
form#product_widget .vw-sum__in {
	min-height: 0;
	overflow: hidden;
	padding: 0 16px;
}
form#product_widget .vw-sum__dl {
	margin: 0;
	padding: 0 0 4px;
	list-style: none;
}
form#product_widget .vw-sum__dl li {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 28px;
	margin: 0;
	font-size: 14px;
	line-height: 20px;
	color: var(--vw-ink);
	white-space: nowrap;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity .16s, transform .2s cubic-bezier(.2, 0, 0, 1);
}
form#product_widget .vw-sum__det.is-on .vw-sum__dl li {
	opacity: 1;
	transform: none;
	transition-delay: var(--dl, 0ms);
}
form#product_widget .vw-sum__e {
	flex: none;
	width: 20px;
	text-align: center;
	font-size: 15px;
}
form#product_widget .vw-sum__z {
	padding: 2px 0 12px;
}
/* Link-przycisk "Zmien wybor" / "Wyczysc" (24 px, pole dotyku wieksze przez ::before) */
form#product_widget .vw-2 .vw-zm {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: 24px;
	font-size: 13px;
	font-weight: 500;
	color: var(--vw-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
form#product_widget .vw-zm::before {
	content: "";
	position: absolute;
	inset: -10px -6px;
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-zm:hover {
		text-decoration-color: var(--vw-ln);
		text-decoration-thickness: 2px;
	}
}
form#product_widget .vw-2 button:focus {
	outline: none;
}
form#product_widget .vw-2 button:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
}
form#product_widget .card-body.vw-k2 {
	padding: 16px;
}
form#product_widget .vw-i {
	display: block;
	flex: none;
	width: 1em;
	height: 1em;
}
/* --- Pole (P2/P5): 52 px, etykieta 14/500, logo platformy 18 px --- */
form#product_widget .vw-f {
	gap: 10px;
	margin-bottom: 16px;
}
form#product_widget .vw-fw {
	position: relative;
}
form#product_widget .vw-fld {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 52px;
	padding: 0 4px 0 14px;
	border: 1px solid var(--vw-border);
	border-radius: var(--r-field);
	background: #FFFFFF;
	box-shadow: 0 1px 1px rgba(48, 52, 53, .04), 0 3px 6px rgba(48, 52, 53, .03);
	transition: border-color .18s, box-shadow .18s;
}
form#product_widget .vw-fld:focus-within,
form#product_widget .vw-fld.is-open {
	border-color: var(--vw-ln);
	box-shadow: 0 0 0 4px var(--vw-ring);
}
form#product_widget .vw-fld.is-err {
	border-color: #B3261E;
	box-shadow: 0 0 0 4px rgba(179, 38, 30, .10);
}
form#product_widget .vw-fld__lg {
	flex: none;
	display: flex;
	font-size: 18px;
	color: var(--vw-muted);
}
form#product_widget .is-instagram .vw-fld__lg,
form#product_widget .vw-lc__tile.is-instagram { color: var(--vw-ln); }
form#product_widget .is-tiktok .vw-fld__lg,
form#product_widget .vw-lc__tile.is-tiktok,
form#product_widget .is-twitter .vw-fld__lg,
form#product_widget .vw-lc__tile.is-twitter { color: #000000; }
form#product_widget .is-facebook .vw-fld__lg,
form#product_widget .vw-lc__tile.is-facebook { color: #1877F2; }
form#product_widget .is-youtube .vw-fld__lg,
form#product_widget .vw-lc__tile.is-youtube { color: #FF0000; }
/* style.css motywu: input:not(#multitags input)... ma specyficznosc ID - podwojona klasa */
form#product_widget .vw-fld input.vw-in.vw-in {
	flex: 1;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	box-shadow: none;
	color: var(--vw-ink);
	font-family: inherit;
	font-size: 16px; /* iOS bez zoomu */
	line-height: 20px;
}
/* Fokus = ramka + poswiata kontenera .vw-fld; globalne input:focus serwisu (kuplike newstyle.css: box-shadow .2rem !important)
   dawalo druga ramke wewnatrz pola */
form#product_widget .vw-fld input.vw-in.vw-in:focus{box-shadow:none !important;border:0 !important;background:transparent !important;color:var(--vw-ink) !important}
form#product_widget .vw-fld input.vw-in.vw-in::placeholder {
	color: var(--vw-muted);
	opacity: 1;
}
form#product_widget .vw-fld input.vw-in.vw-in[readonly] {
	color: var(--vw-muted);
}
form#product_widget .vw-2 .vw-x {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: calc(var(--r-field) - 2px);
	color: var(--vw-muted);
	font-size: 14px;
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-x:hover {
		color: var(--vw-ink);
	}
}
form#product_widget .vw-2 .vw-paste {
	flex: none;
	display: flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	margin: 2px 2px 2px 0;
	padding: 0 12px;
	border: 1px solid var(--vw-btn-border);
	border-radius: calc(var(--r-field) - 2px);
	background: #FFFFFF;
	font-size: 15px;
	font-weight: 500;
	color: var(--vw-ink);
}
form#product_widget .vw-paste .vw-i {
	font-size: 14px;
	color: var(--vw-muted);
}
form#product_widget .vw-2 .vw-paste:focus-visible,
form#product_widget .vw-2 .vw-paste:active {
	border-color: var(--vw-btn-hover);
}
form#product_widget .vw-spin {
	flex: none;
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 2px solid var(--vw-line);
	border-top-color: var(--vw-ln);
	border-radius: 50%;
	animation: vw-spin .7s linear infinite;
}
form#product_widget .vw-fld .vw-spin {
	margin-right: 13px;
}
form#product_widget .vw-spin--w {
	width: 20px;
	height: 20px;
	border-color: rgba(255, 255, 255, .35);
	border-top-color: var(--vw-on);
}
/* Lista wynikow: nakłada sie na tresc (bez skoku ukladu) */
form#product_widget .vw-drop {
	position: absolute;
	left: 0;
	right: 0;
	top: 58px;
	z-index: 5;
	padding: 6px;
	background: #FFFFFF;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-pop);
	box-shadow: 0 12px 32px rgba(48, 52, 53, .12);
	animation: vw-dd .16s cubic-bezier(.2, 0, 0, 1) both;
}
form#product_widget .vw-2 .vw-row {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	height: 60px;
	padding: 0 10px;
	border-radius: calc(var(--r-pop) - 2px);
	background: #FAF9F8;
	text-align: left;
}
form#product_widget .vw-row__t {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
form#product_widget .vw-row__t b,
form#product_widget .vw-pc__t b,
form#product_widget .vw-ph__t b {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 15px;
	font-weight: 500;
	line-height: 20px;
	color: var(--vw-ink);
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
form#product_widget .vw-row__t > span,
form#product_widget .vw-pc__t > span {
	font-size: 13px;
	line-height: 18px;
	padding-bottom: 1px;
	color: var(--vw-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-row__go {
	font-size: 12px;
	color: var(--vw-muted);
}
form#product_widget .vw-row .vw-vf {
	display: none;
}
form#product_widget .vw-vfw {
	display: inline-flex;
}
form#product_widget .vw-vf {
	font-size: 13px;
	color: #0095F6;
}
form#product_widget .vw-av {
	flex: none;
	display: block;
	border-radius: 50%;
	object-fit: cover;
	background: #F4F2F0;
	box-shadow: inset 0 0 0 1px rgba(48, 52, 53, .08);
}
form#product_widget .vw-av--36 { width: 36px; height: 36px; }
form#product_widget .vw-av--40 { width: 40px; height: 40px; }
form#product_widget .vw-av--56 { width: 56px; height: 56px; }
/* Komunikaty pod polem / pod siatka (13/18), blad #B3261E */
form#product_widget .vw-msgs:empty {
	display: none;
}
form#product_widget .vw-2 p.vw-msg {
	display: flex;
	gap: 8px;
	margin: 8px 0 0 2px;
	font-size: 13px !important;
	line-height: 18px;
	color: var(--vw-muted);
	text-align: left;
}
form#product_widget .vw-f p.vw-msg {
	margin-top: -2px;
}
form#product_widget .vw-2 p.vw-msg.is-err {
	color: #B3261E;
}
form#product_widget .vw-msg .vw-i {
	font-size: 13px;
	margin-top: 2px;
}
/* 1A: jedno zdanie pod polem (tryb nazwy) */
form#product_widget .vw-f p.vw-msg.vw-sub {
	color: var(--vw-muted);
}
/* 1A: "Masz juz link do posta?" / "Wpisz nazwe zamiast linku" - przycisk tekstowy 14/500, kreska 1 px ink (linki wariant 5),
   ikona 14 px w kolorze marki, pole dotyku 44 px (::before). Hover/focus: kreska marki 2 px. */
form#product_widget .vw-2 .vw-lsw {
	position: relative;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 24px;
	margin: -2px 0 0 2px;
	padding: 0;
	border: 0;
	background: none;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: var(--vw-ink);
	text-align: left;
	cursor: pointer;
}
form#product_widget .vw-lsw::before {
	content: "";
	position: absolute;
	inset: -10px -6px;
}
form#product_widget .vw-lsw__t {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--vw-ink);
	text-underline-offset: 3px;
	transition: text-decoration-color .12s;
}
form#product_widget .vw-lsw__i {
	display: inline-flex;
	font-size: 14px;
	color: var(--vw-ln);
}
form#product_widget .vw-lsw__i .vw-i {
	width: 14px;
	height: 14px;
}
form#product_widget .vw-2 .vw-lsw:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
	border-radius: 2px;
}
form#product_widget .vw-2 .vw-lsw:focus-visible .vw-lsw__t {
	text-decoration-color: var(--vw-ln);
	text-decoration-thickness: 2px;
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-lsw:hover .vw-lsw__t {
		text-decoration-color: var(--vw-ln);
		text-decoration-thickness: 2px;
	}
}
/* 1A: tryb linku (przelaczony) - ikona linku w kolorze marki */
form#product_widget .vw-fld.is-lm .vw-fld__lg {
	color: var(--vw-ln);
}
form#product_widget .vw-2 .vw-act {
	font-size: 13px;
	font-weight: 500;
	color: var(--vw-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* --- Karta linku (P5): 64 px, kafel 40 z zielonym ✓ --- */
form#product_widget .vw-lcs {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 16px;
}
form#product_widget .vw-lc {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 0 6px 0 12px;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-field);
	background: #FFFFFF;
	animation: vw-in .2s cubic-bezier(.2, 0, 0, 1) both;
}
form#product_widget .vw-lc__tile {
	position: relative;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--r-tile);
	background: #F4F2F0;
	font-size: 20px;
}
form#product_widget .vw-lc__tile.is-instagram { background: var(--vw-tint); }
form#product_widget .vw-lc__tile.is-facebook { background: #E8F0FE; }
form#product_widget .vw-lc__tile.is-youtube { background: #FDECEC; }
form#product_widget .vw-lc__ok {
	position: absolute;
	right: -5px;
	bottom: -5px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border: 2px solid #FFFFFF;
	border-radius: 50%;
	background: #17702F;
	color: #FFFFFF;
	font-size: 8px;
}
form#product_widget .vw-lc__t {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
	text-align: left;
}
form#product_widget .vw-lc__t b {
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: var(--vw-ink);
}
form#product_widget .vw-lc__t span {
	font-size: 13px;
	line-height: 18px;
	padding-bottom: 1px;
	color: var(--vw-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
form#product_widget .vw-lc__q {
	flex: none;
	font-size: 13px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	color: var(--vw-ink);
	white-space: nowrap;
}
form#product_widget .vw-2 .vw-ghost {
	position: relative;
	flex: none;
	height: 32px;
	padding: 0 10px;
	border: 1px solid var(--vw-btn-border);
	border-radius: calc(var(--r-field) - 2px);
	background: #FFFFFF;
	font-size: 13px;
	font-weight: 500;
	line-height: 30px;
	color: var(--vw-ink);
	transition: border-color .15s;
}
form#product_widget .vw-ghost::before {
	content: "";
	position: absolute;
	inset: -6px -4px;
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-ghost:hover {
		border-color: var(--vw-btn-hover);
	}
}
form#product_widget .vw-2 .vw-add {
	display: flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	font-size: 14px;
	font-weight: 500;
	color: var(--vw-ink);
}
form#product_widget .vw-add .vw-i {
	font-size: 13px;
}
/* --- Profil: karta obserwujacych (awatar 56 + liczby) / naglowek uslug na posty (36) --- */
form#product_widget .vw-prof {
	margin-bottom: 16px;
}
form#product_widget .vw-pc {
	padding: 12px;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-tile);
}
form#product_widget .vw-pc__top,
form#product_widget .vw-ph {
	display: flex;
	align-items: center;
	gap: 12px;
}
form#product_widget .vw-ph {
	padding: 8px 10px 8px 12px;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-tile);
}
form#product_widget .vw-pc__t,
form#product_widget .vw-ph__t {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	text-align: left;
}
form#product_widget .vw-pc__st {
	display: grid;
	margin: 12px 0 0;
	padding: 10px 0 0;
	border-top: 1px solid var(--vw-line);
	text-align: center;
}
form#product_widget .vw-pc__st div {
	display: flex;
	flex-direction: column-reverse;
}
form#product_widget .vw-pc__st dd {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 20px;
	font-variant-numeric: tabular-nums;
	color: var(--vw-ink);
}
form#product_widget .vw-pc__st dt {
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	color: var(--vw-muted);
}
/* --- Siatka postow: zawsze 3 kolumny, IG 1:1, TikTok 9:16, YouTube 16:9 --- */
form#product_widget .vw-feed {
	margin-bottom: 16px;
}
form#product_widget .vw-fh {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 24px;
	margin-bottom: 8px;
}
form#product_widget .vw-fc {
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	font-variant-numeric: tabular-nums;
	color: var(--vw-ink);
}
form#product_widget .vw-fc i {
	font-style: normal;
	font-weight: 400;
	color: var(--vw-muted);
}
form#product_widget .vw-2 p.vw-fl {
	margin: 0;
	padding: 16px 20px;
	border: 1px solid var(--vw-line);
	border-radius: var(--r-tile);
	font-size: 14px !important;
	line-height: 20px;
	color: var(--vw-muted);
	text-align: left;
}
form#product_widget .vw-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 4px;
}
form#product_widget .vw-2 .vw-pt {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: calc(var(--r-tile) - 2px);
	background: #F4F2F0;
	overflow: hidden;
}
form#product_widget .vw-grid.is-tiktok .vw-pt { aspect-ratio: 9 / 16; }
form#product_widget .vw-grid.is-youtube .vw-pt { aspect-ratio: 16 / 9; }
form#product_widget .vw-pt img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	opacity: 0;
	transition: opacity .2s;
}
form#product_widget .vw-pt.is-ld img {
	opacity: 1;
}
form#product_widget .vw-pt.is-hid img {
	filter: grayscale(1);
	opacity: .45;
}
form#product_widget .vw-pt::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 44%;
	background: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
	pointer-events: none;
	z-index: 1;
}
form#product_widget .vw-pt::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: calc(var(--r-tile) - 2px);
	box-shadow: inset 0 0 0 0 var(--vw-ln);
	transition: box-shadow .16s cubic-bezier(.2, 0, 0, 1);
	pointer-events: none;
	z-index: 2;
}
form#product_widget .vw-pt.is-on::after {
	box-shadow: inset 0 0 0 3px var(--vw-ln);
}
form#product_widget .vw-2 .vw-pt:focus-visible {
	outline-offset: 1px;
}
form#product_widget .vw-pt__ty {
	position: absolute;
	top: 7px;
	right: 7px;
	z-index: 1;
	width: 16px;
	height: 16px;
	color: #FFFFFF;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .45));
}
form#product_widget .vw-pt__car {
	width: 15px;
	height: 15px;
}
form#product_widget .vw-pt__lc {
	position: absolute;
	left: 7px;
	bottom: 6px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: #FFFFFF;
	font-variant-numeric: tabular-nums;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}
form#product_widget .vw-pt__lc .vw-i {
	font-size: 10px;
}
form#product_widget .vw-pt__ck {
	position: absolute;
	top: 7px;
	left: 7px;
	z-index: 1;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .35);
	box-shadow: inset 0 0 0 1.5px #FFFFFF, 0 1px 3px rgba(0, 0, 0, .35);
}
form#product_widget .vw-pt__q {
	position: absolute;
	top: 6px;
	left: 6px;
	z-index: 3;
	min-width: 28px;
	height: 22px;
	padding: 0 7px;
	border-radius: calc(var(--r-tile) - 2px);
	background: var(--vw-brand);
	color: var(--vw-on);
	font-size: 12px;
	font-weight: 500;
	line-height: 22px;
	font-variant-numeric: tabular-nums;
	text-align: center;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
	animation: vw-q .24s cubic-bezier(.2, 0, 0, 1) both;
}
@keyframes vw-q { from { opacity: .2; transform: translateY(-4px) scale(.9); } to { opacity: 1; transform: none; } }
form#product_widget .vw-pt.is-sh {
	animation: vw-sh .32s ease;
}
@keyframes vw-sh { 20% { transform: translateX(-4px); } 40% { transform: translateX(4px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(2px); } }
@keyframes vw-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
form#product_widget .vw-2 .vw-more {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 44px;
	margin-top: 8px;
	border: 1px solid var(--vw-btn-border);
	border-radius: var(--r-cta);
	background: #FFFFFF;
	font-size: 14px;
	font-weight: 500;
	color: var(--vw-ink);
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-more:hover {
		border-color: var(--vw-btn-hover);
	}
}
form#product_widget .vw-cm {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 16px;
}
form#product_widget .vw-cm textarea {
	min-height: 120px;
}
/* --- Stopka BT1: "Powrot" 52x52 + CTA flex:1 w jednym rzedzie (bez paska sticky) --- */
form#product_widget .vw-foot {
	display: flex;
	align-items: stretch;
	gap: 8px;
}
form#product_widget .vw-foot .quantity,
form#product_widget .vw-foot .woocommerce-variation.single_variation {
	display: none !important;
}
/* Kontener CTA z szablonu WC (#add_to_cart, d-block) zajmuje reszte rzedu */
form#product_widget .vw-foot > .woocommerce-variation-add-to-cart {
	flex: 1 1 auto;
	min-width: 0;
}
form#product_widget .vw-2 .vw-add2 {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 52px;
	padding: 0 12px;
	border-radius: var(--r-cta);
	background: var(--vw-brand);
	color: var(--vw-on);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
	text-align: center;
	transition: background-color .2s, color .2s;
}
form#product_widget .vw-add2__tx {
	min-width: 0;
}
/* Ikona CTA I1 (FA7 cart-shopping f07a, przed tekstem): pole 20x20, glif 16 px, odstep 8 (gap przycisku).
   To samo pole trzyma spinner (dodawanie) i check (sukces). Podmiana ikony: tylko .vw-add2__ico w variation-add-to-cart-button.php */
form#product_widget .vw-add2__ico {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
}
form#product_widget .vw-add2__ico .fa-solid {
	font-size: 16px;
	line-height: 1;
}
form#product_widget .vw-add2__cart.is-go {
	animation: vw-add2-roll .28s ease-out;
}
form#product_widget .vw-add2__ok {
	animation: vw-add2-ok .24s ease-out;
}
@keyframes vw-add2-roll {
	0% { transform: none; }
	45% { transform: translateX(4px); }
	100% { transform: none; }
}
@keyframes vw-add2-ok {
	0% { transform: scale(.4); opacity: 0; }
	100% { transform: scale(1); opacity: 1; }
}
/* Nieaktywne = wariant A (04.11, krok2-pole r1): przycisk-instrukcja, nie "wylaczony" - tlo marka @ .10, tekst ciemny akcent
   marki (pl #B84300 na #FFEFE6 = 4,9:1; kuplike #5A14C9 na #F1E8FF ok. 7:1), strzalka f062. Klik = przewiniecie + fokus pola
   (onAddClick). Wczesniej (BT1): tlo #F4F2F0, tekst #5F6366. */
form#product_widget .vw-2 .vw-add2.is-off {
	background: var(--vw-off-bg, var(--vw-mb-bg));
	color: var(--vw-off-tx, var(--vw-mb-tx));
	cursor: pointer;
}
form#product_widget .vw-2 .vw-add2.is-off .vw-add2__ico {
	display: var(--vw-off-ic, inline-flex);
}
/* D (04.11 r2): przycisk w karcie na desktopie na razie jak pasek A (brzoskwiniowy). Gdy wlasciciel wybierze "wariant A
   tylko na mobile", szary BT1 w karcie wraca JEDNA regula (odkomentuj):
@media (min-width: 1024px) { form#product_widget .vw-2 .vw-add2.single_direct_to_cart_button.is-off { --vw-off-bg: #F4F2F0; --vw-off-tx: var(--vw-muted); --vw-off-ic: none; } }
*/
form#product_widget .vw-add2__up {
	font-size: 16px;
}
form#product_widget .vw-add2.is-busy {
	cursor: progress;
}
form#product_widget .vw-2 .vw-add2.is-ok {
	background: #E6F4EA;
	color: #17702F;
	cursor: default;
	transition: none; /* wejscie w sukces od razu (bez zielonego tekstu na pomaranczu); wyjscie z przejsciem bazowym */
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-add2:not(.is-off):not(.is-ok):hover {
		background: var(--vw-ah);
	}
}
form#product_widget .vw-add2 .vw-spin--w {
	width: 18px;
	height: 18px;
}
form#product_widget .vw-2 .vw-back {
	flex: none;
	order: -1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 1px solid var(--vw-btn-border);
	border-radius: var(--r-cta);
	background: #FFFFFF;
	color: var(--vw-ink);
	font-size: 15px;
}
form#product_widget .vw-back .vw-i {
	font-size: 15px;
}
/* Hover i focus zmieniaja tylko obwodke (focus z klawiatury dodatkowo obrys z .vw-2 button:focus-visible) */
form#product_widget .vw-2 .vw-back:focus-visible {
	border-color: var(--vw-btn-hover);
}
@media (hover: hover) {
	form#product_widget .vw-2 .vw-back:hover {
		border-color: var(--vw-btn-hover);
	}
}
/* Waskie telefony (320 px): najdluzsze napisy ("Dodajemy do koszyka…", "Ustaw profil jako publiczny") w 1 linii;
   dluzszy tekst zawinie sie w 2 linie (2 x 18 px miesci sie w 52 px), bez wychodzenia poza przycisk */
@media (max-width: 359px) {
	form#product_widget .vw-2 .vw-add2 {
		padding: 0 4px;
		font-size: 14px;
		line-height: 18px;
	}
}
@media (min-width: 768px) {
	form#product_widget .vw-2 .vw-sum__hd {
		padding: 12px 24px;
	}
	form#product_widget .vw-sum__in {
		padding: 0 24px;
	}
	form#product_widget .card-body.vw-k2 {
		padding: 20px 24px 24px;
	}
	form#product_widget .vw-grid {
		gap: 6px;
	}
}
@media (prefers-reduced-motion: reduce) {
	form#product_widget .vw-sum__det,
	form#product_widget .vw-sum__det.is-on,
	form#product_widget .vw-sum__dl li,
	form#product_widget .vw-sum__chev,
	form#product_widget .vw-sum__hd,
	form#product_widget .vw-fld,
	form#product_widget .vw-drop,
	form#product_widget .vw-lc,
	form#product_widget .vw-pt img,
	form#product_widget .vw-pt::after,
	form#product_widget .vw-pt.is-sh,
	form#product_widget .vw-pt__q,
	form#product_widget .vw-add2,
	form#product_widget .vw-add2__cart.is-go,
	form#product_widget .vw-add2__ok {
		transition: none !important;
		animation: none !important;
	}
	form#product_widget .vw-sum__det.is-on .vw-sum__dl li {
		transition-delay: 0ms !important;
	}
	form#product_widget .vw-spin {
		animation-duration: 2.4s;
	}
}

/* Przyciski biale i bez tla (2026-10-23): spoczynek #EDEDED, hover i focus #FF5D00. */
form#product_widget button.btn.btn-outline-dark {
	border-color: var(--vw-btn-border);
}
form#product_widget button.btn.btn-outline-dark:not(:disabled):hover,
form#product_widget button.btn.btn-outline-dark:focus-visible {
	border-color: var(--vw-btn-hover);
}

/* Ruch ograniczony: stan od razu (kafle, przelacznik, licznik, arkusze, pasek mobilny) */
@media (prefers-reduced-motion: reduce) {
	form#product_widget .vw-loc__tile,
	form#product_widget .vw-loc__txt,
	form#product_widget .vw-flag,
	form#product_widget .vw-qf,
	form#product_widget .vw-qf__chev,
	form#product_widget .vw-veil,
	form#product_widget .vw-qp,
	form#product_widget .vw-qt,
	form#product_widget .vw-qt__tile,
	form#product_widget .vw-qt__em,
	form#product_widget .vw-qt__b,
	form#product_widget .vw-qt__bdg,
	form#product_widget .vw-qt__fx i,
	form#product_widget .vw-qt__hs i,
	form#product_widget .vw-qt__bdg::after,
	form#product_widget .vw-flw,
	form#product_widget .vw-ring,
	form#product_widget .vw-ring circle,
	form#product_widget .vw-qx-enter-active,
	form#product_widget .vw-qx-leave-active,
	form#product_widget .vw-ad__row,
	form#product_widget .vw-ad__pr,
	form#product_widget .vw-sw,
	form#product_widget .vw-sw__fill,
	form#product_widget .vw-sw__kn,
	form#product_widget .vw-dg,
	form#product_widget .vw-st,
	form#product_widget .vw-col,
	form#product_widget .vw-info,
	form#product_widget .vw-ib,
	form#product_widget .vw-cta,
	form#product_widget .vw-cta__ar,
	form#product_widget .vw-cta__sp,
	form#product_widget .vw-cta__sp svg {
		transition: none !important;
		animation: none !important;
	}
	form#product_widget .vw-loc__tile:active,
	form#product_widget .vw-qt:active,
	form#product_widget .vw-cta:active {
		transform: none;
	}
	form#product_widget .vw-ad__row:active .vw-sw__kn {
		width: 20px;
	}
	form#product_widget .vw-ad__row.is-on:active .vw-sw__kn {
		left: 18px;
	}
}

/* "Zamow ponownie" (O1, 28.10): cicha linia nad karta 13/400 #5F6366, "Wyczysc" jak link w tresci (kreska ink, hover
   pomaranczowa), pole dotyku 44 px. Notki pod polami (ilosc, lokalizacja, jakosc) z ikona i, kolor neutralny. */
form#product_widget .vw-ro {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	min-height: 24px;
	margin: 0 0 10px;
	padding: 0 4px;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--vw-muted);
}
form#product_widget .vw-ro__ic {
	flex: none;
	width: 12px;
	height: 12px;
	margin-top: 4px; /* srodek pierwszego wiersza (13 px x 1.4 = 18 px), takze przy 2 wierszach bledu */
}
form#product_widget .vw-ro__t {
	flex: 1 1 auto;
	min-width: 0;
}
form#product_widget .vw-ro__x {
	flex: none;
	margin: -13px -4px;
	padding: 13px 4px;
	height: auto;
	min-height: 44px;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--vw-ink);
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: var(--vw-ink);
	cursor: pointer;
	transition: text-decoration-color .12s;
}
form#product_widget .vw-ro__x:hover,
form#product_widget .vw-ro__x:focus-visible {
	color: var(--vw-ink);
	background: none;
	text-decoration-color: var(--vw-ln);
	text-decoration-thickness: 2px;
}
form#product_widget .vw-ro__x:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
}
form#product_widget .vw-ro-note {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--vw-muted);
}
form#product_widget .vw-ro-note__ic {
	flex: none;
	width: 14px;
	height: 14px;
	margin-top: 2px;
}
@media (prefers-reduced-motion: reduce) {
	form#product_widget .vw-ro__x {
		transition: none;
	}
}

/* "Powieksz pakiet" w kroku 1 (wariant A, decyzja wlasciciela 29.10; kanwa https://claude.ai/artifact/6sS2A2jeRSCSWtu2TvWTUK):
   cicha linia pod polem ilosci (.vw-qw = pole + lista desktop przypieta pod polem). Wiersz min. 44 px, margin -8/-12 (odstep
   sekcji 12 px), tekst 14/500 ink, kwota 14/400 #5F6366 do prawej (wyrownana z cena w polu: padding prawy 40 = chevron + odstep).
   Po kliknieciu: check + tekst #17702F, "Cofnij" #5F6366 podkreslone. Wejscie 0fr -> 1fr 200 ms (Vue <transition name="vw-upx">);
   prefers-reduced-motion i panel Wyglad (grupa "ad", vw-no-ad) bez animacji. 390 px: zawsze 1 wiersz (wielokropek). */
form#product_widget .vw-qw {
	position: relative;
}
form#product_widget .vw-up {
	display: grid;
	grid-template-rows: 1fr;
	margin: -8px 0 -12px;
}
form#product_widget .vw-up__in {
	min-height: 0;
	min-width: 0;
}
form#product_widget .vw-up__btn,
form#product_widget .vw-up__ok {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 44px;
	padding: 0 40px 0 14px;
	border-radius: calc(var(--r-field) - 2px);
	font-size: 14px;
	line-height: 20px;
	white-space: nowrap;
}
form#product_widget .vw-up__btn {
	color: var(--vw-ink);
	background: none;
	text-align: left;
}
form#product_widget .vw-up__btn:hover,
form#product_widget .vw-up__btn:focus,
form#product_widget .vw-up__btn:active {
	color: var(--vw-ink);
	background: none;
	box-shadow: none;
}
form#product_widget .vw-up__ar,
form#product_widget .vw-up__ck {
	flex: none;
	width: 16px;
	text-align: center;
	line-height: 20px;
}
form#product_widget .vw-up__ar {
	font-size: 11px;
	color: var(--vw-ln);
}
form#product_widget .vw-up__ck {
	font-size: 12px;
	color: #17702F;
}
form#product_widget .vw-up__t {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: transparent;
	transition: text-decoration-color .12s;
}
form#product_widget .vw-up__p {
	flex: none;
	margin-left: auto;
	padding-left: 8px;
	color: var(--vw-muted);
	font-weight: 400;
	font-variant-numeric: tabular-nums;
}
@media (hover: hover) {
	form#product_widget .vw-up__btn:hover .vw-up__t {
		text-decoration-color: var(--vw-ink);
	}
}
form#product_widget .vw-up__btn:focus {
	outline: none;
}
form#product_widget .vw-up__btn:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
}
form#product_widget .vw-up__ok {
	color: #17702F;
}
form#product_widget .vw-up__ok .vw-up__t {
	text-decoration: none;
}
form#product_widget .vw-up__undo {
	flex: none;
	margin: 0 0 0 auto;
	min-height: 44px;
	padding: 0 2px;
	color: var(--vw-muted);
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
form#product_widget .vw-up__undo:hover,
form#product_widget .vw-up__undo:focus,
form#product_widget .vw-up__undo:active {
	background: none;
	box-shadow: none;
	color: var(--vw-muted);
}
@media (hover: hover) {
	form#product_widget .vw-up__undo:hover {
		color: var(--vw-ink);
	}
}
form#product_widget .vw-up__undo:focus {
	outline: none;
}
form#product_widget .vw-up__undo:focus-visible {
	outline: 2px solid var(--vw-ink);
	outline-offset: 2px;
	border-radius: 4px;
}
/* Wejscie: wysokosc od 0 (bez skoku - margines startowy znosi odstep sekcji), przyciecie tylko na czas animacji
   (obrys fokusu poza wierszem nie jest uciety). */
form#product_widget .vw-up.vw-upx-enter-active {
	animation: vw-upin .2s cubic-bezier(.2, 0, 0, 1) both;
}
form#product_widget .vw-up.vw-upx-enter-active .vw-up__in {
	overflow: hidden;
}
@keyframes vw-upin {
	from { grid-template-rows: 0fr; margin: -12px 0 0; opacity: 0; }
	to { grid-template-rows: 1fr; margin: -8px 0 -12px; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	form#product_widget .vw-up.vw-upx-enter-active,
	form#product_widget .vw-up__t {
		animation: none !important;
		transition: none !important;
	}
}

/* Wyglad widgetu (29.10, panel "Opcje widgetu > Wyglad", CurdeWidgetLook::form_classes()): wylaczone grupy mikroanimacji.
   Klasy vw-no-<grupa> na form#product_widget; stan koncowy od razu (jak przy prefers-reduced-motion, ktory dziala niezaleznie).
   Przejscia funkcjonalne (arkusz ilosci, lista, przenikanie kafli Q-A, spinner ladowania) zostaja. */
form#product_widget.vw-no-a1 .vw-qt__tile,
form#product_widget.vw-no-a1 .vw-qt__bdg,
form#product_widget.vw-no-a1 .vw-qt__b,
form#product_widget.vw-no-a1 .vw-qt__em {
	animation: none !important;
}
form#product_widget.vw-no-a1 .vw-qt:active,
form#product_widget.vw-no-a1 .vw-qt__tile:active {
	transform: none;
}
form#product_widget.vw-no-w1 .vw-qt__fx i {
	animation: none !important;
	opacity: 0 !important;
}
form#product_widget.vw-no-h6 .vw-qt__hs i,
form#product_widget.vw-no-h6 .vw-qt__bdg::after {
	animation: none !important;
	opacity: 0 !important;
}
form#product_widget.vw-no-c2 .vw-ring,
form#product_widget.vw-no-c2 .vw-ring circle,
form#product_widget.vw-no-c2 .vw-flag,
form#product_widget.vw-no-c2 .vw-flw {
	animation: none !important;
	transition: none !important;
}
form#product_widget.vw-no-ad .vw-ad__row,
form#product_widget.vw-no-ad .vw-ad__pr,
form#product_widget.vw-no-ad .vw-sw,
form#product_widget.vw-no-ad .vw-sw__fill,
form#product_widget.vw-no-ad .vw-sw__kn,
form#product_widget.vw-no-ad .vw-dg,
form#product_widget.vw-no-ad .vw-st,
form#product_widget.vw-no-ad .vw-col,
form#product_widget.vw-no-ad .vw-up.vw-upx-enter-active {
	animation: none !important;
	transition: none !important;
}
form#product_widget.vw-no-ad .vw-ad__row:active .vw-sw__kn {
	width: 20px;
}
form#product_widget.vw-no-ad .vw-ad__row.is-on:active .vw-sw__kn {
	left: 18px;
}
form#product_widget.vw-no-cta .vw-cta,
form#product_widget.vw-no-cta .vw-cta__ar,
form#product_widget.vw-no-cta .vw-cta__sp,
form#product_widget.vw-no-cta .vw-add2,
form#product_widget.vw-no-cta .vw-add2__cart.is-go,
form#product_widget.vw-no-cta .vw-add2__ok {
	animation: none !important;
	transition: none !important;
}
form#product_widget.vw-no-cta .vw-cta:active {
	transform: none;
}
/* "Przejdz dalej" bez ruchu: strzalka znika, spinner od razu widoczny i dalej sie kreci (sygnal ladowania). */
form#product_widget.vw-no-cta .vw-cta.is-go .vw-cta__ar {
	opacity: 0;
}
form#product_widget.vw-no-cta .vw-cta.is-go .vw-cta__sp {
	opacity: 1;
}
/* Flagi "Emoji flag" (panel Wyglad): flaga z fontu emoji bez przycinania do kola i bez obrysu. */
form#product_widget.vw-fl-emoji .vw-flag {
	overflow: visible;
	border-radius: 0;
}
form#product_widget.vw-fl-emoji .vw-flag::after {
	display: none;
}
form#product_widget.vw-fl-emoji .vw-flag__e {
	font-size: 24px;
	line-height: 24px;
}

/* ===== Pasek sticky zakupu (29.10, plansza sticky-sb: SB10 / SB11 / SB12 + desktop) =====
   Wlacza go klasa vw-sb na #product_widget (CurdeWidgetLook::form_classes, preset vw-sb-<kod>). Telefon i tablet (< 1024 px):
   blok .vw-buy (krok 1: Razem + Przejdz dalej) i stopka .vw-foot (krok 2: Powrot + Dodaj do koszyka) sa paskiem fixed na dole
   ekranu - dol karty G1 / BT1 znika z karty, przycisk jest tylko w pasku i nic sie nie chowa przy przewijaniu. Wyjatek:
   klasa is-kb (klawiatura otwarta, productOptions.js initSticky). Desktop (>= 1024 px): .vw-dbar pod headerem. */
form#product_widget .vw-tot small.vw-tot__q,
form#product_widget .vw-cta__vl,
form#product_widget .vw-cta__pr,
form#product_widget .vw-dbar {
	display: none;
}
form#product_widget .vw-cta__lb {
	display: inline-grid;
	min-width: 0;
}
/* Obie etykiety w jednej komorce: szerokosc = dluzsza (stala), zmiana = przenikanie 150 ms */
form#product_widget .vw-cta__t {
	grid-area: 1 / 1;
	justify-self: center;
	white-space: nowrap;
	transition: opacity .15s, visibility .15s;
}
form#product_widget .vw-cta__t:not(.is-on) {
	opacity: 0;
	visibility: hidden;
}
form#product_widget .vw-end {
	display: block;
	height: 1px;
	margin-top: -1px;
	pointer-events: none;
}
form#product_widget.vw-sb .vw-k1 .vw-h:focus:not(:focus-visible) {
	outline: none;
}
@media (max-width: 1023px) {
	/* Miejsce pod paskiem: zawsze w trybach always i kopii (od wczytania = bez przeskoku), w trybie scroll dopiero po
	   pojawieniu sie paska (vw-sb-go; dopisane na dole strony nie przesuwa tresci nad nim). */
	body:has(form#product_widget:is(.vw-sbm-always, .vw-sbc, .vw-sbm-scroll.vw-sb-go)) {
		padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
	}
	body:has(form#product_widget.vw-sb-sb12:is(.vw-sbm-always, .vw-sbc, .vw-sbm-scroll.vw-sb-go)) {
		padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
	}
	body:has(form#product_widget.vw-sb-sb16:is(.vw-sbm-always, .vw-sbc, .vw-sbm-scroll.vw-sb-go)) {
		padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
	}
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar),
	form#product_widget :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 980; /* pod headerem i szuflada (990+), pod arkuszami widgetu (1001+) i side cartem */
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: 8px;
		margin: 0 !important;
		padding: 8px max(16px, calc((100% - 640px) / 2)) calc(8px + env(safe-area-inset-bottom, 0px));
		background: #FFFFFF;
		box-shadow: 0 -1px 0 var(--vw-btn-border, #EDEDED), 0 -6px 16px rgba(48, 52, 53, .06);
		transition: transform .2s cubic-bezier(.2, 0, 0, 1), visibility 0s linear 0s;
	}
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar).is-kb,
	form#product_widget :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar).is-kb {
		transform: translateY(calc(100% + 24px));
		visibility: hidden;
		transition: transform .2s cubic-bezier(.4, 0, 1, 1), visibility 0s linear .2s;
	}
	/* Krok 2, dol w pasku (vw-sbf): ostatni element karty bez marginesu - zostaje sam padding karty (bylo 16 + 16 px pustego pasa) */
	form#product_widget.vw-sbf .vw-k2 > :has(+ .vw-foot) {
		margin-bottom: 0;
	}
	form#product_widget :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) > .woocommerce-variation-add-to-cart {
		flex: 1 1 0;
	}
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
		height: 48px;
		padding: 0 12px;
	}
	/* Blad przejscia: komunikat nad rzedem w pasku */
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar).has-err {
		margin-bottom: 0 !important;
	}
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta-err {
		position: static;
		order: -1;
		flex: 1 0 100%;
		padding: 6px 10px;
		border: 1px solid #F4C7C1;
		border-radius: 6px;
		background: #FDEDEB;
		font-size: 13px !important;
		line-height: 18px !important;
		text-align: left;
		white-space: normal;
	}
	/* Cena tylko dla czytnika (SB11 bez ceny, SB12 cena w przycisku) - aria-live "Razem" zostaje */
	form#product_widget.vw-sb-sb11 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot,
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
		border: 0;
	}

	/* SB10: kolumna 140 px (ilosc 13 px nad cena 18 px) + przycisk 52 px; pasek 68 px w obu krokach.
	   SB16: ten sam uklad w plywajacej bialej karcie (kolumna 116 px). */
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot {
		flex: none;
		display: flex;
		flex-direction: column;
		gap: 2px;
		width: 140px;
	}
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot small:not(.vw-tot__q) {
		display: none;
	}
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot small.vw-tot__q {
		display: block;
		font-size: 13px;
		line-height: 16px;
		color: var(--vw-muted);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot .vw-tl {
		--vw-rh: 22px;
		height: 22px;
		font-size: 18px;
		line-height: 22px;
		letter-spacing: 0;
	}
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot :is(.vw-roll, .vw-dg) {
		height: 22px;
	}
	form#product_widget:is(.vw-sb-sb10, .vw-sb-sb16) :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta {
		height: 52px;
	}
	form#product_widget.vw-sb-sb16 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot {
		width: 116px;
	}
	/* SB16: biala karta 16 px od krawedzi i 12 px nad safe area, promien 12, cien + linia #EDEDED */
	form#product_widget.vw-sb-sb16 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar),
	form#product_widget.vw-sb-sb16 :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) {
		left: max(16px, calc((100% - 640px) / 2));
		right: max(16px, calc((100% - 640px) / 2));
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		padding: 8px 8px 8px 14px;
		border-radius: 12px;
		box-shadow: 0 8px 24px rgba(48, 52, 53, .18), 0 2px 6px rgba(48, 52, 53, .10), 0 0 0 1px var(--vw-btn-border, #EDEDED);
	}
	form#product_widget.vw-sb-sb16 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar).is-kb,
	form#product_widget.vw-sb-sb16 :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar).is-kb {
		transform: translateY(calc(100% + 48px));
	}

	/* SB11: sam przycisk na cala szerokosc (48 px), krok 2 jak BT1 */

	/* SB12: bez tla paska, plywajacy przycisk 52 px (promien 12, cien), 16 px od krawedzi, 12 px nad safe area;
	   cena w przycisku po prawej za kreska */
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar),
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) {
		padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		background: transparent;
		box-shadow: none;
		pointer-events: none;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) > *,
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) > * {
		pointer-events: auto;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta {
		justify-content: space-between;
		gap: 10px;
		height: 52px;
		padding: 0 18px;
		border-radius: 12px;
		box-shadow: 0 8px 24px rgba(48, 52, 53, .22), 0 2px 6px rgba(48, 52, 53, .12);
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta__lb {
		flex: 1 1 auto;
		text-align: left;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta__t {
		justify-self: start;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta__vl {
		display: block;
		flex: none;
		width: 1px;
		height: 22px;
		background: rgba(255, 255, 255, .45);
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta__pr {
		display: block;
		flex: none;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta__pr .vw-tl {
		--vw-rh: 20px;
		height: 20px;
		color: var(--vw-on);
		font-size: 16px;
		line-height: 20px;
		letter-spacing: 0;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta__pr :is(.vw-roll, .vw-dg) {
		height: 20px;
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) .vw-back {
		border-color: #FFFFFF;
		border-radius: 12px;
		box-shadow: 0 8px 24px rgba(48, 52, 53, .18), 0 2px 6px rgba(48, 52, 53, .10);
	}
	form#product_widget.vw-sb-sb12 :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) .vw-add2 {
		border-radius: 12px;
		box-shadow: 0 8px 24px rgba(48, 52, 53, .22), 0 2px 6px rgba(48, 52, 53, .12);
	}
}
@media (max-width: 374px) {
	form#product_widget.vw-sb-sb10 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot {
		width: 130px;
	}
	form#product_widget.vw-sb-sb16 :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-tot {
		width: 108px;
	}
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) {
		gap: 6px;
	}
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar) .vw-cta {
		padding: 0 10px;
	}
}

/* Tryby pokazywania (30.10). Kopia (vw-mbar: out, header, card) i tryb scroll przed pierwszym przewinieciem: stan ukryty =
   zjazd w dol + przezroczystosc (fixed, zero CLS), wejscie 200 ms, wyjscie 200 ms; tryb header jak header H2 (.25s ease). */
@media (max-width: 1023px) {
	form#product_widget .vw-mbar {
		transition: transform .2s cubic-bezier(0, 0, .2, 1), opacity .2s cubic-bezier(0, 0, .2, 1), visibility 0s;
	}
	form#product_widget .vw-mbar:not(.is-show),
	form#product_widget.vw-sbm-scroll:not(.vw-sb-go) :is(.vw-buy, .vw-foot) {
		transform: translateY(calc(100% + 24px));
		opacity: 0;
		visibility: hidden;
		transition: transform .2s cubic-bezier(.4, 0, 1, 1), opacity .2s cubic-bezier(.4, 0, 1, 1), visibility 0s linear .2s;
	}
	form#product_widget.vw-sbm-scroll.vw-sb-go :is(.vw-buy, .vw-foot):not(.is-kb) {
		transition: transform .2s cubic-bezier(0, 0, .2, 1), opacity .2s cubic-bezier(0, 0, .2, 1), visibility 0s;
	}
	form#product_widget.vw-sbm-header .vw-mbar,
	form#product_widget.vw-sbm-header .vw-mbar:not(.is-show) {
		transition-duration: .25s, .25s, 0s;
		transition-timing-function: ease;
	}
	form#product_widget.vw-sbm-header .vw-mbar:not(.is-show) {
		transition-delay: 0s, 0s, .25s;
	}
}
@media (min-width: 1024px) {
	form#product_widget .vw-mbar {
		display: none !important;
	}
}

/* Desktop (>= 1024 px): pasek 56 px pod headerem 84 px (fixed = zero CLS), widoczny tylko, gdy dol karty wyjedzie nad
   header (dbarOn, IntersectionObserver na .vw-end). Wejscie 200 ms translateY + opacity spod headera, wyjscie 160 ms. */
@media (min-width: 1024px) {
	form#product_widget .vw-dbar {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		top: calc(var(--plh-top, 0px) + 84px);
		z-index: 980;
		height: 56px;
		background: #FFFFFF;
		box-shadow: 0 1px 0 var(--vw-btn-border, #EDEDED), 0 6px 16px rgba(48, 52, 53, .06);
		transform: translateY(-100%);
		opacity: 0;
		visibility: hidden;
		transition: transform .16s cubic-bezier(.4, 0, 1, 1), opacity .16s cubic-bezier(.4, 0, 1, 1), visibility 0s linear .16s;
	}
	form#product_widget .vw-dbar.is-on {
		transform: none;
		opacity: 1;
		visibility: visible;
		transition: transform .2s cubic-bezier(0, 0, .2, 1), opacity .2s cubic-bezier(0, 0, .2, 1), visibility 0s;
	}
	form#product_widget .vw-dbar__c {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 24px;
		max-width: 1280px;
		height: 100%;
		margin: 0 auto;
		padding: 0 32px;
	}
	form#product_widget .vw-dbar__l {
		display: flex;
		flex-direction: column;
		min-width: 0;
	}
	form#product_widget .vw-dbar__nm {
		color: var(--vw-ink);
		font-size: 15px;
		font-weight: 600;
		line-height: 20px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	form#product_widget .vw-dbar__sel {
		max-width: 640px;
		color: var(--vw-muted);
		font-size: 13px;
		font-weight: 400;
		line-height: 18px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	form#product_widget .vw-dbar__r {
		display: flex;
		flex: none;
		align-items: center;
		gap: 20px;
	}
	form#product_widget .vw-dbar__pr {
		color: var(--vw-ink);
		font-size: 18px;
		font-weight: 600;
		line-height: 22px;
		font-variant-numeric: tabular-nums;
		white-space: nowrap;
	}
	form#product_widget .vw-dbar .vw-dbar__cta {
		display: flex;
		align-items: center;
		height: 40px;
		padding: 0 18px;
		border-radius: var(--r-cta);
		background: var(--vw-brand);
		color: var(--vw-on);
		font-size: 15px;
		font-weight: 500;
		line-height: 20px;
		white-space: nowrap;
		transition: background-color .2s;
	}
	/* Etykiety w jednej komorce siatki: szerokosc = najdluzsza ("Dodajemy do koszyka…" + ikona), przenikanie 150 ms */
	form#product_widget .vw-dbar .vw-dbar__cta {
		display: inline-grid;
		justify-items: center;
	}
	form#product_widget .vw-dbar__t {
		grid-area: 1 / 1;
		display: inline-flex;
		align-items: center;
		gap: 8px;
		white-space: nowrap;
		opacity: 0;
		visibility: hidden;
		transition: opacity .15s, visibility .15s;
	}
	form#product_widget .vw-dbar__t.is-on {
		opacity: 1;
		visibility: visible;
	}
	form#product_widget .vw-dbar__ic {
		flex: none;
		width: 18px;
		font-size: 16px;
		line-height: 1;
		text-align: center;
	}
	form#product_widget .vw-dbar .vw-spin.vw-dbar__ic {
		height: 18px;
	}
	form#product_widget .vw-dbar__ic.is-go {
		animation: vw-add2-roll .28s ease-out;
	}
	form#product_widget .vw-dbar .vw-dbar__cta.is-busy {
		cursor: progress;
	}
	/* Sukces jak BT1: zielone tlo, wejscie bez przejscia */
	form#product_widget .vw-dbar .vw-dbar__cta.is-done {
		background: #E6F4EA;
		color: #17702F;
		cursor: default;
		transition: none;
	}
	form#product_widget .vw-dbar .vw-dbar__cta:focus {
		outline: none;
	}
	form#product_widget .vw-dbar .vw-dbar__cta:focus-visible {
		outline: 2px solid var(--vw-ink);
		outline-offset: 2px;
	}
}
@media (min-width: 1024px) and (hover: hover) {
	form#product_widget .vw-dbar .vw-dbar__cta:not(.is-done):hover {
		background: var(--vw-ah);
	}
}
@media (prefers-reduced-motion: reduce) {
	form#product_widget .vw-cta__t,
	form#product_widget :is(.vw-sbf .vw-buy, .vw-buy.vw-mbar),
	form#product_widget :is(.vw-sbf .vw-foot, .vw-foot.vw-mbar) {
		transition: none !important;
	}
	form#product_widget .vw-mbar,
	form#product_widget .vw-mbar:not(.is-show),
	form#product_widget.vw-sbm-scroll :is(.vw-buy, .vw-foot) {
		transform: none !important;
		transition: none !important;
	}
	form#product_widget .vw-dbar,
	form#product_widget .vw-dbar.is-on {
		transform: none !important;
		transition: opacity .12s linear, visibility 0s linear .12s !important;
	}
	form#product_widget .vw-dbar.is-on {
		transition: opacity .12s linear, visibility 0s !important;
	}
}
@media (prefers-reduced-motion: reduce) {
	form#product_widget .vw-dbar__t {
		transition: none !important;
	}
	form#product_widget .vw-dbar__ic.is-go {
		animation: none !important;
	}
}
form#product_widget.vw-no-cta .vw-dbar__ic.is-go {
	animation: none !important;
}
/* E9 (30.10): spinner etykiety "Dodajemy do koszyka" w pasku desktop kreci sie tylko w widocznej etykiecie. Etykiety stoja w jednej
   komorce siatki (opacity 0), wiec niewidoczny spinner startowal nieskonczona animacje przy wejsciu na strone (1440, takze przy
   prefers-reduced-motion) i krecil sie caly czas w tle. */
form#product_widget .vw-dbar__t:not(.is-on) .vw-spin {
	animation: none;
}
/* Ikona stanu paska (30.10, podmiana w CurdeWidgetLook::sticky_ui / filtr curde_widget_sticky_ui): krok 1 daleko, krok 2 niegotowy */
form#product_widget .vw-cta__t {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
form#product_widget .vw-sbi {
	flex: none;
	font-size: 15px;
	line-height: 1;
}
/* Pasek desktop: podpowiedz kroku 2 (addToCartHint) w stalej szerokosci przycisku - zbyt dluga = wielokropek, nie poszerza */
form#product_widget .vw-dbar__tx {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
@media (min-width: 1024px) {
	form#product_widget .vw-dbar .vw-dbar__cta {
		width: 256px;
		grid-template-columns: minmax(0, 1fr);
	}
	form#product_widget .vw-dbar__t {
		max-width: 100%;
	}
}
/* Dol karty kroku 1 w pasku (vw-sbf: always, scroll): bez pustego pasa pod ostatnia sekcja - zostaje odstep sekcji (28 px).
   Tryb scroll ma pasek fixed od wczytania (ukryty), wiec uklad karty jest ten sam przed i po pojawieniu sie paska. */
@media (max-width: 1023px) {
	form#product_widget.vw-sbf .card-body.vw-k1 {
		padding-bottom: 0;
	}
}

/* Przed montazem Vue (E7c). Szablon widgetu jest in-DOM: do montazu przegladarka pokazuje surowy HTML, a atrybuty v-if/v-else
   ma tylko on (Vue renderuje nowe elementy bez nich), wiec [v-if] = "jeszcze bez Vue" - takze bez JS (perfmatters delay JS).
   Chowamy tylko to, co po montazu startuje zamkniete, puste albo jako druga galaz: zaslony, arkusze i listy (K2, LOC-4,
   popover/arkusz i, dropdown kroku 2), notki i komunikaty, podpowiedz "Powieksz", linia "Zamow ponownie", kafel krajowy jakosci,
   caly krok 2 (z modalem komentarzy). Karta, pola i kafle kroku 1 zostaja widoczne od pierwszego renderu (bez v-cloak na
   formularzu - bez znikania tresci). E9b (30.10): takze kopie paska (telefon .vw-mbar kroku 1 i 2, desktop .vw-dbar) - przed
   montazem i tak poza ekranem, a ich surowy szablon (spinner, check) startowal animacje vw-spin / vw-add2-ok i ruchu 2-3. */
form#product_widget :is(.vw-veil, .vw-qp, .vw-info, .vw-drop, .vw-ro, .vw-ro-note, .vw-msg, .vw-cta-err, .vw-up, .alert, .vw-qa__grid.is-one, .vw-hs.is-one, .vw-mbar, .vw-dbar)[v-if],
form#product_widget .card > div[v-else],
form#product_widget :is(.vw-up__ok, .vw-flag__e)[v-else] {
	display: none !important;
}
/* E9b: zdanie pod lokalizacja (L32) wchodzi vw-fadeup przy kazdej zmianie kraju (:key) - w surowym szablonie (sekcja [v-if]) bez
   wejscia; po montazu Vue renderuje sekcje bez atrybutu v-if, wiec ruch po zmianie kraju bez zmian. */
form#product_widget .vw-loc[v-if] .vw-loc__txt {
	animation: none;
}

/* Karta widgetu bez marginesu z motywu serwisu (kuplike: .card { margin-bottom: 10px } z bootstrap motywu) -
   pasek zaufania .vw-tb i dol karty maja sie stykac. Na pl margines i tak 0. */
form#product_widget > .card {
	margin-bottom: 0;
}
