/**
 * Personalizador full-bleed + columna derecha (zonas, variaciones, carrito).
 */

:root {
	--mp-pc-brand: var(--mp-brand, #e8281a);
	--mp-pc-brand-hover: var(--mp-brand-hover, #c2200e);
}

/*
 * Personalizador antes de productos relacionados (hook woocommerce_after_main_content, prioridad 4).
 * Legacy: si el tema aún lo imprime dentro de .product, ocupa fila completa en grid/flex.
 */
.woocommerce div.product .mp-pc-fullbleed,
.single-product div.product .mp-pc-fullbleed {
	flex: 1 0 100%;
	width: 100%;
	max-width: 100%;
}

.single-product .product .mp-pc-fullbleed {
	grid-column: 1 / -1;
}

.mp-pc-fullbleed {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
	margin-bottom: clamp(2rem, 5vw, 3.25rem);
	padding-left: max(0.5rem, env(safe-area-inset-left));
	padding-right: max(0.5rem, env(safe-area-inset-right));
	padding-top: 0.5rem;
	padding-bottom: 0.75rem;
	clear: both;
}

#mp-pc-workflow,
.mp-pc-workflow-anchor {
	scroll-margin-top: clamp(4.75rem, 11vw, 6.75rem);
}

/* Zona Maruja Crea: cajón propio, separado del producto de arriba (móvil / tablet / PC) */
#mp-pc-workflow.mp-pc-fullbleed {
	--mp-pc-crea-shell: #ffe8e3;
	--mp-pc-crea-shell-edge: rgba(232, 40, 26, 0.22);
	width: 100%;
	max-width: none;
	margin-top: clamp(1.5rem, 4vw, 3.25rem);
	margin-bottom: clamp(1.5rem, 4vw, 3.5rem);
	margin-left: 0;
	margin-right: 0;
	padding-top: clamp(1.1rem, 3vw, 2.25rem);
	padding-bottom: clamp(1.1rem, 3vw, 2rem);
	padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
	padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
	border-radius: clamp(16px, 3vw, 28px);
	background:
		radial-gradient(90% 70% at 50% 0%, rgba(232, 40, 26, 0.16), transparent 58%),
		linear-gradient(180deg, #fff0ec 0%, var(--mp-pc-crea-shell) 42%, #fff8f6 100%);
	border: 1px solid var(--mp-pc-crea-shell-edge);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.75) inset,
		0 18px 48px rgba(42, 36, 56, 0.08);
}

#mp-pc-workflow.mp-pc-fullbleed::before {
	content: "";
	display: block;
	width: min(7.5rem, 42%);
	height: 3px;
	margin: 0 auto clamp(0.85rem, 2.5vw, 1.45rem);
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, var(--mp-pc-brand, #e8281a) 20%, var(--mp-pc-brand, #e8281a) 80%, transparent);
}

/* Móvil — color más marcado */
@media (max-width: 600px) {
	#mp-pc-workflow.mp-pc-fullbleed {
		--mp-pc-crea-shell: #ffd6cd;
		--mp-pc-crea-shell-edge: rgba(232, 40, 26, 0.32);
		margin-left: 0;
		margin-right: 0;
		border-radius: 16px;
		padding-top: 1.15rem;
		padding-bottom: 1.1rem;
		padding-left: max(0.7rem, env(safe-area-inset-left, 0px));
		padding-right: max(0.7rem, env(safe-area-inset-right, 0px));
		background:
			radial-gradient(100% 80% at 50% 0%, rgba(232, 40, 26, 0.22), transparent 60%),
			linear-gradient(180deg, #ffe0d8 0%, #ffd2c6 50%, #fff1ed 100%);
		border-width: 1.5px;
		box-shadow: 0 12px 32px rgba(232, 40, 26, 0.12);
	}

	#mp-pc-workflow.mp-pc-fullbleed::before {
		width: 3.5rem;
		height: 3px;
		margin-bottom: 0.85rem;
	}

	#mp-pc-workflow .mp-pc-fullbleed-inner {
		padding-left: 0.15rem;
		padding-right: 0.15rem;
	}

	.mp-pc-crea-intro {
		padding-left: 0.35rem;
		padding-right: 0.35rem;
		margin-bottom: 0.75rem;
	}

	.mp-pc-crea-intro__title {
		font-size: clamp(1.75rem, 8.5vw, 2.15rem);
	}

	.mp-pc-crea-intro__lead {
		font-size: 0.95rem;
		line-height: 1.5;
	}

	.mp-pc-workflow--parked .mp-pc-step {
		background: #fff;
		border-color: rgba(232, 40, 26, 0.18);
	}
}

/* Tablet */
@media (min-width: 601px) and (max-width: 1024px) {
	#mp-pc-workflow.mp-pc-fullbleed {
		--mp-pc-crea-shell: #ffe4de;
		padding-top: 1.55rem;
		padding-bottom: 1.45rem;
		padding-left: max(1.1rem, env(safe-area-inset-left, 0px));
		padding-right: max(1.1rem, env(safe-area-inset-right, 0px));
		border-radius: 22px;
		max-width: none;
		width: 100%;
	}

	#mp-pc-workflow.mp-pc-fullbleed::before {
		width: 5.5rem;
		margin-bottom: 1.1rem;
	}

	.mp-pc-crea-intro {
		max-width: min(92%, 52rem);
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.mp-pc-crea-intro__title {
		font-size: clamp(2.1rem, 4.5vw, 2.65rem);
	}

	.mp-pc-crea-intro__lead {
		font-size: 1.05rem;
		max-width: min(96%, 48rem);
	}

	.mp-pc-attr-row {
		flex-wrap: nowrap;
		gap: 0.65rem;
	}

	.mp-pc-attr-field {
		flex: 1 1 0;
		min-width: 0;
	}
}

/* PC — cajón a todo el ancho; subtítulo más ancho (pocas líneas) */
@media (min-width: 1025px) {
	#mp-pc-workflow.mp-pc-fullbleed {
		width: 100%;
		max-width: none;
		margin-left: 0;
		margin-right: 0;
		padding: 2.15rem clamp(1.25rem, 3vw, 2.5rem) 1.85rem;
		border-radius: 28px;
	}

	#mp-pc-workflow.mp-pc-fullbleed::before {
		width: 7.5rem;
		margin-bottom: 1.35rem;
	}

	#mp-pc-workflow .mp-pc-fullbleed-inner {
		max-width: none;
		width: 100%;
		padding-left: 0;
		padding-right: 0;
	}

	.mp-pc-crea-intro {
		max-width: min(96%, 72rem);
		margin-bottom: 1.25rem;
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

	.mp-pc-crea-intro__title {
		font-size: 3rem;
	}

	.mp-pc-crea-intro__lead {
		font-size: 1.08rem;
		line-height: 1.5;
		max-width: min(94%, 68rem);
	}

	.mp-pc-step {
		padding: 1rem 1.25rem;
		width: 100%;
		max-width: none;
	}

	.mp-pc-attr-row {
		max-width: none;
		width: 100%;
		margin: 0;
		gap: 0.75rem;
	}
}

/* Productos relacionados: visibles también en móvil/tablet (Blocksy los oculta por defecto). */
.single-product .related.products.ct-hidden-sm,
.single-product .related.products.ct-hidden-md {
	display: block !important;
}

.mp-pc-fullbleed-inner {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
	padding: 0 clamp(0.35rem, 2vw, 1rem);
}

/* Bloques de opciones (misma familia visual que “Zonas de impresión”) */
.mp-pc-card {
	background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
	border: 1px solid #e1e5ec;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 6px 16px rgba(15, 23, 42, 0.05);
	overflow: hidden;
}

.mp-pc-card-head {
	padding: 0.55rem 0.85rem 0.6rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #4a5568;
	background: linear-gradient(180deg, #f0f2f5 0%, #e6e9ef 100%);
	border-bottom: 1px solid #d8dee8;
}

.mp-pc-card-body {
	padding: 0.7rem 0.85rem 0.8rem;
}

.mp-pc-zones-card .mp-pc-card-body {
	padding: 0.6rem 0.8rem 0.7rem;
}

/* Doble impresión + aviso de zona dentro de la tarjeta Zonas */
.mp-pc-zones-card .mp-pc-fee-hint {
	margin-top: 0.55rem;
}

.mp-pc-zones-card .mp-pc-zones-price-line {
	margin-top: 0.45rem;
	font-size: 0.88rem;
	line-height: 1.35;
	color: #1e293b;
}

.mp-pc-zones-card .mp-pc-zones-price-line--muted,
.mp-pc-zones-card .mp-pc-zones-price-line .mp-pc-zones-price-muted {
	color: #64748b;
	font-weight: 500;
}

.mp-pc-zones-card .mp-pc-zones-price-note {
	font-weight: 500;
	color: #475569;
}

.mp-pc-zones-card .mp-pc-zone-block {
	margin-top: 0.35rem;
}

.mp-pc-variations-reset {
	margin-top: 0.35rem;
	font-size: 0.82rem;
}

.mp-pc-variations-reset a.reset_variations {
	color: var(--mp-pc-brand);
	font-weight: 600;
}

/* Tarjeta color/talla: más compacta */
.mp-pc-variations-card .mp-pc-card-head {
	padding: 0.38rem 0.65rem 0.42rem;
	font-size: 0.66rem;
}

.mp-pc-variations-card .mp-pc-card-body {
	padding: 0.38rem 0.65rem 0.45rem;
}

.mp-pc-variations-card table.variations tbody {
	gap: 0.35rem !important;
}

.mp-pc-variations-card table.variations tr {
	gap: 0.2rem !important;
}

.mp-pc-tools-card .mp-pc-toolbar {
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: 0;
}

.mp-pc-hint-card .mp-pc-panel {
	border: 0;
	background: transparent;
	box-shadow: none;
	padding: 0;
}

.mp-pc-hint-card .mp-pc-hint {
	margin-bottom: 0.35rem;
}

/* CTA al final de la descripción corta (filtro WooCommerce) */
.woocommerce-product-details__short-description .mp-pc-cta-excerpt,
.entry-summary .woocommerce-product-details__short-description .mp-pc-cta-excerpt {
	margin: 1rem 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.mp-pc-cta {
	display: inline-block;
	text-align: center;
	padding: 0.75rem 1.25rem;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	color: #fff !important;
	background: var(--mp-pc-brand);
	border-radius: 12px;
	border: 2px solid var(--mp-pc-brand);
	box-sizing: border-box;
	transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.mp-pc-cta--excerpt {
	display: block;
	width: 100%;
	max-width: 22rem;
	margin: 0 auto;
}

.mp-pc-cta:hover,
.mp-pc-cta:focus {
	color: #fff !important;
	background: var(--mp-pc-brand-hover);
	border-color: var(--mp-pc-brand-hover);
	outline: none;
}

/* Ancla «Personalizar» en resumen (sustituye compra directa arriba) */
.mp-pc-customizer-product .entry-summary-items > .ct-product-add-to-cart {
	width: 100%;
}

.mp-pc-customizer-product .ct-product-add-to-cart .mp-pc-summary-anchor-wrap,
.mp-pc-customizer-product .entry-summary .mp-pc-summary-anchor-wrap {
	width: 100%;
	max-width: 100%;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	margin-top: 0.65rem;
	box-sizing: border-box;
	clear: both;
}

a.mp-pc-cta.mp-pc-cta--summary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	width: auto;
	min-width: 10.75rem;
	max-width: min(100%, 16rem);
	min-height: 48px;
	padding: 0.82rem 1.75rem;
	font-size: clamp(0.95rem, 2.8vw, 1.05rem);
	font-weight: 600;
	letter-spacing: 0.03em;
	text-decoration: none;
	color: #f8fafc !important;
	background: linear-gradient(145deg, #1e293b 0%, #334155 100%);
	border: 1px solid #475569;
	border-radius: 999px;
	box-shadow: 0 4px 16px rgba(15, 23, 42, 0.16);
	box-sizing: border-box;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

a.mp-pc-cta.mp-pc-cta--summary:hover,
a.mp-pc-cta.mp-pc-cta--summary:focus {
	color: #fff !important;
	background: linear-gradient(145deg, #334155 0%, #475569 100%);
	border-color: #64748b;
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(15, 23, 42, 0.22);
}

a.mp-pc-cta.mp-pc-cta--summary:active {
	transform: translateY(0);
	box-shadow: 0 3px 10px rgba(15, 23, 42, 0.14);
}

/* Ocultar compra directa en resumen; la compra real queda en el personalizador de abajo */
.mp-pc-customizer-product .entry-summary form.cart .single_add_to_cart_button,
.mp-pc-customizer-product .entry-summary form.cart .woocommerce-variation-add-to-cart,
.mp-pc-customizer-product .ct-product-add-to-cart form.cart .single_add_to_cart_button,
.mp-pc-customizer-product .ct-product-add-to-cart form.cart .woocommerce-variation-add-to-cart {
	display: none !important;
}

@media (min-width: 690px) {
	.mp-pc-customizer-product .ct-product-add-to-cart .mp-pc-summary-anchor-wrap,
	.mp-pc-customizer-product .entry-summary .mp-pc-summary-anchor-wrap {
		margin-top: 0.5rem;
	}

	a.mp-pc-cta.mp-pc-cta--summary {
		min-width: 11.5rem;
		max-width: 14.5rem;
		padding-inline: 2rem;
	}
}

.mp-pc-cart-slot {
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.mp-pc-side {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 0;
}

.mp-pc-side .mp-pc-cart-slot {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.mp-pc-cart-slot form.cart {
	margin-bottom: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* Tabla de variaciones: apilada y legible */
.mp-pc-cart-slot table.variations {
	width: 100%;
	border: 0;
	margin: 0 !important;
	display: block;
}

.mp-pc-cart-slot table.variations tbody {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.mp-pc-cart-slot table.variations tr {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.35rem;
	padding: 0;
	border: 0;
}

.mp-pc-cart-slot table.variations th,
.mp-pc-cart-slot table.variations td {
	display: block;
	width: 100% !important;
	padding: 0 !important;
	border: 0;
	text-align: left !important;
}

.mp-pc-cart-slot table.variations label {
	font-weight: 600;
	font-size: 0.88rem;
	color: #1f2328;
}

.mp-pc-cart-slot table.variations select {
	width: 100% !important;
	max-width: 100%;
	padding: 0.5rem 0.65rem;
	font-size: 0.92rem;
	border-radius: 10px;
	border: 2px solid #dfe3ea;
	background-color: #ffffff;
	box-sizing: border-box;
	cursor: pointer;
	line-height: 1.45;
	min-height: 2.35rem;
	font-weight: 500;
}

/*
 * El tema Maruja hereda color claro en inputs → texto casi invisible sobre fondo claro.
 */
.mp-pc-cart-slot table.variations select,
.mp-pc-variations-card table.variations select {
	color: #111827 !important;
	background-color: #ffffff !important;
	-webkit-text-fill-color: #111827;
	opacity: 1 !important;
}

.mp-pc-cart-slot table.variations select option,
.mp-pc-variations-card table.variations select option {
	color: #111827;
	background-color: #ffffff;
}

.mp-pc-variations-card table.variations label {
	color: #1f2937 !important;
}

.mp-pc-cart-slot table.variations select:focus {
	outline: none;
	border-color: var(--mp-pc-brand);
	box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.15);
}

.mp-pc-cart-slot .woocommerce-variation-price,
.mp-pc-cart-slot .woocommerce-variation-availability {
	margin: 0;
	font-size: 0.9rem;
}

.mp-pc-cart-slot .woocommerce-variation-add-to-cart,
.mp-pc-cart-slot .woocommerce-variation-add-to-cart.variations_button {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.65rem;
	width: 100%;
	margin-top: 0.35rem;
}

.mp-pc-cart-slot .quantity {
	margin: 0 !important;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.mp-pc-cart-slot .quantity input.qty {
	min-height: 2.75rem;
	border-radius: 10px;
	border: 2px solid #dfe3ea;
	padding: 0.35rem 0.5rem;
	max-width: 5rem;
}

.mp-pc-cart-slot .single_add_to_cart_button {
	width: 100%;
	max-width: 18rem;
	min-height: 2.85rem;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0.75rem 1.25rem !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	border-radius: 12px !important;
	box-sizing: border-box;
	background: var(--mp-pc-brand) !important;
	border: 2px solid var(--mp-pc-brand) !important;
	color: #fff !important;
	-webkit-tap-highlight-color: transparent;
	transition: background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.mp-pc-cart-slot .single_add_to_cart_button:active {
	transform: scale(0.97) !important;
}

.mp-pc-cart-slot .single_add_to_cart_button:hover,
.mp-pc-cart-slot .single_add_to_cart_button:focus {
	background: var(--mp-pc-brand-hover) !important;
	border-color: var(--mp-pc-brand-hover) !important;
	color: #fff !important;
}

/* Producto simple: solo cantidad + botón */
.mp-pc-cart-slot form.cart:not(.variations_form) {
	align-items: stretch;
}

#mp-pc-root {
	position: relative;
	width: 100%;
	max-width: none;
	margin: 0 auto;
	font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	scroll-margin-top: 5.5rem;
}

.mp-pc-loading-msg {
	margin: 0 0 0.75rem;
	padding: 0.75rem 1rem;
	background: #f0f4ff;
	border: 1px solid #c9d6ff;
	border-radius: 10px;
	font-size: 0.95rem;
}

.mp-pc-layout {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-height: min(82dvh, 880px);
}

/* Tarjeta izquierda: mismo lenguaje visual que Zonas / Color y talla */
.mp-pc-preview-card-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem 0.65rem;
}

.mp-pc-preview-card-head__title {
	flex: 1 1 auto;
	min-width: 0;
}

.mp-pc-expand-workspace-btn {
	flex: 0 0 auto;
	margin: 0;
	padding: 0.38rem 0.7rem;
	border-radius: 999px;
	border: 2px solid var(--mp-pc-brand, #e8281a);
	background: #fff5f5;
	color: var(--mp-pc-brand, #e8281a);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
}

.mp-pc-expand-workspace-btn:hover:not(:disabled),
.mp-pc-expand-workspace-btn:focus:not(:disabled) {
	background: var(--mp-pc-brand, #e8281a);
	color: #fff;
	outline: none;
}

.mp-pc-expand-workspace-btn[aria-pressed='true'] {
	background: var(--mp-pc-brand, #e8281a);
	color: #fff;
}

.mp-pc-expand-workspace-btn:disabled,
.mp-pc-expand-workspace-btn[hidden] {
	display: none;
}

/* Láminas / tazas panorámicas: lienzo algo más alto por defecto */
.mp-pc-layout--panorama .mp-pc-preview {
	min-height: min(58dvh, 540px);
}

.mp-pc-preview.mp-pc-preview--design-expanded {
	flex: 1 1 auto;
	contain: none;
}

.mp-pc-layout--panorama.mp-pc-layout--workspace-expanded .mp-pc-preview,
.mp-pc-layout--workspace-expanded .mp-pc-preview {
	flex: 1 1 auto;
	min-height: min(72dvh, 680px);
}

.mp-pc-preview-card {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	width: 100%;
}

.mp-pc-preview-card-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 0.55rem 0.65rem 0.65rem;
}

.mp-pc-preview {
	flex: 1 1 auto;
	position: relative;
	width: 100%;
	min-height: min(56dvh, 520px);
	height: auto;
	overflow: hidden;
	touch-action: pan-y;
	contain: layout style paint;
	background: linear-gradient(165deg, #f2f4f7 0%, #e9ecf2 45%, #eef1f6 100%);
	border: 1px solid #d5dce6;
	border-radius: 12px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), inset 0 -1px 0 rgba(0, 0, 0, 0.03);
}

/* Overlay mientras carga una imagen pesada o la IA quita fondo */
.mp-pc-preview-busy {
	position: absolute;
	inset: 0;
	z-index: 24;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.85rem;
	padding: 1rem;
	box-sizing: border-box;
	background: rgba(250, 251, 253, 0.88);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	border-radius: inherit;
	pointer-events: none;
}

.mp-pc-preview-busy[hidden] {
	display: none !important;
}

.mp-pc-preview-busy-spin {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 3px solid rgba(198, 40, 40, 0.18);
	border-top-color: var(--mp-pc-brand);
	animation: mp-pc-busy-spin 1s linear infinite;
}

@keyframes mp-pc-busy-spin {
	to {
		transform: rotate(360deg);
	}
}

.mp-pc-preview-busy-msg {
	margin: 0;
	max-width: 15rem;
	text-align: center;
	font-size: 0.9rem;
	font-weight: 650;
	line-height: 1.35;
	color: #334155;
	animation: mp-pc-slow-pulse 2.75s ease-in-out infinite;
}

@keyframes mp-pc-slow-pulse {
	0%,
	100% {
		opacity: 0.68;
	}
	50% {
		opacity: 1;
	}
}

.mp-pc-text-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
	margin-top: 0.5rem;
	padding: 0.45rem;
	background: #f6f7f9;
	border: 1px solid #e2e6ee;
	border-radius: 8px;
}

.mp-pc-text-input {
	flex: 1 1 140px;
	min-width: 0;
	padding: 0.45rem 0.5rem;
	border: 1px solid #cfd6e4;
	border-radius: 8px;
	font-size: 0.95rem;
}

.mp-pc-text-input--main {
	padding: 0.22rem 0.45rem;
	font-size: 0.8rem;
	line-height: 1.25;
	min-height: 0;
}

.mp-pc-text-apply {
	flex: 0 0 auto;
	padding: 0.45rem 0.65rem;
	border-radius: 8px;
	border: 1px solid #111;
	background: #111;
	color: #fff;
	font-size: 0.85rem;
}

.mp-pc-text-panel {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.mp-pc-text-tools-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.45rem 0.65rem;
}

.mp-pc-font-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	flex: 1 1 12rem;
	min-width: 0;
}

.mp-pc-font-select {
	min-width: 0;
	flex: 1 1 8rem;
	max-width: 100%;
	padding: 0.4rem 0.45rem;
	font-size: 0.88rem;
	border-radius: 8px;
	border: 1px solid #cfd6e4;
	background: #fff;
}

.mp-pc-text-colors {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
}

.mp-pc-color-swatch {
	width: 1.65rem;
	height: 1.65rem;
	padding: 0;
	border-radius: 6px;
	border: 2px solid #cfd6e4;
	background: var(--sw, #ccc);
	cursor: pointer;
	box-sizing: border-box;
}

.mp-pc-color-swatch--active {
	border-color: #111;
	box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.35);
}

.mp-pc-mini-label {
	font-size: 0.72rem;
	font-weight: 650;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.mp-pc-mini-label--block {
	display: block;
	margin-bottom: 0.15rem;
}

.mp-pc-fit-stage {
	position: absolute;
	overflow: hidden;
	pointer-events: none;
}

.mp-pc-preview .mp-pc-fit-stage .mp-pc-canvas {
	pointer-events: auto;
}

.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image img {
	max-width: 100% !important;
	height: auto !important;
	object-fit: contain;
}

.mp-pc-base {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	user-select: none;
	-webkit-user-drag: none;
	pointer-events: none;
}

.mp-pc-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	touch-action: pan-y;
	z-index: 1;
}

.mp-pc-print-size-label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	margin: 0;
	padding: 0.35rem 0.5rem;
	font-size: 0.78rem;
	font-weight: 600;
	color: #475569;
	text-align: center;
	pointer-events: none;
	background: linear-gradient(to top, rgba(250, 251, 253, 0.92), rgba(250, 251, 253, 0.55), transparent);
}

.mp-pc-print-box {
	position: absolute;
	border: 2px solid rgba(255, 255, 255, 0.75);
	outline: 1px solid rgba(0, 0, 0, 0.25);
	border-radius: 8px;
	pointer-events: none;
	z-index: 2;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.mp-pc-toolbar {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid #e8eaee;
	border-radius: 12px;
}

.mp-pc-zones--rows {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.15rem 0;
}

.mp-pc-zone-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: space-between;
}

.mp-pc-zone-row-check {
	flex: 1 1 10.5rem;
	min-width: 0;
}

.mp-pc-zone-row-check .mp-pc-check {
	margin: 0;
}

.mp-pc-zone-row-actions {
	display: flex;
	flex: 1 1 14rem;
	gap: 0.4rem;
	min-width: 0;
	justify-content: flex-end;
}

.mp-pc-zone-upload-btn,
.mp-pc-zone-design-btn {
	flex: 1 1 0;
	min-width: 0;
	max-width: 11rem;
	padding: 0.45rem 0.5rem;
	font-size: 0.78rem;
	font-weight: 650;
	border-radius: 10px;
	cursor: pointer;
	line-height: 1.25;
	text-align: center;
	-webkit-tap-highlight-color: transparent;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.mp-pc-zone-upload-btn:active,
.mp-pc-zone-design-btn:active {
	transform: scale(0.96);
}

.mp-pc-zone-upload-btn {
	border: 2px solid #475569;
	background: #fff;
	color: #1e293b;
}

.mp-pc-zone-upload-btn:hover,
.mp-pc-zone-upload-btn:focus {
	background: #f8fafc;
	border-color: #334155;
	outline: none;
}

.mp-pc-zone-design-btn {
	border: 2px solid var(--mp-pc-brand);
	background: #fff;
	color: var(--mp-pc-brand);
}

.mp-pc-zone-design-btn:hover,
.mp-pc-zone-design-btn:focus {
	background: var(--mp-pc-brand);
	color: #fff;
	outline: none;
}

.mp-pc-actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.35rem;
}

.mp-pc-check {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.9rem;
	cursor: pointer;
}

.mp-pc-check input {
	width: 1.05rem;
	height: 1.05rem;
	accent-color: var(--mp-pc-brand);
}

.mp-pc-fee-hint {
	font-size: 0.85rem;
	color: #0a5;
	background: #ecfdf3;
	border: 1px solid #b7e4c7;
	border-radius: 8px;
	padding: 0.5rem 0.6rem;
}

.mp-pc-fee-hint[hidden] {
	display: none;
}

/* Total con suplemento: insertado al inicio de p.price (resumen del producto) */
.woocommerce-variation-price .mp-pc-price-lead--variation {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.92em;
	line-height: 1.35;
}

.entry-summary p.price .mp-pc-price-lead,
.product .summary p.price .mp-pc-price-lead,
p.price .mp-pc-price-lead {
	display: block;
	width: 100%;
	margin: 0 0 0.4rem;
	font-size: 1.05rem;
	line-height: 1.35;
}

.mp-pc-price-lead-total {
	color: var(--mp-pc-brand, #e8281a);
}

.mp-pc-price-lead-note {
	font-size: 0.82rem;
	font-weight: 500;
	color: #64748b;
}

.mp-pc-price-lead--muted,
.mp-pc-price-lead-pick {
	font-size: 0.88rem;
	color: #64748b;
	font-weight: 400;
}

.mp-pc-zone-block {
	font-size: 0.88rem;
	color: #6b4a00;
	background: #fff8e6;
	border: 1px solid #f0d090;
	border-radius: 8px;
	padding: 0.45rem 0.55rem;
}

.mp-pc-zone-block[hidden] {
	display: none;
}

.mp-pc-select-row {
	display: none;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 0.3rem 0.5rem;
}

.mp-pc-select-label {
	font-size: 0.62rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #64748b;
	line-height: 1.2;
	max-width: 5.2rem;
}

.mp-pc-select-pair {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	justify-content: flex-end;
}

.mp-pc-layer-toggle {
	flex: 0 1 auto;
	padding: 0.28rem 0.5rem;
	font-size: 0.72rem;
	font-weight: 700;
	border-radius: 9px;
	border: 2px solid #cfd6e4;
	background: #fff;
	color: #1e293b;
	cursor: pointer;
	line-height: 1.2;
	min-height: 0;
	box-sizing: border-box;
}

.mp-pc-layer-toggle:hover,
.mp-pc-layer-toggle:focus {
	border-color: #94a3b8;
	outline: none;
}

.mp-pc-layer-toggle[aria-pressed='true'] {
	border-color: var(--mp-pc-brand);
	color: var(--mp-pc-brand);
	background: linear-gradient(180deg, #fffafa 0%, #fff 100%);
	box-shadow: 0 0 0 1px rgba(198, 40, 40, 0.12);
}

.mp-pc-toolbar .mp-pc-layer-toggle {
	font-size: 0.72rem;
	padding: 0.28rem 0.5rem;
	border-radius: 9px;
	border-width: 2px;
}

.mp-pc-toolbar button {
	font-size: 0.85rem;
	padding: 0.75rem 0.25rem;
	border-radius: 10px;
	border: 1px solid #dfe3ea;
	background: #fff;
}

.mp-pc-toolbar button[aria-selected="true"] {
	border-color: #111;
	background: #111;
	color: #fff;
}

.mp-pc-panel {
	padding: 0.5rem;
	border: 1px solid #e8eaee;
	border-radius: 12px;
	background: #fff;
}

.mp-pc-hint {
	font-size: 0.95rem;
	color: #1f2328;
}

@media (min-width: 600px) {
	.mp-pc-fullbleed-inner {
		padding: 0 clamp(0.75rem, 3vw, 1.25rem);
	}

	.mp-pc-preview {
		min-height: min(50dvh, 460px);
	}
}

/* Zona de diseño ampliada: mockup arriba casi a pantalla completa; opciones debajo compactas */
.mp-pc-layout.mp-pc-layout--workspace-expanded {
	flex-direction: column;
	align-items: stretch;
	min-height: min(92dvh, 980px);
}

.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview-card {
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	min-height: 0;
}

.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview-card-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: min(86dvh, 940px);
	padding-bottom: 0.35rem;
}

.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview-stack {
	flex: 1 1 auto;
	min-height: 0;
}

.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview {
	flex: 1 1 auto;
	min-height: min(78dvh, 860px);
}

.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-image-tools-card {
	flex-shrink: 0;
}

.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-side {
	flex: 0 0 auto;
	width: 100%;
	min-height: 0;
	max-height: min(28dvh, 280px);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

@media (min-width: 900px) {
	.mp-pc-layout {
		flex-direction: row;
		align-items: stretch;
		min-height: min(78dvh, 780px);
		gap: 0.85rem;
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded {
		flex-direction: column;
	}

	.mp-pc-layout--panorama .mp-pc-preview {
		min-height: min(62dvh, 640px);
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded {
		min-height: min(94dvh, 1020px);
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview-card-body {
		min-height: min(88dvh, 980px);
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview.mp-pc-preview--design-expanded {
		width: 100%;
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-side {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
		gap: 0.75rem;
		align-content: start;
		max-height: min(24dvh, 260px);
	}

	.mp-pc-preview-card {
		flex: 1 1 58%;
		align-self: stretch;
		min-height: min(78dvh, 780px);
		height: auto;
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded .mp-pc-preview-card {
		flex: 1 1 auto;
		min-height: min(82dvh, 900px);
	}

	/* No usar min-height: 0 aquí: .mp-pc-preview solo tiene hijos absolute;
	   colapsa a 0px y el mockup desaparece (solo quedan herramientas debajo). */

	.mp-pc-side {
		flex: 1 1 42%;
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		align-self: stretch;
		min-height: min(78dvh, 780px);
		min-width: 0;
	}
}

/* Pila: canvas + aviso imagen pequeña + herramientas */
.mp-pc-preview-stack {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 0.65rem;
	min-height: 0;
}

/* Modo ver resultado: pecho y espalda a la vez, sin marco de impresión */
.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-preview-card {
	flex: 1 1 auto;
	min-height: 0;
}

.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-preview-card-body {
	display: flex;
	flex-direction: column;
	min-height: min(82dvh, 920px);
}

.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-preview-stack {
	flex: 1 1 auto;
	min-height: 0;
}

.mp-pc-result-dual {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
	min-height: min(40dvh, 360px);
}

.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-result-dual {
	min-height: min(72dvh, 780px);
	flex: 1 1 auto;
}

.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-preview--result-split {
	flex: 1 1 auto;
	min-height: min(58dvh, 620px);
}

.mp-pc-result-dual.mp-pc-result-dual--single {
	grid-template-columns: 1fr;
	max-width: 100%;
}

@media (min-width: 901px) {
	.mp-pc-result-dual {
		min-height: min(52dvh, 520px);
	}

	.mp-pc-result-dual .mp-pc-base {
		image-rendering: auto;
	}
}

@media (max-width: 700px) {
	.mp-pc-result-dual {
		grid-template-columns: 1fr;
	}
}

.mp-pc-result-dual[hidden] {
	display: none;
}

.mp-pc-result-pane {
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.mp-pc-result-pane-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem;
	margin-bottom: 0.35rem;
	min-height: 0;
}

.mp-pc-result-pane-label {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #64748b;
	margin-bottom: 0;
}

.mp-pc-result-loupe {
	flex-shrink: 0;
	min-height: 2.35rem;
	padding: 0.3rem 0.65rem;
	border-radius: 999px;
	border: 2px solid var(--mp-pc-brand, #e8281a);
	background: #fff5f5;
	color: var(--mp-pc-brand, #e8281a);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(153, 27, 27, 0.12);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
}

.mp-pc-result-loupe__txt {
	white-space: nowrap;
}

.mp-pc-preview--result-tappable-on {
	cursor: zoom-in;
}

.mp-pc-preview--result-tappable-on:focus-visible {
	outline: 2px solid var(--mp-pc-brand, #e8281a);
	outline-offset: 3px;
}

.mp-pc-tool-btn--fullscreen {
	border-color: var(--mp-pc-brand, #e8281a);
	background: #fff5f5;
	color: var(--mp-pc-brand, #e8281a);
	font-weight: 700;
}

.mp-pc-result-loupe:hover:not(:disabled),
.mp-pc-result-loupe:focus:not(:disabled) {
	border-color: var(--mp-pc-brand);
	color: var(--mp-pc-brand);
	outline: none;
}

.mp-pc-result-loupe:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.mp-pc-result-zoom {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: block;
	box-sizing: border-box;
}

.mp-pc-result-zoom[hidden] {
	display: none !important;
}

.mp-pc-result-zoom__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	border: 0;
	padding: 0;
	margin: 0;
	background: rgba(15, 23, 42, 0.88);
	cursor: pointer;
}

.mp-pc-result-zoom__stage {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding:
		max(3.75rem, calc(env(safe-area-inset-top) + 3.25rem))
		max(0.65rem, env(safe-area-inset-right))
		max(0.65rem, env(safe-area-inset-bottom))
		max(0.65rem, env(safe-area-inset-left));
	pointer-events: none;
}

.mp-pc-result-zoom__close {
	position: fixed;
	top: max(0.65rem, env(safe-area-inset-top));
	right: max(0.65rem, env(safe-area-inset-right));
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.1rem;
	height: 3.1rem;
	min-width: 48px;
	min-height: 48px;
	border-radius: 50%;
	border: 2px solid #fff;
	background: #dc2626;
	color: #fff;
	font-size: 1.85rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45);
}

.mp-pc-result-zoom__close:hover,
.mp-pc-result-zoom__close:focus {
	background: #b91c1c;
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.mp-pc-result-zoom__img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 10px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
	background: #fff;
	pointer-events: auto;
}

/* Zona de diseño ampliada: mockup a pantalla casi completa (móvil y PC) */
.mp-pc-design-focus {
	position: fixed;
	inset: 0;
	z-index: 2147482900;
	display: block;
	box-sizing: border-box;
}

.mp-pc-design-focus[hidden] {
	display: none !important;
}

html.mp-pc-design-focus-active,
html.mp-pc-design-focus-active body {
	overflow: hidden;
}

.mp-pc-design-focus__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	border: 0;
	padding: 0;
	margin: 0;
	background: rgba(15, 23, 42, 0.92);
	cursor: pointer;
}

.mp-pc-design-focus__bar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: max(0.45rem, env(safe-area-inset-top)) max(0.65rem, env(safe-area-inset-right)) 0.45rem
		max(0.65rem, env(safe-area-inset-left));
	box-sizing: border-box;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.97) 0%, rgba(15, 23, 42, 0.88) 100%);
	color: #f8fafc;
}

.mp-pc-design-focus__title {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.mp-pc-design-focus__zoom {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	padding: 0.15rem 0.35rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.22);
}

.mp-pc-design-focus__zoom-btn {
	flex: 0 0 auto;
	width: 2rem;
	height: 2rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.mp-pc-design-focus__zoom-btn:hover:not(:disabled),
.mp-pc-design-focus__zoom-btn:focus:not(:disabled) {
	background: rgba(255, 255, 255, 0.32);
	outline: 2px solid #fff;
	outline-offset: 1px;
}

.mp-pc-design-focus__zoom-btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.mp-pc-design-focus__zoom-label {
	min-width: 2.6rem;
	text-align: center;
	font-size: 0.75rem;
	font-weight: 700;
	color: #f8fafc;
}

.mp-pc-design-focus__upload {
	flex: 0 0 auto;
	margin: 0;
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	border: 0;
	background: var(--mp-pc-brand, #e8281a);
	color: #fff;
	font-size: 0.78rem;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
}

.mp-pc-design-focus__upload:hover,
.mp-pc-design-focus__upload:focus {
	background: var(--mp-pc-brand-hover, #c2200e);
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.mp-pc-design-focus__close {
	flex: 0 0 auto;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #dc2626;
	color: #fff;
	font-size: 1.65rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.mp-pc-design-focus__close:hover,
.mp-pc-design-focus__close:focus {
	background: #b91c1c;
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.mp-pc-design-focus__stage {
	position: absolute;
	z-index: 1;
	top: 3rem;
	left: 0;
	right: 0;
	bottom: 0;
	padding: max(0.35rem, env(safe-area-inset-top)) max(0.35rem, env(safe-area-inset-right))
		max(0.35rem, env(safe-area-inset-bottom)) max(0.35rem, env(safe-area-inset-left));
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
}

.mp-pc-design-focus__stage .mp-pc-preview {
	position: relative;
	width: 100% !important;
	height: 100% !important;
	max-width: 100%;
	min-height: 0 !important;
	flex: 1 1 auto;
	contain: none;
	border-radius: 10px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
	overflow: hidden;
}

.mp-pc-preview--print-zoom {
	background: linear-gradient(165deg, #e4e7ec 0%, #d8dde6 100%);
}

.mp-pc-preview--print-zoom .mp-pc-base {
	visibility: hidden !important;
	opacity: 0 !important;
}

.mp-pc-preview--print-zoom .mp-pc-print-box {
	border-width: 3px;
	border-color: #2563eb;
	box-shadow:
		0 0 0 2px rgba(37, 99, 235, 0.35),
		inset 0 0 0 1px rgba(255, 255, 255, 0.9);
}

.mp-pc-preview--print-zoom .mp-pc-base {
	pointer-events: none;
}

.mp-pc-design-focus__zoom-note {
	flex: 1 1 100%;
	min-width: 8rem;
	font-size: 0.68rem;
	font-weight: 500;
	color: #cbd5e1;
	line-height: 1.25;
}

.mp-pc-design-focus__rotate-hint {
	flex: 1 1 100%;
	min-width: 100%;
	font-size: 0.72rem;
	font-weight: 600;
	color: #fde68a;
	line-height: 1.25;
}

@media (max-width: 899.98px) {
	.mp-pc-design-focus--rotate-mobile .mp-pc-design-focus__stage {
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
		padding: 0.2rem;
	}

	.mp-pc-design-focus--rotate-mobile .mp-pc-design-focus__rotator {
		transform: rotate(-90deg);
		transform-origin: center center;
		width: min(88dvh, 88svh, 720px);
		height: min(92vw, 92svw, 400px);
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
	}

	.mp-pc-design-focus--rotate-mobile .mp-pc-design-focus__rotator .mp-pc-preview {
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
		max-width: none;
		max-height: none;
	}

	.mp-pc-design-focus__bar {
		flex-wrap: wrap;
		row-gap: 0.25rem;
	}

	.mp-pc-design-focus__rotate-hint {
		order: 3;
		min-width: 100%;
	}
}

.mp-pc-preview-placeholder {
	width: 100%;
	min-height: 280px;
	border-radius: 12px;
	background: linear-gradient(165deg, #e9ecf2 0%, #dfe4ec 100%);
	border: 1px dashed #c5cdd8;
}

.mp-pc-preview--result-split {
	position: relative;
	min-height: min(32dvh, 300px);
	flex: 1 1 auto;
	overflow: hidden;
	touch-action: pan-y;
}

.mp-pc-result-dual .mp-pc-print-box {
	opacity: 0;
}

.mp-pc-result-dual .mp-pc-canvas {
	pointer-events: none;
	touch-action: auto;
}

.mp-pc-image-suggest {
	font-size: 0.88rem;
	line-height: 1.35;
	color: #92400e;
	background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
	border: 1px solid #fcd34d;
	border-radius: 10px;
	padding: 0.55rem 0.65rem;
}

.mp-pc-image-suggest[hidden] {
	display: none;
}

.mp-pc-image-tools-row {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.45rem;
	padding: 0.55rem 0.65rem 0.65rem;
}

.mp-pc-image-tools-row .mp-pc-tool-btn {
	flex: 1 1 calc(25% - 0.34rem);
	min-width: min(5.5rem, 48%);
	padding: 0.55rem 0.35rem;
	font-size: 0.78rem;
	line-height: 1.2;
}

@media (max-width: 480px) {
	.mp-pc-image-tools-row .mp-pc-tool-btn {
		flex: 1 1 calc(50% - 0.25rem);
		min-width: 0;
	}
}

.mp-pc-image-tools-row .mp-pc-tool-btn[data-action='clear'] {
	border-color: #cbd5e1;
	color: #475569;
}

.mp-pc-image-tools-row .mp-pc-tool-btn--delete {
	border-color: rgba(232, 40, 26, 0.35);
	color: var(--mp-pc-brand, #e8281a);
}

.mp-pc-image-tools-row .mp-pc-tool-btn--delete:disabled {
	border-color: #e5e2ea;
	color: #a39cae;
}

.mp-pc-zone-upload-btn--max {
	opacity: 0.55;
	cursor: not-allowed;
}

.mp-pc-image-tools-row .mp-pc-tool-btn[aria-pressed='true'] {
	border-color: var(--mp-pc-brand);
	background: #fff5f5;
	color: var(--mp-pc-brand, #e8281a);
}

.mp-pc-tool-btn {
	min-height: 2.65rem;
	padding: 0.55rem 0.65rem;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	border-radius: 12px;
	border: 2px solid #e2e8f0;
	background: #fff;
	color: #1e293b;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition:
		background 0.18s ease,
		border-color 0.18s ease,
		transform 0.12s ease,
		opacity 0.18s ease;
}

.mp-pc-tool-btn:hover:not(:disabled),
.mp-pc-tool-btn:focus-visible:not(:disabled) {
	border-color: var(--mp-pc-brand);
	background: #fff5f5;
	color: var(--mp-pc-brand, #e8281a);
	outline: none;
}

.mp-pc-tool-btn:active:not(:disabled) {
	transform: scale(0.97);
}

.mp-pc-tool-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.mp-pc-toast {
	margin: 0.35rem 0 0;
	padding: 0.45rem 0.55rem;
	font-size: 0.85rem;
	border-radius: 8px;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
	animation: mp-pc-toast-in 0.35s ease;
	grid-column: 1 / -1;
}

.mp-pc-toast--info {
	background: #eff6ff;
	border-color: #bfdbfe;
	color: #1e40af;
}

.mp-pc-toast--ok {
	background: #ecfdf5;
	border-color: #a7f3d0;
	color: #065f46;
}

.mp-pc-toast--out {
	opacity: 0;
	transition: opacity 0.35s ease;
}

@keyframes mp-pc-toast-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.mp-pc-canvas.mp-pc-canvas--flash {
	animation: mp-pc-flash 0.55s ease;
}

@keyframes mp-pc-flash {
	0% {
		filter: brightness(1);
	}
	35% {
		filter: brightness(1.12);
	}
	100% {
		filter: brightness(1);
	}
}

/* -----------------------------------------------------------------------------
   Móvil / vertical (<900px): mismas funciones que en escritorio, todo compacto
   tipo app. No toca el layout de PC (>=900px).
   ----------------------------------------------------------------------------- */
@media (max-width: 899.98px) {
	#mp-pc-root {
		-webkit-tap-highlight-color: transparent;
		overscroll-behavior-y: contain;
	}

	.mp-pc-fullbleed {
		margin-top: clamp(0.5rem, 3vw, 1rem);
		padding-left: max(0.35rem, env(safe-area-inset-left, 0px));
		padding-right: max(0.35rem, env(safe-area-inset-right, 0px));
		padding-bottom: max(0.6rem, env(safe-area-inset-bottom, 0px));
	}

	.mp-pc-fullbleed-inner {
		padding: 0 0.25rem;
	}

	.mp-pc-layout {
		gap: 0.5rem;
		min-height: 0;
	}

	#mp-pc-root .mp-pc-card {
		border-radius: 12px;
	}

	#mp-pc-root .mp-pc-card-head {
		padding: 0.4rem 0.6rem;
		font-size: 0.66rem;
		letter-spacing: 0.05em;
	}

	#mp-pc-root .mp-pc-card-body {
		padding: 0.5rem 0.6rem 0.6rem;
	}

	/* Vista previa: que la camiseta tenga aire pero sin comerse la pantalla */
	.mp-pc-preview-card-body {
		padding: 0.4rem 0.5rem 0.5rem;
	}

	.mp-pc-preview {
		min-height: min(52dvh, 440px);
		border-radius: 12px;
	}

	.mp-pc-layout--panorama .mp-pc-preview {
		min-height: min(52dvh, 420px);
	}

	.mp-pc-layout.mp-pc-layout--workspace-expanded {
		min-height: 0;
	}

	.mp-pc-layout.mp-pc-layout--design-focus-mobile .mp-pc-preview-card {
		flex: 0 0 auto;
	}

	.mp-pc-layout.mp-pc-layout--design-focus-mobile .mp-pc-preview-stack {
		flex: 0 0 auto;
	}

	.mp-pc-layout.mp-pc-layout--design-focus-mobile .mp-pc-image-tools-card {
		flex-shrink: 0;
	}

	.mp-pc-layout.mp-pc-layout--design-focus-mobile .mp-pc-side {
		flex: 0 0 auto;
		max-height: min(34dvh, 220px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.mp-pc-layout--workspace-expanded .mp-pc-side {
		max-height: min(32dvh, 300px);
	}

	.mp-pc-expand-workspace-btn {
		font-size: 0.66rem;
		padding: 0.34rem 0.55rem;
		max-width: 100%;
		white-space: normal;
		text-align: center;
	}

	.mp-pc-preview-stack {
		gap: 0.45rem;
	}

	/* Acciones bajo el preview: 3 botones SIEMPRE en una fila */
	.mp-pc-image-tools-row {
		padding: 0.45rem 0.5rem 0.55rem;
		gap: 0.4rem;
		flex-wrap: nowrap;
	}

	.mp-pc-image-tools-row .mp-pc-tool-btn {
		flex: 1 1 0;
		min-width: 0;
		min-height: 2.4rem;
		padding: 0.4rem 0.25rem;
		font-size: 0.68rem;
		line-height: 1.15;
		border-radius: 10px;
	}

	.mp-pc-image-suggest {
		font-size: 0.78rem;
		padding: 0.45rem 0.55rem;
		border-radius: 10px;
	}

	/* Columna lateral móvil */
	.mp-pc-side {
		gap: 0.5rem;
	}

	/* Color y talla más densa */
	.mp-pc-variations-card .mp-pc-card-head {
		padding: 0.34rem 0.55rem;
		font-size: 0.62rem;
	}

	.mp-pc-variations-card .mp-pc-card-body {
		padding: 0.4rem 0.55rem 0.45rem;
	}

	.mp-pc-cart-slot table.variations tbody {
		gap: 0.45rem;
	}

	.mp-pc-cart-slot table.variations select {
		padding: 0.45rem 0.55rem;
		font-size: 0.88rem;
		min-height: 2.25rem;
	}

	/* Zonas de impresión: cada zona en una sola fila (check + subir + zona) */
	.mp-pc-zones-card .mp-pc-card-body {
		padding: 0.4rem 0.55rem 0.5rem;
	}

	.mp-pc-zones--rows {
		gap: 0.45rem;
	}

	.mp-pc-zone-row {
		flex-wrap: nowrap;
		gap: 0.4rem;
		align-items: center;
	}

	.mp-pc-zone-row-check {
		flex: 0 1 auto;
		min-width: 6.5rem;
	}

	.mp-pc-check {
		font-size: 0.78rem;
		gap: 0.3rem;
	}

	.mp-pc-zone-row-actions {
		flex: 1 1 0;
		gap: 0.3rem;
		justify-content: flex-end;
		flex-wrap: nowrap;
	}

	.mp-pc-zone-upload-btn,
	.mp-pc-zone-design-btn {
		flex: 1 1 0;
		min-width: 0;
		max-width: none;
		padding: 0.4rem 0.35rem;
		font-size: 0.7rem;
		line-height: 1.15;
		border-radius: 9px;
	}

	.mp-pc-zones-card .mp-pc-zones-price-line {
		margin-top: 0.4rem;
		font-size: 0.85rem;
	}

	.mp-pc-fee-hint {
		font-size: 0.78rem;
		padding: 0.4rem 0.55rem;
	}

	/* Tarjeta de selección imagen/texto */
	.mp-pc-tools-card .mp-pc-card-head {
		padding: 0.36rem 0.55rem;
		font-size: 0.66rem;
	}

	.mp-pc-tools-card .mp-pc-card-body {
		padding: 0.4rem 0.55rem 0.5rem;
	}

	.mp-pc-toolbar--tools {
		padding: 0.4rem;
		gap: 0.4rem;
	}

	.mp-pc-mini-label {
		font-size: 0.66rem;
	}

	.mp-pc-layer-toggle {
		font-size: 0.72rem;
		padding: 0.3rem 0.55rem;
		min-height: 2rem;
	}

	/* Incluir texto: input + Aplicar en una fila, fuente debajo, paleta debajo */
	.mp-pc-text-tools-card .mp-pc-card-head {
		padding: 0.36rem 0.55rem;
		font-size: 0.66rem;
	}

	.mp-pc-text-tools-card .mp-pc-card-body {
		padding: 0.45rem 0.55rem 0.55rem;
	}

	.mp-pc-text-panel {
		gap: 0.5rem;
	}

	.mp-pc-text-input--main {
		font-size: 0.85rem;
		padding: 0.45rem 0.55rem;
		min-height: 2.35rem;
		border-radius: 9px;
	}

	.mp-pc-text-tools-bar {
		gap: 0.4rem 0.5rem;
		align-items: stretch;
	}

	.mp-pc-font-wrap {
		flex: 1 1 100%;
		min-width: 0;
	}

	.mp-pc-font-select {
		padding: 0.42rem 0.5rem;
		font-size: 0.85rem;
		min-height: 2.3rem;
	}

	.mp-pc-text-apply {
		flex: 0 0 auto;
		min-height: 2.3rem;
		padding: 0.45rem 0.85rem;
		font-size: 0.82rem;
		border-radius: 9px;
	}

	.mp-pc-text-colors {
		gap: 0.35rem;
	}

	.mp-pc-color-swatch {
		width: 1.85rem;
		height: 1.85rem;
		border-radius: 7px;
	}

	.mp-pc-panel {
		padding: 0.45rem;
		border-radius: 10px;
	}

	/* Resultado y lupa */
	.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-preview-card-body {
		min-height: min(70dvh, 720px);
	}

	.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-result-dual {
		min-height: min(58dvh, 520px);
	}

	.mp-pc-layout.mp-pc-layout--result-mode .mp-pc-preview--result-split {
		min-height: min(48dvh, 440px);
	}

	.mp-pc-result-dual {
		gap: 0.45rem;
		min-height: min(36dvh, 320px);
	}

	.mp-pc-preview--result-split {
		min-height: min(28dvh, 240px);
	}

	.mp-pc-result-pane-label {
		font-size: 0.62rem;
	}

	.mp-pc-result-loupe {
		min-height: 2.1rem;
		padding: 0.28rem 0.5rem;
		font-size: 0.66rem;
	}

	.mp-pc-image-tools-row .mp-pc-tool-btn {
		flex: 1 1 calc(50% - 0.25rem);
		min-width: 0;
	}

	.mp-pc-result-zoom__close {
		width: 3.35rem;
		height: 3.35rem;
		font-size: 2rem;
	}

	/* IA: aviso, semáforo, invitado, Turnstile, estado — compactos en móvil */
	.mp-pc-ai-notice {
		margin-top: 0.45rem;
		padding: 0.5rem 0.6rem;
		font-size: 0.82rem;
		line-height: 1.4;
		border-radius: 10px;
	}

	.mp-pc-quality {
		margin-top: 0.4rem;
		padding: 0.45rem 0.55rem;
		font-size: 0.82rem;
		gap: 0.4rem;
		border-radius: 10px;
	}

	.mp-pc-quality-dot {
		width: 0.65rem;
		height: 0.65rem;
		margin-top: 0.18rem;
	}

	.mp-pc-ai-guest {
		margin-top: 0.4rem;
		padding: 0.5rem 0.6rem;
		font-size: 0.82rem;
		border-radius: 10px;
	}

	.mp-pc-ai-meta {
		margin-top: 0.4rem;
		gap: 0.4rem;
		padding: 0.45rem 0.55rem 0.55rem;
	}

	.mp-pc-turnstile {
		min-height: 70px;
		border-radius: 10px;
		overflow: visible;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.mp-pc-turnstile iframe {
		max-width: 100% !important;
	}

	.mp-pc-ai-status {
		font-size: 0.8rem;
		padding: 0.45rem 0.55rem;
		border-radius: 10px;
	}

	/* Carrito */
	.mp-pc-cart-slot form.cart {
		gap: 0.55rem;
	}

	.mp-pc-cart-slot .quantity input.qty {
		min-height: 2.55rem;
		max-width: 4.5rem;
	}

	.mp-pc-cart-slot .single_add_to_cart_button {
		max-width: 100%;
		min-height: 2.85rem;
		padding: 0.7rem 0.9rem !important;
		font-size: 1rem !important;
	}
}

/* Pantallas muy estrechas: rebajar densidad sin ocultar nada */
@media (max-width: 380px) {
	#mp-pc-root .mp-pc-preview {
		min-height: min(40dvh, 320px);
	}

	.mp-pc-zone-row-check {
		min-width: 5.6rem;
	}

	.mp-pc-zone-upload-btn,
	.mp-pc-zone-design-btn {
		font-size: 0.66rem;
		padding: 0.36rem 0.25rem;
	}

	.mp-pc-image-tools-row .mp-pc-tool-btn {
		font-size: 0.62rem;
		padding: 0.38rem 0.18rem;
	}

	.mp-pc-ai-notice {
		font-size: 0.76rem;
		padding: 0.4rem 0.5rem;
	}

	.mp-pc-quality {
		font-size: 0.76rem;
		padding: 0.4rem 0.5rem;
	}

	.mp-pc-ai-guest {
		font-size: 0.76rem;
		padding: 0.4rem 0.5rem;
	}

	.mp-pc-ai-status {
		font-size: 0.74rem;
		padding: 0.4rem 0.5rem;
	}

	.mp-pc-turnstile {
		min-height: 52px;
	}
}

/* Popup aviso zonas Paso 2 / Paso 3 */
.mp-pc-crea-alert {
	position: fixed;
	inset: 0;
	z-index: 2147483001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: max(1rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right))
		max(1rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
	box-sizing: border-box;
}

.mp-pc-crea-alert[hidden] {
	display: none !important;
}

.mp-pc-crea-alert__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	margin: 0;
	padding: 0;
	background: rgba(15, 23, 42, 0.55);
	cursor: pointer;
}

.mp-pc-crea-alert__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 26rem);
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, 0.28);
	border: 1px solid rgba(232, 40, 26, 0.18);
	padding: 1.1rem 1.15rem 1.15rem;
	text-align: center;
}

.mp-pc-crea-alert__title {
	margin: 0 0 0.55rem;
	font-family: "Fredoka", "Nunito", system-ui, sans-serif;
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--mp-pc-brand, #e8281a);
}

.mp-pc-crea-alert__text {
	margin: 0 0 1rem;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.92rem;
	line-height: 1.5;
	color: #334155;
}

.mp-pc-crea-alert__ok {
	appearance: none;
	border: none;
	border-radius: 999px;
	background: var(--mp-pc-brand, #e8281a);
	color: #fff;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 0.55rem 1.35rem;
	min-height: 44px;
	cursor: pointer;
}

.mp-pc-crea-alert__ok:hover,
.mp-pc-crea-alert__ok:focus-visible {
	filter: brightness(1.05);
	outline: none;
}

/* Modal consentimiento derechos imagen */
.mp-pc-consent-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: max(1rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right))
		max(1rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
	box-sizing: border-box;
}
.mp-pc-consent-modal[hidden] {
	display: none !important;
}
.mp-pc-consent-modal__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	margin: 0;
	padding: 0;
	background: rgba(15, 23, 42, 0.55);
	cursor: pointer;
}
.mp-pc-consent-modal__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 28rem);
	max-height: min(88vh, 88dvh, 34rem);
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, 0.25);
	border: 1px solid #e2e8f0;
	padding: 1rem 1.1rem 1.1rem;
}
.mp-pc-consent-modal__title {
	margin: 0 0 0.65rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: #1e293b;
}
.mp-pc-consent-modal__intro {
	font-size: 0.88rem;
	line-height: 1.5;
	color: #334155;
	margin-bottom: 0.85rem;
}
.mp-pc-consent-modal__intro p {
	margin: 0 0 0.5rem;
}
.mp-pc-consent-modal__check {
	display: flex;
	gap: 0.55rem;
	align-items: flex-start;
	font-size: 0.84rem;
	line-height: 1.45;
	color: #1e293b;
	cursor: pointer;
	margin-bottom: 1rem;
}
.mp-pc-consent-modal__check input {
	margin-top: 0.2rem;
	flex-shrink: 0;
	width: 1.05rem;
	height: 1.05rem;
}
.mp-pc-consent-modal__check-text {
	flex: 1;
}
.mp-pc-consent-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: flex-end;
}
.mp-pc-consent-modal__btn {
	border-radius: 10px;
	padding: 0.55rem 0.9rem;
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid transparent;
	min-height: 2.5rem;
}
.mp-pc-consent-modal__btn--ghost {
	background: #f1f5f9;
	border-color: #cbd5e1;
	color: #334155;
}
.mp-pc-consent-modal__btn--ghost:hover {
	background: #e2e8f0;
}
.mp-pc-consent-modal__btn--primary {
	background: var(--mp-pc-brand, #e8281a);
	border-color: var(--mp-pc-brand, #e8281a);
	color: #fff;
}
.mp-pc-consent-modal__btn--primary:hover {
	background: var(--mp-pc-brand-hover, #c2200e);
	border-color: var(--mp-pc-brand-hover, #c2200e);
}

.mp-pc-ai-notice {
	margin-top: 0.65rem;
	padding: 0.65rem 0.75rem;
	font-size: 0.9rem;
	line-height: 1.45;
	color: #2a3140;
	background: linear-gradient(180deg, #f7f8fb 0%, #eef0f5 100%);
	border: 1px solid #e2e6ee;
	border-radius: 10px;
}

.mp-pc-quality {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin-top: 0.55rem;
	padding: 0.55rem 0.65rem;
	border-radius: 10px;
	border: 1px solid #e2e6ee;
	background: #fff;
	font-size: 0.9rem;
	line-height: 1.4;
	animation: mp-pc-quality-in 0.4s ease;
}

@keyframes mp-pc-quality-in {
	from {
		opacity: 0;
		transform: translateY(4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.mp-pc-quality[hidden] {
	display: none;
}

.mp-pc-quality-dot {
	flex: 0 0 auto;
	width: 0.75rem;
	height: 0.75rem;
	margin-top: 0.2rem;
	border-radius: 999px;
	background: #9aa3b2;
	transition: background 0.3s ease;
}

.mp-pc-quality--green {
	border-color: #b7e4c7;
	background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}

.mp-pc-quality--green .mp-pc-quality-dot {
	background: #1f9d55;
	box-shadow: 0 0 6px rgba(31, 157, 85, 0.4);
}

.mp-pc-quality--yellow {
	border-color: #fcd34d;
	background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
}

.mp-pc-quality--yellow .mp-pc-quality-dot {
	background: #d4a017;
	box-shadow: 0 0 6px rgba(212, 160, 23, 0.4);
}

.mp-pc-quality--red {
	border-color: #fca5a5;
	background: linear-gradient(180deg, #fef2f2 0%, #fff 100%);
}

.mp-pc-quality--red .mp-pc-quality-dot {
	background: #d64545;
	box-shadow: 0 0 6px rgba(214, 69, 69, 0.4);
}

.mp-pc-ai-guest {
	margin-top: 0.55rem;
	padding: 0.6rem 0.7rem;
	font-size: 0.9rem;
	line-height: 1.45;
	color: #3a4354;
	background: linear-gradient(180deg, #f4f6fa 0%, #ebeef4 100%);
	border: 1px solid #dde3ee;
	border-radius: 10px;
}

.mp-pc-ai-guest[hidden] {
	display: none;
}

.mp-pc-ai-meta {
	margin-top: 0.55rem;
	display: grid;
	gap: 0.5rem;
}

.mp-pc-turnstile {
	min-height: 65px;
	overflow: hidden;
}

.mp-pc-turnstile[hidden] {
	display: none;
}

.mp-pc-turnstile iframe {
	max-width: 100% !important;
}

.mp-pc-ai-status {
	font-size: 0.88rem;
	line-height: 1.4;
	color: #4a5568;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 0.55rem 0.65rem;
	animation: mp-pc-status-in 0.3s ease;
}

@keyframes mp-pc-status-in {
	from {
		opacity: 0;
		transform: translateY(3px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.mp-pc-ai-status[hidden] {
	display: none;
}

/* —— Paso 3: host del área de trabajo —— */
.mp-pc-blank-canvas {
	box-sizing: border-box;
	width: 100%;
	min-height: 0;
}

.mp-pc-step3__head {
	position: relative;
}

/* —— Paso 3: área de trabajo nueva (sin mockup de camiseta/taza de fondo) —— */
.mp-pc-step3 {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.65rem;
	width: 100%;
}

.mp-pc-step3-tabs {
	display: inline-flex;
	gap: 0.4rem;
	padding: 0.25rem;
	border-radius: 999px;
	background: rgba(42, 36, 56, 0.06);
}

.mp-pc-step3-toolbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.55rem;
	width: 100%;
	margin-bottom: 0.15rem;
}

.mp-pc-step3-zonegroup {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	padding: 0.3rem 0.45rem;
	border-radius: 14px;
	background: rgba(42, 36, 56, 0.05);
}

.mp-pc-step3-zone-label {
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.9rem;
	color: #2a2438;
	padding: 0 0.35rem;
}

.mp-pc-step3-tab {
	appearance: none;
	border: none;
	background: transparent;
	padding: 0.45rem 1.1rem;
	min-height: 40px;
	border-radius: 999px;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.9rem;
	color: #6b6478;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-step3-tab[aria-selected='true'] {
	background: #fff;
	color: var(--mp-pc-brand, #e8281a);
	box-shadow: 0 2px 8px rgba(42, 36, 56, 0.12);
}

.mp-pc-step3-upload {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	border: 1.5px dashed rgba(232, 40, 26, 0.45);
	background: #fff;
	color: var(--mp-pc-brand, #e8281a);
	border-radius: 999px;
	padding: 0.42rem 0.85rem;
	min-height: 40px;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.86rem;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-step3-upload:hover,
.mp-pc-step3-upload:focus-visible {
	background: #fff5f3;
	border-style: solid;
	outline: none;
}

.mp-pc-step3-clear {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid rgba(42, 36, 56, 0.16);
	background: #fff;
	color: #5a5368;
	border-radius: 999px;
	padding: 0.42rem 0.75rem;
	min-height: 40px;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.84rem;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-step3-clear:hover:not(:disabled),
.mp-pc-step3-clear:focus-visible:not(:disabled) {
	border-color: var(--mp-pc-brand, #e8281a);
	color: var(--mp-pc-brand, #e8281a);
	outline: none;
}

.mp-pc-step3-clear:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.mp-pc-step3-upload__icon {
	font-size: 1rem;
	line-height: 1;
}

.mp-pc-step3-file {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	pointer-events: none !important;
	display: none !important;
}

.mp-pc-step3-upload-status {
	margin: 0;
	width: 100%;
	text-align: center;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.86rem;
	color: #6b6478;
}

.mp-pc-step3-upload-status--error {
	color: #c62828;
	font-weight: 700;
}

.mp-pc-step3-stagewrap {
	box-sizing: border-box;
	width: 100%;
	min-height: 240px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0;
}

.mp-pc-step3-workarea {
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
	background: repeating-conic-gradient(#faf9fb 0% 25%, #f1eff4 0% 50%) 50% / 22px 22px;
	border: 2px dashed rgba(42, 36, 56, 0.28);
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(42, 36, 56, 0.08);
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}

.mp-pc-step3-workarea--dragging {
	cursor: grabbing;
	touch-action: none;
}

.mp-pc-step3-mockup {
	display: none;
	box-sizing: border-box;
}

.mp-pc-step3-mockup__preview {
	position: relative;
	width: 100%;
	min-height: 240px;
	overflow: hidden;
}

.mp-pc-step3-mockup__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center top;
	user-select: none;
	-webkit-user-drag: none;
	pointer-events: none;
}

.mp-pc-step3-mockup__fit {
	position: absolute;
	overflow: hidden;
	pointer-events: none;
}

.mp-pc-step3-mockup__print {
	position: absolute;
	overflow: hidden;
	pointer-events: auto;
	touch-action: pan-y;
}

.mp-pc-step3-mockup__print--dragging {
	cursor: grabbing;
	touch-action: none;
}

.mp-pc-step3-mockup__tabs {
	display: inline-flex;
	justify-content: center;
	margin: 0 auto 0.55rem;
	width: fit-content;
	max-width: 100%;
}

.mp-pc-step3-mockup__tabs[hidden] {
	display: none !important;
}

.mp-pc-step3-mockup__colors {
	margin-top: 0.65rem;
	padding: 0.15rem 0.1rem 0;
}

.mp-pc-step3-mockup__colors[hidden] {
	display: none !important;
}

.mp-pc-step3-mockup__swatches {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
}

.mp-pc-step3-item--mock {
	cursor: grab;
}

.mp-pc-step3-item--mock .mp-pc-step3-item__body {
	pointer-events: none;
}

.mp-pc-step3-item--mock.mp-pc-step3-item--active {
	outline: none;
}

.mp-pc-step3-layers {
	position: absolute;
	inset: 0;
	overflow: visible;
}

.mp-pc-step3-item {
	position: absolute;
	box-sizing: border-box;
	cursor: grab;
	touch-action: pan-y;
}

.mp-pc-step3-item__body {
	position: absolute;
	inset: 0;
	transform-origin: center center;
}

.mp-pc-step3-item__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
	-webkit-user-drag: none;
}

.mp-pc-step3-handles {
	position: absolute;
	inset: -6px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.15s ease;
}

.mp-pc-step3-item--active .mp-pc-step3-handles {
	opacity: 1;
	pointer-events: auto;
}

.mp-pc-step3-handle {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.65rem;
	height: 1.65rem;
	padding: 0;
	border-radius: 999px;
	border: 2px solid #fff;
	background: var(--mp-pc-brand, #e8281a);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1;
	box-shadow: 0 2px 8px rgba(42, 36, 56, 0.25);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-step3-handle--delete {
	top: -0.55rem;
	left: -0.55rem;
	background: #c62828;
}

.mp-pc-step3-handle--rotate {
	top: -0.55rem;
	right: -0.55rem;
	cursor: grab;
}

.mp-pc-step3-handle--scale {
	right: -0.55rem;
	bottom: -0.55rem;
	cursor: nwse-resize;
}

.mp-pc-step3-handle--up {
	left: -0.55rem;
	bottom: -0.55rem;
	background: #1565c0;
	font-size: 0.62rem;
}

.mp-pc-step3-handle--down {
	left: 50%;
	bottom: -0.75rem;
	transform: translateX(-50%);
	background: #1565c0;
	font-size: 0.62rem;
}

.mp-pc-step3-handle--duplicate {
	top: -0.55rem;
	left: 50%;
	transform: translateX(-50%);
	background: #7b5cbf;
}

.mp-pc-step3-handle[hidden] {
	display: none !important;
}

@media (max-width: 600px) {
	.mp-pc-step3-handle {
		width: 2rem;
		height: 2rem;
		font-size: 0.82rem;
	}

	.mp-pc-step3-handle--delete {
		top: -0.75rem;
		left: -0.75rem;
	}

	.mp-pc-step3-handle--rotate {
		top: -0.75rem;
		right: -0.75rem;
	}

	.mp-pc-step3-handle--scale {
		right: -0.75rem;
		bottom: -0.75rem;
	}

	.mp-pc-step3-handle--up {
		left: -0.75rem;
		bottom: -0.75rem;
	}

	.mp-pc-step3-handle--down {
		bottom: -0.95rem;
	}

	.mp-pc-step3-handle--duplicate {
		top: -0.75rem;
	}
}

/* Medida real (cm) sobre la capa seleccionada, visible al escalar. */
.mp-pc-step3-layer-size {
	position: absolute;
	top: 0.3rem;
	left: 50%;
	transform: translateX(-50%);
	display: none;
	z-index: 5;
	max-width: calc(100% - 0.6rem);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	background: rgba(28, 25, 23, 0.8);
	color: #fff;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.7rem;
	line-height: 1.2;
	padding: 0.18rem 0.45rem;
	border-radius: 999px;
	pointer-events: none;
	user-select: none;
}

.mp-pc-step3-item--active .mp-pc-step3-layer-size {
	display: block;
}

.mp-pc-step3-size {
	margin: 0.15rem 0 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
	color: #6b6478;
	text-align: center;
	width: 100%;
}

.mp-pc-step3-stagecol {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
	width: 100%;
}

.mp-pc-step3-tools {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
	gap: 0.75rem 1rem;
	margin: 0.85rem auto 0;
	padding: 0.85rem 0.75rem 0.95rem;
	max-width: 920px;
	width: 100%;
	box-sizing: border-box;
	border-radius: 14px;
	background: rgba(248, 250, 252, 0.95);
	border: 1px solid rgba(148, 163, 184, 0.28);
}

.mp-pc-step3-tools__text {
	flex: 1 1 240px;
	min-width: min(100%, 240px);
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.mp-pc-step3-text-input {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid rgba(148, 163, 184, 0.55);
	border-radius: 10px;
	padding: 0.55rem 0.65rem;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.95rem;
	min-height: 44px;
}

.mp-pc-step3-tools__selects {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.mp-pc-step3-font-select {
	flex: 1 1 160px;
	min-width: 140px;
	min-height: 44px;
	border-radius: 10px;
	border: 1px solid rgba(148, 163, 184, 0.55);
	padding: 0.45rem 0.55rem;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.9rem;
	background: #fff;
}

.mp-pc-step3-text-colors {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	width: 100%;
	max-width: 100%;
}

.mp-pc-step3-color-label {
	margin: 0.15rem 0 0;
}

.mp-pc-step3-text-colors .mp-pc-color-swatch,
.mp-pc-step3-color-swatch {
	appearance: none;
	-webkit-appearance: none;
	display: inline-block;
	width: 2.15rem;
	height: 2.15rem;
	min-width: 2.15rem;
	min-height: 2.15rem;
	padding: 0;
	border-radius: 8px;
	border: 2px solid #cfd6e4;
	flex: 0 0 auto;
	overflow: hidden;
	cursor: pointer;
	box-sizing: border-box;
	background: var(--sw, #ccc);
}

.mp-pc-step3-text-colors .mp-pc-color-swatch--active,
.mp-pc-step3-color-swatch.mp-pc-color-swatch--active {
	border-color: #111;
	box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.35);
}

.mp-pc-step3-text-colors .mp-pc-color-swatch[data-color="#ffffff"],
.mp-pc-step3-text-colors .mp-pc-color-swatch[data-color="#eceff1"],
.mp-pc-step3-color-swatch[data-color="#ffffff"],
.mp-pc-step3-color-swatch[data-color="#eceff1"] {
	box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.45);
}

.mp-pc-step3-text-colors .mp-pc-color-swatch--active[data-color="#ffffff"],
.mp-pc-step3-text-colors .mp-pc-color-swatch--active[data-color="#eceff1"],
.mp-pc-step3-color-swatch.mp-pc-color-swatch--active[data-color="#ffffff"],
.mp-pc-step3-color-swatch.mp-pc-color-swatch--active[data-color="#eceff1"] {
	box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.45), 0 0 0 2px rgba(37, 99, 235, 0.35);
}

.mp-pc-step3-text-apply {
	align-self: flex-start;
	appearance: none;
	border: none;
	border-radius: 999px;
	background: #334155;
	color: #fff;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.88rem;
	padding: 0.5rem 1rem;
	min-height: 40px;
	cursor: pointer;
}

.mp-pc-step3-text-apply:hover,
.mp-pc-step3-text-apply:focus-visible {
	filter: brightness(1.06);
	outline: none;
}

.mp-pc-step3-text-toggle {
	appearance: none;
	display: none;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	min-height: 48px;
	padding: 0.55rem 1.1rem;
	border: 1.5px dashed rgba(42, 36, 56, 0.28);
	border-radius: 999px;
	background: linear-gradient(180deg, #fff 0%, #f6f3fb 100%);
	color: #2a2438;
	font-family: "Fredoka", "Nunito", system-ui, sans-serif;
	font-weight: 650;
	font-size: 1.02rem;
	box-shadow: 0 6px 16px rgba(42, 36, 56, 0.08);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-step3-text-toggle__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.85rem;
	height: 1.85rem;
	border-radius: 999px;
	background: var(--mp-pc-brand, #e8281a);
	color: #fff;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 800;
	font-size: 0.78rem;
	letter-spacing: -0.03em;
}

.mp-pc-step3-text-toggle:hover,
.mp-pc-step3-text-toggle:focus-visible {
	border-style: solid;
	border-color: var(--mp-pc-brand, #e8281a);
	outline: none;
}

.mp-pc-step3-text-close {
	appearance: none;
	display: none;
	align-self: flex-end;
	border: none;
	background: transparent;
	color: #6b6478;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.82rem;
	padding: 0.15rem 0.2rem;
	cursor: pointer;
}

.mp-pc-step3-text-panel {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	width: 100%;
}

.mp-pc-step3-tools__ai {
	flex: 0 1 180px;
	min-width: min(100%, 170px);
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.35rem;
}

.mp-pc-step3-rmbg {
	appearance: none;
	border: 1px solid rgba(232, 40, 26, 0.35);
	border-radius: 999px;
	background: #fff;
	color: var(--mp-pc-brand, #e8281a);
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.88rem;
	padding: 0.5rem 0.85rem;
	min-height: 44px;
	cursor: pointer;
}

.mp-pc-step3-rmbg:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.mp-pc-step3-rmbg:not(:disabled):hover,
.mp-pc-step3-rmbg:not(:disabled):focus-visible {
	background: rgba(232, 40, 26, 0.08);
	outline: none;
}

.mp-pc-step3-rmbg-quota {
	margin: 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.78rem;
	line-height: 1.35;
	color: #64748b;
	text-align: center;
}

.mp-pc-step3-rmbg-quota--empty {
	color: #b45309;
	font-weight: 600;
}

.mp-pc-step3-quality {
	box-sizing: border-box;
	width: 100%;
	max-width: 36rem;
	margin: 0.35rem auto;
}

.mp-pc-step3-quality .mp-pc-quality-text {
	min-width: 0;
}

.mp-pc-step3-quality[hidden] {
	display: none !important;
}

.mp-pc-step3-item--text {
	overflow: visible;
}

.mp-pc-step3-item--text .mp-pc-step3-item__body {
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

.mp-pc-step3-item__text {
	display: block;
	width: 100%;
	max-width: none;
	text-align: center;
	white-space: nowrap;
	word-break: keep-all;
	overflow-wrap: normal;
	overflow: visible;
	user-select: none;
	pointer-events: none;
	text-shadow: 0 0 2px rgba(255, 255, 255, 0.65);
}

@media (max-width: 1024px) {
	.mp-pc-step3-text-toggle {
		display: inline-flex;
	}

	.mp-pc-step3-text-close {
		display: inline-flex;
	}

	.mp-pc-step3-tools:not(.mp-pc-step3-tools--text-open) .mp-pc-step3-text-panel {
		display: none;
	}

	.mp-pc-step3-tools--text-open .mp-pc-step3-text-toggle {
		display: none;
	}

	.mp-pc-step3-mockup {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		max-width: 28rem;
		margin: 0.35rem auto 0;
	}

	.mp-pc-step3-mockup__preview {
		width: 100%;
		min-height: 220px;
	}

	.mp-pc-step3-mockup__colors {
		width: 100%;
	}

	.mp-pc-step3-tools {
		width: 100%;
		max-width: 40rem;
	}

	.mp-pc-step3-tools__ai {
		flex: 1 1 auto;
		min-width: 0;
		width: 100%;
	}
}

@media (max-width: 600px) {
	.mp-pc-step3-tools {
		padding-inline: 0.55rem;
	}

	.mp-pc-step3-quality {
		max-width: none;
		margin: 0.15rem 0 0.2rem;
		padding: 0.32rem 0.55rem;
		font-size: 0.75rem;
		line-height: 1.25;
		gap: 0.4rem;
		align-items: center;
		border-radius: 8px;
	}

	.mp-pc-step3-quality .mp-pc-quality-dot {
		width: 0.55rem;
		height: 0.55rem;
		margin-top: 0;
	}

	.mp-pc-step3-quality .mp-pc-quality-text {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.mp-pc-step3-text-colors {
		gap: 0.5rem;
	}

	.mp-pc-step3-text-colors .mp-pc-color-swatch,
	.mp-pc-step3-color-swatch {
		width: 2.35rem;
		height: 2.35rem;
		min-width: 2.35rem;
		min-height: 2.35rem;
	}
}

@media (min-width: 601px) and (max-width: 1024px) {
	.mp-pc-step3-quality {
		max-width: 32rem;
		margin: 0.25rem auto 0.35rem;
	}
}

@media (min-width: 1025px) {
	.mp-pc-step3 {
		display: grid;
		grid-template-columns: minmax(16.5rem, 20.5rem) max-content minmax(16rem, 1fr);
		grid-template-areas:
			"toolbar stage mock"
			"tools   stage mock"
			"quality stage mock"
			"status  stage mock";
		align-items: start;
		column-gap: 1.1rem;
		row-gap: 0;
		max-width: none;
		width: 100%;
	}

	.mp-pc-step3-toolbar {
		grid-area: toolbar;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		flex-wrap: nowrap;
		max-width: none;
		margin: 0;
		padding: 0.75rem 0.7rem 0.55rem;
		border-radius: 14px 14px 0 0;
		background: rgba(248, 250, 252, 0.95);
		border: 1px solid rgba(148, 163, 184, 0.28);
		border-bottom: none;
	}

	.mp-pc-step3-zonegroup {
		justify-content: space-between;
		width: 100%;
		gap: 0.45rem;
		padding: 0.35rem 0.45rem;
	}

	.mp-pc-step3-upload {
		padding: 0.48rem 0.85rem;
		font-size: 0.88rem;
		flex: 1 1 auto;
	}

	.mp-pc-step3-tools {
		grid-area: tools;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		justify-content: flex-start;
		margin: 0;
		max-width: none;
		width: 100%;
		border-radius: 0;
		border-top: none;
		border-bottom: none;
	}

	.mp-pc-step3:has(.mp-pc-step3-quality[hidden]) .mp-pc-step3-tools {
		border-bottom: 1px solid rgba(148, 163, 184, 0.28);
		border-radius: 0 0 14px 14px;
	}

	.mp-pc-step3-tools__text,
	.mp-pc-step3-tools__ai {
		flex: 0 0 auto;
		min-width: 0;
		width: 100%;
	}

	.mp-pc-step3-quality {
		grid-area: quality;
		max-width: none;
		width: 100%;
		margin: 0;
		border-radius: 0 0 14px 14px;
		border: 1px solid rgba(148, 163, 184, 0.28);
		border-top: none;
		background: rgba(248, 250, 252, 0.95);
	}

	.mp-pc-step3-upload-status {
		grid-area: status;
		margin-top: 0.45rem;
		text-align: left;
	}

	.mp-pc-step3-stagecol {
		grid-area: stage;
		width: max-content;
		max-width: 100%;
		align-self: start;
	}

	.mp-pc-step3-stagewrap {
		min-height: 0;
		max-width: none;
		width: max-content;
		margin: 0;
		padding: 0;
		justify-content: center;
	}

	.mp-pc-step3-size {
		text-align: center;
	}

	.mp-pc-step3-text-toggle,
	.mp-pc-step3-text-close {
		display: none !important;
	}

	.mp-pc-step3-text-panel {
		display: flex;
	}

	.mp-pc-step3-mockup {
		grid-area: mock;
		display: flex;
		flex-direction: column;
		align-items: center;
		min-width: 0;
		width: 100%;
		align-self: start;
	}

	.mp-pc-step3-mockup__preview {
		width: 100%;
	}

	.mp-pc-step3-mockup__colors {
		width: 100%;
		max-width: 22rem;
	}
}

@media (max-width: 600px) {
	.mp-pc-step3-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.mp-pc-step3-zonegroup {
		justify-content: space-between;
		width: 100%;
	}

	.mp-pc-step3-upload {
		flex: 1 1 auto;
		justify-content: center;
	}
}

.mp-pc-blank-canvas__stage {
	display: block;
	width: 100%;
	min-height: 0;
}

.mp-pc-workflow--parked .mp-pc-cart-slot--below {
	box-sizing: border-box;
	width: 100%;
	max-width: 36rem;
	margin: 1.25rem auto 0;
	padding: 1.15rem 1rem 1.35rem;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid rgba(232, 40, 26, 0.12);
	border-radius: 16px;
	box-shadow: 0 6px 18px rgba(42, 36, 56, 0.05);
}

.mp-pc-cart-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0 0 0.75rem;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.86rem;
	line-height: 1.4;
	color: #334155;
}

.mp-pc-cart-consent input {
	margin-top: 0.15rem;
	flex: 0 0 auto;
}

/* Ocultar selects Woo del resumen: se eligen en Paso 1 */
body.mp-pc-crea-parked .summary table.variations,
body.mp-pc-crea-parked .entry-summary table.variations,
body.mp-pc-crea-parked form.cart table.variations.mp-pc-variations--crea-source {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* —— Cabecera Maruja Crea —— */
.mp-pc-crea-intro {
	--mp-pc-crea-red: var(--mp-pc-brand, #e8281a);
	--mp-pc-crea-muted: #5a5368;
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0 auto clamp(0.85rem, 2.5vw, 1.35rem);
	padding: 0 clamp(0.85rem, 3vw, 1.35rem);
	text-align: center;
}

.mp-pc-crea-intro__title {
	margin: 0 0 0.45em;
	font-family: "Fredoka", "Nunito", system-ui, sans-serif;
	font-weight: 600;
	font-size: clamp(2rem, 6vw, 3.1rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--mp-pc-crea-red);
	text-wrap: balance;
	text-align: center;
}

.mp-pc-crea-intro__lead {
	margin: 0 auto;
	max-width: min(96%, 42rem);
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 400;
	font-size: clamp(0.98rem, 2.5vw, 1.12rem);
	line-height: 1.55;
	color: var(--mp-pc-crea-muted);
	text-wrap: pretty;
	text-align: center;
}

.mp-pc-workflow--parked .mp-pc-step {
	background: rgba(255, 255, 255, 0.92);
	border-color: rgba(232, 40, 26, 0.12);
	box-shadow: 0 6px 18px rgba(42, 36, 56, 0.05);
}

/* —— Paso 1: atributos estilo app —— */
.mp-pc-crea-steps {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

.mp-pc-step {
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 0.85rem;
	padding: 0.85rem 1rem;
	border-radius: 14px;
	background: #fff;
	border: 1px solid rgba(42, 36, 56, 0.1);
	box-shadow: 0 4px 14px rgba(42, 36, 56, 0.05);
}

.mp-pc-step__head {
	text-align: center;
	margin: 0 0 0.75rem;
}

.mp-pc-step__title {
	margin: 0 0 0.2em;
	font-family: "Fredoka", "Nunito", system-ui, sans-serif;
	font-weight: 600;
	font-size: clamp(1.05rem, 2.6vw, 1.2rem);
	line-height: 1.25;
	color: #1f1a2b;
	text-align: center;
}

.mp-pc-step__lead {
	margin: 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: clamp(0.82rem, 2vw, 0.92rem);
	line-height: 1.4;
	color: #6b6478;
	text-align: center;
}

.mp-pc-step__attrs-loading,
.mp-pc-step__attrs-empty {
	margin: 0;
	text-align: center;
	font-family: "Nunito", system-ui, sans-serif;
	color: #6b6478;
	font-size: 0.9rem;
}

/* Una sola línea de desplegables (cajón compacto) */
.mp-pc-attr-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-end;
	justify-content: stretch;
	gap: 0.55rem;
	width: 100%;
}

.mp-pc-attr-field {
	display: flex;
	flex-direction: column;
	gap: 0.28rem;
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	cursor: pointer;
}

.mp-pc-attr-field__label {
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #6b6478;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mp-pc-attr-field__select-wrap {
	position: relative;
	display: block;
	width: 100%;
}

.mp-pc-attr-field__select-wrap::after {
	content: "";
	position: absolute;
	right: 0.7rem;
	top: 50%;
	width: 0.4rem;
	height: 0.4rem;
	border-right: 2px solid #6b6478;
	border-bottom: 2px solid #6b6478;
	transform: translateY(-65%) rotate(45deg);
	pointer-events: none;
}

.mp-pc-attr-field__select {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	min-height: 42px;
	padding: 0.45rem 1.85rem 0.45rem 0.7rem;
	border: 1.5px solid rgba(42, 36, 56, 0.14);
	border-radius: 10px;
	background: #f7f6f9;
	color: #1f1a2b !important;
	-webkit-text-fill-color: #1f1a2b;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 600;
	font-size: 0.92rem;
	line-height: 1.2;
	cursor: pointer;
}

.mp-pc-attr-field__select:focus {
	outline: none;
	border-color: var(--mp-pc-brand, #e8281a);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(232, 40, 26, 0.12);
}

.mp-pc-attr-field__select option {
	color: #1f1a2b;
	background: #fff;
}

@media (max-width: 600px) {
	.mp-pc-step {
		padding: 0.7rem 0.65rem;
		border-radius: 12px;
		margin-bottom: 0.7rem;
	}

	.mp-pc-step__head {
		margin-bottom: 0.6rem;
	}

	.mp-pc-attr-row {
		flex-wrap: wrap;
		gap: 0.5rem;
	}

	.mp-pc-attr-field {
		flex: 1 1 calc(50% - 0.25rem);
		min-width: calc(50% - 0.25rem);
	}

	.mp-pc-attr-field__select {
		min-height: 44px;
		font-size: 0.9rem;
	}
}

@media (max-width: 380px) {
	.mp-pc-attr-field {
		flex: 1 1 100%;
		min-width: 100%;
	}
}

/* —— Paso 1: Limpiar —— */
.mp-pc-step__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 0.65rem;
}

.mp-pc-step__clear {
	appearance: none;
	border: 1.5px solid rgba(42, 36, 56, 0.16);
	background: #fff;
	color: #5a5368;
	border-radius: 999px;
	padding: 0.45rem 0.95rem;
	min-height: 40px;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.88rem;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-step__clear:hover,
.mp-pc-step__clear:focus-visible {
	border-color: var(--mp-pc-brand, #e8281a);
	color: var(--mp-pc-brand, #e8281a);
	outline: none;
}

/* —— Paso 2: zonas + precio + confianza —— */
.mp-pc-workflow[data-mp-pc-product-type="taza"] .mp-pc-zone-checks,
.mp-pc-crea-steps[data-mp-pc-product-type="taza"] .mp-pc-zone-checks,
.mp-pc-workflow[data-mp-pc-product-type="taza"] .mp-pc-step3-mockup__tabs,
.mp-pc-workflow[data-mp-pc-product-type="taza"] #mp-pc-step-1,
.mp-pc-crea-steps[data-mp-pc-product-type="taza"] #mp-pc-step-1,
.mp-pc-workflow[data-mp-pc-product-type="taza"] .mp-pc-step3-mockup__colors,
.mp-pc-workflow[data-mp-pc-product-type="lamina"] .mp-pc-zone-checks,
.mp-pc-crea-steps[data-mp-pc-product-type="lamina"] .mp-pc-zone-checks,
.mp-pc-workflow[data-mp-pc-product-type="lamina"] .mp-pc-step3-mockup__colors {
	display: none !important;
}

.mp-pc-mug3d-host {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	touch-action: pan-y;
	cursor: grab;
	border-radius: 12px;
	overflow: hidden;
	user-select: none;
	-webkit-user-select: none;
	-webkit-touch-callout: none;
	-webkit-user-drag: none;
}

.mp-pc-mug3d-host:active,
.mp-pc-mug3d-host--dragging {
	cursor: grabbing;
}

.mp-pc-mug3d-host--dragging {
	touch-action: none;
}

.mp-pc-mug3d-host canvas {
	display: block;
	width: 100%;
	height: 100%;
	user-select: none;
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-touch-callout: none;
}

.mp-pc-step3-mockup__preview--mug3d {
	aspect-ratio: 1 / 1;
	width: min(100%, 400px);
	max-width: 400px;
	max-height: none;
	height: auto !important;
	min-height: 0;
	margin-inline: auto;
	overflow: hidden;
}

@media (max-width: 767px) {
	.mp-pc-step3-mockup__preview--mug3d {
		width: min(100%, 58vw, 280px);
		max-width: 280px;
		max-height: none;
	}
}

.mp-pc-step3-mockup__preview--mug3d .mp-pc-step3-mockup__img,
.mp-pc-step3-mockup__preview--mug3d .mp-pc-step3-mockup__fit {
	display: none !important;
}

.mp-pc-mug3d-hint {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.4rem;
	z-index: 2;
	margin: 0;
	pointer-events: none;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.8rem;
	font-weight: 600;
	color: #6b6478;
	text-align: center;
}

.mp-pc-mug3d-status {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 3;
	transform: translate(-50%, -50%);
	margin: 0;
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	background: rgba(42, 36, 56, 0.78);
	color: #fff;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.82rem;
	font-weight: 700;
	pointer-events: none;
	white-space: nowrap;
}

.mp-pc-zone-checks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.65rem;
	margin: 0 0 0.85rem;
}

.mp-pc-zone-check {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	padding: 0.55rem 0.9rem;
	border-radius: 12px;
	border: 1.5px solid rgba(42, 36, 56, 0.12);
	background: #fff;
	cursor: pointer;
	user-select: none;
	min-height: 46px;
	-webkit-tap-highlight-color: transparent;
}

.mp-pc-zone-check__input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.mp-pc-zone-check__box {
	flex: 0 0 auto;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 6px;
	border: 2px solid rgba(42, 36, 56, 0.28);
	background: #fff;
	position: relative;
}

.mp-pc-zone-check__input:checked + .mp-pc-zone-check__box {
	border-color: var(--mp-pc-brand, #e8281a);
	background: var(--mp-pc-brand, #e8281a);
}

.mp-pc-zone-check__input:checked + .mp-pc-zone-check__box::after {
	content: "";
	position: absolute;
	left: 0.28rem;
	top: 0.08rem;
	width: 0.32rem;
	height: 0.6rem;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.mp-pc-zone-check__input:focus-visible + .mp-pc-zone-check__box {
	box-shadow: 0 0 0 3px rgba(232, 40, 26, 0.2);
}

.mp-pc-zone-check:has(.mp-pc-zone-check__input:checked) {
	border-color: rgba(232, 40, 26, 0.35);
	background: #fff5f3;
}

.mp-pc-zone-check__label {
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 0.95rem;
	color: #2a2438;
}

.mp-pc-crea-price {
	text-align: center;
	margin: 0 0 0.85rem;
	min-height: 2.75rem;
	padding: 0.35rem 0.25rem;
}

.mp-pc-crea-price__hint {
	margin: 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.92rem;
	font-weight: 600;
	color: #6b6478;
}

.mp-pc-crea-price__from {
	margin: 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.78rem;
	font-weight: 700;
	color: #8a857c;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.mp-pc-crea-price__amount {
	margin: 0;
	font-family: "Fredoka", "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: clamp(1.7rem, 5.5vw, 2.15rem);
	line-height: 1.15;
	color: #129a45;
	letter-spacing: -0.01em;
}

.mp-pc-crea-price__note {
	margin: 0.25rem 0 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: 0.88rem;
	font-weight: 600;
	color: #2f9e57;
}

.mp-pc-crea-trust {
	margin: 0;
	padding: 0.75rem 0.85rem;
	border-radius: 12px;
	background: rgba(26, 157, 74, 0.08);
	border: 1px solid rgba(26, 157, 74, 0.18);
	text-align: center;
}

.mp-pc-crea-trust__title {
	margin: 0 0 0.3rem;
	font-family: "Fredoka", "Nunito", system-ui, sans-serif;
	font-weight: 600;
	font-size: 1rem;
	color: #1a7a3c;
}

.mp-pc-crea-trust__text {
	margin: 0;
	font-family: "Nunito", system-ui, sans-serif;
	font-size: clamp(0.84rem, 2vw, 0.95rem);
	line-height: 1.45;
	color: #3d5c48;
}

@media (max-width: 600px) {
	.mp-pc-zone-checks {
		flex-direction: column;
		align-items: stretch;
	}

	.mp-pc-zone-check {
		justify-content: flex-start;
	}

	.mp-pc-step__clear {
		width: 100%;
	}
}

@media (min-width: 1025px) {
	.mp-pc-zone-checks {
		gap: 0.85rem;
	}

	.mp-pc-crea-trust {
		max-width: 46rem;
		margin-left: auto;
		margin-right: auto;
	}
}
