/**
 * Carrito, checkout y cambios/devoluciones P04.
 *
 * Conserva los bloques y formularios nativos de WooCommerce; sólo adapta la
 * carcasa, el estado vacío, la página informativa autorizada y los espacios
 * para la navegación móvil aprobada.
 */

body.lavitto-transaction-context,
body.lavitto-information-context {
	--lavitto-transaction-ink: #111211;
	--lavitto-transaction-charcoal: #26282b;
	--lavitto-transaction-stone: #e7e3dc;
	--lavitto-transaction-mist: #f5f3ef;
	--lavitto-transaction-mineral: #5d5c58;
	--lavitto-transaction-cognac: #9a5f3b;
	--lavitto-transaction-white: #ffffff;
	--lavitto-transaction-line: rgba(17, 18, 17, 0.15);
	--lavitto-transaction-display: Georgia, "Times New Roman", serif;
	--lavitto-transaction-interface: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	background: var(--lavitto-transaction-mist);
	color: var(--lavitto-transaction-ink);
	font-family: var(--lavitto-transaction-interface);
}

body.lavitto-shell-context .wp-site-blocks {
	overflow: clip;
	background: var(--lavitto-transaction-mist);
}

body.lavitto-shell-enabled .wp-site-blocks > header,
body.lavitto-shell-enabled .wp-site-blocks > footer,
body.lavitto-shell-enabled .wp-site-blocks > .wp-block-template-part > header,
body.lavitto-shell-enabled .wp-site-blocks > .wp-block-template-part > footer {
	display: none;
}

body.lavitto-transaction-context .wp-block-post-title {
	display: block;
	margin: 0 0 clamp(1.5rem, 4vw, 2.5rem);
	color: var(--lavitto-transaction-ink);
	font-family: var(--lavitto-transaction-display);
	font-size: clamp(2rem, 8vw, 3.5rem);
	font-weight: 400;
	letter-spacing: -0.05em;
	line-height: 1;
}

body.lavitto-transaction-context .wp-site-blocks > main,
body.lavitto-transaction-context .wp-site-blocks > .wp-block-group > main {
	width: min(100%, 82rem);
	margin-block-start: 0;
	margin-inline: auto;
	padding: clamp(1.25rem, 4vw, 3.5rem) max(1rem, 4vw) 3rem;
}

body.lavitto-information-context .wp-site-blocks > main,
body.lavitto-information-context .wp-site-blocks > .wp-block-group > main {
	width: min(100%, 70rem);
	margin-block-start: 0;
	margin-inline: auto;
	padding: clamp(1.5rem, 5vw, 4rem) max(1rem, 4vw) calc(6.5rem + env(safe-area-inset-bottom));
}

/*
 * TT5 agrega main, grupo alignfull y entry-content antes del shortcode de
 * información. El DOM observado acumula sus márgenes y padding globales;
 * este reset sólo se aplica a información y devuelve el respiro al main:
 * 48 px en escritorio y 24 px en móvil, más el área segura de la barra.
 */
body.lavitto-information-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(1.5rem, 4vw, 3rem) max(1rem, 4vw) calc(6.5rem + env(safe-area-inset-bottom)) !important;
}

body.lavitto-information-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained > .wp-block-group.alignfull.has-global-padding.is-layout-constrained,
body.lavitto-information-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained > .wp-block-group.alignfull.has-global-padding.is-layout-constrained > .entry-content.alignfull.wp-block-post-content.has-global-padding.is-layout-constrained {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * El carrito conserva su padding propio y su navegación móvil, pero no la
 * acumulación de margen/padding de los tres wrappers TT5 observados. No toca
 * checkout ni el marcado/estado de WooCommerce.
 */
body.lavitto-cart-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained {
	width: min(100%, 82rem) !important;
	max-width: none !important;
	margin: 0 auto !important;
	padding: clamp(1.25rem, 4vw, 3.5rem) max(1rem, 4vw) calc(6.5rem + env(safe-area-inset-bottom)) !important;
}

body.lavitto-cart-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained > .wp-block-group.alignfull.has-global-padding.is-layout-constrained,
body.lavitto-cart-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained > .wp-block-group.alignfull.has-global-padding.is-layout-constrained > .entry-content.alignfull.wp-block-post-content.has-global-padding.is-layout-constrained {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.lavitto-cart-context .wp-site-blocks > main,
body.lavitto-cart-context .wp-site-blocks > .wp-block-group > main {
	padding-bottom: calc(6.5rem + env(safe-area-inset-bottom));
}

body.lavitto-transaction-context a:focus-visible,
body.lavitto-transaction-context button:focus-visible,
body.lavitto-transaction-context input:focus-visible,
body.lavitto-transaction-context select:focus-visible,
body.lavitto-information-context a:focus-visible,
body.lavitto-information-context button:focus-visible,
body.lavitto-information-context input:focus-visible,
body.lavitto-information-context select:focus-visible {
	outline: 0.1875rem solid var(--lavitto-transaction-cognac);
	outline-offset: 0.1875rem;
}

.lavitto-transaction-shell__header {
	position: sticky;
	top: 0;
	z-index: 60;
	border-bottom: 1px solid var(--lavitto-transaction-line);
	background: rgba(245, 243, 239, 0.96);
	backdrop-filter: blur(0.75rem);
}

.lavitto-transaction-shell__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: min(100% - 2rem, 80rem);
	min-height: 4.25rem;
	margin: 0 auto;
}

.lavitto-transaction-shell__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.75rem;
	color: inherit;
	text-decoration: none;
}

.lavitto-transaction-shell__brand-mark {
	display: grid;
	width: 2.2rem;
	height: 2.2rem;
	flex: 0 0 2.2rem;
	place-items: center;
	padding: 0.3rem;
	border-radius: 50%;
	background: var(--lavitto-transaction-stone);
}

.lavitto-transaction-shell__brand-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.lavitto-transaction-shell__wordmark {
	font-family: var(--lavitto-transaction-display);
	font-size: clamp(1.55rem, 7vw, 2.2rem);
	font-weight: 400;
	letter-spacing: -0.075em;
	line-height: 1;
}

.lavitto-transaction-shell__nav {
	display: flex;
	align-items: center;
	gap: 0.2rem;
}

.lavitto-transaction-shell__nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.5rem 0.625rem;
	border-radius: 0.55rem;
	color: var(--lavitto-transaction-ink);
	font-size: 0.8125rem;
	font-weight: 700;
	text-decoration: none;
}

.lavitto-transaction-shell__nav a.is-current {
	background: var(--lavitto-transaction-stone);
}

body.lavitto-transaction-context .wc-block-cart,
body.lavitto-transaction-context .wc-block-checkout,
body.lavitto-transaction-context .woocommerce-cart-form,
body.lavitto-transaction-context .woocommerce-checkout {
	max-width: 100%;
	color: var(--lavitto-transaction-ink);
}

body.lavitto-transaction-context .wc-block-components-notice-banner,
body.lavitto-transaction-context .woocommerce-info,
body.lavitto-transaction-context .woocommerce-message,
body.lavitto-transaction-context .woocommerce-error,
.lavitto-purchase-notice {
	margin: 0 0 1rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.7rem;
	background: var(--lavitto-transaction-white);
	color: var(--lavitto-transaction-ink);
	box-shadow: none;
}

.lavitto-purchase-notice {
	padding: 0.9rem 1rem;
}

.lavitto-purchase-notice p {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 700;
}

body.lavitto-cart-context .cart-empty,
body.lavitto-cart-is-empty .woocommerce > .return-to-shop {
	display: none;
}

body.lavitto-cart-is-empty .wc-block-cart__empty-cart__title-with-icon,
body.lavitto-cart-is-empty .wc-block-cart__empty-cart__title,
body.lavitto-cart-is-empty .wc-block-cart__empty-cart__description,
body.lavitto-cart-is-empty .wc-block-cart__empty-cart__button,
body.lavitto-cart-is-empty .wc-block-cart__empty-cart__title + .wp-block-woocommerce-product-collection {
	display: none;
}

.lavitto-empty-cart {
	display: grid;
	min-height: min(34rem, 62vh);
	place-items: center;
	padding: clamp(1.5rem, 6vw, 4rem) 0;
}

.lavitto-empty-cart__inner {
	box-sizing: border-box;
	min-width: 0;
	display: grid;
	justify-items: center;
	gap: 1.1rem;
	width: min(100%, 31rem);
	padding: clamp(1.5rem, 7vw, 3.5rem);
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 1rem;
	background: var(--lavitto-transaction-white);
	text-align: center;
}

.lavitto-empty-cart__mark .lavitto-transaction-shell__brand-mark {
	width: 4.75rem;
	height: 4.75rem;
	flex-basis: 4.75rem;
	padding: 0.7rem;
}

.lavitto-empty-cart__mark .lavitto-transaction-shell__wordmark {
	display: none;
}

.lavitto-empty-cart h2 {
	margin: 0;
	color: var(--lavitto-transaction-ink);
	font-family: var(--lavitto-transaction-display);
	font-size: clamp(2.1rem, 8vw, 3.8rem);
	font-weight: 400;
	letter-spacing: -0.06em;
	line-height: 0.95;
}

.lavitto-empty-cart__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.25rem;
	padding: 0.7rem 1rem;
	border: 1px solid var(--lavitto-transaction-ink);
	border-radius: 0.6rem;
	background: var(--lavitto-transaction-ink);
	color: var(--lavitto-transaction-mist);
	font-size: 0.875rem;
	font-weight: 750;
	text-decoration: none;
	transition: opacity 160ms ease, transform 160ms ease;
}

.lavitto-empty-cart__cta:hover {
	opacity: 0.88;
	transform: translateY(-0.1rem);
}

.lavitto-transaction-shell__footer {
	padding: 2.25rem max(1rem, 4vw) 2.5rem;
	background: var(--lavitto-transaction-ink);
	color: var(--lavitto-transaction-stone);
}

body.lavitto-cart-context .lavitto-transaction-shell__footer {
	padding-bottom: calc(6.25rem + env(safe-area-inset-bottom));
}

body.lavitto-information-context .lavitto-transaction-shell__footer {
	padding-bottom: calc(6.25rem + env(safe-area-inset-bottom));
}

.lavitto-transaction-shell__footer-inner {
	display: grid;
	gap: 1.25rem;
	width: min(100%, 80rem);
	margin: 0 auto;
}

.lavitto-transaction-shell__footer-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.75rem;
	color: var(--lavitto-transaction-stone);
	text-decoration: none;
}

.lavitto-transaction-shell__footer .lavitto-transaction-shell__brand-mark {
	background: var(--lavitto-transaction-stone);
}

.lavitto-transaction-shell__footer nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
}

.lavitto-transaction-shell__footer nav a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: var(--lavitto-transaction-stone);
	font-size: 0.875rem;
	text-decoration: none;
}

.lavitto-transaction-shell__footer p {
	margin: 0;
	color: rgba(231, 227, 220, 0.62);
	font-size: 0.75rem;
}

.lavitto-transaction-nav {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 65;
	display: block;
	padding: 0.375rem 0 calc(0.375rem + env(safe-area-inset-bottom));
	border-top: 1px solid var(--lavitto-transaction-line);
	background: rgba(245, 243, 239, 0.97);
	box-shadow: 0 -0.75rem 2.25rem rgba(17, 18, 17, 0.08);
	backdrop-filter: blur(0.75rem);
}

.lavitto-transaction-nav__items {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	width: min(100% - 0.5rem, 34rem);
	margin: 0 auto;
}

.lavitto-transaction-nav__link {
	display: flex;
	min-width: 0;
	min-height: 3.25rem;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	padding: 0.25rem;
	border-radius: 0.625rem;
	color: var(--lavitto-transaction-mineral);
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	text-decoration: none;
}

.lavitto-transaction-nav__link svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.75;
}

.lavitto-transaction-nav__link.is-current {
	color: var(--lavitto-transaction-ink);
}

.lavitto-transaction-nav__link.is-current svg {
	stroke: var(--lavitto-transaction-cognac);
}

@media (min-width: 48rem) {
	body.lavitto-transaction-context .wp-site-blocks > main,
	body.lavitto-transaction-context .wp-site-blocks > .wp-block-group > main,
	body.lavitto-cart-context .wp-site-blocks > main,
	body.lavitto-cart-context .wp-site-blocks > .wp-block-group > main,
	body.lavitto-information-context .wp-site-blocks > main,
	body.lavitto-information-context .wp-site-blocks > .wp-block-group > main {
		padding-bottom: 4.5rem;
	}

	body.lavitto-information-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained {
		padding-bottom: 4.5rem !important;
	}

	body.lavitto-cart-context .wp-site-blocks > main.wp-block-group.has-global-padding.is-layout-constrained {
		padding-bottom: 4.5rem !important;
	}

	.lavitto-transaction-shell__footer {
		padding-bottom: 2.5rem;
	}

	body.lavitto-cart-context .lavitto-transaction-shell__footer,
	body.lavitto-information-context .lavitto-transaction-shell__footer {
		padding-bottom: 2.5rem;
	}

	.lavitto-transaction-shell__footer-inner {
		grid-template-columns: minmax(0, 1fr) auto auto;
		align-items: center;
	}

	.lavitto-transaction-nav {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lavitto-empty-cart__cta {
		transition: none;
	}
}

/*
 * COM-003 — recorrido visible Carrito → Envío → Pago → Confirmación.
 * El HTML de Woo sigue siendo el formulario, el resumen, los métodos y la
 * única acción que puede crear el pedido; esta capa no oculta ni mueve datos.
 */
.lavitto-checkout-progress {
	margin: 0 0 1.25rem;
	padding: 0.25rem 0;
	border-block: 1px solid var(--lavitto-transaction-line);
}

.lavitto-checkout-progress ol {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lavitto-checkout-progress li {
	position: relative;
	min-width: 0;
	padding: 0.55rem 0.25rem 0.6rem;
	color: var(--lavitto-transaction-mineral);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

.lavitto-checkout-progress li::before {
	display: block;
	width: 0.5rem;
	height: 0.5rem;
	margin: 0 auto 0.4rem;
	border: 1px solid currentcolor;
	border-radius: 50%;
	content: '';
}

.lavitto-checkout-progress li + li::after {
	position: absolute;
	top: 0.79rem;
	right: calc(50% + 0.45rem);
	width: calc(100% - 0.9rem);
	border-top: 1px solid var(--lavitto-transaction-line);
	content: '';
}

.lavitto-checkout-progress a {
	color: inherit;
	text-decoration: none;
}

.lavitto-checkout-progress__complete,
.lavitto-checkout-progress__active {
	color: var(--lavitto-transaction-ink) !important;
}

.lavitto-checkout-progress__complete::before {
	background: var(--lavitto-transaction-ink);
}

.lavitto-checkout-progress__active::before {
	border: 3px solid var(--lavitto-transaction-cognac) !important;
	background: var(--lavitto-transaction-white);
}

.lavitto-checkout-progress a:focus-visible {
	outline: 3px solid var(--lavitto-transaction-cognac);
	outline-offset: 3px;
}

body.lavitto-checkout-context .lavitto-checkout-section {
	box-sizing: border-box;
	margin: 0 0 1.5rem;
	padding: clamp(1rem, 4vw, 1.5rem);
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.8rem;
	background: var(--lavitto-transaction-white);
}

body.lavitto-checkout-context .lavitto-checkout-section__header {
	margin: 0 0 1.25rem;
}

body.lavitto-checkout-context .lavitto-checkout-section__eyebrow {
	margin: 0 0 0.35rem;
	color: var(--lavitto-transaction-cognac);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.lavitto-checkout-context .lavitto-checkout-section h2 {
	margin: 0;
	color: var(--lavitto-transaction-ink);
	font-family: var(--lavitto-transaction-display);
	font-size: clamp(1.65rem, 5vw, 2.1rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1;
}

body.lavitto-checkout-context .lavitto-checkout-section__header h2 + p {
	margin: 0.65rem 0 0;
	color: var(--lavitto-transaction-mineral);
	font-size: 0.9375rem;
	line-height: 1.45;
}

body.lavitto-checkout-context .lavitto-checkout-section--shipping > #customer_details {
	margin: 0;
}

body.lavitto-checkout-context .lavitto-checkout-section--payment > #order_review,
body.lavitto-checkout-context .lavitto-checkout-section--payment > .woocommerce-checkout-review-order {
	margin: 0;
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li[data-lavitto-shipping-kind],
body.lavitto-transaction-context .woocommerce ul#shipping_method li[data-lavitto-shipping-kind],
body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option[data-lavitto-shipping-kind] {
	position: relative;
	padding: 1rem;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li[data-lavitto-shipping-kind]::before,
body.lavitto-transaction-context .woocommerce ul#shipping_method li[data-lavitto-shipping-kind]::before,
body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option[data-lavitto-shipping-kind]::before {
	grid-column: 2;
	color: var(--lavitto-transaction-mineral);
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.075em;
	line-height: 1;
	text-transform: uppercase;
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li[data-lavitto-shipping-kind='home']::before,
body.lavitto-transaction-context .woocommerce ul#shipping_method li[data-lavitto-shipping-kind='home']::before,
body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option[data-lavitto-shipping-kind='home']::before {
	content: 'A domicilio';
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li[data-lavitto-shipping-kind='pickup']::before,
body.lavitto-transaction-context .woocommerce ul#shipping_method li[data-lavitto-shipping-kind='pickup']::before,
body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option[data-lavitto-shipping-kind='pickup']::before {
	content: 'Retirar en sucursal UES';
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li.lavitto-shipping-choice--selected,
body.lavitto-transaction-context .woocommerce ul#shipping_method li.lavitto-shipping-choice--selected,
body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option.lavitto-shipping-choice--selected {
	border-color: var(--lavitto-transaction-cognac);
	box-shadow: 0 0 0 1px var(--lavitto-transaction-cognac);
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li.lavitto-shipping-choice--selected label,
body.lavitto-transaction-context .woocommerce ul#shipping_method li.lavitto-shipping-choice--selected label,
body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option.lavitto-shipping-choice--selected label {
	font-weight: 750;
}

@media (min-width: 48rem) {
	.lavitto-checkout-progress li {
		font-size: 0.8125rem;
	}

	body.lavitto-checkout-context .lavitto-checkout-section {
		padding: 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li[data-lavitto-shipping-kind],
	body.lavitto-transaction-context .woocommerce ul#shipping_method li[data-lavitto-shipping-kind],
	body.lavitto-transaction-context .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option[data-lavitto-shipping-kind] {
		transition: none;
	}
}

/*
 * COM-002 — ajustes de compra clásica para pantallas táctiles. Se conserva el
 * marcado, la lógica de envío, los gateways y los valores de WooCommerce/UES;
 * estas reglas sólo ordenan los controles que ya existen en carrito y checkout.
 */
body.lavitto-transaction-context .woocommerce form .form-row {
	margin: 0 0 1rem;
}

body.lavitto-transaction-context .woocommerce form .form-row label {
	display: block;
	margin: 0 0 0.45rem;
	color: var(--lavitto-transaction-ink);
	font-size: 0.9375rem;
	font-weight: 650;
	line-height: 1.35;
}

body.lavitto-transaction-context .woocommerce form .form-row input.input-text,
body.lavitto-transaction-context .woocommerce form .form-row select,
body.lavitto-transaction-context .woocommerce .select2-container--default .select2-selection--single {
	box-sizing: border-box;
	min-height: 3rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.5rem;
	background: var(--lavitto-transaction-white);
	color: var(--lavitto-transaction-ink);
	font-family: var(--lavitto-transaction-interface);
	font-size: 1rem;
	line-height: 1.4;
}

/*
 * iOS Safari focuses a form control by zooming when its effective text is
 * smaller than 16px. Keep the browser zoom available and raise only checkout
 * controls to the readable threshold; this does not touch the viewport meta
 * tag or disable user scaling.
 */
@media (max-width: 47.99rem) {
	body.lavitto-checkout-context .woocommerce form .form-row :is(input.input-text, input[type='email'], input[type='number'], input[type='search'], input[type='tel'], input[type='text'], input[type='url'], select, textarea),
      body.lavitto-checkout-context .woocommerce .select2-container--default .select2-selection--single,
      body.lavitto-checkout-context .select2-container--open .select2-search__field {
        font-size: 1rem !important;
      }

	body.lavitto-checkout-context .woocommerce form .form-row textarea {
		min-height: 7rem;
		padding: 0.8rem;
		resize: vertical;
	}

	body.lavitto-checkout-context .select2-container--open .select2-search__field {
		box-sizing: border-box;
		min-height: 3rem;
	}
}

body.lavitto-transaction-context .woocommerce .select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
}

body.lavitto-transaction-context .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-right: 2.5rem;
	padding-left: 0.8rem;
	color: inherit;
	line-height: 1.4;
}

body.lavitto-transaction-context .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 0.75rem;
	transform: translateY(-50%);
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods,
body.lavitto-transaction-context .woocommerce ul#shipping_method {
	display: grid;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods li,
body.lavitto-transaction-context .woocommerce ul#shipping_method li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.65rem;
	align-items: start;
	margin: 0;
	padding: 0.8rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.5rem;
	background: var(--lavitto-transaction-white);
	line-height: 1.35;
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods input,
body.lavitto-transaction-context .woocommerce ul#shipping_method input {
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
}

body.lavitto-transaction-context .woocommerce .woocommerce-shipping-methods label,
body.lavitto-transaction-context .woocommerce ul#shipping_method label {
	min-width: 0;
	color: var(--lavitto-transaction-ink);
	font-size: 0.9375rem;
	font-weight: 600;
	text-align: left;
}

body.lavitto-transaction-context .woocommerce #wc_ues_shipping_method_pickup_id {
	box-sizing: border-box;
	width: 100%;
	min-height: 3rem;
	margin-top: 0.75rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.5rem;
	background: var(--lavitto-transaction-white);
	color: var(--lavitto-transaction-ink);
	font: inherit;
}

body.lavitto-transaction-context .woocommerce #pickup-address-container {
	margin-top: 0.75rem;
	padding: 0.85rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.5rem;
	background: var(--lavitto-transaction-white);
	color: var(--lavitto-transaction-ink);
	font-size: 0.9375rem;
	line-height: 1.45;
}

body.lavitto-transaction-context .woocommerce #payment {
	margin-top: 1.25rem;
	padding: 1rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.7rem;
	background: var(--lavitto-transaction-white);
}

body.lavitto-transaction-context .woocommerce #payment ul.payment_methods {
	margin: 0;
	padding: 0;
	border: 0;
}

body.lavitto-transaction-context .woocommerce #payment .payment_box {
	margin: 0.85rem 0 0;
	padding: 0.85rem;
	border: 0;
	border-radius: 0.5rem;
	background: var(--lavitto-transaction-mist);
	color: var(--lavitto-transaction-ink);
	font-size: 0.9375rem;
	line-height: 1.45;
}

body.lavitto-transaction-context .woocommerce #payment .payment_box::before {
	display: none;
}

body.lavitto-transaction-context .woocommerce #payment #place_order {
	box-sizing: border-box;
	width: 100%;
	min-height: 3.125rem;
	margin: 1rem 0 0;
	border-radius: 0.55rem;
	font-size: 1rem;
	font-weight: 750;
}

body.lavitto-transaction-context .woocommerce .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > th,
body.lavitto-transaction-context .woocommerce .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > td {
	vertical-align: top;
	padding-block: 1rem;
}

body.lavitto-transaction-context .woocommerce .cart-collaterals .cart_totals,
body.lavitto-transaction-context .woocommerce .shipping-calculator-form {
	box-sizing: border-box;
	width: 100%;
	float: none;
	text-align: left;
}

/* CART-01: la línea nativa conserva sus campos Woo y se presenta como tarjeta. */
.lavitto-cart-confirmation {
	margin: 0 0 1rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--lavitto-transaction-line);
	border-radius: 0.7rem;
	background: var(--lavitto-transaction-white);
	color: var(--lavitto-transaction-ink);
}

.lavitto-cart-confirmation p {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 750;
	line-height: 1.4;
}

.lavitto-cart-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 1rem 0 1.5rem;
}

.lavitto-cart-actions a {
	display: inline-flex;
	min-height: 3.125rem;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--lavitto-transaction-ink);
	border-radius: 0.55rem;
	font-size: 0.9375rem;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

.lavitto-cart-actions__continue {
	background: transparent;
	color: var(--lavitto-transaction-ink);
}

.lavitto-cart-actions__checkout {
	background: var(--lavitto-transaction-ink);
	color: var(--lavitto-transaction-mist);
}

body.lavitto-cart-context .woocommerce .wc-proceed-to-checkout {
	display: none;
}

/* El cupón es útil, pero debe leerse como una opción secundaria del carrito. */
body.lavitto-cart-context .woocommerce-cart-form .coupon .button {
	min-height: 2.75rem;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--lavitto-transaction-ink);
	background: transparent;
	color: var(--lavitto-transaction-ink);
	box-shadow: none;
	font-weight: 750;
}

@media (max-width: 47.99rem) {
	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart {
		border: 0;
		border-collapse: separate;
		border-spacing: 0;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart thead {
		display: none;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart tbody > tr.woocommerce-cart-form__cart-item {
		display: grid;
		grid-template-columns: minmax(5.5rem, 6.5rem) minmax(0, 1fr) auto;
		grid-template-areas:
			'image details remove'
			'image price subtotal'
			'image quantity quantity';
		gap: 0.5rem 0.75rem;
		margin: 0 0 1rem;
		padding: 0.85rem;
		border: 1px solid var(--lavitto-transaction-line);
		border-radius: 0.75rem;
		background: var(--lavitto-transaction-white);
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart tr.woocommerce-cart-form__cart-item > td {
		display: block !important;
		width: auto !important;
		margin: 0;
		padding: 0;
		border: 0;
		text-align: left !important;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart tr.woocommerce-cart-form__cart-item > td::before {
		display: none !important;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-thumbnail {
		grid-area: image;
		align-self: start;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-thumbnail > a {
		display: block;
		width: min(100%, 6.5rem);
		aspect-ratio: 1;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-thumbnail img {
		display: block;
		width: 100%;
		height: 100%;
		max-width: none;
		object-fit: contain;
		object-position: center;
		background: #fff;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-name {
		grid-area: details;
		min-width: 0;
		font-size: 0.9375rem;
		font-weight: 750;
		line-height: 1.28;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-name > a {
		color: var(--lavitto-transaction-ink);
		text-decoration: none;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart dl.variation {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		gap: 0.15rem 0.45rem;
		margin: 0.45rem 0 0;
		font-size: 0.8125rem;
		font-weight: 500;
		line-height: 1.35;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart dl.variation dt,
	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart dl.variation dd,
	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart dl.variation dd p {
		margin: 0;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart dl.variation dt {
		font-weight: 700;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-remove {
		grid-area: remove;
		justify-self: end;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-remove .remove {
		display: inline-grid;
		width: 2.75rem;
		height: 2.75rem;
		place-items: center;
		border: 1px solid var(--lavitto-transaction-line);
		border-radius: 50%;
		color: var(--lavitto-transaction-ink) !important;
		font-size: 1.4rem;
		line-height: 1;
		text-decoration: none;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-price {
		grid-area: price;
		align-self: center;
		font-size: 0.875rem;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-subtotal {
		grid-area: subtotal;
		align-self: center;
		justify-self: end;
		font-size: 0.9375rem;
		font-weight: 800;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-quantity {
		grid-area: quantity;
		padding-top: 0.25rem;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart .product-quantity .quantity input.qty {
		box-sizing: border-box;
		width: 4rem !important;
		min-width: 4rem;
		height: 2.75rem;
		min-height: 2.75rem;
		margin: 0;
		padding: 0.35rem;
		border-radius: 0.5rem;
		text-align: center;
	}

	body.lavitto-cart-context .woocommerce table.shop_table_responsive.cart tr:not(.woocommerce-cart-form__cart-item) > td.actions {
		display: grid;
		padding: 0.25rem 0 0;
		border: 0;
	}

	body.lavitto-cart-context .woocommerce-cart-form .coupon {
		padding: 0.85rem;
		border: 1px solid var(--lavitto-transaction-line);
		border-radius: 0.65rem;
		background: color-mix(in srgb, var(--lavitto-transaction-mist) 82%, white);
	}

	body.lavitto-transaction-context .woocommerce-checkout .form-row-first,
	body.lavitto-transaction-context .woocommerce-checkout .form-row-last,
	body.lavitto-transaction-context .woocommerce-cart-form .coupon,
	body.lavitto-transaction-context .woocommerce-cart-form .actions > .button {
		box-sizing: border-box;
		width: 100%;
		float: none;
	}

	body.lavitto-transaction-context .woocommerce-cart-form .actions {
		display: grid;
		gap: 0.75rem;
		text-align: left;
	}

	body.lavitto-transaction-context .woocommerce-cart-form .coupon input.input-text,
	body.lavitto-transaction-context .woocommerce-cart-form .coupon .button {
		box-sizing: border-box;
		width: 100%;
		min-height: 3rem;
		margin: 0;
	}

	/* El cupón sigue disponible, pero no compite visualmente con finalizar compra. */
	body.lavitto-cart-context .woocommerce-cart-form .coupon {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 0.5rem;
		align-items: stretch;
	}

	body.lavitto-cart-context .woocommerce-cart-form .coupon input.input-text {
		grid-column: 1;
		width: 100%;
	}

	body.lavitto-cart-context .woocommerce-cart-form .coupon .button {
		grid-column: 2;
		width: auto;
		min-width: 7.25rem;
		min-height: 2.75rem;
		padding: 0.55rem 0.7rem;
		border: 1px solid var(--lavitto-transaction-ink);
		background: transparent;
		color: var(--lavitto-transaction-ink);
		font-weight: 750;
	}

	body.lavitto-transaction-context .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > th,
	body.lavitto-transaction-context .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > td {
		display: block;
		width: auto;
		padding-inline: 0;
	}

	body.lavitto-transaction-context .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > th {
		padding-bottom: 0.25rem;
	}

	body.lavitto-transaction-context .woocommerce-checkout-review-order-table .woocommerce-shipping-totals > td {
		padding-top: 0;
	}
}

/*
 * COM-003 CART-03 — el carrito comunica importe, no modalidad de entrega.
 * Woo/UES conserva la selección de fondo; la tabla sólo presenta subtotal,
 * envío y total como un resumen financiero compacto.
 */
body.lavitto-cart-context .woocommerce .cart-collaterals {
	margin-top: 1.5rem;
}

body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals > h2 {
	margin: 0 0 0.8rem;
	color: var(--lavitto-transaction-ink);
	font-family: var(--lavitto-transaction-interface);
	font-size: 1.05rem;
	font-weight: 650;
	letter-spacing: -0.02em;
	line-height: 1.3;
}

body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table {
	width: 100%;
	margin: 0;
	border: 1px solid var(--lavitto-transaction-line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 0.75rem;
	background: var(--lavitto-transaction-white);
	overflow: hidden;
}

body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table :is(th, td) {
	border: 0;
	color: var(--lavitto-transaction-ink);
}

/* Actualizar sólo cobra protagonismo cuando Woo habilita un cambio real. */
body.lavitto-cart-context .woocommerce-cart-form .actions > :is(.button, button, input)[name='update_cart'] {
	box-sizing: border-box;
	min-height: 3rem;
	margin: 0;
	border: 1px solid var(--lavitto-transaction-ink);
	border-radius: 0.55rem;
	background: var(--lavitto-transaction-white);
	color: var(--lavitto-transaction-ink);
	box-shadow: none;
	font-size: 0.9375rem;
	font-weight: 750;
}

body.lavitto-cart-context .woocommerce-cart-form .actions > :is(.button, button, input)[name='update_cart']:disabled {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	align-self: start;
	justify-self: center;
	width: auto !important;
	min-height: 2rem;
	padding: 0.25rem 0.5rem;
	border-color: transparent;
	background: transparent;
	color: var(--lavitto-transaction-mineral);
	opacity: 1;
	font-size: 0.8125rem;
	font-weight: 600;
}

@media (max-width: 47.99rem) {
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table tbody,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table tr,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table th,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table td {
		display: block;
		box-sizing: border-box;
		width: 100%;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table tr + tr {
		border-top: 1px solid var(--lavitto-transaction-line);
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table th {
		padding: 1rem 1rem 0.25rem;
		font-size: 1rem;
		font-weight: 750;
		text-align: left;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table td {
		padding: 0.25rem 1rem 1rem;
		text-align: left !important;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table td::before {
		display: none !important;
		content: none !important;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table .cart-subtotal,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table .lavitto-cart-shipping-summary-row,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table .order-total {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table :is(.cart-subtotal, .lavitto-cart-shipping-summary-row, .order-total) > th,
	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table :is(.cart-subtotal, .lavitto-cart-shipping-summary-row, .order-total) > td {
		width: auto;
		padding: 1rem;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table :is(.cart-subtotal, .lavitto-cart-shipping-summary-row, .order-total) > td {
		font-size: 1.125rem;
		font-weight: 800;
		text-align: right !important;
	}

	body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table .order-total > :is(th, td) {
		padding-top: 1.1rem;
		padding-bottom: 1.1rem;
		font-size: 1.125rem;
	}

	.lavitto-cart-actions {
		margin: 1.25rem 0 0.5rem;
	}
}

@media (max-width: 22rem) {
	.lavitto-cart-actions {
		grid-template-columns: minmax(0, 1fr);
	}
}

/*
 * La tarifa seleccionada sigue siendo la fuente de WooCommerce. Si no existe,
 * no se sustituye ni se oculta la fila nativa de envío.
 */
body.lavitto-cart-context .woocommerce .cart-collaterals .lavitto-cart-shipping-summary {
	display: block;
}

body.lavitto-cart-context .woocommerce .cart-collaterals .lavitto-cart-shipping-summary__amount {
	color: var(--lavitto-transaction-ink);
	font-weight: 700;
}

/* La fila nativa queda visible si Core no pudo construir el resumen. */
body.lavitto-cart-context .woocommerce .cart-collaterals .cart_totals table tr.lavitto-cart-shipping-summary-row ~ tr.woocommerce-shipping-totals {
	display: none;
}

/* El cupón conserva el formulario nativo en una única fila secundaria. */
@media (max-width: 47.99rem) {
	body.lavitto-cart-context .woocommerce-cart-form .actions .coupon {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 0.5rem;
		align-items: center;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0;
		background: transparent !important;
	}

	body.lavitto-cart-context .woocommerce-cart-form .actions .coupon > :is(input.input-text, .input-text) {
		grid-column: 1;
		min-width: 0;
		min-height: 2.75rem !important;
		margin: 0 !important;
		padding-inline: 0.75rem;
	}

	body.lavitto-cart-context .woocommerce-cart-form .actions .coupon > :is(button, input, .button) {
		grid-column: 2;
		width: auto !important;
		min-width: 5.75rem !important;
		min-height: 2.75rem !important;
		margin: 0 !important;
		padding-inline: 0.75rem;
		white-space: nowrap;
	}
}
