/* Koszyk i panel koszyka - wydzielone z sklep.css (0.11.7, docs/13 A3).
   Panel koszyka jest na każdej stronie, a jego pozycje korzystają z reguł listy koszyka, więc ta część
   ładuje się wszędzie. Reszta sklep.css (produkt, kasa, listing, filtry) tylko na stronach sklepu
   (inc/assets.php, sp_arkusze_sklepu()). Kolejność: zaraz przed sklep.css. */

/* ── KOSZYK ──────────────────────────────────────────────────── */
/* Lista po lewej, podsumowanie po prawej, przyklejone przy przewijaniu (runda 10, A). */
.kz{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-s4);align-items:start}
@media(max-width:860px){.kz{grid-template-columns:1fr}}

/* Pozycje leżą na bieli — packshoty mają białe tła i na papierze strony widać ich prostokąty. */
.kz-lista{position:relative;isolation:isolate;padding:var(--sp-s2) var(--sp-s3)}
.kz-lista::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--sp-surface);
  clip-path:polygon(var(--sp-fala-karty))}
.kz-poz{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:var(--sp-s2);align-items:center;
  padding:var(--sp-s3) 0;border-bottom:1px solid var(--sp-line)}
.kz-poz:last-child{border-bottom:0}
.kz-poz>img{width:96px;height:96px;object-fit:contain}
.kz-poz h3{font-size:21px;line-height:1.25}
.kz-poz h3 a{text-decoration:none}
.kz-poz-jed{font-size:14px;color:var(--sp-muted);font-variant-numeric:tabular-nums;margin-top:4px}
.kz-poz-akcje{display:grid;justify-items:end;gap:8px}
.kz-poz-cena{font-size:21px;font-variant-numeric:tabular-nums;transition:color 300ms var(--sp-ease)}
.kz-poz-cena.is-zmiana,.kz-koszt.is-zmiana span:last-child{color:var(--sp-action)}
.kz-usun{background:none;border:0;padding:6px;cursor:pointer;color:var(--sp-muted);min-height:36px;min-width:36px;
  transition:color var(--sp-hover) var(--sp-ease)}
@media(hover:hover) and (pointer:fine){.kz-usun:hover{color:var(--sp-error)}}
.kz-poz.is-usuwana{opacity:0;transform:translateX(12px);transition:opacity 240ms var(--sp-ease),transform 240ms var(--sp-ease)}
/* przycisk przeliczenia pod linią ostatniej pozycji - tylko bez skryptu; ze skryptem koszyk przelicza się sam */
.kz-lista-stopka{padding-top:var(--sp-s3)}
.js .kz-lista-stopka{display:none}
.js .kz-poz:not(:has(~ .kz-poz)){border-bottom:0}
/* w trakcie przeliczania przygasają tylko kwoty, które się zmienią - układ stoi w miejscu */
.kz-poz .kz-poz-cena,.kz-suma .kz-koszt span:last-child{transition:opacity var(--sp-fast),color 300ms var(--sp-ease)}
.kz-poz[aria-busy="true"] .kz-poz-cena,.kz-suma[aria-busy="true"] .kz-koszt span:last-child{opacity:.45}
.kz-koszt.is-zmiana span:last-child{color:var(--sp-action)}
@media(max-width:520px){
  .kz-poz{grid-template-columns:72px minmax(0,1fr);row-gap:12px}
  .kz-poz>img{width:72px;height:72px}
  .kz-poz-akcje{grid-column:1 / -1;grid-template-columns:auto 1fr auto;align-items:center;justify-items:start}
  .kz-poz-akcje .kz-poz-cena{justify-self:end}
}

.kz-suma{position:sticky;top:var(--sp-s4);background:var(--sp-pole);border:1px solid var(--sp-line);padding:var(--sp-s3);border-radius:var(--sp-radius)}
.kz-suma h2{font-size:26px}
.kz-koszt{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-variant-numeric:tabular-nums}
.kz-koszt span:last-child{transition:color 300ms var(--sp-ease)}
.kz-koszt--suma{border-top:1px solid var(--sp-gold);margin-top:8px;padding-top:12px;font-size:22px}
/* tylko główne wezwanie ma odstęp — wcześniej reguła łapała też „Zastosuj”
   i spychała go poniżej pola kodu */
.kz-suma>.sp-button{margin-top:var(--sp-s2)}
/* ikony gwarancji wyrównane do pierwszej linii tekstu, nie do środka akapitu */
.kz-gwarancje{list-style:none;margin:var(--sp-s3) 0 0;padding:0;display:grid;gap:10px;font-size:15px;color:var(--sp-muted)}
.kz-gwarancje li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;line-height:1.45}
.kz-gwarancje .sp-icon{width:18px;height:18px;margin-top:2px;color:var(--sp-action)}

.kz-rabat{margin-top:var(--sp-s3)}
.kz-rabat-wiersz{display:flex;gap:10px;align-items:stretch}
.kz-rabat-wiersz .sp-field{flex:1;min-width:0;margin:0}
.kz-rabat-wiersz .sp-field input{height:100%}
.kz-rabat-wiersz .sp-button{margin:0;flex:none}

.kz-pusty{text-align:center}
.kz-pusty .sp-pusty{padding-block:var(--sp-s4)}
.kz-pusty-akcje{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:var(--sp-s2)}
.kz-propozycje{margin-top:var(--sp-s5)}

/* Panel koszyka (runda 10, A): biel zamiast papieru — packshoty mają białe tła;
   podziały tylko między pozycjami, żadnych kresek przez całą szerokość panelu. */
/* Biel ma rozdarty LEWY bok — jedyną krawędź, którą widać nad stroną. Tło rysuje ::before
   z clip-path, a cień rzuca panel przez drop-shadow, więc cień idzie za rozdarciem.
   Odchylenie do 7 px, w pikselach — nie rośnie z wysokością ekranu. */
.sp-drawer--koszyk .sp-drawer-panel{background:transparent;border-left:0;box-shadow:none;isolation:isolate;
  filter:drop-shadow(-6px 0 18px rgba(31,26,18,.14))}
.sp-drawer--koszyk .sp-drawer-panel::before{content:'';position:absolute;inset:0;z-index:-1;
  background:var(--sp-surface);clip-path:polygon(8px 0,100% 0,100% 100%,3.2px 100.00%,3.6px 97.92%,4.7px 95.83%,3.9px 93.75%,4.4px 91.67%,5.7px 89.58%,7.0px 87.50%,6.0px 85.42%,6.5px 83.33%,6.9px 81.25%,6.9px 79.17%,7.0px 77.08%,7.0px 75.00%,6.8px 72.92%,7.0px 70.83%,7.0px 68.75%,6.4px 66.67%,5.8px 64.58%,5.7px 62.50%,4.3px 60.42%,4.7px 58.33%,5.4px 56.25%,5.2px 54.17%,6.3px 52.08%,7.0px 50.00%,7.0px 47.92%,7.0px 45.83%,5.8px 43.75%,4.4px 41.67%,5.9px 39.58%,5.2px 37.50%,4.3px 35.42%,5.6px 33.33%,6.4px 31.25%,5.1px 29.17%,4.6px 27.08%,3.8px 25.00%,3.0px 22.92%,1.4px 20.83%,1.5px 18.75%,0.9px 16.67%,0.6px 14.58%,0.0px 12.50%,0.0px 10.42%,0.0px 8.33%,1.2px 6.25%,2.0px 4.17%,2.2px 2.08%,1.0px 0.00%)}
.sp-drawer--koszyk .sp-drawer-head,.sp-drawer--koszyk .sp-drawer-body,.sp-drawer--koszyk .sp-drawer-foot{padding-left:calc(var(--sp-s3) + 8px)}
.sp-drawer--koszyk .sp-drawer-head,.sp-drawer--koszyk .sp-drawer-foot{border:0}
.sp-drawer--koszyk .sp-drawer-foot{display:grid;gap:10px;padding-top:0;background:transparent}
.sp-drawer--koszyk .kz-poz{grid-template-columns:64px minmax(0,1fr);row-gap:10px;padding:var(--sp-s2) 0}
.sp-drawer--koszyk .kz-poz>img{width:64px;height:64px}
.sp-drawer--koszyk .kz-poz h3{font-size:18px}
.sp-drawer--koszyk .kz-poz-akcje{grid-column:2;grid-template-columns:auto 1fr auto;align-items:center;justify-items:start}
/* w panelu ilość jest tylko informacją — zmienia się ją na stronie koszyka */
.kz-poz-ilosc{font-size:15px;color:var(--sp-muted);font-variant-numeric:tabular-nums}
.sp-drawer--koszyk .kz-poz-akcje .kz-poz-cena{justify-self:end;font-size:18px}
.sp-drawer--koszyk .kz-koszt--suma{border-top:1px solid var(--sp-gold);margin-top:0}

/* ── Koszyk i panel na szablonach Woo ──
   Miniatura stoi w linku .product-thumbnail (jak w Woo), link usuwania ma klasę remove, a panel
   to fragment mini-koszyka. Reguły woocommerce.css dla tych klas (czerwony krzyżyk z !important,
   miniatury 32 px z float w listach produktów, pogrubione linki) zdejmujemy tutaj. */
.kz-poz>.product-thumbnail{display:block;line-height:0}
.kz-poz>.product-thumbnail img{width:96px;height:96px;object-fit:contain}
@media(max-width:520px){.kz-poz>.product-thumbnail img{width:72px;height:72px}}
.woocommerce a.remove.kz-usun,a.remove.kz-usun{display:grid;place-items:center;width:auto;height:auto;font-size:inherit;
  line-height:0;border-radius:0;font-weight:400;background:none;color:var(--sp-muted)!important}
@media(hover:hover) and (pointer:fine){
  .woocommerce a.remove.kz-usun:hover,a.remove.kz-usun:hover{background:none;color:var(--sp-error)!important}
}
/* Dane pozycji (wariant, dopisek wtyczki) w linii: „Kształt: kość duża”. Przy flex długi opis w <p>
   spadał pod etykietę; teraz etykieta i wartość płyną jednym tekstem, każda para od nowej linii. */
.kz-poz dl.variation{display:block;margin:4px 0 0;padding:0;border:0;font-size:14px;line-height:1.45;color:var(--sp-muted)}
.kz-poz dl.variation dt,.kz-poz dl.variation dd{display:inline;float:none;margin:0;padding:0}
.kz-poz dl.variation dd p{display:inline;margin:0}
.kz-poz dl.variation dd::after{content:'';display:block}
/* Backorder Notice dopisuje do pozycji „Dostępność: Chwilowy brak na stanie…” - sam opis mówi o dostępności,
   więc etykieta znika (klasa z sanitize_html_class klucza „Dostępność”). */
:is(.kz-poz,.ks-poz) dl.variation dt.variation-Dostpno{display:none}
/* W panelu koszyka lista ma klasę cart_list, a woocommerce.css daje tam danym pozycji kreskę, wcięcie, float
   i odstępy (.woocommerce ul.cart_list li dl - 0,2,3; dt i dd - 0,2,4), które wygrywały z regułami wyżej
   (0,2,1). Selektor z ul.cart_list li.kz-poz (0,3,3 i 0,3,4) przywraca wygląd z koszyka. Ukrycie etykiety
   „Dostępność” powtórzone mocniej, bo display:inline poniżej by je przebił. */
ul.cart_list li.kz-poz dl.variation{margin:4px 0 0;padding:0;border:0}
ul.cart_list li.kz-poz dl.variation::before,ul.cart_list li.kz-poz dl.variation::after{content:none}
ul.cart_list li.kz-poz dl.variation dt,ul.cart_list li.kz-poz dl.variation dd{display:inline;float:none;clear:none;margin:0;padding:0}
ul.cart_list li.kz-poz dl.variation dd p{display:inline;margin:0}
ul.cart_list li.kz-poz dl.variation dt.variation-Dostpno{display:none}
.kz-poz .backorder_notification{margin:4px 0 0;font-size:14px;color:var(--sp-action)}
.kz>.cart-collaterals{align-self:stretch;min-width:0}
.kz-suma .wc-proceed-to-checkout{margin-top:var(--sp-s2);padding:0}
.woocommerce-cart .kz-suma .wc-proceed-to-checkout a.checkout-button.sp-button{display:inline-flex;margin:0;padding:12px 23px;font-size:18px}
.kz-koszt--kalkulator{display:grid}
/* kalkulator dostawy Woo: ikona z fontu WooCommerce, którego motyw nie ładuje, rysowała pusty kwadrat */
.woocommerce-cart .shipping-calculator-button::after{content:none}
.kz-suma .woocommerce-shipping-destination,.sp-opcje-komunikat{margin:8px 0 0;font-size:14px;color:var(--sp-muted)}
.sp-opcje-lista{display:grid;gap:10px}

.sp-drawer--koszyk .widget_shopping_cart_content{display:contents}
.sp-drawer--koszyk ul.woocommerce-mini-cart{list-style:none;margin:0;padding:0}
.sp-drawer--koszyk ul.cart_list li.kz-poz{margin:0;padding:var(--sp-s2) 0;list-style:none}
/* Na stronach z klasą .woocommerce na body (sklep, kategorie) woocommerce.css dokłada pozycjom listy
   clearfix ::before i ::after - w siatce stają się komórkami i spychały miniaturę i nazwę o kolumnę. */
.sp-drawer--koszyk ul.cart_list li.kz-poz::before,.sp-drawer--koszyk ul.cart_list li.kz-poz::after{content:none;display:none}
.sp-drawer--koszyk ul.cart_list li.kz-poz a{display:inline;font-weight:400}
.sp-drawer--koszyk ul.cart_list li.kz-poz a.product-thumbnail{display:block}
.sp-drawer--koszyk ul.cart_list li.kz-poz a.remove.kz-usun{display:grid}
.sp-drawer--koszyk ul.cart_list li.kz-poz img{float:none;margin:0;width:64px;height:64px;box-shadow:none}
.sp-drawer--koszyk .woocommerce-mini-cart__total{margin:0}
.sp-drawer--koszyk .woocommerce-mini-cart__buttons{display:grid;gap:10px;margin:0}

