/* ==========================================================================
   HORRILLO — tienda : listados, tarjetas, ficha, carrito, checkout, cuenta, avisos
   ========================================================================== */

.tienda { padding-bottom: var(--e8); }
.pagina--tienda { display: block; padding-block: var(--e5) var(--e8); }
.pagina__titulo { margin-bottom: var(--e5); }

/* --- Avisos de WooCommerce --------------------------------------------------- */
.woocommerce-notices-wrapper { margin-bottom: var(--e4); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	position: relative; display: block; list-style: none; margin: 0 0 var(--e4); padding: .9rem 1.1rem .9rem 3rem;
	border: 1px solid var(--borde); border-left-width: 4px; border-radius: var(--radio-m); background: var(--info-velo); font-size: .9375rem; line-height: 1.5;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
	position: absolute; left: 1rem; top: .95rem; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 1.05rem;
}
.woocommerce-message { background: var(--exito-velo); border-color: #BFE0C1; border-left-color: var(--exito); }
.woocommerce-message::before { content: "\f058"; color: var(--exito); }
.woocommerce-info { background: var(--info-velo); border-left-color: var(--madera); }
.woocommerce-info::before { content: "\f05a"; color: var(--madera); }
.woocommerce-error { background: var(--error-velo); border-color: #F2C0BC; border-left-color: var(--error); }
.woocommerce-error::before { content: "\f06a"; color: var(--error); }
.woocommerce-error li { margin: 0 0 .25rem; }
.woocommerce-message .button, .woocommerce-info .button { float: right; min-height: 40px; padding: .35rem 1rem; font-size: .875rem; margin-left: var(--e3); }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a { font-weight: 650; }

/* --- Listado ------------------------------------------------------------------ */
.tienda .woocommerce-breadcrumb { padding-block: var(--e4) var(--e3); }
.migas__sep { color: var(--borde-fuerte); margin-inline: .15rem; }
.tienda__cabecera { margin-bottom: var(--e5); }
.tienda__titulo { margin-bottom: var(--e2); }
.tienda__descripcion { max-width: 70ch; color: var(--tinta-suave); margin: 0 0 var(--e4); }
.tienda__descripcion p:last-child { margin-bottom: 0; }
.chips { display: flex; flex-wrap: wrap; gap: var(--e2); list-style: none; margin: 0; padding: 0; }
.chip { display: inline-flex; align-items: center; gap: .5rem; min-height: 40px; padding: .35rem .95rem; border: 1px solid var(--borde-fuerte); border-radius: 999px; background: var(--superficie); color: var(--tinta); text-decoration: none; font-weight: 600; font-size: .9rem; }
.chip:hover { border-color: var(--brasa); background: var(--brasa-velo); color: var(--brasa-oscura); }
.chip__n { color: var(--tinta-terciaria); font-size: .8125rem; font-weight: 500; }

.tienda__rejilla { display: grid; gap: var(--e6); }
@media (min-width: 960px) { .tienda__rejilla { grid-template-columns: 260px minmax(0, 1fr); align-items: start; } }
.tienda__barra { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e3); margin-bottom: var(--e4); padding-bottom: var(--e3); border-bottom: 1px solid var(--borde); }
.tienda__barra .woocommerce-result-count { margin: 0; font-size: .9375rem; color: var(--tinta-suave); margin-right: auto; }
.tienda__barra .woocommerce-ordering { margin: 0; }
.tienda__barra .woocommerce-ordering select { min-height: 44px; width: auto; min-width: 220px; padding-block: .45rem; font-size: .9375rem; }
.tienda__filtros-boton { display: none; }
@media (max-width: 959px) { .tienda__filtros-boton { display: inline-flex; } }

/* Filtros */
.filtros { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); padding: var(--e4); position: sticky; top: calc(var(--alto-cabecera) + 3.5rem); max-height: calc(100vh - var(--alto-cabecera) - 4.5rem); overflow-y: auto; }
.filtros__grupo + .filtros__grupo { margin-top: var(--e5); padding-top: var(--e4); border-top: 1px solid var(--borde); }
.filtros__titulo { font-family: var(--texto); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-terciaria); margin-bottom: var(--e2); }
.filtros__lista, .filtros__sub { list-style: none; margin: 0; padding: 0; }
.filtros__sub { padding-left: var(--e4); margin-bottom: var(--e2); border-left: 2px solid var(--borde); margin-left: .35rem; }
.filtros__lista a { display: flex; align-items: center; gap: .5rem; min-height: 38px; padding: .2rem .4rem; border-radius: var(--radio-s); color: var(--tinta-suave); text-decoration: none; font-size: .9375rem; }
.filtros__lista a:hover { background: var(--superficie-suave); color: var(--tinta); }
.filtros__lista a[aria-current="page"], .filtros__lista a.is-activo { color: var(--brasa-oscura); font-weight: 650; background: var(--brasa-velo); }
.filtros__lista--marcas i { color: var(--tinta-terciaria); font-size: .95rem; }
.filtros__lista a.is-activo i { color: var(--brasa); }
.filtros__n { margin-left: auto; color: var(--tinta-terciaria); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.filtros__limpiar { margin: 0 0 var(--e3); font-size: .875rem; }
.filtros__precio-campos { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e2); }
.filtros__precio .campo { margin-bottom: var(--e2); }
.filtros__precio input { min-height: 42px; padding: .5rem .7rem; }
@media (max-width: 959px) {
	.filtros { position: static; max-height: none; display: none; }
	.filtros.is-abierto { display: block; }
}

/* --- Tarjetas de producto ------------------------------------------------------ */
.tienda ul.products, .seccion ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--e4); list-style: none; margin: 0; padding: 0; }
@media (min-width: 1000px) { .seccion ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 520px) { .tienda ul.products, .seccion ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e2); } }
.tarjeta { position: relative; display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); overflow: hidden; margin: 0; transition: box-shadow var(--transicion), border-color var(--transicion); }
.tarjeta:hover, .tarjeta:focus-within { border-color: var(--borde-fuerte); box-shadow: var(--sombra-2); }
.tarjeta__insignia { position: absolute; top: var(--e3); left: var(--e3); z-index: 2; }
.tarjeta__foto { display: block; position: relative; overflow: hidden; background: #fff; aspect-ratio: 1 / 1; border-bottom: 1px solid var(--borde); }
.tarjeta__imagen { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: .75rem; }
.tarjeta__cuerpo { display: flex; flex-direction: column; flex: 1; padding: var(--e3) var(--e4) var(--e4); gap: .35rem; }
.tarjeta__marca { margin: 0; font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--madera); }
.tarjeta__titulo { margin: 0; font-family: var(--texto); font-size: .9375rem; font-weight: 600; line-height: 1.35; letter-spacing: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: 3.9em; }
.tarjeta__titulo a { color: var(--tinta); text-decoration: none; }
.tarjeta__titulo a:hover { color: var(--brasa-oscura); text-decoration: underline; }
.tarjeta__precio { margin-top: auto; padding-top: var(--e2); font-family: var(--display); font-weight: 700; font-size: 1.5rem; color: var(--tinta); line-height: 1.2; }
.tarjeta__precio del { color: var(--tinta-terciaria); font-weight: 500; font-size: .9375rem; margin-right: .35rem; }
.tarjeta__precio ins { text-decoration: none; }
.precio-desde { font-family: var(--texto); font-size: .875rem; font-weight: 500; color: var(--tinta-suave); margin-right: .15rem; }
.woocommerce-price-suffix { display: block; font-family: var(--texto); font-size: .8125rem; font-weight: 500; color: var(--tinta-terciaria); }
.tarjeta__accion { margin-top: var(--e3); }
.tarjeta__accion .button { min-height: 44px; font-size: .9375rem; }
.tarjeta__accion .added_to_cart { display: none; }
.tarjeta__accion .button.loading { opacity: .7; }
.tarjeta__accion .button.added::after { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; }
@media (max-width: 520px) { .tarjeta__cuerpo { padding: var(--e2) var(--e3) var(--e3); } .tarjeta__titulo { font-size: .875rem; } .tarjeta__precio { font-size: 1.3rem; } }

/* Paginación */
.woocommerce-pagination { margin-top: var(--e6); }
.woocommerce-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e2); list-style: none; margin: 0; padding: 0; }
.woocommerce-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .8rem; border: 1px solid var(--borde-fuerte); border-radius: var(--radio-m); background: var(--superficie); color: var(--tinta); text-decoration: none; font-weight: 600; }
.woocommerce-pagination a.page-numbers:hover { border-color: var(--brasa); color: var(--brasa-oscura); }
.woocommerce-pagination .page-numbers.current { background: var(--brasa); border-color: var(--brasa); color: #fff; }

/* --- Ficha de producto ---------------------------------------------------------- */
.single-product div.product { display: block; padding-bottom: var(--e6); }
.ficha-cabecera { display: grid; gap: var(--e6); align-items: start; }
@media (min-width: 900px) { .ficha-cabecera { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--e7); } }
.woocommerce-product-gallery { position: relative; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio-l); overflow: hidden; margin: 0; }
@media (min-width: 900px) { .woocommerce-product-gallery { position: sticky; top: calc(var(--alto-cabecera) + 4rem); } }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; max-height: 640px; object-fit: contain; }
.woocommerce-product-gallery__trigger { position: absolute; top: var(--e3); right: var(--e3); z-index: 5; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .92); border: 1px solid var(--borde-fuerte); text-decoration: none; font-size: 0; }
.woocommerce-product-gallery__trigger::before { content: "\f00e"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 1rem; color: var(--tinta); }
.flex-control-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: var(--e2); list-style: none; margin: 0; padding: var(--e3); border-top: 1px solid var(--borde); background: var(--fondo); }
.flex-control-thumbs li { margin: 0; }
.flex-control-thumbs img { border: 1px solid var(--borde); border-radius: var(--radio-s); background: #fff; cursor: pointer; opacity: .75; }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { opacity: 1; border-color: var(--brasa); }
.flex-direction-nav { display: none; }

.summary.entry-summary > * { max-width: 100%; }
.ficha__marca { margin: 0 0 var(--e2); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ficha__marca a { color: var(--madera); text-decoration: none; }
.ficha__marca a:hover { text-decoration: underline; }
.product_title { font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.4rem); line-height: 1.15; margin-bottom: var(--e3); }
.summary .price { display: block; margin: 0 0 var(--e3); font-family: var(--display); font-size: 2.5rem; font-weight: 700; color: var(--tinta); line-height: 1.15; }
.summary .price del { color: var(--tinta-terciaria); font-weight: 600; font-size: 1.3rem; margin-right: .5rem; }
.summary .price ins { text-decoration: none; }
.summary .price .woocommerce-price-suffix { display: inline; font-size: .9375rem; margin-left: .4rem; }
.ficha__datos { list-style: none; margin: 0 0 var(--e4); padding: var(--e3) 0; border-block: 1px solid var(--borde); display: grid; gap: .45rem; font-size: .9375rem; color: var(--tinta-suave); }
.ficha__datos li { display: flex; gap: .6rem; align-items: flex-start; margin: 0; }
.ficha__datos i { color: var(--madera); margin-top: .22rem; width: 1.1rem; text-align: center; }
.ficha__stock--si, .ficha__stock--si i { color: var(--exito) !important; font-weight: 650; }
.ficha__stock--no, .ficha__stock--no i { color: var(--error) !important; font-weight: 650; }
.woocommerce-product-details__short-description { color: var(--tinta-suave); margin-bottom: var(--e4); }
.woocommerce-product-details__short-description > :last-child { margin-bottom: 0; }

form.cart { margin: 0 0 var(--e4); }
form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: stretch; }
.single_variation_wrap .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: stretch; }
.single_add_to_cart_button { flex: 1 1 220px; min-height: 56px; font-size: 1.0625rem; }
.single_add_to_cart_button.disabled, .single_add_to_cart_button:disabled { background: var(--tinta-terciaria); border-color: var(--tinta-terciaria); color: #fff; opacity: 1; cursor: not-allowed; }
.cantidad { display: inline-flex; align-items: stretch; border: 1.5px solid var(--borde-campo); border-radius: var(--radio-m); background: var(--superficie); overflow: hidden; height: 56px; }
.cantidad .qty { width: 3.4rem; min-height: 0; height: 100%; border: 0; border-radius: 0; text-align: center; padding: 0; font-weight: 650; font-size: 1.0625rem; -moz-appearance: textfield; appearance: textfield; background: transparent; box-shadow: none; }
.cantidad .qty::-webkit-outer-spin-button, .cantidad .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cantidad .qty:focus { box-shadow: inset 0 0 0 2px var(--brasa); }
.cantidad__boton { width: 46px; border: 0; background: var(--superficie-suave); color: var(--tinta); font-size: .85rem; display: grid; place-items: center; }
.cantidad__boton:hover { background: var(--brasa-velo); color: var(--brasa-oscura); }
.cantidad--mini { height: 40px; }
table.variations { margin-bottom: var(--e4); }
table.variations th, table.variations td { display: block; padding: 0; text-align: left; }
table.variations th label { margin-bottom: .35rem; }
table.variations td { margin-bottom: var(--e3); }
.reset_variations { display: inline-block; margin-top: .4rem; font-size: .875rem; }
.woocommerce-variation-price .price { font-size: 1.8rem; margin: var(--e3) 0; }
.woocommerce-variation-description p { color: var(--tinta-suave); }
.ficha__garantias { list-style: none; margin: var(--e4) 0 0; padding: var(--e4); background: var(--madera-velo); border-radius: var(--radio-m); display: grid; gap: .5rem; font-size: .9375rem; }
.ficha__garantias li { display: flex; gap: .65rem; align-items: center; margin: 0; }
.ficha__garantias i { color: var(--brasa); width: 1.1rem; text-align: center; }
.ficha__ayuda { margin: var(--e3) 0 0; font-size: .9375rem; color: var(--tinta-suave); }
.ficha__ayuda i { color: var(--brasa); margin-right: .35rem; }
.ficha__ayuda a { font-weight: 700; }

/* --- Ficha : lo esencial junto al botón de compra --------------------------------------------- */
.ficha__unitario { display: flex; gap: .55rem; align-items: flex-start; margin: -.3rem 0 var(--e3); font-size: .9375rem; color: var(--tinta-suave); }
.ficha__unitario i { margin-top: .25rem; color: var(--madera); }
.ficha__unitario strong { color: var(--tinta); font-weight: 700; }
.ficha__ref { margin: -.2rem 0 .6rem; font-size: .875rem; color: var(--tinta-suave); }
.ficha__ref .sku { font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.ficha__datos small { color: var(--tinta-terciaria); font-size: .8125rem; }
.ficha__datos a { font-weight: 600; }
.ficha__destacados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e2); margin: var(--e4) 0 0; padding: 0; }
.ficha__destacados > div { padding: .6rem .8rem; border: 1px solid var(--borde); border-radius: var(--radio-m); background: var(--superficie); min-width: 0; }
.ficha__destacados dt { font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-terciaria); }
.ficha__destacados dd { margin: .1rem 0 0; font-weight: 650; line-height: 1.3; overflow-wrap: anywhere; }
@media (max-width: 899px) {
	.single-product .summary.entry-summary { display: flex; flex-direction: column; }
	.single-product .summary > .ficha__destacados { order: 40; }
	.woocommerce-product-gallery__image img { max-height: 340px; }
	.ficha__zonas { display: none; }
}

/* --- Ficha : detalle (descripción en acordeones + ficha técnica) ------------------------------- */
.single-product div.product > .ficha-detalle { display: grid; gap: var(--e6); align-items: start; margin-top: var(--e7); }
@media (min-width: 960px) { .ficha-detalle { grid-template-columns: minmax(0, 1.45fr) minmax(300px, 1fr); gap: var(--e7); } .ficha-detalle__lateral { position: sticky; top: calc(var(--alto-cabecera) + 1.5rem); } }
@media (max-width: 959px) { .ficha-detalle__lateral { order: -1; } }
.ficha-detalle h2 { font-size: 1.5rem; margin: 0 0 var(--e4); }
.ficha-descripcion > p { max-width: 72ch; color: var(--tinta-suave); line-height: 1.65; }
.ficha-descripcion > p:first-child { font-size: 1.0625rem; color: var(--tinta); }
.ficha-acordeon { border-top: 1px solid var(--borde); max-width: 72ch; }
.ficha-acordeon:last-child { border-bottom: 1px solid var(--borde); }
.ficha-acordeon summary { display: flex; justify-content: space-between; align-items: center; gap: var(--e3); padding: 1rem 0; font-family: var(--titulo); font-size: 1.0625rem; font-weight: 700; cursor: pointer; list-style: none; }
.ficha-acordeon summary::-webkit-details-marker { display: none; }
.ficha-acordeon summary::after { content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: .75rem; color: var(--tinta-terciaria); transition: transform var(--transicion); }
.ficha-acordeon[open] summary::after { transform: rotate(180deg); }
.ficha-acordeon summary:hover { color: var(--brasa-oscura); }
.ficha-acordeon__cuerpo { padding: 0 0 var(--e4); color: var(--tinta-suave); line-height: 1.65; }
.ficha-acordeon__cuerpo > :last-child { margin-bottom: 0; }
.ficha-tarjeta { margin: 0 0 var(--e4); padding: var(--e5); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); }
.ficha-tarjeta h2 { margin: 0 0 var(--e3); font-size: 1.2rem; }
.ficha-tabla { width: 100%; border: 0; font-size: .9375rem; }
.ficha-tabla th, .ficha-tabla td { padding: .55rem 0; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
.ficha-tabla th { width: 42%; padding-right: .75rem; font-weight: 600; color: var(--tinta-suave); }
.ficha-tabla td { font-weight: 650; overflow-wrap: anywhere; }
.ficha-tabla tr:last-child th, .ficha-tabla tr:last-child td { border-bottom: 0; }
.ficha__lista-envio { list-style: none; padding: 0; margin: 0 0 var(--e4); display: grid; gap: var(--e3); font-size: .9375rem; color: var(--tinta-suave); }
.ficha__lista-envio li { display: flex; gap: .75rem; margin: 0; }
.ficha__lista-envio i { color: var(--madera); margin-top: .3rem; width: 1.2rem; text-align: center; }
.ficha__enlaces { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e5); margin: 0; font-size: .9375rem; }

/* --- Ficha : variaciones como botones --------------------------------------------------------- */
.hz-pildoras { display: flex; flex-wrap: wrap; gap: var(--e2); }
.hz-pildora { position: relative; margin: 0; cursor: pointer; }
.hz-pildora input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.hz-pildora span { display: inline-flex; align-items: center; min-height: 44px; padding: .45rem 1rem; border: 1.5px solid var(--borde-fuerte); border-radius: var(--radio-m); background: var(--superficie); font-weight: 600; transition: background-color var(--transicion), border-color var(--transicion); }
.hz-pildora:hover span { border-color: var(--brasa); }
.hz-pildora input:checked + span { border-color: var(--brasa); background: var(--brasa-velo); color: var(--brasa-oscura); }
.hz-pildora input:focus-visible + span { outline: 3px solid var(--brasa); outline-offset: 2px; }
.variations_form .hz-select-oculto { display: none; }
.reset_variations[style*="hidden"] { display: none !important; }
.hz-ayuda-variacion { margin: 0 0 var(--e3); font-size: .875rem; color: var(--tinta-terciaria); }
.hz-ayuda-variacion[hidden] { display: none; }
.related.products > h2, .upsells.products > h2 { margin-bottom: var(--e4); }
.related.products { margin-top: var(--e5); }
/* Productos relacionados : 5 en pantallas anchas (sin hueco a la derecha) ; en las demás, filas completas (nunca una tarjeta suelta). */
.related.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.related.products ul.products > li:nth-child(n+5) { display: none; }
@media (min-width: 820px) { .related.products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .related.products ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); } .related.products ul.products > li:nth-child(5) { display: block; } }

.barra-compra { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-sticky); display: none; align-items: center; gap: var(--e3); padding: .75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom)); background: var(--superficie); border-top: 1px solid var(--borde-fuerte); box-shadow: 0 -4px 16px rgba(28, 23, 20, .1); transform: translateY(110%); transition: transform 220ms ease; }
.barra-compra.is-visible { transform: none; }
.barra-compra__info { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.25; }
.barra-compra__nombre { font-size: .8125rem; color: var(--tinta-suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-compra__precio { font-family: var(--display); font-weight: 700; font-size: 1.35rem; }
.barra-compra__precio .woocommerce-price-suffix { display: none; }
@media (max-width: 899px) { .barra-compra { display: flex; } .single-product .pie { margin-bottom: 4.5rem; } }

/* --- Carrito -------------------------------------------------------------------- */
.envio-gratis { margin-bottom: var(--e4); padding: var(--e3) var(--e4); background: var(--bosque-velo); border: 1px solid #BFDCC5; border-radius: var(--radio-m); }
.envio-gratis p { margin: 0 0 .5rem; font-size: .9375rem; color: var(--tinta); }
.envio-gratis i { color: var(--bosque); margin-right: .35rem; }
.envio-gratis__barra { height: 8px; border-radius: 999px; background: rgba(47, 107, 58, .18); overflow: hidden; }
.envio-gratis__barra span { display: block; height: 100%; background: var(--bosque); border-radius: 999px; transition: width 400ms ease; }
.envio-gratis--ok { background: var(--exito-velo); }

.woocommerce-cart .woocommerce { display: grid; gap: var(--e5); }
@media (min-width: 1000px) { .woocommerce-cart .woocommerce-cart-form { grid-column: 1; } .woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; } .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce > .pasos-compra { grid-column: 1 / -1; } .woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 3; position: sticky; top: calc(var(--alto-cabecera) + 1.5rem); } }
.shop_table { border: 1px solid var(--borde); border-radius: var(--radio-l); background: var(--superficie); overflow: hidden; border-collapse: separate; border-spacing: 0; }
/* Carrito vacío : el aviso y el botón ocupan todo el ancho (no la columna del resumen). */
.woocommerce-cart .woocommerce > .wc-empty-cart-message, .woocommerce-cart .woocommerce > .cart-empty, .woocommerce-cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce > .return-to-shop { margin: 0; text-align: center; }
.woocommerce-cart-form__contents th { padding: .8rem 1rem; text-align: left; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-terciaria); background: var(--superficie-suave); border-bottom: 1px solid var(--borde); }
.woocommerce-cart-form__contents td { padding: 1rem; border-bottom: 1px solid var(--borde); vertical-align: middle; }
.woocommerce-cart-form__contents tr:last-child td { border-bottom: 0; }
.woocommerce-cart-form__contents .product-remove { width: 48px; padding-right: 0; }
.woocommerce-cart-form__contents .product-remove a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--tinta-terciaria); text-decoration: none; }
.woocommerce-cart-form__contents .product-remove a:hover { background: var(--error-velo); color: var(--error); }
.woocommerce-cart-form__contents .product-thumbnail { width: 96px; }
.woocommerce-cart-form__contents .product-thumbnail img { width: 80px; height: 80px; object-fit: contain; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio-s); padding: 4px; }
.woocommerce-cart-form__contents .product-name a { font-weight: 600; color: var(--tinta); text-decoration: none; }
.woocommerce-cart-form__contents .product-name a:hover { color: var(--brasa-oscura); text-decoration: underline; }
.woocommerce-cart-form__contents .product-subtotal { font-weight: 700; white-space: nowrap; }
.woocommerce-cart-form__contents .cantidad { height: 44px; }
.woocommerce-cart-form__contents .cantidad .qty { width: 2.8rem; }
.woocommerce-cart-form__contents .cantidad__boton { width: 38px; }
td.actions { background: var(--superficie-suave); }
td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--e2); float: left; }
td.actions .coupon input { width: 190px; min-height: 44px; }
td.actions .coupon .button, td.actions > .button { min-height: 44px; }
td.actions > .button { float: right; background: transparent; color: var(--tinta); border-color: var(--borde-fuerte); }
td.actions > .button:disabled { display: none; }
td.actions::after { content: ""; display: block; clear: both; }
@media (max-width: 760px) {
	.woocommerce-cart-form__contents thead { display: none; }
	.woocommerce-cart-form__contents, .woocommerce-cart-form__contents tbody { display: block; }
	.woocommerce-cart-form__contents tr.cart_item { display: grid; grid-template-columns: 80px 1fr auto; gap: .25rem var(--e3); padding: var(--e3); border-bottom: 1px solid var(--borde); position: relative; }
	.woocommerce-cart-form__contents tr.cart_item td { display: block; padding: 0; border: 0; }
	.woocommerce-cart-form__contents .product-remove { position: absolute; top: .4rem; right: .4rem; width: auto; z-index: 2; }
	.woocommerce-cart-form__contents .product-thumbnail { grid-row: 1 / span 3; width: auto; }
	.woocommerce-cart-form__contents .product-name { grid-column: 2 / 4; padding-right: 2.5rem !important; }
	.woocommerce-cart-form__contents .product-price { display: none !important; }
	.woocommerce-cart-form__contents .product-quantity { grid-column: 2; align-self: center; }
	.woocommerce-cart-form__contents .product-subtotal { grid-column: 3; align-self: center; text-align: right; }
	.woocommerce-cart-form__contents .product-subtotal::before, .woocommerce-cart-form__contents .product-price::before, .woocommerce-cart-form__contents .product-quantity::before { content: none; }
	.woocommerce-cart-form__contents tr:not(.cart_item) { display: block; }
	.woocommerce-cart-form__contents td.actions { display: block; padding: var(--e3); }
	td.actions .coupon { float: none; width: 100%; } td.actions .coupon input { flex: 1; width: auto; } td.actions > .button { float: none; width: 100%; margin-top: var(--e2); }
}
.cart_totals { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); padding: var(--e5); }
.cart_totals > h2 { font-size: 1.3rem; margin-bottom: var(--e3); }
.cart_totals .shop_table { border: 0; border-radius: 0; background: transparent; }
.cart_totals th, .cart_totals td { padding: .7rem 0; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; font-size: .9375rem; }
.cart_totals td { text-align: right; }
.cart_totals tr:last-child th, .cart_totals tr:last-child td { border-bottom: 0; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 1.2rem; font-weight: 700; padding-top: 1rem; }
.cart_totals .includes_tax, .includes_tax { display: block; font-size: .8125rem; font-weight: 500; color: var(--tinta-terciaria); }
.cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; text-align: left; }
.woocommerce-shipping-methods li { display: flex; gap: .55rem; align-items: flex-start; margin: 0 0 .5rem; }
.woocommerce-shipping-methods label { margin: 0; font-weight: 500; }
.woocommerce-shipping-destination { font-size: .8125rem; color: var(--tinta-terciaria); text-align: left; }
.shipping-calculator-button { font-weight: 600; font-size: .875rem; }
.shipping-calculator-form { text-align: left; margin-top: var(--e2); }
.shipping-calculator-form .form-row { margin-bottom: var(--e2); }
.wc-proceed-to-checkout { margin-top: var(--e4); }
.wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; min-height: 58px; font-size: 1.0625rem; }
.cart-collaterals .cart-garantias { list-style: none; margin: var(--e4) 0 0; padding: 0; display: grid; gap: .5rem; font-size: .875rem; color: var(--tinta-suave); }
.cart-collaterals .cart-garantias i { color: var(--bosque); margin-right: .45rem; width: 1rem; text-align: center; }
.cart-empty { text-align: center; padding-block: var(--e7) var(--e5); font-size: 1.15rem; }
.return-to-shop { text-align: center; padding-bottom: var(--e8); }

/* Minicarrito */
.minicarrito__envio { padding: var(--e3) var(--e5) 0; }
.minicarrito__envio .envio-gratis { margin: 0; }
.minicarrito { list-style: none; margin: 0; padding: var(--e3) var(--e5); overflow-y: auto; flex: 1; }
.minicarrito .mini_cart_item { position: relative; display: grid; grid-template-columns: 64px 1fr 32px; gap: var(--e3); align-items: start; padding: var(--e3) 0; border-bottom: 1px solid var(--borde); margin: 0; }
.minicarrito__foto img { width: 64px; height: 64px; object-fit: contain; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio-s); padding: 3px; }
.minicarrito__datos { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.minicarrito__nombre { font-weight: 600; font-size: .9375rem; line-height: 1.35; color: var(--tinta); text-decoration: none; }
a.minicarrito__nombre:hover { color: var(--brasa-oscura); text-decoration: underline; }
.minicarrito .quantity { font-size: .875rem; color: var(--tinta-suave); }
.minicarrito .remove { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--tinta-terciaria); text-decoration: none; font-size: 1.25rem; line-height: 1; }
.minicarrito .remove:hover { background: var(--error-velo); color: var(--error); }
.minicarrito__pie { padding: var(--e4) var(--e5) calc(var(--e5) + env(safe-area-inset-bottom)); border-top: 1px solid var(--borde); background: var(--superficie); }
.woocommerce-mini-cart__total { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 .25rem; font-size: 1.1rem; }
.woocommerce-mini-cart__total .woocommerce-Price-amount { font-size: 1.35rem; font-weight: 700; }
.minicarrito__nota { margin: 0 0 var(--e3); font-size: .8125rem; color: var(--tinta-terciaria); }
.woocommerce-mini-cart__buttons { display: grid; gap: var(--e2); margin: 0; }
.woocommerce-mini-cart__buttons .button { min-height: 52px; }
.woocommerce-mini-cart__buttons .button:not(.checkout) { background: transparent; color: var(--tinta); border-color: var(--borde-fuerte); }
.woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--superficie-suave); }
.woocommerce-mini-cart__buttons .checkout { order: -1; }
.minicarrito__vacio { text-align: center; padding: var(--e8) var(--e5); }
.minicarrito__vacio > i { font-size: 2.5rem; color: var(--madera-clara); margin-bottom: var(--e3); }

/* --- Pasos de compra --------------------------------------------------------------- */
.pasos-compra { display: flex; align-items: center; justify-content: center; gap: var(--e2); list-style: none; margin: 0 0 var(--e5); padding: 0; flex-wrap: wrap; }
.pasos-compra li { display: inline-flex; align-items: center; gap: .55rem; margin: 0; font-size: .875rem; font-weight: 600; color: var(--tinta-terciaria); }
.pasos-compra li + li::before { content: ""; width: 28px; height: 2px; background: var(--borde-fuerte); margin-right: .25rem; }
.pasos-compra__n { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--superficie-suave); border: 1.5px solid var(--borde-fuerte); font-size: .8125rem; }
.pasos-compra li.is-hecho { color: var(--bosque); } .pasos-compra li.is-hecho .pasos-compra__n { background: var(--bosque); border-color: var(--bosque); color: #fff; }
.pasos-compra li.is-actual { color: var(--tinta); } .pasos-compra li.is-actual .pasos-compra__n { background: var(--brasa); border-color: var(--brasa); color: #fff; }
@media (max-width: 640px) { .pasos-compra li:not(.is-actual) .pasos-compra__texto { display: none; } .pasos-compra li + li::before { width: 14px; } }

/* --- Checkout -------------------------------------------------------------------------- */
.woocommerce-checkout .pagina--tienda { padding-top: var(--e5); }
.checkout__rejilla { display: grid; gap: var(--e5); }
@media (min-width: 1000px) { .checkout__rejilla { grid-template-columns: minmax(0, 1fr) 420px; gap: var(--e6); align-items: start; } .checkout__resumen { position: sticky; top: var(--e4); } }
.checkout__bloque { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); padding: var(--e5); margin-bottom: var(--e4); }
.checkout__bloque > h2, .checkout__resumen > h2 { font-size: 1.3rem; display: flex; align-items: center; gap: .65rem; margin-bottom: var(--e4); }
.checkout__num { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--brasa-velo); color: var(--brasa-oscura); font-family: var(--texto); font-size: .9375rem; font-weight: 700; flex-shrink: 0; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--e3); }
.woocommerce-additional-fields__field-wrapper { display: block; }
.form-row { margin: 0 0 var(--e4); position: relative; }
.form-row-wide, .form-row.notes, .form-row.hz-campo-empresa:not(.form-row-first):not(.form-row-last) { grid-column: 1 / -1; }
.form-row-first { grid-column: 1; } .form-row-last { grid-column: 2; }
.form-row[hidden] { display: none !important; }
@media (max-width: 640px) { .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; } .form-row-first, .form-row-last { grid-column: 1 / -1; } }
.form-row.validate-required > label::after { content: none; }
.form-row .required { color: var(--error); text-decoration: none; }
.form-row .optional { font-weight: 400; color: var(--tinta-terciaria); font-size: .8125rem; }
.form-row .description { display: block; margin-top: .35rem; font-size: .8125rem; color: var(--tinta-terciaria); }
.woocommerce-input-wrapper .description { display: block; }
.woocommerce-input-wrapper { display: block; }
.woocommerce-input-wrapper > strong { display: block; padding: .7rem .9rem; background: var(--superficie-suave); border-radius: var(--radio-m); }
.form-row.woocommerce-validated input.input-text, .form-row.woocommerce-validated select { border-color: var(--borde-campo); }
.form-row.woocommerce-invalid input.input-text, .form-row.woocommerce-invalid select { border-color: var(--error); }
#billing_es_empresa_field label, #createaccount + span, .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: .65rem; font-weight: 500; cursor: pointer; }
.woocommerce-form__label-for-checkbox input { margin-top: .2rem; }
#ship-to-different-address { font-family: var(--texto); font-size: 1rem; margin: var(--e3) 0 var(--e4); }
.woocommerce-account-fields { margin-top: var(--e3); }
.create-account { margin-bottom: var(--e3); }
#order_comments { min-height: 96px; }
.checkout__aviso-cuenta { margin: 0 0 var(--e4); font-size: .9375rem; color: var(--tinta-suave); }

/* --- Preferencia de entrega (día y franja, opcional) ------------------------------------- */
.pref-entrega { display: grid; gap: var(--e5); margin: 0 0 var(--e5); padding: var(--e4) var(--e5); background: var(--superficie-suave); border: 1px solid var(--borde); border-radius: var(--radio-l); }
.pref-entrega__grupo { margin: 0; padding: 0; border: 0; min-width: 0; }
.pref-entrega__titulo { padding: 0; margin: 0 0 var(--e3); font-weight: 700; color: var(--tinta); }
.pref-entrega__titulo span { font-weight: 400; color: var(--tinta-terciaria); }
.pref-dias { display: flex; flex-wrap: wrap; gap: var(--e2); }
.pref-pildora, .pref-franja { position: relative; margin: 0; cursor: pointer; }
.pref-pildora input, .pref-franja input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.pref-pildora { display: inline-flex; }
.pref-pildora span {
	display: inline-flex; align-items: center; min-height: 44px; padding: .4rem 1.15rem; border: 1.5px solid var(--borde-fuerte); border-radius: 999px;
	background: var(--superficie); font-size: .875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	transition: background-color var(--transicion), border-color var(--transicion), color var(--transicion);
}
.pref-pildora:hover span { border-color: var(--brasa); }
.pref-pildora input:checked + span { background: var(--brasa-velo); border-color: var(--brasa); color: var(--brasa-oscura); }
.pref-pildora input:focus-visible + span { outline: 3px solid var(--brasa); outline-offset: 2px; }
.pref-franjas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e3); }
.pref-franja {
	display: flex; align-items: center; gap: .8rem; min-height: 64px; padding: .75rem 1rem; border: 1.5px solid var(--borde); border-radius: var(--radio-m);
	background: var(--superficie); font-weight: 400; transition: background-color var(--transicion), border-color var(--transicion);
}
.pref-franja:hover { border-color: var(--borde-campo); }
.pref-franja:has(input:checked) { border-color: var(--brasa); background: var(--brasa-velo); }
.pref-franja__marca { flex-shrink: 0; width: 22px; height: 22px; border: 2px solid var(--borde-campo); border-radius: 50%; background: #fff; transition: border-color var(--transicion), background var(--transicion); }
.pref-franja input:checked ~ .pref-franja__marca { border-color: var(--brasa); background: radial-gradient(circle, var(--brasa) 0 42%, #fff 46%); }
.pref-franja input:focus-visible ~ .pref-franja__marca { outline: 3px solid var(--brasa); outline-offset: 2px; }
.pref-franja__texto strong { display: block; font-weight: 700; line-height: 1.25; }
.pref-franja__texto small { display: block; margin-top: .1rem; color: var(--tinta-terciaria); font-size: .8125rem; }
.pref-entrega__quitar { margin-top: var(--e2); min-height: 36px; padding: .3rem 0; border: 0; background: none; color: var(--brasa-oscura); font-size: .875rem; font-weight: 600; text-decoration: underline; text-underline-offset: .18em; }
.pref-entrega__quitar i { font-size: .8em; margin-right: .2rem; }
.pref-entrega__ayuda { display: flex; gap: .5rem; margin: 0; font-size: .875rem; line-height: 1.45; color: var(--tinta-suave); }
.pref-entrega__ayuda i { margin-top: .2rem; color: var(--tinta-terciaria); }
@media (max-width: 640px) { .pref-entrega { padding: var(--e4); } .pref-franjas { grid-template-columns: 1fr; } }
/* Resumen en la confirmación y en « Mi cuenta » */
.pref-entrega-resumen { margin: var(--e5) 0; padding: var(--e4) var(--e5); background: var(--superficie-suave); border: 1px solid var(--borde); border-radius: var(--radio-l); }
.pref-entrega-resumen h2 { margin: 0 0 .35rem; font-size: 1.1rem; }
.pref-entrega-resumen p { margin: 0; }
.pref-entrega-resumen span { color: var(--tinta-suave); font-size: .9rem; }

/* --- Entrega impuesta : aviso sobre las modalidades -------------------------------------------- */
.envio-aviso { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 var(--e3); padding: var(--e3) var(--e4); border: 1px solid var(--borde); border-left: 4px solid var(--aviso); border-radius: var(--radio-m); background: var(--aviso-velo); font-size: .9375rem; line-height: 1.5; color: var(--tinta); }
.envio-aviso i { margin-top: .2rem; color: var(--aviso); }

/* --- Modalidades de envío : tarjetas con pictograma ------------------------------------------ */
.envio-metodos { margin: 0 0 var(--e5); padding: 0; border: 0; min-width: 0; }
.envio-metodos[hidden] { display: none; }
.envio-metodos__titulo { padding: 0; margin: 0 0 var(--e3); font-size: 1.0625rem; font-weight: 700; color: var(--tinta); }
.envio-metodos__vacio { margin: 0; color: var(--tinta-suave); }
.envio-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); }
.envio-opcion { position: relative; margin: 0; }
.envio-opcion > input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.envio-opcion__tarjeta {
	display: grid; grid-template-columns: 22px 64px minmax(0, 1fr) auto; align-items: center; gap: .85rem; margin: 0; padding: .8rem 1rem;
	border: 1.5px solid var(--borde); border-radius: var(--radio-m); background: var(--superficie); font-weight: 400; cursor: pointer;
	transition: background-color var(--transicion), border-color var(--transicion);
}
.envio-opcion__tarjeta:hover { border-color: var(--borde-campo); }
.envio-opcion.is-elegida .envio-opcion__tarjeta, .envio-opcion:has(> input:checked) .envio-opcion__tarjeta { border-color: var(--brasa); background: var(--brasa-velo); }
.envio-opcion > input:focus-visible + .envio-opcion__tarjeta { outline: 3px solid var(--brasa); outline-offset: 2px; }
.envio-opcion__marca { width: 22px; height: 22px; border: 2px solid var(--borde-campo); border-radius: 50%; background: #fff; transition: border-color var(--transicion), background var(--transicion); }
.envio-opcion.is-elegida .envio-opcion__marca, .envio-opcion > input:checked + .envio-opcion__tarjeta .envio-opcion__marca { border-color: var(--brasa); background: radial-gradient(circle, var(--brasa) 0 42%, #fff 46%); }
.envio-opcion__icono { display: grid; place-items: center; width: 64px; height: 52px; border-radius: 12px; background: var(--superficie-suave); }
.envio-opcion.is-elegida .envio-opcion__icono, .envio-opcion > input:checked + .envio-opcion__tarjeta .envio-opcion__icono { background: #fff; }
.envio-icono__svg { width: 46px; height: auto; fill: none; stroke: var(--corteza); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.envio-icono__svg .e-caja, .envio-icono__svg .e-rueda { fill: #fff; }
.envio-icono__svg .e-cabina { fill: var(--bosque); }
.envio-icono__svg .e-cristal { fill: #fff; stroke-width: 1.6; }
.envio-icono__svg .e-carga { fill: var(--brasa); }
.envio-opcion__texto strong { display: block; font-weight: 700; line-height: 1.25; }
.envio-opcion__texto small { display: block; margin-top: .15rem; color: var(--tinta-terciaria); font-size: .8125rem; line-height: 1.4; }
.envio-opcion__precio { font-family: var(--display); font-size: 1.3rem; font-weight: 700; white-space: nowrap; color: var(--tinta); }
.envio-opcion__precio--gratis { color: var(--bosque); }
@media (max-width: 640px) {
	.envio-opcion__tarjeta { grid-template-columns: 22px 52px minmax(0, 1fr); gap: .65rem; padding: .7rem .8rem; }
	.envio-opcion__icono { width: 52px; height: 44px; }
	.envio-icono__svg { width: 38px; }
	.envio-opcion__precio { grid-column: 3; justify-self: start; }
}
/* Carrito (columna de totales) : versión compacta */
.envio-lista--compacta { gap: var(--e2); text-align: left; }
.envio-lista--compacta .envio-opcion__tarjeta { grid-template-columns: 20px 44px minmax(0, 1fr); align-items: start; gap: .6rem; padding: .65rem .75rem; }
.envio-lista--compacta .envio-opcion__marca { width: 20px; height: 20px; margin-top: .15rem; }
.envio-lista--compacta .envio-opcion__icono { width: 44px; height: 38px; border-radius: 10px; }
.envio-lista--compacta .envio-icono__svg { width: 34px; }
.envio-lista--compacta .envio-opcion__texto strong { font-size: .9375rem; }
.envio-lista--compacta .envio-opcion__texto small { font-size: .78rem; }
.envio-lista--compacta .envio-opcion__precio { grid-column: 3; justify-self: start; font-size: 1.15rem; }
.cart_totals tr.shipping > td { text-align: left; }
.envio-titulo { display: block; margin-bottom: .5rem; font-weight: 700; }
/* Resumen del pedido (checkout) : solo la tarifa elegida */
.envio-resumen__nombre { display: block; font-weight: 500; line-height: 1.35; }

.checkout__resumen { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); padding: var(--e5); }
.woocommerce-checkout-review-order-table { border: 0; border-radius: 0; background: transparent; width: 100%; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: .65rem 0; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; font-size: .9375rem; }
.woocommerce-checkout-review-order-table td { text-align: right; }
.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: 1.25rem; font-weight: 700; border-bottom: 0; padding-top: 1rem; }
.resumen__articulo { display: grid; grid-template-columns: 56px 1fr; gap: var(--e3); align-items: center; text-align: left; }
.resumen__foto { position: relative; }
.resumen__foto img { width: 56px; height: 56px; object-fit: contain; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio-s); padding: 3px; }
.resumen__cantidad { position: absolute; top: -8px; right: -8px; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 999px; background: var(--corteza); color: #fff; font-size: .75rem; font-weight: 700; display: grid; place-items: center; }
.resumen__nombre { font-weight: 600; line-height: 1.35; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; text-align: left; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods label { font-weight: 600; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods .woocommerce-Price-amount { font-weight: 700; }
tr.shipping th { vertical-align: top; }
.woocommerce-checkout-review-order-table .includes_tax { margin-top: .15rem; }

/* --- Método de pago (sección 3 de la columna principal) ------------------------------------- */
#payment { margin: 0; }
.wc_payment_methods { list-style: none; margin: 0 0 var(--e3); padding: 0; display: grid; gap: var(--e2); }
.wc_payment_method { position: relative; margin: 0; }
.wc_payment_method > input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.pago-opcion__tarjeta {
	display: grid; grid-template-columns: 22px 44px minmax(0, 1fr); align-items: center; gap: .85rem; margin: 0; padding: .75rem 1rem;
	border: 1.5px solid var(--borde); border-radius: var(--radio-m); background: var(--superficie); font-weight: 400; cursor: pointer;
	transition: background-color var(--transicion), border-color var(--transicion);
}
.pago-opcion__tarjeta:hover { border-color: var(--borde-campo); }
.wc_payment_method > input:checked + .pago-opcion__tarjeta { border-color: var(--brasa); background: var(--brasa-velo); }
.wc_payment_method > input:focus-visible + .pago-opcion__tarjeta { outline: 3px solid var(--brasa); outline-offset: 2px; }
.pago-opcion__marca { width: 22px; height: 22px; border: 2px solid var(--borde-campo); border-radius: 50%; background: #fff; transition: border-color var(--transicion), background var(--transicion); }
.wc_payment_method > input:checked + .pago-opcion__tarjeta .pago-opcion__marca { border-color: var(--brasa); background: radial-gradient(circle, var(--brasa) 0 42%, #fff 46%); }
.pago-opcion__icono { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--superficie-suave); color: var(--brasa); font-size: 1.35rem; }
.wc_payment_method > input:checked + .pago-opcion__tarjeta .pago-opcion__icono { background: #fff; }
.pago-opcion__texto strong { font-size: 1.0625rem; font-weight: 700; }
.payment_box { margin: 0; padding: 0; background: none; font-size: .9375rem; color: var(--tinta-suave); }
.payment_box::before { display: none; }
.payment_box p { margin: 0; }
.pago__info { display: flex; gap: .6rem; align-items: flex-start; margin: var(--e3) 0 var(--e4) !important; line-height: 1.5; }
.pago__info i { margin-top: .2rem; color: var(--brasa); }
.pago__aviso { display: flex; gap: .65rem; align-items: flex-start; margin: 0 0 var(--e4); padding: .8rem 1rem; border-radius: var(--radio-m); background: var(--superficie-suave); font-size: .9375rem; line-height: 1.5; color: var(--tinta-suave); }
.pago__aviso i { margin-top: .2rem; color: var(--bosque); }
.pago__total { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .6rem; margin: 0 0 var(--e3); }
.pago__total span { font-weight: 600; }
.pago__total strong { font-family: var(--display); font-size: 1.75rem; font-weight: 700; line-height: 1; }
.pago__total small { color: var(--tinta-terciaria); font-size: .8125rem; }
#place_order::before { content: "\f058"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: .6rem; } /* icono « check » : WooCommerce reescribe el texto del botón por JavaScript, por eso va en CSS */#place_order { display: flex; width: 100%; min-height: 62px; font-size: 1.1rem; }
.checkout__garantias { list-style: none; margin: var(--e4) 0 0; padding: 0; display: grid; gap: .5rem; font-size: .875rem; color: var(--tinta-suave); }
.checkout__garantias i { color: var(--bosque); margin-right: .5rem; width: 1rem; text-align: center; }
form.checkout[aria-busy="true"] .checkout__resumen { opacity: .7; pointer-events: none; }
.woocommerce-checkout .blockUI.blockOverlay { background: rgba(255, 255, 255, .6) !important; }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: var(--e3); }
form.checkout_coupon, form.woocommerce-form-login { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-m); padding: var(--e4); margin-bottom: var(--e4); }
form.checkout_coupon .form-row { display: inline-block; margin: 0 .5rem 0 0; vertical-align: bottom; }

/* select2 (provincia) con el aspecto de los demás campos */
.select2-container--default .select2-selection--single { height: 48px; border: 1.5px solid var(--borde-campo); border-radius: var(--radio-m); background: var(--superficie); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 45px; padding-left: .9rem; color: var(--tinta); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: .5rem; }
.select2-container--default.select2-container--focus .select2-selection--single, .select2-container--open .select2-selection--single { border-color: var(--brasa); box-shadow: 0 0 0 3px rgba(194, 65, 12, .22); }
.select2-dropdown { border: 1.5px solid var(--borde-campo); border-radius: var(--radio-m); box-shadow: var(--sombra-3); overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--brasa); }
.select2-search--dropdown .select2-search__field { min-height: 40px; border-radius: var(--radio-s); }
.select2-container { z-index: 100; }

/* --- Pedido recibido (gracias) -------------------------------------------------------------- */
.gracias { text-align: center; max-width: 46rem; margin: 0 auto var(--e6); }
.gracias__icono { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto var(--e4); border-radius: 50%; background: var(--exito-velo); color: var(--exito); font-size: 2rem; }
.gracias h1 { margin-bottom: var(--e2); }
.gracias p { color: var(--tinta-suave); font-size: 1.0625rem; }
.transferencia { background: var(--superficie); border: 2px solid var(--brasa); border-radius: var(--radio-l); overflow: hidden; margin: 0 auto var(--e6); max-width: 46rem; }
.transferencia__cabecera { display: flex; align-items: center; gap: var(--e3); padding: var(--e4) var(--e5); background: var(--brasa-velo); border-bottom: 1px solid var(--brasa-borde); }
.transferencia__cabecera > i { font-size: 1.5rem; color: var(--brasa); }
.transferencia__cabecera h2 { margin: 0; font-size: 1.3rem; }
.transferencia__cabecera p { margin: 0; font-size: .9375rem; color: var(--tinta-suave); }
.transferencia__lista { margin: 0; padding: var(--e2) var(--e5); }
.transferencia__fila { display: grid; grid-template-columns: 9rem 1fr auto; gap: var(--e3); align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--borde); margin: 0; }
.transferencia__fila:last-child { border-bottom: 0; }
.transferencia__fila dt { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-terciaria); }
.transferencia__fila dd { margin: 0; font-weight: 650; font-size: 1.0625rem; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.transferencia__fila--importe dd { font-size: 1.5rem; color: var(--brasa-oscura); }
.copiar { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .3rem .8rem; border: 1px solid var(--borde-fuerte); border-radius: var(--radio-m); background: var(--superficie); font-size: .875rem; font-weight: 600; color: var(--tinta); }
.copiar:hover { background: var(--superficie-suave); }
.copiar.is-copiado { background: var(--exito-velo); border-color: var(--exito); color: var(--exito); }
.transferencia__pie { padding: var(--e4) var(--e5); background: var(--fondo); border-top: 1px solid var(--borde); font-size: .9375rem; color: var(--tinta-suave); }
.transferencia__pie p { margin: 0 0 .5rem; }
.transferencia__pie p:last-child { margin: 0; }
.transferencia__pie .boton { margin-top: var(--e2); }
@media (max-width: 600px) { .transferencia__fila { grid-template-columns: 1fr auto; } .transferencia__fila dt { grid-column: 1 / -1; } .transferencia__fila dd { grid-column: 1; } }
.siguientes { max-width: 46rem; margin: 0 auto var(--e6); }
.siguientes h2 { font-size: 1.3rem; }
.woocommerce-order-overview { list-style: none; margin: 0 auto var(--e5); padding: var(--e4); max-width: 46rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--e3); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); }
.woocommerce-order-overview li { margin: 0; font-size: .8125rem; color: var(--tinta-terciaria); text-transform: uppercase; letter-spacing: .06em; }
.woocommerce-order-overview li strong { display: block; margin-top: .2rem; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--tinta); }
.woocommerce-order-details, .woocommerce-customer-details { max-width: 46rem; margin: 0 auto var(--e5); }
.woocommerce-order-details__title, .woocommerce-column__title { font-size: 1.25rem; }
.woocommerce-table--order-details th, .woocommerce-table--order-details td { padding: .75rem 1rem; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
.woocommerce-table--order-details tfoot th { text-align: left; } .woocommerce-table--order-details tfoot td { text-align: right; }
.woocommerce-table--order-details .product-total { text-align: right; }
.woocommerce-customer-details address { padding: var(--e4); border: 1px solid var(--borde); border-radius: var(--radio-m); background: var(--superficie); line-height: 1.7; }
.woocommerce-columns--addresses { display: grid; gap: var(--e4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

/* --- Mi cuenta ---------------------------------------------------------------------------------- */
.woocommerce-account .woocommerce { display: grid; gap: var(--e5); }
@media (min-width: 900px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 260px minmax(0, 1fr); align-items: start; } }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: var(--e2); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 46px; padding: .4rem .85rem; border-radius: var(--radio-s); color: var(--tinta-suave); text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation a:hover { background: var(--superficie-suave); color: var(--tinta); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--brasa-velo); color: var(--brasa-oscura); }
.woocommerce-MyAccount-content { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); padding: var(--e5); }
.woocommerce-MyAccount-content > :first-child { margin-top: 0; }
.woocommerce-orders-table th, .woocommerce-orders-table td { padding: .75rem .9rem; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: middle; font-size: .9375rem; }
.woocommerce-orders-table th { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-terciaria); background: var(--superficie-suave); }
.woocommerce-orders-table .button { min-height: 38px; padding: .3rem .9rem; font-size: .875rem; margin: .1rem .25rem .1rem 0; }
.woocommerce-orders-table .button.hz-factura { background: var(--bosque); border-color: var(--bosque); }
@media (max-width: 720px) { .woocommerce-orders-table thead { display: none; } .woocommerce-orders-table tr { display: block; border-bottom: 1px solid var(--borde); padding: .5rem 0; } .woocommerce-orders-table td { display: flex; justify-content: space-between; gap: var(--e3); border: 0; padding: .35rem .5rem; } .woocommerce-orders-table td::before { content: attr(data-title); font-weight: 700; color: var(--tinta-terciaria); } }
.u-columns, .woocommerce-form-login-wrapper { display: grid; gap: var(--e5); }
@media (min-width: 800px) { .u-columns { grid-template-columns: 1fr 1fr; } }
.u-column1, .u-column2 { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); padding: var(--e5); }
.woocommerce-form-login .form-row, .woocommerce-form-register .form-row { grid-column: auto; }
.u-column1 form.woocommerce-form-login, .u-column2 form.woocommerce-form-register { border: 0; padding: 0; margin: 0; background: transparent; }
.password-input { position: relative; display: block; }
.password-input input { padding-right: 3rem; }
.show-password-input { position: absolute; right: .35rem; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: transparent; border-radius: var(--radio-s); font-size: 0; color: var(--tinta-suave); }
.show-password-input::before { content: "\f06e"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 1rem; }
.show-password-input.display-password::before { content: "\f070"; }
.show-password-input:hover { background: var(--superficie-suave); }
.woocommerce-form-login__rememberme { display: flex; gap: .55rem; align-items: center; font-weight: 500; }
.lost_password { margin-top: var(--e3); }
.woocommerce-Address { margin-bottom: var(--e4); }

/* --- SEO : guía de compra bajo el listado de una categoría ---------------------------------------- */
.tienda__texto-seo { margin: var(--e7, 3rem) 0 var(--e5); padding: var(--e5); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio-l); max-width: 80ch; }
.tienda__texto-seo h2 { margin: 0 0 var(--e3); font-size: 1.35rem; }
.tienda__texto-seo h3 { margin: var(--e4) 0 var(--e2); font-size: 1.1rem; }
.tienda__texto-seo p, .tienda__texto-seo li { color: var(--tinta-suave); line-height: 1.7; }
.tienda__texto-seo ul { padding-left: 1.2rem; }
.tienda__texto-seo a { font-weight: 600; text-decoration: underline; }