/*
 * Epic Rides — WooCommerce (catálogo, producto, carrito, checkout, mi cuenta).
 * Se carga solo en vistas de WooCommerce (inc/b2-assets.php), después de los CSS de Woo.
 *
 * 1. Tokens            5. Carrito
 * 2. Base / botones    6. Checkout
 * 3. Catálogo          7. Mi cuenta / avisos
 * 4. Producto          8. Responsive
 */

/* 1. Tokens ------------------------------------------------------------------ */
/* body.epic-woo-loops: páginas normales con listas de productos (inc/b2-assets.php). */
body.epic-woo,
body.epic-woo-loops {
	--w-heading: #273653;
	--w-text: #605e77;
	--w-ink: #191919;
	--w-link: #2d6fe8;
	--w-accent: var(--e-global-color-primary, #6affc0);
	--w-dark: #181b31;
	--w-muted-bg: #f7f7f7;
	--w-line: #e7e7e7;
	--w-heading-font: var(--e-global-typography-primary-font-family, sans-serif), sans-serif;
}

/* 2. Base / botones ------------------------------------------------------------ */
.epic-woo-wrap { padding: 0 0 45px; }
/* Catálogo: 40px bajo el header como en Hub (theme.css de B1 da 60px a todos los archivos). */
body.epic-woo.archive #lqd-contents-wrap { padding-top: 0; padding-bottom: 0; }
body.epic-woo.archive .epic-woo-wrap { padding: 40px 0 30px; }
.single-product .epic-woo-wrap { padding-top: 0; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .wc-block-components-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 15px 45px;
	font-family: var(--w-heading-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	color: #fff;
	background-color: var(--w-accent);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transition: background-color .3s, color .3s, box-shadow .3s, transform .3s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	color: #fff;
	background-color: var(--w-dark);
	box-shadow: 0 10px 25px rgba(0, 0, 0, .12);
}
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt.disabled,
.woocommerce button.button.disabled {
	padding: 15px 45px;
	color: #fff;
	background-color: var(--w-accent);
	opacity: .5;
}

.woocommerce .quantity .qty { font-family: inherit; }

.woocommerce .star-rating span::before,
.woocommerce p.stars a { color: #ffb400; }

.woocommerce span.onsale {
	top: 15px;
	left: 15px;
	right: auto;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 4px 12px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
	background: var(--w-dark);
	border-radius: 50em;
	z-index: 3;
}

/* 3. Catálogo ------------------------------------------------------------------- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(var(--w-cols, 3), minmax(0, 1fr));
	gap: 30px;
	margin: 0 0 45px;
	padding: 0;
}
/* Widget Productos de Elementor: en tableta respeta sus columnas (elementor-grid-tablet-N), como Hub. */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-grid-tablet-1 .woocommerce ul.products.elementor-grid { --w-cols: 1; }
	.elementor-grid-tablet-2 .woocommerce ul.products.elementor-grid { --w-cols: 2; }
	.elementor-grid-tablet-3 .woocommerce ul.products.elementor-grid { --w-cols: 3; }
	.elementor-grid-tablet-4 .woocommerce ul.products.elementor-grid { --w-cols: 4; }
	.elementor-grid-tablet-5 .woocommerce ul.products.elementor-grid { --w-cols: 5; }
	.elementor-grid-tablet-6 .woocommerce ul.products.elementor-grid { --w-cols: 6; }
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-1 { --w-cols: 1; }
.woocommerce ul.products.columns-2 { --w-cols: 2; }
.woocommerce ul.products.columns-4 { --w-cols: 4; }
.woocommerce ul.products.columns-5 { --w-cols: 5; }
.woocommerce ul.products.columns-6 { --w-cols: 6; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	text-align: left;
}

.epic-product-card__media {
	position: relative;
	overflow: hidden;
	margin-bottom: 20px;
	background: var(--w-muted-bg);
}
.epic-product-card__media > a { display: block; }
.woocommerce ul.products li.product a img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	margin: 0;
	object-fit: cover;
	box-shadow: none;
	transition: transform .8s cubic-bezier(.23, 1, .32, 1);
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }

/* Botón sobre la imagen: aparece al pasar el cursor (o al enfocarlo con teclado). */
.epic-product-card__actions {
	position: absolute;
	right: 17px;
	bottom: 15px;
	left: 17px;
	z-index: 2;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .35s, transform .35s cubic-bezier(.23, 1, .32, 1);
}
.woocommerce ul.products li.product:hover .epic-product-card__actions,
.epic-product-card__actions:focus-within {
	opacity: 1;
	transform: none;
}
.woocommerce ul.products li.product .epic-product-card__actions .button {
	display: flex;
	width: 100%;
	margin: 0;
	padding: 10px 13px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .185em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(0, 0, 0, .9);
	border-radius: 0;
}
.woocommerce ul.products li.product .epic-product-card__actions .button:hover { background: #000; }
.woocommerce ul.products li.product .epic-product-card__actions .added_to_cart {
	display: block;
	margin-top: 6px;
	padding: 6px;
	font-size: 12px;
	text-align: center;
	color: #fff;
	background: var(--w-dark);
}
@media (hover: none) {
	.epic-product-card__actions { opacity: 1; transform: none; }
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
	margin: 0 0 2px;
	padding: 0;
	font-family: var(--w-heading-font);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.33;
	letter-spacing: 0;
	color: var(--w-heading);
}
.woocommerce ul.products li.product > a { color: inherit; }
.woocommerce ul.products li.product > a:hover h3 { color: var(--w-link); }

.woocommerce ul.products li.product .price {
	display: block;
	margin: 0;
	font-size: 14.4px;
	font-weight: 600;
	line-height: 27px;
	color: var(--w-ink);
}
.woocommerce ul.products li.product .price del { opacity: .5; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 4px 0; font-size: 12px; }

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 8px;
	border: 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	color: var(--w-dark);
	border: 1px solid #e4e4e4;
	border-radius: 50em;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
	color: #fff;
	background: var(--w-dark);
	border-color: var(--w-dark);
}

.woocommerce .woocommerce-info.woocommerce-no-products-found { margin: 40px 0; }

/* 4. Producto -------------------------------------------------------------------- */
/* Barra de título (impresa fuera del contenedor por inc/b2-woo.php). */
.epic-titlebar--product {
	padding: 80px 0;
	margin-bottom: 40px;
	background: var(--w-muted-bg, #f7f7f7);
}
.epic-titlebar--product .epic-titlebar__title {
	margin: 0;
	font-family: var(--w-heading-font);
	font-size: 60px;
	font-weight: 600;
	line-height: 1.01;
	letter-spacing: var(--w-heading-ls, normal);
	color: var(--w-heading);
}

/* Columnas imagen (7) / resumen (5) como la rejilla de Hub: 652 + 30 + 458 en 1140. */
.epic-sp-row {
	display: grid;
	grid-template-columns: minmax(0, 652fr) minmax(0, 458fr);
	column-gap: 30px;
	align-items: start;
}
.epic-sp-images { position: relative; min-width: 0; }
.epic-sp-summary { min-width: 0; }
/* Galería de Woo con miniaturas a la izquierda: 70 + 45 + 487 (Hub 6). */
.epic-sp-images > .woocommerce-product-gallery:has(.flex-control-thumbs) { max-width: 602px; }
.epic-sp-images > * + * { margin-top: 26px; }

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin-bottom: 30px;
}

/* Galería: miniaturas en columna a la izquierda. */
.woocommerce div.product div.images.woocommerce-product-gallery--with-images:has(.flex-control-thumbs) {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr);
	column-gap: 45px;
}
.woocommerce div.product div.images .flex-viewport,
.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper { grid-column: 2; grid-row: 1; }
.woocommerce div.product div.images .flex-control-thumbs {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin: 0;
	padding: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: 100%;
	margin: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
	opacity: .55;
	box-shadow: 0 0 0 1px var(--w-line);
	transition: opacity .3s;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 15px;
	right: 15px;
	width: 32px;
	height: 32px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}

.epic-product-nav {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 25px;
}
.woocommerce div.product .epic-product-nav a {
	display: inline-flex;
	align-items: center;
	color: var(--w-heading);
}
.woocommerce div.product .epic-product-nav a:hover { color: var(--w-link); }
.epic-back-to-shop__grid {
	display: grid;
	grid-template-columns: 6px 6px;
	gap: 2px;
}
.epic-back-to-shop__grid i {
	width: 6px;
	height: 6px;
	border: 1.2px solid currentColor;
	border-radius: 1px;
}
.epic-chev {
	width: 7px;
	height: 7px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: rotate(45deg);
}
.epic-chev--left { transform: rotate(-135deg); }

/* Barra superior del catálogo (contador, orden, vista, por página). */
.epic-shop-topbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 15px 30px;
	margin-bottom: 40px;
}
.epic-shop-topbar .woocommerce-result-count,
.epic-shop-topbar .woocommerce-ordering,
.epic-shop-topbar .woocommerce-breadcrumb {
	float: none;
	margin: 0;
	font-size: 14px;
}
.epic-shop-topbar .woocommerce-result-count { margin-right: auto; }
.epic-shop-topbar .woocommerce-ordering select {
	padding: 6px 30px 6px 0;
	font-size: 14px;
	color: #000;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 6px center;
	border: 0;
	appearance: none;
	-webkit-appearance: none;
}
.epic-view-switch { display: inline-flex; gap: 8px; }
.epic-view-switch__btn {
	display: inline-flex;
	width: 18px;
	height: 18px;
	color: #000;
	opacity: .35;
}
.epic-view-switch__btn.is-active,
.epic-view-switch__btn:hover { opacity: 1; }
.epic-view-switch__icon { display: grid; width: 18px; height: 18px; }
.epic-view-switch__btn--grid .epic-view-switch__icon { grid-template-columns: 1fr 1fr; gap: 3px; }
.epic-view-switch__btn--grid i { border: 1.3px solid currentColor; border-radius: 1px; }
.epic-view-switch__btn--list .epic-view-switch__icon { align-content: space-between; padding: 2px 0; }
.epic-view-switch__btn--list i { height: 1.5px; background: currentColor; }
.epic-per-page { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; }
.epic-per-page__label { color: var(--w-text); }
.epic-per-page__opt { color: rgba(0, 0, 0, .45); }
.epic-per-page__opt.is-active,
.epic-per-page__opt:hover { color: #000; font-weight: 600; }

/* Vista de lista */
.woocommerce ul.products.epic-products--list { --w-cols: 1 !important; }
.woocommerce ul.products.epic-products--list li.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	column-gap: 40px;
	align-items: center;
}
.woocommerce ul.products.epic-products--list li.product > :not(.epic-product-card__media) { grid-column: 2; }
.woocommerce ul.products.epic-products--list li.product .epic-product-card__media { grid-row: 1 / span 4; margin: 0; }

.woocommerce div.product .product_title {
	margin: 0 0 12px;
	font-family: var(--w-heading-font);
	font-size: 36px;
	font-weight: 700;
	line-height: 1.01;
	letter-spacing: var(--w-heading-ls, normal);
	color: var(--w-heading);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 24px;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.2;
	color: #000;
}
.woocommerce div.product .woocommerce-product-details__short-description { margin-bottom: 24px; }

/* Variaciones */
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { background: transparent; }
.woocommerce div.product form.cart .variations {
	margin-bottom: 20px;
	border: 0;
}
.woocommerce div.product form.cart .variations tr { display: flex; flex-direction: column; gap: 8px; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
	display: block;
	padding: 0;
	text-align: left;
	border: 0;
}
.woocommerce div.product form.cart .variations label {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #000;
}
.woocommerce div.product form.cart .variations select {
	min-width: 165px;
	max-width: 100%;
	margin: 0;
	padding: 7px 34px 7px 14px;
	font-size: 14px;
	line-height: 26px;
	color: #000;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 12px center;
	border: 0;
	border-bottom: 1px solid var(--w-line);
	border-radius: 0;
	appearance: none;
	-webkit-appearance: none;
}
.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: 8px;
	font-size: 12px;
}
.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation-price { margin-bottom: 15px; }

/* Cantidad + añadir al carrito */
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 15px;
	margin-bottom: 40px;
}
.woocommerce div.product form.cart div.quantity {
	float: none;
	margin: 0;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button {
	flex: 1 1 200px;
	float: none;
	min-height: 45px;
	padding: 12px 18px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.woocommerce .quantity.epic-qty {
	display: inline-flex;
	align-items: stretch;
	height: 45px;
	border: 1px solid var(--w-line);
}
.woocommerce .quantity.epic-qty .qty {
	width: 45px;
	height: auto;
	padding: 0;
	font-size: 16px;
	text-align: center;
	color: #333;
	background: transparent;
	border: 0;
	-moz-appearance: textfield;
}
.woocommerce .quantity.epic-qty .qty::-webkit-outer-spin-button,
.woocommerce .quantity.epic-qty .qty::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
.epic-qty__btn {
	width: 45px;
	padding: 0;
	font-size: 18px;
	line-height: 1;
	color: var(--w-link);
	background: transparent;
	border: 0;
	cursor: pointer;
	transition: color .2s, background-color .2s;
}
.epic-qty__btn:hover { color: var(--w-dark); background: var(--w-muted-bg); }

/* Meta + compartir */
.woocommerce div.product .summary .product_meta {
	display: inline-flex;
	flex-direction: column;
	gap: 4px;
	font-size: 11px;
	font-weight: 700;
	line-height: 21px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #000;
}
.woocommerce div.product .summary .product_meta > span span,
.woocommerce div.product .summary .product_meta a { font-weight: 700; color: var(--w-link); }
.woocommerce div.product .summary .product_meta .sku { color: #aaa; }
.woocommerce div.product .summary .epic-share {
	float: right;
	margin-top: 4px;
}

.epic-share {
	display: inline-flex;
	align-items: center;
	gap: 14px;
}
.epic-share__label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--w-text);
}
.epic-share__list {
	display: flex;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.epic-share a.epic-share__link {
	display: inline-flex;
	align-items: center;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	color: #000;
}
.epic-share--icons a.epic-share__link { font-size: 15px; }
.woocommerce div.product .summary .epic-share__list { gap: 20px; }
.epic-share--icons .epic-share__label { display: none; }
.epic-share a.epic-share__link:hover { color: var(--w-link); }

/* Pestañas: línea a todo el ancho, centradas, subrayado en la activa. */
.woocommerce div.product .woocommerce-tabs { margin-top: 100px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	justify-content: center;
	gap: 45px;
	margin: 0 calc(50% - 50vw) 26px;
	padding: 0;
	border-top: 1px solid var(--w-line);
	border-bottom: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.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 {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	position: relative;
	display: block;
	padding: 21px 0;
	font-size: 16px;
	font-weight: 500;
	color: rgba(0, 0, 0, .5);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a::before {
	content: "";
	position: absolute;
	top: -1px;
	right: 0;
	left: 0;
	height: 2px;
	background: #000;
	transform: scaleX(0);
	transition: transform .3s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #000; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::before { transform: none; }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0 0 7.5px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	margin: 0 0 23px;
	font-size: 23px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: var(--w-h2-ls, normal);
	color: var(--w-heading);
}

.woocommerce table.shop_attributes {
	border: 0;
	border-collapse: separate;
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 15px 23px;
	font-size: 15px;
	line-height: 1.5;
	border: 0;
}
.woocommerce table.shop_attributes th {
	width: 150px;
	font-weight: 400;
	color: #000;
	background: #f8f8f8;
}
.woocommerce table.shop_attributes td {
	color: #454545;
	background: #fdfdfd;
}
.woocommerce table.shop_attributes td p { padding: 0; }
.woocommerce table.shop_attributes tr:nth-child(even) th,
.woocommerce table.shop_attributes tr:nth-child(even) td { background: #f4f4f4; }

/* Reseñas */
.woocommerce #reviews #comments ol.commentlist li .comment-text {
	border-color: var(--w-line);
	border-radius: 0;
}
.woocommerce #review_form #respond textarea,
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"] {
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid var(--w-line);
}

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
	margin: 0 0 38px;
	font-size: 33px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: var(--w-h2-ls, normal);
	text-align: center;
	color: var(--w-heading);
}
.woocommerce .related,
.woocommerce .upsells { margin-top: 30px; }
.woocommerce .related ul.products li.product h3.woocommerce-loop-product__title,
.woocommerce .upsells ul.products li.product h3.woocommerce-loop-product__title { font-size: 16px; line-height: 1.33; color: #000; }
.woocommerce .related ul.products li.product .price,
.woocommerce .upsells ul.products li.product .price { font-size: 12px; line-height: 1.6; }

/* 5. Carrito ---------------------------------------------------------------------- */
.epic-woo-page { padding: 10px 0 20px; }
.woocommerce-cart table.cart tr.cart_item,
.woocommerce-cart table.cart tr.cart_item td { background: transparent !important; }
.woocommerce .cart_totals > h2 { letter-spacing: normal; }

.epic-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 0 0 60px;
	padding: 0;
	list-style: none;
	border: 1px solid var(--w-line);
}
.epic-steps__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 25px;
	padding: 35px 60px;
	font-family: var(--w-heading-font);
	font-size: 16px;
	font-weight: 600;
	color: #333;
}
.epic-steps__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 20%;
	right: 0;
	width: 16px;
	height: 60%;
	background:
		linear-gradient(to top right, transparent calc(50% - .5px), var(--w-line) 50%, transparent calc(50% + .5px)) top / 100% 50% no-repeat,
		linear-gradient(to bottom right, transparent calc(50% - .5px), var(--w-line) 50%, transparent calc(50% + .5px)) bottom / 100% 50% no-repeat;
}
.epic-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	font-size: 10px;
	font-weight: 600;
	color: #fff;
	background: #a7a7a7;
	border-radius: 50%;
}
.epic-steps__item.is-current .epic-steps__num,
.epic-steps__item.is-done .epic-steps__num { background: var(--w-accent); }

.woocommerce table.shop_table {
	margin: 0 0 30px;
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 22px 15px;
	border: 0;
}
.woocommerce-cart table.cart thead th {
	padding-top: 25px;
	padding-bottom: 25px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: #000;
	background: var(--w-muted-bg);
}
.woocommerce-cart table.cart thead th:first-child { padding-left: 28px; }
.woocommerce-cart table.cart td { border-top: 0; }
.woocommerce-cart table.cart tr.cart_item td { padding-top: 35px; }
.woocommerce-cart table.cart td.product-thumbnail { width: 120px; padding-left: 28px; }
.woocommerce-cart table.cart img { width: 64px; }
.woocommerce-cart table.cart td.product-name a {
	font-size: 17px;
	font-weight: 500;
	color: #000;
}
.woocommerce-cart table.cart td.product-name dl.variation {
	margin-top: 12px;
	font-size: 13px;
}
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
	font-weight: 600;
	color: #000;
}
.woocommerce-cart table.cart td.product-remove { text-align: center; }
.woocommerce a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	font-size: 22px;
	font-weight: 300;
	color: var(--w-accent) !important;
	border-radius: 50%;
}
.woocommerce a.remove:hover { color: #fff !important; background: #e2401c; }

.woocommerce-cart table.cart td.actions { padding: 30px 0 0; }
.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	align-items: stretch;
	width: 60%;
	border: 1px dashed #d0d0d0;
}
.woocommerce-cart table.cart td.actions .coupon .input-text {
	flex: 1;
	width: auto;
	margin: 0;
	padding: 12px 35px;
	font-size: 15px;
	background: transparent;
	border: 0;
}
.woocommerce-cart table.cart td.actions .coupon .button {
	padding: 0 25px;
	font-size: 0;
	color: var(--w-accent);
	background: transparent;
}
.woocommerce-cart table.cart td.actions .coupon .button::before {
	content: "\2192";
	font-size: 20px;
}
.woocommerce-cart table.cart td.actions .coupon .button:hover {
	color: var(--w-dark);
	background: transparent;
	box-shadow: none;
}
.woocommerce-cart table.cart td.actions > .button {
	float: right;
	padding: 15px 28px;
	color: #fff;
	background: #777;
}
.woocommerce-cart table.cart td.actions > .button:hover { background: var(--w-dark); }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	float: right;
	width: 48%;
}
.woocommerce .cart_totals > h2 {
	margin: 0 0 40px;
	font-size: 23px;
	font-weight: 700;
	color: var(--w-heading);
}
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
	padding: 15px;
	font-size: 15px;
	background: #f9f9f9;
}
.woocommerce .cart_totals table.shop_table th {
	width: 35%;
	font-weight: 400;
	color: var(--w-text);
	background: #f2f2f2;
}
.woocommerce .cart_totals table.shop_table td { font-weight: 600; color: #333; }
.woocommerce .cart_totals .wc-proceed-to-checkout { padding: 0; }
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	width: 100%;
	margin: 0;
	padding: 18px;
	font-size: 13px;
}

.woocommerce .cart-empty.woocommerce-info,
.wc-empty-cart-message .cart-empty {
	margin: 40px 0 35px;
	padding: 0;
	font-family: var(--w-heading-font);
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	color: #000;
	background: none;
	border: 0;
}
.woocommerce .cart-empty.woocommerce-info::before,
.wc-empty-cart-message .cart-empty::before { display: none; }
.woocommerce-cart .return-to-shop .button { padding: 15px 38px; }
.woocommerce-cart .return-to-shop { margin-bottom: 0; }
.woocommerce-cart .wc-empty-cart-message .cart-empty,
.woocommerce-cart .cart-empty.woocommerce-info { margin-top: 90px; }
.epic-page:has(.cart-empty) { padding-bottom: 0; }

/* 6. Checkout --------------------------------------------------------------------- */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	margin-bottom: 12px;
	padding: 6px 15px 6px 38px;
	font-size: 13px;
	font-weight: 600;
	color: #222;
	background: #fff;
	border: 1px solid var(--w-line);
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
	top: 7px;
	left: 14px;
	color: var(--w-accent);
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--w-accent); }
.woocommerce-checkout form.checkout_coupon {
	margin: 0 0 20px;
	padding: 20px;
	border: 1px dashed #d0d0d0;
	border-radius: 0;
}

.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	/* Fila 1: título "Tu pedido" (puede estar oculto por CSS del sitio); fila 2 absorbe el alto del formulario. */
	grid-template-rows: auto 1fr;
	column-gap: 40px;
	align-items: start;
}
.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout form.checkout > #order_review_heading {
	position: relative;
	grid-column: 2;
	grid-row: 1;
	margin: 15px 0 0;
	padding: 40px 30px 10px;
	font-size: 19px;
	background: var(--w-muted-bg);
}
.woocommerce-checkout form.checkout > #order_review_heading::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 4px;
	background: radial-gradient(circle at 4px 0, #fff 2px, transparent 2.5px) 0 0 / 10px 4px repeat-x;
}
.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 2; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: 100%;
}
.woocommerce-checkout h3,
.woocommerce-checkout #customer_details h3 {
	margin: 45px 0 30px;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--w-heading);
}
.woocommerce-checkout #customer_details .col-1 h3 { margin-top: 15px; }

.woocommerce form .form-row { margin: 0 0 20px; padding: 0; }
.woocommerce form .form-row label {
	margin-bottom: 5px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--w-text);
}
.woocommerce form .form-row .required { color: #e2401c; text-decoration: none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .form-row .select2-container .select2-selection--single {
	min-height: 45px;
	padding: 10px 18px;
	font-size: 14px;
	line-height: 1.5;
	color: #000;
	background: #fff;
	border: 1px solid var(--w-line);
	border-radius: 0;
	box-shadow: none;
}
.woocommerce form .form-row .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 24px;
	color: #000;
}
.woocommerce form .form-row .select2-container .select2-selection--single .select2-selection__arrow { top: 10px; right: 10px; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: #b5b5b5; outline: 0; }
.woocommerce form .form-row textarea { min-height: 90px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #e2401c; }

/* Resumen del pedido + pago: dos tarjetas grises con borde superior punteado. */
.woocommerce-checkout #order_review {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table,
.woocommerce-checkout #payment {
	position: relative;
	margin: 0;
	padding: 40px 30px 30px;
	background: var(--w-muted-bg);
	border-radius: 0;
}
.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table::before,
.woocommerce-checkout #payment::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 4px;
	background: radial-gradient(circle at 4px 0, #fff 2px, transparent 2.5px) 0 0 / 10px 4px repeat-x;
}
.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table {
	display: table;
	padding-top: 10px;
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table::before { display: none; }
.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table td,
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table th {
	padding: 15px 0;
	font-size: 13px;
	background: transparent;
	border-bottom: 1px dashed #d6d6d6;
}
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tbody td { padding-top: 0; }
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table td.product-name { font-size: 15px; color: var(--w-text); }
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table td.product-total { font-weight: 600; text-align: right; color: #000; }
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tfoot th {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #000;
}
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tfoot td {
	font-size: 18px;
	font-weight: 600;
	text-align: right;
	color: #000;
}
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tfoot tr:last-child th,
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tfoot tr:last-child td { border-bottom: 0; padding-top: 25px; }
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table tr.order-total td { font-size: 26px; }

.woocommerce-checkout #order_review .epic-payment-title {
	position: relative;
	margin: 0;
	padding: 40px 30px 0;
	font-size: 26px;
	font-weight: 700;
	color: var(--w-heading);
	background: var(--w-muted-bg);
}
.epic-payment-title::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 4px;
	background: radial-gradient(circle at 4px 0, #fff 2px, transparent 2.5px) 0 0 / 10px 4px repeat-x;
}
.woocommerce-checkout #order_review .epic-payment-title + #payment { margin-top: -20px; padding-top: 25px; }
.woocommerce-checkout .epic-payment-title + #payment::before { display: none; }
.woocommerce-cart table.cart td.actions .epic-continue-shopping {
	float: right;
	margin-right: 24px;
	padding: 15px 28px;
	color: #000;
	background: #fff;
	border: 1px solid var(--w-line);
}
.woocommerce-cart table.cart td.actions .epic-continue-shopping:hover { color: #fff; background: var(--w-dark); }
.woocommerce-checkout #payment ul.payment_methods {
	padding: 0 0 20px;
	border-bottom: 0;
}
.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 15px;
	font-size: 14px;
	font-weight: 600;
	color: #000;
}
.woocommerce-checkout #payment div.payment_box {
	margin: 12px 0 0;
	padding: 0;
	font-size: 13px;
	font-weight: 400;
	color: var(--w-text);
	background: transparent;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: 0; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: 11px; line-height: 1.6; }
.woocommerce-checkout .woocommerce-privacy-policy-text a { color: var(--w-accent); }
.woocommerce-checkout #payment #place_order {
	float: none;
	width: 100%;
	padding: 13px;
	font-size: 11px;
	letter-spacing: .15em;
	text-transform: uppercase;
}

/* Pedido recibido */
.woocommerce-order .woocommerce-thankyou-order-received {
	margin-bottom: 30px;
	font-size: 22px;
	font-weight: 600;
	color: var(--w-heading);
}
.woocommerce ul.order_details {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 0;
	margin: 0 0 40px;
	padding: 30px;
	background: var(--w-muted-bg);
}
.woocommerce ul.order_details li { border-color: #ddd; }

/* 7. Mi cuenta / avisos -------------------------------------------------------------- */
.woocommerce-account.logged-in .woocommerce {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 50px;
}
.woocommerce-account.logged-in .woocommerce > * { flex: 1 1 100%; order: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}
.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation { flex: 0 0 240px; order: 1; }
.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content { flex: 1 1 0; min-width: 0; order: 2; }
.woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--w-line);
}
.woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--w-line); }
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 14px 20px;
	font-size: 14px;
	font-weight: 500;
	color: #333;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a:hover {
	color: #000;
	background: var(--w-muted-bg);
	box-shadow: inset 3px 0 0 var(--w-accent);
}

.woocommerce .col2-set#customer_login,
.woocommerce-account .u-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
}
.woocommerce .col2-set#customer_login .col-1,
.woocommerce .col2-set#customer_login .col-2 { float: none; width: auto; }
.woocommerce-account h2 {
	font-size: 30px;
	font-weight: 700;
	color: var(--w-heading);
}
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password {
	margin: 0;
	padding: 35px;
	border: 1px solid var(--w-line);
	border-radius: 0;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	padding: 1em 1.5em 1em 3.5em;
	font-size: 14px;
	color: #333;
	background: var(--w-muted-bg);
	border-top: 3px solid var(--w-accent);
}
.woocommerce-message::before { color: var(--w-accent); }
.woocommerce-info { border-top-color: var(--w-link); }
.woocommerce-info::before { color: var(--w-link); }
.woocommerce-error { border-top-color: #e2401c; }
.woocommerce-message .button,
.woocommerce-info .button { padding: 8px 18px; }

/* 7b. Variantes según opciones de Hub ------------------------------------------------- */
/* Fila superior del resumen: valoración + navegación (anterior · tienda · siguiente). */
.epic-sp-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 20px;
	margin-bottom: 26px;
}
.epic-sp-top .woocommerce-product-rating { margin: 0; }
.epic-sp-top .epic-product-nav { margin: 0; gap: 20px; }
.woocommerce div.product .epic-product-nav a { color: #000; }

/* Precio rebajado (Hub usaba su color primario por defecto). */
.woocommerce ul.products li.product .price ins { color: var(--w-sale, #184341); }

/* Etiqueta de agotado sobre la imagen. */
.epic-product-card__media { position: relative; }
.epic-soldout {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 3;
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .185em;
	text-transform: uppercase;
	color: #fff;
	background: #e82d2d;
}

/* Tarjeta "minimal" / "minimal-2" (wc-archive-product-style): botón claro y más angosto. */
.epic-shop-style-minimal .epic-product-card__actions,
.epic-shop-style-minimal-2 .epic-product-card__actions {
	right: 10%;
	bottom: 14px;
	left: 10%;
}
/* minimal-2 (Hub ld-sp-min-2): botón a 25px del borde, sube 10px al aparecer; la imagen no hace zoom. */
.epic-shop-style-minimal-2 .epic-product-card__actions { bottom: 25px; }
@media (min-width: 768px) and (hover: hover) {
	.epic-shop-style-minimal-2 .epic-product-card__actions {
		transform: translateY(10px);
		transition: opacity .3s, transform .3s;
	}
	.epic-shop-style-minimal-2 ul.products li.product:hover .epic-product-card__actions,
	.epic-shop-style-minimal-2 .epic-product-card__actions:focus-within { transform: none; }
}
.epic-shop-style-minimal-2 ul.products li.product .epic-product-card__actions .button { border-radius: 2px; }
.epic-shop-style-minimal-2 .woocommerce ul.products li.product:hover a img,
.epic-shop-style-minimal-2 ul.products li.product:hover a img { transform: none; }
.epic-shop-style-minimal .woocommerce ul.products li.product .epic-product-card__actions .button,
.epic-shop-style-minimal-2 .woocommerce ul.products li.product .epic-product-card__actions .button,
.epic-shop-style-minimal ul.products li.product .epic-product-card__actions .button,
.epic-shop-style-minimal-2 ul.products li.product .epic-product-card__actions .button {
	padding: 11px 13px;
	font-weight: 600;
	letter-spacing: .2em;
	color: #000;
	background: rgba(255, 255, 255, .85);
}
.epic-shop-style-minimal ul.products li.product .epic-product-card__actions .button:hover,
.epic-shop-style-minimal-2 ul.products li.product .epic-product-card__actions .button:hover { color: #fff; background: #000; }
.epic-shop-style-minimal ul.products li.product .woocommerce-loop-product__title,
.epic-shop-style-minimal-2 ul.products li.product .woocommerce-loop-product__title { color: #000; }
.epic-shop-style-minimal ul.products li.product .price,
.epic-shop-style-minimal-2 ul.products li.product .price,
.epic-shop-style-minimal ul.products li.product .price ins,
.epic-shop-style-minimal-2 ul.products li.product .price ins { font-weight: 400; }
/* Con barra superior, la rejilla arranca justo debajo (la barra trae su propio relleno). */
.epic-woo-wrap:has(.epic-shop-topbar) { padding-top: 0 !important; }
.epic-shop-style-minimal ul.products li.product .price del,
.epic-shop-style-minimal-2 ul.products li.product .price del { opacity: 1; font-size: .95em; }

/* Barra superior (Hub 5/6): 20px arriba/abajo, texto 13px gris. */
.epic-shop-topbar {
	margin-bottom: 0;
	padding: 20px 0;
	font-size: 13px;
	color: #5e5e5e;
}
.epic-shop-topbar .woocommerce-result-count { margin-left: auto; margin-right: 0; font-size: 13px; color: #5e5e5e; }
.epic-shop-topbar .woocommerce-ordering { margin-left: 2px; }
.epic-shop-topbar .woocommerce-ordering select { font-size: 14px; font-weight: 500; }
.epic-per-page { gap: 6px; font-size: 13px; }
.epic-per-page__label { margin-right: 6px; color: #5e5e5e; }
.epic-per-page__sep { color: #5e5e5e; }
.epic-per-page__opt { color: #5e5e5e; }
.epic-per-page__opt.is-active { color: #000; font-weight: 400; text-decoration: underline; }
.epic-view-switch { gap: 13px; }
.epic-view-switch__btn { opacity: 1; color: #5e5e5e; }
.epic-view-switch__btn.is-active { color: #000; }
.epic-shop-topbar + ul.products,
.epic-shop-topbar ~ ul.products { margin-top: 0; }

/* Carga por AJAX */
.epic-ajax-more { display: flex; justify-content: center; min-height: 40px; margin: 10px 0 40px; }
.epic-ajax-more.is-loading::after {
	content: "";
	width: 28px;
	height: 28px;
	border: 2px solid rgba(0, 0, 0, .15);
	border-top-color: #000;
	border-radius: 50%;
	animation: epic-spin .7s linear infinite;
}
.epic-ajax-more.is-loading .epic-ajax-more__btn { display: none; }
@keyframes epic-spin { to { transform: rotate(360deg); } }

/* Aspecto Hub 5 (body.epic-woo-legacy): botón y cantidad de 56px, cantidad con borde. */
.epic-woo-legacy div.product form.cart .button.single_add_to_cart_button {
	flex: 0 0 auto;
	min-width: 261px;
	min-height: 56px;
	padding: 18px 50px;
	background: var(--e-global-color-primary, #000);
}
.epic-woo-legacy .woocommerce .quantity.epic-qty,
.epic-woo-legacy.woocommerce .quantity.epic-qty {
	height: 56px;
	border: 1px solid rgba(0, 0, 0, .1);
}
.epic-woo-legacy .epic-qty__btn { width: 48px; color: #000; }
.epic-woo-legacy div.product form.cart:not(.variations_form),
.epic-woo-legacy div.product form.cart .woocommerce-variation-add-to-cart { flex-wrap: nowrap; }
.epic-woo-legacy div.product form.cart .variations label { font-weight: 700; letter-spacing: 1.3px; }

/* Producto sin barra de título: 39px sobre la galería, como Hub. */
.single-product:not(.epic-product-titlebar) .epic-woo-wrap { padding-top: 39px; }

.epic-woo-legacy div.product p.price { margin-bottom: 0; font-weight: 400; }
.epic-woo-legacy div.product p.price ins { font-weight: 700; }
.epic-woo-legacy div.product form.cart { color: #000; }
/* Navegación de producto de Hub 5: iconos de 18px. */
.epic-woo-legacy .epic-product-nav a { min-width: 18px; height: 18px; justify-content: center; }
.epic-woo-legacy .epic-back-to-shop__grid { grid-template-columns: 8px 8px; }
.epic-woo-legacy .epic-back-to-shop__grid i { width: 8px; height: 8px; }
/* Botón de añadir mientras se envía por AJAX. */
.woocommerce div.product form.cart .button.loading { opacity: .6; pointer-events: none; }
.epic-woo-legacy div.product form.cart {
	font-size: 13px;
	letter-spacing: 1.3px;
	text-transform: uppercase;
}
.epic-woo-legacy div.product form.cart .variations { margin-bottom: 13px; }
.epic-woo-legacy div.product form.cart .variations tr { margin-bottom: 26px; gap: 8px; }
.epic-woo-legacy div.product form.cart .quantity .qty { letter-spacing: normal; }

/* Hub 5 usaba su color primario propio (#184341) en botones de carrito/checkout, sin pasos de compra,
 * y etiquetas de formulario más marcadas. El botón de añadir del producto sigue en negro (arriba). */
body.epic-woo.epic-woo-legacy { --w-accent: #184341; }
/* Cupón dentro de "Tu pedido" (inc/b2-woo-checkout.php). */
.epic-coupon-row td { padding: 20px 0 !important; border-bottom: 1px dashed #d6d6d6; }
.epic-inline-coupon { display: flex; flex-wrap: wrap; gap: 12px 30px; }
.epic-inline-coupon .input-text {
	flex: 1 1 200px;
	min-height: 45px;
	padding: 10px 25px;
	font-size: 14px;
	background: #fff;
	border: 1px solid var(--w-line);
}
.epic-inline-coupon .button { padding: 15px 28px; letter-spacing: .1em; text-transform: uppercase; }
.epic-woo-legacy .epic-steps { display: none; }
.epic-woo-legacy.woocommerce-checkout form .form-row label,
.epic-woo-legacy .woocommerce form .form-row label {
	font-size: 15px;
	font-weight: 600;
	color: var(--w-heading);
}
.epic-woo-legacy.woocommerce-checkout .woocommerce-privacy-policy-text a { color: var(--w-accent); }

/* Pestañas verticales (Hub 5): lista a la izquierda, contenido a la derecha. */
.epic-woo-tabs-vertical div.product .woocommerce-tabs {
	display: grid;
	grid-template-columns: 342px minmax(0, 1fr);
	align-items: start;
}
.epic-woo-tabs-vertical div.product .woocommerce-tabs ul.tabs {
	grid-column: 1;
	grid-row: 1 / span 6;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0 28px 0 0;
	border: 0;
}
.epic-woo-tabs-vertical div.product .woocommerce-tabs ul.tabs li a {
	padding: 7px 0;
	font-size: 16px;
	font-weight: 400;
	color: #515151;
}
.epic-woo-tabs-vertical div.product .woocommerce-tabs ul.tabs li a::before { display: none; }
.epic-woo-tabs-vertical div.product .woocommerce-tabs ul.tabs li.active a { color: #000; font-weight: 600; }
.epic-woo-tabs-vertical div.product .woocommerce-tabs .panel { grid-column: 2; }

/* 8. Responsive ---------------------------------------------------------------------- */
@media (max-width: 1199px) {
	.epic-steps__item { padding: 28px 30px; gap: 15px; }
}
@media (max-width: 991px) {
	.woocommerce ul.products,
	.woocommerce ul.products[class*="columns-"] { --w-cols: 2; }
	.woocommerce ul.products.columns-1 { --w-cols: 1; }
	.epic-sp-row { grid-template-columns: minmax(0, 1fr); }
	.epic-sp-images > .woocommerce-product-gallery:has(.flex-control-thumbs) { max-width: none; }
	.epic-titlebar--product { padding: 50px 0; }
	.epic-titlebar--product .epic-titlebar__title { font-size: 44px; }
	.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout form.checkout > #customer_details,
	.woocommerce-checkout form.checkout > #order_review { grid-column: 1; grid-row: auto; }
	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-page .cart-collaterals .cart_totals { float: none; width: 100%; }
	.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation,
	.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content { flex: 1 1 100%; margin-bottom: 30px; }
}
@media (max-width: 767px) {
	body.epic-woo.archive .epic-woo-wrap { padding-top: 30px; }
	/* Catálogo: botón siempre visible, barra negra bajo la imagen; título y precio centrados. */
	.woocommerce ul.products { gap: 40px 10px; }
	.woocommerce ul.products li.product { text-align: center; }
	.epic-product-card__media { margin-bottom: 18px; background: transparent; }
	.epic-product-card__actions {
		position: static;
		opacity: 1;
		transform: none;
	}
	.woocommerce ul.products li.product .epic-product-card__actions .button {
		justify-content: center;
		text-align: center;
		padding: 11px 8px;
		font-size: 13px;
		letter-spacing: .185em;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product h3 { font-size: 16px; color: #000; text-align: center; }
	.woocommerce ul.products li.product .price { font-size: 14.4px; text-align: center; }
	.woocommerce ul.products li.product:hover a img { transform: none; }
	.woocommerce .related ul.products li.product h3.woocommerce-loop-product__title,
	.woocommerce .upsells ul.products li.product h3.woocommerce-loop-product__title { font-size: 16px; }
	.woocommerce .related ul.products li.product .price,
	.woocommerce .upsells ul.products li.product .price { font-size: 14.4px; }

	/* Producto */
	.epic-titlebar--product { padding: 80px 0; margin-bottom: 30px; }
	.epic-titlebar--product .epic-titlebar__title { font-size: 37px; }
	.woocommerce div.product .product_title { font-size: 34px; }
	.woocommerce div.product div.images.woocommerce-product-gallery--with-images:has(.flex-control-thumbs) { grid-template-columns: minmax(0, 1fr); }
	.woocommerce div.product div.images .flex-viewport,
	.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper { grid-column: 1; }
	.woocommerce div.product div.images .flex-control-thumbs { display: none; }
	.woocommerce div.product form.cart:not(.variations_form),
	.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
		flex-direction: column;
		align-items: flex-start;
		gap: 25px;
	}
	.woocommerce div.product form.cart .button.single_add_to_cart_button {
		flex: 0 0 auto;
		width: 100%;
		min-height: 51px;
	}
	.woocommerce div.product form.cart .variations select { margin-bottom: 35px; }
	.woocommerce .quantity.epic-qty { border-color: transparent; }
	.woocommerce div.product .summary .epic-share {
		float: none;
		display: flex;
		margin-top: 25px;
	}
	.woocommerce div.product .summary .epic-share__list { gap: 24px; }
	.woocommerce div.product .summary .epic-share--icons a.epic-share__link { font-size: 17px; }

	/* Pestañas como acordeón: título, contenido, título, contenido (mismo JS de Woo). */
	.woocommerce div.product .woocommerce-tabs {
		display: flex;
		flex-direction: column;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs,
	.woocommerce div.product .woocommerce-tabs ul.tabs li { display: contents; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li:nth-child(1) > a { order: 1; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li:nth-child(2) > a { order: 3; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li:nth-child(3) > a { order: 5; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li:nth-child(4) > a { order: 7; }
	.woocommerce div.product .woocommerce-tabs > .panel:nth-of-type(1) { order: 2; }
	.woocommerce div.product .woocommerce-tabs > .panel:nth-of-type(2) { order: 4; }
	.woocommerce div.product .woocommerce-tabs > .panel:nth-of-type(3) { order: 6; }
	.woocommerce div.product .woocommerce-tabs > .panel:nth-of-type(4) { order: 8; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 14px 0;
		font-size: 19px;
		font-weight: 700;
		letter-spacing: var(--w-h2-ls, normal);
		color: var(--w-heading);
		border-bottom: 1px solid var(--w-line);
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li a::before { display: none; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li a::after {
		content: "";
		width: 7px;
		height: 7px;
		margin-right: 4px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg) translateY(-3px);
		transition: transform .3s;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--w-heading); }
	.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after { transform: rotate(-135deg) translateY(-2px); }
	.woocommerce div.product .woocommerce-tabs .panel { margin: 20px 0 25px; }
	.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
	.woocommerce div.product .woocommerce-tabs { margin-top: 40px; margin-bottom: 40px; }
	/* Pasos: tres círculos unidos por una línea, etiqueta debajo. */
	.epic-steps { grid-template-columns: repeat(3, 1fr); margin: 35px 0; border: 0; }
	.epic-steps__item {
		flex-direction: column;
		gap: 14px;
		padding: 0 6px;
		font-size: 14px;
		line-height: 1.35;
		text-align: center;
	}
	.epic-steps__num { position: relative; z-index: 1; width: 32px; height: 32px; font-size: 11px; }
	.epic-steps__item:not(:last-child)::after {
		display: block;
		top: 16px;
		right: auto;
		left: 50%;
		width: 100%;
		height: 1px;
		background: var(--w-line);
	}

	/* Checkout en una columna. */
	.woocommerce-checkout form.checkout > #customer_details,
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review { grid-column: 1; grid-row: auto; }
	.woocommerce-checkout form.checkout > #order_review_heading { margin-top: 30px; padding: 40px 25px 10px; font-size: 26px; }
	.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table,
	.woocommerce-checkout #payment { padding: 25px 25px 30px; }
	.woocommerce-checkout #customer_details .form-row-first,
	.woocommerce-checkout #customer_details .form-row-last { width: 48.5%; }
	.woocommerce-checkout #payment #place_order { padding: 18px; font-size: 13px; }

	/* Aviso de cupón: caja punteada centrada con el icono arriba. */
	.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
		padding: 50px 20px 25px;
		text-align: center;
		border: 1px dashed #d0d0d0;
	}
	.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { top: 22px; left: 50%; transform: translateX(-50%); }
	.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { display: block; }

	/* Carrito: fila compacta (miniatura | nombre + cantidad | precio | quitar). */
	.woocommerce-cart table.cart thead { display: none; }
	.woocommerce-cart table.cart tr.cart_item {
		display: grid;
		grid-template-columns: 64px minmax(0, 1fr) auto 24px;
		grid-template-areas: "thumb name price remove" "thumb qty . .";
		column-gap: 18px;
		row-gap: 12px;
		align-items: center;
		padding: 25px 0;
		border-bottom: 1px solid var(--w-line);
	}
	.woocommerce-cart table.cart tr.cart_item td {
		display: block;
		padding: 0 !important;
		text-align: left !important;
		background: transparent !important;
		border: 0;
	}
	.woocommerce-cart table.cart tr.cart_item td::before { display: none !important; }
	.woocommerce-cart table.cart tr.cart_item td.product-thumbnail { grid-area: thumb; display: block !important; width: auto; }
	.woocommerce-cart table.cart tr.cart_item td.product-name { grid-area: name; }
	.woocommerce-cart table.cart tr.cart_item td.product-price { grid-area: price; }
	.woocommerce-cart table.cart tr.cart_item td.product-remove { grid-area: remove; }
	.woocommerce-cart table.cart tr.cart_item td.product-quantity { grid-area: qty; }
	.woocommerce-cart table.cart tr.cart_item td.product-subtotal { display: none; }
	.woocommerce-cart table.cart td.product-name a { font-size: 16px; }
	.woocommerce-cart table.cart td.product-name dl.variation { font-weight: 700; }
	.woocommerce-cart table.cart .quantity.epic-qty { height: 45px; border-color: var(--w-line); }
	.woocommerce-cart table.cart td.actions { display: block; padding: 25px 0 0 !important; background: transparent !important; }
	.woocommerce-cart table.cart td.actions::before { display: none !important; }
	.woocommerce-cart table.cart td.actions > .button[name="update_cart"] { display: none; }
	.woocommerce-cart table.cart td.actions .epic-continue-shopping { float: none; display: flex; justify-content: center; width: 100%; margin: 15px 0 0; }
	.woocommerce-cart table.cart tr.cart_item { background: transparent !important; }
	.woocommerce-cart table.cart td.actions .coupon { width: 100%; margin-bottom: 15px; }
	.woocommerce-cart table.cart td.actions > .button { float: none; width: 100%; }
	.woocommerce .cart-empty.woocommerce-info, .wc-empty-cart-message .cart-empty { font-size: 28px; }
	.woocommerce-checkout h3, .woocommerce-checkout #customer_details h3 { font-size: 24px; }
	.woocommerce .col2-set#customer_login, .woocommerce-account .u-columns { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.woocommerce form.login, .woocommerce form.register { padding: 25px 20px; }
}
