/* ==========================================================================
   CyfrowaWiedza.pl — WooCommerce
   Lista produktów, karta, koszyk, kasa, konto, komunikaty
   ========================================================================== */

/* ---------- Lista produktów (Product Collection, pętla zapytań) ---------- */
.cw-shop .wc-block-product-template,
.cw-shop .wp-block-post-template,
.wp-block-woocommerce-related-products .wp-block-post-template,
.wc-block-product-template.cw-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: var(--space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.cw-shop .wc-block-product,
.cw-shop .wp-block-post,
.wp-block-woocommerce-related-products .wp-block-post {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin: 0 !important;
	padding: var(--space-5);
	box-sizing: border-box;
	background: var(--surface-200);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.cw-shop .wc-block-product:hover,
.cw-shop .wp-block-post:hover,
.wp-block-woocommerce-related-products .wp-block-post:hover {
	transform: translateY(calc(-1 * var(--space-1)));
	border-color: var(--brand);
}
.cw-shop .wc-block-product > *,
.cw-shop .wp-block-post > *,
.wp-block-woocommerce-related-products .wp-block-post > * { margin-block: 0 !important; }

/* okładka: 2:3, radius-lg, shadow-book (jedyne miejsce z cieniem) */
.cw-shop .wc-block-components-product-image,
.wp-block-woocommerce-related-products .wc-block-components-product-image { margin: 0 0 var(--space-2) !important; position: relative; }
.cw-shop .wc-block-components-product-image a,
.cw-shop .wc-block-components-product-image__inner-container,
.wp-block-woocommerce-related-products .wc-block-components-product-image a { display: block; line-height: 0; }
.cw-shop .wc-block-components-product-image img,
.wp-block-woocommerce-related-products .wc-block-components-product-image img,
.cw-cover-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-book);
}

.cw-shop .wp-block-post-title,
.wp-block-woocommerce-related-products .wp-block-post-title {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1.375rem;
	line-height: 1.25;
	letter-spacing: -0.005em;
	text-align: left;
}
.cw-shop .wp-block-post-title a,
.wp-block-woocommerce-related-products .wp-block-post-title a { color: var(--ink); text-decoration: none; }
.cw-shop .wp-block-post-title a:hover { color: var(--brand); text-decoration: underline; }
/* cała karta klikalna przez rozciągnięty link tytułu */
.cw-shop .wp-block-post-title a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--radius-md); }
.cw-shop .wc-block-components-product-button,
.cw-shop .wp-block-woocommerce-product-button { position: relative; z-index: 2; }

.cw-shop .wp-block-post-excerpt { font-size: 0.9375rem; line-height: 1.5; color: var(--ink-muted); }
.cw-shop .wp-block-post-excerpt__excerpt { margin: 0; }

/* cena: Instrument Sans, mosiądz ciemny */
.wc-block-components-product-price,
.price {
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.2;
	color: var(--accent-text);
	text-align: left !important;
}
.wc-block-components-product-price del,
.price del { color: var(--ink-muted); font-weight: 400; margin-right: var(--space-2); }
.wc-block-components-product-price ins,
.price ins { text-decoration: none; }
.wc-block-components-product-price__value.is-discounted { color: var(--accent-text); }

/* przycisk „Dodaj do koszyka”: kolor marki, pełna szerokość karty */
.wc-block-components-product-button { margin: 0; text-align: left !important; }
.wc-block-components-product-button .wp-block-button__link,
.wc-block-components-product-button .wc-block-components-product-button__button,
.add_to_cart_button {
	width: 100%;
	background: var(--brand);
	color: var(--on-brand);
	border: 2px solid transparent;
	font-size: 1rem;
}
.wc-block-components-product-button .wp-block-button__link:hover,
.add_to_cart_button:hover { background: var(--forest-800); color: var(--paper-100); }
.wc-block-components-product-button .added_to_cart,
a.added_to_cart {
	display: inline-block;
	margin-top: var(--space-2);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--brand);
}
.wp-element-button.loading { opacity: 0.7; }
.wp-element-button.added::after,
.add_to_cart_button.added::after { content: none; }

/* plakietki na okładce */
.wc-block-components-product-sale-badge,
.onsale {
	position: absolute;
	top: var(--space-3);
	left: var(--space-3);
	z-index: 2;
	min-height: 28px;
	padding: 3px 12px;
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--brass-500);
	color: var(--ink-900);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.6;
	text-transform: none;
}
.cw-card-badges { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* ---------- Karta produktu ------------------------------------------------ */
.woocommerce-breadcrumb { margin: 0; }
.woocommerce-breadcrumb a { color: var(--ink-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--brand); text-decoration: underline; }

.single_add_to_cart_button { width: auto; }
.woocommerce-variation-add-to-cart { display: flex; gap: var(--space-3); }
.stock { font-size: 0.875rem; }
.stock.out-of-stock { color: var(--danger); }
.stock.out-of-stock::before { content: "× "; }
.stock.in-stock { color: var(--success); }
.stock.in-stock::before { content: "✓ "; }

/* ---------- Komunikaty ---------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin: 0 0 var(--space-5);
	padding: var(--space-4) var(--space-5);
	list-style: none;
	background: var(--surface-100);
	color: var(--ink);
	border: 1px solid var(--border-strong);
	border-left-width: 4px;
	border-radius: var(--radius-md);
	font-size: 1rem;
	line-height: 1.5;
}
.woocommerce-message, .wc-block-components-notice-banner.is-success { border-color: var(--success); background: var(--surface-100); }
.woocommerce-message::before { content: "✓"; font-weight: 700; color: var(--success); }
.woocommerce-error, .wc-block-components-notice-banner.is-error { border-color: var(--danger); }
.woocommerce-error::before { content: "×"; font-weight: 700; color: var(--danger); }
.woocommerce-message .button, .woocommerce-info .button { order: 3; margin-left: auto; min-height: 40px; padding: 6px 20px; }
.wc-block-components-notice-banner > svg { fill: currentColor; flex: none; }
.wc-block-components-notice-banner.is-success > svg { background: var(--success); }
.wc-block-components-notice-banner.is-error > svg { background: var(--danger); }
.woocommerce-error li { margin: 0; }

/* ---------- Koszyk i kasa (bloki WooCommerce) ---------------------------- */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wc-block-cart,
.wc-block-checkout {
	font-family: var(--font-sans);
	color: var(--ink);
}
.wc-block-components-sidebar-layout { gap: var(--space-7); }
.wc-block-cart__main, .wc-block-checkout__main { min-width: 0; }
.wc-block-components-sidebar {
	background: var(--surface-200);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	padding: var(--space-5) !important;
	box-sizing: border-box;
}
.wc-block-components-sidebar .wc-block-components-totals-wrapper { border-color: var(--border); }
.wc-block-cart__totals-title,
.wc-block-components-title,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary__button-text,
.wc-block-components-panel__button {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--ink);
	letter-spacing: 0;
	text-transform: none;
}
.wc-block-cart__totals-title { font-size: 0.75rem; font-family: var(--font-mono); font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--emerald-700); }
.wc-block-components-checkout-step__title { font-size: 1.5rem; }
.wc-block-components-checkout-step__description { color: var(--ink-muted); }

table.wc-block-cart-items { border-collapse: collapse; }
.wc-block-cart-items__header th { font-family: var(--font-mono); font-weight: 500; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); border-bottom: 1px solid var(--ink); padding-block: var(--space-2); }
.wc-block-cart-items__row td { border-bottom: 1px solid var(--border); vertical-align: top; }
.wc-block-cart-item__image img { border-radius: var(--radius-md); box-shadow: var(--shadow-book); aspect-ratio: 2 / 3; object-fit: cover; width: 72px; height: auto; }
.wc-block-components-product-name { font-family: var(--font-display); font-weight: 600; font-size: 1.125rem; color: var(--ink); text-decoration: none; }
.wc-block-components-product-name:hover { color: var(--brand); text-decoration: underline; }
.wc-block-components-product-metadata { color: var(--ink-muted); font-size: 0.875rem; }
.wc-block-components-product-price__value,
.wc-block-formatted-money-amount { font-family: var(--font-sans); font-weight: 700; color: var(--ink); }
.wc-block-cart-item__prices .wc-block-components-product-price__value { color: var(--accent-text); }
.wc-block-components-totals-item__value { font-weight: 700; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; }
.wc-block-components-totals-footer-item-tax-value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--accent-text); font-size: 1.5rem; }
.wc-block-cart-item__remove-link { color: var(--ink-muted); font-size: 0.875rem; }
.wc-block-cart-item__remove-link:hover { color: var(--danger); }
.wc-block-components-quantity-selector { border-radius: var(--radius-pill); border-color: var(--border-strong); }
.wc-block-components-quantity-selector::after { border-radius: var(--radius-pill); border-color: var(--border-strong); }

/* przycisk główny: Przejdź do kasy / Złóż zamówienie */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 52px;
	background: var(--brand) !important;
	color: var(--on-brand) !important;
	border-radius: var(--radius-pill) !important;
	font-weight: 600;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--forest-800) !important; color: var(--paper-100) !important; }
.wc-block-components-button.outlined,
.wc-block-components-button.is-link { background: transparent; }
.wc-block-components-checkout-return-to-cart-button { color: var(--brand); font-weight: 600; }

/* pola formularzy w blokach */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-combobox .components-combobox-control__suggestions-container input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
	min-height: 52px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	background: var(--surface-100);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: 1rem;
	box-shadow: none;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label,
.wc-block-components-combobox .components-form-token-field__label { color: var(--ink-muted); }
.wc-block-components-text-input.has-error input,
.wc-block-components-text-input.has-error input:focus { border-color: var(--danger); }
.wc-block-components-validation-error { color: var(--danger); font-size: 0.8125rem; }
.wc-block-components-validation-error > p::before { content: "× "; font-weight: 700; }
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-textarea:focus {
	outline: 3px solid var(--focus-ring);
	outline-offset: 2px;
	box-shadow: none;
	border-color: var(--brand);
}
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--on-brand); }
.wc-block-components-checkbox input[type="checkbox"]:checked { background: var(--brand); border-color: var(--brand); }
.wc-block-components-radio-control__input:checked,
.wc-block-components-radio-control__input:focus { border-color: var(--brand); }
.wc-block-components-radio-control__input:checked::before { background: var(--brand); }

/* metody płatności (Przelewy24, BLIK, karty) */
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
	border-color: var(--border);
}
.wc-block-checkout__payment-method .wc-block-components-radio-control,
.wc-block-components-radio-control--highlight-checked::after { border-radius: var(--radius-md); }
.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 3px var(--brand);
}
.wc-block-components-payment-method-icons img { max-height: 24px; width: auto; }

/* pusty koszyk */
.wp-block-woocommerce-empty-cart-block h2 { font-size: var(--wp--preset--font-size--h-2); }
.wc-block-cart__empty-cart__title { font-family: var(--font-display); font-size: 1.75rem; }

/* potwierdzenie zamówienia i pobieranie ebooków */
.wc-block-order-confirmation-status,
.woocommerce-order { max-width: 46rem; }
.woocommerce-thankyou-order-received {
	font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; color: var(--success); margin-bottom: var(--space-5);
}
.woocommerce-thankyou-order-received::before { content: "✓ "; }
.wc-block-order-confirmation-downloads table,
.woocommerce-table--order-downloads { width: 100%; }
.woocommerce-table--order-downloads .woocommerce-MyAccount-downloads-file,
a.woocommerce-MyAccount-downloads-file,
.wc-block-order-confirmation-downloads .wc-block-order-confirmation-downloads__download-link a,
td.download-file a {
	display: inline-flex; align-items: center; min-height: 40px; padding: 6px 20px; border-radius: var(--radius-pill);
	background: var(--brand); color: var(--on-brand); font-weight: 600; text-decoration: none;
}
td.download-file a:hover { background: var(--forest-800); color: var(--paper-100); }

/* ---------- Moje konto (klasyczny shortcode) ----------------------------- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: var(--space-7); align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-1); border-top: 1px solid var(--border-strong); }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--border); }
.woocommerce-MyAccount-navigation a { display: block; padding: var(--space-3) var(--space-1); color: var(--ink); text-decoration: none; font-weight: 500; }
.woocommerce-MyAccount-navigation a:hover { color: var(--brand); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--brand); font-weight: 700; }
.woocommerce-MyAccount-navigation li.is-active a::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 2px; background: var(--brass-500); }
.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; max-width: 520px; }
.woocommerce form.login, .woocommerce form.register, .woocommerce-form-login, .woocommerce-form-register {
	padding: var(--space-5); background: var(--surface-200); border: 1px solid var(--border); border-radius: var(--radius-md); margin: 0 0 var(--space-5);
}
.woocommerce form .form-row { margin: 0 0 var(--space-4); display: flex; flex-direction: column; gap: var(--space-1); }
.woocommerce form .form-row label { font-weight: 600; }
.woocommerce form .form-row .required { color: var(--danger); text-decoration: none; }
.woocommerce table.shop_table { border: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--border); }

/* ---------- Węższe ekrany ------------------------------------------------ */
@media (max-width: 782px) {
	/* karty w jednej kolumnie: okładka 74 px, tytuł, cena, przycisk */
	.cw-shop .wc-block-product-template,
	.cw-shop .wp-block-post-template { grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--border); }
	.cw-shop .wc-block-product,
	.cw-shop .wp-block-post {
		display: grid;
		grid-template-columns: 74px minmax(0, 1fr);
		grid-template-areas: "img title" "img price" "img btn";
		column-gap: var(--space-4);
		row-gap: var(--space-2);
		align-items: start;
		padding: var(--space-4) 0;
		background: transparent;
		border: 0;
		border-bottom: 1px solid var(--border);
		border-radius: 0;
	}
	.cw-shop .wc-block-product:hover, .cw-shop .wp-block-post:hover { transform: none; }
	.cw-shop .wc-block-components-product-image { grid-area: img; margin: 0 !important; }
	.cw-shop .wp-block-post-title { grid-area: title; font-size: 1.125rem; }
	.cw-shop .wc-block-components-product-price { grid-area: price; }
	.cw-shop .wc-block-components-product-button { grid-area: btn; }
	.cw-shop .wp-block-post-excerpt { display: none; }
	.cw-shop .wc-block-components-product-image img { border-radius: var(--radius-md); box-shadow: 0 8px 14px -6px rgba(10, 31, 26, 0.45); }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: var(--space-5); }
	.wc-block-components-sidebar { padding: var(--space-4) !important; }
}

/* wyrównanie cen i przycisków na dole kart o różnej długości tytułu */
.cw-shop .wc-block-product .wp-block-post-title { flex-grow: 1; }
@media (max-width: 782px) { .cw-shop .wc-block-product .wp-block-post-title { flex-grow: 0; } }
