/**
 * Pesto — nadpisania WooCommerce (sklep + karta produktu).
 * Wygląd sterowany tokenami/opcjami Customizera (sekcje „Sklep" i „Karta produktu").
 */

/* Siatka sklepu */
.woocommerce ul.products,
.woocommerce-page ul.products{
	display:grid !important;
	grid-template-columns:repeat(var(--pesto-shop-cols,4),1fr);
	gap:var(--pesto-card-gap,22px);
	margin:0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{content:none !important}
.woocommerce ul.products li.product{
	width:auto !important;margin:0 !important;float:none !important;padding:0;
}

/* Karta produktu */
.woocommerce ul.products li.product{
	background:var(--pesto-card-bg,#fff);
	border:var(--pesto-card-border,1px) solid var(--pesto-line);
	border-radius:var(--pesto-radius-lg,26px);
	padding:.7rem;
	transition:transform .18s ease,box-shadow .22s ease;
	position:relative;
	text-align:left;
}
.woocommerce ul.products li.product:hover{transform:translateY(-4px)}
body:not(.pesto-no-card-shadow) .woocommerce ul.products li.product:hover{box-shadow:var(--pesto-shadow)}
.woocommerce ul.products li.product a img{
	border-radius:var(--pesto-radius,18px);
	margin-bottom:.7rem;
	aspect-ratio:1/1;object-fit:cover;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
	font-family:var(--pesto-font-display);font-size:1rem;font-weight:600;
	color:var(--pesto-ink);padding:0 .4rem;line-height:1.3;
}
.woocommerce ul.products li.product .price{
	color:var(--pesto-price-color,var(--pesto-ink));
	font-family:var(--pesto-font-display);font-weight:700;font-size:1.1rem;
	padding:0 .4rem;display:block;margin:.3rem 0 .6rem;
}
.woocommerce ul.products li.product .price del{color:var(--pesto-muted);font-weight:400;font-size:.85em;margin-right:.35rem}
.woocommerce ul.products li.product .price ins{text-decoration:none}

/* Badge promocji */
.woocommerce ul.products li.product .onsale{
	position:absolute;top:.7rem;left:.7rem;margin:0;min-width:auto;min-height:auto;
	background:var(--pesto-sale-bg,var(--pesto-coral));color:#fff;border-radius:var(--pesto-radius-pill);
	padding:.2rem .65rem;font-size:.72rem;font-weight:700;line-height:1.4;
}

/* Przycisk dodania */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
	border-radius:var(--pesto-radius-pill) !important;
	background:var(--pesto-accent) !important;color:var(--pesto-accent-ink) !important;
	font-weight:600;margin:0 .4rem;
}
.woocommerce ul.products li.product .button:hover{background:var(--pesto-accent-d) !important}

/* Przyciski Woo ogólnie + karta produktu pojedynczego.
   Warianty .alt muszą być wymienione wprost — WooCommerce styluje
   .button.alt własnym fioletem o wyższej specyficzności, więc bez
   dopasowania selektora i !important wygrywałby motyw sklepowy WC. */
.woocommerce #respond input#submit,
.woocommerce #respond input#submit.alt,
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button{
	border-radius:var(--pesto-radius-pill) !important;
	background:var(--pesto-accent) !important;color:var(--pesto-accent-ink) !important;
	font-weight:600;padding:.8rem 1.6rem;transition:.18s;
}
.woocommerce a.button:hover,.woocommerce a.button.alt:hover,
.woocommerce button.button:hover,.woocommerce button.button.alt:hover,
.woocommerce input.button:hover,.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .single_add_to_cart_button:hover{background:var(--pesto-accent-d) !important;transform:translateY(-1px)}

/* Responsywność siatki */
@media(max-width:900px){
	.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
	.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr);gap:12px}
}

/* ============================================================
   STRONA PRODUKTU (single)
   ============================================================ */
.single-product div.product{
	display:grid;grid-template-columns:var(--pesto-single-cols,1.05fr .95fr);gap:2.5rem;align-items:stretch;width:100%;
}
.single-product div.product .woocommerce-product-gallery{margin:0}
.single-product div.product .woocommerce-product-gallery__image img{border-radius:var(--pesto-radius-xl,36px)}
.single-product div.product .flex-control-thumbs li img{border-radius:var(--pesto-radius,18px)}

.single-product div.product .product_title{
	font-family:var(--pesto-font-display);font-size:clamp(1.9rem,3.6vw,2.6rem);
	color:var(--pesto-ink);margin:.2rem 0 .4rem;
}
.single-product div.product .woocommerce-product-rating{margin-bottom:.8rem}
.single-product div.product p.price,
.single-product div.product span.price{
	color:var(--pesto-price-color,var(--pesto-ink));
	font-family:var(--pesto-font-display);font-weight:800;font-size:1.9rem;
}
.single-product div.product p.price del{color:var(--pesto-muted);font-weight:400;font-size:.6em}
.single-product div.product p.price ins{text-decoration:none}

/* Komunikat Omnibus (z modułu) tuż pod ceną */
.single-product .pesto-omnibus{margin:.2rem 0 1.2rem}

.single-product .woocommerce-product-details__short-description{
	color:var(--pesto-muted);max-width:48ch;margin:1rem 0 1.5rem;
}

/* Ilość + przycisk */
.single-product .quantity{
	display:inline-flex;align-items:center;border:1.5px solid var(--pesto-line);
	border-radius:var(--pesto-radius-pill);overflow:hidden;
}
.single-product .quantity input.qty{
	width:54px;height:48px;border:0;text-align:center;font-size:1rem;background:transparent;
	-moz-appearance:textfield;
}
.single-product form.cart{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin:1rem 0 1.4rem}
/* Add-on „UZUPEŁNIJ ZAKUP" = własny, pełny rząd (oddzielony od ilości i przycisku). */
.single-product form.cart .pesto-addons{flex:1 1 100%;margin:0 0 .3rem}
/* Desktop: ilość (kompakt) + przycisk w jednym rzędzie; przycisk wypełnia resztę. */
.single-product .single_add_to_cart_button{flex:1 1 220px;padding:.95rem 1.7rem}
@media(max-width:560px){
	/* Mobile: stepper ilości na CAŁĄ szerokość, przycisk pod nim również pełną szerokością. */
	.single-product form.cart .quantity,
	.single-product form.cart .pesto-qty{display:flex;width:100%;flex:1 1 100%}
	.single-product form.cart .quantity input.qty,
	.single-product form.cart .pesto-qty input.qty{flex:1;width:auto}
	.single-product form.cart .single_add_to_cart_button{flex:1 1 100%}
}

.single-product .product_meta{
	font-size:.85rem;color:var(--pesto-muted);border-top:1px solid var(--pesto-line);
	padding-top:1rem;margin-top:1rem;
}
.single-product .product_meta a{color:var(--pesto-ink)}
/* Chowanie elementów podsumowania z Customizera (SKU / kategoria / dostępność).
   Uwaga: .single-product to klasa BODY — łączymy ją z klasą chowania na body. */
body.pesto-hide-sku .product_meta .sku_wrapper{display:none}
body.pesto-hide-cat .product_meta .posted_in{display:none}
body.pesto-hide-stock.single-product .stock,
body.pesto-hide-stock.single-product .pesto-lowstock{display:none}
/* Gdy SKU i kategoria ukryte — schowaj pustą ramkę meta */
body.pesto-hide-sku.pesto-hide-cat .product_meta{display:none}

/* Zakładki produktu jako „pills" */
.single-product .woocommerce-tabs{border-top:1px solid var(--pesto-line);padding-top:2rem;margin-top:1rem}
.single-product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 1.4rem;display:flex;gap:.5rem;flex-wrap:wrap}
.single-product .woocommerce-tabs ul.tabs::before{display:none}
.single-product .woocommerce-tabs ul.tabs li{
	background:var(--pesto-base);border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-pill);
	margin:0;padding:0;
}
.single-product .woocommerce-tabs ul.tabs li a{padding:.6rem 1.2rem;font-weight:600;color:var(--pesto-ink)}
.single-product .woocommerce-tabs ul.tabs li.active{background:var(--pesto-ink);border-color:var(--pesto-ink)}
.single-product .woocommerce-tabs ul.tabs li.active a{color:#fff}
/* margin-inline:auto = panel opisu WYŚRODKOWANY: warunek symetrii dla sekcji
   .pesto-pdp__features wyrywanej na pełną szerokość okna (mechanizm w base.css).
   Bez wyśrodkowania panelu ta sekcja przesuwa się w bok i tnie na krawędzi. */
.single-product .woocommerce-Tabs-panel{max-width:75ch;margin-inline:auto}
.single-product .woocommerce-Tabs-panel h2{font-family:var(--pesto-font-display);color:var(--pesto-ink)}

/* Powiązane / upsell = używają stylu siatki sklepu (wyżej) */
.single-product .related>h2,.single-product .upsells>h2{
	font-family:var(--pesto-font-display);font-size:1.6rem;color:var(--pesto-ink);margin:2.5rem 0 1.2rem;
}

@media(max-width:900px){
	.single-product div.product{grid-template-columns:1fr;gap:1.5rem}
}

/* ============================================================
   KOSZYK / CHECKOUT — spójne przyciski i pola (lekko)
   ============================================================ */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-cart table.cart,
.woocommerce-checkout #payment{border-radius:var(--pesto-radius,18px)}
.woocommerce form .form-row input.input-text{border:1.5px solid var(--pesto-line);padding:.7rem .9rem}
.woocommerce #payment{background:var(--pesto-surface)}

/* Customizer: zaokrąglenie przycisków + rozmiar tytułu karty */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce .single_add_to_cart_button{border-radius:var(--pesto-btn-radius)!important;text-transform:var(--pesto-btn-transform)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:var(--pesto-card-title-size)}

/* ============================================================
   SZLIF PROFESJONALNY — elementy Woo, które wyglądają „goło"
   ============================================================ */

/* Okruszki (breadcrumb) */
.woocommerce-breadcrumb{font-size:.85rem;color:var(--pesto-breadcrumb,var(--pesto-muted))!important;margin:.4rem 0 .5rem!important}
/* Pasek informacyjny sklepu (Store Notice) */
.woocommerce-store-notice,p.demo_store,.woocommerce-store-notice.demo_store{
	background:var(--pesto-storenotice-bg,var(--pesto-ink))!important;color:var(--pesto-storenotice-fg,#fff)!important;
	font-size:.9rem;text-align:center;padding:.7rem 1.2rem;
}
.woocommerce-store-notice a{color:var(--pesto-storenotice-fg,#fff);text-decoration:underline}
/* Styl zakładek produktu: podkreślenie (single_tab_style=underline) */
body.pesto-tabs-underline .single-product .woocommerce-tabs ul.tabs{background:transparent;border:0;border-bottom:1px solid var(--pesto-line);border-radius:0;padding:0;gap:.4rem}
body.pesto-tabs-underline .single-product .woocommerce-tabs ul.tabs li{background:transparent!important;border:0!important;border-radius:0!important}
body.pesto-tabs-underline .single-product .woocommerce-tabs ul.tabs li a{padding:.6rem .2rem;border-bottom:2px solid transparent}
body.pesto-tabs-underline .single-product .woocommerce-tabs ul.tabs li.active a{border-bottom-color:var(--pesto-accent);color:var(--pesto-ink)}
/* Układ kasy: jedna kolumna (checkout_layout=one) — klasyczny i blokowy checkout */
body.pesto-checkout-one .woocommerce-checkout form.checkout{display:block}
body.pesto-checkout-one .woocommerce-checkout form.checkout #order_review,
body.pesto-checkout-one .woocommerce-checkout form.checkout #order_review_heading{position:static;width:100%;margin-top:1.5rem}
body.pesto-checkout-one .wc-block-checkout__main{flex:1 1 100%;max-width:100%}
body.pesto-checkout-one .wc-block-checkout__sidebar{flex:1 1 100%;max-width:100%;position:static}

/* ============================================================
   STRONA PRODUKTU NA PEŁNĄ SZEROKOŚĆ (desktop)
   Sekcja galeria+podsumowanie wypełnia ekran (z oddechem --pesto-edge),
   zamiast siedzieć w wąskiej kolumnie. Opis ograniczony do czytelnej
   długości linii. Na mobile bez zmian (i tak pełna szerokość).
   ============================================================ */
@media (min-width: 901px) {
	/* Pewne, symetryczne wyśrodkowanie: każdy bezpośredni element treści sklepu
	   rozpina się na cały grid (1/-1), a szerokość + margin:auto centrują go
	   równo po obu stronach (bez polegania na torach 1fr, które się rozjeżdżały). */
	.single-product main.pesto-main > .woocommerce-breadcrumb,
	.single-product main.pesto-main > .product,
	.single-product main.pesto-main > .woocommerce-notices-wrapper,
	.single-product main.pesto-main > .woocommerce-message,
	.single-product main.pesto-main > .woocommerce-info{
		grid-column: 1 / -1;
		width: calc(100% - 2 * var(--pesto-edge));
		max-width: 1760px;
		margin-inline: auto;
		box-sizing: border-box;
	}
	/* Kolumny galerii i podsumowania muszą trzymać proporcje fr (bez tego
	   zdjęcie rozpycha lewą kolumnę, a podsumowanie zwija się i zostaje luka). */
	.single-product div.product > .woocommerce-product-gallery,
	.single-product div.product > .summary,
	.single-product div.product > .entry-summary{ min-width: 0; }
	/* Opis/zakładki: czytelna szerokość mimo pełnej szerokości sekcji */
	.single-product .woocommerce-Tabs-panel{ max-width: 90ch; }
	/* Równa wysokość BEZ pustej przestrzeni: karta = wysokość treści, a zdjęcie
	   galerii wypełnia tę wysokość (absolutne, cover). Tylko desktop + tryb bez miniatur. */
	body.pesto-gallery-no-thumbs .single-product .pesto-gallery{ height:100%; }
	body.pesto-gallery-no-thumbs .single-product .pesto-gallery .woocommerce-product-gallery__wrapper{ position:relative; height:100%; min-height:100%; }
	body.pesto-gallery-no-thumbs .single-product .pesto-gallery .woocommerce-product-gallery__image.is-active{ position:absolute; inset:0; margin:0!important; aspect-ratio:auto; }
	body.pesto-gallery-no-thumbs .single-product .pesto-gallery .woocommerce-product-gallery__image.is-active img{ width:100%!important; height:100%!important; object-fit:cover; }
}
.woocommerce-breadcrumb a{color:var(--pesto-muted)}
.woocommerce-breadcrumb a:hover{color:var(--pesto-accent-d)}

/* Pasek nad siatką: licznik + sortowanie w jednej linii */
.woocommerce-result-count{color:var(--pesto-muted);font-size:.9rem;margin:0 0 1.2rem!important;float:left}
.woocommerce-ordering{margin:0 0 1.2rem!important;float:right}
.woocommerce-ordering select{border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-pill);padding:.5rem 2.2rem .5rem 1rem;font:inherit;font-size:.9rem;font-weight:600;color:var(--pesto-ink);background-color:var(--pesto-base);cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23121316' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center}
.woocommerce-ordering select:hover{border-color:var(--pesto-accent)}

/* Paginacja jako pigułki */
.woocommerce nav.woocommerce-pagination{margin-top:2rem}
.woocommerce nav.woocommerce-pagination ul{border:0!important;display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap}
.woocommerce nav.woocommerce-pagination ul li{border:0!important;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{min-width:42px;height:42px;display:grid;place-items:center;border-radius:var(--pesto-radius-pill)!important;border:1.5px solid var(--pesto-line)!important;background:var(--pesto-base);color:var(--pesto-ink);font-weight:600;padding:0 .6rem!important;line-height:1!important;transition:.15s}
.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--pesto-accent)!important;color:var(--pesto-accent-d);background:var(--pesto-base)}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--pesto-ink)!important;border-color:var(--pesto-ink)!important;color:#fff!important}

/* Komunikaty Woo jako karty */
.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--pesto-base)!important;border:1px solid var(--pesto-line)!important;border-top:3px solid var(--pesto-accent)!important;border-radius:var(--pesto-radius)!important;box-shadow:var(--pesto-shadow-sm);color:var(--pesto-ink)!important;padding:1rem 1.2rem 1rem 3.2rem!important}
.woocommerce-error{border-top-color:#e23b4a!important}
.woocommerce-message::before{color:var(--pesto-accent)!important}
.woocommerce-info::before{color:var(--pesto-accent-d)!important}
.woocommerce-error::before{color:#e23b4a!important}
.woocommerce-message .button,.woocommerce-info .button{border-radius:var(--pesto-btn-radius)!important}

/* Gwiazdki ocen — złote, spójne */
.woocommerce .star-rating span::before,
.woocommerce p.stars a:hover::before,
.woocommerce p.stars a::before{color:var(--pesto-gold,#c8a24a)}
.woocommerce ul.products li.product .star-rating{margin:.25rem .4rem;font-size:.8em}

/* Tytuł produktu w siatce: maks. 2 linie, równa wysokość kart */
.woocommerce ul.products li.product .woocommerce-loop-product__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;line-height:1.3}
.woocommerce ul.products li.product{display:flex;flex-direction:column}
.woocommerce ul.products li.product .button{margin-top:auto}

/* Przycisk Quick View: subtelny, pojawia się na hover (desktop), zawsze na dotyku */
.pesto-qv-trigger{opacity:0;transform:translateY(4px);transition:.18s}
.woocommerce ul.products li.product:hover .pesto-qv-trigger,
.pesto-qv-trigger:focus-visible{opacity:1;transform:none}
@media(hover:none){.pesto-qv-trigger{opacity:1;transform:none}}

/* Badge wyprzedaży: jednolity, mały, w rogu zdjęcia */
.woocommerce span.onsale{position:absolute;top:.7rem;left:.7rem;margin:0!important;min-width:0!important;min-height:0!important;line-height:1.4!important;background:var(--pesto-sale-bg,var(--pesto-coral))!important;color:#fff!important;border-radius:var(--pesto-radius-pill)!important;padding:.25rem .7rem!important;font-size:.72rem!important;font-weight:700!important;z-index:2}

/* Pola formularzy Woo: spójne, miękkie */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .quantity input.qty{border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-sm);padding:.65rem .85rem;background:var(--pesto-base);font:inherit;transition:border-color .15s}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{border-color:var(--pesto-accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--pesto-accent) 18%,transparent)}
.woocommerce form .form-row label{font-weight:600;font-size:.88rem;color:var(--pesto-ink)}

/* Tabele koszyka: zdjęcia + linki produktów */
.woocommerce-cart table.cart td.product-name a{font-weight:600;color:var(--pesto-ink)}
.woocommerce-cart table.cart td.product-remove a{background:var(--pesto-surface)!important;color:var(--pesto-muted)!important;border-radius:50%;width:28px;height:28px;line-height:28px;font-weight:400}
.woocommerce-cart table.cart td.product-remove a:hover{background:#e23b4a!important;color:#fff!important}

/* Sekcja powiązanych/upsell: odstęp + nagłówek */
.single-product .related,.single-product .upsells{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--pesto-line)}

/* Clearfix dla floatów licznika/sortowania */
.woocommerce ul.products{clear:both}

/* ANTY-OVERFLOW siatki sklepu: elementy mogą się kurczyć, długie treści łamane */
.woocommerce ul.products{max-width:100%}
.woocommerce ul.products li.product{min-width:0;max-width:100%}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price{overflow-wrap:anywhere}
.woocommerce ul.products li.product .button{white-space:normal}
/* Pasek licznik/sortowanie nie wymusza szerokości */
.woocommerce-result-count,.woocommerce-ordering{max-width:100%}
.woocommerce-ordering select{max-width:100%}
/* Panel filtrów nie wystaje */
.pesto-filters,.pesto-filters__row{max-width:100%}
.pesto-price-slider{max-width:100%}

/* ============================================================
   LIFTING STRONY PRODUKTU
   ============================================================ */

/* Podsumowanie jako karta */
.single-product div.product .summary.entry-summary{background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius-lg);padding:1.4rem 1.6rem;align-self:start;width:100%;float:none;margin:0;display:flex;flex-direction:column}
/* Równa wysokość kolumn: blok zakupu (formularz z add-onami i przyciskiem) przyklejony
   do dołu karty — dzięki temu przy krótkiej treści/ukrytym meta nie zostaje pusta
   przestrzeń pod przyciskiem (CTA zawsze na dole). Meta tuż za nim. Galeria wyśrodkowana. */
.single-product div.product .summary.entry-summary > form.cart{margin-top:auto}
.single-product div.product .summary.entry-summary .product_meta{padding-top:1rem}
.single-product div.product > .woocommerce-product-gallery{align-self:stretch}
@media(max-width:900px){
	.single-product div.product .summary.entry-summary{padding:1.2rem 1.1rem}
	/* Kompakt mobile karty podsumowania: mniejsze przerwy = mniej „zmarnowanego" miejsca. */
	.single-product div.product .woocommerce-product-rating{margin-bottom:.5rem}
	.single-product div.product p.price{margin:.1rem 0 .4rem}
	.single-product div.product .woocommerce-product-details__short-description{margin:.4rem 0 .7rem}
	.single-product .pesto-omnibus{margin:.2rem 0 .6rem}
	.single-product div.product form.cart{margin:.6rem 0 1rem}
}

/* Mniej pustej przestrzeni u góry produktu (ciaśniejszy start) */
.single-product div.product{margin-top:.2rem}
.single-product div.product .summary.entry-summary > *:first-child{margin-top:0}
.single-product div.product .product_title{margin-top:0}
.single-product .pesto-gallery .woocommerce-product-gallery__image.is-active{margin-top:0!important}

/* Galeria: miniatury jako schludne kafle */
.single-product .woocommerce-product-gallery{position:relative}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs{display:flex;gap:.6rem;margin:.7rem 0 0;padding:0;flex-wrap:wrap}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li{width:72px;float:none;margin:0}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li img{border-radius:var(--pesto-radius-sm);border:2px solid transparent;opacity:.6;transition:.15s;cursor:pointer}
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
.single-product .woocommerce-product-gallery ol.flex-control-thumbs li img:hover{opacity:1;border-color:var(--pesto-accent)}
.single-product .woocommerce-product-gallery__trigger{background:var(--pesto-base)!important;border-radius:50%!important;box-shadow:var(--pesto-shadow-sm)}

/* Status dostępności jako pigułka */
.single-product .stock{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;border-radius:var(--pesto-radius-pill);padding:.3rem .85rem;margin:.4rem 0 .8rem}
.single-product .stock.in-stock{background:#e7f5ec;color:#117a3d}
.single-product .stock.in-stock::before{content:"";width:7px;height:7px;border-radius:50%;background:#1aa454}
.single-product .stock.out-of-stock{background:#fdeaea;color:#c0303d}

/* Tabela wariantów: czysto, etykiety nad selectami */
.single-product table.variations{border:0;margin:0 0 .6rem}
.single-product table.variations th.label{padding:.4rem 0 .15rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--pesto-muted);display:block}
.single-product table.variations td.value{padding:0 0 .6rem;display:block}
.single-product table.variations tr{display:block}
.single-product table.variations select{border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-sm);padding:.55rem .8rem;font:inherit;max-width:100%}
.single-product .reset_variations{font-size:.8rem;color:var(--pesto-muted)}
.single-product .woocommerce-variation-price{margin:.4rem 0 .6rem}
.single-product .woocommerce-variation-price .price{font-size:1.4rem!important}

/* Stepper ilości ± (przyciski dokleja JS motywu) */
.pesto-qty{display:inline-flex;align-items:center;border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-pill);overflow:hidden;background:var(--pesto-base)}
.pesto-qty .pesto-qty-btn{width:42px;height:46px;border:0;background:transparent;font-size:1.15rem;cursor:pointer;color:var(--pesto-ink);transition:background .12s}
.pesto-qty .pesto-qty-btn:hover{background:var(--pesto-surface)}
.pesto-qty input.qty{width:48px;height:46px;border:0!important;text-align:center;font-size:1rem;background:transparent;-moz-appearance:textfield;box-shadow:none!important}
.pesto-qty input.qty::-webkit-outer-spin-button,.pesto-qty input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Meta produktu: drobne kapitaliki */
.single-product .product_meta>span{display:block;font-size:.8rem;margin:.2rem 0}
.single-product .product_meta>span>span,.single-product .product_meta a{color:var(--pesto-ink);font-weight:600}

/* Opinie: lista jako karty + formularz */
.single-product #reviews .commentlist{list-style:none;margin:0;padding:0}
.single-product #reviews .commentlist li{margin:0 0 1rem}
.single-product #reviews .comment_container{background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);padding:1rem 1.2rem;display:flex;gap:.9rem}
.single-product #reviews .comment_container img.avatar{width:44px;height:44px;border-radius:50%;padding:0;border:0;position:static}
.single-product #reviews .comment-text{margin:0!important;border:0!important;padding:0!important;flex:1}
.single-product #reviews .comment-text .meta{font-size:.82rem;color:var(--pesto-muted);margin:.15rem 0 .4rem}
.single-product #review_form #respond{background:var(--pesto-surface);border-radius:var(--pesto-radius);padding:1.2rem 1.4rem}
.single-product #review_form #respond .comment-reply-title{font-family:var(--pesto-font-display);font-weight:700}

/* Krótki opis: lekko wyróżniony */
.single-product .woocommerce-product-details__short-description{font-size:1.02rem;line-height:1.65}

/* Cena na karcie produktu: stara cena mniejsza, obok */
.single-product div.product p.price{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}

/* ============================================================
   FIX UKŁADU STRONY PRODUKTU (grid 2-kol. tylko dla galerii+podsumowania)
   ============================================================ */
.single-product div.product{position:relative}
/* Dzieci grida mogą się kurczyć (anty-overflow) */
.single-product div.product > *{min-width:0}
/* Wszystko poza galerią i podsumowaniem zajmuje PEŁNĄ szerokość pod spodem */
.single-product div.product > *:not(.woocommerce-product-gallery):not(.summary):not(.entry-summary){grid-column:1/-1}
/* MODEL SZEROKOŚCI OPISU: panel = treść STANDARDOWA — czytelna, wyśrodkowana kolumna
   (≤1180px) z paddingiem po bokach. Sekcje SPECJALNE (.pesto-pdp__features pesto-full--deep,
   100vw) wybijają się poza nią na pełną szerokość; panel jest wyśrodkowany, więc full-bleed
   wychodzi symetrycznie do krawędzi ekranu.
   NIE dawać tu overflow-x (auto/clip/hidden) — tworzy kontener przewijania, który PRZYCINA
   full-bleed. Szerokie tabele mają własne wrappery (.pesto-pdp table, .pesto-pdp__table-wrap). */
/* KLUCZ (0.7.20): WooCommerce core ma `.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 2em}`
   (specyficzność 0,4,1) — BIJE nasze margin-inline:auto (0,2,0) i ustawia margin-left:0 → panel
   ZBITY W LEWO, więc cały opis jest przesunięty w lewo, a sekcja full-bleed (liczona od
   niewyśrodkowanego panelu) ucieka w bok i „brakuje po prawej". Dlatego centrowanie na !important. */
.single-product .woocommerce-Tabs-panel{max-width:var(--pesto-content,1180px);margin-left:auto!important;margin-right:auto!important;padding-inline:var(--pesto-edge)}
.single-product .woocommerce-Tabs-panel img{max-width:100%;height:auto}
/* BEZPIECZNIK poziomego scrolla (0.7.19): sekcja full-bleed używa 100vw, które LICZY
   też szerokość paska przewijania → ~15px nadmiaru po prawej. Bez tego strona dostaje
   poziomy scroll i wygląda na „odsuniętą, z brakiem po prawej" — zwłaszcza po pasie
   pełnej szerokości. Klip na PEŁNOSZEROKIM <main> (NIE na panelu opisu!) ucina nadmiar.
   overflow-x:clip (a nie hidden/auto) NIE tworzy kontenera scrolla → sticky podsumowanie
   i full-bleed sekcje działają dalej. */
.single-product main.pesto-main{overflow-x:clip}
/* Galeria nigdy nie szersza niż kolumna */
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery .flex-viewport{max-width:100%}

/* ============================================================
   TIP-TOP #4 — siatka sklepu: przyciski wtórne, "zobacz koszyk"
   ============================================================ */
/* "Tovább olvasom"/„Wybierz opcje"/„Czytaj więcej" jako ghost (odróżnij od kup) */
.woocommerce ul.products li.product .button.product_type_variable,
.woocommerce ul.products li.product .button.product_type_grouped,
.woocommerce ul.products li.product .button.product_type_external,
.woocommerce ul.products li.product a.button:not(.add_to_cart_button):not(.ajax_add_to_cart){background:transparent!important;color:var(--pesto-ink)!important;border:1.5px solid var(--pesto-line)!important;box-shadow:none}
.woocommerce ul.products li.product .button.product_type_variable:hover,
.woocommerce ul.products li.product a.button:not(.add_to_cart_button):not(.ajax_add_to_cart):hover{border-color:var(--pesto-ink)!important}
/* Link „Zobacz koszyk" po dodaniu AJAX */
.woocommerce ul.products li.product .added_to_cart{display:block;background:transparent!important;color:var(--pesto-accent-d)!important;border:0!important;text-align:center;font-size:.85rem;margin-top:.35rem;text-decoration:underline}
/* Spinner ładowania w kolorze akcentu */
.woocommerce .button.loading::after{color:var(--pesto-accent-ink)}

/* ============================================================
   TIP-TOP #5 — koszyk: mobile w kafelkach, pusty koszyk
   ============================================================ */
@media(max-width:768px){
	.woocommerce-cart table.shop_table_responsive tr{display:block;background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius-sm,12px);margin-bottom:.6rem;padding:.6rem .7rem;position:relative}
	.woocommerce-cart table.shop_table_responsive thead{display:none}
	/* Tabela jako blok (inaczej display:table dopasowuje szerokość do najszerszego wiersza → overflow). */
	.woocommerce-cart table.shop_table_responsive,
	.woocommerce-cart table.shop_table_responsive tbody{display:block;width:100%;max-width:100%}
	/* Pozycja koszyka = kompaktowa karta: miniatura po lewej, szczegóły po prawej. */
	.woocommerce-cart table.shop_table_responsive tr.cart_item{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:.7rem;row-gap:.1rem;align-items:center}
	.woocommerce-cart table.shop_table_responsive tr.cart_item > td{min-width:0;overflow-wrap:anywhere}
	.woocommerce-cart table.shop_table_responsive td.product-name .pesto-cart-hint{flex-wrap:wrap;max-width:100%;white-space:normal;overflow-wrap:anywhere}
	.woocommerce-cart table.shop_table_responsive td.product-name .pesto-cart-hint__add{margin-top:.25rem;flex:none}
	.woocommerce-cart table.shop_table_responsive td{border:0!important;padding:.18rem 0!important;text-align:right;font-size:.85rem}
	.woocommerce-cart table.shop_table_responsive td[data-title]::before{content:attr(data-title);font-weight:600;color:var(--pesto-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;text-align:left}
	.woocommerce-cart table.shop_table_responsive td.product-thumbnail{grid-column:1;grid-row:1 / span 3;align-self:start;display:block;padding:0!important}
	.woocommerce-cart table.shop_table_responsive td.product-thumbnail::before{display:none}
	.woocommerce-cart table.shop_table_responsive td.product-thumbnail img{width:56px;height:56px;object-fit:cover;border-radius:10px;display:block;margin:.1rem 0 0}
	.woocommerce-cart table.shop_table_responsive td.product-name{grid-column:2;grid-row:1;display:block;text-align:left;font-size:.9rem;font-weight:600;line-height:1.3;padding-right:2.5rem!important}
	.woocommerce-cart table.shop_table_responsive td.product-name::before{display:none}
	.woocommerce-cart table.shop_table_responsive td.product-name a{color:var(--pesto-ink)}
	.woocommerce-cart table.shop_table_responsive td.product-price{display:none}
	.woocommerce-cart table.shop_table_responsive td.product-quantity{grid-column:2;grid-row:2;display:flex;justify-content:flex-start;align-items:center}
	.woocommerce-cart table.shop_table_responsive td.product-quantity::before{display:none}
	.woocommerce-cart table.shop_table_responsive td.product-subtotal{grid-column:2;grid-row:3;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.98rem}
	.woocommerce-cart table.shop_table_responsive td.product-remove{position:absolute;top:.35rem;right:.45rem;padding:0!important}
	.woocommerce-cart table.shop_table_responsive td.product-remove::before{display:none}
	.woocommerce-cart table.shop_table{border:0;background:transparent}
	.woocommerce-cart table.cart td.actions{display:block;text-align:left}
	.woocommerce-cart table.cart td.actions::before{display:none}
	.woocommerce-cart table.cart td.actions .coupon{display:flex;gap:.5rem;width:100%}
	.woocommerce-cart table.cart td.actions .coupon input{flex:1}
	/* MOBILE: nie „kartuj" wiersza order-bumpa (ma własny .pesto-bump z ramką/cieniem) ani
	   pustego wiersza akcji (kupon+update ukryte) — inaczej reguła l.465 robi z nich szare,
	   puste prostokąty pod pozycjami koszyka. Bez overflow-x na html/body. */
	.woocommerce-cart table.shop_table_responsive tr.pesto-bump-row{background:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important}
	.woocommerce-cart table.shop_table_responsive tr.pesto-bump-row td{display:block!important;padding:0!important}
	.woocommerce-cart table.shop_table_responsive tr.pesto-bump-row td::before{display:none!important}
	.woocommerce-cart table.shop_table_responsive tr:has(td.actions){background:none!important;border:0!important;border-radius:0!important;padding:0!important;margin:0!important}
	.woocommerce-cart table.shop_table_responsive td.actions{display:block!important;padding:0!important;border:0!important}
	.woocommerce-cart table.shop_table_responsive td.actions::before{display:none!important}
}
.cart-empty.woocommerce-info{text-align:center;padding:2.4rem 1.2rem!important;font-size:1.05rem}
.woocommerce .return-to-shop{text-align:center;margin-top:1rem}

/* ============================================================
   TIP-TOP #6 — checkout: 2 kolumny, zamówienie jako sticky karta
   ============================================================ */
@media(min-width:1000px){
	.woocommerce-checkout form.checkout.woocommerce-checkout{display:grid;grid-template-columns:1.05fr .9fr;gap:0 2.4rem;align-items:start}
	.woocommerce-checkout form.checkout #customer_details{grid-column:1;grid-row:1/3}
	.woocommerce-checkout form.checkout #order_review_heading{grid-column:2;grid-row:1;margin-top:0}
	.woocommerce-checkout form.checkout #order_review{grid-column:2;grid-row:2;position:sticky;top:calc(var(--pesto-header-h) + 16px)}
	/* Karta zaufania — pod podsumowaniem, w prawej kolumnie. (Cross-selle są poza
	   formularzem, pod całą kasą — woocommerce_after_checkout_form). */
	.woocommerce-checkout form.checkout > .pesto-reassure{grid-column:2;min-width:0}
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{width:100%;float:none}
.woocommerce-checkout h3{margin:1.4rem 0 .9rem}
.woocommerce-checkout #order_review_heading{font-family:var(--pesto-font-display)}

/* KASA „split" (układ jak kisando): dane + płatność = LEWA kolumna, podsumowanie + upsell = PRAWA.
   Szablon woocommerce/checkout/form-checkout.php owija w .pesto-co__main / .pesto-co__side;
   płatność przepięta do lewej przez pesto_relocate_checkout_payment(). */
.pesto-co__main{min-width:0}
.pesto-co__side{min-width:0}
.pesto-co__main #payment,.pesto-co__main .woocommerce-checkout-payment{margin-top:1.6rem}
@media(min-width:1000px){
	.woocommerce-checkout form.checkout.pesto-checkout--split{display:grid;grid-template-columns:1.05fr .9fr;gap:0 2.4rem;align-items:start}
	.pesto-co__main{grid-column:1}
	.pesto-co__side{grid-column:2;align-self:start;position:sticky;top:calc(var(--pesto-header-h) + 16px)}
	.woocommerce-checkout form.checkout.pesto-checkout--split #order_review{position:static;top:auto}
}
/* Naprawa: przycisk „Kupuję i płacę" nie wystaje poza kolumnę (brak border-box → wystawał o padding). */
#place_order{box-sizing:border-box;max-width:100%}
.pesto-co__main #payment,.pesto-co__main #payment ul.payment_methods,.pesto-co__main #payment .place-order{box-sizing:border-box;min-width:0;max-width:100%}

/* Metody dostawy w LEWEJ kolumnie (jak kisando): blok „Dostawa" + radia jako karty. */
.pesto-co__shipping{margin-top:1.4rem}
.pesto-co__shipping-h{font-family:var(--pesto-font-display);font-size:1.1rem;font-weight:700;margin:0 0 .7rem;color:var(--pesto-ink)}
.pesto-co__shipping-table,.pesto-co__shipping-table tbody,.pesto-co__shipping-table tr,.pesto-co__shipping-table td{display:block;width:100%;border:0!important;padding:0!important;margin:0!important;background:none!important}
.pesto-co__shipping-table th{display:none}
.pesto-co__shipping-table ul#shipping_method,.pesto-co__shipping-table ul.woocommerce-shipping-methods{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}
.pesto-co__shipping-table ul#shipping_method li,.pesto-co__shipping-table ul.woocommerce-shipping-methods li{display:flex;align-items:center;gap:.85rem;background:var(--pesto-base);border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius);padding:1.05rem 1.15rem;margin:0;transition:border-color .15s ease}
.pesto-co__shipping-table ul#shipping_method li:has(input:checked){border-color:var(--pesto-accent);box-shadow:0 0 0 1px var(--pesto-accent)}
.pesto-co__shipping-table ul#shipping_method li input{flex:none;margin:0}
.pesto-co__shipping-table ul#shipping_method li label{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .55rem;font-weight:600;cursor:pointer;margin:0}
.pesto-co__shipping-table ul#shipping_method li label .amount{margin-left:auto;font-weight:700;white-space:nowrap}
.pesto-co__shipping-table ul#shipping_method li .pesto-method-icon{max-height:38px}
.pesto-ship-eta{display:block;width:100%;font-size:.8rem;font-weight:400;color:var(--pesto-muted);margin:.12rem 0 0}
.pesto-co__shipping-table .pesto-ship-eta{flex-basis:100%}

/* === POLISH koszyk/kasa: nagłówki sekcji, karty dostawy, miniatury w podsumowaniu === */
/* Wyraźniejsze nagłówki sekcji — JEDNA autorytatywna reguła (wysoka swoistość + !important),
   bo wcześniej w pliku są reguły ścinające h3 kasy do 1.1–1.2rem (517, 853, 859). */
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3.pesto-co__shipping-h,
.woocommerce-checkout h3.pesto-co__pay-h,
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-cart .cart_totals h2{font-family:var(--pesto-font-display)!important;font-size:1.5rem!important;font-weight:800!important;line-height:1.2;margin:0 0 1rem;color:var(--pesto-ink)}
.pesto-co__pay-h{margin:.2rem 0 1rem}
/* Karty metod dostawy — własne radio, hover, subtelne tło wybranej. */
.pesto-co__shipping-table ul#shipping_method li{cursor:pointer}
.pesto-co__shipping-table ul#shipping_method li:hover{border-color:var(--pesto-accent)}
.pesto-co__shipping-table ul#shipping_method li:has(input:checked){background:color-mix(in srgb,var(--pesto-accent) 6%,var(--pesto-base))}
.pesto-co__shipping-table ul#shipping_method li input[type=radio]{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--pesto-line);border-radius:50%;position:relative;cursor:pointer;transition:border-color .15s;flex:none}
.pesto-co__shipping-table ul#shipping_method li input[type=radio]:checked{border-color:var(--pesto-accent)}
.pesto-co__shipping-table ul#shipping_method li input[type=radio]:checked::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--pesto-accent)}
.pesto-co__shipping-table ul#shipping_method li label{font-size:1rem}
/* Miniatury produktów w PODSUMOWANIU zamówienia (kasa). */
.woocommerce-checkout-review-order-table td.product-name{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.woocommerce-checkout-review-order-table td.product-name .pesto-co-thumb{flex:none;line-height:0}
.woocommerce-checkout-review-order-table td.product-name .pesto-co-thumb img{width:46px;height:46px;object-fit:cover;border-radius:10px;border:1px solid var(--pesto-line);background:var(--pesto-soft,#f6f3ee)}
.woocommerce-checkout-review-order-table td.product-name .product-quantity{font-weight:600;color:var(--pesto-muted)}

/* Kupon — zwijany przycisk + pole w PODSUMOWANIU (koszyk + kasa). */
.pesto-coupon{margin:0 0 1.1rem}
.pesto-coupon__toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;background:var(--pesto-base);border:1.5px dashed var(--pesto-line);border-radius:var(--pesto-radius);padding:.8rem 1rem;font-weight:600;font-size:.92rem;cursor:pointer;color:var(--pesto-ink);transition:border-color .15s}
.pesto-coupon__toggle:hover{border-color:var(--pesto-accent)}
.pesto-coupon__chev{transition:transform .2s}
.pesto-coupon__toggle[aria-expanded="true"] .pesto-coupon__chev{transform:rotate(180deg)}
.pesto-coupon__box{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.6rem}
.pesto-coupon__box[hidden]{display:none}
.pesto-coupon__code{flex:1 1 140px;min-width:0;height:42px;box-sizing:border-box;padding:0 .85rem;border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-sm);background:#fff;color:var(--pesto-ink)}
.pesto-coupon__apply.button{flex:none;margin:0}
.pesto-coupon__msg{flex-basis:100%;font-size:.82rem;color:var(--pesto-muted);min-height:1em}
/* Schowaj domyślny kupon w tabeli koszyka — zastąpiony widżetem w podsumowaniu.
   !important + pełna swoistość, bo dalej w pliku jest reguła „pigułka" display:flex. */
.woocommerce-cart table.cart td.actions .coupon{display:none!important}

/* Przycisk „+ dodaj N" w klikalnej podpowiedzi promocji (discount-rules). */
.pesto-cart-hint__add{margin-left:auto;flex:none;border:1.5px solid var(--pp-accent,#c0492a);background:transparent;color:var(--pp-accent,#c0492a);border-radius:999px;padding:.22rem .7rem;font-size:.76rem;font-weight:700;cursor:pointer;line-height:1.3;white-space:nowrap;transition:.15s}
.pesto-cart-hint__add:hover{background:var(--pp-accent,#c0492a);color:#fff}
.pesto-cart-hint__add:disabled{opacity:.5;cursor:default}
.pesto-co__shipping-table .woocommerce-shipping-destination{font-size:.85rem;color:var(--pesto-muted);margin:.6rem 0 0}
.pesto-co__shipping-table p{margin:.5rem 0 0;font-size:.88rem}

/* Anty-dubel: w podsumowaniu (prawa kolumna) chowamy wiersz dostawy — wybór jest po lewej. */
.pesto-checkout--split #order_review .woocommerce-shipping-totals{display:none}

/* KASA split: ZGODY + „Kupuję i płacę" na DOLE prawej kolumny (przeniesione z #payment przez
   pesto_render_checkout_place_order + nadpisany szablon checkout/payment.php). */
.pesto-co__placeorder{margin-top:1.4rem}
.pesto-co__placeorder .place-order{margin:0;padding:0}
.pesto-co__placeorder .woocommerce-terms-and-conditions-wrapper,
.pesto-co__placeorder .woocommerce-privacy-policy-text{font-size:.86rem;color:var(--pesto-muted)}
.pesto-co__placeorder .woocommerce-privacy-policy-text p{margin:0 0 .6rem}
.pesto-co__placeorder .validate-required{margin:.5rem 0 1rem}
.pesto-co__placeorder #place_order{width:100%;box-sizing:border-box;max-width:100%}
/* Pasek zaufania pod przyciskiem: trzyma się kolumny (koniec rozjazdu na lewą krawędź). */
.pesto-co__placeorder .pesto-wc-trust{max-width:100%;width:100%}

/* ============================================================
   TIP-TOP #6b — koszyk: 2 kolumny (pozycje + sticky podsumowanie)
   ============================================================ */
@media(min-width:1000px){
	.woocommerce-cart .woocommerce{display:grid;grid-template-columns:1.6fr 1fr;gap:1.5rem 2.4rem;align-items:start}
	/* Pełna szerokość: pasek darmowej dostawy i powiadomienia. */
	.woocommerce-cart .woocommerce > .pesto-fsb,
	.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper{grid-column:1/-1;width:100%!important;float:none!important;margin:0}
	/* Cross-selle w LEWEJ kolumnie — pod pozycjami, obok podsumowania (jak wzór),
	   a nie samotny pas na samym dole. */
	.woocommerce-cart .cross-sells{grid-column:1/-1;width:100%!important;max-width:520px;float:none!important;margin:1.5rem auto 0}
	/* Pozycje | przyklejone podsumowanie w jednym rzędzie. */
	.woocommerce-cart .woocommerce-cart-form{grid-column:1;min-width:0;margin:0}
	.woocommerce-cart .cart-collaterals{grid-column:2;width:auto!important;margin:0;position:sticky;top:calc(var(--pesto-header-h) + 16px)}
	.woocommerce-cart .cart-collaterals .cart_totals{width:100%!important;float:none!important;margin:0}
}

/* ============================================================
   TIP-TOP #7 — Moje konto: nawigacja jako pigułki, układ
   ============================================================ */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:230px 1fr;gap:2rem;align-items:start}
@media(max-width:850px){.woocommerce-account .woocommerce{grid-template-columns:1fr}}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:.5rem;background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius)}
.woocommerce-MyAccount-navigation li{margin:0}
.woocommerce-MyAccount-navigation li a{display:block;padding:.6rem .9rem;border-radius:10px;color:var(--pesto-ink);text-decoration:none;font-weight:500;transition:.13s}
.woocommerce-MyAccount-navigation li a:hover{background:var(--pesto-surface)}
.woocommerce-MyAccount-navigation li.is-active a{background:var(--pesto-ink);color:#fff}
.woocommerce-MyAccount-content{min-width:0}
/* Logowanie/rejestracja: karta na środku */
.woocommerce-account:not(.logged-in) .woocommerce{display:block;max-width:460px;margin-inline:auto}
.woocommerce form.login,.woocommerce form.register{border:1px solid var(--pesto-line)!important;border-radius:var(--pesto-radius-lg)!important;padding:1.6rem!important;background:var(--pesto-base)}

/* ============================================================
   TIP-TOP #8 — drobiazgi
   ============================================================ */
/* Ilość w siatce/koszyku spójna z pigułkami */
.woocommerce table.cart td.product-quantity .pesto-qty input.qty{height:40px}
.woocommerce table.cart td.product-quantity .pesto-qty .pesto-qty-btn{height:40px;width:36px}
/* Linki "screen-reader" Woo nie psują układu */
.woocommerce-result-count{padding-top:.5rem}
/* Tabelki w treściach */
.woocommerce table.shop_attributes{border:1px solid var(--pesto-line);border-radius:var(--pesto-radius-sm);border-collapse:separate;overflow:hidden}
.woocommerce table.shop_attributes th{background:var(--pesto-surface);width:38%}
.woocommerce table.shop_attributes td,.woocommerce table.shop_attributes th{padding:.6rem .9rem;border:0;border-top:1px solid var(--pesto-line)}

/* ============================================================
   TIP-TOP #9 — checkout: select2, płatności jako karty, kupon
   ============================================================ */
/* Select2 (kraj/region) — spójny z resztą pól */
.woocommerce .select2-container--default .select2-selection--single{border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-sm);height:auto;padding:.55rem .85rem;background:var(--pesto-base)}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.4;padding:0;color:var(--pesto-ink)}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:.6rem}
.select2-dropdown{border:1.5px solid var(--pesto-line)!important;border-radius:var(--pesto-radius-sm)!important;box-shadow:var(--pesto-shadow)}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--pesto-accent)!important;color:var(--pesto-accent-ink,#1a1a17)!important}
.select2-search--dropdown .select2-search__field{border:1.5px solid var(--pesto-line)!important;border-radius:8px!important;padding:.4rem .6rem!important}

/* Metody płatności: RZĄD kart (etykieta + logo), a OPIS/POLA wybranej metody w osobnym pasie
   POD rzędem (pełna szerokość). FLEX z wypełnianiem (flex:1 1) — karty rozciągają się równo
   niezależnie od liczby: 2 metody = po połowie, 5 = w rzędzie (koniec „pływających pigułek").
   Trik: li=display:contents → etykiety i .payment_box to elementy flex; box ma order:1 +
   flex-basis:100%, więc trafia pod cały rząd. WooCommerce pokazuje tylko wybrany box. */
.woocommerce-checkout #payment{background:transparent!important}
.woocommerce-checkout #payment ul.payment_methods{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:1rem;border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius);background:var(--pesto-surface);list-style:none}
.woocommerce-checkout #payment ul.payment_methods li{display:contents}
/* Ukryj natywne radio metody płatności (wybór przez kliknięcie karty = label[for]).
   Selektor POTOMKA (nie tylko `li >`) + visually-hidden = pancerne ukrycie niezależnie od
   zagnieżdżenia; radio zostaje w DOM i klikalne przez label. */
.woocommerce-checkout #payment ul.payment_methods input[type=radio]{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;opacity:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;pointer-events:none}
.woocommerce-checkout #payment ul.payment_methods li > label{order:0;flex:1 1 140px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;min-height:62px;padding:.85rem .7rem;margin:0;background:var(--pesto-base);border:1.5px solid var(--pesto-line);border-radius:var(--pesto-radius-sm,12px);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;line-height:1.25;text-align:center;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) > label{border-color:var(--pesto-accent);box-shadow:0 0 0 1px var(--pesto-accent)}
.woocommerce-checkout #payment ul.payment_methods li:has(input:focus-visible) > label{box-shadow:0 0 0 2px var(--pesto-accent)}
.woocommerce-checkout #payment ul.payment_methods li img,
.woocommerce-checkout #payment ul.payment_methods li .pesto-method-icon{max-height:30px;margin:0!important;vertical-align:middle}
/* Opis/pola wybranej metody — osobny pas POD rzędem, pełna szerokość. */
.woocommerce-checkout #payment ul.payment_methods li > .payment_box{order:1;flex:1 1 100%;width:100%;box-sizing:border-box;margin:0!important;background:var(--pesto-base)!important;border:1.5px solid var(--pesto-line)!important;border-radius:var(--pesto-radius-sm,12px)!important;padding:1rem 1.1rem!important;font-size:.9rem;line-height:1.55;text-align:left}
.woocommerce-checkout #payment ul.payment_methods li > .payment_box::before{display:none!important}
/* Komunikat zniechęcający do pobrania (moduł cod-incentive) — w opisie WYBRANEJ metody. Zielony = oszczędność. */
.pesto-codinc{display:block;background:#eef6f0;color:#0f5f33;border:1px solid #cfe8d8;border-radius:var(--pesto-radius,14px);padding:.7rem .95rem;font-size:.88rem;line-height:1.4;margin:.4rem 0 0}

/* Ikony przypisane PER metoda płatności/dostawy (moduł „method-icons" w pestocommerce):
   logo z Biblioteki mediów pokazywane przy wyborze metody. Rozmiar/pozycja sterowane klasą
   z ustawień modułu — bez stylów inline. */
.pesto-method-icon{max-height:26px;width:auto;vertical-align:middle}
.pesto-method-icon--sm{max-height:20px}
.pesto-method-icon--lg{max-height:34px}
.pesto-method-icon--before{margin-right:.5rem}
.pesto-method-icon--after{margin-left:.5rem}
/* W liście płatności działa już reguła li img{max-height:26px} — podbijamy swoiste rozmiary sm/lg. */
.woocommerce-checkout #payment ul.payment_methods li img.pesto-method-icon--sm{max-height:20px}
.woocommerce-checkout #payment ul.payment_methods li img.pesto-method-icon--lg{max-height:34px}
/* Reguła li img ustawia margin-left:.4rem — neutralizujemy go dla ikon „przed nazwą". */
.woocommerce-checkout #payment ul.payment_methods li img.pesto-method-icon--before{margin-left:0;margin-right:.5rem}
/* Fallback dla payment_box poza panelem — spójny z regułą w panelu (l.663): białe, 12px.
   Box W panelu i tak bierze l.663 (wyższa swoistość); tu zero sprzeczności surface vs base. */
.woocommerce-checkout #payment div.payment_box{background:var(--pesto-base)!important;border-radius:var(--pesto-radius-sm);font-size:.9rem}
.woocommerce-checkout #payment div.payment_box::before{display:none!important}
.woocommerce-checkout #payment div.form-row.place-order{padding:1rem 0 0!important}
#place_order{width:100%;font-size:1.05rem!important;padding:1rem 1.4rem!important}

/* Kupon na checkoucie: schowany ładnie w karcie info */
.woocommerce-form-coupon-toggle .woocommerce-info{border-top-color:var(--pesto-accent)!important}
.woocommerce form.checkout_coupon{border:1.5px dashed var(--pesto-line)!important;border-radius:var(--pesto-radius)!important;padding:1.2rem!important}

/* ============================================================
   TIP-TOP #10 — Moje konto: tabele, adresy, detale
   ============================================================ */
.woocommerce-MyAccount-content table.shop_table{font-size:.92rem}
.woocommerce-MyAccount-content table.shop_table th{background:var(--pesto-surface);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--pesto-muted)}
.woocommerce-MyAccount-content .woocommerce-Address{background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);padding:1.1rem 1.3rem}
.woocommerce-MyAccount-content .woocommerce-Address-title h3{font-size:1.05rem;margin:0 0 .4rem}
.woocommerce-MyAccount-content .edit{font-size:.82rem;color:var(--pesto-accent-d)}
.woocommerce-MyAccount-content .woocommerce-Addresses{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:700px){.woocommerce-MyAccount-content .woocommerce-Addresses{grid-template-columns:1fr}}
.woocommerce-MyAccount-content fieldset{border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);padding:1rem 1.2rem;margin:1.2rem 0}
.woocommerce-MyAccount-content fieldset legend{font-weight:700;padding:0 .5rem}

/* ============================================================
   TIP-TOP #11 — mikro-detale spójności
   ============================================================ */
/* Linki "added to cart" w siatce */
.woocommerce ul.products li.product .added_to_cart{display:block;text-align:center;font-size:.85rem;color:var(--pesto-accent-d);margin-top:.3rem}
/* Tabela atrybutów (zakładka "Dodatkowe informacje") */
.woocommerce table.woocommerce-product-attributes th{background:var(--pesto-surface);font-weight:600;width:34%}
.woocommerce table.woocommerce-product-attributes td,.woocommerce table.woocommerce-product-attributes th{padding:.7rem 1rem;border-bottom:1px solid var(--pesto-line)}
/* Gwiazdki w nagłówku opinii */
.woocommerce-Reviews-title{font-family:var(--pesto-font-display)}
/* Drobny scrollbar w panelach (filtry/mini-koszyk) — WebKit */
.pesto-filters::-webkit-scrollbar,.pesto-sc__items::-webkit-scrollbar{width:8px}
.pesto-filters::-webkit-scrollbar-thumb,.pesto-sc__items::-webkit-scrollbar-thumb{background:var(--pesto-line);border-radius:8px}

/* ============================================================
   GALERIA: tryb "strzałki" (slider bez miniatur)
   ============================================================ */
/* Ukryj miniatury w trybie strzałek */
body.pesto-gallery-arrows .woocommerce-product-gallery ol.flex-control-thumbs{display:none}
/* Strzałki: okrągłe, na zdjęciu, pojawiają się wyraźniej na hover */
.woocommerce-product-gallery .flex-direction-nav{position:absolute;inset:0;margin:0;padding:0;list-style:none;pointer-events:none;z-index:3}
.woocommerce-product-gallery .flex-direction-nav li{position:absolute;top:50%;transform:translateY(-50%)}
.woocommerce-product-gallery .flex-direction-nav .flex-nav-prev{left:.7rem}
.woocommerce-product-gallery .flex-direction-nav .flex-nav-next{right:.7rem}
.woocommerce-product-gallery .flex-direction-nav a{pointer-events:auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--pesto-base);color:var(--pesto-ink)!important;box-shadow:var(--pesto-shadow-sm);font-size:0;text-decoration:none;opacity:.85;transition:.15s}
.woocommerce-product-gallery .flex-direction-nav a:hover{opacity:1;background:var(--pesto-accent);color:var(--pesto-accent-ink,#1a1a17)!important;transform:scale(1.06)}
.woocommerce-product-gallery .flex-direction-nav a::before{content:"";width:11px;height:11px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;display:block}
.woocommerce-product-gallery .flex-direction-nav a.flex-prev::before{transform:rotate(135deg);margin-left:4px}
.woocommerce-product-gallery .flex-direction-nav a.flex-next::before{transform:rotate(-45deg);margin-right:4px}
.woocommerce-product-gallery .flex-direction-nav a.flex-disabled{opacity:0;pointer-events:none}
/* Kropki (tryb strzałki + kropki) */
.woocommerce-product-gallery .flex-control-paging{position:absolute;left:0;right:0;bottom:.8rem;display:flex;justify-content:center;gap:.45rem;margin:0;padding:0;list-style:none;z-index:3}
.woocommerce-product-gallery .flex-control-paging li{margin:0}
.woocommerce-product-gallery .flex-control-paging a{display:block;width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.75);box-shadow:0 1px 4px rgba(0,0,0,.25);font-size:0;transition:.15s}
.woocommerce-product-gallery .flex-control-paging a.flex-active{background:var(--pesto-accent);transform:scale(1.25)}
/* Zaokrąglenie i przycięcie viewportu slidera */
.woocommerce-product-gallery .flex-viewport{border-radius:var(--pesto-radius-lg);overflow:hidden}
/* Mobile: strzałki mniejsze */
@media(max-width:640px){.woocommerce-product-gallery .flex-direction-nav a{width:38px;height:38px}}

/* Proporcje zdjęć siatki + hover zoom (Customizer) */
.pesto-img-square .woocommerce ul.products li.product a img,
.pesto-img-portrait .woocommerce ul.products li.product a img{width:100%;object-fit:cover}
.pesto-img-square .woocommerce ul.products li.product a img{aspect-ratio:1/1}
.pesto-img-portrait .woocommerce ul.products li.product a img{aspect-ratio:3/4}
.pesto-img-hoverzoom .woocommerce ul.products li.product a img{transition:transform .35s ease}
.pesto-img-hoverzoom .woocommerce ul.products li.product:hover a img{transform:scale(1.045)}
.pesto-img-hoverzoom .woocommerce ul.products li.product a:first-of-type{overflow:hidden;border-radius:var(--pesto-radius-sm,12px);display:block}

/* ============================================================
   SZLIF KART PRODUKTÓW (premium look)
   ============================================================ */
/* Płynne powiększenie zdjęcia w obrębie zaokrąglenia */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product > a:first-of-type{display:block;overflow:hidden;border-radius:var(--pesto-radius,18px)}
.woocommerce ul.products li.product a img{transition:transform .4s ease;margin-bottom:0}
body.pesto-img-zoom .woocommerce ul.products li.product:hover a img{transform:scale(1.06)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{margin-top:.7rem;min-height:2.5em}
/* Stopka karty: tytuł + cena + przycisk wyrównane, równa wysokość kart */
.woocommerce ul.products li.product{display:flex;flex-direction:column}
.woocommerce ul.products li.product .price{margin-top:auto}
/* Przyciski w karcie: pełna szerokość, oddech */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
	display:block;text-align:center;margin:.5rem .4rem 0;padding:.65rem 1rem;
}
.woocommerce ul.products li.product .added_to_cart{background:var(--pesto-surface,#f3efe7) !important;color:var(--pesto-ink,#121316) !important;margin-top:.4rem}
/* Przycisk porównania pod kartą — dyskretny, wyśrodkowany */
.woocommerce ul.products li.product .pesto-cmp-btn{margin:.5rem auto 0;display:flex}

/* Ocena gwiazdkowa w karcie: spójny kolor złota */
.woocommerce ul.products li.product .star-rating span::before,
.woocommerce .star-rating span::before{color:var(--pesto-gold,#c8a24a)}
.woocommerce ul.products li.product .star-rating{margin:.2rem .4rem .1rem;font-size:.85em}

/* ============================================================
   SZLIF PRZYCISKÓW (mikro-interakcje)
   ============================================================ */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce .single_add_to_cart_button,.pesto-btn{
	transition:transform .12s ease,background .18s ease,box-shadow .18s ease !important;
}
.woocommerce a.button:active,.woocommerce button.button:active,
.woocommerce .single_add_to_cart_button:active,.pesto-btn:active{transform:translateY(1px)}
.woocommerce .single_add_to_cart_button{box-shadow:var(--pesto-cta-shadow,0 4px 14px rgba(200,162,74,.28))}
.woocommerce .single_add_to_cart_button:hover{box-shadow:var(--pesto-cta-shadow-h,0 6px 20px rgba(200,162,74,.38))}

/* ============================================================
   SZLIF WIZUALNY v2 — karty, ceny, przyciski, oddech
   ============================================================ */
/* Karta: miększy hover z delikatnym uniesieniem cienia + ramka akcentu */
.woocommerce ul.products li.product{
	display:flex;flex-direction:column;
	transition:transform .2s cubic-bezier(.2,.7,.3,1),box-shadow .25s ease,border-color .2s ease;
}
.woocommerce ul.products li.product:hover{border-color:color-mix(in srgb,var(--pesto-accent) 35%,var(--pesto-line))}
/* Tytuł: stała wysokość 2 linii = równy rząd kart */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
	min-height:2.6em;margin-bottom:.1rem;
}
/* Cena: nowa większa, przecena delikatniejsza, oszczędność w akcencie */
.woocommerce ul.products li.product .price{font-size:1.18rem;margin-top:auto}
.woocommerce ul.products li.product .price ins{color:var(--pesto-ink);font-weight:800}
/* Przycisk dodania: pełna szerokość karty, ikona koszyka, mocniejszy hover */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
	display:block;text-align:center;margin:.5rem .4rem 0;padding:.6rem 1rem !important;
	transition:background .15s ease,transform .15s ease;
}
.woocommerce ul.products li.product .button:hover{transform:translateY(-1px)}
.woocommerce ul.products li.product .button:active{transform:translateY(0)}
/* Gwiazdki ocen w siatce: złote, mniejsze, równo */
.woocommerce ul.products li.product .star-rating{font-size:.78rem;margin:.1rem .4rem .4rem;color:var(--pesto-gold,#c8a24a)}
body.pesto-hide-rating .woocommerce ul.products li.product .star-rating{display:none}

/* Pojedynczy produkt: galeria i podsumowanie z większym oddechem */
.single-product div.product .summary{padding-left:.3rem}
.single-product div.product .product_title{line-height:1.15;margin-bottom:.4rem}
.single-product div.product p.price{font-size:1.7rem;font-weight:800;color:var(--pesto-ink);font-family:var(--pesto-font-display);margin:.15rem 0 .6rem}
.single-product div.product p.price del{font-size:1.05rem;font-weight:400}
.single-product div.product .woocommerce-product-details__short-description{color:var(--pesto-body);line-height:1.65;margin:.5rem 0 .9rem}
/* Akapity wewnątrz krótkiego opisu: bez marginesów UA (duża pusta przerwa cena→opis). */
.single-product div.product .woocommerce-product-details__short-description p{margin:0 0 .6rem}
.single-product div.product .woocommerce-product-details__short-description p:last-child{margin-bottom:0}

/* Zakładki produktu: pigułkowe, czytelne */
.woocommerce-tabs ul.tabs{display:flex;gap:.5rem;flex-wrap:wrap;border:0;padding:0;margin:0 0 1.2rem}
.woocommerce-tabs ul.tabs::before{display:none}
.woocommerce-tabs ul.tabs li{background:var(--pesto-surface);border:0;border-radius:var(--pesto-radius-pill);margin:0;padding:0}
.woocommerce-tabs ul.tabs li::before,.woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce-tabs ul.tabs li a{padding:.5rem 1.2rem;font-weight:600;color:var(--pesto-body)}
.woocommerce-tabs ul.tabs li.active{background:var(--pesto-ink)}
.woocommerce-tabs ul.tabs li.active a{color:#fff}

/* Komunikaty Woo: spójne z motywem */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
	border-radius:var(--pesto-radius,18px);border-top:0;padding:1rem 1.2rem 1rem 3rem;
}
.woocommerce-message{border-left:4px solid var(--pesto-accent)}
.woocommerce-info{border-left:4px solid var(--pesto-coral)}

/* ============================================================
   SZLIF PROFESJONALNY v3 — koszyk, checkout, konto
   ============================================================ */
/* Koszyk: tabela czytelniejsza, miniatury zaokrąglone */
.woocommerce-cart table.cart img{border-radius:12px}
.woocommerce-cart table.cart{border-collapse:separate;border-spacing:0}
.woocommerce table.shop_table{border-radius:var(--pesto-radius,18px);overflow:hidden;border:1px solid var(--pesto-line)}
.woocommerce table.shop_table th{background:var(--pesto-surface);font-family:var(--pesto-font-display)}
.woocommerce table.shop_table td,.woocommerce table.shop_table th{padding:1rem}

/* Podsumowanie koszyka / zamówienia: karta */
.cart_totals,.woocommerce-checkout-review-order{
	background:var(--pesto-base,#fff);border:1px solid var(--pesto-line);
	border-radius:var(--pesto-radius-lg,26px);padding:1.4rem 1.5rem;
}
.cart_totals h2,.woocommerce-checkout #order_review_heading{font-family:var(--pesto-font-display);font-size:1.2rem;margin-bottom:1rem}

/* Checkout: pola formularza pełnej szerokości, sekcje z oddechem */
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{float:none;width:100%}
.woocommerce form .form-row{margin-bottom:1rem}
.woocommerce form .form-row label{margin-bottom:.35rem;display:inline-block}
.woocommerce-billing-fields h3,.woocommerce-additional-fields h3{font-family:var(--pesto-font-display);font-size:1.15rem;margin-bottom:.8rem}

/* Przycisk złożenia zamówienia: duży, pełnej szerokości na mobile */
#place_order{font-size:1.08rem;padding:1rem 2rem!important}
@media(max-width:782px){#place_order{width:100%}}

/* (Metody płatności — style skonsolidowane wyżej w sekcji „RZĄD kart + panel", ~l.650.
   Stary duplikat „czytelne karty" usunięty: kolidował z panelem #payment/ul.payment_methods.) */

/* Moje konto: nawigacja jako pigułki/lista czytelna */
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-radius:12px;overflow:hidden}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:.7rem 1rem;color:var(--pesto-body);text-decoration:none;border-radius:12px;transition:background .15s ease}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--pesto-surface)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:var(--pesto-ink);color:#fff}

/* Ilość (quantity) spójna z polami */
.woocommerce .quantity .qty{border-radius:var(--pesto-radius-pill,999px);text-align:center}

/* Breadcrumb dyskretny */
.woocommerce .woocommerce-breadcrumb{font-size:.85rem;color:var(--pesto-muted);margin-bottom:1.2rem}
.woocommerce .woocommerce-breadcrumb a{color:var(--pesto-muted)}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--pesto-accent)}

/* Komunikat pustego koszyka: przyjazny */
.cart-empty.woocommerce-info{text-align:center;font-size:1.05rem}

/* ============================================================
   FIX ZE ZRZUTÓW (desktop) — galeria produktu, full-width, sticky ATC
   ============================================================ */
/* 1) Obrazek galerii ZAWSZE wypełnia kolumnę (koniec małego obrazka w pustce) */
.single-product div.product .woocommerce-product-gallery{width:100%!important;float:none!important}
.single-product div.product .woocommerce-product-gallery__wrapper{margin:0;width:100%}
.single-product div.product .woocommerce-product-gallery__image{width:100%}
.single-product div.product .woocommerce-product-gallery__image a,
.single-product div.product .woocommerce-product-gallery__image img{display:block;width:100%;height:auto}
/* Strzałki: chowamy, gdy jest tylko jedno zdjęcie (brak rodzeństwa) */
.single-product .woocommerce-product-gallery .flex-direction-nav{display:none}
.single-product .woocommerce-product-gallery.has-multiple .flex-direction-nav{display:block}
/* Dopóki JS Woo nie doda klas — pokaż pierwszy obraz schludnie, ukryj nadmiar */

/* FULL-WIDTH: model nadrzędny jest w base.css (sekcja „OSTATECZNY MODEL
   SZEROKOŚCI"). Tu tylko drobne zabezpieczenia treści wewnątrz. */
.alignfull,.pesto-full{overflow:visible}
.pesto-full > *{max-width:100%}

/* Anty-overflow: realizowane przez model szerokości w base.css. */

/* ============================================================
   GALERIA PRODUKTU — KULOODPORNIE (fix małego obrazka + pustki)
   Przyczyna: grid rozciągał kolumnę galerii, a flexslider nie
   skalował obrazka na szerokość. Tu wymuszamy oba.
   ============================================================ */
/* Galeria nie rozciąga się w pionie do wysokości podsumowania */
.single-product div.product{align-items:stretch}
.single-product div.product .woocommerce-product-gallery{align-self:flex-start;width:100%!important;max-width:100%}
/* Wrapper i slajdy na pełną szerokość kolumny */
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery ul.slides,
.single-product .woocommerce-product-gallery ul.slides > li{width:100%!important}
/* OBRAZEK ZAWSZE wypełnia szerokość (przebija inline-style flexslidera) */
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image > a{display:block;width:100%}
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery img.wp-post-image,
.single-product .woocommerce-product-gallery ul.slides > li img{
	width:100%!important;height:auto!important;display:block;
}
/* Strzałki tylko gdy realnie >1 zdjęcie (klasy dodaje JS Woo) */
.single-product .woocommerce-product-gallery:not(.woocommerce-product-gallery--columns-1) .flex-direction-nav{display:block}
.single-product .woocommerce-product-gallery .flex-direction-nav li{top:50%}
/* Gdyby JS galerii w ogóle nie wstał: pokaż pierwszy obraz, schowaj resztę
   (zamiast stosu malutkich) — bezpieczny fallback bez pustej kolumny */

/* ============================================================
   GALERIA v2 — WŁASNA (bez flexslidera). Nadrzędna nad resztkami.
   Układ: główne zdjęcie (aktywne) na pełną szerokość kolumny,
   miniatury w rzędzie pod spodem. Zero liczenia wymiarów w JS.
   ============================================================ */
.single-product .woocommerce-product-gallery.pesto-gallery{
	position:static;width:100%!important;max-width:100%;opacity:1!important;
}
/* Wrapper = pionowy układ: główne + pasek miniatur (grid) */
.single-product .pesto-gallery .woocommerce-product-gallery__wrapper{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(72px,1fr));
	grid-auto-rows:auto;gap:.6rem;margin:0;width:100%!important;transform:none!important;
}
/* Każde zdjęcie = miniatura (domyślnie) */
.single-product .pesto-gallery .woocommerce-product-gallery__image{
	width:100%!important;margin:0!important;cursor:pointer;border-radius:var(--pesto-radius-sm);
	overflow:hidden;border:2px solid transparent;transition:border-color .15s,opacity .15s;opacity:.85;
	aspect-ratio:1/1;
}
.single-product .pesto-gallery .woocommerce-product-gallery__image:hover{opacity:1;border-color:var(--pesto-accent)}
.single-product .pesto-gallery .woocommerce-product-gallery__image a{display:block;width:100%;height:100%}
.single-product .pesto-gallery .woocommerce-product-gallery__image img{
	width:100%!important;height:100%!important;object-fit:cover;display:block;border-radius:0!important;margin:0!important;
}
/* Aktywne zdjęcie = duże, na górze, pełna szerokość kolumny */
.single-product .pesto-gallery .woocommerce-product-gallery__image.is-active{
	order:-1;grid-column:1/-1;cursor:default;opacity:1;border:0;
	border-radius:var(--pesto-radius-xl,36px);aspect-ratio:auto;margin-bottom:.3rem!important;
}
.single-product .pesto-gallery .woocommerce-product-gallery__image.is-active img{
	border-radius:var(--pesto-radius-xl,36px)!important;object-fit:contain;height:auto!important;
	background:var(--pesto-surface);
}
/* Gdy tylko 1 zdjęcie — brak paska miniatur (jest tylko aktywne) */
.single-product .pesto-gallery .woocommerce-product-gallery__image.is-active:only-child{margin-bottom:0!important}

/* Strzałki nawigacji (karuzela jednego zdjęcia, gdy miniatury ukryte) */
.single-product .pesto-gallery.pesto-has-arrows .woocommerce-product-gallery__wrapper{position:relative}
.single-product .pesto-gallery__nav{
	position:absolute;top:50%;transform:translateY(-50%);z-index:3;
	width:46px;height:46px;display:grid;place-items:center;
	border:0;border-radius:50%;cursor:pointer;
	background:var(--pesto-base);color:var(--pesto-ink);
	box-shadow:var(--pesto-shadow-sm);font-size:1.7rem;line-height:1;padding:0;
	opacity:.94;transition:background .15s,color .15s,opacity .15s;
}
.single-product .pesto-gallery__nav:hover{opacity:1;background:var(--pesto-accent);color:var(--pesto-accent-ink)}
.single-product .pesto-gallery__nav--prev{left:.8rem}
.single-product .pesto-gallery__nav--next{right:.8rem}
@media(max-width:640px){.single-product .pesto-gallery__nav{width:40px;height:40px;font-size:1.4rem}}

/* Wygaś resztki flexslidera/zoom/lightbox (nieaktywne, ale na wszelki wypadek) */
.single-product .pesto-gallery .flex-direction-nav,
.single-product .pesto-gallery .flex-control-nav,
.single-product .pesto-gallery .flex-control-paging,
.single-product .pesto-gallery .woocommerce-product-gallery__trigger{display:none!important}
/* Dopóki JS nie doda .pesto-gallery (np. wyłączony JS): pokaż 1. obraz ładnie */
.single-product .woocommerce-product-gallery:not(.pesto-gallery) .woocommerce-product-gallery__image:first-child img{width:100%!important;height:auto!important;border-radius:var(--pesto-radius-xl,36px)}
.single-product .woocommerce-product-gallery:not(.pesto-gallery) .woocommerce-product-gallery__image:nth-child(n+2){display:none}

/* ============================================================
   GALERIA v2 — ustawienia: miniatury / zoom / lightbox
   ============================================================ */
/* Przełącznik „pokaż miniatury": chowa wszystko poza aktywnym.
   !important — bije reguły WooCommerce core/blocks dla __image. */
body.pesto-gallery-no-thumbs .pesto-gallery .woocommerce-product-gallery__image:not(.is-active){display:none!important}

/* Zoom na najazd (tylko aktywne, duże zdjęcie) */
body.pesto-gallery-zoom .pesto-gallery .woocommerce-product-gallery__image.is-active{overflow:hidden;cursor:zoom-in}
body.pesto-gallery-zoom .pesto-gallery .woocommerce-product-gallery__image.is-active img{transition:transform .15s ease}

/* Kursor „powiększ" na aktywnym, gdy lightbox włączony */
body.pesto-gallery-lightbox .pesto-gallery .woocommerce-product-gallery__image.is-active{cursor:zoom-in}

/* Lightbox — pełnoekranowe powiększenie */
.pesto-lightbox{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:rgba(15,16,18,.92);padding:clamp(1rem,4vw,3rem)}
.pesto-lightbox.is-open{display:flex}
.pesto-lightbox__img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5);background:#fff}
.pesto-lightbox__close{position:absolute;top:1rem;right:1.2rem;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;transition:.15s}
.pesto-lightbox__close:hover{background:rgba(255,255,255,.25)}
.pesto-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:2rem;line-height:1;cursor:pointer;transition:.15s}
.pesto-lightbox__nav:hover{background:rgba(255,255,255,.25)}
.pesto-lightbox__prev{left:1.2rem}
.pesto-lightbox__next{right:1.2rem}
@media(max-width:640px){.pesto-lightbox__nav{width:44px;height:44px;font-size:1.5rem}}

/* ============================================================
   OPCJE Z CUSTOMIZERA: sticky podsumowanie + kasa bez rozproszeń
   ============================================================ */
/* Przyklejone podsumowanie produktu (opcja pesto_single_sticky_summary) */
@media(min-width:901px){
	body.pesto-single-sticky .single-product div.product .summary.entry-summary{
		position:sticky;top:calc(var(--pesto-header-h,74px) + 1rem);
	}
}
/* Kasa bez rozproszeń (opcja pesto_checkout_distraction_free) */
body.pesto-checkout-clean .pesto-header .pesto-nav,
body.pesto-checkout-clean .pesto-mobile-toggle,
body.pesto-checkout-clean .pesto-footer{display:none!important}
body.pesto-checkout-clean .pesto-header{box-shadow:none}

/* ============================================================
   SKLEP PREMIUM: hover-zdjęcie + „dodaj do koszyka" na hover
   ============================================================ */
/* Drugie zdjęcie pojawia się na najechanie (opcja shop_hover_image) */
body.pesto-card-hover-img .woocommerce ul.products li.product a img:first-of-type{transition:opacity .4s}
.pesto-card__alt-img{
	position:absolute;top:0;left:0;width:100%;height:auto;
	opacity:0;transition:opacity .4s ease;border-radius:var(--pesto-radius);
	pointer-events:none;z-index:1;
}
body.pesto-card-hover-img .woocommerce ul.products li.product a{position:relative;display:block}
body.pesto-card-hover-img .woocommerce ul.products li.product:hover .pesto-card__alt-img{opacity:1}

/* „Dodaj do koszyka" tylko po najechaniu — wyłącznie na urządzeniach z myszką.
   Na dotyku (telefon) przycisk zostaje zawsze widoczny. */
@media (hover:hover) and (pointer:fine){
	body.pesto-card-atc-hover .woocommerce ul.products li.product .button,
	body.pesto-card-atc-hover .woocommerce ul.products li.product .added_to_cart{
		opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease;
	}
	body.pesto-card-atc-hover .woocommerce ul.products li.product:hover .button,
	body.pesto-card-atc-hover .woocommerce ul.products li.product:focus-within .button,
	body.pesto-card-atc-hover .woocommerce ul.products li.product:hover .added_to_cart{
		opacity:1;transform:none;
	}
}

/* ============================================================
   OPIS PRODUKTU — KOMPONENT LANDINGOWY .pesto-pdp
   Zastępuje układy z page builderów (WPBakery vc_*) natywnym,
   responsywnym blokiem. Jedna wersja treści → responsywność z CSS
   (bez duplikatów desktop/mobile). Wszystko na tokenach --pesto-*.
   Lokalne tokeny (akcenty per produkt / rebranding w jednym miejscu):
   ============================================================ */
.pesto-pdp{
	--pesto-pdp-soft:#f4eae6;            /* miękkie tło sekcji wyróżnień */
	--pesto-pdp-card:#a4a9d9;            /* kolor kart cech */
	--pesto-pdp-card-ink:var(--pesto-ink);
	--pesto-pdp-ok:#1f8f5f;              /* semantyczny zielony (gwarancje/sukces) */
	--pesto-pdp-radius:var(--pesto-radius-lg);
	--pesto-pdp-gap:clamp(1rem,.6rem + 1.6vw,2rem);

	display:flex;flex-direction:column;
	gap:var(--pesto-pdp-section,clamp(2rem,1.2rem + 3vw,3.5rem));
	max-width:var(--pesto-content,1180px);
	margin-inline:auto;
	padding-inline:var(--pesto-edge);  /* treść standardowa z oddechem po bokach */
}
.pesto-pdp img{width:100%;height:auto;display:block;border-radius:var(--pesto-pdp-radius)}
/* ANTY-OVERFLOW: opis nigdy nie rozpycha karty produktu w poziomie (koniec przycinania / przesuwania).
   Zagnieżdżone gridy/flexy potrzebują min-width:0, inaczej obrazy (intrinsic 1000px) i tabele blokują kurczenie. */
.pesto-pdp{overflow-wrap:break-word;max-width:min(var(--pesto-content,1180px),100%)}
.pesto-pdp img{max-width:100%}
.pesto-pdp figure{margin:0}
.pesto-pdp__row,.pesto-pdp__cols,.pesto-pdp__features-inner,
.pesto-pdp__row > *,.pesto-pdp__cols > *,.pesto-pdp__col,.pesto-pdp__media{min-width:0}
.pesto-pdp table{display:block;width:fit-content;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.pesto-pdp h2{font-size:clamp(1.4rem,1.05rem + 1.4vw,2rem);margin:0 0 .5em}
.pesto-pdp h3{font-size:1.15rem;margin:0 0 .4em}
.pesto-pdp p{margin:0 0 1rem}
.pesto-pdp p:last-child{margin-bottom:0}

/* Dwie wersje treści: mobile (PRIORYTET) i desktop — celowo różny układ per urządzenie.
   Mobile-first: domyślnie widać .pesto-pdp__mobile; od 782px pokazujemy .pesto-pdp__desktop.
   Produkty bez dwóch wersji używają zwykłego .pesto-pdp (jeden zestaw, responsywny). */
.pesto-pdp__desktop{display:none}
.pesto-pdp__mobile{display:block}
@media (min-width:782px){
	.pesto-pdp__desktop{display:block}
	.pesto-pdp__mobile{display:none}
}

/* Wiersz: tekst + obraz (2 kolumny na desktopie, stos na mobile) */
.pesto-pdp__row{display:grid;gap:var(--pesto-pdp-gap);align-items:center}
@media (min-width:782px){
	.pesto-pdp__row{grid-template-columns:1fr 1fr}
	.pesto-pdp__row--alt .pesto-pdp__media{order:-1} /* obraz po lewej */
}

/* Lead/hero i CTA: wyśrodkowane, węższe */
.pesto-pdp__lead,.pesto-pdp__cta{text-align:center;max-width:68ch;margin-inline:auto}
.pesto-pdp__cta{display:flex;flex-direction:column;gap:1rem;align-items:center}
.pesto-pdp__cta img{max-width:520px}

/* Sekcja wyróżnień — PEŁNA SZEROKOŚĆ przez klasę .pesto-full--deep (z base.css:
   udokumentowany fallback pełnej szerokości dla treści zagnieżdżonej w opisie
   produktu). Tu tylko tło + padding + układ. Na desktopie 4 karty w narożnikach
   wokół wyśrodkowanego obrazu; na mobile — stos.
   UWAGA: breakout pełnej szerokości robi WYŁĄCZNIE base.css — nie dodawać tu
   reguł szerokości viewportu (smoke tego pilnuje). */
.pesto-pdp__features{
	background:var(--pesto-pdp-soft);
	padding:clamp(1.75rem,1rem + 3vw,4rem) var(--pesto-edge,1.5rem);
}
.pesto-pdp__features-inner{
	max-width:var(--pesto-wide,1400px);margin-inline:auto;
	display:grid;gap:1.1rem;grid-template-columns:1fr;
}
.pesto-pdp__features-inner .pesto-pdp__media{order:-1;margin-inline:auto;max-width:560px}
.pesto-pdp__feature{
	background:var(--pesto-pdp-card);color:var(--pesto-pdp-card-ink);
	border-radius:var(--pesto-radius);padding:1rem 1.2rem;text-align:center;
}
.pesto-pdp__feature strong{font-weight:700}
@media (min-width:900px){
	.pesto-pdp__features-inner{
		grid-template-columns:minmax(0,1fr) minmax(auto,560px) minmax(0,1fr);
		grid-template-rows:1fr 1fr;
		grid-template-areas:"tl img tr" "bl img br";
		gap:1.5rem 2.5rem;align-items:stretch;
	}
	.pesto-pdp__features-inner .pesto-pdp__media{grid-area:img;align-self:center;order:0;max-width:none}
	.pesto-pdp__features .pesto-pdp__feature{max-width:300px}
	.pesto-pdp__feature--tl{grid-area:tl;align-self:start;justify-self:start}
	.pesto-pdp__feature--tr{grid-area:tr;align-self:start;justify-self:end}
	.pesto-pdp__feature--bl{grid-area:bl;align-self:end;justify-self:start}
	.pesto-pdp__feature--br{grid-area:br;align-self:end;justify-self:end}
}

/* Trzy kolumny właściwości produktu */
.pesto-pdp__cols{display:grid;gap:var(--pesto-pdp-gap);grid-template-columns:1fr}
@media (min-width:782px){.pesto-pdp__cols{grid-template-columns:repeat(3,1fr)}}
.pesto-pdp__col{display:flex;flex-direction:column;gap:.7rem}

/* Listy zamiast „połamanych" emoji-punktorów */
.pesto-pdp__list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pesto-pdp__list li{position:relative;padding-left:1.6rem}
.pesto-pdp__list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--pesto-accent-on-light);font-weight:700}

/* Pomocnicze wyśrodkowanie nagłówka sekcji */
.pesto-pdp__center{text-align:center}

/* --- Hook above-the-fold: mikro-korzyści (USP) + mikro-zapewnienie pod CTA --- */
.pesto-pdp__usp{list-style:none;margin:1.2rem auto 0;padding:0;display:grid;gap:.55rem;max-width:42ch;text-align:left}
.pesto-pdp__usp li{position:relative;padding-left:1.8rem;font-weight:500}
.pesto-pdp__usp li::before{content:"✓";position:absolute;left:0;top:0;color:var(--pesto-accent-on-light);font-weight:700}
.pesto-pdp__reassure{font-size:.85rem;color:var(--pesto-muted);max-width:56ch;margin:.7rem auto 0;text-align:center}

/* --- CTA: wygodny tap-target, pełna szerokość na mobile --- */
.pesto-pdp .button,.pesto-pdp .add_to_cart_button,.pesto-pdp .added_to_cart{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.pesto-pdp__cta--inline{background:var(--pesto-pdp-soft);border-radius:var(--pesto-pdp-radius);padding:clamp(1.25rem,.8rem + 2vw,2rem);text-align:center;display:flex;flex-direction:column;gap:.8rem;align-items:center}
.pesto-pdp__cta--inline > p{margin:0}
@media (max-width:600px){
	.pesto-pdp__lead .button,.pesto-pdp__lead .add_to_cart_button,
	.pesto-pdp__cta .button,.pesto-pdp__cta .add_to_cart_button,
	.pesto-pdp__cta--inline .button,.pesto-pdp__cta--inline .add_to_cart_button{width:100%}
}

/* --- Pasek odznak zaufania („EcoPurr w skrócie") --- */
.pesto-pdp__badges{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.pesto-pdp__badge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:1.1rem .8rem;background:var(--pesto-surface);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);font-weight:600;font-size:.95rem;line-height:1.3}
.pesto-pdp__badge svg{width:30px;height:30px;color:var(--pesto-accent-on-light);flex:0 0 auto}

/* --- Tabela porównawcza (przewijanie TYLKO lokalne — nie html/body) --- */
.pesto-pdp__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--pesto-line);border-radius:var(--pesto-radius)}
.pesto-pdp__table-wrap:focus-visible{outline:3px solid var(--pesto-accent);outline-offset:2px}
.pesto-pdp__compare{border-collapse:collapse;width:100%;min-width:560px;font-size:.95rem}
.pesto-pdp__compare caption{caption-side:top;text-align:left;padding:.7rem .9rem;color:var(--pesto-muted);font-size:.85rem}
.pesto-pdp__compare th,.pesto-pdp__compare td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--pesto-line);vertical-align:top}
.pesto-pdp__compare thead th{background:var(--pesto-ink);color:#fff;font-weight:700;white-space:nowrap}
.pesto-pdp__compare tbody th{font-weight:600;color:var(--pesto-ink);background:var(--pesto-base)}
.pesto-pdp__compare tbody tr:last-child th,.pesto-pdp__compare tbody tr:last-child td{border-bottom:0}
.pesto-pdp__compare thead th:nth-child(2),
.pesto-pdp__compare tbody td:nth-child(2){background:var(--pesto-pdp-soft);color:var(--pesto-ink);font-weight:700}
@media (max-width:600px){.pesto-pdp__compare th[scope=row]{position:sticky;left:0;z-index:1}}

/* --- Redukcja ryzyka („Zamawiasz bez ryzyka") --- */
.pesto-pdp__assurance{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.pesto-pdp__assurance-item{display:flex;gap:.85rem;align-items:flex-start;padding:1.1rem 1.2rem;background:var(--pesto-base);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius)}
.pesto-pdp__assurance-item svg{flex:0 0 auto;width:26px;height:26px;color:var(--pesto-pdp-ok)}
.pesto-pdp__assurance-item strong{display:block;margin-bottom:.15rem;color:var(--pesto-ink)}
.pesto-pdp__assurance-item a{font-weight:600;display:inline-flex;align-items:center;min-height:48px}

/* --- Premium / a11y / tonowanie (zespół: design + a11y) --- */
/* Linki w treści PDP: akcent na jasnym tle + podkreślenie (znaczenie nie tylko kolorem) */
.pesto-pdp a:not(.button):not(.add_to_cart_button):not(.single_add_to_cart_button){color:var(--pesto-accent-on-light);text-decoration:underline;text-underline-offset:2px}
/* Wyraźny focus (ciemny, gruby) na elementach interaktywnych w PDP */
.pesto-pdp .button:focus-visible,.pesto-pdp .single_add_to_cart_button:focus-visible,.pesto-pdp .add_to_cart_button:focus-visible,.pesto-pdp a:focus-visible,.pesto-pdp summary:focus-visible{outline:3px solid var(--pesto-ink);outline-offset:2px}
/* Afordancja przewijania tabeli — cień prawej krawędzi, BEZ jednostek vw */
.pesto-pdp__table-wrap{position:relative}
.pesto-pdp__table-wrap::after{content:"";position:absolute;top:0;right:0;width:2.25rem;height:100%;pointer-events:none;background:linear-gradient(to right,transparent,rgba(20,24,29,.07))}
/* Anty-CLS dla obrazów PDP (kwadrat 1:1 domyślnie) */
.pesto-pdp__media img,.pesto-pdp__cta img,.pesto-pdp__cols img{aspect-ratio:1/1}
/* Wariant dla zdjęć/GIF-ów POZIOMYCH (np. animacje produktowe) — naturalne proporcje,
   bez przycinania do kwadratu. Dodaj klasę na kontenerze: <div class="pesto-pdp__media pesto-pdp__media--wide">.
   Dla braku CLS podaj w <img> realne width/height. */
.pesto-pdp__media.pesto-pdp__media--wide img{aspect-ratio:auto}
/* Sekcja PEŁNEJ SZEROKOŚCI (układ „historyjka" jak KocieCentrum): tekst w czytelnej
   kolumnie NAD szerokim zdjęciem. Użycie: <div class="pesto-pdp__prose">h2+p</div>
   a pod nim <div class="pesto-pdp__media pesto-pdp__media--wide"><img></div>. */
.pesto-pdp__prose{max-width:64ch;margin-inline:auto}

/* --- Specyfikacja auto (<dl> z atrybutów produktu) --- */
.pesto-pdp__specs{display:grid;grid-template-columns:1fr;gap:.6rem;margin:0;max-width:var(--pesto-content)}
.pesto-pdp__spec{display:flex;justify-content:space-between;gap:1rem;padding:.7rem .9rem;border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);background:var(--pesto-base)}
.pesto-pdp__spec dt{font-weight:600;color:var(--pesto-ink);margin:0}
.pesto-pdp__spec dd{margin:0;color:var(--pesto-body);text-align:right}
@media (min-width:782px){.pesto-pdp__specs{grid-template-columns:repeat(3,1fr)}}

/* =========================================================
   PRESETY STYLU KARTY PRODUKTU (oś tematyki sklepu)
   Wybór: Customizer „Karta produktu" → klasa body.pesto-preset--<slug>.
   Domyślny „ciepły-przyjazny" = BRAK nadpisań (bierze :root — rebranding w jednym
   miejscu). Każdy preset nadpisujący --pesto-accent nadpisuje też -ink i -d.
   Zakres: .single-product (cała karta produktu, też natywny przycisk kupna).
   ========================================================= */

/* Premium-minimal — stonowane złoto, więcej powietrza; ciemny ink na złocie (biały = FAIL AA ~3.4:1). */
body.pesto-preset--premium-minimal.single-product{
	--pesto-accent:#a9863a; --pesto-accent-d:#8a6a26;
	--pesto-surface:#f3efe7;
	--pesto-cta-shadow:0 8px 22px rgba(20,24,29,.06);
	--pesto-cta-shadow-h:0 12px 28px rgba(20,24,29,.10);
}
body.pesto-preset--premium-minimal.single-product .pesto-pdp{
	--pesto-pdp-soft:#f2efe9; --pesto-pdp-card:#e7e2d6; --pesto-pdp-card-ink:#121316;
	--pesto-radius-lg:14px; --pesto-radius:12px; --pesto-radius-sm:8px;
	--pesto-pdp-section:clamp(3rem,2rem + 4vw,5.5rem);
}

/* Bold-ecom — petrol, BIAŁE CTA (twardo wymuszone), większe przyciski, mocniejszy cień. */
body.pesto-preset--bold-ecom.single-product{
	--pesto-accent:#1c6b8c; --pesto-accent-d:#155670; --pesto-accent-ink:#ffffff;
	--pesto-accent-on-light:#155670; --pesto-surface:#eaf2f5;
	--pesto-cta-shadow:0 10px 26px rgba(28,107,140,.30);
	--pesto-cta-shadow-h:0 14px 32px rgba(28,107,140,.40);
}
body.pesto-preset--bold-ecom.single-product .pesto-pdp{
	--pesto-pdp-soft:#eaf2f5; --pesto-pdp-card:#1c6b8c; --pesto-pdp-card-ink:#ffffff;
	--pesto-pdp-section:clamp(2rem,1.4rem + 2.5vw,3.5rem);
}
body.pesto-preset--bold-ecom.single-product .pesto-pdp .single_add_to_cart_button,
body.pesto-preset--bold-ecom.single-product .pesto-pdp .button{font-size:1.05rem;padding:1rem 1.8rem}

/* ============================================================
   PREMIUM KOSZYK + KASA v4 — spójne ze stroną + zaufanie
   ============================================================ */
/* Pozycje koszyka: miniatura, ilość jako pigułka (bez strzałek) */
.woocommerce-cart table.cart td.product-thumbnail img{width:72px;height:72px;object-fit:cover;border-radius:12px}
.woocommerce-cart table.cart .product-quantity .quantity{margin:0}
.woocommerce-cart table.cart .product-quantity input.qty{
	width:66px;height:42px;text-align:center;border:1px solid var(--pesto-line);border-radius:999px;
	background:var(--pesto-base);font-weight:600;color:var(--pesto-ink);box-shadow:none;-moz-appearance:textfield;
}
.woocommerce-cart table.cart .product-quantity input.qty:focus{border-color:var(--pesto-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--pesto-accent) 18%,transparent);outline:0}
.woocommerce-cart table.cart .product-quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart table.cart .product-quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Stepper +/- przy ilości (dodawany przez JS) */
.woocommerce-cart .product-quantity .quantity.pesto-qty{display:inline-flex;align-items:center;border:1px solid var(--pesto-line);border-radius:999px;overflow:hidden;background:var(--pesto-base)}
.woocommerce-cart .product-quantity .quantity.pesto-qty input.qty{width:48px!important;height:38px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.woocommerce-cart .product-quantity .pesto-qbtn{width:34px;height:38px;padding:0;border:0;background:transparent;color:var(--pesto-ink);font-size:1.2rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .12s,color .12s}
.woocommerce-cart .product-quantity .pesto-qbtn:hover{background:var(--pesto-surface);color:var(--pesto-accent)}
.woocommerce-cart .product-quantity .pesto-qbtn:focus-visible{outline:2px solid var(--pesto-accent);outline-offset:-2px}

/* Kupon jako pigułka */
.woocommerce-cart table.cart td.actions .coupon{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.woocommerce-cart table.cart td.actions .coupon .input-text{flex:1 1 200px;min-width:0;height:44px;border-radius:999px!important;padding:0 1.1rem!important;margin:0!important}

/* Podsumowanie: duża suma, oszczędności na zielono, CTA pełnej szerokości */
.cart_totals .order-total th,.cart_totals .order-total .amount{font-size:1.15rem}
.cart_totals .order-total .amount{font-weight:800;color:var(--pesto-ink)}
.cart_totals .fee .amount,.cart_totals .cart-discount .amount{color:#0a6b52;font-weight:600}
.cart_totals .wc-proceed-to-checkout{padding-top:1rem!important}
.cart_totals .wc-proceed-to-checkout .checkout-button{display:block;width:100%;text-align:center;font-size:1.05rem;padding:1rem 1.4rem!important}

/* Pasek zaufania (koszyk + kasa) */
.pesto-wc-trust{display:flex;flex-wrap:wrap;gap:.45rem 1.1rem;justify-content:center;align-items:center;margin:1rem 0 0;color:var(--pesto-muted);font-size:.8rem}
.pesto-wc-trust__i{display:inline-flex;align-items:center;gap:.4rem}
.pesto-wc-trust__i svg{width:15px;height:15px;flex:none;color:var(--pesto-accent)}

/* Cross-selle „Dobierz do zamówienia": PROSTY carousel — JEDEN produkt naraz, auto-przesuwanie
   + strzałki. W pełni zawarty w swoim miejscu (overflow:hidden — nie nachodzi na inne sekcje).
   Liczbę produktów ogranicza filtr woocommerce_cross_sells_total (PHP, domyślnie 8). */
.cross-sells{position:relative;margin:1.5rem auto 0;min-width:0;width:100%;max-width:520px;overflow:hidden;clear:both;border:1px solid var(--pesto-line);border-radius:var(--pesto-radius);padding:1rem 1rem 1.1rem;background:var(--pesto-base)}
.cross-sells>h2{font-family:var(--pesto-font-display);font-size:1.2rem;font-weight:700;margin:0 0 .8rem;display:flex;align-items:center;gap:.55rem;color:var(--pesto-ink)}
.cross-sells>h2::before{content:"";flex:none;width:6px;height:1.1em;border-radius:3px;background:var(--pesto-accent)}
.cross-sells ul.products{
	display:flex!important;flex-wrap:nowrap;gap:0;margin:0;padding:0;list-style:none;
	overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
	scrollbar-width:none;-ms-overflow-style:none;
}
.cross-sells ul.products::-webkit-scrollbar{display:none;width:0;height:0}
.cross-sells ul.products::before,
.cross-sells ul.products::after{display:none!important}
/* Jeden produkt = jeden slajd: POZIOMA karta — miniatura | nazwa+cena | przycisk.
   Wypełnia szerokość (koniec „pływania" w pustce), czyta się jak gotowa rekomendacja. */
.cross-sells ul.products li.product{
	flex:0 0 100%!important;width:100%!important;max-width:100%!important;min-width:0;
	margin:0!important;float:none!important;box-sizing:border-box;scroll-snap-align:center;
	display:flex!important;flex-direction:row;align-items:center;text-align:left;gap:.9rem;
	padding:.4rem 2.9rem;background:none;border:0;box-shadow:none;transform:none}
.cross-sells ul.products li.product .pesto-xsell__link{
	display:flex;align-items:center;gap:.85rem;flex:1 1 auto;min-width:0;text-decoration:none;color:inherit}
.cross-sells ul.products li.product .pesto-xsell__media{flex:none;line-height:0}
.cross-sells ul.products li.product img{
	width:74px!important;height:74px!important;max-width:74px;max-height:74px;
	object-fit:cover;border-radius:14px;margin:0;background:var(--pesto-soft,#f6f3ee)}
.cross-sells ul.products li.product .pesto-xsell__info{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.cross-sells ul.products li.product .pesto-xsell__name{
	font-size:.95rem;font-weight:600;line-height:1.3;color:var(--pesto-ink);
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cross-sells ul.products li.product .pesto-xsell__price,
.cross-sells ul.products li.product .pesto-xsell__price .amount{font-size:1rem;font-weight:700;color:var(--pesto-ink);margin:0}
.cross-sells ul.products li.product .pesto-xsell__price del{font-weight:500;opacity:.55;font-size:.85em;margin-right:.3rem}
.cross-sells ul.products li.product .pesto-xsell__price ins{text-decoration:none}
.cross-sells ul.products li.product .pesto-xsell__action{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}
.cross-sells ul.products li.product .pesto-xsell__action .button{
	margin:0;font-weight:700;padding:.6rem 1.05rem;border-radius:999px;white-space:nowrap}
.cross-sells ul.products li.product .pesto-xsell__action .added_to_cart{font-size:.78rem;text-decoration:underline}
.cross-sells ul.products li.product:hover{transform:none;box-shadow:none}
.cross-sells ul.products li.product:hover .pesto-xsell__name{text-decoration:underline}
/* Strzałki — wewnątrz, widoczne gdy jest >1 produkt. */
.cross-sells .pesto-xsell-nav{
	position:absolute;top:50%;transform:translateY(-50%);z-index:3;
	width:38px;height:38px;border-radius:50%;display:none;align-items:center;justify-content:center;
	border:1px solid var(--pesto-line);background:var(--pesto-base,#fff);color:var(--pesto-ink,#191c1f);
	font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(16,24,40,.14);
	transition:border-color .15s ease,color .15s ease;
}
.cross-sells.pesto-xsell--has-nav .pesto-xsell-nav{display:inline-flex}
.cross-sells .pesto-xsell-nav--prev{left:.2rem}
.cross-sells .pesto-xsell-nav--next{right:.2rem}
.cross-sells .pesto-xsell-nav:hover{border-color:var(--pesto-accent);color:var(--pesto-accent)}

/* ============================================================
   UPSELL „Dobierz do zamówienia" — położenie jak kisando
   KOSZYK: siatka 3 PIONOWYCH kart w głównej kolumnie, pod pozycjami (nie carousel).
   KASA: karta w prawej kolumnie pod podsumowaniem (dopasowana do szerokości kolumny).
   ============================================================ */
.cross-sells--grid,
.woocommerce-cart .cross-sells--grid{max-width:none!important;width:100%;border:0;background:none;padding:0;overflow:visible;margin:2rem 0 .5rem;float:none}
.cross-sells--grid>h2{font-size:1.25rem}
.cross-sells--grid ul.products{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1.1rem;overflow:visible}
.cross-sells--grid ul.products li.product{
	flex:none!important;width:auto!important;max-width:none!important;
	display:flex!important;flex-direction:column;align-items:center;text-align:center;gap:.5rem;
	padding:1rem .8rem!important;border:1px solid var(--pesto-line)!important;border-radius:var(--pesto-radius);background:var(--pesto-base)!important;
	box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}
.cross-sells--grid ul.products li.product:hover{border-color:var(--pesto-accent)!important;box-shadow:0 6px 18px rgba(20,24,29,.07);transform:none}
.cross-sells--grid .pesto-xsell__link{flex-direction:column;align-items:center;text-align:center;gap:.5rem;flex:1 1 auto;width:100%}
.cross-sells--grid .pesto-xsell__media{display:block;width:100%;line-height:0}
.cross-sells--grid ul.products li.product img{
	width:100%!important;height:auto!important;max-width:280px;max-height:none;aspect-ratio:1/1;object-fit:cover;border-radius:14px;margin:0 auto;background:var(--pesto-soft,#f6f3ee)}
.cross-sells--grid .pesto-xsell__info{align-items:center;text-align:center;gap:.2rem}
.cross-sells--grid .pesto-xsell__name{-webkit-line-clamp:2}
.cross-sells--grid .pesto-xsell__action{flex-direction:column;align-items:stretch;width:100%;margin-top:.2rem}
.cross-sells--grid .pesto-xsell__action .button{width:100%;text-align:center}
/* Mobile: cart cross-selle jako poziomy SLIDER (zamiast stosu/siatki) — zwięźle, swipe. */
@media(max-width:768px){
	.cross-sells--grid ul.products{display:flex!important;grid-template-columns:none!important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:.7rem;padding:0 0 .3rem;margin:0;scrollbar-width:none}
	.cross-sells--grid ul.products::-webkit-scrollbar{display:none;width:0;height:0}
	.cross-sells--grid ul.products li.product{flex:0 0 47%!important;width:47%!important;max-width:47%!important;scroll-snap-align:start;margin:0!important}
}

/* Order bump jako wiersz NA DOLE tabeli koszyka (wpięty w produkty, po pozycjach). */
.woocommerce-cart table.cart tr.pesto-bump-row td{padding:1.4rem 0 .2rem!important;border:0!important;background:none!important}
.woocommerce-cart table.cart tr.pesto-bump-row:hover td{background:none!important}

/* KASA: karta upsella (carousel) w PRAWEJ kolumnie, pod podsumowaniem — szerokość kolumny. */
.woocommerce-checkout .cross-sells{max-width:100%;margin-left:0;margin-right:0;margin-top:1.2rem}

/* Schowaj „Aktualizuj koszyk" — jest auto-update przy zmianie ilości.
   UWAGA: tylko display:none (zostaje w DOM) — JS auto-update (inc/woocommerce.php ~l.700
   + order-extras) wywołuje na nim .click(), żeby wymusić przeliczenie koszyka. NIE usuwać. */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart input[name="update_cart"]{display:none!important}
/* Pusty wiersz akcji koszyka: kupon (l.568) i przycisk aktualizacji (wyżej) są ukryte,
   więc rdzeniowa komórka td.actions jest pusta, ale wciąż dziedziczy padding pozycji →
   robi brzydki pas pod order bumpem. Zwijamy JEJ padding/ramkę/linię (NIE display:none —
   przycisk musi zostać klikalny). Padding zwykłych pozycji (l.1410/1418) zostaje nietknięty. */
.woocommerce-cart table.cart td.actions{padding:0!important;border:0!important;line-height:0!important}

/* Obrazki responsywne + lżejsza podpowiedź promocji w koszyku */
.woocommerce-cart table.cart img{max-width:100%;height:auto}
/* FIX miniatury na desktopie: w układzie tabeli (table-layout:auto) `max-width:100%` powyżej
   pozwalał miniaturze kurczyć się przy dłuższej nazwie produktu, a `height:72px` zostawało →
   obrazek zgnieciony w cienki pasek. Rezerwujemy kolumnę i blokujemy kurczenie. Tylko desktop
   (≥769px); na mobile pozycja jest kartą (miniatura 56px), więc tej reguły tam nie chcemy. */
@media(min-width:769px){
	.woocommerce-cart table.cart td.product-thumbnail{width:88px}
	.woocommerce-cart table.cart td.product-thumbnail img{min-width:72px;max-width:none;flex:none}
}
.woocommerce-cart td.product-name .pesto-cart-hint{font-size:.74rem;padding:.35rem .55rem;margin-top:.45rem;line-height:1.3}

/* Więcej powietrza w pozycjach */
.woocommerce-cart table.cart td,.woocommerce-cart table.cart th{padding:1.1rem 1rem}

/* Mobile: mniejsze miniatury; cross-sell-slajd ciaśniej */
@media(max-width:600px){
	.woocommerce-cart table.cart td.product-thumbnail img{width:56px;height:56px}
	.cross-sells ul.products li.product{padding:.35rem 2.5rem;gap:.7rem}
	.cross-sells ul.products li.product img{width:60px!important;height:60px!important;max-width:60px;max-height:60px}
	.cross-sells ul.products li.product .pesto-xsell__action .button{padding:.55rem .85rem;font-size:.85rem}
	.woocommerce-cart table.cart td,.woocommerce-cart table.cart th{padding:.7rem 0}
}

/* Kasa: nagłówki, suma, przycisk, aktywna płatność */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading{font-family:var(--pesto-font-display)}
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total .amount{font-size:1.2rem}
.woocommerce-checkout-review-order-table tfoot .order-total .amount{font-weight:800}
.woocommerce-checkout-review-order-table .fee .amount,
.woocommerce-checkout-review-order-table .cart-discount .amount{color:#0a6b52;font-weight:600}
#place_order{display:block;width:100%;font-size:1.08rem;padding:1rem 2rem!important}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){border-color:var(--pesto-accent);box-shadow:0 0 0 1px var(--pesto-accent)}

/* ============================================================
   KOSZYK + KASA v5 — szerzej i z większym oddechem (jak wzór)
   ============================================================ */
/* KLUCZ: strona koszyka/kasy (page.php) ma wariant --narrow = 760px → poszerzamy
   kolumnę treści do „wide" TYLKO dla koszyka i kasy. */
body.woocommerce-cart .pesto-main.pesto-container--narrow,
body.woocommerce-cart .pesto-container--narrow .pesto-entry__content,
body.woocommerce-checkout .pesto-main.pesto-container--narrow,
body.woocommerce-checkout .pesto-container--narrow .pesto-entry__content{
	--pesto-content: var(--pesto-wide, 1400px);
}
@media(min-width:1000px){
	/* Więcej powietrza w siatkach. */
	.woocommerce-cart .woocommerce{gap:1.8rem 2.8rem}
	.woocommerce-checkout form.checkout.woocommerce-checkout{gap:0 2.8rem}
	/* Pozycje koszyka: większy oddech. */
	.woocommerce-cart table.cart td,.woocommerce-cart table.cart th{padding:1.3rem 1.1rem}
}
/* Karty podsumowania: więcej wnętrza. */
.cart_totals,.woocommerce-checkout-review-order{padding:1.6rem 1.7rem}
/* Duża suma jak we wzorze. */
.cart_totals .order-total th,.cart_totals .order-total .amount,
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total .amount{font-size:1.3rem}
.cart_totals .order-total .amount,
.woocommerce-checkout-review-order-table tfoot .order-total .amount{font-weight:800;color:var(--pesto-ink)}
/* Cross-selle: na dużym ekranie nieco większa miniatura slajdu. */
@media(min-width:1200px){
	.woocommerce-cart .cross-sells ul.products li.product img{width:84px!important;height:84px!important;max-width:84px;max-height:84px}
}

/* Karta zaufania w kolumnie podsumowania (koszyk + kasa). */
.pesto-reassure{background:var(--pesto-base,#fff);border:1px solid var(--pesto-line);border-radius:var(--pesto-radius,18px);padding:1.1rem 1.2rem;margin:1rem 0 0}
.pesto-reassure__h{margin:0 0 .75rem;font-weight:700;font-family:var(--pesto-font-display);font-size:1rem;color:var(--pesto-ink)}
.pesto-reassure__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.pesto-reassure__list li{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--pesto-body)}
.pesto-reassure__i{display:inline-flex;flex:none;color:var(--pesto-accent)}
.pesto-reassure__i svg{width:18px;height:18px}

/* ============================================================
   KOSZYK + KASA v6 — KOMPAKT MOBILE (jeden spójny rytm)
   ------------------------------------------------------------
   Cel właściciela: na telefonie nic przerośnięte, wszystko się
   mieści, karty spójne ("mega dobrze spina"). Warstwy v4/v5 podbiły
   KAŻDY wymiar regułami bez @media → desktopowy „oddech" przeciekał
   na mobile. Ten blok JEST OSTATNI w pliku → wygrywa kaskadę dla
   ≤600px. Desktop (≥1000px, sticky/2-kol) NIEtknięty. Zero zmian
   layoutu, zero overflow-x na html/body. Tap-targety ≥44px (a11y AA).
   Jeden rytm kart: padding ~1rem, radius var(--pesto-radius), bez
   krzykliwego uppercase. Wartości celowo zbite ~15–20% vs desktop.
   ============================================================ */
@media(max-width:600px){
	/* — Nagłówki sekcji: zbić z 1.5rem (POLISH !important) do 1.2rem — */
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout h3.pesto-co__shipping-h,
	.woocommerce-checkout h3.pesto-co__pay-h,
	.woocommerce-checkout .woocommerce-billing-fields > h3,
	.woocommerce-checkout .woocommerce-shipping-fields > h3,
	.woocommerce-checkout .woocommerce-additional-fields > h3,
	.woocommerce-cart .cart_totals h2{font-size:1.2rem!important;margin:0 0 .7rem!important;line-height:1.25}

	/* — Karty podsumowania (koszyk + kasa): mniej wnętrza, spójny radius 18px —
	   Swoistość MUSI dorównać base.css (.cart-collaterals .cart_totals / .woocommerce-checkout
	   .woocommerce-checkout-review-order, padding:1.4rem), inaczej nie nadpisze. Ten plik ładuje
	   się PO base.css → przy remisie swoistości wygrywa kolejnością. */
	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-checkout .woocommerce-checkout-review-order{padding:1.05rem 1.05rem;border-radius:var(--pesto-radius,18px)}
	/* Finalna suma do zapłaty: wyróżniona, ale nie przytłacza wąskiej karty (było 1.3rem). */
	.cart_totals .order-total th,.cart_totals .order-total .amount,
	.woocommerce-checkout-review-order-table tfoot .order-total th,
	.woocommerce-checkout-review-order-table tfoot .order-total .amount{font-size:1.18rem}

	/* — Stepper ilości +/- : tap-target ≥44px (było 34×38px = poniżej progu a11y) — */
	.woocommerce-cart .product-quantity .quantity.pesto-qty input.qty{height:44px!important}
	.woocommerce-cart .product-quantity .pesto-qbtn{width:42px;height:44px;font-size:1.25rem}
	.woocommerce-cart table.cart .product-quantity input.qty{height:44px}
	/* CTA „Przejdź do kasy": niżej, ale ≥44px wysokości; pełna szerokość zostaje. */
	.cart_totals .wc-proceed-to-checkout .checkout-button{font-size:1rem;padding:.85rem 1.2rem!important}

	/* — Pola formularza kasy: stała, zwarta wysokość ≥44px + jeden padding (koniec rozjazdu) — */
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row select,
	.woocommerce .select2-container--default .select2-selection--single{min-height:46px;padding:.6rem .8rem;box-sizing:border-box}
	.woocommerce form .form-row{margin-bottom:.7rem}

	/* — Metody płatności: niższe karty, bez krzykliwego UPPERCASE (czytelniej, spójniej) — */
	.woocommerce-checkout #payment ul.payment_methods{padding:.7rem;gap:.5rem}
	.woocommerce-checkout #payment ul.payment_methods li > label{min-height:48px;padding:.55rem .5rem;font-size:.74rem;text-transform:none;letter-spacing:0}
	.woocommerce-checkout #payment ul.payment_methods li > .payment_box{padding:.8rem .85rem!important;font-size:.86rem}

	/* — Metody dostawy: ten sam rytm co płatność — */
	.pesto-co__shipping-table ul#shipping_method li{padding:.8rem .9rem;gap:.65rem}

	/* — Przycisk „Kupuję i płacę": niżej, pełna szerokość, ≥44px (było 1rem 2rem) — */
	#place_order{font-size:1rem!important;padding:.9rem 1.2rem!important}

	/* — Kupon i karta zaufania: zgranie z kompaktem — */
	.pesto-coupon__toggle{padding:.65rem .9rem;font-size:.9rem}
	.pesto-reassure{padding:.9rem 1rem}

	/* — Cross-sell na koszyku: lżejszy nagłówek (mniej dominacji nad pozycjami) — */
	.cross-sells{padding:.85rem .85rem 1rem}
	.cross-sells>h2{font-size:1.05rem;margin:0 0 .6rem}
}
/* Najwęższe ekrany (≤380px): jeszcze odrobinę ciaśniej, by nic nie wystawało. */
@media(max-width:380px){
	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-checkout .woocommerce-checkout-review-order{padding:.9rem .9rem}
	.woocommerce-checkout #payment ul.payment_methods li > label{flex:1 1 100px;font-size:.72rem}
}

/* ============================================================
   PODSUMOWANIE JAKO CZYSTY „RACHUNEK" (v7) — lżej, nowocześniej
   ------------------------------------------------------------
   Było: ciężka dwukolorowa siatka (beżowa kolumna etykiet + ramki + wysokie
   wiersze 1rem). Jest: etykieta z lewej (muted), kwota z prawej (ink), cienkie
   linie między wierszami, kompaktowo; wiersz SUMY wyróżniony grubszą linią.
   Dotyczy TYLKO tabel podsumowania (koszyk .cart_totals + tfoot kasy), NIE pozycji
   koszyka ani wierszy produktów w podsumowaniu kasy. Zieleń rabatu/opłaty zostaje
   (kolor .amount ma wyższą swoistość). Wygrywa kaskadę (na końcu pliku).
   ============================================================ */
.cart_totals table.shop_table,
.woocommerce-checkout-review-order-table{border:0;border-radius:0;overflow:visible;background:transparent}
.cart_totals table.shop_table th,
.cart_totals table.shop_table td,
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td{background:transparent;border:0;padding:.5rem 0;font-family:inherit;font-weight:500;vertical-align:middle;line-height:1.35}
/* Etykieta z lewej (muted), kwota z prawej (ink). */
.cart_totals table.shop_table th,
.woocommerce-checkout-review-order-table tfoot th{text-align:left;color:var(--pesto-muted);font-weight:500;text-transform:none;letter-spacing:0}
.cart_totals table.shop_table td,
.woocommerce-checkout-review-order-table tfoot td{text-align:right;color:var(--pesto-ink);white-space:nowrap}
/* Cienka linia między wierszami (nie pełna siatka). */
.cart_totals table.shop_table tr + tr th,
.cart_totals table.shop_table tr + tr td,
.woocommerce-checkout-review-order-table tfoot tr + tr th,
.woocommerce-checkout-review-order-table tfoot tr + tr td{border-top:1px solid var(--pesto-line)}
/* Wiersz SUMY: wyróżniony grubszą linią + większy oddech. */
.cart_totals table.shop_table tr.order-total th,
.cart_totals table.shop_table tr.order-total td,
.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td{border-top:2px solid var(--pesto-line);padding-top:.75rem;color:var(--pesto-ink);font-weight:800}
.cart_totals table.shop_table tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total th{font-weight:700}
