/**
 * Sklep — vouchery.
 *
 * Paleta i typografia wprost z zestawu globalnego Elementora, żeby sklep nie
 * wyglądał jak doklejony WooCommerce:
 *   MainGreen #39564A · ivory #FAF6EE · brass #B8935B · line #E4DCCB
 *   Lora (nagłówki) · Work Sans (reszta)
 */

:root {
	--mlodnik-green: #39564a;
	--mlodnik-green-dark: #2c4339;
	--mlodnik-ivory: #faf6ee;
	--mlodnik-brass: #b8935b;
	--mlodnik-line: #e4dccb;
	--mlodnik-ink: #2f2f2b;
	--mlodnik-muted: #7d7a72;
}

.mlodnik-shop {
	padding-block: 64px 96px;
	color: var(--mlodnik-ink);
	font-family: "Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Nagłówek ekranu sklepu — tekstowy, bez zdjęcia produktu w tle.
   Górny odstęp musi zmieścić nałożoną belkę witryny (logo + menu + pasek
   kontaktowy), inaczej tytuł wchodzi pod pozycje menu. */
.mlodnik-shop-header {
	background: var(--mlodnik-green, #39564a);
	min-height: 0;
	height: auto;
	padding-block: 190px 76px;
	text-align: center;
}

.mlodnik-shop-header .post-title {
	margin: 0;
	color: #fff;
	font-family: Lora, Georgia, serif;
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 400;
	letter-spacing: 0.01em;
}

.mlodnik-shop-header .post-subtitle {
	display: block;
	margin-top: 12px;
	color: #c9d6cf;
	font-size: 1rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ---------------------------------------------------------------- produkt */

.mlodnik-shop div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}

.mlodnik-shop div.product .woocommerce-product-gallery {
	width: 100% !important;
	margin: 0;
	float: none;
}

.mlodnik-shop div.product .woocommerce-product-gallery__image img {
	border-radius: 2px;
}

.mlodnik-shop div.product .summary {
	width: 100% !important;
	margin: 0;
	float: none;
}

.mlodnik-shop div.product .product_title {
	margin: 0 0 8px;
	font-family: Lora, Georgia, serif;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.2;
}

.mlodnik-shop .price,
.mlodnik-shop div.product p.price {
	margin: 0 0 24px;
	color: var(--mlodnik-green);
	font-size: 1.5rem;
	font-weight: 500;
}

.mlodnik-shop div.product .woocommerce-product-details__short-description {
	margin-bottom: 28px;
	color: var(--mlodnik-muted);
	font-size: 1.05rem;
	line-height: 1.7;
}

.mlodnik-shop div.product .woocommerce-product-details__short-description p {
	margin: 0;
}

/* Wybór nominału — bez tabelkowego układu Woo. */
.mlodnik-shop table.variations {
	width: 100%;
	margin: 0 0 20px;
	border: 0;
}

.mlodnik-shop table.variations tr,
.mlodnik-shop table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
}

.mlodnik-shop table.variations .label {
	margin-bottom: 8px;
}

.mlodnik-shop table.variations label {
	color: var(--mlodnik-ink);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.mlodnik-shop .variations select,
.mlodnik-shop .mlodnik-shop select,
.mlodnik-shop .woocommerce-billing-fields input,
.mlodnik-shop .woocommerce-shipping-fields input,
.mlodnik-shop .woocommerce-additional-fields textarea,
.mlodnik-shop #order_comments,
.mlodnik-shop .input-text {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--mlodnik-line);
	border-radius: 2px;
	background: #fff;
	color: var(--mlodnik-ink);
	font-family: inherit;
	font-size: 1rem;
	transition: border-color 0.18s ease;
}

.mlodnik-shop .variations select:focus,
.mlodnik-shop .input-text:focus,
.mlodnik-shop #order_comments:focus {
	border-color: var(--mlodnik-green);
	outline: 2px solid rgba(57, 86, 74, 0.18);
	outline-offset: 1px;
}

.mlodnik-shop .reset_variations {
	display: inline-block;
	margin-top: 6px;
	color: var(--mlodnik-muted);
	font-size: 0.85rem;
}

.mlodnik-shop .woocommerce-variation-price {
	margin-bottom: 18px;
}

/* ----------------------------------------------------------------- guziki */

.mlodnik-shop .button,
.mlodnik-shop button.button,
.mlodnik-shop input.button,
.mlodnik-shop a.button,
.mlodnik-shop .woocommerce-button,
.mlodnik-shop #place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 32px;
	border: 1px solid var(--mlodnik-green);
	border-radius: 2px;
	background: var(--mlodnik-green);
	color: #fff;
	font-family: inherit;
	font-size: 0.88rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.18s ease, border-color 0.18s ease;
}

.mlodnik-shop .button:hover,
.mlodnik-shop button.button:hover,
.mlodnik-shop a.button:hover,
.mlodnik-shop #place_order:hover {
	border-color: var(--mlodnik-green-dark);
	background: var(--mlodnik-green-dark);
	color: #fff;
}

.mlodnik-shop .button.alt,
.mlodnik-shop .checkout-button {
	border-color: var(--mlodnik-brass);
	background: var(--mlodnik-brass);
}

.mlodnik-shop .button.alt:hover,
.mlodnik-shop .checkout-button:hover {
	border-color: #a37f4a;
	background: #a37f4a;
}

.mlodnik-shop .single_add_to_cart_button {
	width: 100%;
	margin-top: 4px;
}

body.single-product .mlodnik-shop .quantity {
	/* Tylko na karcie produktu. W koszyku ilość musi zostać — tam klient
	   poprawia liczbę sztuk. */
	display: none;
}

/* --------------------------------------------------------- pasek zaufania */

.mlodnik-reassurance {
	margin: 28px 0 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--mlodnik-line);
	list-style: none;
}

.mlodnik-reassurance li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 10px;
	color: var(--mlodnik-muted);
	font-size: 0.95rem;
}

.mlodnik-reassurance li::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 12px;
	height: 6px;
	border-left: 1.5px solid var(--mlodnik-brass);
	border-bottom: 1.5px solid var(--mlodnik-brass);
	transform: rotate(-45deg);
}

/* ------------------------------------------------------------ opis pelny */

.mlodnik-product-details {
	grid-column: 1 / -1;
	max-width: 760px;
	margin-top: 72px;
	padding-top: 48px;
	border-top: 1px solid var(--mlodnik-line);
}

.mlodnik-product-details h2 {
	margin: 0 0 24px;
	font-family: Lora, Georgia, serif;
	font-size: 1.6rem;
	font-weight: 400;
}

.mlodnik-product-details h3 {
	margin: 32px 0 12px;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mlodnik-green);
}

.mlodnik-product-details__body {
	color: var(--mlodnik-muted);
	font-size: 1.02rem;
	line-height: 1.75;
}

.mlodnik-product-details__body ul {
	margin: 0 0 16px;
	padding-left: 20px;
}

.mlodnik-product-details__body li {
	margin-bottom: 8px;
}

/* ----------------------------------------------------------------- koszyk */

.mlodnik-shop .woocommerce-cart-form table.shop_table {
	width: 100%;
	margin-bottom: 36px;
	border: 0;
	border-collapse: collapse;
}

.mlodnik-shop table.shop_table th {
	padding: 0 0 14px;
	border: 0;
	border-bottom: 1px solid var(--mlodnik-line);
	color: var(--mlodnik-muted);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.mlodnik-shop table.shop_table td {
	padding: 22px 0;
	border: 0;
	border-bottom: 1px solid var(--mlodnik-line);
	background: none;
	vertical-align: middle;
}

.mlodnik-shop table.shop_table .product-thumbnail img {
	width: 84px;
	height: auto;
	border-radius: 2px;
}

.mlodnik-shop table.shop_table .product-name a {
	color: var(--mlodnik-ink);
	font-size: 1.05rem;
	text-decoration: none;
}

.mlodnik-shop table.shop_table .product-name a:hover {
	color: var(--mlodnik-green);
}

.mlodnik-shop .product-remove a.remove {
	width: 26px;
	height: 26px;
	color: var(--mlodnik-muted) !important;
	font-size: 22px;
	line-height: 24px;
	background: none !important;
}

.mlodnik-shop .product-remove a.remove:hover {
	color: #b3453f !important;
	background: none !important;
}

.mlodnik-shop .cart_totals h2,
.mlodnik-shop .cross-sells h2 {
	margin: 0 0 20px;
	font-family: Lora, Georgia, serif;
	font-size: 1.35rem;
	font-weight: 400;
}

.mlodnik-shop .cart_totals {
	max-width: 420px;
	margin-left: auto;
	padding: 28px;
	background: var(--mlodnik-ivory);
	border-radius: 2px;
}

.mlodnik-shop .cart_totals table {
	width: 100%;
	border: 0;
}

.mlodnik-shop .cart_totals th,
.mlodnik-shop .cart_totals td {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--mlodnik-line);
	background: none;
	text-align: left;
}

.mlodnik-shop .cart_totals tr:last-child th,
.mlodnik-shop .cart_totals tr:last-child td {
	border-bottom: 0;
	font-size: 1.15rem;
	font-weight: 500;
}

.mlodnik-shop .cart_totals td {
	text-align: right;
}

.mlodnik-shop .wc-proceed-to-checkout {
	padding: 20px 0 0;
}

.mlodnik-shop .wc-proceed-to-checkout .checkout-button {
	width: 100%;
}

/* Kupony — restauracja ich nie używa, a pole tylko rozprasza. */
.mlodnik-shop .coupon {
	display: none;
}

/* ------------------------------------------------------------- komunikaty */

.mlodnik-shop .woocommerce-message,
.mlodnik-shop .woocommerce-info,
.mlodnik-shop .woocommerce-error {
	margin-bottom: 32px;
	padding: 18px 22px;
	border: 0;
	border-left: 3px solid var(--mlodnik-green);
	border-radius: 2px;
	background: var(--mlodnik-ivory);
	color: var(--mlodnik-ink);
	font-size: 0.98rem;
}

.mlodnik-shop .woocommerce-message::before,
.mlodnik-shop .woocommerce-info::before,
.mlodnik-shop .woocommerce-error::before {
	display: none;
}

.mlodnik-shop .woocommerce-error {
	border-left-color: #b3453f;
}

.mlodnik-shop .woocommerce-message .button {
	min-height: 40px;
	padding: 0 20px;
	font-size: 0.78rem;
}

/* ------------------------------------------------------------ lista sklepu */

.mlodnik-shop ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlodnik-shop ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	text-align: center;
}

.mlodnik-shop ul.products li.product .woocommerce-loop-product__title {
	margin: 16px 0 6px;
	font-family: Lora, Georgia, serif;
	font-size: 1.2rem;
	font-weight: 400;
}

.mlodnik-shop ul.products li.product .button {
	margin-top: 14px;
}

/* ------------------------------------------------------------------ mobile */

@media (max-width: 900px) {
	.mlodnik-shop div.product,
	.mlodnik-shop .woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}

	.mlodnik-shop #customer_details,
	.mlodnik-shop #order_review_heading,
	.mlodnik-shop #order_review {
		grid-column: 1;
	}

	.mlodnik-shop .cart_totals {
		max-width: none;
		margin-left: 0;
	}

	.mlodnik-shop-header {
		padding-block: 140px 48px;
	}

	.mlodnik-shop {
		padding-block: 40px 64px;
	}

	/* Tabela koszyka na wąskim ekranie czyta się lepiej jako karty. */
	.mlodnik-shop .woocommerce-cart-form table.shop_table thead {
		display: none;
	}

	.mlodnik-shop .woocommerce-cart-form table.shop_table tr {
		display: grid;
		grid-template-columns: 84px 1fr;
		gap: 4px 16px;
		align-items: center;
		padding: 18px 0;
		border-bottom: 1px solid var(--mlodnik-line);
	}

	.mlodnik-shop .woocommerce-cart-form table.shop_table td {
		padding: 0;
		border: 0;
	}

	.mlodnik-shop .woocommerce-cart-form table.shop_table .product-thumbnail {
		grid-row: 1 / span 3;
	}
}

/* =================================================================
   Wybór nominału — kafelki zamiast listy rozwijanej
   ================================================================= */

.mlodnik-select-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.mlodnik-nominals {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 12px;
	margin-bottom: 4px;
}

.mlodnik-nominals__item {
	position: relative;
	min-height: 76px;
	padding: 16px 12px;
	border: 1.5px solid var(--mlodnik-line);
	border-radius: 3px;
	background: #fff;
	color: var(--mlodnik-ink);
	font-family: inherit;
	font-size: 1.28rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.2;
	text-transform: none;
	cursor: pointer;
	transition: border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}

.mlodnik-nominals__item:hover:not(:disabled) {
	border-color: var(--mlodnik-brass);
}

.mlodnik-nominals__item.is-active {
	border-color: var(--mlodnik-green);
	background: var(--mlodnik-green);
	color: #fff;
}

.mlodnik-nominals__item.is-active::after {
	content: "";
	position: absolute;
	top: 9px;
	right: 11px;
	width: 11px;
	height: 6px;
	border-left: 1.5px solid #fff;
	border-bottom: 1.5px solid #fff;
	transform: rotate(-45deg);
}

.mlodnik-nominals__item:disabled,
.mlodnik-nominals__item.is-unavailable {
	opacity: 0.35;
	cursor: not-allowed;
}

.mlodnik-nominals__item:focus-visible {
	outline: 2px solid var(--mlodnik-brass);
	outline-offset: 2px;
}

/* =================================================================
   Nadpisania motywu
   Motyw i Elementor wstrzykują własne guziki z wyższą swoistością —
   stąd !important. Bez tego przycisk zakupu zostaje fioletowy.
   ================================================================= */

.mlodnik-shop .button,
.mlodnik-shop button.button,
.mlodnik-shop input.button,
.mlodnik-shop a.button,
.mlodnik-shop button[type="submit"],
.mlodnik-shop .single_add_to_cart_button,
.mlodnik-shop #place_order,
.mlodnik-shop .checkout-button {
	border-color: var(--mlodnik-green) !important;
	background-color: var(--mlodnik-green) !important;
	background-image: none !important;
	color: #fff !important;
	border-radius: 2px !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

.mlodnik-shop .button:hover,
.mlodnik-shop button.button:hover,
.mlodnik-shop a.button:hover,
.mlodnik-shop button[type="submit"]:hover,
.mlodnik-shop .single_add_to_cart_button:hover,
.mlodnik-shop #place_order:hover {
	border-color: var(--mlodnik-green-dark) !important;
	background-color: var(--mlodnik-green-dark) !important;
	color: #fff !important;
}

/* Mosiądz zostaje na finalne potwierdzenie zamówienia — „Dodaj do koszyka"
   ma być w firmowej zieleni, żeby ścieżka miała czytelną kulminację.
   Woo nadaje obu przyciskom klasę `alt`, stąd wykluczenie. */
.mlodnik-shop .checkout-button,
.mlodnik-shop .wc-proceed-to-checkout .button,
.mlodnik-shop #place_order {
	border-color: var(--mlodnik-brass) !important;
	background-color: var(--mlodnik-brass) !important;
}

.mlodnik-shop .checkout-button:hover,
.mlodnik-shop .wc-proceed-to-checkout .button:hover,
.mlodnik-shop #place_order:hover {
	border-color: #a37f4a !important;
	background-color: #a37f4a !important;
}

/* Cena — motyw nadaje jej własny kolor akcentu. */
.mlodnik-shop .price,
.mlodnik-shop div.product p.price,
.mlodnik-shop div.product span.price,
.mlodnik-shop .woocommerce-variation-price .price,
.mlodnik-shop .amount,
.mlodnik-shop .woocommerce-Price-amount {
	color: var(--mlodnik-green) !important;
}

/* Pole ilości chowamy WYŁĄCZNIE na karcie produktu.
   W koszyku musi zostać widoczne, bo tam klient poprawia liczbę sztuk —
   wcześniej ten selektor łapał obie strony i ilości nie dało się zmienić. */
body.single-product .mlodnik-shop .quantity,
body.single-product .mlodnik-shop div.product form.cart .quantity {
	display: none !important;
}


/* =================================================================
   Nagłówek na koszyku, zamówieniu i koncie

   Te trzy adresy to zwykłe strony WordPressa, więc idą przez page.php
   motywu — a ten zawsze rysuje hero ze zdjęciem wyróżniającym. Bez
   zdjęcia zostaje pusty blok wysoki na 768 px z białym tytułem na
   białym tle, który spycha treść poniżej ekranu.
   ================================================================= */

body.woocommerce-cart .topSingleBkg,
body.woocommerce-checkout .topSingleBkg,
body.woocommerce-account .topSingleBkg,
body.post-type-archive-product .topSingleBkg,
body.tax-product_cat .topSingleBkg {
	height: auto !important;
	min-height: 0 !important;
	/* Górny odstęp musi pomieścić nałożoną belkę z logo i menu (ok. 108 px)
	   plus pasek kontaktowy. Dolny może być minimalny — ten ekran ma
	   prowadzić do zapłaty, a nie robić wrażenie. */
	padding-block: 132px 26px !important;
	background: var(--mlodnik-green) !important;
	text-align: center;
}

body.woocommerce-cart .topSingleBkg .item-img,
body.woocommerce-checkout .topSingleBkg .item-img,
body.woocommerce-account .topSingleBkg .item-img {
	display: none !important;
}

body.woocommerce-cart .topSingleBkg .post-title,
body.woocommerce-checkout .topSingleBkg .post-title,
body.woocommerce-account .topSingleBkg .post-title {
	margin: 0;
	color: #fff !important;
	font-family: Lora, Georgia, serif;
	font-size: 1.65rem;
	font-weight: 400;
	line-height: 1.2;
}

body.woocommerce-cart .hero-breadcrumbs,
body.woocommerce-checkout .hero-breadcrumbs,
body.woocommerce-account .hero-breadcrumbs {
	margin-top: 14px;
}

body.woocommerce-cart .hero-breadcrumbs a,
body.woocommerce-checkout .hero-breadcrumbs a,
body.woocommerce-account .hero-breadcrumbs a,
body.woocommerce-cart .hero-breadcrumbs span,
body.woocommerce-checkout .hero-breadcrumbs span,
body.woocommerce-account .hero-breadcrumbs span {
	color: #c9d6cf !important;
	font-size: 0.82rem;
	letter-spacing: 0.08em;
}

/* Treść koszyka i zamówienia dostaje to samo opakowanie co karta produktu,
   mimo że renderuje ją page.php, a nie nasz szablon woocommerce.php. */
body.woocommerce-cart .page-content,
body.woocommerce-account .page-content {
	padding-block: 44px 88px;
}

@media (max-width: 900px) {
	body.woocommerce-cart .topSingleBkg,
	body.woocommerce-checkout .topSingleBkg,
	body.woocommerce-account .topSingleBkg {
		padding-block: 118px 22px !important;
	}
}

/* =================================================================
   Biały prześwit pod belką kontaktową

   Belka kontaktowa jest zielona i przyklejona do góry, a hero zaczyna
   się dopiero 64 px niżej. W tej szczelinie prześwitywało białe tło
   dokumentu — stąd jasny pasek przez całą szerokość.
   ================================================================= */

/* Pierwsze podejście barwiło całe `body`, przez co zieleń prześwitywała
   także nad stopką i pod nią. Teraz wypełniamy wyłącznie tę szczelinę —
   pseudo-elementem przyklejonym do górnej krawędzi nagłówka. */
body.woocommerce-cart .topSingleBkg,
body.woocommerce-checkout .topSingleBkg,
body.woocommerce-account .topSingleBkg,
body.single-product .mlodnik-shop-header,
body.post-type-archive-product .topSingleBkg,
body.tax-product_cat .topSingleBkg {
	position: relative;
}

body.woocommerce-cart .topSingleBkg::before,
body.woocommerce-checkout .topSingleBkg::before,
body.woocommerce-account .topSingleBkg::before,
body.single-product .mlodnik-shop-header::before,
body.post-type-archive-product .topSingleBkg::before,
body.tax-product_cat .topSingleBkg::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: 200px;
	background: var(--mlodnik-green);
	pointer-events: none;
}

/* =================================================================
   Pasek boczny na ekranach sklepu

   page.php motywu dokłada sidebar, gdy ten ma widżety — na koszyku
   wchodzi wyszukiwarka i „Ostatnie wpisy” z bloga, co nie ma tu nic
   do rzeczy i zwęża tabelę koszyka.
   ================================================================= */

body.woocommerce-cart .posts-holder,
body.woocommerce-checkout .posts-holder,
body.woocommerce-account .posts-holder {
	width: 100%;
	max-width: 100%;
	flex: 0 0 100%;
}

body.woocommerce-cart aside,
body.woocommerce-cart .sidebar,
body.woocommerce-cart #sidebar,
body.woocommerce-checkout aside,
body.woocommerce-checkout .sidebar,
body.woocommerce-checkout #sidebar,
body.woocommerce-account aside,
body.woocommerce-account .sidebar,
body.woocommerce-account #sidebar {
	display: none !important;
}

/* Miniatury galerii — główne zdjęcie zmienia się wraz z nominałem,
   więc kafelki pod spodem tylko powielają tę samą grafikę. */
.mlodnik-shop .flex-control-thumbs,
.mlodnik-shop .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:not(:first-child) {
	display: none !important;
}

/* =================================================================
   Lista produktów (sklep, kategoria)

   Przy jednym produkcie siatka rozciągała kartę na całą szerokość,
   a przycisk urastał do podwójnej wysokości, bo dziedziczył `min-height`
   z reguły guzików i jednocześnie miał własny padding pionowy z motywu.
   ================================================================= */

.mlodnik-shop ul.products {
	justify-content: center;
	max-width: 1100px;
	margin-inline: auto;
}

/* Pojedynczy produkt nie ma się rozlewać na całą szerokość. */
.mlodnik-shop ul.products li.product:only-child {
	max-width: 360px;
	margin-inline: auto !important;
}

.mlodnik-shop ul.products li.product img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border-radius: 2px;
}

.mlodnik-shop ul.products li.product .price {
	display: block;
	margin: 0 0 16px;
	font-size: 1.05rem;
	font-weight: 400;
}

.mlodnik-shop ul.products li.product .button,
.mlodnik-shop ul.products li.product a.button {
	display: inline-flex;
	width: auto;
	min-height: 48px;
	height: auto;
	padding: 0 28px !important;
	line-height: 1.2;
	white-space: nowrap;
}

/* Nagłówek listy — motyw zostawia tu pusty blok z tytułem archiwum. */
.mlodnik-shop .woocommerce-products-header {
	margin-bottom: 40px;
	text-align: center;
}

.mlodnik-shop .woocommerce-products-header__title {
	margin: 0;
	font-family: Lora, Georgia, serif;
	font-size: 1.8rem;
	font-weight: 400;
}

.mlodnik-shop .term-description {
	max-width: 620px;
	margin: 12px auto 0;
	color: var(--mlodnik-muted);
}


/* =================================================================
   Zamówienie — widok bez rozpraszaczy

   Wzorzec ze sklepów, które konwertują najlepiej: na ekranie płatności
   znika nawigacja i stopka, zostaje logo, formularz i podsumowanie.
   Każdy link, który mógłby wyprowadzić klienta z tego ekranu, to
   porzucony koszyk.
   ================================================================= */

/* Menu zostaje — klient bywa, że chce jeszcze zerknąć w kartę albo kontakt.
   Wycinamy tylko stopkę i wyskakujące okno. */
body.woocommerce-checkout .hero-breadcrumbs,
body.woocommerce-checkout footer,
body.woocommerce-checkout .footer-widgets,
body.woocommerce-checkout .footer-top {
	display: none !important;
}

/* Popup z menu lunchowym potrafi wyskoczyć w trakcie wypełniania danych
   i przykryć formularz — przy płatności to najgorszy możliwy moment. */
body.woocommerce-checkout .caverta-popup,
body.woocommerce-checkout .caverta-popup__backdrop,
body.woocommerce-checkout [class*="caverta-popup"],
body.woocommerce-cart .caverta-popup,
body.woocommerce-cart .caverta-popup__backdrop,
body.woocommerce-cart [class*="caverta-popup"] {
	display: none !important;
}

/* Belka kontaktowa zostaje — telefon do restauracji przy płatności pomaga,
   a nie rozprasza. */



body.woocommerce-checkout .page-content {
	padding-block: 44px 80px;
}

/* --- dwie kolumny --- */

.mlodnik-shop form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: 64px;
	align-items: start;
	max-width: 1080px;
	margin-inline: auto;
}

.mlodnik-shop form.checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.mlodnik-shop form.checkout #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin: 0 0 18px;
	font-family: Lora, Georgia, serif;
	font-size: 1.3rem;
	font-weight: 400;
}

.mlodnik-shop form.checkout #order_review {
	grid-column: 2;
	grid-row: 2;
	position: sticky;
	top: 24px;
	padding: 28px;
	background: var(--mlodnik-ivory);
	border-radius: 3px;
}

/* Kolumny danych: Woo dzieli je na col-1 / col-2 — u nas mają iść jedna pod drugą. */
.mlodnik-shop #customer_details .col-1,
.mlodnik-shop #customer_details .col-2 {
	float: none;
	width: 100%;
	max-width: 100%;
}

.mlodnik-shop #customer_details .col-2 {
	margin-top: 8px;
}

.mlodnik-shop .woocommerce-billing-fields h3,
.mlodnik-shop .woocommerce-shipping-fields h3,
.mlodnik-shop .woocommerce-additional-fields h3 {
	margin: 0 0 20px;
	padding-top: 4px;
	font-family: Lora, Georgia, serif;
	font-size: 1.3rem;
	font-weight: 400;
}

.mlodnik-shop .woocommerce-shipping-fields,
.mlodnik-shop .woocommerce-additional-fields {
	margin-top: 36px;
	padding-top: 32px;
	border-top: 1px solid var(--mlodnik-line);
}

/* Dwa pola obok siebie tam, gdzie to naturalne. */
.mlodnik-shop .form-row-first,
.mlodnik-shop .form-row-last {
	width: calc(50% - 8px);
	float: left;
}

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

.mlodnik-shop .form-row-wide,
.mlodnik-shop .form-row:not(.form-row-first):not(.form-row-last) {
	clear: both;
	width: 100%;
}

.mlodnik-shop .form-row {
	margin-bottom: 18px;
	padding: 0;
}

.mlodnik-shop .form-row label {
	display: block;
	margin-bottom: 7px;
	color: var(--mlodnik-muted);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.mlodnik-shop .required {
	color: var(--mlodnik-brass);
	text-decoration: none;
}

.mlodnik-shop #order_comments {
	min-height: 96px;
	resize: vertical;
}

/* --- podsumowanie --- */

.mlodnik-shop .woocommerce-checkout-review-order-table {
	width: 100%;
	margin-bottom: 22px;
	border: 0;
}

.mlodnik-shop .woocommerce-checkout-review-order-table th,
.mlodnik-shop .woocommerce-checkout-review-order-table td {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--mlodnik-line);
	background: none;
	font-size: 0.97rem;
}

.mlodnik-shop .woocommerce-checkout-review-order-table thead th {
	padding-bottom: 10px;
	color: var(--mlodnik-muted);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.mlodnik-shop .woocommerce-checkout-review-order-table tfoot tr:last-child th,
.mlodnik-shop .woocommerce-checkout-review-order-table tfoot tr:last-child td {
	padding-top: 16px;
	border-bottom: 0;
	font-size: 1.12rem;
	font-weight: 500;
}

.mlodnik-shop ul.wc_payment_methods {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	list-style: none;
}

.mlodnik-shop ul.wc_payment_methods li {
	margin-bottom: 10px;
	padding: 0;
	list-style: none;
}

.mlodnik-shop ul.wc_payment_methods label {
	display: inline;
	margin-left: 6px;
	color: var(--mlodnik-ink);
	font-size: 0.97rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.mlodnik-shop .payment_box {
	margin: 10px 0 0 26px;
	padding: 13px 16px;
	border-radius: 2px;
	background: #fff;
	color: var(--mlodnik-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

.mlodnik-shop .payment_box::before {
	display: none;
}

.mlodnik-shop #place_order {
	width: 100%;
	margin-top: 8px;
}

.mlodnik-shop .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
	font-size: 0.88rem;
}

/* Wybór dostawy — czytelna lista zamiast zbitej tabelki. */
.mlodnik-shop #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlodnik-shop #shipping_method li {
	margin-bottom: 9px;
	padding: 0;
	list-style: none;
}

.mlodnik-shop #shipping_method label {
	display: inline;
	margin: 0 0 0 6px;
	color: var(--mlodnik-ink);
	font-size: 0.95rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

@media (max-width: 900px) {
	.mlodnik-shop form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.mlodnik-shop form.checkout #customer_details,
	.mlodnik-shop form.checkout #order_review_heading,
	.mlodnik-shop form.checkout #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	.mlodnik-shop form.checkout #order_review {
		position: static;
	}

	.mlodnik-shop .form-row-first,
	.mlodnik-shop .form-row-last {
		width: 100%;
		float: none;
	}
}

/* Wiersz z ukrytym polem (kraj) nie ma zostawiać po sobie etykiety. */
.mlodnik-shop .mlodnik-hidden-row {
	display: none !important;
}

/* Powiadomienie „dodano do koszyka" siada tuż pod paskiem, bez dziury. */
body.woocommerce-checkout .page-content > .container,
body.woocommerce-cart .page-content > .container {
	padding-top: 0;
}

.mlodnik-shop .woocommerce-message,
.mlodnik-shop .woocommerce-info {
	margin-top: 0;
}

/* Ramka wokół pola płatności bierze się z motywu — u nas ma być spójna
   z resztą podsumowania. */
.mlodnik-shop .payment_box,
.mlodnik-shop .payment_box p {
	background: #fff !important;
	color: var(--mlodnik-muted) !important;
}

.mlodnik-shop ul.wc_payment_methods li {
	background: none !important;
}

/* Tabela podsumowania — motyw dokłada obramowania i tła komórek. */
.mlodnik-shop .woocommerce-checkout-review-order-table,
.mlodnik-shop .woocommerce-checkout-review-order-table tbody,
.mlodnik-shop .woocommerce-checkout-review-order-table tr,
.mlodnik-shop .woocommerce-checkout-review-order-table th,
.mlodnik-shop .woocommerce-checkout-review-order-table td {
	background: transparent !important;
	border-left: 0 !important;
	border-right: 0 !important;
}

/* Metody dostawy w podsumowaniu — jedna pod drugą, wyrównane do lewej. */
.mlodnik-shop .woocommerce-shipping-totals td {
	text-align: left;
}

.mlodnik-shop .woocommerce-shipping-totals th {
	vertical-align: top;
	padding-top: 14px;
}

.mlodnik-shop #shipping_method img {
	display: block;
	margin: 6px 0 4px 22px;
	max-width: 54px;
	height: auto;
}

/* =================================================================
   Ostatnie szlify zamówienia
   ================================================================= */

/* Motyw dokłada własny odstęp do #wrap-content — na zamówieniu zostawiał
   ponad sto pikseli pustki pod zielonym paskiem. */
body.woocommerce-checkout #wrap-content,
body.woocommerce-cart #wrap-content,
body.woocommerce-account #wrap-content,
body.post-type-archive-product #wrap-content,
body.tax-product_cat #wrap-content,
body.single-product #wrap-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body.woocommerce-checkout .page-content,
body.woocommerce-cart .page-content,
body.woocommerce-account .page-content,
body.post-type-archive-product .page-content,
body.tax-product_cat .page-content {
	padding-top: 36px !important;
}

/* „Wysłać na inny adres?" to nagłówek z polem wyboru w środku — nasza
   reguła etykiet robiła z niego blok pisany wersalikami i rozbijała wiersz. */
.mlodnik-shop #ship-to-different-address {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 4px;
	font-family: Lora, Georgia, serif;
	font-size: 1.15rem;
	font-weight: 400;
}

.mlodnik-shop #ship-to-different-address label,
.mlodnik-shop .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--mlodnik-ink);
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: 0;
	text-transform: none;
}

.mlodnik-shop #ship-to-different-address input[type="checkbox"],
.mlodnik-shop .woocommerce-form__input-checkbox {
	width: 17px;
	height: 17px;
	margin: 0;
	accent-color: var(--mlodnik-green);
}

/* Metoda płatności siedziała na szarym prostokącie z motywu. */
.mlodnik-shop .woocommerce-checkout-payment,
.mlodnik-shop #payment,
.mlodnik-shop #payment > ul,
.mlodnik-shop .place-order {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.mlodnik-shop #payment {
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid var(--mlodnik-line) !important;
}

/* Podpowiedź w polu powiela etykietę — zostawiamy samą etykietę. */
.mlodnik-shop #billing_address_1,
.mlodnik-shop #shipping_address_1 {
	text-overflow: ellipsis;
}


/* Pasek na liście sklepu — tytuł mniejszy, bo to ekran przejściowy,
   a nie strona docelowa. */
body.post-type-archive-product .topSingleBkg .post-title,
body.tax-product_cat .topSingleBkg .post-title {
	font-size: 1.65rem !important;
}

/* =================================================================
   Pusta przestrzeń pod stopką

   Pomiar pokazał, że w dokumencie jej nie ma: `.footer-section` kończy
   się co do piksela na końcu strony, a `body` ma zerowy padding i margines.
   To, co widać, to po prostu strona krótsza od okna — poniżej stopki
   prześwituje tło dokumentu. Przy jednym produkcie na liście treści jest
   za mało, żeby wypełnić ekran.

   Dlatego nie zerujemy odstępów (są już zerowe), tylko dociągamy obszar
   treści, żeby stopka siadała na dole okna.
   ================================================================= */

body.woocommerce-cart .page-content,
body.woocommerce-checkout .page-content,
body.woocommerce-account .page-content,
body.post-type-archive-product .page-content,
body.tax-product_cat .page-content,
body.single-product .page-content {
	min-height: 58vh;
}

/* Gdyby mimo to coś zostało — tło dokumentu w kolorze stopki sprawia,
   że ewentualny prześwit czyta się jak jej przedłużenie, a nie jak dziura.

   Odstęp u góry robi powietrze między belką menu a zielonym nagłówkiem —
   bez niego nagłówek dokleja się do menu i strona wygląda na ściśniętą. */
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.post-type-archive-product,
body.tax-product_cat,
body.single-product {
	padding-top: 40px;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* =================================================================
   Koszyk — układ dwukolumnowy i zbicie pionu

   Domyślnie Woo stawia podsumowanie pod tabelą i wyrównuje do prawej,
   przez co przy dwóch pozycjach „ucieka" na sam dół ekranu. Kładziemy
   je obok, tak jak na zamówieniu.
   ================================================================= */

body.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.8fr);
	gap: 48px;
	align-items: start;
	max-width: 1120px;
	margin-inline: auto;
}

body.woocommerce-cart .woocommerce-cart-form {
	grid-column: 1;
	margin: 0;
}

body.woocommerce-cart .cart-collaterals {
	grid-column: 2;
	width: 100% !important;
	margin: 0;
	float: none !important;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100% !important;
	max-width: none;
	float: none !important;
	margin: 0;
}

/* Kolumna „Ilość" była schowana, gdy voucher sprzedawaliśmy sztuka po
   sztuce. Teraz można kupić kilka, więc w koszyku musi być widoczna —
   to jedyne miejsce, gdzie klient poprawia liczbę sztuk. Na zamówieniu
   ilość pokazuje się jako „× 2" przy nazwie i kolumna jest zbędna. */
.mlodnik-shop table.woocommerce-checkout-review-order-table th.product-quantity,
.mlodnik-shop table.woocommerce-checkout-review-order-table td.product-quantity {
	display: none !important;
}

/* Wiersze bliżej siebie — przy dwóch pozycjach nie ma po co rozciągać. */
.mlodnik-shop .woocommerce-cart-form table.shop_table td {
	padding: 14px 0;
}

.mlodnik-shop table.shop_table th {
	padding-bottom: 10px;
	font-size: 0.7rem;
}

/* Krzyżyk usuwania nie potrzebuje własnej szerokiej kolumny. */
.mlodnik-shop table.shop_table td.product-remove,
.mlodnik-shop table.shop_table th.product-remove {
	width: 34px;
	padding-right: 8px;
}

.mlodnik-shop table.shop_table td.product-thumbnail {
	width: 84px;
	padding-right: 16px;
}

.mlodnik-shop table.shop_table .product-thumbnail img {
	width: 72px;
}

/* Nazwa produktu do lewej — wyśrodkowanie w wąskiej kolumnie łamało
   ją na dwie linie bez potrzeby. */
.mlodnik-shop table.shop_table td.product-name,
.mlodnik-shop table.shop_table th.product-name {
	text-align: left;
}

.mlodnik-shop table.shop_table td.product-price,
.mlodnik-shop table.shop_table td.product-subtotal,
.mlodnik-shop table.shop_table th.product-price,
.mlodnik-shop table.shop_table th.product-subtotal {
	text-align: right;
}

/* Wiersz z przyciskiem „Przelicz koszyk" — bez rozpychania. */
.mlodnik-shop .woocommerce-cart-form table.shop_table td.actions {
	padding: 18px 0 0;
	border-bottom: 0;
	text-align: right;
}

.mlodnik-shop .woocommerce-cart-form .button[name="update_cart"] {
	min-height: 42px;
	padding: 0 22px !important;
	font-size: 0.75rem;
}

@media (max-width: 900px) {
	body.woocommerce-cart .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-cart .cart-collaterals {
		grid-column: 1;
	}
}

/* =================================================================
   Podsumowanie zamówienia — porządki

   Na zrzucie od klienta metody dostawy wisiały wyrównane do prawej,
   logotypy InPostu rozpychały wiersz, a zgoda na regulamin łamała się
   w losowym miejscu. Wszystko przez to, że WooCommerce rysuje tę część
   jako tabelę i domyślnie dosuwa drugą kolumnę do prawej krawędzi.
   ================================================================= */

/* Wiersz z dostawą przestaje być dwukolumnowy — etykieta nad listą.
   Sam `display: block` na komórkach nie wystarcza: dopóki <tr> jest wierszem
   tabeli, szerokość wyznacza kolumna i lista dusi się w 188 pikselach. */
.mlodnik-shop #order_review .woocommerce-shipping-totals {
	display: block;
	width: 100%;
}

.mlodnik-shop #order_review .woocommerce-shipping-totals th,
.mlodnik-shop #order_review .woocommerce-shipping-totals td {
	display: block;
	width: 100%;
	text-align: left;
	padding-inline: 0;
}

.mlodnik-shop #order_review .woocommerce-shipping-totals th {
	padding-bottom: 6px;
}

.mlodnik-shop ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* Wtyczka InPost buduje wiersz jako input + label + span z logo — wszystkie
   jako rodzeństwo w <li>. Dlatego to <li> musi być pojemnikiem, nie <label>;
   przy stylowaniu samej etykiety wiersz rozjeżdżał się na trzy linijki. */
.mlodnik-shop ul#shipping_method li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid transparent;
	border-radius: 4px;
	transition: background-color .15s, border-color .15s;
}

.mlodnik-shop ul#shipping_method li:hover {
	background: #fff;
	border-color: var(--mlodnik-line);
}

.mlodnik-shop ul#shipping_method li input[type="radio"] {
	margin: 0;
	flex: 0 0 auto;
	accent-color: var(--mlodnik-green);
}

.mlodnik-shop ul#shipping_method li label {
	margin: 0;
	padding: 0;
	flex: 1 1 auto;
	font-size: 0.95rem;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
}

/* Logo przewoźnika to znaczek na końcu wiersza, nie baner. */
.mlodnik-shop ul#shipping_method .inpost_pl-shipping-method-meta-wrap {
	flex: 0 0 auto;
	margin-left: auto;
	display: flex;
	align-items: center;
}

.mlodnik-shop ul#shipping_method img {
	display: block;
	max-height: 20px;
	width: auto;
}

.mlodnik-shop ul#shipping_method .amount {
	flex: 0 0 auto;
	font-weight: 600;
	color: var(--mlodnik-ink);
}

/* Przycisk wyboru paczkomatu w kolorach Młodnika, nie w żółci InPostu.
   Wtyczka renderuje go jako <div id="easypack_show_geowidget"> w osobnym
   wierszu tabeli — stąd te dwa selektory, a nie klasa przycisku. */
.mlodnik-shop tr.easypack-parcel-machine {
	display: block;
	width: 100%;
}

.mlodnik-shop td.easypack-parcel-machine-select {
	display: block;
	width: 100%;
	padding: 0 0 6px;
	text-align: left;
}

.mlodnik-shop #easypack_show_geowidget,
.mlodnik-shop .easypack_show_geowidget {
	display: inline-block;
	width: auto;
	max-width: 100%;
	margin: 10px 0 0;
	padding: 10px 18px;
	background: var(--mlodnik-green) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 3px;
	box-shadow: none !important;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-shadow: none;
}

/* Podpowiedź pod listą — drobnym drukiem, bez rozpychania. */
.mlodnik-shop #order_review .woocommerce-shipping-destination,
.mlodnik-shop #order_review .shipping-calculator-button {
	display: block;
	margin-top: 8px;
	font-size: 0.82rem;
	color: var(--mlodnik-muted);
}

/* Zgoda na regulamin: znacznik i tekst w jednej linii bazowej. */
.mlodnik-shop .woocommerce-terms-and-conditions-wrapper {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--mlodnik-line);
}

.mlodnik-shop .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.9rem;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.5;
	color: var(--mlodnik-ink);
}

.mlodnik-shop .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	margin: 2px 0 0;
	flex: 0 0 auto;
	accent-color: var(--mlodnik-green);
}

.mlodnik-shop .woocommerce-terms-and-conditions-wrapper a {
	color: var(--mlodnik-green);
	text-decoration: underline;
}

/* Metoda płatności — ramka dymku zamiast ostrego prostokąta. */
.mlodnik-shop .wc_payment_method label {
	font-size: 0.98rem;
	font-weight: 600;
}

.mlodnik-shop .payment_box {
	background: #fff;
	border: 1px solid var(--mlodnik-line);
	border-radius: 4px;
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--mlodnik-muted);
}

.mlodnik-shop .payment_box::before {
	border-bottom-color: var(--mlodnik-line) !important;
}

/* Wiersz „Razem" ma być kotwicą wzroku. */
.mlodnik-shop #order_review .order-total th,
.mlodnik-shop #order_review .order-total td {
	padding-top: 14px;
	font-size: 1.05rem;
}

.mlodnik-shop #order_review .order-total .amount {
	color: var(--mlodnik-green);
	font-weight: 700;
}

/* Lista metod płatności — etykieta i dymek w jednej osi.
   Domyślnie WooCommerce wcina dymek względem etykiety i strzałka ląduje
   w przypadkowym miejscu; tutaj oba zaczynają się od tej samej krawędzi. */
.mlodnik-shop ul.wc_payment_methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlodnik-shop ul.wc_payment_methods li {
	margin: 0 0 8px;
	padding: 0;
	list-style: none;
}

.mlodnik-shop ul.wc_payment_methods li > label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 6px;
	padding: 0;
	font-size: 0.98rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.mlodnik-shop ul.wc_payment_methods li input[type="radio"] {
	margin: 0;
	accent-color: var(--mlodnik-green);
}

.mlodnik-shop .payment_box {
	position: relative;
	margin: 0;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid var(--mlodnik-line);
	border-radius: 4px;
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--mlodnik-muted);
}

.mlodnik-shop .payment_box p:last-child {
	margin-bottom: 0;
}

/* Strzałka dymku: jeden trójkąt na krawędzi, wyrównany do etykiety. */
.mlodnik-shop .payment_box::before {
	content: "";
	position: absolute;
	top: -7px;
	left: 22px;
	width: 12px;
	height: 12px;
	background: #fff;
	border-left: 1px solid var(--mlodnik-line);
	border-top: 1px solid var(--mlodnik-line);
	transform: rotate(45deg);
	margin: 0;
}

.mlodnik-shop .payment_box::after {
	content: none;
}

/* =================================================================
   Podsumowanie zamówienia jako układ blokowy

   Tabela ma `table-layout: fixed`, więc wiersz przestawiony na `display:
   block` i tak dostawał szerokość pierwszej kolumny (188 px) — lista metod
   dostawy dusiła się w połowie panelu i nazwy łamały się na dwie linijki.
   Zamiast walczyć z układem tabelarycznym, cała tabela staje się blokiem,
   a wiersze zwykłym flexem: etykieta z lewej, wartość z prawej.
   ================================================================= */

.mlodnik-shop table.woocommerce-checkout-review-order-table,
.mlodnik-shop table.woocommerce-checkout-review-order-table thead,
.mlodnik-shop table.woocommerce-checkout-review-order-table tbody,
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot {
	display: block;
	width: 100%;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table th,
.mlodnik-shop table.woocommerce-checkout-review-order-table td {
	display: block;
	width: auto;
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--mlodnik-line);
}

.mlodnik-shop table.woocommerce-checkout-review-order-table td {
	text-align: right;
	white-space: nowrap;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table th {
	flex: 1 1 auto;
	text-align: left;
}

/* Dostawa i przycisk paczkomatu zajmują całą szerokość — lista ma się
   nie mieścić w połowie panelu. */
.mlodnik-shop table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals,
.mlodnik-shop table.woocommerce-checkout-review-order-table tr.easypack-parcel-machine {
	display: block;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
	padding-bottom: 4px;
	border-bottom: 0;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td,
.mlodnik-shop table.woocommerce-checkout-review-order-table tr.easypack-parcel-machine td {
	width: 100%;
	padding-top: 0;
	text-align: left;
	white-space: normal;
}

.mlodnik-shop ul#shipping_method li label {
	white-space: nowrap;
}

/* Ostatni wiersz bez kreski pod spodem. */
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr:last-child th,
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr:last-child td {
	border-bottom: 0;
}

/* Kreski rysuje WIERSZ, nie komórki.
   Przy obramowaniu na th i td powstawały dwa osobne odcinki — a że komórki
   wyrównane są do linii bazowej, kończyły się na różnych wysokościach
   i podsumowanie wyglądało jak posklejane z kawałków. */
.mlodnik-shop table.woocommerce-checkout-review-order-table th,
.mlodnik-shop table.woocommerce-checkout-review-order-table td {
	border-bottom: 0;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table thead tr,
.mlodnik-shop table.woocommerce-checkout-review-order-table tbody tr,
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr {
	border-bottom: 1px solid var(--mlodnik-line);
}

/* Wiersz z samym przyciskiem paczkomatu nie potrzebuje kreski ani pustej
   komórki nagłówkowej. */
.mlodnik-shop table.woocommerce-checkout-review-order-table tr.easypack-parcel-machine,
.mlodnik-shop table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
	border-bottom: 0;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
	padding-bottom: 6px;
	border-bottom: 1px solid var(--mlodnik-line);
}

.mlodnik-shop th.easypack-parcel-machine-label {
	display: none;
}

.mlodnik-shop td.easypack-parcel-machine-select {
	padding: 12px 0 14px;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr.order-total {
	border-bottom: 0;
}

/* =================================================================
   Podsumowanie: trzy kreski, ani jednej więcej

   Pomiar w przeglądarce pokazał, skąd brał się gąszcz linii: komórki mają
   obramowanie GÓRNE (zerowałem tylko dolne), sama tabela ma ramkę u góry
   i u dołu, pozycje listy dostawy mają po dwie, a blok płatności dokłada
   swoją. Dlatego najpierw zerujemy wszystko, a potem dorysowujemy dokładnie
   te trzy linie, które porządkują czytanie.
   ================================================================= */

.mlodnik-shop table.woocommerce-checkout-review-order-table,
.mlodnik-shop table.woocommerce-checkout-review-order-table tr,
.mlodnik-shop table.woocommerce-checkout-review-order-table th,
.mlodnik-shop table.woocommerce-checkout-review-order-table td,
.mlodnik-shop ul#shipping_method li,
.mlodnik-shop .woocommerce-checkout-payment,
.mlodnik-shop .woocommerce-terms-and-conditions-wrapper,
.mlodnik-shop .woocommerce-terms-and-conditions,
.mlodnik-shop .woocommerce-terms-and-conditions-link,
.mlodnik-shop #order_review .hidden-paczkomat-data {
	border: 0;
}

/* 1. pod nagłówkiem tabeli, 2. pod pozycją zamówienia, 3. nad sumą. */
.mlodnik-shop table.woocommerce-checkout-review-order-table thead tr,
.mlodnik-shop table.woocommerce-checkout-review-order-table tbody tr.cart_item {
	border-bottom: 1px solid var(--mlodnik-line);
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr.order-total {
	margin-top: 4px;
	padding-top: 10px;
	border-top: 1px solid var(--mlodnik-line);
}

/* Znaczek nad dymkiem płatności znika — dymek wystarczy sam z siebie. */
.mlodnik-shop .payment_box::before,
.mlodnik-shop .payment_box::after {
	content: none !important;
	display: none !important;
}

.mlodnik-shop .payment_box {
	margin-top: 8px;
}

/* Odstępy zamiast kresek: sekcje rozdziela powietrze. */
.mlodnik-shop table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
	padding-top: 10px;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tr.easypack-parcel-machine td {
	padding-top: 6px;
	padding-bottom: 6px;
}

.mlodnik-shop .woocommerce-checkout-payment {
	margin-top: 18px;
}

/* =================================================================
   Koszyk na jedną kolumnę

   Panel „Podsumowanie" z boku miał sens, gdy trzymał wybór dostawy.
   Ten wybór przeniesiony jest na zamówienie, więc zostawała ramka
   z jedną kwotą i przyciskiem — dużo obudowy wokół dwóch liczb.
   Teraz: tabela, pod nią suma i przycisk.
   ================================================================= */

body.woocommerce-cart .woocommerce {
	display: block;
	max-width: 780px;
	margin-inline: auto;
}

body.woocommerce-cart .cart-collaterals {
	width: 100%;
	margin-top: 4px;
	float: none;
}

body.woocommerce-cart .cart-collaterals .cross-sells {
	display: none;
}

body.woocommerce-cart .cart_totals {
	width: 100%;
	max-width: none;
	padding: 0;
	background: none;
	border: 0;
}

/* Nagłówek „Podsumowanie" nad jedną kwotą to zbędne piętro. */
body.woocommerce-cart .cart_totals h2 {
	display: none;
}

body.woocommerce-cart .cart_totals table {
	width: 100%;
	margin: 0 0 18px;
	border: 0;
}

body.woocommerce-cart .cart_totals table tr,
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	border: 0;
}

/* Zostaje wyłącznie wiersz „Razem". */
body.woocommerce-cart .cart_totals tr.cart-subtotal,
body.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals,
body.woocommerce-cart .cart_totals tr.shipping {
	display: none;
}

body.woocommerce-cart .cart_totals tr.order-total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding-top: 14px;
	/* Kreska na wierszu, nie na tabeli — tabela liczy szerokość po kolumnach
	   i linia kończyła się w połowie panelu. */
	border-top: 1px solid var(--mlodnik-line);
}

body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td {
	padding: 0;
	text-align: left;
}

body.woocommerce-cart .cart_totals tr.order-total .amount {
	color: var(--mlodnik-green);
	font-size: 1.15rem;
	font-weight: 700;
}

/* Przycisk pod tabelą, na całą szerokość — jedna oczywista droga dalej. */
body.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	text-align: center;
}

/* „Przelicz koszyk" znika — ilość przelicza się sama po zmianie pola. */
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart input[name="update_cart"] {
	display: none !important;
}

body.woocommerce-cart td.actions {
	padding: 0 !important;
	border: 0;
}

/* Komórki sumy nie rysują własnych kresek — linię ma wyłącznie wiersz.
   Pomiar pokazał trzy nachodzące na siebie odcinki: wiersz na pełną
   szerokość i dwie komórki, każda na swojej. */
body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td,
body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td {
	border-top: 0;
	border-bottom: 0;
}

body.woocommerce-cart .cart_totals tr.order-total {
	border-top: 1px solid var(--mlodnik-line);
}

/* Komórki stopki tabeli: zero kresek.
   Poprzednie zerowanie przegrywało z regułą WooCommerce
   `.woocommerce table.shop_table tfoot td` — ona ma trzy elementy
   w selektorze, moja miała dwa. Stąd urwane odcinki nad WARTOŚCIĄ,
   PRZESYŁKĄ i RAZEM: kreskę rysował wiersz i osobno każda komórka.
   Dopisanie tfoot/thead/tbody wyrównuje rachunek szczegółowości. */
.mlodnik-shop table.woocommerce-checkout-review-order-table thead tr th,
.mlodnik-shop table.woocommerce-checkout-review-order-table thead tr td,
.mlodnik-shop table.woocommerce-checkout-review-order-table tbody tr th,
.mlodnik-shop table.woocommerce-checkout-review-order-table tbody tr td,
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr th,
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr td {
	border-top: 0;
	border-bottom: 0;
	border-left: 0;
	border-right: 0;
}

/* To samo w koszyku — tam stopkę rysuje tabela sumy. */
body.woocommerce-cart .cart_totals tfoot tr th,
body.woocommerce-cart .cart_totals tfoot tr td,
body.woocommerce-cart .cart_totals tbody tr th,
body.woocommerce-cart .cart_totals tbody tr td {
	border-top: 0;
	border-bottom: 0;
}

/* Ostatecznie trzy kreski: pod nagłówkiem, pod pozycją, nad sumą.
   Wiersze „Wartość" i „Przesyłka" rozdziela odstęp, nie linia. */
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals {
	border-bottom: 0;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal {
	padding-bottom: 4px;
}

.mlodnik-shop table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals {
	padding-bottom: 10px;
}
