/*
 * Patitas de Fuego — WooCommerce design system layer
 * Capa base para TODAS las vistas de WooCommerce usando solo tokens y
 * clases pf-* + clases oficiales de WooCommerce.
 * Cargada después de style.css (depende de `blocksy-child`).
 */

/* =========================================================
   WRAPPER PRINCIPAL (.pf-woo-main dentro de <main id="main">)
   ========================================================= */
.pf-woo-main {
	padding: 48px 0 96px;
}

/* El contenedor de WooCommerce no usa el flex+gap del home */
.pf-woo-main .pf-container {
	display: block;
}

/* =========================================================
   BREADCRUMB — RETIRADO (R2)
   El breadcrumb "Inicio / Categoría / Subcategoría" ya no se
   renderiza: las vistas de listado muestran solo el título.
   ========================================================= */

/* =========================================================
   TÍTULO DE TIENDA / ARCHIVO
   ========================================================= */
.pf-shop-header {
	margin-bottom: 24px;
}
.pf-shop-title {
	font-size: 30px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
@media (min-width: 768px) {
	.pf-shop-title { font-size: 40px; }
}

/* =========================================================
   TOOLBAR (total de resultados + ordenar por) — R2
   Sin caja ni diseño de contenedor: solo los dos elementos
   en una fila limpia.
   ========================================================= */
.woocommerce .woo-listing-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin-bottom: var(--pf-gutter);
}
.woocommerce .woocommerce-result-count {
	font-size: 13px;
	color: var(--pf-text-muted);
	margin: 0;
}
.woocommerce form.woocommerce-ordering {
	margin: 0;
}
.woocommerce form.woocommerce-ordering select {
	width: auto;
	appearance: auto;
	-webkit-appearance: auto;
	background: var(--pf-surface-low);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	color: var(--pf-text);
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 500;
	padding: 8px 32px 8px 12px;
	transition: border-color .2s ease;
}
/* Flecha nativa del select: ocultar el ícono svg de Blocksy (doble flecha) */
.woocommerce form.woocommerce-ordering .ct-sort-icon {
	display: none;
}

/* =========================================================
   GRID DE PRODUCTOS (equivalente pf-* del grid del home)
   ========================================================= */
.woocommerce ul.products,
.pf-shop-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: var(--pf-gutter);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
}
@media (min-width: 640px) {
	.woocommerce ul.products,
	.pf-shop-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (min-width: 768px) {
	.woocommerce ul.products,
	.pf-shop-grid {
		grid-template-columns: repeat(4, 1fr) !important;
	}
}

/* =========================================================
   TARJETA DE PRODUCTO DEL LOOP — el <li> usa el marcado pf-card
   (woocommerce/content-product.php + pf_product_card), idéntico
   al del home. Aquí solo se ajusta la media al formato cuadrado.
   ========================================================= */
.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	position: relative;
	align-items: stretch;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0;
}
/* Blocksy añade margen entre elementos del card; la pf-card usa su propio padding */
.woocommerce ul.products li.product.pf-card > * {
	margin-bottom: 0;
}
.woocommerce ul.products li.product .pf-card-media {
	height: auto;
	aspect-ratio: 1 / 1;
}
.woocommerce ul.products li.product .pf-card-media > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.woocommerce ul.products li.product img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	padding: 8%;
	transition: transform .5s ease;
}
.woocommerce ul.products li.product:hover img {
	transform: scale(1.05);
}

/* Placeholder sin Imagen destacada (span.pf-card-noimg) */
.woocommerce ul.products li.product .pf-card-noimg .material-symbols-outlined {
	font-size: 44px;
}

/* Badges de la card (pf-card-badges) / enlace "Añadido al carrito" */
.woocommerce ul.products li.product .pf-card-badges {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
}
/*
 * Botón "Ver carrito" redundante (R4): al agregar un producto se abre el
 * carrito lateral, así que este enlace ya no es necesario. Cubre las cards
 * de tienda (ul.products li.product) y las del home (article.pf-card).
 */
.woocommerce ul.products li.product .pf-card-body a.added_to_cart,
.pf-card .pf-card-body a.added_to_cart,
.woocommerce-page main .ct-cart-actions > .added_to_cart {
	display: none !important;
}

/* =========================================================
   BOTÓN DE TARJETA (R1)
   - Texto BLANCO: en las vistas WooCommerce el `.woocommerce a`
     de style.css gana por especificidad y oscurece el texto del
     botón; aquí se restaura el blanco.
   - Una sola línea (nowrap) y altura uniforme en todas las tarjetas.
   - Sin ícono: el marcado ya no lo incluye (inc/pf-woo.php).
   ========================================================= */
.woocommerce ul.products li.product .pf-card-btn,
.woocommerce ul.products li.product a.pf-card-btn,
.woocommerce ul.products li.product a.pf-card-btn:hover,
.woocommerce ul.products li.product a.pf-card-btn:focus,
.woocommerce ul.products li.product a.pf-card-btn:visited {
	color: #ffffff;
}
.woocommerce ul.products li.product .pf-card-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 16px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.woocommerce ul.products li.product .pf-card-btn:hover {
	background: var(--pf-red-hover);
}
/* Sin stock: atenuación con la clase nativa de Woo (sin badge/texto nuevo) */
.woocommerce ul.products li.product.outofstock .pf-card-media img {
	opacity: .5;
	filter: grayscale(60%);
}
/* "Ver producto añadido" mantiene la misma altura uniforme */
.woocommerce ul.products li.product .pf-card-body a.added_to_cart {
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 16px;
	line-height: 1;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

/* =========================================================
   PAGINACIÓN
   ========================================================= */
.woocommerce nav.woocommerce-pagination,
.woocommerce .ct-pagination {
	display: flex;
	justify-content: center;
	margin-top: 48px;
	/* Los números van dentro de un div y Anterior/Siguiente son hermanos:
	   sin gap en el contenedor quedan pegados a los números */
	gap: 8px;
	flex-wrap: wrap;
}
/* El grupo de números también debe ser flex con separación */
.woocommerce .ct-pagination > div {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce .ct-pagination ul {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 0;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
	justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce .ct-pagination ul li {
	border: 0;
	margin: 0;
	padding: 0;
}
.woocommerce .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	color: var(--pf-text);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.woocommerce a.page-numbers:hover {
	border-color: var(--pf-primary);
	color: var(--pf-text);
}
.woocommerce .page-numbers.current,
.woocommerce .page-numbers.current:hover {
	background: var(--pf-primary);
	border-color: var(--pf-primary);
	color: #fff;
}
.woocommerce .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}
.woocommerce .page-numbers.next,
.woocommerce .page-numbers.prev {
	padding: 0 20px;
}

/* =========================================================
   NOTICES
   ========================================================= */
.woocommerce-page main .woocommerce-message,
.woocommerce-page main .woocommerce-info,
.woocommerce-page main .woocommerce-error,
.woocommerce-page main ul.woocommerce-error {
	position: relative;
	margin: 0 0 24px;
	padding: 16px 20px 16px 48px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	list-style: none;
	font-size: 14px;
	color: var(--pf-text-variant);
}
.woocommerce-page main .woocommerce-error,
.woocommerce-page main ul.woocommerce-error {
	border-top-color: var(--pf-red);
}
.woocommerce-page main ul.woocommerce-error li {
	list-style: none;
	margin: 0;
}
/* Íconos de notice: SVG enmascarado (independiente de fuentes de íconos) */
.woocommerce-page main .woocommerce-message::before,
.woocommerce-page main .woocommerce-info::before,
.woocommerce-page main .woocommerce-error::before,
.woocommerce-page main ul.woocommerce-error::before {
	content: '';
	position: absolute;
	left: 16px;
	top: 16px;
	width: 20px;
	height: 20px;
	background-color: var(--pf-primary);
	-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-page main .woocommerce-message::before {
	-webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z'/%3E%3C/svg%3E");
}
.woocommerce-page main .woocommerce-error::before,
.woocommerce-page main ul.woocommerce-error::before {
	background-color: var(--pf-red);
	-webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");
}
.woocommerce-page main .woocommerce-message .button,
.woocommerce-page main .woocommerce-info .button {
	margin-left: auto;
}

/* =========================================================
   FORMULARIOS — inputs, selects, textareas
   ========================================================= */
.woocommerce-page main input[type="text"],
.woocommerce-page main input[type="email"],
.woocommerce-page main input[type="tel"],
.woocommerce-page main input[type="password"],
.woocommerce-page main input[type="search"],
.woocommerce-page main input[type="url"],
.woocommerce-page main textarea,
.woocommerce-page main select {
	width: 100%;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	color: var(--pf-text);
	font-family: var(--pf-font-body);
	font-size: 15px;
	line-height: 1.4;
	padding: 12px 14px;
	transition: border-color .2s ease;
}
.woocommerce-page main select {
	width: 100%;
	appearance: auto;
}
.woocommerce-page main input[type="text"]:focus,
.woocommerce-page main input[type="email"]:focus,
.woocommerce-page main input[type="tel"]:focus,
.woocommerce-page main input[type="password"]:focus,
.woocommerce-page main input[type="search"]:focus,
.woocommerce-page main input[type="url"]:focus,
.woocommerce-page main textarea:focus,
.woocommerce-page main select:focus {
	border-color: var(--pf-red) !important;
	outline: none;
}
/* Cantidad: compacta, no ocupa el 100% */
.woocommerce-page main input.qty {
	width: auto;
	text-align: center;
}
/* Select2 (cuenta / checkout) */
.woocommerce-page main .select2-container .select2-selection--single {
	height: auto;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 10px 14px;
}

/* Botones WooCommerce mapeados a pf-btn (complementa style.css) */
.woocommerce-page main a.button,
.woocommerce-page main button.button,
.woocommerce-page main input.button,
.woocommerce-page main #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	line-height: 1.2;
	min-height: 0;
}
.woocommerce-page main a.button.disabled,
.woocommerce-page main button.button:disabled,
.woocommerce-page main button.button.disabled,
.woocommerce-page main input.button:disabled {
	opacity: .5;
	cursor: not-allowed;
}

/* Producto variable / simple: cantidad + botón en fila, sin solaparse */
.woocommerce-page main .ct-cart-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
}
.woocommerce-page main .ct-cart-actions > .quantity {
	width: 110px;
	flex: 0 0 110px;
	order: 1;
}
.woocommerce-page main .ct-cart-actions .quantity input {
	width: 100%;
	height: 100%;
	text-align: center;
	padding: 0 26px 0 12px;
}
.woocommerce-page main .ct-cart-actions > .single_add_to_cart_button,
.woocommerce-page main .ct-cart-actions > .added_to_cart {
	width: auto;
	flex: 1 1 0;
	min-width: 0;
	min-height: 55px;
	align-self: stretch;
	order: 2;
}

/* =========================================================
   PÁGINAS DE SISTEMA (carrito / checkout / cuenta) y PRODUCTO
   ========================================================= */
.woocommerce-page main .woocommerce {
	display: block;
}
.woocommerce-page main .woocommerce-cart-form,
.woocommerce-page main .woocommerce-checkout,
.woocommerce-page main .login,
.woocommerce-page main .woocommerce-MyAccount-content,
.woocommerce-page main .track_order {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
}
@media (min-width: 768px) {
	.woocommerce-page main .woocommerce-cart-form,
	.woocommerce-page main .woocommerce-checkout,
	.woocommerce-page main .login,
	.woocommerce-page main .woocommerce-MyAccount-content,
	.woocommerce-page main .track_order {
		padding: 32px;
	}
}
.woocommerce-page main .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.woocommerce-page main .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	padding: 12px 16px;
	border-radius: var(--pf-radius);
	font-size: 14px;
	font-weight: 600;
	color: var(--pf-text-variant);
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
.woocommerce-page main .woocommerce-MyAccount-navigation li a:hover {
	background: var(--pf-surface-low);
	color: var(--pf-text);
}
.woocommerce-page main .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--pf-primary);
	color: #fff;
}
/* Tabla del carrito */
.woocommerce-page main table.shop_table {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border) !important;
	border-radius: var(--pf-radius-lg);
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
}
.woocommerce-page main table.shop_table th,
.woocommerce-page main table.shop_table td {
	border: 0;
	border-bottom: 1px solid var(--pf-border);
	padding: 14px 16px;
	font-size: 14px;
	vertical-align: middle;
}
.woocommerce-page main table.shop_table th {
	font-family: var(--pf-font-head);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 12px;
	color: var(--pf-text-variant);
}
.woocommerce-page main table.shop_table img {
	width: 64px;
	height: 64px;
	object-fit: contain;
	background: var(--pf-surface-low);
	border-radius: var(--pf-radius);
	padding: 4px;
}
/* Responsive: tablas y layouts de sistema en móvil */
@media (max-width: 767px) {
	.woocommerce-page main .woocommerce-cart-form,
	.woocommerce-page main .woocommerce-checkout,
	.woocommerce-page main .login,
	.woocommerce-page main .woocommerce-MyAccount-content,
	.woocommerce-page main .track_order {
		padding: 16px;
	}
	.woocommerce-page main table.shop_table_responsive tr td::before {
		font-weight: 600;
		color: var(--pf-text);
	}
}

/* =========================================================
   RESPONSIVE DEL WRAPPER
   ========================================================= */
@media (max-width: 767px) {
	.pf-woo-main {
		padding: 32px 0 64px;
	}
	.pf-woo-main .pf-container {
		gap: 0;
	}
	.woocommerce .woo-listing-top {
		flex-direction: column;
		align-items: stretch;
	}
	.woocommerce ul.products li.product img {
		padding: 16px;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 15px;
	}
}

/* Respetar preferencia de movimiento reducido */
@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product img,
	.woocommerce ul.products li.product,
	.woocommerce .page-numbers {
		transition: none !important;
	}
	.woocommerce ul.products li.product:hover img {
		transform: none !important;
	}
}

/* =========================================================
   FASE 2 — TIENDA / CATEGORÍAS / PRODUCTO INDIVIDUAL
   ========================================================= */

/* ---------------------------------------------------------
   Descripción de la categoría (pf-shop-header)
   --------------------------------------------------------- */
.pf-shop-header .pf-shop-desc {
	color: var(--pf-text-muted);
	max-width: 720px;
	margin: 12px 0 0;
}
.pf-shop-header .pf-shop-desc p {
	margin: 0 0 8px;
}
.pf-shop-header .pf-shop-desc p:last-child {
	margin-bottom: 0;
}

/* ---------------------------------------------------------
   Subcategorías — tarjetas pf-cat-card compactas antes del grid
   --------------------------------------------------------- */
.pf-subcats-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin: 0 0 var(--pf-gutter);
	padding: 0;
	list-style: none;
}
.pf-subcats-grid li {
	list-style: none;
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}
@media (min-width: 640px) {
	.pf-subcats-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
	.pf-subcats-grid { grid-template-columns: repeat(6, 1fr); }
}
.pf-cat-card--compact {
	aspect-ratio: 1;
}
.pf-cat-card--compact .pf-cat-media {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pf-surface-low);
}
.pf-cat-card--compact .pf-cat-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.pf-cat-card--compact:hover .pf-cat-media img {
	transform: scale(1.05);
}
.pf-cat-card--compact .pf-cat-media .material-symbols-outlined {
	font-size: 40px;
	color: var(--pf-text-muted);
}
.pf-cat-card--compact .pf-cat-label {
	left: 10px;
	right: 10px;
	bottom: 10px;
	padding: 10px 12px;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}
.pf-cat-card--compact .pf-cat-label .pf-label-md {
	font-size: 12px;
}
.pf-cat-card--compact .pf-cat-compact-count {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11px;
	color: var(--pf-text-muted);
}
.pf-cat-card--compact .pf-cat-compact-count .material-symbols-outlined {
	font-size: 14px;
	color: var(--pf-text-variant);
	transition: transform .2s ease;
}
.pf-cat-card--compact:hover .pf-cat-compact-count .material-symbols-outlined {
	transform: translateX(3px);
}

/* ---------------------------------------------------------
   PRODUCTO INDIVIDUAL — layout dos columnas
   (Blocksy ya apila en móvil; aquí se fuerza el grid en desktop)
   --------------------------------------------------------- */
.woocommerce div.product .product-entry-wrapper {
	gap: 40px;
}
@media (min-width: 1000px) {
	.woocommerce div.product .product-entry-wrapper {
		display: grid !important;
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
		gap: 56px !important;
		align-items: start;
	}
	.woocommerce div.product .product-entry-wrapper .woocommerce-product-gallery,
	.woocommerce div.product .product-entry-wrapper .summary {
		width: 100% !important;
		margin-inline-start: 0 !important;
	}
}

/* Galería: contenedor redondeado */
.woocommerce div.product .woocommerce-product-gallery figure,
.woocommerce div.product .woocommerce-product-gallery .flexy-container,
.woocommerce div.product .woocommerce-product-gallery .ct-product-gallery-container {
	border-radius: var(--pf-radius-lg);
	overflow: hidden;
}
.woocommerce div.product .woocommerce-product-gallery figure {
	background: var(--pf-surface-low);
}
.woocommerce div.product .woocommerce-product-gallery .flexy-container .flexy-items .flexy-item,
.woocommerce div.product .woocommerce-product-gallery .ct-product-gallery-container img {
	border-radius: var(--pf-radius-lg);
}
.woocommerce div.product .woocommerce-product-gallery .ct-gallery-thumb {
	border-radius: var(--pf-radius-lg);
	overflow: hidden;
}
.woocommerce div.product .woocommerce-product-gallery img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Badge de oferta de la galería */
.woocommerce div.product .woocommerce-product-gallery .onsale {
	z-index: 3;
	background: var(--pf-red);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	padding: 5px 10px;
	border-radius: 2px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Resumen: marca, título, valoración */
.woocommerce div.product .pf-single-brand {
	color: var(--pf-text-variant);
	margin-bottom: 8px;
}
.woocommerce div.product .summary h1.product_title {
	font-family: var(--pf-font-head);
	font-size: 30px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--pf-text);
	margin-bottom: 12px;
}
@media (min-width: 768px) {
	.woocommerce div.product .summary h1.product_title { font-size: 40px; }
}
.woocommerce div.product .pf-single-rating {
	margin-bottom: 16px;
}
.woocommerce div.product .pf-single-rating .material-symbols-outlined {
	font-size: 18px;
}
.woocommerce div.product .pf-single-rating .count {
	font-size: 13px;
}

/* Resumen: precio grande + regular tachado */
.woocommerce div.product .summary p.price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
	font-family: var(--pf-font-head);
	font-size: 28px;
	font-weight: 700;
	color: var(--pf-text);
	margin-bottom: 16px;
}
.woocommerce div.product .summary p.price del {
	font-size: 18px;
	font-weight: 400;
	color: var(--pf-text-muted);
	text-decoration: line-through;
}
.woocommerce div.product .summary p.price ins {
	text-decoration: none;
}
/* Ritmo vertical uniforme en el resumen del producto (hoy 8/12/16/35 mixtos). */
.woocommerce div.product .entry-summary-items > * {
	margin-bottom: 20px !important;
}
.woocommerce div.product .entry-summary-items > *:last-child {
	margin-bottom: 0 !important;
}

/* Descripción corta: los encabezados heredados de Elementor se normalizan
   en PHP (inc/pf-woo.php); aquí solo se ajusta el ritmo tipográfico. */
.woocommerce div.product .woocommerce-product-details__short-description p {
	margin: 0 0 8px;
	line-height: 1.6;
}
.woocommerce div.product .woocommerce-product-details__short-description p:last-child {
	margin-bottom: 0;
}
.woocommerce div.product .woocommerce-product-details__short-description h1,
.woocommerce div.product .woocommerce-product-details__short-description h2,
.woocommerce div.product .woocommerce-product-details__short-description h3,
.woocommerce div.product .woocommerce-product-details__short-description h4,
.woocommerce div.product .woocommerce-product-details__short-description h5,
.woocommerce div.product .woocommerce-product-details__short-description h6 {
	font-family: var(--pf-font-body);
	font-size: 1em;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: normal;
	margin: 0 0 8px;
}

/* Precio + "Precio por kilo" forman un bloque. */
.woocommerce div.product .entry-summary-items > .price {
	margin-bottom: 0 !important;
}
.woocommerce div.product .pf-single-ppum:not([hidden]) {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin: 6px 0 20px;
	padding: 0;
	color: var(--pf-text-variant);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
}

/* Resumen: botón agregar al carrito mapeado a pf-btn pf-btn-red pf-btn-lg */
.woocommerce div.product form.cart .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--pf-red);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2;
	padding: 16px 32px;
	min-height: 55px;
	border: 0;
	border-radius: var(--pf-radius);
	cursor: pointer;
	transition: background-color .2s ease;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--pf-red-hover);
	color: #fff;
}
.woocommerce div.product form.cart .single_add_to_cart_button:focus {
	color: #fff;
}

/* =========================================================
   B04 — UX del selector de variaciones y bloque de compra
   Solo clases públicas de WooCommerce + pf-*; la selección y sus estados
   siguen siendo responsabilidad de add-to-cart-variation.js.
   ========================================================= */
.woocommerce div.product form.variations_form.cart {
	margin-top: 24px;
}
.woocommerce div.product form.variations_form.cart table.variations {
	width: 100%;
	table-layout: fixed;
	border: 0;
	border-collapse: collapse;
	margin: 0 0 24px;
}
.woocommerce div.product form.variations_form.cart table.variations tbody {
	display: block;
}
.woocommerce div.product form.variations_form.cart table.variations tr {
	display: grid;
	grid-template-columns: minmax(120px, .35fr) minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	margin: 0 0 16px;
}
.woocommerce div.product form.variations_form.cart table.variations tr:last-child {
	margin-bottom: 0;
}
.woocommerce div.product form.variations_form.cart table.variations th.label,
.woocommerce div.product form.variations_form.cart table.variations td.value {
	display: block;
	width: auto;
	padding: 0;
	text-align: left;
	vertical-align: middle;
}
.woocommerce div.product form.variations_form.cart table.variations th.label label {
	display: inline-block;
	margin: 0;
	color: var(--pf-text);
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}
.woocommerce div.product form.variations_form.cart table.variations td.value {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}
.woocommerce div.product form.variations_form.cart table.variations td.value select {
	width: 100%;
	min-width: 0;
	min-height: 48px;
	flex: 1 1 240px;
	box-sizing: border-box;
	margin: 0;
	padding: 12px 14px;
	color: var(--pf-text);
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
}
.woocommerce div.product form.variations_form.cart table.variations td.value select:focus-visible,
.woocommerce div.product form.variations_form.cart .reset_variations:focus-visible,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button:focus-visible {
	outline: 3px solid var(--pf-red);
	outline-offset: 3px;
}
.woocommerce div.product form.variations_form.cart table.variations td.value select:focus-visible {
	border-color: var(--pf-red);
}
.woocommerce div.product form.variations_form.cart .reset_variations {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 8px 4px;
	color: var(--pf-red);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: underline;
}
.woocommerce div.product form.variations_form.cart .reset_variations:hover {
	color: var(--pf-red-hover);
}

/* Datos de la combinación: el contenido aparece solo cuando WooCommerce
   encuentra una variación y conserva su live region/estado nativo. */
.woocommerce div.product form.variations_form.cart .single_variation {
	margin: 0 0 16px;
	padding: 0;
	color: var(--pf-text-variant);
	background: transparent;
	border: 0;
}
.woocommerce div.product form.variations_form.cart .single_variation:empty {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-description {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.5;
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-price {
	margin: 0;
	color: var(--pf-text);
	font-family: var(--pf-font-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-price del {
	margin-inline-end: 8px;
	color: var(--pf-text-muted);
	font-size: 16px;
	font-weight: 400;
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-availability {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.4;
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-availability .stock {
	margin: 0;
	font-weight: 600;
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-availability .stock.in-stock {
	color: var(--pf-primary);
}
.woocommerce div.product form.variations_form.cart .single_variation .woocommerce-variation-availability .stock.out-of-stock {
	color: var(--pf-red);
}
.woocommerce div.product .pf-single-ppum[hidden] {
	display: none;
}

/* Antes de elegir: se conserva la clase que WooCommerce calcula, pero el
   botón no parece una acción disponible. Con una combinación comprable, el
   estado enabled recupera la jerarquía primaria de compra. */
.woocommerce div.product form.variations_form.cart .woocommerce-variation-add-to-cart {
	margin-top: 16px;
}
.woocommerce div.product form.variations_form.cart .woocommerce-variation-add-to-cart-disabled .quantity {
	opacity: .65;
}
.woocommerce div.product form.variations_form.cart .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button.wc-variation-selection-needed,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button.wc-variation-is-unavailable {
	--theme-button-background-initial-color: var(--pf-surface-variant);
	--theme-button-background-hover-color: var(--pf-surface-variant);
	--theme-button-text-initial-color: var(--pf-text-muted);
	--theme-button-text-hover-color: var(--pf-text-muted);
	--theme-button-border: 1px solid var(--pf-border);
	--theme-button-border-hover-color: var(--pf-border);
	background: var(--pf-surface-variant) !important;
	border: 1px solid var(--pf-border);
	color: var(--pf-text-muted) !important;
	box-shadow: none;
	cursor: not-allowed;
}
.woocommerce div.product form.variations_form.cart .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button:hover,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button.disabled:hover,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button.wc-variation-selection-needed:hover,
.woocommerce div.product form.variations_form.cart .single_add_to_cart_button.wc-variation-is-unavailable:hover {
	background: var(--pf-surface-variant);
	border-color: var(--pf-border);
	color: var(--pf-text-muted);
}
.woocommerce div.product form.variations_form.cart .woocommerce-variation-add-to-cart-enabled .single_add_to_cart_button {
	--theme-button-background-initial-color: var(--pf-red);
	--theme-button-background-hover-color: var(--pf-red-hover);
	--theme-button-text-initial-color: #fff;
	--theme-button-text-hover-color: #fff;
	min-height: 55px;
	background: var(--pf-red);
	color: #fff;
}

@media (max-width: 767px) {
	.woocommerce div.product form.variations_form.cart table.variations tr {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.woocommerce div.product form.variations_form.cart table.variations td.value {
		align-items: stretch;
	}
	.woocommerce div.product form.variations_form.cart table.variations td.value select {
		flex-basis: 100%;
	}
	.woocommerce div.product form.variations_form.cart .reset_variations {
		margin-inline-start: auto;
	}
	.woocommerce div.product form.variations_form.cart .single_variation {
		padding: 0;
	}
}

/* Resumen: meta discreta */
.woocommerce div.product .product_meta {
	font-size: 13px;
	color: var(--pf-text-muted);
}
.woocommerce div.product .product_meta > span {
	display: block;
	margin-bottom: 4px;
}
.woocommerce div.product .product_meta a {
	color: var(--pf-text-muted);
	text-decoration: underline;
	transition: color .2s ease;
}
.woocommerce div.product .product_meta a:hover {
	color: var(--pf-text);
}

/* ---------------------------------------------------------
   B05 — TABS Y PANELES DE PRODUCTO
   Usa únicamente la estructura pública de WooCommerce. En móvil la lista
   puede desplazarse horizontalmente sin ensanchar el documento.
   --------------------------------------------------------- */
.pf-single-lower {
	margin-top: 64px;
}
.woocommerce div.product .woocommerce-tabs {
	margin-bottom: 48px;
	min-width: 0;
	max-width: 100%;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
	padding: 0;
	border: 0;
	overflow: visible;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	flex: 0 0 auto;
	border: 1px solid var(--pf-border);
	background: var(--pf-surface);
	border-radius: 999px;
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border-bottom: 2px solid transparent;
	color: var(--pf-text-variant);
	font-family: var(--pf-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: color .2s ease, border-color .2s ease;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--pf-text);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--pf-red);
	border-bottom-color: transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid var(--pf-red);
	outline-offset: 2px;
}

/* Contenido de los panels: el texto externo y las URLs no pueden desbordar. */
.woocommerce div.product .woocommerce-tabs .panel {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	color: var(--pf-text-variant);
	font-size: 15px;
	line-height: 1.7;
	overflow-wrap: anywhere;
}
.woocommerce div.product .woocommerce-tabs .wc-tab {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}
.woocommerce div.product .woocommerce-tabs .panel a,
.woocommerce div.product .woocommerce-tabs .panel code,
.woocommerce div.product .woocommerce-tabs .panel pre {
	overflow-wrap: anywhere;
}
.woocommerce div.product .woocommerce-tabs .panel pre {
	max-width: 100%;
	white-space: pre-wrap;
	overflow-x: auto;
}
@media (min-width: 768px) {
	.woocommerce div.product .woocommerce-tabs .panel {
		padding: 32px;
	}
}
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3 {
	color: var(--pf-text);
	font-family: var(--pf-font-head);
}

/* ---------------------------------------------------------
   VALORACIONES — formulario y listado
   --------------------------------------------------------- */
.woocommerce div.product #reviews #comments ol.commentlist {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce div.product #reviews #comments ol.commentlist li {
	margin-bottom: 8px;
}
.woocommerce div.product #reviews #comments .comment_container {
	display: flex;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--pf-border);
}
.woocommerce div.product #reviews #comments img.avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--pf-surface-low);
}
.woocommerce div.product #reviews #comments .comment-text {
	flex: 1;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
}
.woocommerce div.product #reviews #comments .comment-text .meta {
	color: var(--pf-text-muted);
	font-size: 13px;
	margin-bottom: 6px;
}
.woocommerce div.product #reviews #comments .comment-text .meta strong {
	color: var(--pf-text);
}
/* Estrellas interactivas de WooCommerce (fuente de íconos) */
.woocommerce div.product p.stars a {
	color: var(--pf-surface-variant);
}
.woocommerce div.product p.stars:hover a::before {
	color: #eab308;
}
.woocommerce div.product p.stars a:hover~a::before {
	color: var(--pf-surface-variant);
}
.woocommerce div.product p.stars.selected a.active::before {
	color: #eab308;
}
.woocommerce div.product p.stars.selected a.active~a::before {
	color: var(--pf-surface-variant);
}
.woocommerce div.product p.stars.selected a:not(.active)::before {
	color: #eab308;
}

/* ---------------------------------------------------------
   B05 — PRODUCTOS RELACIONADOS / UPSELLS
   Las secciones y el loop permanecen nativos; solo se normalizan sus tarjetas.
   --------------------------------------------------------- */
.woocommerce div.product .pf-single-lower .pf-related,
.woocommerce div.product .pf-single-lower .pf-upsells,
.woocommerce div.product .pf-single-lower section.related,
.woocommerce div.product .pf-single-lower section.upsells,
.woocommerce div.product .pf-single-lower section.up-sells {
	margin-top: 64px;
	padding-top: 48px;
	border-top: 1px solid var(--pf-border);
}
.woocommerce div.product .pf-single-lower .pf-related-title,
.woocommerce div.product .pf-single-lower .ct-module-title,
.woocommerce div.product .pf-single-lower section.related > h2,
.woocommerce div.product .pf-single-lower section.upsells > h2,
.woocommerce div.product .pf-single-lower section.up-sells > h2 {
	margin: 0 0 24px;
}
.woocommerce div.product .pf-single-lower .ct-module-title,
.woocommerce div.product .pf-single-lower section.related > h2,
.woocommerce div.product .pf-single-lower section.upsells > h2,
.woocommerce div.product .pf-single-lower section.up-sells > h2 {
	font-family: var(--pf-font-head);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--pf-text);
}
@media (min-width: 768px) {
	.woocommerce div.product .pf-single-lower .ct-module-title,
	.woocommerce div.product .pf-single-lower section.related > h2,
	.woocommerce div.product .pf-single-lower section.upsells > h2,
	.woocommerce div.product .pf-single-lower section.up-sells > h2 {
		font-size: 32px;
	}
}
.woocommerce div.product .pf-single-lower section.related ul.products,
.woocommerce div.product .pf-single-lower section.upsells ul.products,
.woocommerce div.product .pf-single-lower section.up-sells ul.products {
	align-items: stretch;
}
.woocommerce div.product .pf-single-lower section.related ul.products li.product.pf-card,
.woocommerce div.product .pf-single-lower section.upsells ul.products li.product.pf-card,
.woocommerce div.product .pf-single-lower section.up-sells ul.products li.product.pf-card {
	height: 100%;
	min-width: 0;
}
.woocommerce div.product .pf-single-lower section.related .pf-card-body,
.woocommerce div.product .pf-single-lower section.upsells .pf-card-body,
.woocommerce div.product .pf-single-lower section.up-sells .pf-card-body {
	min-width: 0;
}
.woocommerce div.product .pf-single-lower section.related .pf-card-btn,
.woocommerce div.product .pf-single-lower section.upsells .pf-card-btn,
.woocommerce div.product .pf-single-lower section.up-sells .pf-card-btn {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
}
.woocommerce div.product .pf-single-lower section.related .pf-card-btn:focus-visible,
.woocommerce div.product .pf-single-lower section.upsells .pf-card-btn:focus-visible,
.woocommerce div.product .pf-single-lower section.up-sells .pf-card-btn:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid var(--pf-red);
	outline-offset: 2px;
}

/* ---------------------------------------------------------
   RESPONSIVE (fase 2)
   --------------------------------------------------------- */
@media (max-width: 767px) {
	.pf-subcats-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.pf-single-lower,
	.woocommerce div.product .pf-single-lower section.related,
	.woocommerce div.product .pf-single-lower section.upsells,
	.woocommerce div.product .pf-single-lower section.up-sells {
		margin-top: 48px;
		padding-top: 32px;
	}
	.woocommerce div.product .product-entry-wrapper {
		gap: 28px;
	}
	.woocommerce div.product .woocommerce-tabs .panel {
		padding: 16px;
	}
	.woocommerce div.product .pf-single-lower .woocommerce-tabs ul.tabs {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		min-width: 0;
		max-width: 100%;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		padding: 9px 14px;
	}
}

/* Respetar preferencia de movimiento reducido (fase 2) */
@media (prefers-reduced-motion: reduce) {
	.pf-cat-card--compact .pf-cat-media img,
	.pf-cat-card--compact .pf-cat-compact-count .material-symbols-outlined {
		transition: none !important;
	}
	.pf-cat-card--compact:hover .pf-cat-media img {
		transform: none !important;
	}
}

/* =========================================================
   B08 — MARCO ESTABLE DE GALERÍA EN PRODUCTO INDIVIDUAL
   El ratio configurado por Blocksy vive en cada media-container y no debe
   determinar la altura de la galería cuando una imagen derivada no carga.
   Se conserva Flexy, sus controles nativos y el estado de imagen faltante;
   solo se limita el marco visual al ancho disponible.
   ========================================================= */
.woocommerce div.product .woocommerce-product-gallery {
	min-width: 0;
	max-width: 100%;
}
.woocommerce div.product .woocommerce-product-gallery .flexy {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	min-height: 0;
	max-height: 100vw;
}
.woocommerce div.product .woocommerce-product-gallery .flexy-view,
.woocommerce div.product .woocommerce-product-gallery .flexy-items,
.woocommerce div.product .woocommerce-product-gallery .flexy-item {
	height: 100%;
	min-height: 0;
}
.woocommerce div.product .woocommerce-product-gallery .flexy-items {
	align-items: stretch;
}
.woocommerce div.product .woocommerce-product-gallery figure {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-height: 100%;
	background: var(--pf-surface-low);
}
.woocommerce div.product .woocommerce-product-gallery .ct-product-gallery-container > figure {
	height: auto;
	aspect-ratio: 1 / 1;
}
.woocommerce div.product .woocommerce-product-gallery figure img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}
.woocommerce div.product .woocommerce-product-gallery .flexy-pills {
	position: relative;
	height: auto;
	min-height: 0;
	max-height: none;
}
.woocommerce div.product .woocommerce-product-gallery .flexy-pills ol {
	height: auto;
	align-items: flex-start;
}
.woocommerce div.product .woocommerce-product-gallery .flexy-pills li {
	height: auto;
	min-height: 0;
}
.woocommerce div.product .woocommerce-product-gallery .flexy-pills li .ct-media-container {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	background: var(--pf-surface-low);
}
.woocommerce div.product .woocommerce-product-gallery .flexy-pills li img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}
@media (min-width: 690px) {
	.woocommerce div.product .woocommerce-product-gallery[data-thumbs="left"] .flexy-pills {
		position: absolute;
		height: 100%;
	}
}

/* =========================================================
   FASE 3 — CARRITO, CHECKOUT Y ORDEN RECIBIDA
   Solo clases oficiales de WooCommerce + tokens pf-*.
   El marcado interno del gateway flowpaymentfl (Webpay/Flow)
   NO se toca: solo estilos heredados genéricos.
   ========================================================= */

/* ---------------------------------------------------------
   Título de página (carrito / checkout / orden recibida)
   --------------------------------------------------------- */
.woocommerce-cart .hero-section,
.woocommerce-checkout .hero-section {
	background: none;
	border: 0;
}
.woocommerce-cart .hero-section .page-title,
.woocommerce-checkout .hero-section .page-title {
	font-family: var(--pf-font-head);
	font-size: 30px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--pf-text);
	margin: 0;
	text-transform: none;
}
@media (min-width: 768px) {
	.woocommerce-cart .hero-section .page-title,
	.woocommerce-checkout .hero-section .page-title {
		font-size: 32px;
	}
}
.woocommerce-cart .hero-section .entry-header,
.woocommerce-checkout .hero-section .entry-header {
	margin-bottom: 32px;
}

/* Stitch composition: keep the native WooCommerce markup, but place the
 * cart form and totals side by side like the reference screen. */
.woocommerce-cart main .ct-woocommerce-cart-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	gap: 32px;
	align-items: start;
}
.woocommerce-cart main .ct-woocommerce-cart-form > .woocommerce-cart-form {
	min-width: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}
.woocommerce-cart main .ct-woocommerce-cart-form > .cart_totals {
	min-width: 0;
	width: auto;
	float: none;
	margin: 0;
}

/* ---------------------------------------------------------
   CARRITO — tabla principal
   --------------------------------------------------------- */
.woocommerce-cart main table.shop_table.cart {
	overflow: hidden;
}
.woocommerce-cart main table.shop_table.cart tbody tr.cart_item {
	transition: background-color .2s ease;
}
.woocommerce-cart main table.shop_table.cart tbody tr.cart_item:hover {
	background: var(--pf-surface-low);
}
/* Imágenes de producto redondeadas */
.woocommerce-cart main table.shop_table.cart td.product-thumbnail img {
	border-radius: var(--pf-radius-lg);
	width: 72px;
	height: 72px;
	padding: 6px;
}
.woocommerce-cart main table.shop_table.cart thead th {
	padding-top: 16px;
	padding-bottom: 16px;
	white-space: nowrap;
}
.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td {
	padding-top: 24px;
	padding-bottom: 24px;
}
.woocommerce-cart main table.shop_table.cart td.product-thumbnail {
	width: 72px;
	padding-right: 8px;
}
.woocommerce-cart main table.shop_table.cart td.product-name {
	padding-left: 8px;
}
/* Nombre del producto */
.woocommerce-cart main table.shop_table.cart td.product-name a {
	color: var(--pf-text);
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
	transition: color .2s ease;
}
.woocommerce-cart main table.shop_table.cart td.product-name a:hover {
	color: var(--pf-red);
}
/* Cantidad: el input pf-* hereda el estilo base; +/- son los
   controles que Blocksy renderiza junto al input (solo color) */
.woocommerce-cart main .quantity[data-type="type-2"],
.woocommerce-cart main .quantity[data-type="type-1"] {
	--quantity-height: 46px;
	--quantity-width: 110px;
	--quantity-initial-color: var(--pf-surface);
	--quantity-hover-color: var(--pf-surface);
	--quantity-arrows-initial-color: var(--pf-text-muted);
	--quantity-arrows-hover-color: var(--pf-red);
}
/* Acciones: quitar producto (columna y acciones móviles) */
.woocommerce-cart main table.shop_table.cart a.remove {
	color: var(--pf-red) !important;
	background: none;
	border: 1px solid transparent;
	border-radius: var(--pf-radius);
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0;
	line-height: 0;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.woocommerce-cart main table.shop_table.cart a.remove:hover {
	background: var(--pf-red);
	color: #fff !important;
}
.woocommerce-cart main table.shop_table.cart td.product-subtotal .amount,
.woocommerce-cart main table.shop_table.cart td.product-name .price .amount {
	font-family: var(--pf-font-head);
	font-weight: 600;
}

/* ---------------------------------------------------------
   CARRITO — acciones: cupón + actualizar
   --------------------------------------------------------- */
.woocommerce-cart main table.shop_table.cart td.actions {
	padding: 20px 16px;
}
.woocommerce-cart main table.shop_table.cart td.actions .coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
}
.woocommerce-cart main table.shop_table.cart td.actions .coupon .input-text {
	width: auto;
	flex: 1 1 220px;
	min-width: 0;
	height: 46px;
	min-height: 46px;
	box-sizing: border-box;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	color: var(--pf-text);
	font-family: var(--pf-font-body);
	font-size: 14px;
	padding: 12px 14px;
	transition: border-color .2s ease;
}
.woocommerce-cart main table.shop_table.cart td.actions .coupon .input-text:focus {
	border-color: var(--pf-red);
	outline: none;
}
/* Botones secundarios de la tabla con estilo pf-btn-ghost */
.woocommerce-cart main table.shop_table.cart td.actions .button[name="apply_coupon"],
.woocommerce-cart main .woocommerce-shipping-calculator .button[name="calc_shipping"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--pf-primary);
	border-radius: var(--pf-radius);
	color: var(--pf-primary);
	font-family: var(--pf-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2;
	padding: 12px 24px;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.woocommerce-cart main table.shop_table.cart td.actions .button[name="apply_coupon"]:hover,
.woocommerce-cart main .woocommerce-shipping-calculator .button[name="calc_shipping"]:hover {
	background: var(--pf-surface-low);
	color: var(--pf-primary);
}
.woocommerce-cart main table.shop_table.cart td.actions .button[name="apply_coupon"] {
	background: var(--pf-red) !important;
	border-color: var(--pf-red) !important;
	color: #fff !important;
}
.woocommerce-cart main table.shop_table.cart td.actions .button[name="apply_coupon"]:hover {
	background: var(--pf-red-hover) !important;
	border-color: var(--pf-red-hover) !important;
	color: #fff !important;
}

/* Las cantidades se guardan automáticamente al cambiar el control. */
.woocommerce-cart main table.shop_table.cart td.actions .button[name="update_cart"] {
	display: none !important;
}

@media (min-width: 768px) {
	.woocommerce-cart main table.shop_table.cart td.actions {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
	}
	.woocommerce-cart main table.shop_table.cart td.actions .coupon {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* ---------------------------------------------------------
   CARRITO — totales (tarjeta pf)
   --------------------------------------------------------- */
.woocommerce-cart main .cart_totals {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	margin-bottom: 0;
}
.woocommerce-cart main .ct-woocommerce-cart-form > .cart_totals {
	position: sticky;
	top: 120px;
}
@media (min-width: 768px) {
	.woocommerce-cart main .cart_totals {
		padding: 24px;
	}
}
.woocommerce-cart main .cart_totals h2 {
	font-family: var(--pf-font-head);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pf-text);
	margin: 0 0 20px;
}
.woocommerce-cart main .cart_totals table.shop_table {
	background: transparent;
	border: 0 !important;
	margin-bottom: 16px;
}
.woocommerce-cart main .cart_totals table.shop_table th,
.woocommerce-cart main .cart_totals table.shop_table td {
	border-bottom: 1px solid var(--pf-border);
	padding: 12px 0;
	font-size: 15px;
}
.woocommerce-cart main .cart_totals table.shop_table tr:last-child th,
.woocommerce-cart main .cart_totals table.shop_table tr:last-child td {
	border-bottom: 0;
}
.woocommerce-cart main .cart_totals table.shop_table th {
	color: var(--pf-text-variant);
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce-cart main .cart_totals table.shop_table td {
	text-align: right;
}
/* Total final destacado en pf-headline-lg */
.woocommerce-cart main .cart_totals tr.order-total th {
	color: var(--pf-text);
	font-family: var(--pf-font-head);
	font-size: 16px;
	font-weight: 700;
}
.woocommerce-cart main .cart_totals tr.order-total .amount,
.woocommerce-cart main .cart_totals tr.order-total strong {
	font-family: var(--pf-font-head);
	font-size: 26px;
	font-weight: 700;
	color: var(--pf-text);
	line-height: 1.2;
}
/* Botón "Finalizar compra" — pf-btn pf-btn-red pf-btn-lg */
.woocommerce-cart main .wc-proceed-to-checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	background: var(--pf-red);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2;
	padding: 16px 32px;
	border: 0;
	border-radius: var(--pf-radius);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s ease;
}
.woocommerce-cart main .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--pf-red-hover);
	color: #fff;
}
/* Calculadora de envío desplegable */
.woocommerce-cart main .woocommerce-shipping-calculator .shipping-calculator-button {
	color: var(--pf-red);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-cart main .woocommerce-shipping-calculator .shipping-calculator-button:hover {
	color: var(--pf-red-hover);
}
.woocommerce-cart main .woocommerce-shipping-calculator .shipping-calculator-form p {
	margin: 0 0 12px;
}

/* ---------------------------------------------------------
   CARRITO VACÍO — estado pf
   --------------------------------------------------------- */
.woocommerce-cart .pf-empty-cart-icon {
	display: flex;
	justify-content: center;
	margin-bottom: 8px;
}
.woocommerce-cart .pf-empty-cart-icon .material-symbols-outlined {
	font-size: 72px;
	color: var(--pf-text-muted);
}
.woocommerce-cart .wc-empty-cart-message {
	border-top: 0;
	text-align: center;
	background: none;
	border: 0;
	padding: 0;
	margin-bottom: 8px;
}
.woocommerce-cart .wc-empty-cart-message::before {
	display: none;
}
.woocommerce-cart .wc-empty-cart-message .cart-empty {
	font-size: 18px;
	line-height: 1.6;
	color: var(--pf-text-variant);
	margin: 0;
	padding: 0;
}
.woocommerce-cart .return-to-shop {
	text-align: center;
	margin: 16px 0 0;
}
.woocommerce-cart .return-to-shop .button.wc-backward {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--pf-red);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2;
	padding: 16px 32px;
	border: 0;
	border-radius: var(--pf-radius);
	text-decoration: none;
	transition: background-color .2s ease;
}
.woocommerce-cart .return-to-shop .button.wc-backward:hover {
	background: var(--pf-red-hover);
	color: #fff;
}

/* ---------------------------------------------------------
   CHECKOUT — layout dos columnas (formularios | tu pedido)
   --------------------------------------------------------- */
.woocommerce-page main form.checkout.woocommerce-checkout {
	background: transparent;
	border: 0;
	padding: 0;
	border-radius: 0;
}
.woocommerce-checkout .woocommerce-form-login {
	margin-bottom: 24px;
}
/* Formulario de cupón del checkout */
.woocommerce-checkout form.woocommerce-form-coupon {
	background: var(--pf-surface-low);
	border: 1px dashed var(--pf-surface-variant);
	border-radius: var(--pf-radius-lg);
	padding: 20px;
	margin-bottom: 24px;
}
.woocommerce-checkout form.woocommerce-form-coupon p:first-child {
	font-weight: 600;
	color: var(--pf-text);
}
.woocommerce-checkout form.woocommerce-form-coupon .input-text {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 12px 14px;
}
@media (min-width: 992px) {
	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(340px, 460px);
		gap: 0 48px;
		align-items: start;
	}
	/* Marcado renderizado por Blocksy: .ct-order-review envuelve el resumen */
	.woocommerce-checkout form.checkout > .ct-customer-details {
		grid-column: 1;
		grid-row: 1;
	}
	.woocommerce-checkout form.checkout > .ct-order-review {
		grid-column: 2;
		grid-row: 1;
		position: sticky;
		top: 120px;
	}
	/* Fallback: marcado estándar de WooCommerce (sin wrapper) */
	.woocommerce-checkout form.checkout > #order_review_heading {
		grid-column: 2;
		grid-row: 1;
	}
	.woocommerce-checkout form.checkout > #order_review {
		grid-column: 2;
		grid-row: 2;
		position: sticky;
		top: 120px;
	}
}
/* Columna izquierda: tarjeta pf con facturación + envío */
.woocommerce-checkout form.checkout .ct-customer-details {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	margin-bottom: 24px;
}
@media (min-width: 768px) {
	.woocommerce-checkout form.checkout .ct-customer-details {
		padding: 32px;
	}
}
.woocommerce-checkout form.checkout .ct-customer-details .col2-set {
	display: block;
}
.woocommerce-checkout form.checkout .ct-customer-details .col2-set .col-1,
.woocommerce-checkout form.checkout .ct-customer-details .col2-set .col-2 {
	float: none;
	width: 100%;
	margin: 0;
}
.woocommerce-checkout form.checkout .woocommerce-billing-fields h3,
.woocommerce-checkout form.checkout .woocommerce-additional-fields h3,
.woocommerce-checkout form.checkout #ship-to-different-address {
	font-family: var(--pf-font-head);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pf-text);
	margin: 0 0 16px;
}
.woocommerce-checkout form.checkout #ship-to-different-address label {
	color: inherit;
	font: inherit;
	cursor: pointer;
}
.woocommerce-checkout form.checkout #ship-to-different-address ~ .shipping_address {
	border-top: 1px solid var(--pf-border);
	padding-top: 20px;
	margin-top: 4px;
}
.woocommerce-checkout form.checkout .woocommerce-billing-fields + .woocommerce-shipping-fields,
.woocommerce-checkout form.checkout .woocommerce-shipping-fields {
	margin-top: 32px;
}

/* Labels pf-label-md y asterisco en --pf-red */
.woocommerce-checkout form.checkout .form-row label {
	display: block;
	font-family: var(--pf-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--pf-text-variant);
	margin-bottom: 6px;
}
.woocommerce-page main .form-row label .required,
.woocommerce-page main .form-row label .optional {
	color: var(--pf-red);
	font-weight: 700;
	text-decoration: none;
}
.woocommerce-page main .form-row label .optional {
	color: var(--pf-text-muted);
	font-weight: 500;
}
/* Filas del formulario: grilla de dos mitades */
.woocommerce-checkout form.checkout .form-row {
	margin: 0 0 16px;
}
.woocommerce-checkout form.checkout .form-row-first,
.woocommerce-checkout form.checkout .form-row-last {
	width: 100%;
	float: none;
}
@media (min-width: 640px) {
	.woocommerce-checkout form.checkout .form-row-first,
	.woocommerce-checkout form.checkout .form-row-last {
		display: inline-block;
		vertical-align: top;
	}
	.woocommerce-checkout form.checkout .form-row-first {
		margin-inline-end: 4%;
	}
}
.woocommerce-checkout form.checkout .form-row .woocommerce-input-wrapper {
	width: 100%;
	display: block;
}
/* Checkbox pf (enviar a dirección distinta / términos / rememberme) */
.woocommerce-page main .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 500;
	color: var(--pf-text);
	cursor: pointer;
}
.woocommerce-page main .woocommerce-form__input-checkbox {
	width: 18px;
	height: 18px;
	accent-color: var(--pf-red);
	cursor: pointer;
}

/* ---------------------------------------------------------
   CHECKOUT — métodos de envío (radios pf)
   --------------------------------------------------------- */
.woocommerce-checkout form.checkout #shipping_method {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.woocommerce-checkout form.checkout #shipping_method li {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 14px 16px;
	margin: 0;
	font-size: 14px;
	transition: background-color .2s ease, border-color .2s ease;
}
.woocommerce-checkout form.checkout #shipping_method li:has(input.shipping_method:checked) {
	background: var(--pf-surface-container);
	border-color: var(--pf-text);
}
.woocommerce-checkout form.checkout #shipping_method li label {
	display: inline;
	font-weight: 500;
	font-size: 14px;
	margin: 0;
}
.woocommerce-checkout form.checkout #shipping_method li .amount {
	font-family: var(--pf-font-head);
	font-weight: 600;
}

/* ---------------------------------------------------------
   CHECKOUT — "Tu pedido" (tarjeta pf sticky)
   --------------------------------------------------------- */
.woocommerce-checkout form.checkout #order_review_heading {
	font-family: var(--pf-font-head);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pf-text);
	margin: 0 0 16px;
}
.woocommerce-checkout form.checkout #order_review {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	margin-bottom: 24px;
}
.woocommerce-checkout form.checkout #order_review table.shop_table {
	background: transparent;
	border: 0 !important;
	padding: 0;
}
.woocommerce-checkout form.checkout #order_review table.shop_table th,
.woocommerce-checkout form.checkout #order_review table.shop_table td {
	border-bottom: 1px solid var(--pf-border);
	padding: 12px 0;
	font-size: 14px;
}
/* Miniatura junto al nombre (inc/pf-cart-checkout.php) */
.woocommerce-checkout .pf-review-thumb {
	display: block;
	float: left;
	margin-inline-end: 12px;
	margin-bottom: 8px;
}
.woocommerce-checkout .pf-review-thumb img {
	width: 52px;
	height: 52px;
	object-fit: contain;
	background: var(--pf-surface-low);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 3px;
}
.woocommerce-checkout form.checkout #order_review table.shop_table tbody .product-name {
	font-size: 15px;
	font-weight: 600;
	color: var(--pf-text);
	line-height: 1.4;
}
.woocommerce-checkout form.checkout #order_review table.shop_table tbody .product-name::after {
	content: "";
	display: block;
	clear: both;
}
.woocommerce-checkout form.checkout #order_review table.shop_table .product-quantity {
	color: var(--pf-text-muted);
	font-weight: 400;
}
/* Subtotal y total en negrita Montserrat */
.woocommerce-checkout form.checkout #order_review table.shop_table tfoot th,
.woocommerce-checkout form.checkout #order_review table.shop_table tfoot td .amount,
.woocommerce-checkout form.checkout #order_review table.shop_table tfoot td strong {
	font-family: var(--pf-font-head);
	font-weight: 700;
}
.woocommerce-checkout form.checkout #order_review table.shop_table tfoot tr.order-total th {
	font-size: 16px;
	color: var(--pf-text);
}
.woocommerce-checkout form.checkout #order_review table.shop_table tfoot tr.order-total .amount,
.woocommerce-checkout form.checkout #order_review table.shop_table tfoot tr.order-total strong {
	font-size: 26px;
	color: var(--pf-text);
	line-height: 1.2;
}

/* ---------------------------------------------------------
   CHECKOUT — métodos de pago (radios pf, genéricos)
   No se altera el marcado interno de ningún gateway.
   --------------------------------------------------------- */
.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
}
.woocommerce-checkout #payment ul.wc_payment_methods {
	list-style: none;
	margin: 0 0 20px;
	padding: 16px;
	background: var(--pf-surface-low);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 14px 16px;
	margin: 0;
	list-style: none;
	transition: background-color .2s ease, border-color .2s ease;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(input.input-radio:checked) {
	background: var(--pf-surface-container);
	border-color: var(--pf-text);
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > input.input-radio {
	accent-color: var(--pf-red);
	margin: 0 8px 0 0;
	vertical-align: middle;
}
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--pf-text);
	margin: 0;
	cursor: pointer;
}
/* Ícono del gateway (img genérica; el plugin ya fija su altura) */
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method label img {
	max-height: 36px;
	width: auto;
	margin: 0 0 0 8px;
	display: inline-block;
	vertical-align: middle;
}
.woocommerce-checkout #payment .payment_box {
	background: var(--pf-surface-low);
	border-radius: var(--pf-radius);
	color: var(--pf-text-variant);
	font-size: 14px;
	line-height: 1.6;
	padding: 14px 16px;
	margin: 12px 0 0;
	position: relative;
}
.woocommerce-checkout #payment .payment_box p:last-child {
	margin-bottom: 0;
}
/* Términos y condiciones */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
	font-size: 14px;
	color: var(--pf-text-variant);
	margin-bottom: 16px;
}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text a {
	color: var(--pf-red);
	text-decoration: underline;
}
/* Botón "Confirmar compra / Pagar": el PHP (inc/pf-cart-checkout.php)
   añade pf-btn pf-btn-red pf-btn-block; aquí se asegura el bloque */
.woocommerce-checkout #payment .form-row.place-order {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
}
.woocommerce-checkout #payment #place_order.pf-btn {
	width: 100%;
	background: var(--pf-red);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 14px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 16px 32px;
	border: 0;
	border-radius: var(--pf-radius);
	cursor: pointer;
	transition: background-color .2s ease;
}
.woocommerce-checkout #payment #place_order.pf-btn:hover {
	background: var(--pf-red-hover);
	color: #fff;
}
/* "Actualizar totales" (noscript) y acciones de la pasarela sin pf-btn */
.woocommerce-checkout #payment noscript .button {
	display: inline-flex;
	align-items: center;
	background: var(--pf-primary);
	color: #fff;
	border: 0;
	border-radius: var(--pf-radius);
	padding: 12px 24px;
	font-size: 14px;
}

/* ---------------------------------------------------------
   ORDEN RECIBIDA ("Gracias") — mensaje, resumen y tablas
   --------------------------------------------------------- */
.woocommerce-order-received .woocommerce-thankyou-order-received {
	display: none; /* Sustituido por el banner pf-order-confirm */
}
.woocommerce-order-received .pf-order-confirm {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-inline-start: 3px solid var(--pf-red);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	margin-bottom: 24px;
}
.woocommerce-order-received .pf-order-confirm > .material-symbols-outlined {
	font-size: 40px;
	color: var(--pf-red);
	flex: 0 0 auto;
}
.woocommerce-order-received .pf-order-confirm-text {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.woocommerce-order-received .pf-order-confirm-title {
	font-family: var(--pf-font-head);
	font-size: 20px;
	font-weight: 700;
	color: var(--pf-text);
}
@media (min-width: 768px) {
	.woocommerce-order-received .pf-order-confirm-title { font-size: 24px; }
}
.woocommerce-order-received .pf-order-confirm-sub {
	font-size: 15px;
	color: var(--pf-text-variant);
}
/* Resumen (número, fecha, total, método) */
.woocommerce-order-received ul.woocommerce-order-overview.order_details {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 0 0 24px;
	padding: 0;
	counter-reset: none;
}
.woocommerce-order-received ul.woocommerce-order-overview.order_details::before,
.woocommerce-order-received ul.woocommerce-order-overview.order_details::after {
	display: none;
}
.woocommerce-order-received ul.woocommerce-order-overview.order_details li {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 14px 16px;
	margin: 0;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--pf-text-muted);
	width: auto;
	float: none;
	border-inline-end: 1px solid var(--pf-border);
}
.woocommerce-order-received ul.woocommerce-order-overview.order_details li strong {
	display: block;
	margin-top: 4px;
	font-family: var(--pf-font-head);
	font-size: 16px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: var(--pf-text);
}
@media (min-width: 640px) {
	.woocommerce-order-received ul.woocommerce-order-overview.order_details {
		grid-template-columns: repeat(4, 1fr);
	}
}
/* Detalles del pedido y direcciones */
.woocommerce-order-received .woocommerce-order-details {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	margin-bottom: 24px;
}
.woocommerce-order-received .woocommerce-order-details .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
	font-family: var(--pf-font-head);
	font-size: 20px;
	font-weight: 600;
	color: var(--pf-text);
	margin: 0 0 16px;
}
.woocommerce-order-received .woocommerce-order-details table.shop_table {
	background: transparent;
	border: 0 !important;
}
.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot th {
	text-align: start;
}
.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot tr:last-child th,
.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot tr:last-child td {
	border-bottom: 0;
}
.woocommerce-order-received .woocommerce-order-details table.shop_table tfoot tr:last-child .amount {
	font-family: var(--pf-font-head);
	font-size: 22px;
	font-weight: 700;
	color: var(--pf-text);
}
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
@media (min-width: 768px) {
	.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: repeat(2, 1fr);
	}
}
.woocommerce-order-received .woocommerce-customer-details address {
	background: var(--pf-surface-low);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 16px;
	font-style: normal;
	color: var(--pf-text-variant);
	line-height: 1.7;
	margin: 0;
}
/* Botón de retorno hereda el estilo pf de los botones de Woo */
.woocommerce-order-received main a.button,
.woocommerce-order-received main .woocommerce-MyAccount-content a.button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.woocommerce-order-received .pf-order-back {
	margin-top: 8px;
}
.woocommerce-order-received .pf-order-back .material-symbols-outlined {
	font-size: 20px;
}

/* ---------------------------------------------------------
   PAGO DE ORDEN ("Pay for order") — hereda formularios pf
   --------------------------------------------------------- */
.woocommerce-order-pay main .woocommerce {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
}
@media (min-width: 768px) {
	.woocommerce-order-pay main .woocommerce {
		padding: 32px;
	}
}
.woocommerce-order-pay main table.shop_table {
	background: transparent;
	border: 0 !important;
}

/* ---------------------------------------------------------
   MINI-CARRITO (widget) — estilos genéricos pf-*
   Blocksy no renderiza off-canvas en este header custom;
   si el widget se muestra (sidebar), hereda el design system.
   --------------------------------------------------------- */
.woocommerce-page .widget_shopping_cart_content {
	padding: 0;
}
.woocommerce-page ul.woocommerce-mini-cart {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.woocommerce-page ul.woocommerce-mini-cart li.woocommerce-mini-cart-item {
	list-style: none;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 12px;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
}
.woocommerce-page ul.woocommerce-mini-cart li.woocommerce-mini-cart-item a {
	color: var(--pf-text);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-page ul.woocommerce-mini-cart li.woocommerce-mini-cart-item img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	background: var(--pf-surface-low);
	border-radius: var(--pf-radius);
	padding: 4px;
	float: none;
	margin: 0;
}
.woocommerce-page .woocommerce-mini-cart__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-top: 1px solid var(--pf-border);
	padding: 16px 0 0;
	margin: 8px 0 16px;
	font-family: var(--pf-font-head);
	font-size: 16px;
	font-weight: 700;
	color: var(--pf-text);
}
.woocommerce-page .woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
}
.woocommerce-page .woocommerce-mini-cart__buttons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--pf-red);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 14px 24px;
	border-radius: var(--pf-radius);
	border: 0;
	text-decoration: none;
	transition: background-color .2s ease;
}
.woocommerce-page .woocommerce-mini-cart__buttons a:hover {
	background: var(--pf-red-hover);
	color: #fff;
}
.woocommerce-page .woocommerce-mini-cart__buttons a.checkout {
	background: var(--pf-primary);
}
.woocommerce-page .woocommerce-mini-cart__buttons a.checkout:hover {
	background: var(--pf-primary-hover);
	color: #fff;
}
.woocommerce-page p.woocommerce-mini-cart__empty-message {
	text-align: center;
	font-size: 15px;
	color: var(--pf-text-muted);
	padding: 16px 0;
	margin: 0;
}

/* ---------------------------------------------------------
   RESPONSIVE (fase 3)
   --------------------------------------------------------- */
@media (max-width: 991px) {
	.woocommerce-checkout form.checkout #order_review {
		position: static;
	}
}
@media (max-width: 767px) {
	.woocommerce-cart main .ct-woocommerce-cart-form {
		display: block;
	}
	.woocommerce-cart main .ct-woocommerce-cart-form > .cart_totals {
		margin-top: 24px;
	}
	.woocommerce-cart main .ct-woocommerce-cart-form > .cart_totals {
		position: static;
	}
	.woocommerce-cart main table.shop_table.cart {
		display: block;
		overflow: visible;
	}
	.woocommerce-cart main table.shop_table.cart thead {
		display: none;
	}
	.woocommerce-cart main table.shop_table.cart tbody,
	.woocommerce-cart main table.shop_table.cart tr,
	.woocommerce-cart main table.shop_table.cart td {
		display: block;
		width: auto;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		column-gap: 12px;
		padding: 20px 16px;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td {
		padding: 0;
		border: 0;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td.product-thumbnail {
		grid-row: span 2;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td.product-name {
		padding-right: 32px;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td.product-quantity {
		grid-column: 2;
		margin-top: 12px;
		text-align: left;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td.product-subtotal {
		position: absolute;
		right: 16px;
		bottom: 20px;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item td.product-remove {
		position: absolute;
		top: 18px;
		right: 12px;
	}
	.woocommerce-cart main table.shop_table.cart tbody tr:last-child td.actions {
		padding: 16px;
	}
	.woocommerce-cart main table.shop_table.cart td.actions .coupon {
		flex-direction: column;
		align-items: stretch;
	}
	.woocommerce-cart main table.shop_table.cart td.actions .coupon .input-text {
		flex: 0 0 46px;
		height: 46px;
		min-height: 46px;
	}
	.woocommerce-cart main .cart_totals {
		padding: 20px;
	}
	.woocommerce-cart main .cart_totals tr.order-total .amount,
	.woocommerce-cart main .cart_totals tr.order-total strong {
		font-size: 22px;
	}
	.woocommerce-checkout form.checkout .ct-customer-details,
	.woocommerce-checkout form.checkout #order_review {
		padding: 16px;
	}
	/* Tabla responsive del carrito: alineación de totales */
	.woocommerce-cart main table.shop_table_responsive tr td[data-title]::before {
		color: var(--pf-text);
	}
	.woocommerce-order-received .woocommerce-order-overview.order_details {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---------------------------------------------------------
   MOVIMIENTO REDUCIDO (fase 3)
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.woocommerce-cart main table.shop_table.cart tbody tr.cart_item,
	.woocommerce-cart main table.shop_table.cart a.remove,
	.woocommerce-checkout form.checkout #shipping_method li,
	.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
		transition: none !important;
	}
}

/* =========================================================
   FASE 4 — MI CUENTA
   Login/registro con tabs, layout de dos columnas con sesión,
   tabla de pedidos (pill de estado) y direcciones.
   Los formularios y clases de WooCommerce NO se modifican:
   todo es CSS sobre el marcado oficial.
   ========================================================= */

/* ---------------------------------------------------------
   Estado sin sesión — tabs "Iniciar sesión / Registrarse"
   (el par de tabs lo inyecta inc/pf-woo.php vía
   woocommerce_before_customer_login_form; el cambio de tab usa :has()
   cuando está disponible y tiene fallback accesible)
   --------------------------------------------------------- */
.woocommerce-account main .pf-account-tabs {
	display: flex;
	gap: 8px;
	max-width: 640px;
	margin: 0 auto 24px;
}
.woocommerce-account main .pf-account-tabs .pf-tab-radio {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.woocommerce-account main .pf-account-tabs .pf-tab-label {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 20px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	color: var(--pf-text-variant);
	font-family: var(--pf-font-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.2;
	height: 52px;
	min-height: 52px;
	box-sizing: border-box;
	margin: 0;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.woocommerce-account main .pf-account-tabs .pf-tab-label .material-symbols-outlined {
	font-size: 18px;
}
.woocommerce-account main .pf-account-tabs .pf-tab-label:hover {
	color: var(--pf-text);
}
.woocommerce-account main .pf-account-tabs .pf-tab-radio:checked + .pf-tab-label {
	background: var(--pf-primary);
	border-color: var(--pf-primary);
	color: #fff;
}
.woocommerce-account main .pf-account-tabs .pf-tab-radio:focus-visible + .pf-tab-label {
	outline: 2px solid var(--pf-red);
	outline-offset: 2px;
}

/* Tarjeta central (login o registro según tab activa) */
.woocommerce-account main #customer_login,
.woocommerce-account main .woocommerce > form.login {
	float: none;
	width: auto;
	max-width: 640px;
	margin-inline: auto;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	padding: 24px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
@media (min-width: 768px) {
	.woocommerce-account main #customer_login,
	.woocommerce-account main .woocommerce > form.login {
		padding: 48px;
	}
}
/* Limpiar el layout de columnas de WooCommerce: ahora es tab única.
   Blocksy aplica display:grid a .col2-set, lo que dejaba cada formulario
   dentro de una celda estrecha aunque el segundo estuviera oculto. */
.woocommerce-account main #customer_login {
	display: block;
}
.woocommerce-account main #customer_login::after {
	display: none;
}
.woocommerce-account main #customer_login .u-column1,
.woocommerce-account main #customer_login .u-column2 {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
}
/* El estilo general de WooCommerce también convierte .login en una tarjeta;
   la tarjeta de cuenta ya es #customer_login, así que aquí solo queda el
   contenido del formulario. */
.woocommerce-account main #customer_login form.login,
.woocommerce-account main #customer_login form.register {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
/* Orden visual del login: cada campo ocupa su propia fila y las acciones
   quedan agrupadas debajo, sin el alineado automático del tema padre. */
.woocommerce-account main #customer_login form.login > p {
	margin: 0;
}
.woocommerce-account main #customer_login form.login > p.form-row-wide {
	margin-bottom: 24px;
}
.woocommerce-account main #customer_login form.login > p.form-row:not(.form-row-wide) {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 16px;
}
.woocommerce-account main #customer_login form.login .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	line-height: 20px;
	margin: 0;
}
.woocommerce-account main #customer_login form.login .woocommerce-form-login__rememberme input[type="checkbox"] {
	position: static;
	top: auto;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	min-width: 16px;
	min-height: 16px;
	margin: 0 !important;
}
.woocommerce-account main #customer_login form.login .woocommerce-form-login__submit {
	align-self: flex-start;
	margin: 0;
}
.woocommerce-account main #customer_login form.login .woocommerce-LostPassword {
	margin: 0;
}
/* Los títulos h2 nativos los reemplazan las tabs */
.woocommerce-account main .pf-account-tabs ~ #customer_login .u-column1 > h2,
.woocommerce-account main .pf-account-tabs ~ #customer_login .u-column2 > h2 {
	display: none;
}
/* Estado controlado por :has() cuando el navegador lo soporta. */
@supports selector(:has(*)) {
	/* Tab por defecto: Iniciar sesión */
	.woocommerce-account main #customer_login .u-column2 {
		display: none;
	}
	.woocommerce-account main .woocommerce:has(#pf-tab-register:checked) #customer_login .u-column1 {
		display: none;
	}
	.woocommerce-account main .woocommerce:has(#pf-tab-register:checked) #customer_login .u-column2 {
		display: block;
	}
}

/* Fallback: ambos formularios permanecen visibles y utilizables sin :has(). */
@supports not selector(:has(*)) {
	.woocommerce-account main #customer_login .u-column1,
	.woocommerce-account main #customer_login .u-column2 {
		display: block;
	}
	.woocommerce-account main .pf-account-tabs ~ #customer_login .u-column1 > h2,
	.woocommerce-account main .pf-account-tabs ~ #customer_login .u-column2 > h2 {
		display: block;
	}
}

/* El fallback JS conserva tabs en navegadores sin soporte CSS para :has(). */
.woocommerce-account main .woocommerce.pf-account-tab-register-active #customer_login .u-column1 {
	display: none;
}
.woocommerce-account main .woocommerce.pf-account-tab-register-active #customer_login .u-column2 {
	display: block;
}
/* ¿Olvidaste tu contraseña? */
.woocommerce-account main .woocommerce-LostPassword a {
	color: var(--pf-red);
	font-size: 14px;
	text-decoration: none;
}
.woocommerce-account main .woocommerce-LostPassword a:hover {
	color: var(--pf-red-hover);
}
/* Los dos CTA comparten la misma caja, aunque sus textos tengan longitudes
   distintas. */
.woocommerce-account main #customer_login .woocommerce-form-login__submit,
.woocommerce-account main #customer_login .woocommerce-form-register__submit {
	box-sizing: border-box;
	height: 48px;
	min-height: 48px;
	line-height: 1.2;
}

/* ---------------------------------------------------------
   Estado con sesión — layout de dos columnas
   (nav lateral en tarjetas compactas + contenido en superficie)
   --------------------------------------------------------- */
/* El wrapper interno del nav del tema padre se vuelve transparente
   para que el <nav> oficial de WooCommerce participe en la grilla. */
.woocommerce-account main .ct-acount-nav {
	display: contents;
}
@media (min-width: 768px) {
	.woocommerce-account main .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
		gap: 32px;
		align-items: start;
	}
}
.woocommerce-account main .woocommerce .woocommerce-MyAccount-content {
	width: auto;
	min-width: 0;
	flex: none;
}

/* Navegación lateral: lista de tarjetas pf compactas con icono */
.woocommerce-account main .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.woocommerce-account main .woocommerce-MyAccount-navigation li {
	list-style: none;
	margin: 0;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: box-shadow .3s ease, border-color .2s ease;
}
.woocommerce-account main .woocommerce-MyAccount-navigation li:hover {
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}
.woocommerce-account main .woocommerce-MyAccount-navigation ul li a {
	display: flex;
	align-items: center;
	gap: 12px;
	height: auto;
	min-height: 0;
	padding: 14px 16px;
	border-radius: var(--pf-radius-lg);
	font-size: 14px;
	font-weight: 600;
	color: var(--pf-text-variant);
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
/* Sin divisores del tema padre */
.woocommerce-account main .woocommerce-MyAccount-navigation ul li:not(:last-child) a {
	border-bottom: 0;
}
/* Iconos Material Symbols mapeados por endpoint */
.woocommerce-account main .woocommerce-MyAccount-navigation ul li a::before {
	font-family: 'Material Symbols Outlined', sans-serif;
	font-size: 20px;
	font-weight: normal;
	width: auto;
	height: auto;
	margin-inline-end: 0;
	line-height: 1;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard a::before { content: 'space_dashboard'; }
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--orders a::before { content: 'receipt_long'; }
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--downloads a::before { content: 'download'; }
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--edit-address a::before { content: 'location_on'; }
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--edit-account a::before { content: 'person'; }
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--payment-methods a::before { content: 'credit_card'; }
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a::before { content: 'logout'; }
/* Ítem activo y hover */
.woocommerce-account main .woocommerce-MyAccount-navigation ul li:hover a,
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.is-active a {
	background: transparent;
	color: var(--pf-red);
}
.woocommerce-account main .woocommerce-MyAccount-navigation li.is-active {
	border-color: var(--pf-red);
}
.woocommerce-account main .woocommerce-MyAccount-navigation ul li.is-active a::before {
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ---------------------------------------------------------
   Tabla de pedidos (Pedidos)
   --------------------------------------------------------- */
/* Número del pedido en negrita Montserrat */
.woocommerce-account main .woocommerce-orders-table .woocommerce-orders-table__cell-order-number a {
	font-family: var(--pf-font-head);
	font-size: 15px;
	font-weight: 700;
	color: var(--pf-text);
}
.woocommerce-account main .woocommerce-orders-table .woocommerce-orders-table__cell-order-number a:hover {
	color: var(--pf-red);
}
/* Estado del pedido: pill con colores suaves */
.woocommerce-page main .order-status {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	padding: 4px 12px;
	border-radius: 999px;
	font-family: var(--pf-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.03em;
	line-height: 1.4;
	background: var(--pf-surface-low);
	color: var(--pf-text-variant);
}
.woocommerce-page main .order-status.status-pending { background: #faf1e2; color: #8a611d; }
.woocommerce-page main .order-status.status-processing { background: #fbe7ec; color: var(--pf-red); }
.woocommerce-page main .order-status.status-on-hold { background: var(--pf-surface-variant); color: var(--pf-text-variant); }
.woocommerce-page main .order-status.status-completed { background: #e6f3e8; color: #2e6b3f; }
.woocommerce-page main .order-status.status-cancelled { background: var(--pf-surface-variant); color: var(--pf-text-muted); }
.woocommerce-page main .order-status.status-refunded { background: var(--pf-surface-variant); color: var(--pf-text-muted); }
.woocommerce-page main .order-status.status-failed { background: #ffdad6; color: #8f1d26; }
/* Botón "Ver" — look pf-btn */
.woocommerce-page main .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 0;
	padding: 10px 18px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* ---------------------------------------------------------
   Detalle de pedido y direcciones — heredan inputs pf-* de la
   fase 3; aquí solo layout de direcciones y address cards
   --------------------------------------------------------- */
.woocommerce-account main .woocommerce-MyAccount-content .col2-set {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
@media (min-width: 900px) {
	.woocommerce-account main .woocommerce-MyAccount-content .col2-set {
		grid-template-columns: repeat(2, 1fr);
	}
}
.woocommerce-account main .woocommerce-MyAccount-content .col2-set .col-1,
.woocommerce-account main .woocommerce-MyAccount-content .col2-set .col-2 {
	float: none;
	width: 100%;
	margin: 0;
}
.woocommerce-account main .woocommerce-MyAccount-content address {
	font-style: normal;
	background: var(--pf-surface-low);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	padding: 16px;
	color: var(--pf-text-variant);
	line-height: 1.7;
	margin: 0 0 16px;
}
.woocommerce-account main .woocommerce-MyAccount-content .woocommerce-Address-title {
	font-family: var(--pf-font-head);
	font-size: 18px;
	font-weight: 600;
	color: var(--pf-text);
}

/* ---------------------------------------------------------
   RESPONSIVE (fase 4)
   --------------------------------------------------------- */
@media (max-width: 767px) {
	.woocommerce-account main .pf-account-tabs {
		margin-bottom: 16px;
	}
	.woocommerce-account main .woocommerce .woocommerce-MyAccount-navigation {
		margin-bottom: 16px;
	}
	.woocommerce-account main .pf-account-tabs .pf-tab-label {
		padding: 11px 14px;
		font-size: 12px;
		height: 48px;
		min-height: 48px;
	}
	.woocommerce-account main #customer_login,
	.woocommerce-account main .woocommerce > form.login {
		padding: 28px 20px;
	}
	.woocommerce-page main .order-status {
		white-space: normal;
	}
}

/* ---------------------------------------------------------
   MOVIMIENTO REDUCIDO (fase 4)
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.woocommerce-account main .woocommerce-MyAccount-navigation li,
	.woocommerce-account main .woocommerce-MyAccount-navigation ul li a,
	.woocommerce-account main .pf-account-tabs .pf-tab-label {
		transition: none !important;
	}
}

/* =========================================================
   FASE 5 — CARRITO REDISEÑADO (Stitch: "Contenedor de Carrito
   Rediseñado") — tarjeta con encabezado, filas dinámicas y
   cupón integrado. La plantilla es woocommerce/cart/cart.php.
   ========================================================= */

/* Neutraliza la caja base del form (la tarjeta es .pf-cart-card) */
.woocommerce-page main .pf-cart-items {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}

/* --- Tarjeta contenedora --- */
.woocommerce-cart main .pf-cart-card {
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
	overflow: hidden;
}

/* --- Encabezado (solo desktop) --- */
.woocommerce-cart main .pf-cart-head {
	display: none;
	grid-template-columns: minmax(0, 1fr) 160px 220px;
	gap: 24px;
	padding: 18px 32px;
	background: var(--pf-surface-low);
	border-bottom: 1px solid var(--pf-border);
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-head { display: grid; }
}
.woocommerce-cart main .pf-cart-head > div {
	font-family: var(--pf-font-body);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--pf-text-muted);
}
.woocommerce-cart main .pf-cart-head .pf-cart-col--qty { text-align: center; }
.woocommerce-cart main .pf-cart-head .pf-cart-col--subtotal { text-align: right; }

/* --- Fila de producto --- */
.woocommerce-cart main .pf-cart-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	padding: 24px 16px;
	border-bottom: 1px solid var(--pf-border);
	transition: background-color .2s ease;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-row {
		grid-template-columns: minmax(0, 1fr) 160px 220px;
		align-items: center;
		gap: 24px;
		padding: 32px;
	}
}
.woocommerce-cart main .pf-cart-row:last-of-type { border-bottom: 0; }
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-row:hover { background: #fcfcfd; }
}

/* Producto: miniatura + info */
.woocommerce-cart main .pf-cart-product {
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-product { gap: 24px; }
}
.woocommerce-cart main .pf-cart-thumb {
	width: 96px;
	height: 96px;
	flex-shrink: 0;
	background: var(--pf-surface-low);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	overflow: hidden;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-thumb { width: 112px; height: 112px; }
}
.woocommerce-cart main .pf-cart-thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
}
.woocommerce-cart main .pf-cart-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.woocommerce-cart main .pf-cart-name {
	margin: 0;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--pf-text);
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-name { font-size: 15px; }
}
.woocommerce-cart main .pf-cart-name a {
	color: inherit;
	text-decoration: none;
	transition: color .2s ease;
}
.woocommerce-cart main .pf-cart-name a:hover { color: var(--pf-red); }
.woocommerce-cart main .pf-cart-price {
	margin: 0;
	font-family: var(--pf-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--pf-text-variant);
}

/* --- Stepper de cantidad --- */
.woocommerce-cart main .pf-cart-qty {
	display: flex;
	justify-content: flex-start;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-qty { justify-content: center; }
}
.woocommerce-cart main .pf-cart-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	background: var(--pf-surface);
}
.woocommerce-cart main .pf-stepper-btn {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	color: var(--pf-text-variant);
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.woocommerce-cart main .pf-stepper-btn:hover {
	background: var(--pf-surface-low);
	color: var(--pf-text);
}
.woocommerce-cart main .pf-stepper-btn .material-symbols-outlined {
	font-size: 20px;
}
/* Input nativo de WooCommerce dentro del stepper */
.woocommerce-cart main .pf-cart-stepper .quantity {
	display: inline-flex;
	align-items: center;
	margin: 0;
}
.woocommerce-cart main .pf-cart-stepper .quantity input.qty {
	width: 44px;
	height: 40px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: var(--pf-surface);
	text-align: center;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--pf-text);
	-moz-appearance: textfield;
}
.woocommerce-cart main .pf-cart-stepper .quantity input.qty:focus {
	outline: none;
}
.woocommerce-cart main .pf-cart-stepper .quantity input.qty::-webkit-inner-spin-button,
.woocommerce-cart main .pf-cart-stepper .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
/* Los +/- propios de Blocksy no se usan aquí */
.woocommerce-cart main .pf-cart-stepper .quantity .minus,
.woocommerce-cart main .pf-cart-stepper .quantity .plus {
	display: none;
}

/* --- Subtotal + eliminar (desktop) --- */
.woocommerce-cart main .pf-cart-subtotal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-subtotal { justify-content: flex-end; }
}
.woocommerce-cart main .pf-cart-subtotal-label {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--pf-text-muted);
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-subtotal-label { display: none; }
}
.woocommerce-cart main .pf-cart-subtotal-amount {
	font-family: var(--pf-font-head);
	font-size: 18px;
	font-weight: 700;
	color: var(--pf-text);
}
.woocommerce-cart main .pf-cart-remove {
	display: none;
	background: none;
	border: 0;
	padding: 4px;
	color: #9ca3af;
	cursor: pointer;
	transition: color .2s ease;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-remove { display: inline-flex; }
}
.woocommerce-cart main .pf-cart-remove:hover { color: var(--pf-red); }
.woocommerce-cart main .pf-cart-remove .material-symbols-outlined { font-size: 22px; }

/* Eliminar (móvil) */
.woocommerce-cart main .pf-cart-remove--mobile {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 8px;
	padding: 0;
	background: none;
	border: 0;
	font-family: var(--pf-font-body);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--pf-red);
	cursor: pointer;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-remove--mobile { display: none; }
}
.woocommerce-cart main .pf-cart-remove--mobile .material-symbols-outlined { font-size: 16px; }

/* Datos adicionales del ítem (variaciones, etc.) */
.woocommerce-cart main .pf-cart-row .variation {
	margin: 4px 0 0;
	font-size: 13px;
	color: var(--pf-text-muted);
}
.woocommerce-cart main .pf-cart-row .variation p { margin: 0; }

/* --- Cupón --- */
.woocommerce-cart main .pf-cart-coupon {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px 16px;
	border-top: 1px solid var(--pf-border);
	background: var(--pf-surface);
}
@media (min-width: 640px) {
	.woocommerce-cart main .pf-cart-coupon {
		flex-direction: row;
		align-items: center;
		max-width: 480px;
		padding: 32px;
	}
}
.woocommerce-cart main .pf-cart-coupon .input-text {
	flex: 1 1 auto;
	min-width: 0;
	height: 48px;
	box-sizing: border-box;
	background: var(--pf-surface);
	border: 1px solid #d1d5db;
	border-radius: var(--pf-radius);
	font-family: var(--pf-font-body);
	font-size: 14px;
	color: var(--pf-text);
	padding: 12px 16px;
	box-shadow: none;
	transition: border-color .2s ease;
}
.woocommerce-cart main .pf-cart-coupon .input-text::placeholder { color: #9ca3af; }
.woocommerce-cart main .pf-cart-coupon .input-text:focus {
	border-color: var(--pf-red);
	box-shadow: 0 0 0 1px var(--pf-red);
	outline: none;
}
.woocommerce-cart main .pf-cart-coupon .button[name="apply_coupon"] {
	height: 48px;
	padding: 0 32px;
	background: var(--pf-red);
	border: 0;
	border-radius: var(--pf-radius);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .12em;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .08);
	transition: background-color .2s ease, transform .1s ease;
}
.woocommerce-cart main .pf-cart-coupon .button[name="apply_coupon"]:hover {
	background: #a00028;
	color: #fff;
}
.woocommerce-cart main .pf-cart-coupon .button[name="apply_coupon"]:active {
	transform: scale(.98);
}

/* Botón actualizar: oculto pero presente (main.js lo dispara) */
.woocommerce-cart main .pf-cart-update {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	margin: -1px;
	border: 0;
	padding: 0;
}

/* El contenedor grid form+totales ya existe (sección anterior); la
   tarjeta del form ocupa la columna izquierda sin padding extra */
.woocommerce-cart main .ct-woocommerce-cart-form > .woocommerce-cart-form {
	background: transparent;
	border: 0;
	padding: 0;
}
@media (max-width: 991px) {
	.woocommerce-cart main .ct-woocommerce-cart-form {
		display: flex;
		flex-direction: column;
	}
}

/* --- Layout dos columnas: productos (izq) + totales (der) --- */
.woocommerce-cart main .pf-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	gap: 32px;
	align-items: start;
}
@media (max-width: 991px) {
	.woocommerce-cart main .pf-cart-layout {
		display: flex;
		flex-direction: column;
	}
}

/* --- Resumen (cart_totals): tarjeta a la derecha --- */
.woocommerce-cart main .pf-cart-collaterals {
	min-width: 0;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals {
	float: none;
	width: auto;
	margin: 0;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
	padding: 24px;
	--cart-totals-border: 0;
	--cart-totals-padding: 0;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals > h2,
.woocommerce-cart main .pf-cart-collaterals .cart_totals table tr.cart-subtotal th,
.woocommerce-cart main .pf-cart-collaterals .cart_totals table tr.order-total th {
	font-family: var(--pf-font-body);
	color: var(--pf-text);
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals > h2 {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--pf-border);
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table {
	background: transparent;
	border: 0 !important;
	border-radius: 0;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table td,
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table th {
	border-bottom: 0;
	padding: 8px 0;
	font-size: 14px;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table tr.cart-subtotal th,
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table tr.cart-subtotal td {
	font-weight: 600;
	color: var(--pf-text-variant);
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table tr.order-total {
	border-top: 1px solid var(--pf-border);
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table tr.order-total th,
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table tr.order-total td {
	padding-top: 20px;
	padding-bottom: 20px;
	font-family: var(--pf-font-head);
	font-size: 16px;
	font-weight: 700;
	color: var(--pf-text);
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals table.shop_table tr.order-total td .amount {
	font-size: 24px;
}
/* Envío: bloque alineado a la derecha como el diseño Stitch */
.woocommerce-cart main .pf-cart-collaterals .cart_totals .shipping td {
	text-align: right;
	padding: 12px 0;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals .shipping td ul {
	text-align: left;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals .woocommerce-shipping-destination {
	font-size: 13px;
	color: var(--pf-text-muted);
	margin-top: 12px;
}
.woocommerce-cart main .pf-cart-collaterals .cart_totals .shipping-calculator-button {
	color: var(--pf-red);
	font-weight: 600;
}
/* Botón Finalizar Compra: rojo, ancho completo */
.woocommerce-cart main .pf-cart-collaterals .wc-proceed-to-checkout {
	padding: 0;
	margin-top: 24px;
}
.woocommerce-cart main .pf-cart-collaterals .wc-proceed-to-checkout a.checkout-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	background: var(--pf-red);
	border: 0;
	border-radius: var(--pf-radius);
	color: #fff;
	font-family: var(--pf-font-body);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .12em;
	transition: background-color .2s ease;
}
.woocommerce-cart main .pf-cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover {
	background: #a00028;
	color: #fff;
}
/* Aviso de cupón ya aplicado */
.woocommerce-cart main .pf-cart-collaterals .cart_totals .woocommerce-remove-coupon {
	color: var(--pf-red);
}

/* --- Ajustes finales del contenedor rediseñado --- */
.woocommerce-cart main .pf-cart-head {
	background: var(--pf-surface);
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-head,
	.woocommerce-cart main .pf-cart-row {
		grid-template-columns: minmax(0, 55fr) minmax(140px, 30fr) minmax(90px, 15fr);
		gap: 16px;
	}
}
.woocommerce-cart main .pf-cart-qty {
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
}
@media (min-width: 768px) {
	.woocommerce-cart main .pf-cart-head .pf-cart-col--qty { text-align: left; }
	.woocommerce-cart main .pf-cart-qty { justify-content: flex-start; }
}
.woocommerce-cart main .pf-cart-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.woocommerce-cart main .pf-cart-remove:hover {
	background: var(--pf-surface-low);
}

/* Blocksy adds its own +/- spans to .quantity. Only the custom stepper
   controls should remain visible. */
.woocommerce-cart main .pf-cart-stepper .ct-increase,
.woocommerce-cart main .pf-cart-stepper .ct-decrease,
.woocommerce-cart main .pf-cart-stepper .minus,
.woocommerce-cart main .pf-cart-stepper .plus {
	display: none !important;
}
.woocommerce-cart main .pf-cart-stepper .quantity {
	position: relative;
	z-index: 2;
	position: absolute;
	display: none !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.woocommerce-cart main .pf-cart-stepper .quantity input.qty {
	position: absolute;
	display: none !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	border: 0 !important;
	top: 0;
	left: 0;
	top: auto;
	left: auto;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	color: transparent !important;
}
.woocommerce-cart main .pf-cart-qty-value {
	order: 2;
	width: 44px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--pf-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	color: var(--pf-text) !important;
	background: var(--pf-surface);
}
.woocommerce-cart main .pf-cart-stepper .pf-stepper-btn:first-child { order: 1; }
.woocommerce-cart main .pf-cart-stepper .pf-stepper-btn:last-child { order: 3; }

/* Loading state keeps the card in place while WooCommerce refreshes totals. */
.woocommerce-cart main .pf-cart-card {
	position: relative;
}
.woocommerce-cart main .pf-cart-loading {
	display: none;
	position: absolute;
	inset: 0;
	z-index: 5;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .66);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	color: var(--pf-red);
	pointer-events: none;
}
.woocommerce-cart main .pf-cart-card.is-updating .pf-cart-loading {
	display: flex;
}
.woocommerce-cart main .pf-cart-loading .material-symbols-outlined {
	font-size: 30px;
	animation: pf-cart-spin .8s linear infinite;
}
@keyframes pf-cart-spin {
	to { transform: rotate(360deg); }
}

/* Keep the success notice separated from the empty-cart state after the last
   item is removed. */
.woocommerce-cart main .woocommerce-message {
	border: 1px solid var(--pf-border) !important;
}
.woocommerce-page main .woocommerce-message {
	border: 1px solid var(--pf-border) !important;
}
.woocommerce-cart main .woocommerce-notices-wrapper {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 24px;
}
.woocommerce-cart main .woocommerce-notices-wrapper .woocommerce-message {
	margin: 0;
}
.woocommerce-cart main .woocommerce-notices-wrapper .woocommerce-message {
	display: none !important;
}
.woocommerce-cart main .wc-empty-cart-message,
.woocommerce-cart main .return-to-shop {
	position: relative;
	z-index: 1;
}
@media (max-width: 991px) {
	.woocommerce-cart main .pf-cart-layout,
	.woocommerce-cart main .pf-cart-card,
	.woocommerce-cart main .pf-cart-collaterals {
		width: 100%;
		max-width: none;
	}
}

/* Stock limit feedback in the full cart. */
.woocommerce-cart main .pf-stock-alert {
	display: block;
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.35;
	color: var(--pf-red);
}
.woocommerce-cart main .pf-stock-alert.woocommerce-message {
	border: 1px solid var(--pf-border) !important;
	padding: 8px 10px;
	margin: 8px 0 0;
	font-size: 12px;
}
.woocommerce-cart main .pf-cart-qty {
	flex-wrap: wrap;
}

/* Empty-cart composition: notice first, then icon, message and CTA. */
.woocommerce-cart main .woocommerce:has(.wc-empty-cart-message) {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.woocommerce-cart main .woocommerce:has(.wc-empty-cart-message) .woocommerce-notices-wrapper {
	order: 0;
	width: 100%;
}
.woocommerce-cart main .woocommerce:has(.wc-empty-cart-message) .pf-empty-cart-icon {
	order: 1;
	margin-top: 8px;
}
.woocommerce-cart main .woocommerce:has(.wc-empty-cart-message) .wc-empty-cart-message {
	order: 2;
	width: 100%;
	margin: 8px 0 0;
}
.woocommerce-cart main .woocommerce:has(.wc-empty-cart-message) .return-to-shop {
	order: 3;
	width: 100%;
}
.woocommerce-cart main .woocommerce-notices-wrapper .woocommerce-message {
	display: flex !important;
	align-items: center;
	gap: 8px;
	box-sizing: border-box;
	border: 1px solid var(--pf-border) !important;
	border: 1px solid var(--pf-border) !important;
}
.woocommerce-cart main .woocommerce-notices-wrapper .woocommerce-message a {
	display: inline;
	margin-left: 4px;
}
.woocommerce-cart main .wc-empty-cart-message .cart-empty.woocommerce-info {
	border: 1px solid var(--pf-border) !important;
}

/* Stock limit feedback in the drawer. */
.pf-mini-stock-alert {
	display: block;
	flex-basis: 100%;
	margin-top: 6px;
	font-size: 11px;
	line-height: 1.35;
	color: var(--pf-red);
}
.pf-mini-stock-alert.woocommerce-message {
	border: 1px solid var(--pf-border);
	padding: 7px 9px;
	margin-top: 6px;
	font-size: 11px;
}

/* =========================================================
   ARCHIVO DE TIENDA — filtro en drawer, productos protagonistas
   ========================================================= */
.pf-woo-archive {
	position: relative;
	max-width: 100%;
}
.pf-woo-archive-content {
	min-width: 0;
	max-width: 100%;
}
.pf-shop-heading-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.pf-shop-heading-row .pf-shop-title {
	min-width: 0;
}
.pf-shop-filter-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 10px 16px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius);
	color: var(--pf-text);
	font: 600 13px/1 var(--pf-font-body);
	letter-spacing: .05em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.pf-shop-filter-toggle:hover,
.pf-shop-filter-toggle:focus-visible {
	background: var(--pf-primary);
	border-color: var(--pf-primary);
	color: #fff;
}
.pf-shop-filter-toggle .material-symbols-outlined {
	font-size: 20px;
}
.pf-shop-filter-backdrop {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(0, 0, 0, .42);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}
.pf-shop-filter-backdrop.open {
	opacity: 1;
	visibility: visible;
}
.pf-shop-filter-panel {
	position: fixed;
	inset: 0 auto 0 0;
	z-index: 1001;
	width: min(380px, calc(100vw - 24px));
	max-width: 100%;
	overflow-y: auto;
	padding: 24px;
	background: var(--pf-bg);
	box-shadow: 12px 0 36px rgba(0, 0, 0, .18);
	transform: translateX(-105%);
	visibility: hidden;
	transition: transform .3s ease, visibility .3s ease;
}
.pf-shop-filter-panel.open {
	transform: translateX(0);
	visibility: visible;
}
.pf-shop-filter-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 24px;
}
.pf-shop-filter-title {
	font-size: 20px;
	line-height: 1.2;
}
.pf-shop-filter-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: 0 0 40px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--pf-border);
	border-radius: 50%;
	color: var(--pf-text);
	cursor: pointer;
}
.pf-shop-filter-close:hover,
.pf-shop-filter-close:focus-visible {
	background: var(--pf-primary);
	border-color: var(--pf-primary);
	color: #fff;
}
.pf-shop-filter-panel > aside {
	width: 100%;
}
.pf-shop-filter-panel > aside .widget_price_filter,
.pf-shop-filter-panel > aside .widget_product_categories,
.pf-shop-filter-panel > aside .widget_layered_nav_filters,
.pf-shop-filter-panel > aside .widget_rating_filter {
	margin-bottom: var(--pf-gutter);
	padding: 18px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-border);
	border-radius: var(--pf-radius-lg);
}
.pf-shop-filter-panel > aside .widget_product_categories {
	margin-bottom: 0;
}
.pf-shop-filter-panel > aside .widget-title {
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--pf-border);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
}
.pf-shop-filter-panel > aside .price_slider_wrapper {
	padding-top: 4px;
}
.pf-shop-filter-panel > aside .price_slider.ui-slider {
	display: block !important;
	position: relative;
	height: 6px;
	margin: 12px 8px 24px;
	background: var(--pf-surface-variant);
	border-radius: 999px;
}
.pf-shop-filter-panel > aside .price_slider.ui-slider .ui-slider-range {
	position: absolute;
	top: 0;
	height: 100%;
	background: var(--pf-red);
	border-radius: inherit;
}
.pf-shop-filter-panel > aside .price_slider.ui-slider .ui-slider-handle {
	position: absolute;
	top: 50%;
	width: 16px;
	height: 16px;
	margin: 0;
	background: var(--pf-surface);
	border: 2px solid var(--pf-red);
	border-radius: 50%;
	box-shadow: none;
	cursor: grab;
	touch-action: none;
	transform: translate(-50%, -50%);
	transition: box-shadow .2s ease, transform .2s ease;
}
.pf-shop-filter-panel > aside .price_slider.ui-slider .ui-slider-handle:hover,
.pf-shop-filter-panel > aside .price_slider.ui-slider .ui-slider-handle:focus-visible {
	box-shadow: 0 0 0 5px rgba(186, 0, 53, .16);
	transform: translate(-50%, -50%) scale(1.08);
}
.pf-shop-filter-panel > aside .price_slider.ui-slider .ui-slider-handle:active {
	cursor: grabbing;
}
.pf-shop-filter-panel > aside .price_slider_amount {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.pf-shop-filter-panel > aside .price_slider_amount .price_label {
	order: 1;
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	white-space: nowrap;
}
.pf-shop-filter-panel > aside .price_slider_amount .button {
	order: 2;
	flex: 0 0 auto;
	min-height: 34px;
	padding: 8px 14px;
	font-size: 12px;
	line-height: 1;
}
.pf-shop-filter-panel > aside .price_slider_amount .clear {
	display: none;
}
.pf-shop-filter-panel > aside .price_label {
	color: var(--pf-text-muted);
	font-size: 12px;
}
.pf-shop-filter-panel > aside .price_label .from,
.pf-shop-filter-panel > aside .price_label .to {
	color: var(--pf-text);
	font-weight: 600;
}
.pf-shop-filter-panel > aside .widget_product_categories .product-categories,
.pf-shop-filter-panel > aside .widget_layered_nav_filters ul,
.pf-shop-filter-panel > aside .widget_rating_filter ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.pf-shop-filter-panel > aside .widget_product_categories .cat-item {
	margin: 0;
	padding: 6px 0;
	font-size: 13px;
	line-height: 1.35;
}
.pf-shop-filter-panel > aside .widget_product_categories .cat-item > a {
	font-weight: 600;
}
.pf-shop-filter-panel > aside .widget_product_categories .count {
	color: var(--pf-text-muted);
	font-size: 12px;
}
.pf-shop-filter-panel > aside .widget_product_categories .children {
	margin: 5px 0 0 4px;
	padding-left: 12px;
	border-left: 1px solid var(--pf-border);
}
.pf-shop-filter-panel > aside .widget_layered_nav_filters li,
.pf-shop-filter-panel > aside .widget_rating_filter li {
	margin: 0 0 8px;
	font-size: 13px;
}
.pf-shop-filter-panel > aside .widget_layered_nav_filters li:last-child,
.pf-shop-filter-panel > aside .widget_rating_filter li:last-child {
	margin-bottom: 0;
}
@media (max-width: 767px) {
	.pf-shop-heading-row {
		align-items: flex-start;
		gap: 16px;
	}
	.woocommerce .pf-woo-archive ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 16px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.pf-shop-filter-backdrop,
	.pf-shop-filter-panel {
		transition: none;
	}
}

/* =========================================================
   B07 — AJUSTE FINAL DE TABS EN MÓVIL Y BORDE ACTIVO
   El overflow horizontal sigue controlado para futuras integraciones, pero
   los dos tabs actuales caben en 390 px sin perder sus etiquetas ni el target
   táctil. El estado activo se dibuja sobre la cápsula completa.
   ========================================================= */
@media (max-width: 767px) {
	.woocommerce div.product .pf-single-lower .woocommerce-tabs ul.tabs {
		column-gap: 6px !important;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		min-height: 44px !important;
		padding: 8px 10px !important;
	}
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-color: var(--pf-red) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom: 2px solid transparent !important;
}
