/* Retrofit Guru - košík a pokladna, fáze 2.
   Tokeny vytažené z webu: amber #FFB400, tmavá #1C1C1A, Open Sans + Rubik,
   pill radius 50px. Prefix html body kvůli specificitě widgetů Elementoru. */

:root {
	--rfg-amber: #FFB400;
	--rfg-amber-dark: #E8A400;
	--rfg-ink: #1C1C1A;
	--rfg-ink-soft: #333333;
	--rfg-muted: #6B6B66;
	--rfg-faint: #8F8E88;
	--rfg-line: #E8E6E0;
	--rfg-line-soft: #F0EEE9;
	--rfg-field: #DEDCD6;
	--rfg-wash: #FAF9F6;
	--rfg-tile: #F4F2EC;
	--rfg-link: #8A6200;
	--rfg-ok: #2E7D4F;
	--rfg-head: 'Open Sans', Arial, sans-serif;
}

/* ---------- rozvržení ---------- */

html body .rfg-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 396px;
	gap: 44px;
	align-items: start;
	max-width: 1328px;
	margin: 0 auto;
	padding: 4px 0 48px;
}

html body .rfg-cart__main {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

html body .rfg-cart__aside {
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: sticky;
	top: 24px;
}

html body .rfg-cart__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}

html body .rfg-cart__title {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 30px;
	letter-spacing: -.02em;
	line-height: 1.2;
	margin: 0;
	color: var(--rfg-ink);
	text-align: left;
}

html body .rfg-cart__count {
	font-size: 14px;
	color: var(--rfg-muted);
}

/* ---------- řádky položek ---------- */

html body .rfg-cart__rows {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--rfg-line);
	border-radius: 14px;
	overflow: hidden;
	background: #FFFFFF;
}

html body .rfg-row {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr) 104px 128px 108px 28px;
	gap: 18px;
	align-items: center;
	padding: 18px 20px;
	border-bottom: 1px solid var(--rfg-line-soft);
}

html body .rfg-row:last-child { border-bottom: 0; }

html body .rfg-row__media {
	width: 88px;
	height: 88px;
	border-radius: 10px;
	background: var(--rfg-tile);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

html body .rfg-row__media a,
html body .rfg-row__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
	margin: 0;
}

html body .rfg-row__info {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

html body .rfg-row__name {
	font-family: var(--rfg-head);
	font-weight: 600;
	font-size: 15px;
	line-height: 1.35;
	color: var(--rfg-ink);
}

html body .rfg-row__name a {
	color: var(--rfg-ink);
	text-decoration: none;
}

html body .rfg-row__name a:hover { color: var(--rfg-link); }

html body .rfg-row__meta,
html body .rfg-row__meta p {
	font-size: 13px;
	line-height: 1.4;
	color: var(--rfg-muted);
	margin: 0;
}

html body .rfg-row__stock {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 500;
}

html body .rfg-row__stock--in { color: var(--rfg-ok); }
html body .rfg-row__stock--out { color: var(--rfg-faint); }

html body .rfg-row__unit {
	font-size: 14px;
	color: var(--rfg-muted);
	white-space: nowrap;
}

html body .rfg-row__unit-mobile { display: none; }

html body .rfg-row__subtotal {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 16px;
	color: var(--rfg-ink);
	text-align: right;
	white-space: nowrap;
}

html body .rfg-row__remove { display: flex; justify-content: center; }

html body .rfg-row__remove a.remove {
	width: 28px;
	height: 28px;
	line-height: 26px;
	border-radius: 50%;
	font-size: 19px;
	color: #A5A29A;
	background: transparent;
	text-align: center;
	text-decoration: none;
}

html body .rfg-row__remove a.remove:hover {
	background: var(--rfg-tile);
	color: #B3261E;
}

/* ---------- stepper množství ---------- */

html body .rfg-qty {
	display: flex;
	align-items: center;
	border: 1px solid var(--rfg-field);
	border-radius: 50px;
	overflow: hidden;
	width: 128px;
	height: 44px;
	background: #FFFFFF;
}

html body .rfg-qty .quantity,
html body .woocommerce .rfg-qty .quantity {
	flex: 1 1 auto;
	margin: 0;
	display: block;
	min-width: 0;
	width: auto;
	border: 0;
	background: transparent;
}

/* Elementor stylizuje všechna pole formuláře (rámeček + radius 50px), takže
   by uvnitř pilulky vznikla druhá pilulka. Proto !important. */
html body .rfg-qty input.qty,
html body .woocommerce .rfg-qty input.qty,
html body .rfg-qty .quantity input[type="number"] {
	width: 100% !important;
	height: 42px !important;
	min-height: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	text-align: center;
	font-weight: 600;
	font-size: 15px;
	color: var(--rfg-ink);
	padding: 0 !important;
	-moz-appearance: textfield;
}

html body .rfg-qty input.qty::-webkit-outer-spin-button,
html body .rfg-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

html body .rfg-qty__btn {
	flex: 0 0 42px;
	height: 42px;
	border: 0;
	background: transparent;
	color: var(--rfg-ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	border-radius: 0;
}

html body .rfg-qty__btn:hover { background: var(--rfg-tile); }
html body .rfg-qty__btn[disabled] { color: #C9C6BC; cursor: default; background: transparent; }

html body .rfg-qty--single {
	width: 128px;
	height: 44px;
	line-height: 44px;
	text-align: center;
	font-weight: 600;
	color: var(--rfg-ink);
}

/* tlačítko Přepočítat je záloha pro prohlížeč bez JS; se zapnutým JS se skryje */
html body .rfg-cart__actions { margin-top: 4px; }
html.rfg-js body .rfg-cart__actions { display: none; }
html body .woocommerce-cart-form.rfg-is-busy { opacity: .55; pointer-events: none; }

html body .rfg-cart__update {
	background: transparent;
	border: 1px solid var(--rfg-field);
	border-radius: 50px;
	color: var(--rfg-ink);
	font-size: 14px;
	padding: 10px 22px;
}

html body .rfg-cart__continue {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--rfg-link);
	text-decoration: none;
	align-self: flex-start;
}

html body .rfg-cart__continue:hover { color: #5E4300; }

/* ---------- souhrn ---------- */

/* WooCommerce dává .cart_totals width:48%;float:right - přebít vyšší specificitou */
html body .woocommerce .cart-collaterals .cart_totals,
html body .woocommerce-page .cart-collaterals .cart_totals,
html body .cart-collaterals .cart_totals,
html body .rfg-summary {
	width: 100%;
	float: none;
	text-align: left;
}

html body .woocommerce .cart-collaterals,
html body .cart-collaterals { width: 100%; }

html body .rfg-cart__aside .cart-collaterals h2 { display: none; }

html body .rfg-summary__card {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
	background: var(--rfg-wash);
	border: 1px solid var(--rfg-line);
	border-radius: 14px;
}

html body .rfg-summary__title {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 18px;
	color: var(--rfg-ink);
}

html body .rfg-summary__lines {
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-size: 14px;
}

html body .rfg-summary__line {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

html body .rfg-summary__label { color: var(--rfg-muted); }

html body .rfg-summary__value {
	font-weight: 500;
	color: var(--rfg-ink);
	white-space: nowrap;
}

html body .rfg-summary__value .amount { font-weight: 500; }

html body .rfg-summary__rule { height: 1px; background: var(--rfg-line); }

html body .rfg-summary__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

html body .rfg-summary__total-label {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 16px;
	color: var(--rfg-ink);
}

html body .rfg-summary__total-value,
html body .rfg-summary__total-value .amount {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 26px;
	letter-spacing: -.02em;
	color: var(--rfg-ink);
	white-space: nowrap;
}

html body .rfg-summary__secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--rfg-muted);
}

/* doprava uvnitř souhrnu */

html body .rfg-shipping { display: flex; flex-direction: column; gap: 8px; }

html body .rfg-shipping__head {
	font-size: 14px;
	font-weight: 600;
	color: var(--rfg-ink);
}

html body .rfg-shipping__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

html body .rfg-shipping__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 11px 13px;
	border: 1px solid var(--rfg-field);
	border-radius: 12px;
	background: #FFFFFF;
	font-size: 13.5px;
	line-height: 1.4;
	margin: 0;
}

html body .rfg-shipping__item:has(input:checked) {
	border: 2px solid var(--rfg-amber);
	background: #FFFDF6;
	padding: 10px 12px;
}

html body .rfg-shipping__item input.shipping_method {
	margin: 2px 0 0;
	accent-color: var(--rfg-amber);
	flex: 0 0 auto;
}

html body .rfg-shipping__item label {
	margin: 0;
	color: var(--rfg-ink);
	font-weight: 500;
	cursor: pointer;
}

html body .rfg-shipping__dest,
html body .rfg-shipping__worldwide,
html body .rfg-shipping__note {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--rfg-muted);
	margin: 0;
}

html body .rfg-shipping__toggle {
	color: var(--rfg-link);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

/* výchozí odkaz „Spočítat poštovné" schováme - máme vlastní „Změnit zemi".
   Zůstává v DOM, protože na něj klikáme z JS. */
html body .rfg-cart__aside .shipping-calculator-button,
html body .rfg-shipping .shipping-calculator-button { display: none !important; }

/* Expresní tlačítko Revolutu (Google/Apple Pay) se v úzkém sloupci
   překrývalo samo se sebou - dostane vlastní řádek a plnou šířku. */
html body .rfg-cart__aside .wc-revolut-payment-request-instance,
html body .rfg-cart__aside [class*="revolut-payment-request"] {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: 0 0 10px;
	overflow: hidden;
	border-radius: 50px;
}

html body .rfg-cart__aside .wc-revolut-payment-request-instance iframe {
	display: block;
	width: 100% !important;
	min-height: 48px;
}

html body .rfg-shipping__calc { margin-top: 6px; }
html body .rfg-shipping__calc .shipping-calculator-form { display: block; margin: 10px 0 0; }
html body .rfg-shipping__calc p { margin: 0 0 8px; }

html body .rfg-shipping__calc select,
html body .rfg-shipping__calc input[type="text"],
html body .rfg-shipping__calc .select2-container .select2-selection {
	width: 100%;
	height: 42px;
	border: 1px solid var(--rfg-field);
	border-radius: 10px;
	font-size: 14px;
	background: #FFFFFF;
}

html body .rfg-shipping__calc button {
	width: 100%;
	height: 42px;
	border-radius: 50px;
	border: 1px solid var(--rfg-ink);
	background: transparent;
	color: var(--rfg-ink);
	font-size: 14px;
	font-weight: 600;
}

/* ---------- CTA ---------- */

html body .rfg-summary__cta { margin: 0; }

/* Elementor i WooCommerce sem tlačí vlastní barvu tlačítka (naposledy fialovou
   z globálních barev Elementoru), proto !important - jinak CTA nedrží značku. */
html body .woocommerce .rfg-summary__cta a.checkout-button,
html body .rfg-summary__cta a.checkout-button,
html body a.rfg-btn--primary {
	background: var(--rfg-amber) !important;
	background-color: var(--rfg-amber) !important;
	color: var(--rfg-ink) !important;
	border: 0 !important;
}

html body .woocommerce .rfg-summary__cta a.checkout-button:hover,
html body .rfg-summary__cta a.checkout-button:hover,
html body a.rfg-btn--primary:hover {
	background: var(--rfg-amber-dark) !important;
	background-color: var(--rfg-amber-dark) !important;
	color: var(--rfg-ink) !important;
}

html body .rfg-summary__cta .checkout-button,
html body .rfg-btn--primary {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 52px;
	margin: 0;
	padding: 0 20px;
	background: var(--rfg-amber);
	border: 0;
	border-radius: 50px;
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 15.5px;
	color: var(--rfg-ink);
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	transition: background .15s ease;
}

html body .rfg-summary__cta .checkout-button:hover,
html body .rfg-btn--primary:hover {
	background: var(--rfg-amber-dark);
	color: var(--rfg-ink);
}

/* ---------- blok důvěry ---------- */

html body .rfg-trust {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px 24px;
	border: 1px solid var(--rfg-line);
	border-radius: 14px;
	background: #FFFFFF;
}

html body .rfg-trust__item { display: flex; align-items: flex-start; gap: 11px; }
html body .rfg-trust__icon { color: var(--rfg-amber); flex: 0 0 auto; margin-top: 2px; }
html body .rfg-trust__label { font-size: 13.5px; font-weight: 600; color: var(--rfg-ink); }
html body .rfg-trust__note { font-size: 12.5px; color: var(--rfg-muted); line-height: 1.45; }

/* ---------- prázdný košík ---------- */

html body .rfg-empty {
	max-width: 520px;
	margin: 0 auto;
	padding: 20px 0 56px;
	text-align: center;
}

html body .rfg-empty__icon { margin-bottom: 18px; }

html body .rfg-empty__title {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 26px;
	letter-spacing: -.02em;
	color: var(--rfg-ink);
	margin: 0 0 10px;
}

html body .rfg-empty__text {
	font-size: 15px;
	line-height: 1.6;
	color: var(--rfg-muted);
	margin: 0 0 24px;
}

html body .rfg-empty__actions { margin: 0 0 24px; }
html body .rfg-empty__actions .rfg-btn--primary { display: inline-flex; width: auto; padding: 0 32px; }

html body .rfg-empty__trust {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 22px;
	font-size: 13px;
	color: var(--rfg-muted);
}

/* ---------- mobil ---------- */

@media (max-width: 1024px) {
	html body .rfg-cart { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	html body .rfg-cart__aside { position: static; }
}

@media (max-width: 720px) {
	html body .rfg-row {
		grid-template-columns: 72px minmax(0, 1fr) 28px;
		grid-template-areas:
			"media info remove"
			"media unit remove"
			"qty   qty  subtotal";
		gap: 10px 14px;
		padding: 16px;
	}
	html body .rfg-row__media { grid-area: media; width: 72px; height: 72px; }
	html body .rfg-row__info { grid-area: info; }
	html body .rfg-row__remove { grid-area: remove; align-self: start; }
	html body .rfg-row__unit { display: none; }
	html body .rfg-row__unit-mobile {
		grid-area: unit;
		display: block;
		font-size: 13px;
		color: var(--rfg-muted);
	}
	html body .rfg-row__qty { grid-area: qty; }
	html body .rfg-row__subtotal { grid-area: subtotal; align-self: center; }
	html body .rfg-cart__title { font-size: 24px; }
}

/* =========================================================
   POKLADNA
   ========================================================= */

html body .rfg-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 396px;
	gap: 44px;
	align-items: start;
	max-width: 1328px;
	margin: 0 auto;
	padding: 4px 0 48px;
}

html body .rfg-checkout__main {
	display: flex;
	flex-direction: column;
	gap: 30px;
	min-width: 0;
}

html body .rfg-checkout__aside {
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: sticky;
	top: 24px;
}

html body .rfg-checkout__title {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 30px;
	letter-spacing: -.02em;
	line-height: 1.2;
	margin: 0;
	color: var(--rfg-ink);
	text-align: left;
}

html body .rfg-block { display: flex; flex-direction: column; gap: 14px; }

html body .rfg-block__title,
html body .rfg-checkout .woocommerce-billing-fields > h3,
html body .rfg-checkout .woocommerce-shipping-fields > h3,
html body .rfg-checkout .woocommerce-additional-fields > h3 {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.3;
	margin: 0;
	padding: 0;
	color: var(--rfg-ink);
	text-align: left;
}

/* ---------- pole formuláře ---------- */

html body .rfg-checkout .woocommerce-billing-fields__field-wrapper,
html body .rfg-checkout .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 14px;
}

html body .rfg-checkout .form-row {
	margin: 0;
	padding: 0;
	grid-column: span 6;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

html body #billing_email_field,
html body #billing_phone_field,
html body #billing_first_name_field,
html body #billing_last_name_field { grid-column: span 3; }

html body #billing_postcode_field,
html body #billing_city_field,
html body #billing_country_field { grid-column: span 2; }

html body .rfg-checkout .form-row label {
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
	margin: 0;
	color: var(--rfg-muted);
}

html body .rfg-checkout .form-row label .required,
html body .rfg-checkout .form-row label abbr.required {
	color: #C2410C;
	text-decoration: none;
	border: 0;
}

html body .rfg-checkout .form-row .woocommerce-input-wrapper { width: 100%; }

html body .rfg-checkout .form-row input.input-text,
html body .rfg-checkout .form-row textarea,
html body .rfg-checkout .form-row select,
html body .rfg-checkout .select2-container .select2-selection--single {
	width: 100%;
	height: 48px;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--rfg-field);
	border-radius: 10px;
	background: #FFFFFF;
	font-size: 14.5px;
	color: var(--rfg-ink);
	box-shadow: none;
	line-height: 46px;
}

html body .rfg-checkout .form-row textarea {
	height: auto;
	min-height: 96px;
	padding: 12px 14px;
	line-height: 1.5;
}

html body .rfg-checkout .form-row input.input-text:focus,
html body .rfg-checkout .form-row textarea:focus,
html body .rfg-checkout .form-row select:focus {
	border-color: var(--rfg-ink);
	outline: 2px solid rgba(255, 180, 0, .35);
	outline-offset: 1px;
}

html body .rfg-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 46px;
	color: var(--rfg-ink);
}

html body .rfg-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }

html body .rfg-checkout .form-row.woocommerce-invalid input.input-text,
html body .rfg-checkout .form-row.woocommerce-invalid select {
	border-color: #C2410C;
}

/* přepínač „Nakupuji na firmu" ze snippetu */
html body .rfg-b2b-toggle {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 13px 16px;
	border: 1px dashed var(--rfg-field);
	border-radius: 10px;
	margin: 0 0 14px;
	font-size: 14px;
	color: var(--rfg-ink-soft);
}

html body .rfg-b2b-toggle input { margin: 0; accent-color: var(--rfg-amber); }
html body .rfg-b2b-toggle label { margin: 0; cursor: pointer; font-weight: 500; }
html body .rfg-b2b-toggle .rfg-b2b-hint { font-size: 12.5px; color: var(--rfg-faint); }

/* ---------- karty dopravy a platby ---------- */

html body .rfg-shipmethods { display: flex; flex-direction: column; gap: 10px; }

html body .rfg-shipmethods__scope,
html body .rfg-shipmethods__worldwide,
html body .rfg-shipmethods__note {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--rfg-muted);
}

html body .rfg-shipmethods__change {
	color: var(--rfg-link);
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

html body .rfg-shipmethods__list,
html body .rfg-payment__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

html body .rfg-shipmethods__item,
html body .rfg-payment__list > li.wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	margin: 0;
	border: 1px solid var(--rfg-field);
	border-radius: 12px;
	background: #FFFFFF;
	transition: border-color .12s ease, background .12s ease;
}

html body .rfg-shipmethods__item:has(input:checked),
html body .rfg-payment__list > li.wc_payment_method:has(input:checked) {
	border: 2px solid var(--rfg-amber);
	background: #FFFDF6;
	padding: 15px 17px;
}

html body .rfg-shipmethods__item > input,
html body .rfg-payment__list > li.wc_payment_method > input[type="radio"] {
	flex: 0 0 auto;
	width: 19px;
	height: 19px;
	margin: 0;
	accent-color: var(--rfg-amber);
}

html body .rfg-shipmethods__item > label,
html body .rfg-payment__list > li.wc_payment_method > label {
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--rfg-ink);
	cursor: pointer;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

html body .rfg-payment__list > li.wc_payment_method > label img {
	max-height: 24px;
	width: auto;
	margin: 0;
	display: inline-block;
}

html body .rfg-payment__list .payment_box {
	flex: 1 1 100%;
	margin: 4px 0 0;
	padding: 14px 16px;
	background: var(--rfg-tile);
	border-radius: 10px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--rfg-muted);
}

html body .rfg-payment__list .payment_box::before { display: none; }
html body .rfg-payment__list .payment_box p:last-child { margin-bottom: 0; }

html body .rfg-payment__none {
	padding: 14px 16px;
	border: 1px solid var(--rfg-field);
	border-radius: 12px;
	background: var(--rfg-tile);
	font-size: 13.5px;
	color: var(--rfg-muted);
}

/* ---------- tmavá karta souhrnu ---------- */

html body .rfg-order {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
	background: var(--rfg-ink);
	border-radius: 14px;
	border: 0;
	width: 100%;
}

html body .rfg-order__title {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 18px;
	color: #FFFFFF;
}

html body .rfg-order__items { display: flex; flex-direction: column; gap: 12px; }

html body .rfg-order__item { display: flex; align-items: center; gap: 12px; }

html body .rfg-order__thumb {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: #2A2A27;
	overflow: hidden;
}

html body .rfg-order__thumb img {
	display: block;
	width: 44px;
	height: 44px;
	object-fit: cover;
	margin: 0;
	border-radius: 8px;
}

html body .rfg-order__name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 13.5px;
	line-height: 1.4;
	color: #E6E5E1;
}

html body .rfg-order__qty { color: #8F8E88; }

html body .rfg-order__name dl,
html body .rfg-order__name dt,
html body .rfg-order__name dd {
	margin: 2px 0 0;
	font-size: 12px;
	color: #8F8E88;
}

html body .rfg-order__price {
	flex: 0 0 auto;
	font-size: 13.5px;
	font-weight: 600;
	color: #FFFFFF;
	white-space: nowrap;
}

html body .rfg-order__rule { height: 1px; background: #38382F; }

html body .rfg-order__lines { display: flex; flex-direction: column; gap: 9px; font-size: 13.5px; }

html body .rfg-order__line { display: flex; justify-content: space-between; gap: 12px; }
html body .rfg-order__line > span:first-child { color: #B8B5AB; }
html body .rfg-order__line > span:last-child { color: #FFFFFF; white-space: nowrap; }
html body .rfg-order__line .amount { color: #FFFFFF; }

html body .rfg-order__total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }

html body .rfg-order__total-label {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 16px;
	color: #FFFFFF;
}

html body .rfg-order__total-value,
html body .rfg-order__total-value .amount {
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 26px;
	letter-spacing: -.02em;
	color: var(--rfg-amber);
	white-space: nowrap;
}

/* ---------- podmínky a odeslání ---------- */

html body .rfg-place-order {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	width: 100%;
}

html body .rfg-place-order .woocommerce-terms-and-conditions-wrapper { margin: 0; }

html body .rfg-place-order .form-row,
html body .rfg-place-order .validate-required {
	margin: 0;
	padding: 0;
}

html body .rfg-place-order .woocommerce-terms-and-conditions-checkbox-text {
	font-size: 13px;
	line-height: 1.5;
	color: var(--rfg-muted);
}

html body .rfg-place-order .woocommerce-terms-and-conditions-checkbox-text a { color: var(--rfg-link); font-weight: 500; }

html body .rfg-place-order input#terms { margin: 0 8px 0 0; accent-color: var(--rfg-amber); }

html body .rfg-place-order .woocommerce-terms-and-conditions {
	margin: 10px 0 0;
	padding: 14px 16px;
	border: 1px solid var(--rfg-line);
	border-radius: 10px;
	background: var(--rfg-wash);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--rfg-muted);
	max-height: 220px;
	overflow-y: auto;
}

html body button#place_order,
html body .rfg-btn--submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 56px;
	padding: 0 20px;
	margin: 0;
	background: var(--rfg-amber) !important;
	background-color: var(--rfg-amber) !important;
	border: 0 !important;
	border-radius: 50px !important;
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 16px;
	color: var(--rfg-ink) !important;
	text-transform: none;
	letter-spacing: 0;
	cursor: pointer;
}

html body button#place_order:hover,
html body .rfg-btn--submit:hover {
	background: var(--rfg-amber-dark) !important;
	background-color: var(--rfg-amber-dark) !important;
	color: var(--rfg-ink) !important;
}

html body .rfg-assure { display: flex; flex-direction: column; gap: 8px; padding: 4px 6px 0; }

html body .rfg-assure__item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--rfg-muted);
}

html body .rfg-assure__item svg { flex: 0 0 auto; margin-top: 2px; }

/* ---------- upozornění ---------- */

html body .rfg-checkout-form .woocommerce-NoticeGroup,
html body .woocommerce-checkout .woocommerce-error,
html body .woocommerce-checkout .woocommerce-info,
html body .woocommerce-checkout .woocommerce-message {
	border-radius: 12px;
	border-top: 0;
	font-size: 14px;
}

/* ---------- mobil ---------- */

@media (max-width: 1024px) {
	html body .rfg-checkout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	html body .rfg-checkout__aside { position: static; }
}

@media (max-width: 720px) {
	html body .rfg-checkout__title { font-size: 24px; }
	html body .rfg-checkout .woocommerce-billing-fields__field-wrapper,
	html body .rfg-checkout .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	html body .rfg-checkout .form-row { grid-column: span 2; }
	html body #billing_first_name_field,
	html body #billing_last_name_field,
	html body #billing_postcode_field,
	html body #billing_city_field { grid-column: span 1; }
	html body #billing_country_field { grid-column: span 2; }
}

/* =========================================================
   SPOLEČNÉ - kroky, dodací lhůta, firemní pole
   ========================================================= */

html body .rfg-steps {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	max-width: 1328px;
	margin: 0 auto;
	padding: 22px 0 0;
	font-size: 13px;
}

html body .rfg-steps__step { display: flex; align-items: center; gap: 8px; color: var(--rfg-faint); }
html body .rfg-steps__step.is-active { color: var(--rfg-ink); font-weight: 600; }
html body .rfg-steps__step.is-done { color: var(--rfg-muted); }

html body .rfg-steps__dot {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1px solid var(--rfg-field);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
	flex: 0 0 auto;
}

html body .rfg-steps__step.is-active .rfg-steps__dot {
	background: var(--rfg-amber);
	border-color: var(--rfg-amber);
	color: var(--rfg-ink);
}

html body .rfg-steps__step.is-done .rfg-steps__dot { background: var(--rfg-tile); color: var(--rfg-muted); }

html body .rfg-steps__rule { width: 28px; height: 1px; background: var(--rfg-field); }

/* dodací lhůta u dopravce */
html body .rfg-eta {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 50px;
	background: var(--rfg-tile);
	font-size: 11.5px;
	font-weight: 500;
	color: var(--rfg-muted);
	white-space: nowrap;
}

/* firemní pole - schovaná, dokud zákazník nezaškrtne „Nakupuji na firmu" */
html body .rfg-b2b,
html body .woolab-ic-dic-no_spaces { display: none !important; }

html body.rfg-b2b-on .rfg-b2b,
html body.rfg-b2b-on .woolab-ic-dic-no_spaces { display: flex !important; }

html body.rfg-b2b-on .woolab-ic-dic-no_spaces { display: block !important; }

/* Revolut barví vybranou platbu vlastní modrou (#2563EB na #EFF6FF) s vyšší
   specificitou. Značka je amber, takže ji přebíjíme - jinak by nejdůležitější
   volba v pokladně vypadala jako z cizí šablony, stejně jako dřív to tlačítko. */
html body .rfg-payment__list > li.wc_payment_method:has(input:checked),
html body .woocommerce .rfg-payment__list > li.wc_payment_method:has(input:checked) {
	border: 2px solid var(--rfg-amber) !important;
	background: #FFFDF6 !important;
	padding: 15px 17px !important;
}

html body .rfg-payment__list > li.wc_payment_method:has(input:checked) .payment_box {
	background: #FFFFFF !important;
	border: 1px solid var(--rfg-line) !important;
}

/* Ukládání karty „do účtu" nedává smysl - obchod nevede zákaznické účty
   a nákup běží jako host. */
html body .rfg-payment__list .woocommerce-SavedPaymentMethods-saveNew,
html body .rfg-payment__list .revolut-payment-method-save { display: none !important; }

/* WooCommerce 10 vkládá do pokladny vlastní inline styl: nadpis „Způsob platby"
   přes ::before a modré zvýraznění vybrané platby (#2563EB na #EFF6FF).
   Nadpis máme vlastní a barva značky je amber, takže obojí přebíjíme.
   Selektor přes #payment (id) porazí jejich pravidla nezávisle na pořadí. */
html body #payment.woocommerce-checkout-payment::before,
html body #payment.woocommerce-checkout-payment::after {
	content: none !important;
	display: none !important;
}

html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method:has(input:checked) {
	border: 2px solid var(--rfg-amber) !important;
	border-color: var(--rfg-amber) !important;
	background: #FFFDF6 !important;
	background-color: #FFFDF6 !important;
	box-shadow: none !important;
	outline: none !important;
}

html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method > input[type="radio"],
html body .rfg-shipmethods__item > input[type="radio"] {
	accent-color: var(--rfg-amber) !important;
}

html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method .payment_box {
	background: #FFFFFF !important;
	border: 1px solid var(--rfg-line) !important;
	color: var(--rfg-muted) !important;
}

/* =========================================================
   PŘEPÍNAČE - vlastní kolečka a zaškrtávátka
   Nativní ovládací prvky s accent-color dávaly plné amber kolečko
   s bílým bodem uprostřed. Návrh má opak: silný amber prstenec
   a bílý střed. Proto appearance: none a vlastní kresba.
   ========================================================= */

html body .rfg-shipmethods__item > input[type="radio"],
html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method > input[type="radio"],
html body .rfg-shipping__item input[type="radio"].shipping_method {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0;
	padding: 0;
	border: 1.5px solid #B8B5AB !important;
	border-radius: 50% !important;
	background: #FFFFFF !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color .12s ease, border-width .12s ease;
}

html body .rfg-shipmethods__item > input[type="radio"]:hover,
html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method > input[type="radio"]:hover,
html body .rfg-shipping__item input[type="radio"].shipping_method:hover {
	border-color: var(--rfg-ink) !important;
}

html body .rfg-shipmethods__item > input[type="radio"]:checked,
html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method > input[type="radio"]:checked,
html body .rfg-shipping__item input[type="radio"].shipping_method:checked {
	border: 6px solid var(--rfg-amber) !important;
	background: #FFFFFF !important;
}

html body .rfg-shipmethods__item > input[type="radio"]:focus-visible,
html body #payment.rfg-payment ul.rfg-payment__list > li.wc_payment_method > input[type="radio"]:focus-visible,
html body .rfg-shipping__item input[type="radio"].shipping_method:focus-visible {
	outline: 2px solid rgba(255, 180, 0, .6) !important;
	outline-offset: 3px;
}

/* zaškrtávátka (firma, obchodní podmínky) ve stejném jazyce */
html body .rfg-b2b-toggle input[type="checkbox"],
html body .rfg-place-order input[type="checkbox"],
html body .rfg-checkout .form-row input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 0 8px 0 0;
	border: 1.5px solid #B8B5AB !important;
	border-radius: 5px !important;
	background: #FFFFFF !important;
	box-shadow: none !important;
	cursor: pointer;
	position: relative;
	top: 2px;
	transition: border-color .12s ease, background .12s ease;
}

html body .rfg-b2b-toggle input[type="checkbox"]:hover,
html body .rfg-place-order input[type="checkbox"]:hover,
html body .rfg-checkout .form-row input[type="checkbox"]:hover {
	border-color: var(--rfg-ink) !important;
}

html body .rfg-b2b-toggle input[type="checkbox"]:checked,
html body .rfg-place-order input[type="checkbox"]:checked,
html body .rfg-checkout .form-row input[type="checkbox"]:checked {
	border-color: var(--rfg-amber) !important;
	background-color: var(--rfg-amber) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3 7.4 5.6 10 11 4.2' stroke='%231C1C1A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 13px 13px !important;
}

html body .rfg-b2b-toggle input[type="checkbox"]:focus-visible,
html body .rfg-place-order input[type="checkbox"]:focus-visible,
html body .rfg-checkout .form-row input[type="checkbox"]:focus-visible {
	outline: 2px solid rgba(255, 180, 0, .6) !important;
	outline-offset: 3px;
}

/* =========================================================
   HLÁŠKY
   Výchozí WooCommerce hlášky mají šedé pozadí, 3px barevný pruh
   nahoře a 16px text - s ničím na webu to neladí. Tady dostávají
   stejný jazyk jako karty: radius 14px, tenký rámeček, ikona.
   ========================================================= */

html body .woocommerce-notices-wrapper {
	max-width: 1328px;
	margin: 0 auto;
	padding: 0;
}

html body .woocommerce-notices-wrapper:empty { display: none; }

html body .woocommerce-error,
html body .woocommerce-info,
html body .woocommerce-message,
html body .woocommerce-NoticeGroup .woocommerce-error,
html body .woocommerce-NoticeGroup .woocommerce-info,
html body .woocommerce-NoticeGroup .woocommerce-message {
	position: relative;
	display: block;
	list-style: none;
	margin: 0 0 18px;
	padding: 15px 20px 15px 50px !important;
	border: 1px solid var(--rfg-line) !important;
	border-left: 3px solid var(--rfg-muted) !important;
	border-radius: 14px !important;
	background: #FFFFFF !important;
	color: var(--rfg-ink) !important;
	font-size: 14px !important;
	line-height: 1.55;
	box-shadow: none;
}

html body .woocommerce-error li,
html body .woocommerce-info li,
html body .woocommerce-message li {
	list-style: none;
	margin: 0;
	padding: 0;
}

html body .woocommerce-error li + li,
html body .woocommerce-info li + li,
html body .woocommerce-message li + li { margin-top: 6px; }

html body .woocommerce-error::before,
html body .woocommerce-info::before,
html body .woocommerce-message::before {
	content: "" !important;
	position: absolute !important;
	left: 18px;
	top: 15px;
	width: 20px;
	height: 20px;
	margin: 0 !important;
	padding: 0 !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
	color: transparent !important;
	font-size: 0 !important;
}

/* chyba */
html body .woocommerce-error {
	border-left-color: #B3261E !important;
	background: #FDF7F6 !important;
}

html body .woocommerce-error::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='8' stroke='%23B3261E' stroke-width='1.6'/%3E%3Cpath d='M10 5.8v5' stroke='%23B3261E' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='10' cy='13.8' r='1' fill='%23B3261E'/%3E%3C/svg%3E");
}

/* informace */
html body .woocommerce-info {
	border-left-color: var(--rfg-amber) !important;
	background: #FFFDF6 !important;
}

html body .woocommerce-info::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='8' stroke='%23B8860B' stroke-width='1.6'/%3E%3Cpath d='M10 9.2v5' stroke='%23B8860B' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='10' cy='6.2' r='1' fill='%23B8860B'/%3E%3C/svg%3E");
}

/* potvrzení */
html body .woocommerce-message {
	border-left-color: var(--rfg-ok) !important;
	background: #F5FAF7 !important;
}

html body .woocommerce-message::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='8' stroke='%232E7D4F' stroke-width='1.6'/%3E%3Cpath d='M6.4 10.2 8.9 12.7 13.6 7.4' stroke='%232E7D4F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* tlačítko uvnitř hlášky (např. „Zobrazit košík") */
html body .woocommerce-error .button,
html body .woocommerce-info .button,
html body .woocommerce-message .button {
	float: right;
	margin: -3px 0 0 16px;
	padding: 8px 20px;
	height: auto;
	border: 1px solid var(--rfg-ink) !important;
	border-radius: 50px !important;
	background: transparent !important;
	color: var(--rfg-ink) !important;
	font-size: 13px;
	font-weight: 600;
	text-transform: none;
	line-height: 1.3;
}

html body .woocommerce-error .button:hover,
html body .woocommerce-info .button:hover,
html body .woocommerce-message .button:hover {
	background: var(--rfg-ink) !important;
	color: #FFFFFF !important;
}

/* chyba u konkrétního pole */
html body .rfg-checkout .woocommerce-invalid-required-field label,
html body .rfg-checkout .woocommerce-invalid label { color: #B3261E; }

@media (max-width: 720px) {
	html body .woocommerce-error .button,
	html body .woocommerce-info .button,
	html body .woocommerce-message .button {
		float: none;
		display: inline-block;
		margin: 10px 0 0;
	}
}

/* =========================================================
   FORMULÁŘ - SROVNÁNÍ S WOOCOMMERCE
   ========================================================= */

/* woocommerce.css obarvuje každé validované pole zeleně
   (--wc-green). V návrhu nic takového není a formulář kvůli tomu
   vypadal cize. Vracíme neutrální rámeček; chybu ukazuje až
   červená varianta níž. */
html body .rfg-checkout .form-row.woocommerce-validated input.input-text,
html body .rfg-checkout .form-row.woocommerce-validated select,
html body .rfg-checkout .form-row.woocommerce-validated .select2-selection {
	border-color: var(--rfg-line) !important;
}

html body .rfg-checkout .form-row.woocommerce-invalid input.input-text,
html body .rfg-checkout .form-row.woocommerce-invalid select,
html body .rfg-checkout .form-row.woocommerce-invalid .select2-selection {
	border-color: rgba(179, 38, 30, .55) !important;
	background: #FDF9F9 !important;
	box-shadow: none !important;
	outline: none !important;
}

/* WooCommerce dává poli jména `width: 47%` a `float: left`, příjmení totéž
   doprava. V CSS mřížce je float bez efektu, ale šířka 47 % z buňky platí -
   pole tak zabíralo ani ne půlku místa, které pro něj bylo připravené.
   Rozvržení do sloupců řeší grid podle id polí, tyhle relikty plovoucího
   layoutu proto vypínáme. */
html body .rfg-checkout .form-row,
html body .rfg-checkout .form-row-first,
html body .rfg-checkout .form-row-last,
html body .rfg-checkout .form-row-wide {
	width: auto;
	float: none;
}

/* =========================================================
   ZAŠKRTÁVÁTKO U OBCHODNÍCH PODMÍNEK
   ========================================================= */

/* WooCommerce dává #terms `display: inline`, a inline prvek šířku ani výšku
   nerespektuje - vlastní kresba se scvrkla na 3px proužek. Musí být
   inline-block, teprve pak rozměr platí. */
html body .rfg-place-order input#terms,
html body .rfg-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	display: inline-block !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	flex: 0 0 22px;
}

/* Souhlas s podmínkami je jeden blokový <label>: zaškrtávátko a text jsou
   inline vedle sebe, takže druhý řádek textu začínal až u levého okraje,
   pod zaškrtávátkem. Flex by zalomení srovnal, ale hvězdička povinného pole
   je samostatný prvek a odplula by na konec řádku. Zaškrtávátko proto
   vyjmeme z toku a text jen odsadíme - zalomí se správně a hvězdička
   zůstane hned za textem. */
html body .rfg-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: block;
	position: relative;
	padding-left: 32px;
}

html body .rfg-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 1px;
	margin: 0 !important;
}

/* =========================================================
   ŠÍŘKA HLÁŠEK
   ========================================================= */

/* V pokladně žádný `.woocommerce-notices-wrapper` není - hláška visí
   v bezejmenném divu a roztáhla se na šířku celé Elementorové sekce
   (naměřeno 2 233 px proti obsahu 1 328 px). Omezovat se proto musí sama
   hláška, ne její obal. */
html body .woocommerce-error,
html body .woocommerce-info,
html body .woocommerce-message,
html body .woocommerce-NoticeGroup .woocommerce-error,
html body .woocommerce-NoticeGroup .woocommerce-info,
html body .woocommerce-NoticeGroup .woocommerce-message {
	max-width: 1328px;
	margin-left: auto;
	margin-right: auto;
}

/* =========================================================
   KALKULAČKA DOPRAVY V KOŠÍKU
   ========================================================= */

/* Cenu dopravy rozlišujeme jen podle země, PSČ ani město kalkulačka
   nepotřebuje (vypnuto filtry v bootstrapu). Zbylo jediné pole - potvrzovat
   jednu volbu tlačítkem nedává smysl, takže se „Aktualizovat" se zapnutým
   JS schová a přepočet spouští rovnou výběr země. Bez JS zůstává tlačítko
   viditelné jako záloha. */
html body .rfg-cart__aside .shipping-calculator-form {
	margin: 14px 0 0;
	padding: 0;
}

html body .rfg-cart__aside .shipping-calculator-form .form-row {
	margin: 0;
	padding: 0;
}

html body .rfg-cart__aside .shipping-calculator-form label {
	display: block;
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .01em;
	color: var(--rfg-muted);
}

html body .rfg-cart__aside .shipping-calculator-form select,
html body .rfg-cart__aside .shipping-calculator-form .select2-selection {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--rfg-line) !important;
	border-radius: 12px !important;
	background-color: #FFFFFF !important;
	font-size: 14px;
	color: var(--rfg-ink);
}

html body .rfg-cart__aside .shipping-calculator-form button[name="calc_shipping"] {
	margin: 10px 0 0;
	padding: 10px 20px;
	width: 100%;
	border: 1px solid var(--rfg-ink) !important;
	border-radius: 50px !important;
	background: transparent !important;
	color: var(--rfg-ink) !important;
	font-size: 13px;
	font-weight: 600;
	text-transform: none;
	line-height: 1.3;
}

html.rfg-js body .rfg-cart__aside .shipping-calculator-form button[name="calc_shipping"] {
	display: none !important;
}

/* Výchozí odkaz WooCommerce na rozbalení kalkulačky nahrazuje „Změnit zemi"
   v souhrnu; klik na něj obsluhuje JS, sám je schovaný. */
html body .rfg-cart__aside .shipping-calculator-button {
	display: none !important;
}

/* =========================================================
   EXPRESNÍ PLATBA (REVOLUT / GOOGLE PAY)
   ========================================================= */

/* Revolut si na iframe nastavuje inline min-width: calc(100% + 5px), takže
   tlačítko přesahovalo o 5 px doprava. min-width má v CSS přednost před
   max-width, takže oprava přes max-width nemohla zabrat - musí se přebít
   právě min-width. Teprve když šířky sedí, jde zaoblit rohy; dokud byl
   obsah širší než rámeček, ořízlo by se tlačítko. */
html body .rfg-cart__aside .wc-revolut-payment-request-instance {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 0 !important;
	margin: 0 0 10px !important;
	overflow: visible !important;
	border-radius: 0 !important;
}

html body .rfg-cart__aside .wc-revolut-payment-request-instance iframe {
	display: block;
	min-width: 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	border-radius: 999px;
}

/* =========================================================
   MOBIL - DOROVNÁNÍ ZAROVNÁNÍ
   ========================================================= */

@media (max-width: 720px) {

	/* Košík neměl na mobilu žádné okraje - karty šly od kraje ke kraji.
	   Sekce Elementoru na téhle stránce padding nedává, takže si ho musí
	   udělat obal sám. Ukazatel kroků je sourozenec, ne potomek, proto ho
	   musí dostat taky. Pokladna svůj okraj má, té se to netýká. */
	html body.woocommerce-cart .rfg-cart,
	html body.woocommerce-cart .rfg-steps {
		padding-left: 16px;
		padding-right: 16px;
	}

	/* Cena položky vycházela uříznutá („3 500" místo „3 500 Kč"). Sedí totiž
	   ve stejném sloupci jako křížek, a ten byl napevno 28 px - částka
	   potřebuje 64. Sloupec teď roste podle obsahu. */
	html body .rfg-row {
		grid-template-columns: 72px minmax(0, 1fr) auto;
	}

	html body .rfg-row__subtotal {
		justify-self: end;
		white-space: nowrap;
	}

	html body .rfg-row__remove {
		justify-self: end;
	}

	/* Kroky se na úzkém displeji lámaly do dvou řádků. Spojovací čárky se
	   smrsknou jako první, ať zbyde místo na názvy. */
	html body .rfg-steps {
		gap: 8px;
		font-size: 12px;
	}

	html body .rfg-steps__rule {
		flex: 1 1 8px;
		min-width: 8px;
	}

	/* Pole pokladny se měla na mobilu složit do dvou sloupců, ale e-mail
	   a telefon si přes id držely „span 3" z desktopu (id porazí třídu).
	   Tím vznikl třetí, implicitní sloupec a na jméno zbylo 28 px. Všechno
	   proto explicitně přes celou šířku a půlku dostanou jen dvojice, které
	   vedle sebe dávají smysl. */
	html body .rfg-checkout .form-row,
	html body #billing_email_field,
	html body #billing_phone_field,
	html body #billing_address_1_field,
	html body #billing_address_2_field,
	html body #billing_country_field,
	html body #billing_company_field,
	html body #order_comments_field {
		grid-column: 1 / -1;
	}

	html body #billing_first_name_field,
	html body #billing_last_name_field,
	html body #billing_postcode_field,
	html body #billing_city_field {
		grid-column: span 1;
	}
}

/* =========================================================
   ODSTUP UKAZATELE KROKŮ
   ========================================================= */

/* Kroky stály natěsno na hlášce i na nadpisu - mezi nimi a obsahem nebyl
   ani pixel, takže se to celé slévalo do jednoho bloku. Odsazení patří dolů:
   nahoře si drží odstup od hlavičky, dole od hlášky, nadpisu i formuláře.
   Pozor na longhandy - mobilní blok níž nastavuje boční padding, shorthand
   `padding` by ho přebil. */
html body .rfg-steps {
	padding-top: 28px;
	margin-bottom: 34px;
}

@media (max-width: 720px) {
	html body .rfg-steps {
		padding-top: 20px;
		margin-bottom: 22px;
	}
}
/* =========================================================
   TLAČÍTKO „PŘEJÍT K POKLADNĚ" - SVISLÉ VYCENTROVÁNÍ
   ========================================================= */

/* Text v tlačítku seděl o pár pixelů níž, než měl. Příčina je specificita:
   woocommerce.css má na tohle tlačítko selektor
   `.woocommerce-cart .wc-proceed-to-checkout a.checkout-button` (0,3,1),
   který porazil moje `html body .rfg-summary__cta .checkout-button` (0,2,2)
   - tři třídy jsou víc než dvě, na počtu elementů už nezáleží. Tlačítko si
   tak od WooCommerce vzalo `display: block`, `padding: 1em` a `font-size:
   1.25em`, zatímco výšku 52 px dostalo ode mě. Padding 20 + řádek 20 +
   padding 20 = 60 px nacpaných do 52px krabice, takže text vyjel dolů.

   Řešení není `!important`, ale rovnocenný selektor: `html body` + tři
   třídy + element = (0,3,3). */
html body .woocommerce .wc-proceed-to-checkout a.checkout-button,
html body .rfg-summary__cta a.checkout-button,
html body a.rfg-btn--primary {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 20px;
	font-size: 15.5px;
	line-height: 1;
}
/* =========================================================
   ZEMĚ, DO KTERÉ ZATÍM NEVOZÍME
   ========================================================= */

/* Hláška se vypisuje uvnitř odstavce `.rfg-shipping__note`, proto je to
   <span> a ne <p> - vnořený odstavec by byl neplatné HTML. Není to chyba
   zákazníka, tak to ani nevypadá jako chyba: žádný červený rámeček, jen
   klidná věta a proklik na kontakt. Tohle je přesně ta chvíle, kdy chce
   koupit a zjistí, že to nejde. */
html body .rfg-noship a {
	color: var(--rfg-link);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

html body .rfg-noship a:hover {
	color: var(--rfg-ink);
}
/* =========================================================
   WIDGET ZÁSILKOVNY - VÝBĚR VÝDEJNÍHO MÍSTA
   ========================================================= */

/* Plugin Zásilkovny si widget kreslí po svém: čtvercové logo 150×150 nad
   fialovým tlačítkem. V kartě dopravce se to vytlačí doprava vedle názvu,
   karta se kvůli tomu natáhne na 250 px a popisek tlačítka se ořízne.
   Logo je navíc zbytečné - dopravce je napsaný hned vedle.

   Pozor: widget se objeví jen tehdy, když `<ul>` s dopravci nese
   id="shipping_method". Zásilkovna si ho hledá přes
   `#shipping_method input:checked` a bez toho ho nechá schovaný. */
html body .rfg-shipmethods .packetery-widget-button-wrapper {
	flex: 0 0 100%;
	width: 100%;
	margin: 4px 0 0 34px;
}

html body .rfg-shipmethods .packetery-widget-button-logo {
	display: none !important;
}

html body .rfg-shipmethods .packetery-widget-button-row {
	display: block;
	width: auto;
}

html body .rfg-shipmethods .packeta-widget button {
	width: auto;
	min-height: 40px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid var(--rfg-ink) !important;
	border-radius: 50px !important;
	background: transparent !important;
	color: var(--rfg-ink) !important;
	font-family: var(--rfg-head);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
	white-space: nowrap;
}

html body .rfg-shipmethods .packeta-widget button:hover {
	background: var(--rfg-ink) !important;
	color: #FFFFFF !important;
}

/* Prázdné odstavce na adresu widget vypisuje vždycky; než je zákazník
   vybere místo, jen dělají mezeru. */
html body .rfg-shipmethods .packeta-widget p:empty {
	display: none;
}

html body .rfg-shipmethods .packeta-widget-selected-address,
html body .rfg-shipmethods .packeta-widget-place,
html body .rfg-shipmethods .packeta-widget-info {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--rfg-muted);
}
/* Šířku 150 px si na tlačítko i na jeho obal sype `front.css` Zásilkovny
   selektorem se čtyřmi třídami, takže naše pravidlo výš neprojde a popisek
   „Vyberte místo vyzvednutí" (179 px) z pilulky vyteče. Tady je `!important`
   na místě - přebíjíme stylopis cizího pluginu, ne vlastní nepořádek. */
html body .rfg-shipmethods .packetery-widget-button-row,
html body .rfg-shipmethods .packeta-widget button {
	width: auto !important;
	max-width: 100% !important;
}

html body .rfg-shipmethods .packetery-widget-button-row {
	display: block !important;
}
/* =========================================================
   STRÁNKA PO OBJEDNÁNÍ (DĚKOVACÍ)
   =========================================================
   Jediná stránka nákupu, která zůstala ve výchozím vzhledu WooCommerce:
   drobný text „Děkujeme", seznam údajů oddělený svislítky a tabulka
   s odkazy v barvě motivu. Řeší se to celé z CSS nad výchozím markupem -
   žádná další šablona k přepsání, tedy ani nic, co by se rozbilo při
   aktualizaci WooCommerce. */

html body.woocommerce-order-received .woocommerce-order {
	max-width: 840px;
	margin: 0 auto;
	padding: 0 16px 8px;
}

/* ---------- poděkování ---------- */

/* Nejdůležitější věta na stránce vycházela stejně velká jako popisky
   v tabulce. Dostává velikost nadpisu a zelenou fajfku - zákazník potřebuje
   na první pohled vědět, že objednávka prošla. */
html body .woocommerce-notice--success {
	position: relative;
	margin: 0 0 28px;
	padding: 0 0 0 40px;
	border: 0;
	background: none;
	font-family: var(--rfg-head);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3;
	color: var(--rfg-ink);
}

html body .woocommerce-notice--success::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--rfg-ok);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='M8.6 14.3l3.6 3.6 7.2-7.6' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
}

/* ---------- přehled objednávky ---------- */

/* Výchozí seznam je vodorovný, položky oddělené svislítky a při užším okně
   se láme uprostřed údaje. Z karty a mřížky je to čitelné na jeden pohled. */
html body ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 2px;
	margin: 0 0 28px;
	padding: 0;
	border: 1px solid var(--rfg-line);
	border-radius: 16px;
	background: var(--rfg-line-soft);
	list-style: none;
	overflow: hidden;
}

html body ul.woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0;
	padding: 16px 18px;
	border: 0;
	background: #FFFFFF;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--rfg-muted);
}

html body ul.woocommerce-order-overview li strong {
	font-family: var(--rfg-head);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	color: var(--rfg-ink);
}

/* ---------- bankovní spojení ---------- */

/* U převodu je tohle jediná výzva k akci na celé stránce - zákazník sem
   přišel zaplatit. Proto jako zvýrazněná karta, ne jako další odstavec. */
html body .woocommerce-bacs-bank-details {
	margin: 0 0 28px;
	padding: 22px 24px;
	border: 1px solid var(--rfg-amber);
	border-radius: 16px;
	background: #FFFDF6;
}

html body .wc-bacs-bank-details-heading {
	margin: 0 0 4px;
	font-family: var(--rfg-head);
	font-size: 18px;
	font-weight: 700;
	color: var(--rfg-ink);
}

html body .wc-bacs-bank-details-account-name {
	margin: 18px 0 8px;
	font-family: var(--rfg-head);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--rfg-muted);
}

html body .wc-bacs-bank-details-account-name:first-of-type {
	margin-top: 14px;
}

html body ul.wc-bacs-bank-details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 10px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

html body ul.wc-bacs-bank-details li {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--rfg-muted);
}

html body ul.wc-bacs-bank-details li strong {
	display: block;
	margin-top: 3px;
	font-family: var(--rfg-head);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	color: var(--rfg-ink);
}

/* ---------- podrobnosti a adresy ---------- */

html body .woocommerce-order-details__title,
html body .woocommerce-column__title {
	margin: 0 0 12px;
	font-family: var(--rfg-head);
	font-size: 18px;
	font-weight: 700;
	color: var(--rfg-ink);
}

html body .woocommerce-order-details {
	margin: 0 0 28px;
}

html body table.woocommerce-table--order-details {
	width: 100%;
	margin: 0;
	border: 1px solid var(--rfg-line);
	border-radius: 16px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	font-size: 14px;
}

html body table.woocommerce-table--order-details th,
html body table.woocommerce-table--order-details td {
	padding: 14px 18px;
	border: 0;
	border-bottom: 1px solid var(--rfg-line-soft);
	text-align: left;
	vertical-align: top;
}

html body table.woocommerce-table--order-details thead th {
	background: var(--rfg-tile);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--rfg-muted);
}

html body table.woocommerce-table--order-details th:last-child,
html body table.woocommerce-table--order-details td:last-child {
	text-align: right;
	white-space: nowrap;
}

html body table.woocommerce-table--order-details tfoot tr:last-child th,
html body table.woocommerce-table--order-details tfoot tr:last-child td {
	border-bottom: 0;
	font-family: var(--rfg-head);
	font-size: 16px;
	font-weight: 700;
	color: var(--rfg-ink);
}

/* Odkazy na produkty braly barvu z motivu a svítily vínově. */
html body table.woocommerce-table--order-details a {
	color: var(--rfg-ink);
	text-decoration: none;
}

html body table.woocommerce-table--order-details a:hover {
	color: var(--rfg-link);
	text-decoration: underline;
}

html body .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 0;
}

html body .woocommerce-customer-details .woocommerce-column {
	margin: 0;
	padding: 18px 20px;
	border: 1px solid var(--rfg-line);
	border-radius: 16px;
	background: #FFFFFF;
	width: auto;
	float: none;
}

html body .woocommerce-customer-details address {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 14px;
	font-style: normal;
	line-height: 1.6;
	color: var(--rfg-ink);
}

html body .woocommerce-customer-details--phone,
html body .woocommerce-customer-details--email {
	margin: 8px 0 0;
	padding: 0;
	font-size: 14px;
	color: var(--rfg-muted);
}

@media (max-width: 720px) {
	html body .woocommerce-notice--success {
		font-size: 21px;
		padding-left: 34px;
	}

	html body .woocommerce-notice--success::before {
		width: 24px;
		height: 24px;
		background-size: 24px 24px;
	}

	html body .woocommerce-bacs-bank-details {
		padding: 18px;
	}
}
/* woocommerce.css si na oba ty seznamy věší clearfix `::before`/`::after`
   s `display: table`. V mřížce se z nich stanou dvě plnohodnotné buňky -
   obsah se posune o jednu pozici a vlevo nahoře zůstane prázdné místo.
   V plovoucím layoutu ten clearfix něco řešil, v gridu je jen na obtíž. */
html body ul.woocommerce-order-overview::before,
html body ul.woocommerce-order-overview::after,
html body ul.wc-bacs-bank-details::before,
html body ul.wc-bacs-bank-details::after {
	display: none;
}

/* Položky si od woocommerce.css braly `float: left` a vlastní padding přes
   `.woocommerce ul.order_details li` (0,2,1). Naše pravidlo výš má (0,1,3)
   a prohrálo - doplněním třídy `.order_details` jsme na (0,2,3). */
html body ul.woocommerce-order-overview.order_details li,
html body ul.wc-bacs-bank-details.order_details li {
	float: none;
	margin: 0;
	border: 0;
}

html body ul.woocommerce-order-overview.order_details li {
	padding: 16px 18px;
}

html body ul.wc-bacs-bank-details.order_details li {
	padding: 0;
}

/* Delší e-mail se do sloupce nevešel a ořízl se uprostřed adresy. */
html body ul.woocommerce-order-overview li strong {
	overflow-wrap: anywhere;
}
/* Předchozí pokus na clearfix nestačil: woocommerce.css ho má na
   `.woocommerce ul.order_details::before` (0,2,1) a naše (0,1,3) prohrálo.
   Stejná past jako u tlačítka pokladny - počet tříd rozhoduje dřív než
   počet elementů. Tohle je (0,2,3) a projde. */
html body .woocommerce ul.order_details::before,
html body .woocommerce ul.order_details::after {
	display: none !important;
}
/* Tentýž clearfix i na dvousloupci s adresami (`.col2-set`). V mřížce z něj
   byly dvě buňky navíc, takže fakturační adresa skočila do druhého sloupce
   a doručovací pod ni do prvního - vypadalo to jako schody. */
html body .woocommerce .woocommerce-columns--addresses::before,
html body .woocommerce .woocommerce-columns--addresses::after,
html body .woocommerce .col2-set::before,
html body .woocommerce .col2-set::after {
	display: none !important;
}

/* Rámeček kolem adresy uvnitř karty: `.woocommerce .woocommerce-customer-details
   address` (0,2,1) přebilo naše (0,1,3), takže karta měla rámečky dva. */
html body .woocommerce .woocommerce-customer-details address {
	padding: 0;
	border: 0;
	border-radius: 0;
}

/* Pozadí seznamu prosvítalo v prázdné buňce, která zbyde vždycky, když
   počet údajů není dělitelný počtem sloupců. Karta je bílá celá. */
html body ul.woocommerce-order-overview {
	background: #FFFFFF;
	gap: 0;
}

/* Odkaz „Detail výdejního místa" od Zásilkovny vypadal jako šedé systémové
   tlačítko. Stejný outline pill jako všude jinde. */
html body .woocommerce-order a.button {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--rfg-ink) !important;
	border-radius: 50px !important;
	background: transparent !important;
	color: var(--rfg-ink) !important;
	font-family: var(--rfg-head);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
	text-decoration: none;
}

html body .woocommerce-order a.button:hover {
	background: var(--rfg-ink) !important;
	color: #FFFFFF !important;
}