/* ═══════════════════════════════════════════════════════════════════════════
   Koszyk — motyw Deseo Memorials
   Arkusz wchodzi wyłącznie na stronie koszyka (funkcja w functions.php).

   Tabelę koszyka rozkładamy siatką (`display:grid` na wierszu, `order` na
   komórkach), a nie przepisujemy znaczników — dzięki temu wszystkie klasy,
   nazwy pól i kolejność <td> zostają takie, jakich szuka cart.js WooCommerce.
   Z tabeli zdjęte są za to klasy `shop_table` / `shop_table_responsive`,
   bo to wyłącznie haczyki na arkusz wtyczki (ramka i `text-align:right
   !important` poniżej 768 px).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Siatka strony ───────────────────────────────────────────────────────── */

.dm-tresc .woocommerce{max-width:none}

.dm-ko{
	display:grid;
	grid-template-columns:minmax(0,1fr) 352px;
	gap:0 48px;
	align-items:start;
	margin-top:6px;
}
.dm-ko__pozycje{min-width:0}
.dm-ko__bok{min-width:0}

/* ── Tabela pozycji ──────────────────────────────────────────────────────── */

.dm-ko__tabela{display:block;width:100%;margin:0;border:0;border-collapse:collapse}
.dm-ko__tabela thead,
.dm-ko__tabela tbody{display:block;width:100%}

/* Jeden rozkład kolumn dla nagłówka i dla wierszy. Kolejność <td> w kodzie to
   usuń / zdjęcie / nazwa / cena / ilość / kwota — „usuń” przesuwamy na koniec
   przez `order`, żeby nie ruszać znaczników. */
.dm-ko__tabela thead tr,
.dm-ko__tabela tbody tr.cart_item{
	display:grid;
	grid-template-columns:88px minmax(0,1fr) 116px 124px 116px 30px;
	align-items:center;
	gap:0 16px;
	width:100%;
}
.dm-ko__tabela .product-thumbnail{order:1}
.dm-ko__tabela .product-name{order:2}
.dm-ko__tabela .product-price{order:3}
.dm-ko__tabela .product-quantity{order:4}
.dm-ko__tabela .product-subtotal{order:5}
.dm-ko__tabela .product-remove{order:6}

.dm-ko__tabela thead tr{
	padding:0 0 12px;
	border-bottom:1px solid var(--linia);
}
.dm-ko__tabela thead th{
	display:block;padding:0;border:0;background:none;
	font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
	color:var(--tekst);text-align:left;
}
.dm-ko__tabela thead .product-price,
.dm-ko__tabela thead .product-subtotal{text-align:right}
.dm-ko__tabela thead .product-quantity{text-align:center}

.dm-ko__tabela tbody tr.cart_item{
	padding:22px 0;
	border-bottom:1px solid var(--linia);
}
.dm-ko__tabela tbody td{display:block;padding:0;border:0;background:none;vertical-align:middle}
/* podpisy kolumn z `data-title` rysuje arkusz WooCommerce na wąskich ekranach */
.dm-ko__tabela td::before{content:none !important}

/* Zdjęcie */
.dm-ko__tabela .product-thumbnail a{display:block;line-height:0}
.dm-ko__tabela .product-thumbnail img{
	display:block;width:88px;height:88px;margin:0;
	object-fit:cover;border-radius:10px;background:var(--chmura);
}

/* Nazwa i wybrane opcje */
.dm-ko__tabela .product-name a{
	color:var(--ink);font-size:16px;font-weight:500;line-height:1.35;text-decoration:none;
}
.dm-ko__tabela .product-name a:hover{text-decoration:underline;text-underline-offset:3px}
.dm-ko__tabela .product-name .variation{
	display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;
	margin:8px 0 0;font-size:14px;line-height:1.45;color:var(--tekst);
}
.dm-ko__tabela .product-name .variation dt{margin:0;padding:0;font-weight:400}
.dm-ko__tabela .product-name .variation dd{margin:0;padding:0;color:var(--mocny)}
.dm-ko__tabela .product-name .variation dd p{margin:0}
.dm-ko__tabela .product-name .backorder_notification{margin:8px 0 0;font-size:14px}
.dm-ko__sku{display:block;margin:5px 0 0;font-size:12px;letter-spacing:.03em;color:#9aa0a6}

/* Ceny partnera B2B: detaliczna przekreślona, pod nią kwota po rabacie.
   Pokazują się wyłącznie zalogowanemu partnerowi i wyłącznie w złotówkach. */
.dm-koszyk-ceny,.dm-kwota-poz{display:grid;gap:2px;justify-items:end}
.dm-koszyk-ceny del,.dm-kwota-poz del{font-size:14px;color:#9aa0a6;text-decoration-thickness:1px}
.dm-koszyk-b2b{font-size:16px;font-weight:600;color:var(--zielen-b2b)}
.dm-kwota-b2b{font-size:14px;font-weight:600;line-height:1.35;color:var(--zielen-b2b);text-align:right}

/* Kwoty */
.dm-ko__tabela .product-price{text-align:right;font-size:16px;color:var(--tekst)}
.dm-ko__tabela .product-subtotal{text-align:right;font-size:16px;font-weight:600;color:var(--ink)}
.dm-ko__tabela .product-price .amount,
.dm-ko__tabela .product-price bdi{white-space:nowrap}
.dm-ko__tabela .product-subtotal .amount,
.dm-ko__tabela .product-subtotal bdi{color:var(--ink);white-space:nowrap}

/* Ilość — pigułka „− 1 +”, ta sama co na karcie produktu, tylko niższa */
.dm-ko__tabela .product-quantity .quantity{display:flex;justify-content:center;align-items:stretch}
.dm-ko .quantity .dm-ilosc{
	flex:none;width:32px;height:44px;padding:0;
	border:1px solid #d1d5db;background:#fff;color:var(--tekst);
	font-size:16px;line-height:1;cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.dm-ko .quantity .dm-ilosc-mniej{border-radius:35px 0 0 35px;border-right:0}
.dm-ko .quantity .dm-ilosc-wiecej{border-radius:0 35px 35px 0;border-left:0}
.dm-ko .quantity .dm-ilosc:hover{background:var(--chmura);color:var(--ink);border-color:var(--ink)}
.dm-ko .quantity .dm-ilosc:disabled{opacity:.4;cursor:default;background:#fff;color:var(--tekst);border-color:#d1d5db}
.dm-ko .quantity input.qty{
	flex:none;width:44px;height:44px;padding:0;
	border:1px solid #d1d5db;border-radius:0;background:#fff;
	text-align:center;font:inherit;font-size:16px;color:var(--ink);-moz-appearance:textfield;
}
.dm-ko .quantity input.qty::-webkit-outer-spin-button,
.dm-ko .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Usuwanie */
.dm-ko__tabela .product-remove{text-align:right}
.dm-ko__tabela .product-remove a.remove{
	display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;
	border-radius:50%;color:var(--tekst);font-size:22px;line-height:1;text-decoration:none;
	transition:background .15s ease,color .15s ease;
}
.dm-ko__tabela .product-remove a.remove:hover,
.dm-ko__tabela .product-remove a.remove:focus{background:#f3f4f6;color:#b3261e}

/* ── Pasek pod listą: „Kontynuuj zakupy”, kupon ──────────────────────────── */

.dm-ko__tabela tr.dm-ko__wiersz-akcji{display:block;border:0;padding:0}
.dm-ko__tabela tr.dm-ko__wiersz-akcji td.actions{display:block;padding:0;border:0;background:none}

.dm-ko__pasek{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:22px}
/* Guzik „Zaktualizuj koszyk” chowamy: skrypt przelicza koszyk sam po zmianie
   ilości. Bez JS odsłania go <noscript> ze stylem, siedzący w szablonie. */
.dm-ko .dm-ko__aktualizuj{display:none;margin-left:auto}

.dm-ko__lekki{
	display:inline-flex;align-items:center;justify-content:center;gap:7px;
	min-height:44px;padding:0 22px;
	border:1.5px solid var(--linia);border-radius:35px;background:#fff;
	color:var(--ink);font:inherit;font-size:15px;font-weight:500;
	text-decoration:none;cursor:pointer;
	transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.dm-ko__lekki:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.dm-ko__lekki:disabled{opacity:.45;cursor:default;border-color:var(--linia);background:#fff;color:var(--tekst)}
.dm-ko__lekki svg{flex:none}

/* Kupon — zwinięty, bo w sklepie nie ma dziś żadnego kodu rabatowego */
.dm-ko__kupon{margin-top:20px;border-top:1px solid var(--linia);padding-top:18px}
.dm-ko__kupon summary{
	display:inline-flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
	font-size:15px;color:var(--ink);
}
.dm-ko__kupon summary::-webkit-details-marker{display:none}
.dm-ko__kupon summary::after{content:"+";font-size:17px;line-height:1;color:var(--tekst)}
.dm-ko__kupon[open] summary::after{content:"–"}
.dm-ko__kupon .coupon{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;max-width:440px}
.dm-ko__kupon input#coupon_code{
	flex:1 1 180px;min-width:0;height:44px;padding:0 18px;
	border:1px solid #d1d5db;border-radius:35px;background:#fff;
	font:inherit;font-size:15px;color:var(--ink);
}
.dm-ko__kupon input#coupon_code:focus{outline:none;border-color:var(--ink)}
.dm-ko__kupon .coupon-error-notice{flex:1 0 100%;margin:0;font-size:14px;color:#b3261e}

/* ── Podsumowanie ────────────────────────────────────────────────────────── */

.dm-ko .cart_totals{
	position:sticky;top:104px;
	border:1px solid var(--linia);border-radius:var(--radius);background:#fff;
	padding:24px 24px 26px;
}
.dm-ko .cart_totals h2{margin:0 0 6px;font-size:20px;line-height:1.3;color:var(--ink)}

.dm-ko__suma{display:block;width:100%;margin:0;border:0;border-collapse:collapse}
.dm-ko__suma tbody{display:block;width:100%}
.dm-ko__suma tr{
	display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:4px 16px;
	padding:14px 0;border-bottom:1px solid var(--linia);
}
.dm-ko__suma th{
	padding:0;border:0;background:none;
	font-size:15px;font-weight:400;color:var(--tekst);text-align:left;
}
.dm-ko__suma td{padding:0;border:0;background:none;font-size:16px;color:var(--ink);text-align:right}
.dm-ko__suma td::before{content:none !important}

.dm-ko__suma tr.order-total{border-bottom:0;padding:18px 0 0;align-items:baseline}
.dm-ko__suma tr.order-total th{font-size:16px;font-weight:500;color:var(--ink)}
.dm-ko__suma tr.order-total td{font-size:22px;font-weight:600}
.dm-ko__suma tr.order-total small{display:block;margin-top:3px;font-size:12px;font-weight:400;color:var(--tekst)}

/* Przesyłka: lista metod, adres dostawy, kalkulator */
.dm-ko__suma tr.woocommerce-shipping-totals td,
.dm-ko__suma tr.shipping td{text-align:left}
.dm-ko__suma ul#shipping_method{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.dm-ko__suma ul#shipping_method li{margin:0;display:flex;gap:8px;align-items:flex-start;font-size:15px}
.dm-ko__suma ul#shipping_method label{color:var(--ink);cursor:pointer}
.dm-ko__suma ul#shipping_method input[type=radio]{margin:4px 0 0;accent-color:var(--ink)}
.dm-ko__suma .woocommerce-shipping-destination{margin:10px 0 0;font-size:14px;line-height:1.5;color:var(--tekst)}
.dm-ko__suma .woocommerce-shipping-contents{margin:6px 0 0}
.dm-ko__suma .shipping-calculator-button{
	display:inline-block;margin-top:8px;font-size:13px;color:var(--ink);
	text-decoration:underline;text-underline-offset:3px;
}
.dm-ko__suma .shipping-calculator-form{margin-top:12px;display:grid;gap:10px}
.dm-ko__suma .shipping-calculator-form p{margin:0}
.dm-ko__suma .shipping-calculator-form input[type=text],
.dm-ko__suma .shipping-calculator-form select,
.dm-ko__suma .shipping-calculator-form .select2-selection{
	width:100%;height:42px;padding:0 14px;
	border:1px solid #d1d5db;border-radius:10px;background:#fff;
	font:inherit;font-size:15px;color:var(--ink);
}
.dm-ko__suma .shipping-calculator-form button{
	min-height:42px;padding:0 20px;border:1.5px solid var(--ink);border-radius:35px;
	background:#fff;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;
}
.dm-ko__suma .shipping-calculator-form button:hover{background:var(--ink);color:#fff}

/* Guzik do kasy */
.dm-ko .wc-proceed-to-checkout{margin-top:22px;padding:0}
.dm-ko .wc-proceed-to-checkout a.checkout-button,
.dm-ko .wc-proceed-to-checkout .button{
	display:flex;align-items:center;justify-content:center;
	width:100%;min-height:54px;margin:0;padding:0 22px;
	border:0;border-radius:35px;background:#000;color:#fff;
	font:inherit;font-size:16px;font-weight:500;text-align:center;text-decoration:none;
	transition:background .2s ease;
}
.dm-ko .wc-proceed-to-checkout a.checkout-button:hover,
.dm-ko .wc-proceed-to-checkout .button:hover{background:var(--ink);color:#fff}

/* ── Produkty krzyżowe (dziś pusto, ale hak zostaje) ─────────────────────── */

.dm-ko__krzyzowe:empty{display:none}
.dm-ko__krzyzowe{margin-top:56px}
.dm-ko__krzyzowe .cross-sells h2{font-size:24px;margin:0 0 22px}
.dm-ko__krzyzowe ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none}

/* ── Pusty koszyk ────────────────────────────────────────────────────────── */

.dm-ko-pusty{
	max-width:520px;margin:12px auto 40px;padding:44px 28px;
	border:1px solid var(--linia);border-radius:var(--radius);background:#fff;text-align:center;
}
.dm-ko-pusty__ikona{color:#c9ced6;margin-bottom:14px}
/* „Twój koszyk jest pusty” przychodzi z WooCommerce jako powiadomienie
   (.woocommerce-info) — w białej karcie wyszłoby pudełko w pudełku, więc
   zdejmujemy z niego ramkę i robimy z niego nagłówek karty. Selektor
   trzyklasowy, bo reguła powiadomień niżej w pliku ma dwie klasy. */
.dm-tresc .dm-ko-pusty .wc-empty-cart-message{margin:0;padding:0;border:0;background:none}
.dm-tresc .dm-ko-pusty .cart-empty{
	display:block;margin:0;padding:0;border:0;background:none;
	font-size:19px;font-weight:500;line-height:1.35;color:var(--ink);
}
.dm-tresc .dm-ko-pusty .cart-empty::before{content:none}
.dm-ko-pusty__tekst{margin:14px 0 0;font-size:16px;line-height:1.6;color:var(--tekst)}
.dm-ko-pusty .return-to-shop{margin:22px 0 0}
.dm-ko-pusty__guzik{
	display:inline-flex;align-items:center;justify-content:center;
	min-height:50px;padding:0 30px;border-radius:35px;
	background:#000;color:#fff;font-size:15px;font-weight:500;text-decoration:none;
	transition:background .2s ease;
}
.dm-ko-pusty__guzik:hover{background:var(--ink);color:#fff}

/* ── Komunikaty WooCommerce ──────────────────────────────────────────────── */

.dm-tresc .woocommerce-message,
.dm-tresc .woocommerce-info,
.dm-tresc .woocommerce-error{
	display:flex;flex-direction:column;align-items:flex-start;gap:14px;
	margin:0 0 22px;padding:18px 22px;
	border:1px solid var(--linia);border-left:4px solid var(--szalwia);border-radius:12px;
	background:#fff;color:var(--ink);font-size:16px;line-height:1.5;list-style:none;
}
.dm-tresc .woocommerce-error{border-left-color:#b3261e}
.dm-tresc .woocommerce-message::before,
.dm-tresc .woocommerce-info::before,
.dm-tresc .woocommerce-error::before{display:none}
.dm-tresc .woocommerce-message > .dm-kom-guziki{display:flex;flex-wrap:wrap;gap:10px}
.dm-tresc .woocommerce-message .button{
	margin:0;flex:none;min-height:44px;padding:0 24px;border:0;border-radius:35px;
	display:inline-flex;align-items:center;justify-content:center;
	font-size:14px;font-weight:500;text-decoration:none;background:var(--ink);color:#fff;
	transition:background .2s ease;
}
.dm-tresc .woocommerce-message .button:hover{background:#000;color:#fff}
.dm-tresc .woocommerce-message .dm-kontynuuj{background:var(--szalwia);color:var(--ink)}
.dm-tresc .woocommerce-message .dm-kontynuuj:hover{background:#b2c383;color:var(--ink)}
/* WooCommerce ustawia na komunikacie kursor (tabindex="-1"), żeby czytnik ekranu
   go przeczytał. Przeglądarka rysuje wtedy obwódkę fokusu wokół całej ramki —
   przy myszy wygląda jak gruba czarna ramka, więc zostawiamy ją tylko dla
   klawiatury (`:focus-visible` nie łapie fokusu ustawionego skryptem). */
.dm-tresc .woocommerce-message:focus,
.dm-tresc .woocommerce-info:focus,
.dm-tresc .woocommerce-error:focus{outline:none}
.dm-tresc .woocommerce-message:focus-visible,
.dm-tresc .woocommerce-info:focus-visible,
.dm-tresc .woocommerce-error:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* Zasłona AJAX-a (blockUI) — domyślnie rysuje czarny prostokąt */
.dm-ko .blockUI.blockOverlay{background:#fff !important;opacity:.6 !important}

/* ── Wąskie ekrany ───────────────────────────────────────────────────────── */

/* Poniżej ~1260 px kolumna z nazwą robi się ciasna — chudnie podsumowanie
   i wszystkie kolumny kwotowe. Poniżej 1100 px nazwa i tak łamałaby się na
   cztery wiersze, więc podsumowanie schodzi pod listę. */
@media (max-width:1260px){
	.dm-ko{grid-template-columns:minmax(0,1fr) 312px;gap:0 32px}
	.dm-ko__tabela thead tr,
	.dm-ko__tabela tbody tr.cart_item{grid-template-columns:76px minmax(0,1fr) 96px 116px 104px 28px;gap:0 12px}
	.dm-ko__tabela .product-thumbnail img{width:76px;height:76px}
}

@media (max-width:1100px){
	.dm-ko{grid-template-columns:minmax(0,1fr);gap:36px 0}
	.dm-ko .cart_totals{position:static;top:auto}
	.dm-ko__bok{max-width:460px}
}

@media (max-width:720px){
	.dm-ko__tabela thead{display:none}
	.dm-ko__tabela tbody tr.cart_item{
		grid-template-columns:72px minmax(0,1fr) 30px;
		grid-template-areas:
			"foto nazwa usun"
			"foto cena cena"
			"ilosc kwota kwota";
		align-items:start;
		gap:10px 14px;
		padding:20px 0;
	}
	.dm-ko__tabela .product-thumbnail{grid-area:foto}
	.dm-ko__tabela .product-name{grid-area:nazwa}
	.dm-ko__tabela .product-price{grid-area:cena;text-align:left;font-size:15px}
	.dm-ko__tabela .product-quantity{grid-area:ilosc}
	.dm-ko__tabela .product-subtotal{grid-area:kwota;text-align:right;align-self:center}
	.dm-ko__tabela .product-remove{grid-area:usun;align-self:start}
	.dm-ko__tabela .product-thumbnail img{width:72px;height:72px}
	.dm-ko__tabela .product-name a{font-size:16px}
	.dm-ko .quantity .dm-ilosc{width:30px;height:40px}
	.dm-ko .quantity input.qty{width:40px;height:40px}
	.dm-ko__pasek{gap:10px}
	.dm-ko__wroc{flex:1 1 auto}
	.dm-ko__bok{max-width:none}
	.dm-ko .cart_totals{padding:20px 18px 22px}
	.dm-ko__krzyzowe ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Nadpisania arkusza WooCommerce.

   woocommerce.css i woocommerce-layout.css jadą na stronie koszyka razem
   z nami i mają selektory trzy-, cztero- i pięcioklasowe („.woocommerce-cart
   .cart-collaterals .cart_totals table th”). Przy równej szczegółowości
   wygrałby ten, kto jest później — ale te są szczegółowsze, więc wygrywają
   zawsze. Stąd osobna sekcja z przedrostkiem `.woocommerce`: podnosi naszą
   szczegółowość o jedną klasę i dopiero wtedy reguły motywu mają rację bytu.
   Z tabeli zdjęliśmy już klasy `cart`, `shop_table` i `shop_table_responsive`,
   więc cała rodzina „table.cart …” w ogóle tu nie trafia.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Podsumowanie: WooCommerce puszcza je na float:right i 48% szerokości */
.woocommerce .dm-ko .cart-collaterals .cart_totals{float:none;width:auto}
.woocommerce .dm-ko .cart-collaterals .cart_totals table{border-collapse:collapse;margin:0;padding:0}
.woocommerce .dm-ko .cart-collaterals .cart_totals table th{width:auto;vertical-align:baseline;line-height:1.45}
.woocommerce .dm-ko .cart-collaterals .cart_totals table td{vertical-align:baseline;line-height:1.45}
.woocommerce .dm-ko .cart-collaterals .cart_totals tr td,
.woocommerce .dm-ko .cart-collaterals .cart_totals tr th{border-top:0}
.woocommerce .dm-ko .cart-collaterals .cart_totals table select{width:100%}

/* Guzik do kasy — arkusz wtyczki daje mu 1.25em i padding 1em */
.woocommerce .dm-ko .wc-proceed-to-checkout{padding:22px 0 0}
.woocommerce .dm-ko .wc-proceed-to-checkout a.checkout-button{
	display:flex;margin:0;padding:0 22px;font-size:16px;
}

/* Kalkulator wysyłki: guzik dostaje od wtyczki znaczek z własnego fontu */
.woocommerce .dm-ko .cart-collaterals .shipping-calculator-button{margin-top:8px}
.woocommerce .dm-ko .cart-collaterals .shipping-calculator-button::after{content:none}
.woocommerce .dm-ko .cart-collaterals .shipping-calculator-form{margin:12px 0 0}

/* Pasek akcji pod listą: wtyczka wyrównuje całą komórkę do prawej,
   a pole kuponu puszcza na float */
.woocommerce .dm-ko td.actions{text-align:left}
.woocommerce .dm-ko td.actions .coupon{float:none}
.woocommerce .dm-ko td.actions .coupon .input-text,
.woocommerce .dm-ko td.actions .input-text{
	float:none;width:auto;min-width:0;margin:0;padding:0 18px;
	border:1px solid #d1d5db;border-radius:35px;
}
.woocommerce .dm-ko td.actions .coupon .coupon-error-notice{margin-top:8px}

/* Zdjęcie pozycji — wtyczka trzyma miniatury na 32 px */
.woocommerce .dm-ko .dm-ko__tabela .product-thumbnail{min-width:0}
.woocommerce .dm-ko .dm-ko__tabela .product-thumbnail img{width:88px;height:88px}
@media (max-width:1260px){
	.woocommerce .dm-ko .dm-ko__tabela .product-thumbnail img{width:76px;height:76px}
}
@media (max-width:720px){
	.woocommerce .dm-ko .dm-ko__tabela .product-thumbnail img{width:72px;height:72px}
}
