/**
 * Vzhľad klasickej pokladne.
 *
 * Všetko je pod triedou .tlpb-checkout-design na <body>, takže sa dá vypnúť
 * jedným prepínačom a nič sa nechytá inde na webe. Farby, rozostupy, zaoblenia
 * a písmo berieme z dizajnového systému (assets/css/tokens.css), tu už žiadny
 * hex nepíšeme.
 *
 * @package TulipoBox\CheckoutFlow
 */

.tlpb-checkout-design {
	--tlpb-co-gap: var( --tlpb-space-4 );
	--tlpb-co-field-h: 52px;
	--tlpb-co-toggle-h: 56px; /* karty „Nakupujem na firmu“ a „Odoslať na inú adresu?“ – rovnako vysoké ako pole */
}

/* --- Rozloženie: formulár vľavo, zhrnutie vpravo ------------------------ */

@media screen and ( min-width: 900px ) {
	/*
	 * Dva nezávislé stĺpce z poprehadzovaného HTML.
	 *
	 * Mriežka sa tu nedá použiť: kupón je súrodenec formulára (WooCommerce ho
	 * vypisuje pred ním), takže by ľavý stĺpec musel preklenúť všetky riadky –
	 * a jeho výška by sa rozložila medzi ne a odtlačila pravý stĺpec nadol.
	 * Plávajúce bloky stĺpce nespájajú, preto sa správajú presne ako treba.
	 */
	.tlpb-checkout-design.woocommerce-checkout form.checkout {
		display: contents;
	}

	/*
	 * Obopne plávajúce stĺpce. Nie cez overflow: hidden – to orezávalo prstenec
	 * zaostrenia na ľavom a hornom okraji polí (polia sedia presne na okraji
	 * kontajnera) a zároveň rušilo lepivé zhrnutie objednávky (sticky sa lepí
	 * na najbližšieho predka s overflow). flow-root robí to isté bez týchto vedľajších účinkov.
	 */
	.tlpb-checkout-design.woocommerce-checkout .woocommerce {
		display: flow-root;
	}

	.tlpb-checkout-design.woocommerce-checkout #customer_details {
		float: left;
		width: 57%;
	}

	/* Všetko ostatné ide pod seba do pravého stĺpca. */
	.tlpb-checkout-design.woocommerce-checkout #order_review_heading,
	.tlpb-checkout-design.woocommerce-checkout .tlpb-subnote--checkout,
	.tlpb-checkout-design.woocommerce-checkout #order_review {
		float: right;
		clear: right;
		width: 39%;
	}

	.tlpb-checkout-design.woocommerce-checkout #order_review_heading {
		margin-top: 0;
	}

	.tlpb-checkout-design.woocommerce-checkout .woocommerce-notices-wrapper {
		clear: both;
	}

	/*
	 * Zhrnutie zostane na očiach aj pri dlhom formulári – suma aj tlačidlo sú
	 * tak stále v dohľade a netreba scrollovať hore-dole.
	 */
	.tlpb-checkout-design.woocommerce-checkout #order_review {
		position: sticky;
		top: var( --tlpb-space-5 );
	}
}

/*
 * Formulár je mriežka na každej šírke, nielen na počítači. Pod 900 px sa
 * WooCommerce vracia k plávajúcim poliam a dvom stĺpcom (fakturačné údaje
 * vľavo, dodacie a poznámka vpravo) – na tablete a mobile z toho vznikali
 * osamotené polia v pravej polovici. Tu je všetko pod sebou, dvojice polí
 * sa na úzkom displeji rozložia na jedno pole na riadok.
 */
/* Fakturačné a dodacie údaje idú pod seba, vedľa je zhrnutie. */
.tlpb-checkout-design #customer_details .col2-set {
	display: block;
}

.tlpb-checkout-design #customer_details .col-1,
.tlpb-checkout-design #customer_details .col-2 {
	float: none;
	width: 100%;
}

/* Meno a priezvisko vedľa seba. */
.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper,
.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var( --tlpb-space-4 );
}

.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper > .form-row,
.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper > .form-row {
	grid-column: 1 / -1;
	width: 100%;
	float: none;
	margin-left: 0;
	margin-right: 0;
}

.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper > .form-row-first,
.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper > .form-row-first {
	grid-column: 1;
}

.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper > .form-row-last,
.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper > .form-row-last {
	grid-column: 2;
}

/*
 * Krajina stojí vedľa IČ DPH. Kým nie je zaškrtnuté „Nakupujem na firmu“,
 * je IČ DPH skryté a krajina by zostala trčať v pravej polovici s dierou
 * vedľa seba – vtedy jej dáme celý riadok.
 */
.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper:has( .tlpb-company-field[hidden] ) > #billing_country_field {
	grid-column: 1 / -1;
}

@media screen and ( max-width: 479px ) {
	.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper,
	.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.tlpb-checkout-design .woocommerce-billing-fields__field-wrapper > .form-row-last,
	.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper > .form-row-first,
	.tlpb-checkout-design .woocommerce-shipping-fields__field-wrapper > .form-row-last {
		grid-column: 1 / -1;
	}
}

/* Pod formulárom nesmie nadpis zhrnutia lepiť na poslednom poli. */
.tlpb-checkout-design #order_review_heading {
	margin-top: var( --tlpb-space-5 );
}

/* „Odoslať na inú adresu?“ – rovnaká karta ako „Nakupujem na firmu“. */
.tlpb-checkout-design #ship-to-different-address {
	margin: 0 0 var( --tlpb-space-3 );
	padding: var( --tlpb-space-3 ) var( --tlpb-space-4 );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-surface );
	font-size: var( --tlpb-text-sm );
}

.tlpb-checkout-design #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin: 0;
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	cursor: pointer;
}

.tlpb-checkout-design #ship-to-different-address input[type="checkbox"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var( --tlpb-plum );
}

/*
 * Poznámka k objednávke. Téma a Elementor jej dávajú vlastný tmavý rám;
 * cez id ho bezpečne prebijeme. Menovka sa správa ako pri ostatných poliach
 * (plávajúca), zástupný text sa ukáže až pri písaní.
 */
body.tlpb-checkout-design textarea#order_comments {
	box-sizing: border-box;
	width: 100%;
	min-height: 112px;
	padding: 28px var( --tlpb-space-4 ) var( --tlpb-space-3 );
	border: 1px solid var( --tlpb-field-line ) !important;
	border-radius: var( --tlpb-radius-sm ) !important;
	background: var( --tlpb-panel );
	color: var( --tlpb-ink );
	font: inherit;
	line-height: 1.4;
	box-shadow: none;
	resize: vertical;
}

body.tlpb-checkout-design textarea#order_comments:focus {
	border-color: var( --tlpb-plum ) !important;
	box-shadow: var( --tlpb-focus-ring );
	outline: none;
}


/* Keď je na stránke widget Checkout z Elementora, layout nechávame jemu. */
.elementor-widget-woocommerce-checkout-page form.checkout {
	display: block;
}

/* --- Nadpisy ------------------------------------------------------------ */

.tlpb-checkout-design .woocommerce-billing-fields > h3,
.tlpb-checkout-design .woocommerce-shipping-fields > h3,
.tlpb-checkout-design .woocommerce-additional-fields > h3,
.tlpb-checkout-design #order_review_heading {
	margin: 0 0 var( --tlpb-space-3 );
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-h3 );
	font-weight: 700;
	line-height: 1.3;
}

.tlpb-checkout-design .woocommerce-shipping-fields,
.tlpb-checkout-design .woocommerce-additional-fields {
	margin-top: var( --tlpb-space-5 );
}

/* --- Polia -------------------------------------------------------------- */

.tlpb-checkout-design .form-row {
	margin: 0 0 var( --tlpb-space-2 );
	padding: 0;
}

.tlpb-checkout-design .form-row label {
	display: block;
	margin-bottom: var( --tlpb-space-1 );
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 600;
}

.tlpb-checkout-design .form-row .required {
	color: var( --tlpb-plum );
	text-decoration: none;
}

.tlpb-checkout-design .form-row input.input-text,
.tlpb-checkout-design .form-row textarea,
.tlpb-checkout-design .form-row select,
.tlpb-checkout-design .select2-container .select2-selection--single {
	width: 100%;
	height: auto;
	min-height: var( --tlpb-co-field-h );
	padding: var( --tlpb-space-2 ) var( --tlpb-space-4 );
	border: 1px solid var( --tlpb-field-line );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-panel );
	color: var( --tlpb-ink );
	font: inherit;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.tlpb-checkout-design .form-row textarea {
	min-height: 96px;
	resize: vertical;
}

/*
 * Prstenec je vidieť aj pri myši (pole treba nájsť očami), ale hrubý obrys
 * pre klávesnicu pridávame len cez :focus-visible.
 */
.tlpb-checkout-design .form-row input.input-text:focus,
.tlpb-checkout-design .form-row textarea:focus,
.tlpb-checkout-design .form-row select:focus,
.tlpb-checkout-design .select2-container--open .select2-selection--single {
	border-color: var( --tlpb-plum );
	box-shadow: var( --tlpb-focus-ring );
	outline: none;
}

.tlpb-checkout-design .form-row input.input-text:focus-visible,
.tlpb-checkout-design .form-row textarea:focus-visible,
.tlpb-checkout-design .form-row select:focus-visible {
	outline: 2px solid var( --tlpb-plum );
	outline-offset: 2px;
}

/* --- Chyby -------------------------------------------------------------- */

.tlpb-checkout-design .woocommerce-invalid input.input-text,
.tlpb-checkout-design .woocommerce-invalid textarea,
.tlpb-checkout-design .woocommerce-invalid select {
	border-color: var( --tlpb-danger );
}

/* Chybu nesmie niesť len farba rámika – menovka sa zafarbí tiež. */
.tlpb-checkout-design .woocommerce-invalid > label {
	color: var( --tlpb-danger );
}

/* Po neúspešnom odoslaní stránka skáče na prvé chybné pole – nech nekončí
   tesne pod hlavičkou. */
.tlpb-checkout-design .form-row,
.tlpb-checkout-design .woocommerce-notices-wrapper {
	scroll-margin-top: var( --tlpb-space-6 );
}

/* Vzhľad chybových hlásení má na starosti modul Oznámenia (modules/notices/). */

/* --- Firemný nákup ------------------------------------------------------ */

.tlpb-checkout-design .tlpb-company-toggle {
	margin-bottom: var( --tlpb-space-3 );
	padding: var( --tlpb-space-3 ) var( --tlpb-space-4 );
	border: 0;
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-surface );
}

.tlpb-checkout-design .tlpb-company-toggle label {
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin: 0;
	font-size: var( --tlpb-text-sm );
	font-weight: 600;
	cursor: pointer;
}

.tlpb-checkout-design .tlpb-company-toggle input[type="checkbox"],
.tlpb-checkout-design .tlpb-consent__input,
.tlpb-checkout-design .tlpb-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var( --tlpb-plum );
}

/* Kým sa nezaškrtne, firemné polia nezaberajú miesto. Bez JavaScriptu
   zostanú viditeľné, nech sa dajú vyplniť vždy. */
.tlpb-company-field[hidden] {
	display: none !important;
}

/* --- Zhrnutie objednávky ------------------------------------------------ */

/*
 * Biela karta na krémovej stránke. Bez rámikov – hierarchiu robí podklad,
 * mäkký tieň, rozostupy a hrúbka písma.
 */
.tlpb-checkout-design #order_review {
	padding: var( --tlpb-space-5 );
	border: 0;
	border-radius: var( --tlpb-radius-md );
	background: var( --tlpb-panel );
	box-shadow: var( --tlpb-shadow-card );
}

/*
 * Zhrnutie vykresľujeme ako pružné riadky, nie ako tabuľku.
 *
 * S percentuálnymi stĺpcami sa čokoľvek širšie než jeho podiel buď orezalo
 * (prepínač typu nákupu), alebo vytieklo von (štítok dopravy zadarmo), a blok
 * s opakovanou platbou sa nedal roztiahnuť cez celú šírku. Pružné riadky sa
 * prispôsobia obsahu a keď sa dvojica nezmestí, jednoducho sa zalomí.
 */
.tlpb-checkout-design .woocommerce-checkout-review-order-table,
.tlpb-checkout-design .woocommerce-checkout-review-order-table tbody,
.tlpb-checkout-design .woocommerce-checkout-review-order-table tfoot {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table tr {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var( --tlpb-space-1 ) var( --tlpb-space-3 );
	width: 100%;
}

/*
 * Čiaru nad každou bunkou píše WooCommerce selektorom o sile (0,2,3)
 * (.woocommerce table.shop_table tbody th …), takže ju musíme prebiť
 * konkrétnejším zápisom – inak zhrnutie vyzerá ako rozsekaná tabuľka.
 */
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody th,
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody td,
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tfoot th,
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tfoot td {
	display: block;
	width: auto;
	padding: var( --tlpb-space-2 ) 0;
	border: 0;
	background: none;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table th {
	flex: 1 1 auto;
	font-weight: 400;
	text-align: left;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table td {
	flex: 0 1 auto;
	margin-left: auto;
	overflow-wrap: anywhere;
	text-align: right;
}

/* Sivý rám tabuľky píše WooCommerce (.woocommerce table.shop_table) – prebijeme ho. */
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table {
	border: 0;
	border-radius: 0;
	background: none;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table thead {
	display: none; /* „Produkt / Medzisúčet“ nad jednou položkou nič nehovorí */
}

/* Položka: názov vľavo, suma vpravo; ovládanie sa zalomí pod ne. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .cart_item .product-name {
	flex: 1 1 180px;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table .cart_item .product-total {
	flex: 0 1 auto;
	max-width: 45%;
}

/* Nezlomiť sa smie len samotná suma. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .woocommerce-Price-amount {
	white-space: nowrap;
}

/* Položky oddelí len jemný odstup, nie čiara. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .cart_item td,
.tlpb-checkout-design .woocommerce-checkout-review-order-table .cart_item th {
	padding-bottom: var( --tlpb-space-4 );
}

/* Medzisúčet a doprava sú medzikrok, preto tichšie než položky aj než suma. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .cart-subtotal th,
.tlpb-checkout-design .woocommerce-checkout-review-order-table .cart-subtotal td,
.tlpb-checkout-design .woocommerce-checkout-review-order-table .woocommerce-shipping-totals th,
.tlpb-checkout-design .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td {
	color: var( --tlpb-ink-muted );
	font-size: var( --tlpb-text-sm );
}

/* Suma je to, čo sa naozaj strhne – dostane čiaru nad sebou a najväčší dôraz. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .order-total th,
.tlpb-checkout-design .woocommerce-checkout-review-order-table .order-total td {
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-h3 );
	font-weight: 800;
}

/* Čiara patrí celému riadku – na bunkách by z nej boli dva kusy s medzerou. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .order-total {
	margin-top: var( --tlpb-space-2 );
	padding-top: var( --tlpb-space-3 );
	border-top: 1px solid var( --tlpb-line );
}

/*
 * Opakovaná platba. Vo dvoch stĺpcoch sa text lámal doprava a vznikla z neho
 * rozstrapkaná kaša – tak z riadka spravíme jeden krémový blok pod sebou.
 *
 */
/* Riadok je pružný, takže medzeru medzi jeho polovicami robí row-gap. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .recurring-total {
	row-gap: 0;
	margin-top: var( --tlpb-space-3 );
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table .recurring-total th,
.tlpb-checkout-design .woocommerce-checkout-review-order-table .recurring-total td {
	flex: 1 0 100%;
	max-width: none;
	margin: 0;
	background: var( --tlpb-surface );
	color: var( --tlpb-ink );
	text-align: left;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table .recurring-total th {
	padding: var( --tlpb-space-3 ) var( --tlpb-space-3 ) 0;
	border-radius: var( --tlpb-radius-sm ) var( --tlpb-radius-sm ) 0 0;
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
}

.tlpb-checkout-design .woocommerce-checkout-review-order-table .recurring-total td {
	padding: 2px var( --tlpb-space-3 ) var( --tlpb-space-3 );
	border-radius: 0 0 var( --tlpb-radius-sm ) var( --tlpb-radius-sm );
	color: var( --tlpb-ink-muted );
	font-size: 13px;
	line-height: 1.5;
}

/* Samotná suma je to podstatné – tá zostáva v plnej farbe a tučná. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .recurring-total td .woocommerce-Price-amount {
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-body );
	font-weight: 700;
}

/* Ktorému predplatnému patria sumy – nad každým blokom, keď ich je viac. */
.tlpb-checkout-design .recurring-total td p + p {
	margin-top: var( --tlpb-space-3 );
}

.tlpb-checkout-design .recurring-total .tlpb-recurring__name {
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
}

/* Veta o zrušení je jedna pre všetky predplatné, preto na konci bloku. */
.tlpb-checkout-design .recurring-total td p.tlpb-recurring__cancel {
	margin-top: var( --tlpb-space-3 );
	padding-top: var( --tlpb-space-2 );
	border-top: 1px solid var( --tlpb-line );
}

/* Náhľadový obrázok položky – rovnako ako v košíku. */
.tlpb-checkout-design .woocommerce-checkout-review-order-table td.product-name,
.tlpb-checkout-design .woocommerce-checkout-review-order-table th.product-name {
	overflow: hidden;
	line-height: 1.45;
	text-align: left;
	white-space: normal;
}

/*
 * Položka je mriežka s pevnými oblasťami, nie plávajúci obrázok a text, ktorý
 * sa zalamuje podľa dĺžky. Každá položka má rovnaké rozloženie – obrázok
 * vľavo, názov a suma na prvom riadku, pod nimi prepínač a potom množstvo –
 * takže sa pri prepnutí jednorazovo ↔ predplatné nič neposunie do strán.
 * Bunku s názvom „rozpustíme“ (display: contents), aby jej deti sedeli
 * priamo v mriežke riadka spolu so sumou.
 */
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody tr.cart_item {
	display: grid;
	grid-template-columns: 56px minmax( 0, 1fr ) auto;
	grid-template-areas:
		"thumb name   total"
		"thumb switch switch"
		"thumb qty    qty";
	/*
	 * WooCommerce za názov vkladá &nbsp; – vznikol z neho osamotený prvok mriežky
	 * a nový prázdny riadok pod položkou. Nadbytočné riadky preto majú nulovú
	 * výšku a medzery robíme okrajmi, nie row-gap (ten by sa započítal aj tam).
	 */
	grid-template-rows: auto auto auto;
	grid-auto-rows: 0;
	align-items: start;
	column-gap: var( --tlpb-space-3 );
	row-gap: 0;
	padding: var( --tlpb-space-3 ) 0;
	border-bottom: 1px solid var( --tlpb-line );
}

.tlpb-checkout-design .cart_item .tlpb-cart-switch--checkout,
.tlpb-checkout-design .cart_item .tlpb-qty {
	margin-top: var( --tlpb-space-2 );
}

body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody tr.cart_item:last-of-type {
	border-bottom: 0;
}

body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name {
	display: contents;
}

body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total {
	grid-area: total;
	padding: 0;
	max-width: none;
	margin: 0;
	white-space: nowrap;
	text-align: right;
}

.tlpb-checkout-design .cart_item .tlpb-co-thumb {
	grid-area: thumb;
	margin: 0;
	line-height: 0;
}

.tlpb-checkout-design .cart_item .tlpb-co-name {
	grid-area: name;
	min-width: 0;
	line-height: 1.35;
	text-align: left;
	overflow-wrap: anywhere;
}

/*
 * Na širokom zhrnutí sedí množstvo vedľa prepínača, nie pod ním – ušetrí to
 * jeden riadok na každej položke. Rozhoduje šírka samotného zhrnutia
 * (container query), nie okna: na počítači je zhrnutie úzky pravý stĺpec,
 * na tablete cez celú šírku. V úzkom zostáva pod sebou, ako doteraz.
 */
.tlpb-checkout-design #order_review {
	container-type: inline-size;
	container-name: tlpb-review;
}

@container tlpb-review ( min-width: 400px ) {
	body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody tr.cart_item {
		grid-template-columns: 56px auto minmax( 0, 1fr ) auto;
		grid-template-areas:
			"thumb name   name total"
			"thumb switch qty  qty";
		align-items: center;
	}

	.tlpb-checkout-design .cart_item .tlpb-cart-switch--checkout {
		margin-right: var( --tlpb-space-3 );
	}
}

.tlpb-checkout-design .cart_item .tlpb-cart-switch--checkout {
	grid-area: switch;
	justify-self: start;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	max-width: 100%;
}

.tlpb-checkout-design .cart_item .tlpb-qty {
	grid-area: qty;
	justify-self: start;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
}

/* Bez obrázka sa stĺpec pre obrázok zruší, nech ostane text pri okraji. */
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table tbody tr.cart_item:not( :has( .tlpb-co-thumb ) ) {
	grid-template-columns: 0 minmax( 0, 1fr ) auto;
	column-gap: 0;
}

.tlpb-co-thumb img {
	display: block;
	width: 56px;
	height: 56px;
	border-radius: var( --tlpb-radius-sm );
	object-fit: cover;
}

.tlpb-checkout-design .product-quantity {
	color: var( --tlpb-ink-muted );
	font-weight: 400;
}


/* --- Doprava ----------------------------------------------------------- */

.tlpb-checkout-design .woocommerce-shipping-totals th,
.tlpb-checkout-design .woocommerce-shipping-totals td {
	padding-top: var( --tlpb-space-1 );
	padding-bottom: var( --tlpb-space-1 );
}

/*
 * Spôsoby dopravy sú karty cez celú šírku zhrnutia, rovnako ako platobné
 * metódy. V úzkom pravom stĺpci sa Packeta tlačidlo s logom nezmestilo
 * a text z neho vytiekol.
 */
.tlpb-checkout-design .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td {
	flex: 1 1 100%;
	margin-left: 0;
	text-align: left;
}

.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	column-gap: var( --tlpb-space-3 );
	margin: 0 0 var( --tlpb-space-2 );
	padding: var( --tlpb-space-3 ) var( --tlpb-space-4 );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-surface );
	line-height: 1.35;
	list-style: none;
	text-align: left;
}

.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li:last-child {
	margin-bottom: 0;
}

/* Vybraná doprava – prstenec ako pri platbe. */
.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li:has( > input:checked ) {
	background: var( --tlpb-panel );
	box-shadow: inset 0 0 0 2px var( --tlpb-plum );
}

.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li > input.shipping_method {
	grid-column: 1;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var( --tlpb-plum );
}

.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li > input.shipping_method:focus-visible {
	outline: 2px solid var( --tlpb-plum );
	outline-offset: 2px;
}

.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li > label {
	display: block;
	grid-column: 2;
	margin: 0;
	cursor: pointer;
}

/* Jediná doprava nemá prepínač (skrytý input) – text potom ide od kraja. */
.tlpb-checkout-design .woocommerce-shipping-totals ul#shipping_method li > input[type="hidden"] + label {
	grid-column: 1 / -1;
}

/* Názov vľavo, cena vpravo, štítok alebo tip pod nimi. */
.tlpb-ship {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) auto;
	align-items: center;
	gap: var( --tlpb-space-1 ) var( --tlpb-space-2 );
	color: var( --tlpb-ink );
}

.tlpb-ship__name {
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
}

.tlpb-ship__price {
	grid-column: 2;
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	text-align: right;
}

.tlpb-ship__eco,
.tlpb-ship__tip {
	display: inline-flex;
	grid-column: 1 / -1;
	align-items: center;
	gap: var( --tlpb-space-1 );
	justify-self: start;
}

/* Šalviová je vo farbách značky príroda – lístok na jemnom šalviovom podklade. */
.tlpb-ship__eco {
	padding: 2px var( --tlpb-space-2 ) 2px 6px;
	border-radius: var( --tlpb-radius-pill );
	background: var( --tlpb-sage-soft );
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: calc( var( --tlpb-text-sm ) - 1px );
	font-weight: 700;
}

.tlpb-ship__tip {
	align-items: flex-start;
	color: var( --tlpb-ink-muted );
	font-family: var( --tlpb-font-body );
	font-size: calc( var( --tlpb-text-sm ) - 1px );
	font-weight: 400;
	line-height: 1.45;
}

.tlpb-ship__leaf {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	color: var( --tlpb-sage-deep );
}

.tlpb-ship__tip strong {
	color: var( --tlpb-ink );
	font-weight: 700;
}

.tlpb-ship__tip .tlpb-ship__leaf {
	margin-top: 2px;
}

.tlpb-ship__leaf svg {
	display: block;
	width: 100%;
	height: 100%;
}

/*
 * Výber výdajného miesta od Packety: logo 150 px a fialové tlačidlo
 * s pevnou šírkou, z ktorého text vytiekol. Necháme malé logo a tlačidlo
 * v štýle našich vedľajších tlačidiel (ako Pridať pri doplnkoch).
 */
.tlpb-checkout-design #shipping_method .packetery-widget-button-wrapper {
	grid-column: 2;
	min-width: 0;
}

.tlpb-checkout-design #shipping_method .packeta-widget.form-row {
	margin: var( --tlpb-space-2 ) 0 0;
	padding: 0;
}

.tlpb-checkout-design #shipping_method .packeta-widget.packetery-hidden {
	display: none;
}

.tlpb-checkout-design #shipping_method .packetery-widget-button-row {
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-2 );
	width: auto;
	max-width: 100%;
}

.tlpb-checkout-design #shipping_method img.packetery-widget-button-logo {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin: 0;
	border-radius: var( --tlpb-radius-sm );
}

body.tlpb-checkout-design #shipping_method .packetery-widget-button-row button.button {
	flex: 0 1 auto;
	width: auto;
	min-width: 0;
	min-height: 40px;
	margin: 0;
	padding: var( --tlpb-space-2 ) var( --tlpb-space-4 );
	border: 1px solid var( --tlpb-plum );
	border-radius: var( --tlpb-radius-pill );
	background: transparent;
	color: var( --tlpb-plum );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	white-space: normal;
	transition: background-color 0.15s ease, color 0.15s ease;
}

body.tlpb-checkout-design #shipping_method .packetery-widget-button-row button.button:hover,
body.tlpb-checkout-design #shipping_method .packetery-widget-button-row button.button:focus-visible {
	background: var( --tlpb-plum );
	color: var( --tlpb-on-accent );
}

/* Vybrané miesto pod tlačidlom; prázdne odseky Packety nech nezaberajú miesto. */
.tlpb-checkout-design #shipping_method .packeta-widget p {
	margin: var( --tlpb-space-1 ) 0 0;
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-sm );
	line-height: 1.45;
}

.tlpb-checkout-design #shipping_method .packeta-widget p:empty {
	display: none;
}

.tlpb-free-shipping {
	display: inline-flex;
	align-items: center;
	gap: var( --tlpb-space-2 );
	padding: 5px var( --tlpb-space-3 ) 5px var( --tlpb-space-2 );
	border-radius: var( --tlpb-radius-pill );
	background: var( --tlpb-apricot );
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1.35;
}

.tlpb-free-shipping__icon {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
}

.tlpb-free-shipping__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

/* V užšom mini košíku stačí menší štítok. */
.tlpb-free-shipping--mini {
	padding: 3px var( --tlpb-space-2 ) 3px 7px;
	font-size: 0.78em;
}

/* --- Tlačidlo a platba -------------------------------------------------- */

/*
 * Platobné metódy. Každá možnosť je samostatný riadok, ktorý sa dá celý
 * kliknúť; vybraná sa podfarbí a zvýrazní slivkovým obrysom, aby bolo na
 * prvý pohľad jasné, čím sa platí.
 */
.tlpb-checkout-design #payment {
	margin-top: var( --tlpb-space-4 );
	border-radius: 0;
	background: none;
}

.tlpb-checkout-design #payment ul.payment_methods {
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

/*
 * Prepínač a názov sú v HTML súrodenci, nie vnorené – mriežku preto robíme
 * z celej položky, inak zostane krúžok trčať na vlastnom riadku nad textom.
 */
.tlpb-checkout-design #payment ul.payment_methods > li {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	column-gap: var( --tlpb-space-3 );
	margin: 0 0 var( --tlpb-space-2 );
	padding: var( --tlpb-space-3 ) var( --tlpb-space-4 );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-surface );
	list-style: none;
	transition: box-shadow 0.15s ease;
}

/* Vybraná metóda – prstenec namiesto rámika, nech sa nič nehýbe. */
.tlpb-checkout-design #payment ul.payment_methods > li:has( input.input-radio:checked ) {
	background: var( --tlpb-panel );
	box-shadow: inset 0 0 0 2px var( --tlpb-plum );
}

.tlpb-checkout-design #payment ul.payment_methods > li > label {
	display: flex;
	grid-column: 2;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin: 0;
	padding: 0;
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1.35;
	cursor: pointer;
}

/* Popis metódy ide pod dvojicu, cez celú šírku riadka. */
.tlpb-checkout-design #payment ul.payment_methods > li > .payment_box {
	grid-column: 1 / -1;
}

.tlpb-checkout-design #payment ul.payment_methods input.input-radio {
	grid-column: 1;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var( --tlpb-plum );
}

.tlpb-checkout-design #payment ul.payment_methods input.input-radio:focus-visible {
	outline: 2px solid var( --tlpb-plum );
	outline-offset: 2px;
}

/* Logá kariet nech nepretlačia názov metódy. */
.tlpb-checkout-design #payment ul.payment_methods label img {
	max-height: 24px;
	width: auto;
	margin: 0 0 0 auto;
}

.tlpb-checkout-design #payment div.form-row {
	margin: var( --tlpb-space-4 ) 0 0;
	padding: 0;
}

.tlpb-checkout-design #payment .payment_box {
	margin: var( --tlpb-space-2 ) 0 0;
	padding: 0;
	border-radius: 0;
	background: none;
	color: var( --tlpb-ink-muted );
	font-size: 13px;
	line-height: 1.5;
}

.tlpb-checkout-design #payment .payment_box::before {
	display: none; /* šípka z témy sa s našimi riadkami nekryje */
}

.tlpb-checkout-design #payment .payment_box p:last-child {
	margin-bottom: 0;
}

.tlpb-checkout-design #place_order {
	width: 100%;
	min-height: var( --tlpb-co-field-h );
	padding: var( --tlpb-space-4 ) var( --tlpb-space-5 );
	border: 0;
	border-radius: var( --tlpb-radius-pill );
	background: var( --tlpb-plum );
	color: var( --tlpb-on-accent );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-lg );
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: filter 0.15s ease, transform 0.15s ease;
}

.tlpb-checkout-design #place_order:hover {
	filter: brightness( 1.08 );
	transform: translateY( -1px );
}

.tlpb-checkout-design #place_order:focus-visible {
	outline: 3px solid var( --tlpb-ink );
	outline-offset: 3px;
}

.tlpb-checkout-design #place_order:active {
	transform: translateY( 0 );
	filter: brightness( 0.96 );
}

/* Kým sa objednávka odosiela, tlačidlo už nereaguje – nech nikto neklikne dvakrát. */
.tlpb-checkout-design.processing #place_order,
.tlpb-checkout-design #place_order[disabled] {
	opacity: 0.65;
	cursor: progress;
	transform: none;
	filter: none;
}

/* --- Rýchla platba (Apple Pay / Google Pay) ----------------------------- */

/*
 * Stripe ich vypisuje navrchu pokladne; prevesili sme ich pod kupón, tesne
 * nad platbu.
 */
.tlpb-checkout-design #wc-stripe-express-checkout-element {
	margin: var( --tlpb-space-3 ) 0 0;
}

/* Pôvodný oddeľovač od Stripe nahrádzame vlastným (viac v PHP). */
.tlpb-checkout-design #wc-stripe-express-checkout-button-separator {
	display: none;
}

/*
 * Deliaca čiara so slovom uprostred. Čiary kreslíme, nie píšeme pomlčkami,
 * takže držia farbu aj hrúbku ostatných deliacich čiar v pokladni.
 */
.tlpb-checkout-design .tlpb-or {
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-3 );
	margin: var( --tlpb-space-4 ) 0 0;
}

.tlpb-checkout-design .tlpb-or::before,
.tlpb-checkout-design .tlpb-or::after {
	content: '';
	flex: 1 1 auto;
	height: 1px;
	background: var( --tlpb-line );
}

.tlpb-checkout-design .tlpb-or span {
	flex: 0 0 auto;
	color: var( --tlpb-ink-muted );
	font-family: var( --tlpb-font-heading );
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

/* --- Kupón (v zhrnutí, nad platbou) ------------------------------------ */

/*
 * Pole na kód je vždy vidieť – odkaz „Máte kupón? Kliknite sem“ len pridával
 * jedno kliknutie navyše. WooCommerce formulár schováva inline štýlom
 * (display: none), preto tu treba !important.
 */
.tlpb-checkout-design .woocommerce-form-coupon-toggle {
	display: none !important;
}

.tlpb-checkout-design .tlpb-coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin: var( --tlpb-space-3 ) 0;
	padding: var( --tlpb-space-2 );
	border-radius: var( --tlpb-radius-pill );
	background: var( --tlpb-surface );
}

body.tlpb-checkout-design .tlpb-coupon__input {
	box-sizing: border-box;
	flex: 1 1 140px;
	min-width: 0;
	width: auto;
	height: 44px;
	min-height: 0;
	margin: 0;
	padding: 0 var( --tlpb-space-4 );
	border: 1px solid transparent !important;
	border-radius: var( --tlpb-radius-pill ) !important;
	background: var( --tlpb-panel );
	color: var( --tlpb-ink );
	font: inherit;
	font-size: var( --tlpb-text-sm );
	line-height: 44px;
	box-shadow: none;
}

body.tlpb-checkout-design .tlpb-coupon__input::placeholder {
	color: var( --tlpb-ink-muted );
	opacity: 1;
}

body.tlpb-checkout-design .tlpb-coupon__input:focus {
	border-color: var( --tlpb-plum ) !important;
	box-shadow: var( --tlpb-focus-ring );
	outline: 0;
}

body.tlpb-checkout-design .tlpb-coupon.has-error .tlpb-coupon__input {
	border-color: var( --tlpb-danger ) !important;
}

body.tlpb-checkout-design button.tlpb-coupon__button {
	flex: 0 0 auto;
	width: auto;
	height: 44px;
	min-height: 0;
	margin: 0;
	padding: 0 var( --tlpb-space-5 );
	border: 0 !important;
	border-radius: var( --tlpb-radius-pill ) !important;
	background: var( --tlpb-plum ) !important;
	color: var( --tlpb-on-accent ) !important;
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	box-shadow: none;
	cursor: pointer;
	transition: filter 0.15s ease;
}

body.tlpb-checkout-design button.tlpb-coupon__button:hover,
body.tlpb-checkout-design button.tlpb-coupon__button:focus-visible {
	filter: brightness( 1.1 );
}

body.tlpb-checkout-design button.tlpb-coupon__button[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.tlpb-checkout-design .tlpb-coupon__msg {
	flex: 1 0 100%;
	margin: 0;
	padding: 0 var( --tlpb-space-3 ) var( --tlpb-space-1 );
	color: var( --tlpb-ink-muted );
	font-size: 13px;
	line-height: 1.4;
}

.tlpb-checkout-design .tlpb-coupon__msg.is-error {
	color: var( --tlpb-danger );
}

.tlpb-checkout-design .tlpb-coupon__msg[hidden] {
	display: none;
}

/* Stripe píše oddeľovač inline štýlom, preto !important – máme vlastný. */
.tlpb-checkout-design #wc-stripe-express-checkout-button-separator {
	display: none !important;
}

/* Stripe podfarbuje popis platby vlastnou šedofialovou – v našej karte ju nechceme. */
body.tlpb-checkout-design #payment ul.payment_methods > li > .payment_box,
body.tlpb-checkout-design #payment ul.payment_methods > li > .payment_box .wc-stripe-payment-method-instruction {
	background: none !important;
	box-shadow: none;
}

/* Vybraná hodnota v zozname krajín nesmie zliezať do menovky. */
.tlpb-checkout-design .form-row .select2-container .select2-selection--single {
	padding-top: 22px;
	padding-bottom: 6px;
}

.tlpb-checkout-design .form-row .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
}

/* --- Sekcia o predplatnom na pokladni ----------------------------------- */

/* Pravý stĺpec je úzky, tak ju držíme nízko: menší maskot, menej miesta. */
.tlpb-checkout-design .tlpb-subnote--checkout {
	gap: var( --tlpb-space-3 );
	margin-bottom: var( --tlpb-space-4 );
	padding: var( --tlpb-space-3 ) var( --tlpb-space-4 );
	border-radius: var( --tlpb-radius-md );
}

.tlpb-checkout-design .tlpb-subnote--checkout {
	--tlpb-subnote-figure: 56px;
}

.tlpb-checkout-design .tlpb-subnote--checkout .tlpb-subnote__badge {
	display: none;
}

/* Text o ochrane súkromia je dlhý, ale musí zostať čitateľný – menšie písmo
   áno, vyblednutý text nie. */
.tlpb-checkout-design .woocommerce-privacy-policy-text p {
	margin: 0;
	color: var( --tlpb-ink-muted );
	font-size: var( --tlpb-text-sm );
	line-height: 1.5;
}

/* --- Súhlasy nad tlačidlom ---------------------------------------------- */

.tlpb-checkout-design .tlpb-consents {
	margin: var( --tlpb-space-4 ) 0;
}

.tlpb-checkout-design .tlpb-consent {
	margin: 0 0 var( --tlpb-space-2 );
}

.tlpb-checkout-design .tlpb-consent label {
	display: flex;
	align-items: flex-start;
	gap: var( --tlpb-space-3 );
	margin: 0;
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-sm );
	font-weight: 400;
	line-height: 1.5;
	cursor: pointer;
}

.tlpb-checkout-design .tlpb-consent__input {
	margin-top: 1px;
}

.tlpb-checkout-design .tlpb-consent__text a {
	color: var( --tlpb-plum );
	font-weight: 600;
	text-decoration: underline;
}

.tlpb-checkout-design .tlpb-consent input[type="checkbox"]:focus-visible {
	outline: 2px solid var( --tlpb-plum );
	outline-offset: 2px;
}

/* Nezaškrtnutý povinný súhlas po odoslaní – rovnaká reč ako pri poliach. */
.tlpb-checkout-design .tlpb-consent.woocommerce-invalid label {
	color: var( --tlpb-danger );
}

/* --- Doplnky k objednávke ---------------------------------------------- */

.tlpb-checkout-design .tlpb-upsell {
	margin: var( --tlpb-space-4 ) 0 0;
	padding: var( --tlpb-space-4 ) 0 0;
	border-top: 1px solid var( --tlpb-line );
}

.tlpb-checkout-design .tlpb-upsell__title {
	display: block;
	margin-bottom: var( --tlpb-space-3 );
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
}

.tlpb-checkout-design .tlpb-upsell__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlpb-checkout-design .tlpb-upsell__item {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var( --tlpb-space-3 );
	margin: 0 0 var( --tlpb-space-2 );
	padding: 0;
	list-style: none;
}

.tlpb-checkout-design .tlpb-upsell__img {
	flex: 0 0 auto;
	line-height: 0;
}

.tlpb-checkout-design .tlpb-upsell__img img {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: var( --tlpb-radius-sm );
	object-fit: cover;
}

/*
 * Názov a cena potrebujú aspoň 8 rem. Keď sa vedľa nich množstvo s tlačidlom
 * nezmestí (úzky telefón), zalomia sa na ďalší riadok a sadnú doprava.
 */
.tlpb-checkout-design .tlpb-upsell__info {
	flex: 1 1 8rem;
	min-width: 0;
	line-height: 1.35;
}

.tlpb-checkout-design .tlpb-upsell__actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin-left: auto;
}

.tlpb-checkout-design .tlpb-qty--upsell {
	margin-top: 0;
}

.tlpb-checkout-design .tlpb-upsell__name {
	display: block;
	overflow: hidden;
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-sm );
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tlpb-checkout-design .tlpb-upsell__price {
	display: block;
	color: var( --tlpb-ink-muted );
	font-size: var( --tlpb-text-sm );
}

.tlpb-checkout-design .tlpb-upsell__price del {
	color: var( --tlpb-ink-muted );
}

body.tlpb-checkout-design a.tlpb-upsell__button {
	flex: 0 0 auto;
	min-height: 40px;
	padding: var( --tlpb-space-2 ) var( --tlpb-space-4 );
	border: 1px solid var( --tlpb-plum );
	border-radius: var( --tlpb-radius-pill );
	background: transparent;
	color: var( --tlpb-plum );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

body.tlpb-checkout-design a.tlpb-upsell__button:hover,
body.tlpb-checkout-design a.tlpb-upsell__button:focus-visible {
	background: var( --tlpb-plum );
	color: var( --tlpb-on-accent );
}

body.tlpb-checkout-design a.tlpb-upsell__button.loading {
	opacity: 0.6;
}

/* WooCommerce po pridaní pripne odkaz „Zobraziť košík“ – v pokladni netreba. */
.tlpb-checkout-design .tlpb-upsell .added_to_cart {
	display: none;
}

/* --- Menovky vnútri polí ------------------------------------------------ */

.tlpb-checkout-design .form-row:not( .tlpb-consent ):not( .tlpb-company-toggle ):not( .create-account ) {
	position: relative;
}

.tlpb-checkout-design .form-row:not( .tlpb-consent ):not( .tlpb-company-toggle ):not( .create-account ) > label {
	position: absolute;
	top: 50%;
	left: 17px;
	z-index: 1;
	max-width: calc( 100% - 40px );
	margin: 0;
	overflow: hidden;
	color: var( --tlpb-ink-muted );
	font-weight: 400;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
	pointer-events: none;
	transform: translateY( -50% );
	transform-origin: left top;
	transition: top 0.14s ease, transform 0.14s ease, color 0.14s ease;
}

/* Menovka veľkého poľa (poznámka) sedí navrchu, nie v strede. */
.tlpb-checkout-design .form-row.notes > label {
	top: 18px;
	transform: none;
}

.tlpb-checkout-design .form-row input.input-text,
.tlpb-checkout-design .form-row textarea,
.tlpb-checkout-design .form-row select {
	padding-top: 22px;
	padding-bottom: 6px;
}

/*
 * Pevná výška jednoriadkových polí – menovka je v strede aj keď je pole prázdne
 * a všetky polia sú rovnako vysoké (aj s chybovým rámom).
 */
.tlpb-checkout-design .form-row input.input-text,
.tlpb-checkout-design .form-row select,
.tlpb-checkout-design .form-row .select2-container .select2-selection--single {
	box-sizing: border-box;
	height: 56px;
	min-height: 0;
}

.tlpb-checkout-design .form-row textarea {
	padding-top: 25px;
}

/*
 * Kým je menovka dole, zástupný text skryjeme – inak by sa prekrývali.
 * Objaví sa až keď menovka vyskočí hore, teda pri písaní.
 */
.tlpb-checkout-design .form-row:not( :focus-within ):not( .tlpb-filled ) input::placeholder,
.tlpb-checkout-design .form-row:not( :focus-within ):not( .tlpb-filled ) textarea::placeholder {
	color: transparent;
}

/*
 * Hore ide menovka pri písaní aj keď je pole vyplnené (triedu dáva skript) a pri
 * rozbaľovacom zozname, ktorý ukazuje hodnotu vždy. Základná menovka je zapísaná
 * s dlhým reťazcom :not(), teda vysokou špecifickosťou – !important tu zaručí,
 * že sa menovka naozaj zdvihne a nezostane ležať cez hodnotu.
 */
.tlpb-checkout-design .form-row:not( .tlpb-consent ):not( .tlpb-company-toggle ):not( .create-account ):focus-within > label,
.tlpb-checkout-design .form-row:not( .tlpb-consent ):not( .tlpb-company-toggle ):not( .create-account ).tlpb-filled > label,
.tlpb-checkout-design .form-row:not( .tlpb-consent ):not( .tlpb-company-toggle ):not( .create-account ):has( select ) > label {
	top: 9px !important;
	transform: scale( 0.76 ) !important;
}

/* Zaškrtávacie polia menovku vnútri nemajú. */
.tlpb-checkout-design .tlpb-consent > label,
.tlpb-checkout-design .tlpb-company-toggle > label {
	position: static;
	color: var( --tlpb-ink );
	pointer-events: auto;
	transform: none;
}

/* --- Množstvo v mini košíku a na pokladni ------------------------------- */

.tlpb-qty {
	display: inline-flex;
	align-items: center;
	margin-top: var( --tlpb-space-1 );
	padding: 3px;
	border-radius: var( --tlpb-radius-pill );
	background: var( --tlpb-surface );
	line-height: 1;
	vertical-align: middle;
}

/*
 * Témy štýlujú <button> dosť razantne (rámiky, zaoblenia, výplň), preto
 * tu tlačidlá poriadne vynulujeme – inak z nich vzniknú veľké pilulky.
 */
.tlpb-qty button.tlpb-qty__btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var( --tlpb-ink );
	font: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color 0.15s ease;
}

/*
 * Kresba má 32 px, ale dotyková plocha 44 px – na mobile sa do menšieho
 * terča trafí len ťažko.
 */
.tlpb-qty button.tlpb-qty__btn::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	transform: translate( -50%, -50% );
}

.tlpb-qty button.tlpb-qty__btn:hover:not( [disabled] ) {
	background: var( --tlpb-apricot ) !important;
}

.tlpb-qty button.tlpb-qty__btn:focus-visible {
	outline: 2px solid var( --tlpb-plum );
	outline-offset: 1px;
}

.tlpb-qty button.tlpb-qty__btn[disabled] {
	color: var( --tlpb-ink-muted );
	cursor: default;
}

.tlpb-qty__value {
	min-width: 26px;
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	text-align: center;
}

.tlpb-qty.is-busy {
	opacity: 0.5;
	pointer-events: none;
}

/* Cena vedľa ovládania v mini košíku. */
.tlpb-qty-price {
	display: block;
	margin-top: 2px;
	font-size: var( --tlpb-text-sm );
}

/* --- Ponuka ďalšieho veku (riadok nad medzisúčtom) ---------------------- */

/*
 * Sedí medzi položkami, tak nesmie kričať ani zaberať. Bunka je cez obe
 * stĺpce tabuľky, preto jej vypneme zarovnanie doprava aj výplň.
 */
.tlpb-checkout-design .woocommerce-checkout-review-order-table td.tlpb-ages-cell,
.woocommerce-cart-form__contents td.tlpb-ages-cell {
	flex: 1 0 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 var( --tlpb-space-2 );
	text-align: left;
	white-space: normal;
}

.tlpb-ages {
	margin: var( --tlpb-space-2 ) 0 0;
	padding: var( --tlpb-space-2 ) var( --tlpb-space-4 );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-surface );
}

.tlpb-ages__title {
	display: inline;
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1.3;
}

.tlpb-ages__note {
	display: inline;
	margin: 0 0 0 var( --tlpb-space-2 );
	color: var( --tlpb-ink-muted );
	font-size: 13px;
	line-height: 1.4;
}

.tlpb-ages__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

/*
 * Kompaktná položka: obrázok cez dva riadky vľavo, vpravo od neho názov a cena
 * a pod nimi prepínač s tlačidlom na jednom riadku. Na úzkom displeji (nižšie)
 * sa obrázok vzdá druhého riadka a tlačidlo sa zmenší na samotné „+“.
 */
.tlpb-ages__item {
	display: grid;
	grid-template-columns: 48px minmax( 0, 1fr ) auto;
	grid-template-areas:
		"img name price"
		"img seg  btn";
	align-items: center;
	gap: var( --tlpb-space-1 ) var( --tlpb-space-3 );
	margin: 0;
	padding: var( --tlpb-space-2 ) 0;
	list-style: none;
}

.tlpb-ages__item + .tlpb-ages__item {
	border-top: 1px solid var( --tlpb-line );
}

.tlpb-ages__img {
	grid-area: img;
	line-height: 0;
}

.tlpb-ages__img img {
	display: block;
	width: 48px;
	height: 48px;
	border-radius: var( --tlpb-radius-sm );
	object-fit: cover;
}

.tlpb-ages__name {
	grid-area: name;
	min-width: 0;
	justify-self: start;
	overflow: hidden;
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tlpb-ages__price {
	grid-area: price;
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-sm );
	text-align: right;
}

.tlpb-ages__seg {
	grid-area: seg;
	justify-self: start;
}

body.tlpb-checkout-design a.tlpb-ages__button {
	display: inline-flex;
	grid-area: btn;
	align-items: center;
	justify-self: end;
	gap: var( --tlpb-space-1 );
	min-height: 34px;
	padding: 0 var( --tlpb-space-3 );
	border: 0;
	border-radius: var( --tlpb-radius-pill );
	background: var( --tlpb-plum );
	color: var( --tlpb-on-accent );
	font-family: var( --tlpb-font-heading );
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
	transition: filter 0.15s ease;
}

/* Elementor farbí odkazy svojou akcentovou farbou – tá je zhodou okolností
   rovnaká ako naše pozadie, takže text na tlačidle miznul. */
body.tlpb-checkout-design a.tlpb-ages__button,
body.tlpb-checkout-design a.tlpb-ages__button span {
	color: var( --tlpb-on-accent );
}

body.tlpb-checkout-design a.tlpb-ages__button:hover,
body.tlpb-checkout-design a.tlpb-ages__button:focus-visible {
	color: var( --tlpb-on-accent );
	filter: brightness( 1.1 );
	text-decoration: none;
}

body.tlpb-checkout-design a.tlpb-ages__button:focus-visible {
	outline: 2px solid var( --tlpb-ink );
	outline-offset: 2px;
}

.tlpb-ages__plus {
	font-size: 15px;
	line-height: 1;
}

.tlpb-ages .added_to_cart {
	display: none;
}

/* --- Rozbaľovací zoznam krajín (select2) -------------------------------- */

/*
 * Select2 si zoznam vešia priamo na <body>, teda mimo formulára – preto sa
 * naň nedá dostať cez .woocommerce. Trieda .tlpb-checkout-design je na <body>,
 * takže potomkom je aj tento zoznam.
 *
 * Bez toho zostane výber krajiny v pôvodnom modrom kabáte knižnice, ktorý
 * s ničím na stránke neladí.
 */
.tlpb-checkout-design .select2-dropdown {
	border: 1px solid var( --tlpb-field-line );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-panel );
	box-shadow: var( --tlpb-shadow-card );
	overflow: hidden;
}

.tlpb-checkout-design .select2-container--open .select2-selection--single {
	border-color: var( --tlpb-plum );
	box-shadow: var( --tlpb-focus-ring );
}

.tlpb-checkout-design .select2-search--dropdown {
	padding: var( --tlpb-space-2 );
	background: var( --tlpb-surface );
}

.tlpb-checkout-design .select2-search--dropdown .select2-search__field {
	min-height: 40px;
	padding: var( --tlpb-space-2 ) var( --tlpb-space-3 );
	border: 1px solid var( --tlpb-field-line );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-panel );
	color: var( --tlpb-ink );
	font: inherit;
	font-size: var( --tlpb-text-body );
}

.tlpb-checkout-design .select2-search--dropdown .select2-search__field:focus {
	border-color: var( --tlpb-plum );
	outline: none;
}

.tlpb-checkout-design .select2-results__options {
	max-height: 260px;
	padding: var( --tlpb-space-1 );
}

.tlpb-checkout-design .select2-results__option {
	padding: var( --tlpb-space-2 ) var( --tlpb-space-3 );
	border-radius: var( --tlpb-radius-sm );
	color: var( --tlpb-ink );
	font-size: var( --tlpb-text-body );
	line-height: 1.4;
}

/* Zvýraznená položka – značková slivková, nie systémová modrá. */
.tlpb-checkout-design .select2-container--default .select2-results__option--highlighted[aria-selected],
.tlpb-checkout-design .select2-container--default .select2-results__option--highlighted[data-selected],
.tlpb-checkout-design .select2-container--default .select2-results__option--highlighted {
	background: var( --tlpb-plum );
	color: var( --tlpb-on-accent );
}

.tlpb-checkout-design .select2-container--default .select2-results__option[aria-selected="true"]:not( .select2-results__option--highlighted ),
.tlpb-checkout-design .select2-container--default .select2-results__option[data-selected="true"]:not( .select2-results__option--highlighted ) {
	background: var( --tlpb-surface );
	color: var( --tlpb-ink );
	font-weight: 700;
}

/* Vybraná krajina musí sadnúť pod plávajúcu menovku rovnako ako text v poli. */
.tlpb-checkout-design .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	color: var( --tlpb-ink );
	line-height: 1.4;
}

.tlpb-checkout-design .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: var( --tlpb-space-3 );
	transform: translateY( -50% );
}

/* --- Mobil -------------------------------------------------------------- */

@media screen and ( max-width: 899px ) {
	.tlpb-checkout-design #order_review {
		margin-top: var( --tlpb-space-5 );
		padding: var( --tlpb-space-4 );
	}

	/* Na úzkom displeji sa palcom mieri horšie – polia aj tlačidlo sú vyššie. */
	.tlpb-checkout-design {
		--tlpb-co-field-h: 52px;
	}
}

@media screen and ( max-width: 519px ) {
	.tlpb-ages__item {
		grid-template-columns: 40px minmax( 0, 1fr ) auto;
		grid-template-areas:
			"img name price"
			"seg seg  btn";
	}

	.tlpb-ages__img img {
		width: 40px;
		height: 40px;
	}

	body.tlpb-checkout-design a.tlpb-ages__button {
		justify-content: center;
		width: 36px;
		min-height: 36px;
		padding: 0;
	}

	.tlpb-ages__add-text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect( 0 0 0 0 );
		white-space: nowrap;
	}

	.tlpb-ages__plus {
		font-size: 18px;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.tlpb-checkout-design #place_order,
	.tlpb-checkout-design .form-row input.input-text,
	.tlpb-checkout-design .form-row textarea,
	.tlpb-checkout-design .form-row select,
	.tlpb-checkout-design .form-row > label,
	body.tlpb-checkout-design a.tlpb-upsell__button,
	body.tlpb-checkout-design #shipping_method .packetery-widget-button-row button.button,
	body.tlpb-checkout-design a.tlpb-ages__button,
	.tlpb-qty button.tlpb-qty__btn {
		transition: none;
	}

	.tlpb-checkout-design #place_order:hover {
		transform: none;
	}
}

/* --- Súhlasy, platba – doladenie ---------------------------------------- */

/* Súhlasy: pole a text presne na stred jeden pod druhým, rovnaká medzera. */
.tlpb-checkout-design .tlpb-consents {
	display: grid;
	gap: var( --tlpb-space-3 );
	margin: var( --tlpb-space-4 ) 0;
}

.tlpb-checkout-design #payment .tlpb-consent {
	margin: 0;
}

.tlpb-checkout-design #payment .tlpb-consent > label {
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-3 );
	margin: 0;
	color: var( --tlpb-ink );
	font-family: inherit;
	font-size: var( --tlpb-text-sm );
	font-weight: 400;
	line-height: 1.4;
	cursor: pointer;
}

.tlpb-checkout-design #payment .tlpb-consent .tlpb-consent__input {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var( --tlpb-plum );
}

.tlpb-checkout-design #payment .tlpb-consent__text {
	flex: 1 1 auto;
	min-width: 0;
}

/* Platobná karta: bez šípky od Stripe a bez prázdneho miesta pod zoznamom. */
body.tlpb-checkout-design #payment ul.payment_methods > li > .payment_box::before {
	display: none !important;
}

body.tlpb-checkout-design #payment ul.payment_methods > li > .payment_box {
	margin: var( --tlpb-space-2 ) 0 0 !important;
	padding: 0 !important;
}

.tlpb-checkout-design #payment .wc-saved-payment-methods {
	margin: var( --tlpb-space-2 ) 0 0;
	padding: 0;
	list-style: none;
}

.tlpb-checkout-design #payment .wc-saved-payment-methods li {
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin: 0 0 var( --tlpb-space-1 );
	padding: 0;
}

.tlpb-checkout-design #payment .wc-saved-payment-methods li label {
	margin: 0;
	font-weight: 400;
}

/* Veta o zrušení pod súčtami – menší odstup od bloku nad ňou. */
.tlpb-checkout-design .recurring-total td p.tlpb-recurring__cancel {
	margin-top: var( --tlpb-space-2 );
}

/* --- Karty „Nakupujem na firmu“ a „Odoslať na inú adresu?“ ---------------- */

/*
 * Krémová karta by na krémovej stránke nebola vidieť – biela s jemným rámom je
 * čitateľná a zodpovedá poliam formulára.
 */
.tlpb-checkout-design .tlpb-company-toggle,
.tlpb-checkout-design #ship-to-different-address {
	border: 1px solid var( --tlpb-line );
	background: var( --tlpb-panel );
}

.tlpb-checkout-design #ship-to-different-address {
	margin: 0;
}

/* Bloky pod fakturačnými poľami – menšie odstupy, nie „diery“ vo formulári. */
body.tlpb-checkout-design .woocommerce-shipping-fields,
body.tlpb-checkout-design .woocommerce-additional-fields {
	margin: 0;
	padding: 0;
}

body.tlpb-checkout-design #ship-to-different-address {
	margin-bottom: 0;
}

body.tlpb-checkout-design #order_comments_field {
	margin: 0;
	padding: 0;
}

.tlpb-checkout-design .woocommerce-additional-fields > h3:empty {
	display: none;
}

.tlpb-checkout-design .woocommerce-shipping-fields .shipping_address {
	margin-top: var( --tlpb-space-3 );
}

/* Hodnota v poli sedí pod menovkou s dychom, nie prilepená. */
.tlpb-checkout-design .form-row input.input-text,
.tlpb-checkout-design .form-row .select2-container .select2-selection--single {
	padding-top: 24px;
}

/* „Nakupujem na firmu“ – rovnaká karta ako „Odoslať na inú adresu?“ (id prebije štýly témy). */
body.tlpb-checkout-design #billing_is_company_field {
	margin: 0 0 var( --tlpb-space-3 );
	padding: var( --tlpb-space-3 ) var( --tlpb-space-4 );
	border: 1px solid var( --tlpb-line );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-panel );
}

body.tlpb-checkout-design #billing_is_company_field > label {
	position: static;
	display: flex;
	align-items: center;
	gap: var( --tlpb-space-2 );
	margin: 0;
	transform: none;
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 700;
	cursor: pointer;
}

body.tlpb-checkout-design #billing_is_company_field input[type="checkbox"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var( --tlpb-plum );
}

/*
 * Blok opakovaných platieb: odstavce mali od témy vlastný spodný okraj, ktorý sa
 * pripočítal k výplni bunky – dole vznikala prázdna pruh. Okraje nulujeme
 * a medzery robíme len medzi blokmi.
 */
body.tlpb-checkout-design .recurring-total td p {
	margin: 0;
	padding: 0;
}

body.tlpb-checkout-design .recurring-total td p + p {
	margin-top: var( --tlpb-space-3 );
}

body.tlpb-checkout-design .recurring-total td p.tlpb-recurring__cancel {
	margin-top: var( --tlpb-space-2 );
	padding-top: var( --tlpb-space-2 );
}

body.tlpb-checkout-design .recurring-total td {
	padding-bottom: var( --tlpb-space-3 );
}

/*
 * Dodacia adresa: krajina (a telefón) nemajú vedľa seba druhé pole, takže by
 * ostali sami v pravej polovici. JavaScript WooCommerce triedy krajiny
 * prepisuje podľa krajiny, preto to riešime tu, nie v PHP.
 */
body.tlpb-checkout-design #shipping_country_field,
body.tlpb-checkout-design #shipping_phone_field,
body.tlpb-checkout-design #shipping_state_field {
	grid-column: 1 / -1;
}

/*
 * Odstup pod sumou „Cena spolu“. Tabuľka mala od WooCommerce spodný okraj 24 px,
 * k nemu sa pridal odstup a výplň ponuky doplnkov – pod sumou vznikol ~60 px pruh.
 * Okraj tabuľky nulujeme a medzeru robí len ponuka doplnkov.
 */
body.tlpb-checkout-design table.woocommerce-checkout-review-order-table {
	margin-bottom: 0;
}

body.tlpb-checkout-design .tlpb-upsell {
	margin-top: var( --tlpb-space-3 );
	padding-top: var( --tlpb-space-3 );
}

/*
 * Rovnaké okraje a rovnaké medzery pre všetky polia formulára.
 *
 * WooCommerce dáva každému riadku výplň 3 px a spodný okraj 6 px, takže polia boli
 * o 3 px užšie než karty (firma, dodacia adresa) a poznámka, a medzery medzi nimi
 * boli 6, 12 aj 24 px. Teraz: nulová výplň, medzera 12 px medzi každou dvojicou.
 */
body.tlpb-checkout-design form.checkout p.form-row:not( #billing_is_company_field ) {
	padding: 0 !important;
	margin: 0 0 var( --tlpb-space-3 ) !important;
}

body.tlpb-checkout-design form.checkout #order_comments_field {
	margin: 0 !important;
}

/* Karta „Odoslať na inú adresu?“ je na celú šírku ako ostatné (nie podľa obsahu). */
body.tlpb-checkout-design #ship-to-different-address {
	display: block;
	float: none;
	box-sizing: border-box;
	width: 100%;
}

body.tlpb-checkout-design .woocommerce-shipping-fields .shipping_address {
	margin-top: var( --tlpb-space-3 );
}

/* --- Karty s políčkom: jedno pravidlo pre obe -------------------------------- */

/*
 * „Nakupujem na firmu“ a „Odoslať na inú adresu?“ boli skladané z rôznych pravidiel
 * a rozišli sa: iná výška (54 a 46 px), iná hrúbka písma (600 a 700) a pod druhou
 * kartou nebola medzera, takže sa poznámka lepila na kartu. Teraz je to jedno
 * pravidlo pre obe. Medzeru pod kartou drží karta sama (12 px); rozbalené dodacie
 * polia preto nepotrebujú vlastný horný okraj.
 */
body.tlpb-checkout-design #billing_is_company_field,
body.tlpb-checkout-design #ship-to-different-address {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	float: none;
	width: 100%;
	min-height: var( --tlpb-co-toggle-h );
	margin: 0 0 var( --tlpb-space-3 );
	padding: 0 var( --tlpb-space-4 );
	border: 1px solid var( --tlpb-line );
	border-radius: var( --tlpb-radius-sm );
	background: var( --tlpb-panel );
}

body.tlpb-checkout-design #billing_is_company_field .woocommerce-input-wrapper {
	display: block;
	width: 100%;
}

body.tlpb-checkout-design #billing_is_company_field label,
body.tlpb-checkout-design #ship-to-different-address label {
	position: static;
	display: block;
	max-width: none;
	margin: 0;
	overflow: visible;
	color: var( --tlpb-ink );
	font-family: var( --tlpb-font-heading );
	font-size: var( --tlpb-text-sm );
	font-weight: 600;
	line-height: 1.3;
	text-overflow: clip;
	white-space: normal;
	transform: none;
	cursor: pointer;
}

/* Políčko stojí na riadku s textom, text a „(voliteľné)“ tečú za sebou. */
body.tlpb-checkout-design #billing_is_company_field input[type="checkbox"],
body.tlpb-checkout-design #ship-to-different-address input[type="checkbox"] {
	display: inline-block;
	width: 20px;
	height: 20px;
	margin: 0 var( --tlpb-space-2 ) 0 0;
	vertical-align: middle;
	accent-color: var( --tlpb-plum );
}

body.tlpb-checkout-design .woocommerce-shipping-fields .shipping_address {
	margin-top: 0;
}

/*
 * Menovka poznámky v pokoji sedí navrchu poľa (do stredu vysokého poľa nepatrí).
 * Pravidlo vyššie v súbore o to žiadalo, ale prehral ho všeobecný selektor
 * s dlhým reťazcom :not() – tu má rovnaký reťazec, takže vyhrá.
 */
.tlpb-checkout-design .form-row.notes:not( .tlpb-consent ):not( .tlpb-company-toggle ):not( .create-account ) > label {
	top: var( --tlpb-space-4 );
	transform: none;
}

/* --- Odstup od hlavičky a päty ------------------------------------------ */

/* Téma (Hello Elementor) nedáva obsahu stránky žiadny odstup – „Fakturačné
   údaje“ by sedeli tesne pod hlavičkou a súhrn objednávky na päte. */
body.woocommerce-checkout main.site-main {
	padding-block: var( --tlpb-space-5 );
}
