/* ============================================================
   WooCommerce – dopasowanie do motywu Strzelnica Puchacz
   ============================================================ */

.pu-shop__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
}
.pu-shop__layout:has(.pu-shop__side) { grid-template-columns: minmax(0, 1fr) 280px; }

@media (max-width: 900px) {
	.pu-shop__layout:has(.pu-shop__side) { grid-template-columns: 1fr; }
}

/* --- Nagłówek listy --- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	position: relative;
	border-top: 3px solid var(--pu-yellow);
	background: var(--pu-bg-alt);
	/* lewy margines zostawiony na ikonę, którą Woo pozycjonuje absolutnie */
	padding: 18px 24px 18px 58px;
	list-style: none;
	margin: 0 0 28px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 18px;
	min-height: 0;
}
.woocommerce-error { border-top-color: #c02626; }

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	position: absolute;
	left: 22px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	line-height: 1;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	float: none;
	margin: 0 0 0 auto;
	flex: 0 0 auto;
}

.woocommerce-error li { width: 100%; }

@media (max-width: 560px) {
	.woocommerce-message,
	.woocommerce-info,
	.woocommerce-error {
		padding: 16px 18px 18px 52px;
	}
	.woocommerce-message .button,
	.woocommerce-info .button,
	.woocommerce-error .button { margin-left: 0; }
}

.woocommerce-result-count { color: var(--pu-gray); font-size: .9rem; }
.woocommerce-ordering select,
.pu-shop select {
	border: 1px solid var(--pu-line);
	padding: 10px 14px;
	background: #fff;
	font-family: inherit;
	border-radius: var(--pu-radius);
}

/* --- Siatka produktów --- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 26px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	background: #fff;
	border: 1px solid var(--pu-line);
	border-radius: var(--pu-radius);
	padding: 0 0 22px;
	display: flex;
	flex-direction: column;
	position: relative;
	transition: border-color .2s var(--pu-ease), box-shadow .25s var(--pu-ease);
}
.woocommerce ul.products li.product:hover {
	border-color: var(--pu-yellow);
	box-shadow: var(--pu-shadow);
}

.woocommerce ul.products li.product a img {
	margin: 0 0 16px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--pu-radius) var(--pu-radius) 0 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--pu-font-head);
	font-size: 1.08rem !important;
	font-weight: 600;
	line-height: 1.25;
	padding: 0 20px !important;
	margin-bottom: 8px;
}

.woocommerce ul.products li.product .price {
	color: var(--pu-ink);
	font-family: var(--pu-font-head);
	font-size: 1.25rem;
	font-weight: 700;
	padding: 0 20px;
	margin-bottom: 16px;
}
.woocommerce ul.products li.product .price del { color: var(--pu-gray-light); font-size: .78em; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.woocommerce ul.products li.product .button {
	margin: auto 20px 0;
	align-self: flex-start;
}

.woocommerce span.onsale {
	position: absolute;
	top: 12px; left: 12px;
	right: auto;
	background: var(--pu-yellow);
	color: #000;
	font-family: var(--pu-font-mono);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	border-radius: 0;
	padding: 6px 12px;
	min-height: 0;
	min-width: 0;
	line-height: 1.2;
	margin: 0;
}

/* --- Przyciski Woo --- */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var(--pu-ink);
	color: #fff;
	border-radius: 999px;
	font-family: var(--pu-font-mono);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: 14px 26px;
	line-height: 1;
	transition: background-color .2s var(--pu-ease), color .2s var(--pu-ease);
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--pu-yellow);
	color: #000;
}
.woocommerce a.added_to_cart { display: inline-block; margin-left: 12px; font-size: .8rem; }

/* --- Karta produktu --- */
.woocommerce div.product .product_title { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--pu-ink);
	font-family: var(--pu-font-head);
	font-size: 1.9rem;
	font-weight: 700;
}
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--pu-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 26px 0 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--pu-font-mono);
	font-size: .8rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pu-gray);
	padding: 14px 0;
	border-bottom: 3px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--pu-ink); border-bottom-color: var(--pu-yellow); }

.woocommerce .quantity .qty {
	border: 1px solid var(--pu-line);
	padding: 12px 8px;
	border-radius: var(--pu-radius);
	font-family: inherit;
}

.pu-product-notice {
	margin-top: 18px;
	padding: 14px 16px;
	background: var(--pu-bg-alt);
	border-left: 3px solid var(--pu-yellow);
	font-size: .88rem;
	color: var(--pu-gray);
}

/* --- Koszyk i zamówienie --- */
.woocommerce table.shop_table {
	border: 1px solid var(--pu-line);
	border-radius: var(--pu-radius);
	border-collapse: collapse;
}
.woocommerce table.shop_table th {
	font-family: var(--pu-font-mono);
	font-size: .74rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pu-gray);
}
.woocommerce-cart table.cart img { width: 74px; border-radius: var(--pu-radius); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	border: 1px solid var(--pu-line);
	border-radius: var(--pu-radius);
	padding: 12px 14px;
	font-family: inherit;
	font-size: 1rem;
	background: #fff;
}
.woocommerce form .form-row label { font-weight: 600; font-size: .92rem; }
.woocommerce-checkout #payment { background: var(--pu-bg-alt); border-radius: var(--pu-radius); }

/* --- Widgety sklepu --- */
.pu-widget { margin-bottom: 34px; }
.pu-widget__title {
	font-family: var(--pu-font-mono);
	font-size: .76rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pu-gray);
	padding-bottom: 12px;
	border-bottom: 2px solid var(--pu-yellow);
}
.pu-widget ul { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 10px; }

/* ============================================================
   Koszyk, zamawianie i konto — pełna szerokość
   ------------------------------------------------------------
   Strony Koszyk/Zamówienie to zwykłe strony z blokami Woo,
   więc łapał je limit szerokości treści (.entry-content).
   Bloki Woo dobierają układ do szerokości swojego kontenera —
   za wąski kontener dawał ściśniętą kolumnę z podsumowaniem.
   ============================================================ */
.woocommerce-cart .pu-content .entry-content,
.woocommerce-checkout .pu-content .entry-content,
.woocommerce-account .pu-content .entry-content,
.woocommerce-order-received .pu-content .entry-content {
	max-width: none;
}

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.woocommerce-cart form.woocommerce-cart-form,
.woocommerce-cart .cart-collaterals,
.woocommerce-checkout form.checkout,
.woocommerce-account .woocommerce {
	max-width: 1180px;
	margin-inline: auto;
}

.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-checkout__main,
.wc-block-cart__main {
	min-width: 0;
	max-width: none;
}

.wc-block-components-sidebar,
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar {
	min-width: 320px;
}

.wc-block-components-order-summary-item__description,
.wc-block-components-product-name {
	overflow-wrap: anywhere;
}

/* Typografia bloków Woo zgodna z motywem. */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	font-family: var(--pu-font-body);
}
.wc-block-components-title,
.wp-block-woocommerce-checkout h2,
.wp-block-woocommerce-cart h2 {
	font-family: var(--pu-font-head);
	letter-spacing: -.01em;
}
.wc-block-components-button:not(.is-link) {
	background: var(--pu-ink);
	color: #fff;
	border-radius: 999px;
	font-family: var(--pu-font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: .78rem;
	font-weight: 700;
}
.wc-block-components-button:not(.is-link):hover {
	background: var(--pu-yellow);
	color: #000;
}
