/* ==========================================================================
   UnikaWeb Studio — Proceso de compra (carrito, finalizar compra, pedido recibido)
   Franja oscura con los pasos y tarjetas blancas montadas encima.
   Se carga solo en esas páginas (inc/checkout-flow.php).
   ========================================================================== */

body.ukst.ukst-flow {
	--ukst-flow-radius: calc(var(--ukst-radius) + 6px);
	--ukst-flow-pad: clamp(20px, 2.4vw, 32px);
	--ukst-flow-overlap: clamp(56px, 7vw, 96px);
	--ukst-flow-sticky: calc(var(--ukst-header-h) + 24px);
}

/* --------------------------------------------------------------------------
   Franja oscura: cabecera de la página + pasos
   ----------------------------------------------------------------------- */
body.ukst.ukst-flow .ukst-hero-page {
	border: 0 !important;
	background: var(--ukst-flow-dark) !important;
	padding-block: clamp(44px, 6vw, 84px) 0 !important;
}
/* Sección de Divi: valores por defecto (el fondo y el espaciado que pongas en Divi ganan) */
body.ukst.ukst-flow .et_pb_section.ukst-d-pagehead { --ukst-d-pt: clamp(44px, 6vw, 84px); --ukst-d-pb: 0px; }
:where(:where(body.ukst.ukst-flow)) .ukst-d-pagehead { border: 0; background-color: var(--ukst-flow-dark); }
body.ukst.ukst-flow .ukst-hero-page .ukst-hero-page__title { color: var(--ukst-accent) !important; }
:where(body.ukst.ukst-flow) .ukst-d-pagehead .ukst-hero-page__title,
:where(body.ukst.ukst-flow) .ukst-d-pagehead h1 { color: var(--ukst-accent) ; }
body.ukst.ukst-flow .ukst-hero-page .ukst-eyebrow { color: rgba(255, 255, 255, .78); }
:where(body.ukst.ukst-flow) .ukst-d-pagehead .ukst-eyebrow { color: rgba(255, 255, 255, .78); }
body.ukst.ukst-flow .ukst-d-pagehead .ukst-eyebrow::before,
body.ukst.ukst-flow .ukst-hero-page .ukst-eyebrow::before { background: var(--ukst-accent); }

/* La sección del carrito/pago empieza pegada a la franja */
body.ukst.ukst-flow .et_pb_section.ukst-d-woo { --ukst-d-pt: 0px; --ukst-d-pb: clamp(28px, 4vw, 56px); }

.ukst-flow-top {
	position: relative;
	margin-top: -2px; /* sin costura con la cabecera (medios píxeles) */
	padding: calc(clamp(28px, 3vw, 44px) + 2px) 0 calc(var(--ukst-flow-overlap) + clamp(28px, 3vw, 40px));
	background: var(--ukst-flow-dark);
	/* A todo el ancho sin provocar scroll lateral */
	box-shadow: 0 0 0 100vmax var(--ukst-flow-dark);
	clip-path: inset(0 -100vmax);
	color: #fff;
}
.ukst-flow-top + * { position: relative; z-index: 1; margin-top: calc(var(--ukst-flow-overlap) * -1); }

/* --------------------------------------------------------------------------
   Pasos
   ----------------------------------------------------------------------- */
.ukst-steps { --ukst-dot: 56px; --ukst-dot-current: 76px; }
.ukst-steps ol {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Pista y relleno: de la mitad del primer paso a la mitad del último */
.ukst-steps ol::before,
.ukst-steps ol::after {
	content: "";
	position: absolute;
	top: calc(var(--ukst-dot-current) / 2 - 1px);
	left: 12.5%;
	height: 2px;
	border-radius: 2px;
}
.ukst-steps ol::before { right: 12.5%; background: rgba(255, 255, 255, .14); }
.ukst-steps ol::after {
	width: calc(75% * var(--ukst-steps-fill) / 100);
	background: var(--ukst-accent);
	transform-origin: left;
	animation: ukst-steps-fill 1.1s var(--ukst-ease) both .15s;
}
@keyframes ukst-steps-fill { from { transform: scaleX(0); } }

.ukst-steps__item { position: relative; z-index: 1; text-align: center; }
.ukst-steps__item > a,
.ukst-steps__item > span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	color: rgba(255, 255, 255, .45);
	text-decoration: none;
}
.ukst-steps__dot {
	display: grid;
	place-items: center;
	width: var(--ukst-dot);
	height: var(--ukst-dot);
	margin-top: calc((var(--ukst-dot-current) - var(--ukst-dot)) / 2);
	border-radius: 50%;
	background: #2c3052;
	background: color-mix(in srgb, var(--ukst-flow-dark) 82%, #fff);
	color: rgba(255, 255, 255, .5);
	transition: transform .35s var(--ukst-ease), background-color .35s;
}
.ukst-steps__dot svg { width: 22px; height: 22px; }
.ukst-steps__label { font-size: 14px; font-weight: 600; line-height: 1.3; }

.ukst-steps__item.is-done .ukst-steps__dot { background: var(--ukst-accent); color: var(--ukst-accent-ink); }
.ukst-steps__item.is-done > * { color: rgba(255, 255, 255, .8); }
.ukst-steps__item.is-done a:hover .ukst-steps__dot { transform: scale(1.08); }
.ukst-steps__item.is-done a:hover .ukst-steps__label { color: #fff; }
.ukst-steps__item.is-current > * { color: #fff; }
.ukst-steps__item.is-current .ukst-steps__dot {
	width: var(--ukst-dot-current);
	height: var(--ukst-dot-current);
	margin-top: 0;
	background: var(--ukst-accent);
	color: var(--ukst-accent-ink);
	box-shadow: 0 0 0 8px color-mix(in srgb, var(--ukst-accent) 22%, transparent), 0 18px 40px -12px var(--ukst-accent);
	animation: ukst-steps-pop .7s var(--ukst-ease) both .35s;
}
.ukst-steps__item.is-current .ukst-steps__dot svg { width: 32px; height: 32px; }
.ukst-steps__item.is-current .ukst-steps__label { font-size: 16px; font-weight: 700; }
@keyframes ukst-steps-pop { from { transform: scale(.6); opacity: .4; } }

/* --------------------------------------------------------------------------
   Tarjetas comunes
   ----------------------------------------------------------------------- */
body.ukst.ukst-flow .woocommerce-notices-wrapper:empty { display: none; }
body.ukst.ukst-flow :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):not(.cart-empty) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 20px !important;
	padding: 18px var(--ukst-flow-pad) !important;
	border: 0 !important;
	border-radius: var(--ukst-flow-radius) !important;
	background: var(--ukst-surface) !important;
	box-shadow: var(--ukst-shadow);
	color: var(--ukst-ink) !important;
	font-size: 15px;
}
body.ukst.ukst-flow :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { display: none !important; }
body.ukst.ukst-flow .woocommerce-notices-wrapper :focus { outline: 0; }
body.ukst.ukst-flow :is(.woocommerce-message, .woocommerce-info) .button { order: 2; margin: 0 !important; }
body.ukst.ukst-flow .woocommerce-error { border-left: 4px solid var(--ukst-pop-1) !important; flex-direction: column; align-items: flex-start; }
body.ukst.ukst-flow .woocommerce-error li { margin: 0; }

body.ukst.ukst-flow :is(form.woocommerce-cart-form, .cart_totals, #customer_details, #order_review_heading, #order_review, .woocommerce-order > section, .woocommerce-bacs-bank-details, .ukst-thanks-card) {
	background: var(--ukst-surface);
}

/* ==========================================================================
   CARRITO
   ========================================================================== */
body.ukst.ukst-flow--cart:not(body.ukst.ukst-flow--empty) .ukst-flow-top + .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	gap: 28px;
	align-items: start;
}
body.ukst.ukst-flow--cart .woocommerce > :is(.woocommerce-notices-wrapper, .cross-sells, .ukst-ship-bar) { grid-column: 1 / -1; }
body.ukst.ukst-flow--cart .woocommerce > .woocommerce-notices-wrapper > :last-child { margin-bottom: 0 !important; }

/* Productos */
body.ukst.ukst-flow form.woocommerce-cart-form {
	padding: var(--ukst-flow-pad);
	border-radius: var(--ukst-flow-radius);
	box-shadow: var(--ukst-shadow);
}
.ukst-cart-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.ukst .ukst-cart-head__title { margin: 0; font-size: 22px !important; text-transform: none; }
.ukst-cart-head__count { font-size: 13px; color: var(--ukst-muted); }
body.ukst.ukst-flow form.woocommerce-cart-form .ukst-ship-bar { margin: 6px 0 14px; }

body.ukst.ukst-flow table.shop_table.cart { margin: 0 !important; border: 0 !important; border-collapse: collapse; }
body.ukst.ukst-flow table.shop_table.cart thead th {
	padding: 12px 10px !important;
	border-bottom: 1px solid var(--ukst-line) !important;
	background: none;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: var(--ukst-tracking-wide);
	text-transform: uppercase;
	color: var(--ukst-muted);
}
body.ukst.ukst-flow table.shop_table.cart td { padding: 18px 10px !important; border-top: 0 !important; border-bottom: 1px solid var(--ukst-line) !important; vertical-align: middle; }
body.ukst.ukst-flow table.shop_table.cart tr.cart_item:last-of-type td { border-bottom-color: transparent !important; }
body.ukst.ukst-flow table.cart td.product-thumbnail { width: 88px; }
body.ukst.ukst-flow table.cart td.product-thumbnail img { display: block; width: 76px !important; height: auto; border-radius: 14px; }
body.ukst.ukst-flow table.shop_table td.product-name { font-family: var(--ukst-font-body); font-size: 16px; font-weight: 600; text-transform: none; line-height: 1.35; }
body.ukst.ukst-flow table.shop_table td.product-name a { font-family: inherit; font-size: inherit; text-transform: none; color: var(--ukst-ink); }
body.ukst.ukst-flow table.shop_table td.product-name a:hover { color: var(--ukst-accent); }
body.ukst.ukst-flow table.cart td.product-price { color: var(--ukst-muted); white-space: nowrap; }
body.ukst.ukst-flow table.cart td.product-subtotal { font-weight: 700; white-space: nowrap; }
body.ukst.ukst-flow table.cart td.product-remove { width: 44px; }
body.ukst.ukst-flow table.cart td.product-remove a.remove {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 50%;
	background: var(--ukst-media);
	color: var(--ukst-muted) !important;
	font-size: 18px;
	line-height: 1;
}
body.ukst.ukst-flow table.cart td.product-remove a.remove:hover { background: var(--ukst-pop-1); color: #fff !important; }

/* Cupón y actualizar */
body.ukst.ukst-flow table.cart td.actions { padding: 22px 0 0 !important; border: 0 !important; }
body.ukst.ukst-flow table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 10px; }
body.ukst.ukst-flow table.cart td.actions .coupon .input-text { width: 220px !important; min-height: 50px; margin: 0 !important; }
body.ukst.ukst-flow table.cart td.actions .coupon .button { min-height: 50px; }
body.ukst.ukst-flow table.cart td.actions button[name="update_cart"] {
	min-height: 50px;
	border: 1px solid var(--ukst-line) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--ukst-ink) !important;
}
body.ukst.ukst-flow table.cart td.actions button[name="update_cart"]:not(:disabled):hover { border-color: var(--ukst-accent) !important; color: var(--ukst-accent) !important; }
.ukst-cart-back { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; font-size: 14px; font-weight: 600; color: var(--ukst-ink); }
.ukst-cart-back:hover { color: var(--ukst-accent); }
.ukst-cart-back span { transition: transform .3s var(--ukst-ease); }
.ukst-cart-back:hover span { transform: translateX(-4px); }

/* Totales */
body.ukst.ukst-flow .cart-collaterals { position: sticky; top: var(--ukst-flow-sticky); width: auto !important; }
body.ukst.ukst-flow .cart-collaterals .cart_totals {
	float: none !important;
	width: 100% !important;
	padding: var(--ukst-flow-pad) !important;
	border-radius: var(--ukst-flow-radius);
	box-shadow: var(--ukst-shadow);
}
body.ukst.ukst-flow .woocommerce .cart_totals h2 { margin: 0 0 10px; font-size: 22px !important; text-transform: none; }
body.ukst.ukst-flow .cart_totals table.shop_table { margin: 0 !important; border: 0 !important; }
body.ukst.ukst-flow .cart_totals table.shop_table :is(th, td) { padding: 14px 0 !important; border-top: 0 !important; border-bottom: 1px solid var(--ukst-line) !important; background: none !important; }
body.ukst.ukst-flow .cart_totals table.shop_table th { width: auto; font-size: 11px; font-weight: 700; letter-spacing: var(--ukst-tracking-wide); text-transform: uppercase; color: var(--ukst-muted); vertical-align: top; }
body.ukst.ukst-flow .cart_totals table.shop_table td { text-align: right; }
body.ukst.ukst-flow .cart_totals .order-total :is(th, td) { border-bottom: 0 !important; padding-top: 18px !important; font-size: 11px; }
body.ukst.ukst-flow .cart_totals .order-total th { color: var(--ukst-ink); }
body.ukst.ukst-flow .cart_totals .order-total td strong .amount { font-size: 26px; font-weight: 800; color: var(--ukst-ink); }
body.ukst.ukst-flow .cart_totals .order-total small,
body.ukst.ukst-flow .cart_totals .includes_tax { display: block; font-size: 12px; font-weight: 400; color: var(--ukst-muted); }
body.ukst.ukst-flow .cart_totals .woocommerce-shipping-calculator,
body.ukst.ukst-flow .cart_totals .woocommerce-shipping-destination { font-size: 13px; color: var(--ukst-muted); }
body.ukst.ukst-flow .wc-proceed-to-checkout { padding: 8px 0 0 !important; }
body.ukst.ukst-flow .woocommerce .wc-proceed-to-checkout .checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 58px;
	margin: 0 !important;
	border-color: var(--ukst-alt) !important;
	background: var(--ukst-alt) !important;
	box-shadow: 0 16px 34px -14px var(--ukst-alt) !important;
	color: #fff !important;
	font-size: 15px !important;
}
body.ukst.ukst-flow .woocommerce .wc-proceed-to-checkout .checkout-button:hover { filter: brightness(1.06); transform: translateY(-2px); }

.ukst-secure-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; padding: 0; font-size: 12px; color: var(--ukst-muted); }
.ukst-secure-note svg { width: 16px; height: 16px; color: var(--ukst-alt); }

/* Productos sugeridos */
body.ukst.ukst-flow .cross-sells { margin-top: clamp(28px, 4vw, 56px); }
body.ukst.ukst-flow .cross-sells > h2 { margin-bottom: 24px; font-size: var(--ukst-fs-h3) !important; text-transform: none; }

/* --------------------------------------------------------------------------
   Carrito vacío
   ----------------------------------------------------------------------- */
body.ukst.ukst-flow--empty .ukst-flow-top + .woocommerce {
	max-width: 640px;
	margin-inline: auto;
	padding: clamp(32px, 5vw, 56px) var(--ukst-flow-pad);
	border-radius: var(--ukst-flow-radius);
	background: var(--ukst-surface);
	box-shadow: var(--ukst-shadow);
	text-align: center;
}
.ukst-empty-cart__icon {
	display: grid;
	place-items: center;
	width: 88px;
	height: 88px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ukst-accent) 12%, transparent);
	color: var(--ukst-accent);
}
.ukst-empty-cart__icon svg { width: 40px; height: 40px; }
body.ukst.ukst-flow--empty .woocommerce .cart-empty.woocommerce-info {
	display: block;
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-family: var(--ukst-font-display);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: var(--ukst-display-weight);
	text-transform: none;
	color: var(--ukst-ink);
}
.ukst-empty-cart__text { margin: 0 0 26px; color: var(--ukst-muted); }
body.ukst.ukst-flow--empty .return-to-shop { margin: 0; }
body.ukst.ukst-flow--empty .return-to-shop .button { min-height: 54px; padding-inline: 32px !important; }

/* ==========================================================================
   FINALIZAR COMPRA
   ========================================================================== */
body.ukst.ukst-flow--checkout .woocommerce > :is(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) .woocommerce-info { justify-content: flex-start; }
body.ukst.ukst-flow--checkout .woocommerce-info .showcoupon,
body.ukst.ukst-flow--checkout .woocommerce-info .showlogin { font-weight: 700; color: var(--ukst-accent); }
body.ukst.ukst-flow :is(form.checkout_coupon, form.woocommerce-form-login) {
	margin: 0 0 20px !important;
	padding: var(--ukst-flow-pad) !important;
	border: 0 !important;
	border-radius: var(--ukst-flow-radius) !important;
	background: var(--ukst-surface);
	box-shadow: var(--ukst-shadow);
}
body.ukst.ukst-flow form.checkout_coupon { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
body.ukst.ukst-flow form.checkout_coupon > p:first-child { flex: 1 0 100%; margin: 0; color: var(--ukst-muted); }
body.ukst.ukst-flow form.checkout_coupon .form-row { float: none !important; width: auto !important; margin: 0 !important; }
body.ukst.ukst-flow form.checkout_coupon .form-row-first { flex: 1 1 220px; }
body.ukst.ukst-flow form.checkout_coupon .clear { display: none; }

body.ukst.ukst-flow form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr) minmax(0, 1fr);
	grid-template-areas:
		"notice  notice  notice"
		"details heading pay"
		"details review  pay";
	grid-template-rows: auto auto 1fr;
	column-gap: 28px;
	align-items: start;
}
body.ukst.ukst-flow form.checkout > .woocommerce-NoticeGroup { grid-area: notice; }
body.ukst.ukst-flow form.checkout > #customer_details { grid-area: details; }
body.ukst.ukst-flow form.checkout > #order_review_heading { grid-area: heading; }
body.ukst.ukst-flow form.checkout > #order_review { grid-area: review; }
body.ukst.ukst-flow form.checkout > .ukst-pay-card { grid-area: pay; }

/* Datos */
body.ukst.ukst-flow #customer_details {
	margin: 0 !important;
	padding: var(--ukst-flow-pad);
	border-radius: var(--ukst-flow-radius);
	box-shadow: var(--ukst-shadow);
}
body.ukst.ukst-flow #customer_details :is(.col-1, .col-2) { float: none !important; width: 100% !important; max-width: none; }
body.ukst.ukst-flow #customer_details .col-2:not(:empty) { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ukst-line); }
body.ukst.ukst-flow #customer_details h3,
body.ukst.ukst-flow #order_review_heading,
body.ukst.ukst-flow .woocommerce-checkout h3.ukst-pay-card__title { margin: 0 0 18px !important; font-size: 22px !important; line-height: 1.2; text-transform: none; }
body.ukst.ukst-flow #customer_details h3,
body.ukst.ukst-flow #order_review_heading { color: var(--ukst-accent); }
body.ukst.ukst-flow #customer_details .form-row { margin: 0 0 14px !important; }
body.ukst.ukst-flow #customer_details .form-row label,
body.ukst.ukst-flow .woocommerce-additional-fields label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: var(--ukst-tracking-wide);
	text-transform: uppercase;
	color: var(--ukst-muted);
}
body.ukst.ukst-flow #customer_details .form-row label.checkbox,
body.ukst.ukst-flow #customer_details #ship-to-different-address label { font-size: 13px; letter-spacing: 0; text-transform: none; color: var(--ukst-ink); }
body.ukst.ukst-flow #customer_details #ship-to-different-address { font-size: 15px !important; color: var(--ukst-ink); }
body.ukst.ukst-flow #customer_details :is(input.input-text, select, textarea, .select2-selection) { border-radius: 12px !important; }

/* Tu pedido: título + tabla forman una sola tarjeta */
body.ukst.ukst-flow #order_review_heading {
	margin-bottom: 0 !important;
	padding: var(--ukst-flow-pad) var(--ukst-flow-pad) 14px;
	border-radius: var(--ukst-flow-radius) var(--ukst-flow-radius) 0 0;
	box-shadow: var(--ukst-shadow);
	clip-path: inset(-60px -60px 0 -60px);
}
body.ukst.ukst-flow #order_review {
	padding: 0 var(--ukst-flow-pad) var(--ukst-flow-pad);
	border-radius: 0 0 var(--ukst-flow-radius) var(--ukst-flow-radius);
	box-shadow: var(--ukst-shadow);
	clip-path: inset(0 -60px -60px -60px);
}
body.ukst.ukst-flow #order_review table.shop_table { margin: 0 !important; border: 0 !important; font-size: 14px; }
body.ukst.ukst-flow #order_review table.shop_table :is(th, td) { padding: 12px 0 !important; border-top: 0 !important; border-bottom: 1px solid var(--ukst-line) !important; background: none !important; }
body.ukst.ukst-flow #order_review table.shop_table thead th { font-size: 11px; letter-spacing: var(--ukst-tracking-wide); text-transform: uppercase; color: var(--ukst-muted); }
body.ukst.ukst-flow #order_review table.shop_table :is(td, th):last-child { text-align: right; }
body.ukst.ukst-flow #order_review td.product-name { font-weight: 500; }
body.ukst.ukst-flow #order_review td.product-name .product-quantity { color: var(--ukst-muted); font-weight: 600; }
body.ukst.ukst-flow #order_review tfoot th { font-weight: 600; }
body.ukst.ukst-flow #order_review tfoot .order-total :is(th, td) { border-bottom: 0 !important; padding-top: 16px !important; }
body.ukst.ukst-flow #order_review tfoot .order-total .amount { font-size: 22px; font-weight: 800; color: var(--ukst-ink); }
body.ukst.ukst-flow #order_review tfoot .order-total small { display: block; font-size: 12px; font-weight: 400; color: var(--ukst-muted); }
body.ukst.ukst-flow #order_review #shipping_method { margin: 0; padding: 0; list-style: none; text-align: left; }

/* Pago: tarjeta oscura */
.ukst-pay-card {
	position: sticky;
	top: var(--ukst-flow-sticky);
	padding: var(--ukst-flow-pad);
	border-radius: var(--ukst-flow-radius);
	background: var(--ukst-flow-dark);
	box-shadow: 0 30px 60px -24px color-mix(in srgb, var(--ukst-flow-dark) 70%, transparent);
	color: rgba(255, 255, 255, .82);
}
.ukst .ukst-pay-card__title { color: #fff; }
body.ukst.ukst-flow .ukst-pay-card #payment { margin: 0; border-radius: 0; background: none !important; }
body.ukst.ukst-flow .ukst-pay-card #payment ul.payment_methods { margin: 0 0 18px; padding: 0 !important; border: 0 !important; list-style: none; }
body.ukst.ukst-flow .ukst-pay-card #payment ul.payment_methods li {
	margin: 0 0 10px;
	padding: 14px 16px !important;
	border: 1px solid rgba(255, 255, 255, .14) !important;
	border-radius: 14px;
	background: rgba(255, 255, 255, .04);
	color: #fff;
	transition: border-color .25s, background-color .25s;
}
body.ukst.ukst-flow .ukst-pay-card #payment ul.payment_methods li:has(> input:checked) { border-color: var(--ukst-accent) !important; background: rgba(255, 255, 255, .07); }
body.ukst.ukst-flow .ukst-pay-card #payment ul.payment_methods li > input { accent-color: var(--ukst-accent); margin: 0 8px 0 0; vertical-align: middle; }
body.ukst.ukst-flow .ukst-pay-card #payment ul.payment_methods li > label {
	display: inline;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: #fff;
	cursor: pointer;
}
body.ukst.ukst-flow .ukst-pay-card #payment ul.payment_methods li img { max-height: 22px; margin: 0 0 0 6px; vertical-align: middle; }
body.ukst.ukst-flow .ukst-pay-card #payment div.payment_box {
	margin: 12px 0 2px !important;
	padding: 14px 16px !important;
	border-radius: 12px;
	background: var(--ukst-surface) !important;
	color: var(--ukst-muted) !important;
	font-size: 13px;
}
body.ukst.ukst-flow .ukst-pay-card #payment div.payment_box::before { display: none; }
body.ukst.ukst-flow .ukst-pay-card #payment div.payment_box :is(p, fieldset) { margin: 0; }
body.ukst.ukst-flow .ukst-pay-card #payment .woocommerce-info { box-shadow: none; background: rgba(255, 255, 255, .06) !important; color: #fff !important; }
body.ukst.ukst-flow .ukst-pay-card #payment div.form-row.place-order { margin: 0 !important; padding: 0 !important; }
body.ukst.ukst-flow .ukst-pay-card .woocommerce-terms-and-conditions-wrapper,
body.ukst.ukst-flow .ukst-pay-card .woocommerce-privacy-policy-text { margin-bottom: 16px; font-size: 12px; line-height: 1.55; color: rgba(255, 255, 255, .62); }
body.ukst.ukst-flow .ukst-pay-card .woocommerce-terms-and-conditions-wrapper a,
body.ukst.ukst-flow .ukst-pay-card .woocommerce-privacy-policy-text a { color: #fff; text-decoration: underline; }
body.ukst.ukst-flow .ukst-pay-card .woocommerce-terms-and-conditions-wrapper label { color: #fff; font-size: 13px; letter-spacing: 0; text-transform: none; }
body.ukst.ukst-flow .ukst-pay-card #place_order {
	float: none;
	width: 100%;
	min-height: 58px;
	margin: 0;
	border-color: var(--ukst-accent) !important;
	background: var(--ukst-accent) !important;
	box-shadow: 0 16px 34px -14px var(--ukst-accent) !important;
	color: var(--ukst-accent-ink) !important;
	font-size: 15px !important;
}
body.ukst.ukst-flow .ukst-pay-card #place_order:hover { filter: brightness(1.06); transform: translateY(-2px); }
.ukst-pay-card .ukst-secure-note { color: rgba(255, 255, 255, .6); }

/* Mientras WooCommerce recalcula */
body.ukst.ukst-flow .blockUI.blockOverlay { border-radius: var(--ukst-flow-radius); }

/* ==========================================================================
   PEDIDO RECIBIDO
   ========================================================================== */
body.ukst.ukst-flow--done .woocommerce-order {
	display: grid;
	gap: 24px;
	max-width: 920px;
	margin-inline: auto;
}
body.ukst.ukst-flow--done .woocommerce-order > p.woocommerce-thankyou-order-received,
body.ukst.ukst-flow--done .ukst-thanks__icon + p {
	margin: 0;
	padding: 0 var(--ukst-flow-pad) var(--ukst-flow-pad) !important;
	border-radius: 0 0 var(--ukst-flow-radius) var(--ukst-flow-radius) !important;
	background: var(--ukst-surface) !important;
	box-shadow: var(--ukst-shadow);
	clip-path: inset(0 -60px -60px -60px);
	font-family: var(--ukst-font-display);
	font-size: clamp(22px, 2.6vw, 30px) !important;
	font-weight: var(--ukst-display-weight);
	line-height: 1.25;
	text-align: center;
	text-transform: none;
	color: var(--ukst-ink) !important;
}
.ukst-thanks__icon {
	display: grid;
	place-items: center;
	margin-bottom: -24px;
	padding: var(--ukst-flow-pad) 0 18px;
	border-radius: var(--ukst-flow-radius) var(--ukst-flow-radius) 0 0;
	background: var(--ukst-surface);
	box-shadow: var(--ukst-shadow);
	clip-path: inset(-60px -60px 0 -60px);
}
.ukst-thanks__icon svg {
	box-sizing: content-box;
	width: 40px;
	height: 40px;
	padding: 22px;
	border-radius: 50%;
	background: var(--ukst-alt);
	color: #fff;
	box-shadow: 0 0 0 10px color-mix(in srgb, var(--ukst-alt) 18%, transparent);
	animation: ukst-steps-pop .7s var(--ukst-ease) both .2s;
}
body.ukst.ukst-flow--done ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 12px;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	list-style: none;
}
body.ukst.ukst-flow--done ul.woocommerce-order-overview::before,
body.ukst.ukst-flow--done ul.woocommerce-order-overview::after { display: none; }
body.ukst.ukst-flow--done ul.woocommerce-order-overview li {
	float: none;
	margin: 0 !important;
	padding: 16px 18px !important;
	border: 0 !important;
	border-radius: var(--ukst-radius);
	background: var(--ukst-surface);
	box-shadow: var(--ukst-shadow-sm);
	font-size: 11px;
	letter-spacing: var(--ukst-tracking-wide);
	text-transform: uppercase;
	color: var(--ukst-muted);
}
body.ukst.ukst-flow--done ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--ukst-ink); word-break: break-word; }
body.ukst.ukst-flow--done .woocommerce-order > section,
body.ukst.ukst-flow--done .woocommerce-bacs-bank-details {
	margin: 0 !important;
	padding: var(--ukst-flow-pad);
	border-radius: var(--ukst-flow-radius);
	box-shadow: var(--ukst-shadow);
}
body.ukst.ukst-flow--done .woocommerce-order > p:not(.woocommerce-thankyou-order-received) { margin: 0; text-align: center; color: var(--ukst-muted); }
body.ukst.ukst-flow--done .woocommerce-order h2 { margin: 0 0 16px; font-size: 22px !important; text-transform: none; }
body.ukst.ukst-flow--done .woocommerce-order table.shop_table { margin: 0 !important; border: 0 !important; font-size: 14px; }
body.ukst.ukst-flow--done .woocommerce-order table.shop_table :is(th, td) { padding: 12px 0 !important; border-top: 0 !important; border-bottom: 1px solid var(--ukst-line) !important; background: none !important; }
body.ukst.ukst-flow--done .woocommerce-order table.shop_table :is(th, td):last-child { text-align: right; }
body.ukst.ukst-flow--done .woocommerce-order table.shop_table tfoot tr:last-child :is(th, td) { border-bottom: 0 !important; }
body.ukst.ukst-flow--done .woocommerce-customer-details .col2-set { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
body.ukst.ukst-flow--done .woocommerce-customer-details .col2-set :is(.col-1, .col-2) { float: none; width: auto; }
body.ukst.ukst-flow--done .woocommerce-customer-details address { padding: 16px 18px; border: 0 !important; border-radius: var(--ukst-radius); background: var(--ukst-media); font-style: normal; line-height: 1.7; }
body.ukst.ukst-flow--done ul.wc-bacs-bank-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
body.ukst.ukst-flow--done ul.wc-bacs-bank-details li { margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--ukst-media); font-size: 11px; text-transform: uppercase; letter-spacing: var(--ukst-tracking-wide); color: var(--ukst-muted); }
body.ukst.ukst-flow--done ul.wc-bacs-bank-details li strong { display: block; margin-top: 4px; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ukst-ink); }

/* ==========================================================================
   Garantías (módulos Propaganda de Divi debajo del carrito y del pago)
   ========================================================================== */
.ukst .et_pb_section.ukst-d-trust { --ukst-d-pt: clamp(28px, 4vw, 56px); --ukst-d-pb: clamp(40px, 5vw, 72px); }
.ukst .ukst-d-trust .ukst-d-row--cols { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px) !important; }
:is(html, #ukst-guard) .ukst .ukst-d-trust .et_pb_blurb { margin-inline: auto; }
:where(.ukst .ukst-d-trust) .et_pb_blurb { text-align: center ; }
.ukst .ukst-d-trust .et_pb_blurb :is(.et_pb_blurb_content, .et_pb_blurb_container, .et_pb_module_header, .et_pb_blurb_description) { margin-inline: auto; }
:where(.ukst .ukst-d-trust) .et_pb_blurb :is(.et_pb_blurb_content, .et_pb_blurb_container, .et_pb_module_header, .et_pb_blurb_description) { text-align: center ; }
.ukst .ukst-d-trust .et_pb_blurb .et_pb_main_blurb_image { margin-bottom: 14px; }
:where(.ukst .ukst-d-trust) .et_pb_blurb .et-pb-icon { font-size: 26px ; }
.ukst .ukst-d-trust .et_pb_module_header { margin-bottom: 4px; }
:where(.ukst) .ukst-d-trust .et_pb_module_header { font-size: 16px ; }
:where(.ukst) .ukst-d-trust .et_pb_blurb_description { font-size: 15px; color: var(--ukst-muted); }
.ukst .ukst-d-trust .et_pb_column:nth-child(2) .et_pb_blurb { --ukst-tone: var(--ukst-accent); }
.ukst .ukst-d-trust .et_pb_column:nth-child(3) .et_pb_blurb { --ukst-tone: var(--ukst-alt); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	body.ukst.ukst-flow--cart:not(body.ukst.ukst-flow--empty) .ukst-flow-top + .woocommerce { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 20px; }
	body.ukst.ukst-flow form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas:
			"notice  notice"
			"details heading"
			"details review"
			"details pay";
		grid-template-rows: auto auto auto 1fr;
		column-gap: 20px;
	}
	body.ukst.ukst-flow form.checkout > .ukst-pay-card { margin-top: 20px; }
}

@media (max-width: 860px) {
	body.ukst.ukst-flow--cart:not(body.ukst.ukst-flow--empty) .ukst-flow-top + .woocommerce { grid-template-columns: minmax(0, 1fr); }
	body.ukst.ukst-flow .cart-collaterals { position: static; }
	body.ukst.ukst-flow form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "notice" "details" "heading" "review" "pay";
		grid-template-rows: none;
	}
	body.ukst.ukst-flow form.checkout > #order_review_heading { margin-top: 20px !important; }
	.ukst-pay-card { position: static; }
}

@media (max-width: 767px) {
	.ukst .ukst-d-trust .ukst-d-row--cols { grid-template-columns: minmax(0, 1fr); row-gap: 28px !important; }
	.ukst-steps { --ukst-dot: 40px; --ukst-dot-current: 54px; }
	.ukst-steps__dot svg { width: 18px; height: 18px; }
	.ukst-steps__item.is-current .ukst-steps__dot svg { width: 24px; height: 24px; }
	.ukst-steps__item > a,
	.ukst-steps__item > span { gap: 10px; }
	.ukst-steps__label { font-size: 11px; }
	.ukst-steps__item.is-current .ukst-steps__label { font-size: 12px; }
	.ukst-steps__item.is-current .ukst-steps__dot { box-shadow: 0 0 0 5px color-mix(in srgb, var(--ukst-accent) 22%, transparent), 0 12px 26px -10px var(--ukst-accent); }

	/* Productos del carrito como fichas: foto · nombre/precio · quitar / cantidad · subtotal */
	body.ukst.ukst-flow table.shop_table.cart thead { display: none; }
	body.ukst.ukst-flow table.shop_table.cart,
	body.ukst.ukst-flow table.shop_table.cart tbody { display: block; }
	body.ukst.ukst-flow table.shop_table.cart tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name  remove"
			"thumb price price"
			"thumb qty   subtotal";
		column-gap: 14px;
		row-gap: 6px;
		padding: 16px 0;
		border-bottom: 1px solid var(--ukst-line);
	}
	body.ukst.ukst-flow table.shop_table.cart tr.cart_item:last-of-type { border-bottom: 0; }
	body.ukst.ukst-flow table.shop_table.cart tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; }
	body.ukst.ukst-flow table.shop_table.cart tr.cart_item td::before { display: none !important; }
	body.ukst.ukst-flow table.cart td.product-thumbnail { grid-area: thumb; display: block !important; width: auto; }
	body.ukst.ukst-flow table.cart td.product-thumbnail img { width: 72px !important; }
	body.ukst.ukst-flow table.cart td.product-name { grid-area: name; font-size: 15px; }
	body.ukst.ukst-flow table.cart td.product-remove { grid-area: remove; width: auto; }
	body.ukst.ukst-flow table.cart td.product-remove a.remove { width: 28px; height: 28px; font-size: 16px; }
	body.ukst.ukst-flow table.cart td.product-price { grid-area: price; font-size: 13px; }
	body.ukst.ukst-flow table.cart td.product-quantity { grid-area: qty; }
	body.ukst.ukst-flow table.cart td.product-subtotal { grid-area: subtotal; align-self: center; text-align: right !important; }
	body.ukst.ukst-flow table.cart tr:not(.cart_item) { display: block; }
	body.ukst.ukst-flow table.cart td.actions { display: block; padding-top: 16px !important; }
	body.ukst.ukst-flow table.cart td.actions::before { display: none !important; }
	body.ukst.ukst-flow table.cart td.actions .coupon { flex-direction: row; float: none; width: 100%; margin-bottom: 10px; }
	body.ukst.ukst-flow table.cart td.actions .coupon .input-text { flex: 1 1 140px; width: auto !important; }
	body.ukst.ukst-flow table.cart td.actions .coupon .button { flex: 0 0 auto; white-space: nowrap; }
	body.ukst.ukst-flow table.cart td.actions button[name="update_cart"] { width: 100%; }
	.ukst-cart-back { margin-top: 16px; }

	body.ukst.ukst-flow :is(.woocommerce-message, .woocommerce-info):not(.cart-empty) { font-size: 14px; }
	body.ukst.ukst-flow :is(.woocommerce-message, .woocommerce-info) .button { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
	.ukst-steps ol::after,
	.ukst-steps__item.is-current .ukst-steps__dot,
	.ukst-thanks__icon svg { animation: none; }
}
