/* Koszyk */

.cart-items {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	margin-bottom: var(--space-6);
}

.cart-item {
	display: grid;
	grid-template-columns: 64px 1fr auto auto;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4);
	background: #fff;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
}

.cart-item__thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--radius-sm);
}

.cart-item__name a {
	font-weight: 600;
	text-decoration: none;
	color: var(--color-navy);
}

.cart-item__price {
	font-weight: 700;
	white-space: nowrap;
}

.cart-item__remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: var(--color-text-muted);
	text-decoration: none;
	font-size: var(--text-lg);
	line-height: 1;
}

.cart-item__remove a:hover {
	background: var(--color-neutral-light);
	color: var(--color-coral-hover);
}

.cart-coupon {
	display: flex;
	gap: var(--space-2);
	max-width: 360px;
	margin-bottom: var(--space-6);
}

.cart-coupon input {
	flex: 1;
}

.cart_totals {
	max-width: 400px;
	margin-left: auto;
	padding: var(--space-5);
	background: var(--color-bg-alt);
	border-radius: var(--radius-sm);
}

.cart_totals h2 {
	font-size: var(--text-lg);
}

.cart_totals table {
	width: 100%;
	border-collapse: collapse;
}

.cart_totals table th,
.cart_totals table td {
	padding: var(--space-2) 0;
	text-align: left;
	font-weight: 400;
	border-bottom: 1px solid var(--color-border);
}

.cart_totals table td {
	text-align: right;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	border-bottom: none;
	padding-top: var(--space-3);
	font-size: var(--text-lg);
	font-weight: 700;
}

.wc-proceed-to-checkout {
	margin-top: var(--space-5);
}

.wc-proceed-to-checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	padding: var(--space-3) var(--space-6);
	background: var(--color-coral);
	color: var(--color-navy-dark);
	border-radius: var(--radius-sm);
	font-weight: 600;
	text-decoration: none;
}

.wc-proceed-to-checkout .checkout-button:hover {
	background: var(--color-coral-hover);
}

.cart-empty {
	text-align: center;
	padding-block: var(--space-8);
}

.return-to-shop .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin-top: var(--space-4);
	padding: var(--space-3) var(--space-6);
	background: var(--color-coral);
	color: var(--color-navy-dark);
	border-radius: var(--radius-sm);
	text-decoration: none;
	font-weight: 600;
}

/* Checkout */

.col2-set {
	display: block;
}

.woocommerce-billing-fields h3,
#order_review_heading {
	font-size: var(--text-xl);
	margin-bottom: var(--space-4);
}

.form-row {
	margin-bottom: var(--space-4);
}

.form-row label {
	display: block;
	margin-bottom: var(--space-2);
}

/* Domyślnie WooCommerce parował te pola przez własny arkusz CSS (teraz wyłączony) —
   odtwarzamy tylko to jedno zachowanie, którego faktycznie potrzebujemy. */
@media (min-width: 560px) {
	.form-row-first,
	.form-row-last {
		width: calc(50% - var(--space-2));
	}

	.form-row-first {
		float: left;
		clear: both;
	}

	.form-row-last {
		float: right;
	}

	.form-row-wide {
		clear: both;
	}
}

.form-row .required {
	color: var(--color-navy-dark);
	text-decoration: none;
}

.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-5);
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: var(--space-3) 0;
	border-bottom: 1px solid var(--color-border);
	text-align: left;
}

.woocommerce-checkout-review-order-table td {
	text-align: right;
}

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
	font-size: var(--text-lg);
	font-weight: 700;
	border-bottom: none;
}

.wc_payment_methods {
	list-style: none;
	margin: 0 0 var(--space-5);
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.wc_payment_methods li {
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
}

.payment_box {
	margin-top: var(--space-3);
	padding: var(--space-3);
	background: var(--color-neutral-light);
	border-radius: var(--radius-sm);
	font-size: var(--text-sm);
}

#place_order {
	width: 100%;
	min-height: 44px;
	padding: var(--space-3) var(--space-6);
	background: var(--color-coral);
	color: var(--color-navy-dark);
	border: none;
	border-radius: var(--radius-sm);
	font-family: var(--font-sans);
	font-size: var(--text-base);
	font-weight: 600;
	cursor: pointer;
}

#place_order:hover {
	background: var(--color-coral-hover);
}

.woocommerce-billing-fields__field-wrapper::after { content: ""; display: table; clear: both; }
.form-row .input-text, .form-row select:not(.select2-hidden-accessible), .form-row .select2-container { width: 100% !important; }
.woocommerce form .form-row .woocommerce-input-wrapper { display: block; }
.form-row.woocommerce-invalid input { border-color: #ad3528; }
.woocommerce-checkout-review-order-table .product-name { text-align: left; }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }
.woocommerce-checkout-payment label, .woocommerce-form__label-for-checkbox { min-height: 44px; cursor: pointer; }
.woocommerce-checkout-payment .input-radio, .woocommerce-checkout-payment .input-checkbox { width: 18px; height: 18px; accent-color: var(--color-coral); vertical-align: middle; }
.woocommerce-checkout-payment label { display: inline-flex; align-items: center; gap: 8px; }
.woocommerce-checkout-payment label img { max-width: 120px; max-height: 32px; object-fit: contain; }
.woocommerce-terms-and-conditions { background: #fff; padding: 20px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.woocommerce-checkout .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-privacy-policy-text { margin: 20px 0; font-size: .875rem; color: var(--color-text-muted); }
.woocommerce-privacy-policy-text a, .woocommerce-terms-and-conditions-wrapper a { display: inline-block; padding-block: 12px; }
.checkout_coupon { display: flow-root; max-width: 640px; margin-bottom: 24px; }
.select2-container--default .select2-selection--single { min-height: 50px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 48px; padding-left: 16px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 48px; }
@media (min-width: 900px) {
	form.checkout.woocommerce-checkout { display: grid; grid-template-areas: "notices notices" "customer heading" "customer review"; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: 64px; align-items: start; }
	form.checkout.woocommerce-checkout #customer_details { grid-area: customer; }
	form.checkout.woocommerce-checkout #order_review_heading { grid-area: heading; }
	form.checkout.woocommerce-checkout #order_review { grid-area: review; }
	form.checkout.woocommerce-checkout > .woocommerce-NoticeGroup { grid-area: notices; }
}
@media (max-width: 899px) { #order_review_heading { margin-top: 32px; } }
@media (max-width: 559px) {
	.cart-item { grid-template-columns: 48px minmax(0, 1fr) 44px; gap: 12px; }
	.cart-item__price { grid-column: 2; }
	.cart-item__remove { grid-column: 3; grid-row: 1 / span 2; }
	.cart-coupon { flex-wrap: wrap; }
	.cart-coupon input { min-width: 0; width: 100%; }
}

/* Własna oprawa natywnego formularza i jego walidacji. */
.woocommerce-checkout main.section, .woocommerce-cart main.section { padding-top: 40px; }
.woocommerce-checkout .page-title, .woocommerce-cart .page-title { margin-bottom: 16px; }
form.checkout.woocommerce-checkout { margin-top: 32px; }
#customer_details, #order_review { min-width: 0; }
#order_review { padding: 24px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.woocommerce-checkout-review-order-table .product-name { padding-right: 16px; overflow-wrap: anywhere; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { padding-block: 20px; }
.wc_payment_methods li { background: var(--color-bg); }
.wc_payment_methods .payment_box { overflow-wrap: anywhere; }
.woocommerce-checkout-payment .form-row { float: none; width: auto; }
.woocommerce-checkout-payment .woocommerce-form__label-for-checkbox { display: block; line-height: 1.7; }
.woocommerce-terms-and-conditions-checkbox-text { margin-left: 4px; }
.woocommerce-privacy-policy-text a, .woocommerce-terms-and-conditions-wrapper a { padding-block: 0; text-underline-offset: 3px; }
#place_order { min-height: 52px; }
@media (max-width: 559px) { #order_review { padding: 20px 16px; } }
