/**
 * BP Cart / Checkout — CRO presentation layer (tokens + surfaces).
 * Logic stays in PHP/JS; this file is visual only.
 */

/* -------------------------------------------------------------------------
 * 1. Tokens
 * ------------------------------------------------------------------------- */
.woocommerce-cart,
.woocommerce-checkout {
	--bp-cc-space-1: 0.25rem;
	--bp-cc-space-2: 0.5rem;
	--bp-cc-space-3: 0.75rem;
	--bp-cc-space-4: 1rem;
	--bp-cc-touch: 48px;
	--bp-cc-input-fs: 16px;
	--bp-cc-radius: 4px;
	--bp-cc-border: color-mix(in srgb, currentColor 22%, transparent);
	--bp-cc-qty: #e85d04;
	--bp-cc-qty-hover: #d00000;
	--bp-cc-danger: #b42318;
	--bp-cc-trust: #0f6b4c;
	--bp-cc-info-bg: #f0f6fc;
	--bp-cc-info-border: #2271b1;
	--bp-cc-focus: var(--theme-palette-color-1, #2271b1);
	--bp-cc-focus-ring: 0 0 0 3px color-mix(in srgb, var(--bp-cc-focus) 35%, transparent);
}

/* -------------------------------------------------------------------------
 * 2. Shared: inputs, CTAs, focus
 * ------------------------------------------------------------------------- */
.woocommerce-cart .input-text,
.woocommerce-checkout .input-text,
.woocommerce-cart input.qty,
.woocommerce-checkout input.qty,
.woocommerce-cart .bp-sui-postcode,
.woocommerce-checkout .woocommerce-input-wrapper input.input-text,
.woocommerce-checkout .woocommerce-input-wrapper select {
	font-size: var(--bp-cc-input-fs);
	min-height: var(--bp-cc-touch);
	line-height: 1.3;
}

.woocommerce-cart .input-text:focus-visible,
.woocommerce-checkout .input-text:focus-visible,
.woocommerce-cart input.qty:focus-visible,
.woocommerce-checkout input.qty:focus-visible,
.woocommerce-cart .bp-sui-postcode:focus-visible,
.woocommerce-checkout .woocommerce-input-wrapper input.input-text:focus-visible,
.woocommerce-checkout .woocommerce-input-wrapper select:focus-visible,
.woocommerce-cart .button:focus-visible,
.woocommerce-checkout .button:focus-visible,
.woocommerce-checkout #place_order:focus-visible {
	outline: none;
	box-shadow: var(--bp-cc-focus-ring);
}

.woocommerce-cart .checkout-button,
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .bp-sui-calc-btn.button,
.woocommerce-checkout #place_order,
.woocommerce-checkout button.button.alt {
	min-height: var(--bp-cc-touch);
	padding-block: 0.75rem;
	touch-action: manipulation;
}

.woocommerce-checkout #place_order {
	width: 100%;
	font-weight: 700;
}

.woocommerce-checkout .woocommerce-invalid .input-text,
.woocommerce-checkout .woocommerce-invalid select {
	border-color: var(--bp-cc-danger);
}

/* -------------------------------------------------------------------------
 * 3. Cart: quantity contrast + icon-only remove
 * ------------------------------------------------------------------------- */

/* Blocksy qty (type-1 vertical OR type-2 horizontal ±) — local Customizer is type-2. */
.woocommerce-cart-form .quantity[data-type],
.woocommerce-cart .shop_table .quantity[data-type] {
	--quantity-initial-color: var(--bp-cc-qty);
	--quantity-hover-color: var(--bp-cc-qty-hover);
	--theme-form-field-border-width: 1px;
	min-height: 40px;
}

.woocommerce-cart-form .quantity[data-type="type-1"],
.woocommerce-cart .shop_table .quantity[data-type="type-1"] {
	--quantity-arrows-initial-color: #fff;
	--quantity-arrows-hover-color: #fff;
}

.woocommerce-cart-form .quantity[data-type="type-1"] input.qty,
.woocommerce-cart .shop_table .quantity[data-type="type-1"] input.qty {
	border-style: solid;
	border-width: 1px;
	border-inline-end-width: 0;
	font-size: var(--bp-cc-input-fs);
}

/* type-2: arrows are transparent by Blocksy default — force visible chrome + readable glyphs */
.woocommerce-cart-form .quantity[data-type="type-2"] input.qty,
.woocommerce-cart .shop_table .quantity[data-type="type-2"] input.qty {
	border-style: solid;
	border-width: 1px;
	font-size: var(--bp-cc-input-fs);
	min-height: 40px;
}

.woocommerce-cart-form .quantity[data-type="type-2"] .ct-increase,
.woocommerce-cart-form .quantity[data-type="type-2"] .ct-decrease,
.woocommerce-cart .shop_table .quantity[data-type="type-2"] .ct-increase,
.woocommerce-cart .shop_table .quantity[data-type="type-2"] .ct-decrease {
	--quantity-initial-color: transparent;
	--quantity-arrows-initial-color: var(--bp-cc-qty);
	--quantity-arrows-hover-color: var(--bp-cc-qty-hover);
	min-width: 28px;
	min-height: 28px;
	color: var(--bp-cc-qty);
}

.woocommerce-cart-form .quantity[data-type="type-2"] .ct-increase:hover,
.woocommerce-cart-form .quantity[data-type="type-2"] .ct-decrease:hover,
.woocommerce-cart .shop_table .quantity[data-type="type-2"] .ct-increase:hover,
.woocommerce-cart .shop_table .quantity[data-type="type-2"] .ct-decrease:hover {
	color: var(--bp-cc-qty-hover);
}

/* Icon-only remove — !important only where child theme forces text + auto size. */
.woocommerce-cart-form a.remove,
.woocommerce-cart-form .product-remove a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: var(--bp-cc-touch) !important;
	height: var(--bp-cc-touch) !important;
	min-width: var(--bp-cc-touch) !important;
	min-height: var(--bp-cc-touch) !important;
	padding: 0 !important;
	margin: 0;
	font-size: 0 !important;
	line-height: 0 !important;
	overflow: hidden;
	touch-action: manipulation;
}

.woocommerce-cart-form a.remove .ct-icon,
.woocommerce-cart-form .product-remove a.remove .ct-icon {
	width: 14px !important;
	height: 14px !important;
	pointer-events: none;
}

.woocommerce-cart .bp-cart-sui .bp-sui-calc {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bp-cc-space-2);
	align-items: stretch;
}

.woocommerce-cart .bp-cart-sui .bp-sui-postcode {
	flex: 1 1 120px;
	min-width: 120px;
}

.woocommerce-cart .bp-cart-sui .bp-sui-calc-btn {
	flex: 0 0 auto;
}

/* -------------------------------------------------------------------------
 * 4. Checkout: simplify chrome (no line remove; hide duplicate payment CRO)
 * ------------------------------------------------------------------------- */

/* Hide legacy checkout-remove if theme/cache still injects it. */
.woocommerce-checkout .bp-checkout-remove-wrap,
.woocommerce-checkout a.remove.bp-checkout-remove {
	display: none;
}

/* "Opciones de pago" under Total — keep on cart, hide on checkout (gateways suffice). */
.woocommerce-checkout tr.bp-pui-totals-options {
	display: none;
}

/* Theme sometimes forces shipping_address visible — keep :has toggle. */
.woocommerce-checkout .woocommerce-shipping-fields:not(:has(#ship-to-different-address-checkbox:checked)) .shipping_address {
	display: none !important;
}

.woocommerce-checkout .woocommerce-shipping-fields:has(#ship-to-different-address-checkbox:checked) .shipping_address {
	display: block !important;
}

.woocommerce-checkout .order-total th,
.woocommerce-checkout .order-total td {
	font-size: 1.125rem;
	font-weight: 700;
}

.bp-umbral-notice-falta-checkout-wrap td {
	padding: 0;
	border: 0;
}

.bp-umbral-notice-falta-checkout {
	margin: 0 0 var(--bp-cc-space-3);
	padding: 10px 12px;
	font-size: 1em;
	line-height: 1.4;
	border-radius: var(--bp-cc-radius);
	background: var(--bp-cc-info-bg);
	border-left: 4px solid var(--bp-cc-info-border);
	color: #1d2327;
}

/* -------------------------------------------------------------------------
 * 5. Mini-cart: icon-only remove (48px hit)
 * ------------------------------------------------------------------------- */
#woo-cart-panel.active .woocommerce-mini-cart-item,
.ct-panel.active .woocommerce-mini-cart-item {
	position: relative;
}

#woo-cart-panel.active .woocommerce-mini-cart-item a.remove,
.ct-panel.active .woocommerce-mini-cart-item a.remove {
	position: absolute;
	top: 8px;
	inset-inline-end: 8px;
	right: 8px;
	left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--bp-cc-touch);
	height: var(--bp-cc-touch);
	min-width: var(--bp-cc-touch);
	min-height: var(--bp-cc-touch);
	padding: 0;
	margin: 0;
	font-size: 0;
	line-height: 0;
	overflow: hidden;
	z-index: 6;
	touch-action: manipulation;
	pointer-events: auto;
}

#woo-cart-panel.active .woocommerce-mini-cart-item a.remove .ct-icon,
.ct-panel.active .woocommerce-mini-cart-item a.remove .ct-icon {
	width: 14px;
	height: 14px;
	pointer-events: none;
}

#woo-cart-panel.active .woocommerce-mini-cart__buttons a,
#woo-cart-panel.active .woocommerce-mini-cart__buttons .button,
.ct-panel.active .woocommerce-mini-cart__buttons a,
.ct-panel.active .woocommerce-mini-cart__buttons .button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--bp-cc-touch);
	width: 100%;
	touch-action: manipulation;
}

#woo-cart-panel .bp-umbral-unit-ref,
#woo-cart-panel .bp-umbral-unit-main,
#woo-cart-panel .bp-umbral-unit-tr-strike,
#woo-cart-panel .bp-umbral-line-ref,
#woo-cart-panel .bp-umbral-line-main,
#woo-cart-panel .bp-umbral-line-tr-strike,
.ct-panel .bp-umbral-unit-ref,
.ct-panel .bp-umbral-unit-main,
.ct-panel .bp-umbral-unit-tr-strike,
.ct-panel .bp-umbral-line-ref,
.ct-panel .bp-umbral-line-main,
.ct-panel .bp-umbral-line-tr-strike {
	display: none;
}

/* -------------------------------------------------------------------------
 * 6. A11y
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.woocommerce-cart *,
	.woocommerce-checkout * {
		transition-duration: 0.01ms;
	}
}
