/* ============================================================
   WooCommerce koszyk/checkout — układ 1:1 z makietą (2 kolumny).
   ============================================================ */

/* nagłówek podstrony (back-link + tytuł) */
.wfs-wc-head { margin-bottom: 24px; }
.wfs-wc-head .wfs-back { margin-bottom: 10px; }
.wfs-wc-sub { color: var(--wfs-muted); font-size: 14px; margin: 4px 0 0; }

/* ---------- KOSZYK: 2 kolumny (produkty | podsumowanie) ---------- */
@media (min-width: 1000px) {
	.woocommerce-cart .wfs-wc .woocommerce { display: grid; grid-template-columns: minmax(0,1fr) 360px; column-gap: 32px; align-items: start; }
	.woocommerce-cart .wfs-wc .woocommerce-cart-form { grid-column: 1; margin: 0; }
	.woocommerce-cart .wfs-wc .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-cart .wfs-wc .cart-collaterals { grid-column: 2; width: 100%; float: none; }
	.woocommerce-cart .wfs-wc .cart-collaterals .cart_totals { width: 100%; position: sticky; top: 24px; }
	.woocommerce-cart .wfs-wc .cross-sells { grid-column: 1 / -1; }
}
.woocommerce-cart .wfs-wc .cart_totals h2 { font-family: inherit; }

/* ---------- koszyk: pozycje jako karty (układ makiety, nie tabela) ---------- */
@media (min-width: 769px) {
	.woocommerce-cart .wfs-wc table.cart { display: block; border: 1px solid var(--wfs-line); border-radius: 16px; background: var(--wfs-surface); overflow: hidden; }
	.woocommerce-cart .wfs-wc table.cart thead { display: none; }
	.woocommerce-cart .wfs-wc table.cart tbody { display: block; }
	.woocommerce-cart .wfs-wc table.cart tr.cart_item {
		display: flex; align-items: center; gap: 14px; padding: 14px 18px;
		border-bottom: 1px dashed var(--wfs-line);
	}
	.woocommerce-cart .wfs-wc table.cart tr.cart_item td { display: block; border: 0; padding: 0; background: transparent; }
	.woocommerce-cart .wfs-wc table.cart td.product-thumbnail { flex: none; width: 52px; order: 1; }
	.woocommerce-cart .wfs-wc table.cart td.product-thumbnail a { display: block; }
	.woocommerce-cart .wfs-wc table.cart td.product-thumbnail img {
		width: 52px; height: 52px; object-fit: cover; border-radius: 11px; border: 1px solid var(--wfs-line); display: block;
	}
	.woocommerce-cart .wfs-wc table.cart td.product-name { flex: 1; min-width: 0; order: 2; font-size: 14px; font-weight: 600; }
	.woocommerce-cart .wfs-wc table.cart td.product-name a { color: var(--wfs-text); text-decoration: none; }
	.woocommerce-cart .wfs-wc table.cart td.product-name a:hover { color: var(--wfs-accent); }
	.woocommerce-cart .wfs-wc table.cart td.product-price { flex: none; order: 3; color: var(--wfs-muted); font-size: 12.5px; white-space: nowrap; }
	.woocommerce-cart .wfs-wc table.cart td.product-price::after { content: " / szt."; }
	.woocommerce-cart .wfs-wc table.cart td.product-quantity { flex: none; order: 4; }
	.woocommerce-cart .wfs-wc table.cart td.product-quantity .quantity .qty { width: 64px; text-align: center; }
	.woocommerce-cart .wfs-wc table.cart td.product-subtotal { flex: none; order: 5; width: 110px; text-align: right; font-weight: 600; font-size: 14px; white-space: nowrap; }
	.woocommerce-cart .wfs-wc table.cart td.product-remove { flex: none; order: 6; width: auto; }
	.woocommerce-cart .wfs-wc table.cart td.actions { border-top: 1px solid var(--wfs-line); }
}
.woocommerce-cart .wfs-wc table.cart { border-collapse: separate; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { font-size: 15px !important; font-weight: 600 !important; }

/* ---------- koszyk: wiersz akcji (kupon + aktualizacja) ---------- */
.woocommerce-cart table.cart td.actions {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px; background: transparent;
}
.woocommerce-cart table.cart td.actions .coupon { display: flex; align-items: center; gap: 8px; margin: 0; float: none; }
.woocommerce-cart table.cart td.actions .coupon label { display: none; }
.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 200px; max-width: 100%; height: 46px; margin: 0;
	background: var(--wfs-surface2) !important; border: 1px solid var(--wfs-line) !important; color: var(--wfs-text) !important;
	border-radius: 10px !important; padding: 12px 14px !important; font-size: 14px; box-shadow: none !important;
}
.woocommerce-cart table.cart td.actions .coupon .input-text::placeholder { color: #5e5772; }
/* spójny rozmiar/styl przycisków w wierszu akcji (jak pozostałe buttony) */
.woocommerce-cart table.cart td.actions .button,
.woocommerce-cart table.cart td.actions button {
	height: 46px; padding: 0 22px !important; font-size: 14px !important; font-weight: 600 !important;
	display: inline-flex; align-items: center; justify-content: center; line-height: 1; white-space: nowrap;
}
.woocommerce-cart table.cart td.actions button[name="update_cart"] { margin-left: auto; }

/* ---------- CHECKOUT: 2 kolumny (dane | podsumowanie sticky) ---------- */
@media (min-width: 1000px) {
	.wfs-wc .checkout.woocommerce-checkout {
		display: grid; grid-template-columns: minmax(0,1fr) 380px; grid-template-areas: "details review";
		column-gap: 32px; align-items: start;
	}
	.wfs-wc #customer_details { grid-area: details; align-self: start; justify-self: stretch; }
	.wfs-wc #order_review_heading { grid-area: review; margin: 0 0 12px; }
	.wfs-wc #order_review { grid-area: review; position: sticky; top: 24px; }
}
.wfs-wc #customer_details.col2-set { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; margin-top: 0; }
.wfs-wc #customer_details .col-1, .wfs-wc #customer_details .col-2 { width: 100% !important; float: none !important; }
.wfs-wc #customer_details .woocommerce-billing-fields > h3 { margin-top: 0; }

/* ---------- checkout: kod rabatowy ---------- */
.woocommerce-checkout #order_review .wf-checkout-coupon { width: 100%; box-sizing: border-box; margin: 0; }
.woocommerce-checkout .wf-checkout-coupon__title {
	font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wfs-muted); margin-bottom: 12px;
}
.woocommerce-checkout .wf-checkout-coupon__row { display: flex; align-items: flex-start; gap: 8px; }
.woocommerce-checkout .wf-checkout-coupon__field { flex: 1; min-width: 0; }
.woocommerce-checkout .wf-checkout-coupon input.input-text {
	width: 100%; height: 44px; box-sizing: border-box; margin: 0;
	background: var(--wfs-surface2) !important; border: 1px solid var(--wfs-line) !important; border-radius: 10px !important;
	color: var(--wfs-text) !important; padding: 11px 13px !important; font-size: 13.5px; box-shadow: none !important;
}
.woocommerce-checkout .wf-checkout-coupon input.input-text::placeholder { color: #706881; }
.woocommerce-checkout .wf-checkout-coupon input.input-text.has-error { border-color: #ef4444 !important; }
.woocommerce-checkout .wf-checkout-coupon button.button {
	flex: none; height: 44px; margin: 0 !important; padding: 0 17px !important; border: 0 !important; border-radius: 10px !important;
	background: var(--wfs-grad) !important; color: #fff !important; font-size: 13px !important; font-weight: 600 !important;
}
.woocommerce-checkout .wf-checkout-coupon__feedback { min-height: 0; margin-top: 0; font-size: 12px; line-height: 1.35; }
.woocommerce-checkout .wf-checkout-coupon__feedback:not(:empty) { margin-top: 7px; }
.woocommerce-checkout .wf-checkout-coupon__feedback.is-error { color: #f87171; }
.woocommerce-checkout .wf-checkout-coupon__feedback.is-success { color: var(--wfs-ok); }
@media (max-width: 420px) {
	.woocommerce-checkout .wf-checkout-coupon__row { flex-direction: column; }
	.woocommerce-checkout .wf-checkout-coupon button.button { width: 100%; }
}

/* ---------- wybór paczkomatu (natywny selektor wtyczki InPost) ---------- */
/* Wtyczka wstrzykuje wiersz w tabelę podsumowania — rozciągamy na całą szerokość */
#order_review tr.easypack-parcel-machine,
#order_review tr.easypack-parcel-machine th,
#order_review tr.easypack-parcel-machine td {
	display: block; width: 100%; box-sizing: border-box; border: 0; padding: 0; text-align: left;
}
#order_review tr.easypack-parcel-machine th.easypack-parcel-machine-label { display: none; }
#order_review tr.easypack-parcel-machine td.easypack-parcel-machine-select { padding: 0 0 6px; }
/* żółty przycisk wtyczki -> markowy fiolet */
#easypack_show_geowidget {
	display: block !important; width: 100% !important; max-width: none !important; box-sizing: border-box; text-align: center;
	background: var(--wfs-grad) !important; background-image: var(--wfs-grad) !important;
	color: #fff !important; border: 0 !important; border-radius: 12px !important;
	padding: 12px 16px !important; margin: 0 !important;
	font-weight: 600; font-size: 13.5px !important; line-height: 1.2 !important;
	cursor: pointer; box-shadow: none !important;
}
#easypack_show_geowidget:hover { filter: brightness(1.1); }
#easypack_show_geowidget img { display: none; }
/* wybrany punkt odbioru — zielone potwierdzenie pod przyciskiem */
#order_review #selected-parcel-machine:not(.hidden-paczkomat-data) {
	display: block; margin-top: 10px; padding: 10px 13px; font-size: 12.5px; line-height: 1.45;
	border: 1px solid rgba(74,222,128,.35); background: rgba(74,222,128,.08); border-radius: 10px; color: var(--wfs-text);
}
#order_review #selected-parcel-machine .easypack-visible-point-header { color: var(--wfs-ok); font-weight: 600; display: block; margin-bottom: 2px; }
#order_review #selected-parcel-machine .easypack-visible-point-description { color: var(--wfs-text); }
#selected-parcel-machine.hidden-paczkomat-data { display: none; }

/* ---------- faktura / NIP ---------- */
.wf-invoice { margin-top: 16px; }
.wf-invoice .wf-invoice-toggle { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--wfs-text); }
.wf-invoice .wf-invoice-toggle input { width: auto; margin: 0; }
.wf-invoice__fields { margin-top: 12px; padding: 14px; border: 1px solid var(--wfs-line); border-radius: 12px; background: var(--wfs-surface2); }
.wf-invoice__fields .form-row { margin-bottom: 10px; }

/* ---------- komunikat: dostawa indywidualna (bursztyn) ---------- */
.woocommerce .wfs-wc .woocommerce-info,
.wfs-wc .woocommerce-info { }
.woocommerce-cart .wfs-wc .woocommerce-info,
.woocommerce-checkout .wfs-wc .woocommerce-info { border-top-color: var(--wfs-soon); }
.woocommerce-checkout .wfs-wc .woocommerce-info::before { color: var(--wfs-soon); }

/* przyciski koszyka pełna szerokość jak w makiecie */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; margin-top: 10px; }

/* modal mapy (w stopce, poza .wfs) — ukryj gdy hidden */
.wfs-geomodal[hidden] { display: none !important; }

/* ============================================================
   Podsumowanie zamówienia — czytelne karty dostawy + płatności.
   Domyślnie WooCommerce wciska metody dostawy w wąską komórkę
   tabeli (<th>Przesyłka</th> + <td>) — rozciągamy je na całą
   szerokość kolumny i stylizujemy jako karty wyboru.
   ============================================================ */

/* lżejsza tabela podsumowania (padding steruje kontener #order_review) */
#order_review .woocommerce-checkout-review-order-table th,
#order_review .woocommerce-checkout-review-order-table td { padding: 13px 0; }
#order_review .woocommerce-checkout-review-order-table td { text-align: right; }
#order_review .woocommerce-checkout-review-order-table .product-name { text-align: left; padding-right: 12px; }
#order_review .woocommerce-checkout-review-order-table .woocommerce-Price-amount { white-space: nowrap; }

/* pole kraju jako statyczna wartość (tylko Polska) */
.woocommerce-checkout .wf-country-static {
	display: block; width: 100%; box-sizing: border-box;
	background: var(--wfs-surface2); border: 1px solid var(--wfs-line); border-radius: 10px;
	padding: 11px 13px; color: var(--wfs-text); font-size: 14px; font-weight: 500;
}
#order_review .woocommerce-checkout-review-order-table thead th { padding-top: 0; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
#order_review .woocommerce-checkout-review-order-table .order-total th,
#order_review .woocommerce-checkout-review-order-table .order-total td { padding-bottom: 0; }

/* tabela dostawy w boxie „Dostawa" — na pełną szerokość, bez etykiety „Przesyłka" */
.wfs-ship-table,
.wfs-ship-table tbody, .wfs-ship-table tr,
.wfs-ship-table th, .wfs-ship-table td {
	display: block; width: 100%; box-sizing: border-box; border: 0; padding: 0; text-align: left; background: transparent;
}
.wfs-ship-table tr.woocommerce-shipping-totals.shipping th { display: none; }

/* karty metod dostawy */
#order_review ul#shipping_method { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
#order_review ul#shipping_method li {
	display: flex; align-items: center; gap: 11px; margin: 0;
	padding: 12px 14px; border: 1px solid var(--wfs-line); border-radius: 12px;
	background: var(--wfs-surface2); transition: border-color .15s, box-shadow .15s;
}
#order_review ul#shipping_method li:hover { border-color: var(--wfs-line2); }
#order_review ul#shipping_method li:has(input.shipping_method:checked) {
	border-color: var(--wfs-accent); box-shadow: 0 0 0 1px var(--wfs-accent) inset;
}
#order_review ul#shipping_method li input.shipping_method {
	flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--wfs-accent2); cursor: pointer;
}
#order_review ul#shipping_method li label {
	flex: 1; margin: 0; color: var(--wfs-text) !important; font-size: 13.5px; font-weight: 600; cursor: pointer; line-height: 1.3;
}
#order_review ul#shipping_method li .inpost_pl-shipping-method-meta-wrap { flex: none; margin-left: auto; display: inline-flex; align-items: center; }
#order_review ul#shipping_method li .easypack-shipping-method-logo img,
#order_review ul#shipping_method li img { height: 18px !important; width: auto !important; display: block; background: #fff; padding: 2px 4px; border-radius: 5px; }

/* ============================================================
   Checkout — prawa kolumna jako OSOBNE boxy:
   (1) produkty+kwota, (2) dostawa, (3) płatność, (4) łącznie+przycisk.
   ============================================================ */
.woocommerce-checkout #order_review {
	background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important;
	display: flex; flex-direction: column; gap: 16px;
}
/* wrapper podsumowania (dla AJAX) nie tworzy pudełka — dzieci wchodzą do flexa */
.woocommerce-checkout #order_review .wfs-review-wrap { display: contents; }
/* każdy box: powierzchnia + ramka + zaokrąglenie */
.wfs-sum,
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment .place-order {
	background: var(--wfs-surface); border: 1px solid var(--wfs-line2); border-radius: 18px; padding: 18px 20px;
}
.wfs-sum table { background: transparent; border: 0; margin: 0; width: 100%; }
.wfs-sum__title,
.woocommerce-checkout #payment ul.payment_methods::before {
	display: block; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wfs-muted); margin-bottom: 12px;
}

/* #payment: kontener bez ramki, dzieci (metody + place-order) to osobne boxy */
.woocommerce-checkout #payment { background: transparent !important; border: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 16px; }

/* box PŁATNOŚĆ — karty jak przy dostawie */
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; }
.woocommerce-checkout #payment ul.payment_methods::before { content: "Płatność"; }
.woocommerce-checkout #payment ul.payment_methods li {
	display: flex; align-items: center; flex-wrap: wrap; gap: 11px; margin: 0 0 8px;
	padding: 12px 14px; border: 1px solid var(--wfs-line); border-radius: 12px; background: var(--wfs-surface2);
	transition: border-color .15s, box-shadow .15s;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li:hover { border-color: var(--wfs-line2); }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--wfs-accent); box-shadow: 0 0 0 1px var(--wfs-accent) inset; }
.woocommerce-checkout #payment ul.payment_methods li input.input-radio {
	display: inline-block !important; flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--wfs-accent2); cursor: pointer;
}
.woocommerce-checkout #payment ul.payment_methods li label {
	flex: 1; margin: 0; display: inline-flex; align-items: center; gap: 10px;
	color: var(--wfs-text); font-weight: 600; font-size: 13.5px; cursor: pointer; line-height: 1.3;
}
.woocommerce-checkout #payment ul.payment_methods li label img { max-height: 20px; width: auto; background: #fff; padding: 3px 7px; border-radius: 6px; margin-left: auto; opacity: 1; }
.woocommerce-checkout #payment div.payment_box {
	flex-basis: 100%; width: 100%; margin: 6px 0 0; padding: 0; background: transparent; color: var(--wfs-muted); font-size: 12.5px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment div.payment_box p { margin: 0; }

/* box ŁĄCZNIE + przycisk zamawiania */
.woocommerce-checkout #payment .place-order { margin: 0; }
.woocommerce-checkout #payment .place-order .wfs-ordertotal {
	display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
	margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--wfs-line);
}
.woocommerce-checkout #payment .place-order .wfs-ordertotal span { color: var(--wfs-muted); font-size: 13px; font-weight: 600; }
.woocommerce-checkout #payment .place-order .wfs-ordertotal strong { font-size: 20px; color: var(--wfs-text); }
.woocommerce-checkout #payment .place-order .wfs-ordertotal .woocommerce-Price-amount { white-space: nowrap; }
.woocommerce-checkout #payment .place-order #place_order { width: 100%; margin-top: 4px; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { margin: 0 0 12px; font-size: 12px; }

/* ukryj wybór kraju w zamówieniu (tylko Polska; PL idzie ukrytym polem) */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field { display: none !important; }

/* ============================================================
   Nakladka ladowania AJAX (jQuery.blockUI) — WooCommerce wstrzykuje
   inline bialy overlay (#fff, opacity .6) i czarna kulke loader.svg.
   Na ciemnym motywie: przyciemniamy overlay i podmieniamy loader
   na spinner w kolorze akcentu. !important wygrywa z inline stylem.
   ============================================================ */
.blockUI.blockOverlay,
.blockUI.blockMsg {
	background: rgba(10, 9, 16, 0.55) !important;
}
.woocommerce .blockUI.blockOverlay::before,
.wfs .blockUI.blockOverlay::before,
.woocommerce .loader::before {
	background: none !important;
	width: 28px !important;
	height: 28px !important;
	margin: -14px 0 0 -14px !important;
	border: 3px solid rgba(167, 139, 250, 0.25) !important;
	border-top-color: #a78bfa !important;
	border-radius: 99px !important;
	animation: wfs-spin 0.8s linear infinite !important;
}
@keyframes wfs-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce .blockUI.blockOverlay::before,
	.wfs .blockUI.blockOverlay::before { animation: none !important; }
}

/* Rowna szerokosc elementow w boxach Dostawa i Platnosc:
   td tabeli dostawy dokladal 16px poziomego paddingu, przez co
   pozycje InPost byly wezsze niz box metody platnosci. */
.wfs-sum--ship .wfs-ship-table th,
.wfs-sum--ship .wfs-ship-table td {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.wfs-sum--ship .wfs-ship-table { width: 100% !important; margin: 0 !important; border-collapse: collapse !important; border-spacing: 0 !important; }
.wfs-sum--ship .wfs-ship-table, .wfs-sum--ship .wfs-ship-table th, .wfs-sum--ship .wfs-ship-table td { border: 0 !important; }

.woocommerce-checkout #payment .place-order .wfs-ordertotal--tax strong { font-size: 14px; color: var(--wfs-muted); }

/* ============================================================
   Naprawa 08.2026: wiersz produktu w koszyku — kolumna nazwy
   nie może zwijać się do zera (tekst wylewał się pod cenę,
   gdy sztywne kolumny zjadały całą szerokość wiersza).
   ============================================================ */
@media (min-width: 769px) {
	.woocommerce-cart .wfs-wc table.cart tr.cart_item { flex-wrap: wrap; }
	.woocommerce-cart .wfs-wc table.cart td.product-name { flex: 1 1 140px; min-width: 140px; }
}
@media (min-width: 769px) {
	/* Kwota bez sztywnych 110px — nowrap trzyma ją w całości, a wiersz mieści
	   wszystkie kolumny (w tym ×) w jednej linii przy węższym koszyku. */
	.woocommerce-cart .wfs-wc table.cart td.product-subtotal { width: auto; min-width: 0; }
}

/* ============================================================
   Naprawa 08.2026: koszyk na mobile — element <table> zostawał
   w display:table i trzymał szerokość min-content (rozpychał go
   wiersz kuponu), przez co karta wystawała poza ekran. Wymuszamy
   pełny układ blokowy, × w rogu karty i kupon na całą szerokość.
   ============================================================ */
@media (max-width: 768px) {
	.woocommerce-cart .wfs-wc table.cart,
	.woocommerce-cart .wfs-wc table.cart tbody { display: block; width: 100%; max-width: 100%; }
	.woocommerce-cart .wfs-wc table.cart tr.cart_item { position: relative; display: block; }
	.woocommerce-cart .wfs-wc table.cart td.product-remove {
		position: absolute; top: 12px; right: 12px;
		width: auto; padding: 0; border: 0; background: transparent;
	}
	.woocommerce-cart .wfs-wc table.cart td.product-name { padding-right: 48px; }
	.woocommerce-cart .wfs-wc table.cart td.actions { display: flex; flex-wrap: wrap; }
	.woocommerce-cart .wfs-wc table.cart td.actions .coupon { width: 100%; flex-wrap: wrap; }
	.woocommerce-cart .wfs-wc table.cart td.actions .coupon .input-text { flex: 1 1 140px; width: auto; min-width: 0; }
	.woocommerce-cart .wfs-wc table.cart td.actions .coupon .button { flex: 1 0 auto; }
}
