/*
 Theme Name:   Minelli Child
 Theme URI:    https://minellirepuestos.com.ar
 Description:  Child theme de Storefront para Minelli Repuestos
 Author:       Minelli Repuestos
 Template:     storefront
 Version:      1.10.1
*/

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700;800&family=Barlow+Condensed:wght@500;600;700&display=swap');

/* =============================================
   VARIABLES
   ============================================= */
:root {
    --red:        #D40010;
    --red-dark:   #A8000C;
    --black:      #1A1A1A;
    --gray-dark:  #333333;
    --gray-mid:   #666666;
    --gray-light: #F4F4F4;
    --border:     #E0E0E0;
    --white:      #FFFFFF;
    --green:      #2E7D32;
    --font:       'Barlow', 'Helvetica Neue', Arial, sans-serif;
    --font-nav:   'Barlow Condensed', 'Barlow', sans-serif;
}

/* =============================================
   GLOBAL
   ============================================= */
body {
    font-family: var(--font);
    color: var(--black);
    background: var(--white);
}

a {
    color: var(--red);
}

a:hover {
    color: var(--red-dark);
}

/* =============================================
   HEADER — mnl- classes (header.php propio)
   ============================================= */

.mnl-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    box-shadow: 0 2px 16px rgba(0,0,0,0.18);
    margin: 0;
    padding: 0;
}

/* Compensar el espacio del header fijo */
.site-content {
    padding-top: 148px;
}

/* Anular el padding grande que Storefront agrega sobre el content.
   Se mantiene la compensación del header en .site-content. Páginas específicas
   (single-product, cart, etc.) pueden agregar su propio padding-top encima. */
.site-content > .col-full {
    padding-top: 24px !important;
    padding-bottom: 32px !important;
}

.site-main,
.content-area {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

.logged-in .mnl-header {
    top: 32px;
}

@media (max-width: 782px) {
    .logged-in .mnl-header {
        top: 46px;
    }
    .site-content {
        padding-top: 100px;
    }
    .site-content > .col-full {
        padding-top: 16px !important;
    }
}

/* ── Banda blanca: Logo + Search + Cart ── */
.mnl-topbar {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    margin: 0;
    padding: 0;
}

.mnl-topbar-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    padding: 0 32px;
    gap: 16px;
    width: 100%;
    box-sizing: border-box;
}

/* Logo */
.mnl-logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    text-decoration: none;
}

.mnl-logo img {
    height: 100px;
    width: auto;
    display: block;
}

.mnl-logo-text {
    font-family: var(--font);
    font-size: 24px;
    font-weight: 800;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Acciones: search + cart, a la derecha */
.mnl-topbar-right {
    margin-left: auto;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    height: 42px;
}

/* Fuerza todos los hijos a la misma altura */
.mnl-topbar-right > *,
.mnl-topbar-right .mnl-search-form {
    height: 42px !important;
    box-sizing: border-box;
}

/* Search */
.mnl-search-form {
    display: flex;
    align-items: stretch;
    height: 42px;
    margin: 0;
}

.mnl-search-input {
    width: 300px;
    height: 42px;
    border: 2px solid var(--border);
    border-right: none;
    border-radius: 4px 0 0 4px;
    padding: 0 16px;
    font-family: var(--font);
    font-size: 14px;
    background: var(--gray-light);
    color: var(--black);
    outline: none;
    transition: border-color 0.2s, background 0.2s;
    box-sizing: border-box;
}

.mnl-search-input::placeholder {
    color: var(--gray-mid);
    font-size: 13px;
}

.mnl-search-input:focus {
    border-color: var(--red);
    background: var(--white);
    outline: none;
    box-shadow: 0 0 0 3px rgba(212, 0, 16, 0.12);
}

.mnl-search-btn {
    height: 42px;
    width: 46px;
    background: var(--red);
    color: var(--white);
    border: none;
    border-radius: 0 4px 4px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
    flex-shrink: 0;
}

.mnl-search-btn:hover {
    background: var(--red-dark);
}

.mnl-search-btn svg {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    stroke: var(--white);
    fill: none;
    display: block;
}

/* Cart */
.mnl-cart-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 42px;
    padding: 0 18px;
    border: 2px solid var(--border);
    border-radius: 4px;
    color: var(--black);
    font-family: var(--font);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    background: var(--white);
    transition: border-color 0.2s, color 0.2s;
    box-sizing: border-box;
}

.mnl-cart-btn:hover {
    border-color: var(--red);
    color: var(--red);
}

.mnl-cart-btn svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    stroke: currentColor;
}

.mnl-cart-count {
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    min-width: 22px;
    height: 22px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    line-height: 1;
}

.mnl-cart-total {
    font-weight: 700;
    color: var(--black);
}

.mnl-cart-btn:hover .mnl-cart-total {
    color: var(--red);
}

/* ── Banda negra: Navegación ── */
.mnl-navbar {
    background: var(--black);
    border-bottom: 3px solid var(--red);
}

.mnl-navbar-inner {
    padding: 0 32px;
    max-width: 1400px;
    margin: 0 auto;
}

ul.mnl-nav-menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

ul.mnl-nav-menu > li {
    position: relative;
}

ul.mnl-nav-menu > li > a {
    display: block;
    color: rgba(255,255,255,0.85);
    font-family: var(--font-nav);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 14px 13px;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s;
    line-height: 1;
}

ul.mnl-nav-menu > li > a:hover {
    color: var(--red);
}

ul.mnl-nav-menu > li.current-menu-item > a {
    color: var(--white);
    box-shadow: inset 0 -3px 0 var(--red);
}

/* Hover: línea roja bajo el item */
ul.mnl-nav-menu > li::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 13px;
    right: 13px;
    height: 3px;
    background: var(--red);
    transform: scaleX(0);
    transition: transform 0.2s ease;
    transform-origin: left;
}

ul.mnl-nav-menu > li:hover::after {
    transform: scaleX(1);
}

/* =============================================
   BREADCRUMB
   ============================================= */
.woocommerce-breadcrumb {
    background: var(--gray-light);
    padding: 10px 0;
    font-size: 13px;
    color: var(--gray-mid);
    border-bottom: 1px solid var(--border);
}

.woocommerce-breadcrumb a {
    color: var(--gray-mid);
}

.woocommerce-breadcrumb a:hover {
    color: var(--red);
}

/* =============================================
   PÁGINA DE PRODUCTO (PDP)
   ============================================= */

/* Ocultar breadcrumb de Storefront en PDP (se renderiza vía storefront_before_content,
   antes de .site-content). Queda la info de categoría/marca en la tabla de specs. */
.single-product .storefront-breadcrumb {
    display: none;
}

/* Compensar el header fijo (ya no hay breadcrumb que empuje el contenido) */
.single-product .site-content {
    padding-top: 148px;
}

/* Storefront agrega padding-top por defecto en .site-main (~42px) */
.single-product .site-main {
    padding-top: 0 !important;
}

@media (max-width: 1024px) {
    .single-product .site-content {
        padding-top: 116px;
    }
}

@media (max-width: 782px) {
    .single-product .site-content {
        padding-top: 100px;
    }
}

/* PDP: layout 2 columnas con CSS Grid */
.single-product div.product {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 0 24px;
    align-items: stretch;
    padding-top: 32px !important;
    margin-top: 0 !important;
}

/* Columna izquierda: imagen — absoluta dentro del gallery para que el alto
   lo determine la columna derecha (summary) y la imagen se adapte con contain */
.single-product .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    align-self: stretch;
    min-height: 0;
}

.single-product .woocommerce-product-gallery__wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-product .woocommerce-product-gallery__image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-product .woocommerce-product-gallery__image a {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-product .woocommerce-product-gallery__image img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Columna derecha: summary */
.single-product div.summary {
    grid-column: 2;
    grid-row: 1;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Widgets VIN + Envío: lado a lado dentro del summary (columna 2) */
.mnl-pdp-widgets-row {
    display: flex;
    gap: 12px;
    margin-top: 12px;
}

.mnl-pdp-widgets-row .mnl-pdp-widget {
    flex: 1;
    min-width: 0;
}

/* Cualquier otra cosa (related products, etc.) va full width abajo */
.single-product div.product > .related,
.single-product div.product > .up-sells,
.single-product div.product > section {
    grid-column: 1 / -1;
}

/* Título */
.single-product .product_title {
    font-family: var(--font);
    font-size: 20px;
    font-weight: 800;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.2;
    margin: 0 0 2px !important;
    padding: 0 !important;
}

/* SKU — oculto */
.mnl-pdp-sku {
    display: none;
}

/* Precio */
.single-product .price {
    font-family: var(--font) !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    color: var(--red) !important;
    margin: 0 0 4px !important;
    line-height: 1.2 !important;
}

.single-product .price del {
    font-size: 16px;
    color: var(--gray-mid);
    font-weight: 500;
}

.single-product .price ins {
    text-decoration: none;
}

/* Disponibilidad / Stock */
.mnl-pdp-availability {
    margin-bottom: 8px;
}

.mnl-pdp-stock {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font);
    font-size: 12px;
    font-weight: 600;
}

.mnl-pdp-stock svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.mnl-pdp-stock.in-stock {
    color: var(--gray-dark);
}

.mnl-pdp-stock.in-stock svg {
    stroke: var(--red);
}

.mnl-pdp-stock.out-of-stock {
    color: var(--gray-mid);
}

.mnl-pdp-stock.out-of-stock svg {
    stroke: var(--gray-mid);
}

/* Ficha técnica */
.mnl-pdp-specs {
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-left: 3px solid var(--red);
    border-radius: 4px;
    padding: 6px 12px;
    margin-bottom: 8px;
}

.mnl-pdp-specs table {
    width: 100%;
    border-collapse: collapse;
}

.mnl-pdp-specs table tr {
    border-bottom: 1px solid var(--border);
}

.mnl-pdp-specs table tr:last-child {
    border-bottom: none;
}

.mnl-pdp-specs table th {
    text-align: left;
    padding: 5px 8px 5px 0;
    color: var(--gray-mid);
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    width: 35%;
    white-space: nowrap;
}

.mnl-pdp-specs table td {
    padding: 5px 0;
    color: var(--black);
    font-size: 13px;
}

.mnl-pdp-specs table td a {
    color: var(--black);
    text-decoration: none;
}

.mnl-pdp-specs table td a:hover {
    color: var(--red);
}

/* =============================================
   PDP — Descripción larga + tags (full width, debajo del grid)
   ============================================= */
.mnl-pdp-description {
    grid-column: 1 / -1;
    margin-top: 40px;
    padding: 28px 32px;
    background: var(--white);
    border: 1px solid var(--border);
    border-top: 3px solid var(--red);
    border-radius: 4px;
}

.mnl-pdp-description h2 {
    font-family: var(--font-nav);
    font-size: 18px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--black);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}

.mnl-pdp-description-content {
    font-size: 14px;
    line-height: 1.65;
    color: var(--gray-dark);
}

.mnl-pdp-description-content p {
    margin: 0 0 12px;
}

.mnl-pdp-description-content p:last-child {
    margin-bottom: 0;
}

.mnl-pdp-description-content ul {
    margin: 12px 0;
    padding-left: 20px;
    list-style: disc;
}

.mnl-pdp-description-content li {
    margin-bottom: 6px;
    color: var(--gray-dark);
}

.mnl-pdp-description-content strong {
    color: var(--black);
    font-weight: 700;
}

.mnl-pdp-description-content em {
    font-style: italic;
    color: var(--gray-dark);
}

/* Tags al pie de la descripción */
.mnl-pdp-tags {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.mnl-pdp-tags-label {
    font-family: var(--font-nav);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gray-mid);
    margin-right: 4px;
}

.mnl-pdp-tag {
    display: inline-block;
    padding: 4px 10px;
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-radius: 3px;
    font-size: 12px;
    color: var(--gray-dark);
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.mnl-pdp-tag:hover {
    background: var(--red);
    border-color: var(--red);
    color: var(--white);
}

@media (max-width: 768px) {
    .mnl-pdp-description {
        padding: 20px 18px;
        margin-top: 24px;
    }
    .mnl-pdp-description h2 {
        font-size: 16px;
    }
    .mnl-pdp-description-content {
        font-size: 13px;
    }
}

/* Botón agregar — full width */
.single-product .cart {
    display: flex;
    align-items: stretch;
    margin-bottom: 8px !important;
}

.single-product .quantity {
    display: none !important;
}

.single-product .single_add_to_cart_button,
.single-product button.button.alt {
    flex: 1;
    width: 100%;
    background: var(--red) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: 4px !important;
    font-family: var(--font) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    padding: 0 20px !important;
    height: 42px;
    transition: background 0.2s !important;
    cursor: pointer;
}

.single-product .single_add_to_cart_button:hover,
.single-product button.button.alt:hover {
    background: var(--red-dark) !important;
}


/* Anular floats de Storefront para que el Grid funcione */
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary {
    float: none !important;
    width: 100% !important;
}

/* Ocultar elementos default de WooCommerce/Storefront */
.single-product .product_meta,
.single-product .posted_in,
.single-product .tagged_as,
.single-product .stock,
.single-product p.stock,
.single-product .edit-link,
.single-product a.post-edit-link,
.single-product .storefront-product-pagination,
.single-product .onsale {
    display: none !important;
}

/* ── Widgets PDP: VIN Checker + Calculador de envío ── */
.mnl-pdp-widget {
    border: 1px solid var(--border);
    border-radius: 4px;
    margin-bottom: 6px;
    overflow: hidden;
}

/* Placeholders para estilos específicos por widget si se necesitan en el futuro */
.mnl-pdp-vin {}
.mnl-pdp-shipping {}

.mnl-pdp-widget-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: var(--gray-light);
    border-bottom: 1px solid var(--border);
}

.mnl-pdp-widget-header svg {
    width: 14px;
    height: 14px;
    stroke: var(--red);
    flex-shrink: 0;
}

.mnl-pdp-widget-header strong {
    font-size: 11px;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.mnl-pdp-widget-body {
    padding: 8px 10px;
}

.mnl-pdp-widget-input-row {
    display: flex;
    gap: 6px;
}

.mnl-pdp-input {
    flex: 1;
    height: 32px;
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 0 10px;
    font-family: var(--font);
    font-size: 12px;
    color: var(--black);
    background: var(--white);
    outline: none;
    min-width: 0;
    transition: border-color 0.15s;
}

.mnl-pdp-input:focus {
    border-color: var(--red);
}

.mnl-pdp-input::placeholder {
    color: #AAA;
    font-size: 11px;
}

.mnl-pdp-widget-btn {
    height: 32px;
    padding: 0 12px;
    background: var(--black);
    color: var(--white);
    border: none;
    border-radius: 3px;
    font-family: var(--font);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}

.mnl-pdp-widget-btn:hover {
    background: var(--gray-dark);
}

.mnl-pdp-widget-result {
    margin-top: 8px;
}

.mnl-pdp-widget-result:empty {
    margin-top: 0;
}

/* Resultados VIN */
.mnl-vin-decoded {
    display: flex;
    gap: 12px;
    font-size: 11px;
    color: var(--gray-mid);
    margin-bottom: 6px;
}

.mnl-vin-decoded strong {
    color: var(--black);
}

.mnl-widget-success {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--green);
    padding: 6px 0 0;
}

.mnl-widget-warning {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #E67E00;
    padding: 6px 0 0;
}

.mnl-widget-error {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--red);
    padding: 6px 0 0;
}

.mnl-widget-hint {
    display: block;
    font-size: 10px;
    color: #AAA;
    margin-top: 6px;
}

.mnl-widget-loading {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #666;
    padding: 6px 0 0;
}

/* Resultados Envío */
.mnl-shipping-options {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.mnl-shipping-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
}

.mnl-shipping-option:last-child {
    border-bottom: none;
}

.mnl-shipping-carrier strong {
    font-size: 12px;
    color: var(--black);
    display: block;
}

.mnl-shipping-carrier span {
    font-size: 10px;
    color: var(--gray-mid);
}

.mnl-shipping-price {
    font-family: var(--font);
    font-size: 14px;
    font-weight: 800;
    color: var(--black);
}

/* Resultado compacto (post-click Cotizar): 2 líneas apretadas, sin expandir la card */
.mnl-shipping-compact {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 0 0;
    animation: mnl-fade-in 180ms ease-out;
}

.mnl-shipping-compact-price {
    font-family: var(--font);
    font-size: 15px;
    font-weight: 800;
    color: var(--black);
    line-height: 1.1;
}

.mnl-shipping-compact-sub {
    font-size: 10px;
    font-weight: 500;
    color: var(--gray-mid);
    line-height: 1.3;
}

@keyframes mnl-fade-in {
    from { opacity: 0; transform: translateY(-2px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Reservar altura mínima para que el widget no "salte" al cotizar */
.mnl-pdp-shipping .mnl-pdp-widget-result:not(:empty) {
    min-height: 38px;
}

/* Tabs — ocultos (todo se muestra en la ficha técnica) */
.woocommerce-tabs {
    display: none !important;
}

.woocommerce-tabs .tabs li a {
    font-family: var(--font);
    font-weight: 600;
    color: var(--gray-dark);
    font-size: 13px;
}

.woocommerce-tabs .tabs li.active a {
    color: var(--red);
    border-top-color: var(--red) !important;
}

.woocommerce-product-attributes th {
    background: var(--gray-light);
    font-weight: 600;
    color: var(--gray-dark);
}

/* Galería */
.woocommerce-product-gallery__image img {
    border-radius: 4px;
}

.woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder img {
    opacity: 0.15;
}

/* ── PDP Responsive ── */
@media (max-width: 768px) {
    .single-product .product_title {
        font-size: 17px;
    }

    .single-product .price {
        font-size: 22px !important;
    }

    .single-product .cart {
        flex-wrap: wrap;
    }

    .single-product .single_add_to_cart_button {
        width: 100%;
        font-size: 13px !important;
    }

    .single-product div.product {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
    }

    /* En mobile el layout es 1 columna: volver al flujo normal para la imagen */
    .single-product .woocommerce-product-gallery {
        position: static;
        aspect-ratio: 1 / 1;
    }

    .single-product .woocommerce-product-gallery__wrapper {
        position: static;
    }

    .single-product .woocommerce-product-gallery,
    .single-product div.summary {
        grid-column: 1 !important;
        grid-row: auto !important;
        width: 100% !important;
    }

    .mnl-pdp-widgets-row {
        flex-direction: column !important;
        gap: 8px !important;
    }
}

/* =============================================
   ARCHIVE DE PRODUCTOS — Shop, Categorías, Búsquedas
   Usa el mismo markup/card que la home (content-product.php)
   ============================================= */

/* Sin sidebar: full width */
.post-type-archive-product #secondary,
.tax-product_cat #secondary,
.woocommerce-shop #secondary,
.search-results.woocommerce #secondary {
    display: none;
}

.post-type-archive-product .content-area,
.tax-product_cat .content-area,
.woocommerce-shop .content-area,
.search-results.woocommerce .content-area {
    width: 100% !important;
    float: none !important;
    margin-right: 0 !important;
}

/* Header del archive (título de categoría, título "Tienda", etc.) */
.woocommerce-products-header {
    padding: 24px 0 16px;
    border-bottom: 2px solid var(--black);
    margin-bottom: 20px;
}

.woocommerce-products-header__title.page-title {
    font-family: var(--font-nav);
    font-size: 28px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--black);
    margin: 0;
}

.term-description {
    font-size: 13px;
    color: var(--gray-mid);
    margin-top: 8px;
    line-height: 1.5;
}

.term-description p:last-child {
    margin-bottom: 0;
}

/* Ocultar contador de resultados y dropdown de ordenamiento */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    display: none !important;
}

/* Grilla de productos: CSS Grid en vez de los floats de Storefront/WC */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    clear: both;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
    display: none !important;
}

/* Anular float/width de Storefront en cada item */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    clear: none !important;
}

/* Card en contexto de grid: cancelar flex fijo del carrusel de home */
.woocommerce ul.products li.mnl-product-card,
.woocommerce-page ul.products li.mnl-product-card {
    flex: none;
    scroll-snap-align: none;
}

/* Responsive grid */
@media (max-width: 1024px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .woocommerce-products-header__title.page-title {
        font-size: 22px;
    }
}

/* Paginación */
.woocommerce-pagination,
.woocommerce nav.woocommerce-pagination {
    text-align: center;
    margin: 0 0 32px;
}

.woocommerce-pagination ul.page-numbers,
.woocommerce nav.woocommerce-pagination ul {
    display: inline-flex;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0;
    border: none !important;
}

.woocommerce-pagination ul.page-numbers li,
.woocommerce nav.woocommerce-pagination ul li {
    border: none !important;
    margin: 0;
    display: inline-flex;
}

.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--border) !important;
    border-radius: 4px;
    font-family: var(--font-nav);
    font-size: 13px;
    font-weight: 600;
    color: var(--black) !important;
    background: var(--white) !important;
    text-decoration: none;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.woocommerce-pagination ul.page-numbers li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--gray-light) !important;
    border-color: var(--gray-mid) !important;
}

.woocommerce-pagination ul.page-numbers li span.current,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--red) !important;
    color: var(--white) !important;
    border-color: var(--red) !important;
}

/* Avisos "No hay productos" */
.woocommerce-info,
.woocommerce-message {
    background: var(--gray-light);
    border-top: 3px solid var(--red);
    padding: 16px 20px;
    font-size: 14px;
    color: var(--gray-dark);
    border-radius: 4px;
    margin-bottom: 20px;
}

/* =============================================
   HOME PAGE — full width
   ============================================= */

/* Full width: salir del .col-full de Storefront */
.mnl-home {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    overflow: hidden;
}

/* Títulos de sección — consistentes */
.mnl-home h2 {
    font-family: var(--font);
    font-size: 18px;
    font-weight: 800;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 20px;
    padding: 0 0 10px;
    border-bottom: 3px solid var(--red);
    display: inline-block;
}

/* ── BANNERS ── */
.mnl-banners {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
}

.mnl-banner {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
    display: flex;
    align-items: center;
}

.mnl-banner.active {
    opacity: 1;
    z-index: 1;
}

.mnl-banner-content {
    padding: 0 48px;
    max-width: 560px;
}

.mnl-banner-tag {
    display: inline-block;
    background: var(--red);
    color: var(--white);
    font-family: var(--font);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 10px;
    border-radius: 2px;
    margin-bottom: 12px;
}

.mnl-banner-content h2 {
    color: var(--white);
    font-size: 26px;
    font-weight: 800;
    margin: 0 0 8px;
    padding: 0;
    border: none;
    text-transform: uppercase;
    line-height: 1.2;
}

.mnl-banner-content p {
    color: rgba(255,255,255,0.65);
    font-size: 14px;
    margin: 0 0 20px;
    line-height: 1.5;
}

.mnl-banner-btn {
    display: inline-block;
    background: var(--red);
    color: var(--white);
    font-family: var(--font);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 10px 24px;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.2s;
}

.mnl-banner-btn:hover {
    background: var(--red-dark);
    color: var(--white);
}

.mnl-banner-btn-light {
    background: var(--white);
    color: var(--black);
}

.mnl-banner-btn-light:hover {
    background: var(--gray-light);
    color: var(--black);
}

/* Dots */
.mnl-banner-dots {
    position: absolute;
    bottom: 16px;
    left: 48px;
    display: flex;
    gap: 6px;
    z-index: 2;
}

.mnl-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.4);
    background: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, border-color 0.2s;
    -webkit-tap-highlight-color: transparent;
}

.mnl-dot.active {
    background: var(--red);
    border-color: var(--red);
}

/* ── CATEGORÍAS ── */
.mnl-categories-section {
    padding: 32px 32px;
    background: var(--white);
}

.mnl-categories-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}

.mnl-cat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 20px 8px;
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-radius: 6px;
    text-decoration: none;
    color: var(--black);
    font-family: var(--font);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.mnl-cat-card:hover {
    border-color: var(--red);
    box-shadow: 0 3px 10px rgba(212,0,16,0.1);
    color: var(--red);
}

.mnl-cat-icon {
    width: 40px;
    height: 40px;
}

.mnl-cat-icon svg {
    width: 40px;
    height: 40px;
    stroke: var(--red);
}

/* ── PRODUCTOS — carrusel horizontal ── */
.mnl-featured-section {
    padding: 32px 32px;
    background: var(--gray-light);
}

.mnl-products-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
}

.mnl-products-scroll::-webkit-scrollbar {
    height: 6px;
}

.mnl-products-scroll::-webkit-scrollbar-track {
    background: var(--border);
    border-radius: 3px;
}

.mnl-products-scroll::-webkit-scrollbar-thumb {
    background: var(--red);
    border-radius: 3px;
}

.mnl-product-card {
    flex: 0 0 200px;
    scroll-snap-align: start;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: box-shadow 0.2s, border-color 0.2s;
}

.mnl-product-card:hover {
    border-color: var(--red);
    box-shadow: 0 3px 12px rgba(0,0,0,0.08);
}

/* Link que cubre imagen + info */
.mnl-product-card-link {
    display: flex;
    flex-direction: column;
    flex: 1;
    text-decoration: none;
    color: var(--black);
}

.mnl-product-img {
    height: 200px;
    overflow: hidden;
    background: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.mnl-product-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
}

.mnl-product-placeholder {
    width: 60px;
    height: 60px;
    opacity: 0.3;
}

.mnl-product-placeholder svg {
    width: 100%;
    height: 100%;
    stroke: var(--gray-mid);
}

.mnl-product-info {
    padding: 10px 12px 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}

.mnl-product-info h3 {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Marca + OEM */
.mnl-product-meta {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 3px;
}

.mnl-product-marca {
    font-size: 10px;
    font-weight: 700;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.mnl-product-oem {
    font-size: 10px;
    color: var(--gray-mid);
    font-weight: 500;
    font-family: var(--font-nav);
    letter-spacing: 0.2px;
}

.mnl-product-price {
    font-size: 15px;
    font-weight: 800;
    color: var(--red);
    margin-top: 5px;
}

/* Botón Agregar al carrito — círculo en esquina inferior derecha de la card */
.mnl-product-atc {
    position: absolute;
    bottom: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--red);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(212, 0, 16, 0.45);
    transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
    z-index: 2;
}

.mnl-product-atc:hover {
    background: var(--red-dark);
    color: var(--white);
    transform: scale(1.12);
    box-shadow: 0 4px 12px rgba(212, 0, 16, 0.55);
}

.mnl-product-atc svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

.mnl-product-atc--options {
    background: var(--black);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.mnl-product-atc--options:hover {
    background: var(--gray-dark);
    color: var(--white);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.45);
}

/* ── MARCAS ── */
.mnl-brands-section {
    padding: 24px 32px;
    background: var(--white);
    border-top: 1px solid var(--border);
}

.mnl-brands-scroll {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    scroll-snap-type: x mandatory;
}

.mnl-brands-scroll::-webkit-scrollbar {
    height: 3px;
}

.mnl-brands-scroll::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 2px;
}

.mnl-brand-card {
    flex: 0 0 110px;
    scroll-snap-align: start;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-radius: 4px;
    text-decoration: none;
    transition: border-color 0.2s;
}

.mnl-brand-card:hover {
    border-color: var(--red);
}

.mnl-brand-name {
    font-family: var(--font);
    font-size: 12px;
    font-weight: 700;
    color: var(--gray-dark);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.mnl-brand-card:hover .mnl-brand-name {
    color: var(--red);
}

/* ── BADGE OFERTA / PROMO ── */
.mnl-sale-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    background: var(--red);
    color: var(--white);
    font-family: var(--font-nav, var(--font));
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 3px 9px;
    border-radius: 3px;
    box-shadow: 0 4px 10px rgba(212, 0, 16, 0.25);
}

/* Variante promo: un poco más contundente que "Oferta" genérica */
.mnl-sale-badge--promo {
    font-family: 'Barlow Condensed', var(--font), sans-serif;
    font-size: 13px;
    font-weight: 800;
    padding: 4px 10px;
    letter-spacing: 0.3px;
}

/* ── PRECIO TACHADO (cards, PDP, carrito) ──
   WC genera <del><span class="woocommerce-Price-amount">…</span></del>
   seguido de <ins>…</ins>. Unificamos apariencia. */
.woocommerce-Price-amount,
.amount { transition: color 0.15s; }

/* Card de shop / home — 2 líneas: tachado chico arriba, precio nuevo grande abajo */
.mnl-product-price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    line-height: 1.15;
}

.mnl-product-price del {
    order: 1;
    display: inline-block;
    font-size: 11px;
    color: var(--gray-mid);
    font-weight: 500;
    text-decoration: line-through;
    text-decoration-color: rgba(0,0,0,0.45);
    margin: 0;
    letter-spacing: 0.1px;
}
.mnl-product-price del .woocommerce-Price-amount { color: inherit; }

.mnl-product-price ins {
    order: 2;
    background: none;
    color: var(--red);
    font-weight: 800;
    text-decoration: none;
    font-size: 1em; /* heredado del contenedor */
}

/* Cuando el precio está sin sale (solo <span class="amount">) queda como está */
.mnl-product-price > .woocommerce-Price-amount:only-child { order: 0; }

/* PDP — precio estructurado en grid:
   Línea 1: <del> precio original tachado chico
   Línea 2: <ins> precio nuevo MUY grande en rojo + badge pill al costado
   Línea 3: "Ahorrás $X" en verde chico */
.single-product p.price,
.single-product .summary .price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 10px;
    row-gap: 2px;
    margin: 0 0 14px !important;
    line-height: 1.1;
}

.single-product p.price ins,
.single-product .summary .price ins {
    flex-basis: 100%; /* fuerza al precio nuevo a su propia línea */
}

.single-product p.price del,
.single-product .summary .price del {
    display: inline-block;
    order: 1;
    font-size: 15px !important;
    color: var(--gray-mid) !important;
    font-weight: 500;
    text-decoration: line-through;
    text-decoration-color: rgba(0,0,0,0.45);
    margin: 0 !important;
    letter-spacing: 0.1px;
    opacity: 1;
}

.single-product p.price del .woocommerce-Price-amount { color: inherit !important; }

.single-product p.price ins,
.single-product .summary .price ins {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    order: 2;
    background: none;
    color: var(--red) !important;
    font-weight: 800;
    text-decoration: none;
    font-size: 34px;
    letter-spacing: -0.5px;
    line-height: 1;
}

.single-product p.price ins .woocommerce-Price-amount {
    color: inherit !important;
    font-weight: inherit !important;
}

/* Badge en PDP: pill chica al lado del precio TACHADO (arriba, línea 1) */
.single-product .mnl-pdp-promo-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    background: var(--red);
    color: var(--white);
    font-family: 'Barlow Condensed', var(--font), sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.4px;
    border-radius: 3px;
    text-transform: uppercase;
    box-shadow: 0 3px 8px rgba(212, 0, 16, 0.22);
    line-height: 1;
}


/* Carrito: línea de promo bajo el nombre */
.mnl-cart-item__promo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 700;
    color: var(--red);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.mnl-cart-item__promo::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--red);
    border-radius: 50%;
}

/* Tachado en subtotal del carrito y checkout: 2 líneas (tachado chico arriba, nuevo abajo) */
.woocommerce-cart td.product-subtotal,
.woocommerce-checkout td.product-total {
    display: flex !important;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    line-height: 1.2;
}

.woocommerce-cart td.product-subtotal del,
.woocommerce-checkout td.product-total del {
    display: inline-block;
    order: 1;
    font-size: 11px;
    font-weight: 500;
    color: var(--gray-mid);
    text-decoration: line-through;
    text-decoration-color: rgba(0,0,0,0.4);
    margin: 0;
}
.woocommerce-cart td.product-subtotal del .woocommerce-Price-amount,
.woocommerce-checkout td.product-total del .woocommerce-Price-amount { color: inherit; }

.woocommerce-cart td.product-subtotal ins,
.woocommerce-checkout td.product-total ins {
    order: 2;
    display: inline;
    background: none;
    text-decoration: none;
    color: var(--red);
    font-weight: 800;
}

/* Mobile (cart en grid card): mantener alineación a la derecha */
@media (max-width: 768px) {
    .woocommerce-cart td.product-subtotal { align-items: flex-end !important; }
}

/* Fila "Ahorro aplicado" en totales del carrito */
.woocommerce-cart .cart_totals table tr.mnl-cart-savings th {
    color: var(--green, #2E7D32);
    font-weight: 700;
}
.woocommerce-cart .cart_totals table tr.mnl-cart-savings td,
.woocommerce-cart .cart_totals table tr.mnl-cart-savings td .woocommerce-Price-amount {
    color: var(--green, #2E7D32);
    font-weight: 800;
}

/* ── MÁS VENDIDOS ── */
.mnl-bestsellers-section {
    padding: 32px 32px;
    background: var(--white);
}

/* ── WHATSAPP FLOTANTE ── */
.mnl-whatsapp {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 56px;
    height: 56px;
    background: #25D366;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
    z-index: 998;
    transition: transform 0.2s, box-shadow 0.2s;
    text-decoration: none;
}

.mnl-whatsapp:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

.mnl-whatsapp svg {
    width: 30px;
    height: 30px;
    fill: var(--white);
}

/* ── CONFIANZA ── */
.mnl-trust-section {
    padding: 24px 32px;
    background: var(--gray-light);
    border-top: 1px solid var(--border);
}

.mnl-trust-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    max-width: 1200px;
    margin: 0 auto;
}

.mnl-trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 12px;
}

.mnl-trust-item svg {
    width: 28px;
    height: 28px;
    stroke: var(--red);
}

.mnl-trust-item strong {
    font-size: 13px;
    color: var(--black);
}

.mnl-trust-item span {
    font-size: 11px;
    color: var(--gray-mid);
}

/* ── Home responsive ── */
@media (max-width: 1024px) {
    .mnl-categories-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .mnl-banners {
        height: 260px;
    }
    .mnl-banner-content {
        padding: 0 24px;
    }
    .mnl-banner-content h2 {
        font-size: 22px;
    }
    .mnl-banner-dots {
        left: 24px;
    }
    .mnl-categories-section,
    .mnl-featured-section,
    .mnl-bestsellers-section,
    .mnl-brands-section,
    .mnl-trust-section {
        padding: 28px 16px;
    }

    .mnl-brand-card {
        flex: 0 0 100px;
        height: 56px;
    }

    .mnl-brand-name {
        font-size: 12px;
    }

    .mnl-whatsapp {
        bottom: 16px;
        right: 16px;
        width: 50px;
        height: 50px;
    }

    .mnl-whatsapp svg {
        width: 26px;
        height: 26px;
    }
    .mnl-home h2 {
        padding-left: 0;
        font-size: 18px;
    }
    .mnl-categories-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
    .mnl-cat-card {
        padding: 16px 8px;
        font-size: 11px;
    }
    .mnl-cat-icon, .mnl-cat-icon svg {
        width: 36px;
        height: 36px;
    }
    .mnl-product-card {
        flex: 0 0 160px;
    }
    .mnl-product-img {
        height: 170px;
    }
    .mnl-trust-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .mnl-banners {
        height: 240px;
    }
    .mnl-banner-content h2 {
        font-size: 18px;
    }
    .mnl-categories-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .mnl-product-card {
        flex: 0 0 140px;
    }
}

/* =============================================
   CARRITO DE COMPRAS
   ============================================= */

/* Título de página: oculto en páginas donde el contenido ya da el contexto
   (cart/checkout/my-account/shop). Se mantiene en categorías de producto. */
.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header,
.woocommerce-account .entry-header,
.post-type-archive-product .woocommerce-products-header,
.woocommerce-shop .woocommerce-products-header {
    display: none;
}

.woocommerce-cart .entry-content { margin-top: 0; }

/* ── Header del carrito (Seguir comprando + título) ── */
.mnl-cart-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
    width: 100%;
}

.mnl-cart-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gray-mid);
    text-decoration: none;
    transition: color 0.15s;
}
.mnl-cart-back:hover { color: var(--red); }
.mnl-cart-back svg { transition: transform 0.2s; }
.mnl-cart-back:hover svg { transform: translateX(-3px); }

.mnl-cart-title {
    font-family: var(--font);
    font-size: 24px;
    font-weight: 800;
    color: var(--black);
    margin: 0;
    letter-spacing: -0.3px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.mnl-cart-count-pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    background: var(--red);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border-radius: 10px;
    line-height: 1;
}

/* Layout: 2 columnas — items | resumen sticky */
.woocommerce-cart .woocommerce {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    align-items: flex-start;
}

.woocommerce-cart .woocommerce-notices-wrapper {
    flex: 0 0 100%;
}

.woocommerce-cart form.woocommerce-cart-form {
    flex: 1 1 0;
    min-width: 0;
    float: none !important;
    width: auto !important;
    box-sizing: border-box;
}

.woocommerce-cart .cart-collaterals {
    flex: 0 0 320px;
    float: none !important;
    width: 320px !important;
    max-width: 320px;
    min-width: 0;
    position: sticky;
    top: 172px; /* debajo del header fijo */
    box-sizing: border-box;
}

.woocommerce-cart .cart-collaterals * {
    box-sizing: border-box;
}

/* Ocultar cross-sells — sobrecarga la página de carrito */
.woocommerce-cart .cross-sells {
    display: none;
}

/* ── Tabla de ítems ── */
.woocommerce-cart table.shop_table {
    border: none;
    border-collapse: collapse;
    width: 100%;
    background: none;
    margin: 0;
}

.woocommerce-cart table.shop_table thead tr {
    border-bottom: 1px solid var(--border);
    background: none !important;
}

.woocommerce-cart table.shop_table th {
    font-family: var(--font);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--gray-mid);
    padding: 0 10px 10px;
    text-align: left;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
}

.woocommerce-cart table.shop_table th.product-price,
.woocommerce-cart table.shop_table th.product-quantity { text-align: center; }
.woocommerce-cart table.shop_table th.product-subtotal  { text-align: right; }
.woocommerce-cart table.shop_table th.product-remove    { width: 40px; }

/* Filas de producto */
.woocommerce-cart table.cart tr.cart_item {
    border-bottom: 1px solid var(--border) !important;
    background: none !important;
}

.woocommerce-cart table.cart td {
    padding: 18px 10px;
    vertical-align: middle;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
}

/* ── Product cell: imagen + nombre + meta ── */
.mnl-cart-item {
    display: flex;
    align-items: center;
    gap: 16px;
}

.mnl-cart-item__thumb {
    display: block;
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--white);
    overflow: hidden;
}

.mnl-cart-item__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    padding: 6px;
    display: block;
}

.mnl-cart-item__info {
    min-width: 0;
    flex: 1;
}

.mnl-cart-item__name {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--black);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.2px;
    line-height: 1.35;
    margin-bottom: 6px;
}

.mnl-cart-item__name:hover { color: var(--red); }

.mnl-cart-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    font-size: 11px;
    color: var(--gray-mid);
    font-weight: 500;
    line-height: 1.4;
}

.mnl-cart-item__sku,
.mnl-cart-item__brand {
    display: inline-flex;
    align-items: center;
}

.mnl-cart-item__sku {
    font-family: 'SF Mono', Menlo, Consolas, monospace;
    font-size: 10.5px;
    letter-spacing: 0.2px;
}

.mnl-cart-item__brand {
    position: relative;
    padding-left: 11px;
}

.mnl-cart-item__brand::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 3px;
    background: var(--gray-mid);
    border-radius: 50%;
}

/* Precio unitario */
.woocommerce-cart td.product-price {
    font-family: var(--font);
    font-size: 13px;
    color: var(--gray-mid);
    font-weight: 500;
    white-space: nowrap;
    text-align: center;
}

.woocommerce-cart td.product-price .woocommerce-Price-amount {
    color: var(--gray-mid);
}

/* ── Quantity stepper custom ── */
.woocommerce-cart td.product-quantity {
    text-align: center;
}

.mnl-qty-stepper {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--white);
    overflow: hidden;
    height: 36px;
    transition: border-color 0.15s;
}

.mnl-qty-stepper:focus-within {
    border-color: var(--black);
}

.mnl-qty-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    border: none;
    background: transparent;
    color: var(--gray-dark);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    transition: background 0.12s, color 0.12s;
    user-select: none;
}

.mnl-qty-btn:hover {
    background: var(--gray-light);
    color: var(--black);
}

.mnl-qty-btn:active {
    background: var(--black);
    color: var(--white);
}

.woocommerce-cart .mnl-qty-stepper .quantity {
    margin: 0 !important;
    display: flex;
    align-items: center;
}

.woocommerce-cart .mnl-qty-stepper input.qty {
    width: 44px !important;
    height: 34px;
    border: none !important;
    border-left: 1px solid var(--border) !important;
    border-right: 1px solid var(--border) !important;
    border-radius: 0 !important;
    padding: 0;
    font-family: var(--font);
    font-size: 13px;
    font-weight: 700;
    color: var(--black);
    text-align: center;
    background: var(--white);
    outline: none;
    box-shadow: none !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

.woocommerce-cart .mnl-qty-stepper input.qty::-webkit-inner-spin-button,
.woocommerce-cart .mnl-qty-stepper input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Subtotal — destacado en rojo */
.woocommerce-cart td.product-subtotal {
    font-family: var(--font);
    font-size: 15px;
    font-weight: 800;
    white-space: nowrap;
    text-align: right;
}

.woocommerce-cart td.product-subtotal .woocommerce-Price-amount {
    color: var(--red);
}

/* Link "Eliminar" inline dentro del producto */
.mnl-cart-item__remove {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    padding: 0;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    color: var(--gray-mid) !important;
    font-family: var(--font);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    text-decoration: none !important;
    border: none !important;
    border-radius: 0 !important;
    transition: color 0.15s;
    font-size: 11px !important;
    line-height: 1 !important;
}

/* Matar la "×" por defecto que WC inyecta vía a.remove::before */
.mnl-cart-item__remove::before,
.mnl-cart-item__remove::after {
    content: none !important;
    display: none !important;
}

.mnl-cart-item__remove:hover {
    background: transparent !important;
    color: var(--red) !important;
}

.mnl-cart-item__remove svg {
    transition: transform 0.15s;
}

.mnl-cart-item__remove:hover svg {
    transform: scale(1.05);
}

/* Fila de acciones */
.woocommerce-cart tr.actions {
    background: none !important;
    border: none !important;
}

.woocommerce-cart tr.actions td {
    padding: 18px 0 4px !important;
    border: none !important;
}

/* Botón "Actualizar carrito" — ocultado, auto-update vía JS */
.woocommerce-cart .mnl-update-cart-hidden {
    position: absolute !important;
    left: -9999px !important;
    visibility: hidden;
}

/* ── Cupón colapsable (<details>) ── */
.mnl-cart-coupon {
    max-width: 480px;
}

.mnl-cart-coupon__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font);
    font-size: 12px;
    font-weight: 600;
    color: var(--gray-mid);
    cursor: pointer;
    padding: 8px 0;
    list-style: none;
    transition: color 0.15s;
    user-select: none;
}

.mnl-cart-coupon__toggle::-webkit-details-marker { display: none; }
.mnl-cart-coupon__toggle:hover { color: var(--red); }
.mnl-cart-coupon__toggle svg { color: currentColor; }

.mnl-cart-coupon[open] .mnl-cart-coupon__toggle {
    color: var(--black);
    margin-bottom: 8px;
}

.mnl-cart-coupon__body {
    display: flex !important;
    gap: 6px;
    align-items: center;
    margin: 0 !important;
    animation: mnl-coupon-slide 0.18s ease-out;
}

@keyframes mnl-coupon-slide {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.mnl-cart-coupon__body input#coupon_code {
    flex: 1;
    max-width: 220px;
    height: 36px;
    border: 1px solid var(--border) !important;
    border-radius: 4px;
    padding: 0 12px;
    font-family: var(--font);
    font-size: 12px;
    color: var(--black);
    background: var(--white);
    outline: none;
    box-shadow: none !important;
    transition: border-color 0.15s;
}

.mnl-cart-coupon__body input#coupon_code:focus {
    border-color: var(--black) !important;
}

.mnl-cart-coupon__body input#coupon_code::placeholder {
    color: #bbb;
    font-size: 11px;
}

.mnl-cart-coupon__body button[name="apply_coupon"] {
    height: 36px;
    padding: 0 18px;
    background: var(--black) !important;
    color: var(--white) !important;
    font-family: var(--font);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.15s;
    box-shadow: none !important;
}

.mnl-cart-coupon__body button[name="apply_coupon"]:hover {
    background: var(--red) !important;
}

/* ── Panel de resumen / totales ── */
.woocommerce-cart .cart_totals {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 20px 18px 18px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03), 0 8px 24px rgba(0,0,0,0.04);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

.woocommerce-cart .cart_totals h2 {
    font-family: var(--font);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--gray-mid);
    margin: 0 0 14px;
    padding: 0;
    border: none;
}

.woocommerce-cart .cart_totals table {
    width: 100%;
    border: none !important;
    border-collapse: collapse;
    background: none !important;
    margin-bottom: 16px;
}

.woocommerce-cart .cart_totals table tr {
    border: none !important;
    background: none !important;
}

.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
    padding: 6px 0;
    font-family: var(--font);
    font-size: 13px;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    vertical-align: middle;
}

.woocommerce-cart .cart_totals table th {
    font-weight: 500;
    color: var(--gray-mid);
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
}

.woocommerce-cart .cart_totals table td {
    font-weight: 600;
    color: var(--gray-dark);
    text-align: right;
}

.woocommerce-cart .cart_totals table tr.cart-subtotal th,
.woocommerce-cart .cart_totals table tr.cart-subtotal td {
    padding-bottom: 8px;
}

/* Shipping calculator compacto */
.woocommerce-cart .cart_totals .shipping-calculator-button {
    font-size: 11px;
    color: var(--red);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Total final — grande y rojo, separado por línea */
.woocommerce-cart .cart_totals table tr.order-total {
    border-top: 1px solid var(--border) !important;
}

.woocommerce-cart .cart_totals table tr.order-total th {
    font-size: 12px;
    font-weight: 700;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding-top: 14px;
    padding-bottom: 2px;
    vertical-align: bottom;
}

.woocommerce-cart .cart_totals table tr.order-total td {
    font-size: 22px;
    font-weight: 800;
    color: var(--red);
    line-height: 1.1;
    padding-top: 14px;
    padding-bottom: 2px;
    letter-spacing: -0.3px;
    white-space: nowrap;
}

.woocommerce-cart .cart_totals table tr.order-total td .woocommerce-Price-amount {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    letter-spacing: inherit;
    white-space: nowrap;
}

/* ── Trust signals bajo el CTA ── */
.mnl-cart-trust {
    list-style: none;
    margin: 16px 0 0;
    padding: 14px 0 2px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.mnl-cart-trust li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font);
    font-size: 11.5px;
    font-weight: 500;
    color: var(--gray-mid);
    line-height: 1.3;
}

.mnl-cart-trust svg {
    flex-shrink: 0;
    color: var(--black);
    opacity: 0.7;
}

/* Descuentos aplicados */
.woocommerce-cart .cart_totals table tr.cart-discount td,
.woocommerce-cart .cart_totals table tr.cart-discount td .woocommerce-Price-amount {
    color: var(--green);
}

.woocommerce-cart .cart_totals .woocommerce-remove-coupon {
    font-size: 10px;
    color: var(--gray-mid);
    margin-left: 6px;
    text-decoration: none;
}

.woocommerce-cart .cart_totals .woocommerce-remove-coupon:hover {
    color: var(--red);
}

/* Botón Proceder al checkout */
.woocommerce-cart .wc-proceed-to-checkout {
    margin-top: 4px;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100% !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 14px 10px !important;
    background: var(--red) !important;
    color: var(--white) !important;
    font-family: var(--font) !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    text-align: center;
    text-decoration: none !important;
    white-space: nowrap;
    border: none !important;
    border-radius: 6px;
    transition: background 0.15s, transform 0.08s;
    box-sizing: border-box !important;
    box-shadow: 0 6px 16px rgba(212, 0, 16, 0.22) !important;
}

.woocommerce-cart .wc-proceed-to-checkout {
    width: 100%;
    box-sizing: border-box;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after {
    content: '→';
    font-size: 16px;
    font-weight: 700;
    transition: transform 0.2s;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--red-dark) !important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover::after {
    transform: translateX(3px);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:active {
    transform: translateY(1px);
}

/* ── Carrito vacío ── */
.woocommerce-cart .cart-empty {
    font-family: var(--font);
    font-size: 15px;
    color: var(--gray-mid);
    text-align: center;
    padding: 48px 0 16px;
}

.woocommerce-cart p.return-to-shop {
    text-align: center;
    margin-top: 8px;
}

.woocommerce-cart p.return-to-shop .button {
    display: inline-block;
    padding: 12px 28px;
    background: var(--red) !important;
    color: var(--white) !important;
    font-family: var(--font) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    text-decoration: none !important;
    border-radius: 4px;
    border: none !important;
    transition: background 0.15s;
}

.woocommerce-cart p.return-to-shop .button:hover {
    background: var(--red-dark) !important;
}

/* ── Mensajes de WooCommerce ── */
.woocommerce-cart .woocommerce-message {
    border-top-color: var(--green) !important;
    font-family: var(--font);
    font-size: 13px;
}

.woocommerce-cart .woocommerce-error {
    border-top-color: var(--red) !important;
    font-family: var(--font);
    font-size: 13px;
}

.woocommerce-cart .woocommerce-info {
    border-top-color: var(--black) !important;
    font-family: var(--font);
    font-size: 13px;
}

/* ── Responsive carrito ── */
@media (max-width: 900px) {
    .woocommerce-cart .woocommerce {
        flex-direction: column;
        gap: 20px;
    }

    .woocommerce-cart .cart-collaterals {
        flex: 0 0 auto;
        width: 100% !important;
        position: static;
    }
}

@media (max-width: 768px) {
    .mnl-cart-header {
        align-items: flex-start;
        flex-direction: column-reverse;
        gap: 10px;
    }
    .mnl-cart-title {
        font-size: 20px;
    }

    /* Tabla → cards */
    .woocommerce-cart table.shop_table thead { display: none; }

    .woocommerce-cart table.shop_table,
    .woocommerce-cart table.shop_table tbody,
    .woocommerce-cart table.shop_table tr,
    .woocommerce-cart table.shop_table td {
        display: block;
        width: 100%;
    }

    .woocommerce-cart table.cart tr.cart_item {
        position: relative;
        padding: 14px 0 10px;
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto auto;
        gap: 4px 12px;
    }

    .woocommerce-cart table.cart td {
        padding: 0 !important;
    }

    .woocommerce-cart td.product-name {
        grid-column: 1 / 3;
        grid-row: 1;
        margin-bottom: 4px;
    }

    .mnl-cart-item__thumb {
        width: 72px;
        height: 72px;
    }

    .woocommerce-cart td.product-price {
        display: none;
    }

    .woocommerce-cart td.product-quantity {
        grid-column: 1;
        grid-row: 2;
        text-align: left;
    }

    .woocommerce-cart td.product-subtotal {
        grid-column: 2;
        grid-row: 2;
        text-align: right;
        align-self: center;
        font-size: 17px;
    }

    .woocommerce-cart tr.actions td {
        padding: 16px 0 4px !important;
    }

    .mnl-cart-coupon__body {
        flex-wrap: wrap;
    }

    .mnl-cart-coupon__body input#coupon_code {
        max-width: none;
        width: 100%;
    }
}

/* =============================================
   CHECKOUT — Finalizar compra
   ============================================= */

/* ── Barra de progreso (Carrito → Pago → Confirmación) ── */
.woocommerce-checkout .mnl-checkout-steps {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 28px;
    padding: 14px 20px;
    list-style: none;
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 4px solid var(--red);
    border-radius: 4px;
    font-family: var(--font);
}

.woocommerce-checkout .mnl-step {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--gray-mid);
    flex-shrink: 0;
}

.woocommerce-checkout .mnl-step a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
    transition: color 0.15s;
}

.woocommerce-checkout .mnl-step--done { color: var(--black); }
.woocommerce-checkout .mnl-step--done a:hover { color: var(--red); }
.woocommerce-checkout .mnl-step--current { color: var(--red); }

.woocommerce-checkout .mnl-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.3px;
    line-height: 1;
}

.woocommerce-checkout .mnl-step--current .mnl-step-num {
    background: var(--red);
    color: var(--white);
    border-color: var(--red);
    box-shadow: 0 0 0 3px rgba(212, 0, 16, 0.12);
}

.woocommerce-checkout .mnl-step--done .mnl-step-num {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}

.woocommerce-checkout .mnl-step-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
}

.woocommerce-checkout .mnl-step-sep {
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(to right, var(--border), var(--border));
    min-width: 20px;
    list-style: none;
}

/* ── Login / Cupón — barras superiores ── */
.woocommerce-checkout .woocommerce > .woocommerce-info {
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-top: 3px solid var(--black);
    border-radius: 3px;
    padding: 12px 18px;
    font-family: var(--font);
    font-size: 13px;
    color: var(--gray-dark);
    margin-bottom: 16px;
}

.woocommerce-checkout .woocommerce > .woocommerce-info::before,
.woocommerce-checkout .woocommerce-info::before {
    display: none !important;
}

.woocommerce-checkout .woocommerce-info a.showlogin,
.woocommerce-checkout .woocommerce-info a.showcoupon {
    color: var(--red);
    font-weight: 700;
    text-decoration: none;
}

.woocommerce-checkout .woocommerce-info a.showlogin:hover,
.woocommerce-checkout .woocommerce-info a.showcoupon:hover {
    color: var(--red-dark);
}

/* Login inline */
.woocommerce-checkout form.login {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 20px 24px;
    margin: 0 0 20px;
    box-shadow: none;
}

.woocommerce-checkout form.login .form-row {
    margin-bottom: 12px;
}

.woocommerce-checkout form.login button[name="login"] {
    background: var(--black) !important;
    color: var(--white) !important;
    font-family: var(--font);
    font-size: 11px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    border: none !important;
    border-radius: 3px;
    padding: 10px 22px !important;
    cursor: pointer;
    transition: background 0.15s;
    box-shadow: none !important;
}

.woocommerce-checkout form.login button[name="login"]:hover {
    background: var(--gray-dark) !important;
}

.woocommerce-checkout .lost_password a {
    color: var(--red);
    font-size: 12px;
    text-decoration: none;
    font-weight: 600;
}

/* Cupón inline */
.woocommerce-checkout form.checkout_coupon {
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 3px solid var(--red);
    border-radius: 3px;
    padding: 14px 18px;
    margin: 0 0 20px;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.woocommerce-checkout form.checkout_coupon p {
    margin: 0;
}

.woocommerce-checkout form.checkout_coupon p.form-row-first {
    flex: 1 1 180px;
    min-width: 0;
}

.woocommerce-checkout form.checkout_coupon input[name="coupon_code"] {
    height: 36px !important;
    border: 1px solid var(--border) !important;
    border-radius: 3px !important;
    font-size: 12px;
    font-family: var(--font);
    padding: 0 10px !important;
    width: 100%;
    box-sizing: border-box;
    box-shadow: none !important;
}

.woocommerce-checkout form.checkout_coupon input[name="coupon_code"]:focus {
    border-color: var(--red) !important;
    outline: none;
}

.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"] {
    height: 36px !important;
    padding: 0 16px !important;
    background: var(--black) !important;
    color: var(--white) !important;
    font-size: 11px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    border-radius: 3px;
    cursor: pointer;
    font-family: var(--font);
    box-shadow: none !important;
}

.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]:hover {
    background: var(--gray-dark) !important;
}

/* ── Layout del formulario principal: 2 columnas ── */
.woocommerce-checkout form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    grid-template-areas:
        "notices notices"
        "customer review-head"
        "customer review";
    grid-template-rows: auto auto 1fr;
    column-gap: 24px;
    row-gap: 0;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

/* Todas las secciones hijas: ancho 100% de su celda de grid */
.woocommerce-checkout #customer_details,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .mnl-step-3-panel,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper {
    grid-area: notices;
    margin-bottom: 16px;
}

.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup:empty,
.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper:empty {
    display: none;
}

.woocommerce-checkout #customer_details {
    grid-area: customer;
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce-checkout #order_review_heading {
    grid-area: review-head;
    margin: 0 0 12px;
    padding: 0;
    font-family: var(--font);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--black);
}

.woocommerce-checkout #order_review_heading::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 2px;
    margin-right: 10px;
    background: var(--red);
    vertical-align: middle;
}

.woocommerce-checkout #order_review {
    grid-area: review;
    align-self: start;
    position: sticky;
    top: 172px;
    margin: 0;
    padding: 20px;
    background: var(--gray-light);
    border: 1px solid var(--border);
    border-radius: 6px;
    width: 100%;
    box-sizing: border-box;
}

/* ── Tarjetas de sección (facturación / envío / info adicional) ── */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 26px 28px 22px;
    position: relative;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-family: var(--font);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--black);
    margin: 0 0 20px;
    padding: 0 0 12px;
    border-bottom: 2px solid var(--black);
}

.woocommerce-checkout .woocommerce-billing-fields h3::before {
    content: "01";
    display: inline-block;
    margin-right: 10px;
    padding: 3px 7px;
    background: var(--red);
    color: var(--white);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    border-radius: 2px;
    vertical-align: middle;
}

.woocommerce-checkout .woocommerce-shipping-fields h3#ship-to-different-address {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0 0 12px;
}

.woocommerce-checkout .woocommerce-shipping-fields h3#ship-to-different-address::before {
    content: "02";
    padding: 3px 7px;
    background: var(--black);
    color: var(--white);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    border-radius: 2px;
    margin-right: 10px;
    vertical-align: middle;
}

.woocommerce-checkout .woocommerce-additional-fields h3::before {
    content: "03";
    display: inline-block;
    margin-right: 10px;
    padding: 3px 7px;
    background: var(--black);
    color: var(--white);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    border-radius: 2px;
    vertical-align: middle;
}

/* Checkbox "envío a diferente dirección" */
.woocommerce-checkout #ship-to-different-address .woocommerce-form__label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    cursor: pointer;
    font-family: var(--font);
}

.woocommerce-checkout #ship-to-different-address-checkbox {
    width: 16px;
    height: 16px;
    accent-color: var(--red);
    cursor: pointer;
    margin: 0;
}

.woocommerce-checkout #ship-to-different-address span {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.2px;
    color: var(--black);
    text-transform: uppercase;
}

/* Los campos de envío sólo aparecen si está activado */
.woocommerce-checkout .shipping_address {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px dashed var(--border);
}

/* ── Form rows: grid de 12 columnas ──
   form-row-first/-last → 6 cols (1/2)
   mnl-col-third        → 4 cols (1/3)
   mnl-col-two-thirds   → 8 cols (2/3)
   form-row-wide / .form-row (default) → 12 cols (full) */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: 14px;
    row-gap: 14px;
}

/* Default: full width */
.woocommerce-checkout .form-row {
    grid-column: 1 / -1 !important;
}

/* Sistema mnl-col-N: N = spans out of 12 */
.woocommerce-checkout .form-row.mnl-col-3  { grid-column: span 3  !important; }
.woocommerce-checkout .form-row.mnl-col-4  { grid-column: span 4  !important; }
.woocommerce-checkout .form-row.mnl-col-5  { grid-column: span 5  !important; }
.woocommerce-checkout .form-row.mnl-col-6  { grid-column: span 6  !important; }
.woocommerce-checkout .form-row.mnl-col-7  { grid-column: span 7  !important; }
.woocommerce-checkout .form-row.mnl-col-8  { grid-column: span 8  !important; }
.woocommerce-checkout .form-row.mnl-col-12 { grid-column: 1 / -1  !important; }

/* Legacy WC compat por si algún campo queda con estas clases */
.woocommerce-checkout .form-row.form-row-first { grid-column: span 6 !important; }
.woocommerce-checkout .form-row.form-row-last  { grid-column: span 6 !important; }
.woocommerce-checkout .form-row.form-row-wide  { grid-column: 1 / -1 !important; }

.woocommerce-checkout .form-row {
    margin: 0 !important;
    padding: 0;
    display: flex;
    flex-direction: column;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

/* IDs que siempre son full width (textarea de notas) */
.woocommerce-checkout #order_comments_field {
    grid-column: 1 / -1 !important;
}

.woocommerce-checkout .form-row label {
    font-family: var(--font);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--gray-mid);
    margin: 0 0 6px;
    padding: 0;
}

.woocommerce-checkout .form-row .required {
    color: var(--red);
    text-decoration: none;
    font-weight: 800;
}

.woocommerce-checkout .form-row .optional {
    color: #bbb;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .woocommerce-input-wrapper {
    font-family: var(--font) !important;
    font-size: 13px;
    font-weight: 500;
    color: var(--black);
    background: var(--white);
    border: 1px solid var(--border) !important;
    border-radius: 3px !important;
    padding: 0 12px !important;
    height: 40px !important;
    line-height: 40px;
    box-shadow: none !important;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    display: block;
}

/* Reset del wrapper: es un contenedor sin chrome — todo el chrome lo pone el input real */
.woocommerce-checkout .woocommerce-input-wrapper {
    border: none !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 1 !important;
    background: transparent !important;
}

.woocommerce-checkout .form-row textarea {
    height: auto !important;
    line-height: 1.5 !important;
    padding: 10px 12px !important;
    min-height: 84px;
    resize: vertical;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
    border-color: var(--red) !important;
    box-shadow: 0 0 0 2px rgba(212, 0, 16, 0.10) !important;
}

.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder {
    color: #bbb;
    font-weight: 500;
}

/* Select2 */
.woocommerce-checkout .select2-container .select2-selection--single {
    height: 40px !important;
    border: 1px solid var(--border) !important;
    border-radius: 3px !important;
    background: var(--white);
    transition: border-color 0.15s, box-shadow 0.15s;
    box-shadow: none !important;
}

.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single {
    border-color: var(--red) !important;
    box-shadow: 0 0 0 2px rgba(212, 0, 16, 0.10) !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 0 12px !important;
    line-height: 38px !important;
    font-family: var(--font);
    font-size: 13px;
    color: var(--black);
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    height: 38px !important;
    right: 6px !important;
}

.woocommerce-checkout .select2-dropdown {
    border: 1px solid var(--border);
    border-radius: 3px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.woocommerce-checkout .select2-results__option {
    font-family: var(--font);
    font-size: 13px;
    padding: 8px 12px;
}

.woocommerce-checkout .select2-results__option--highlighted[aria-selected] {
    background: var(--red) !important;
    color: var(--white) !important;
}

/* Validación */
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid textarea,
.woocommerce-checkout .form-row.woocommerce-invalid select,
.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection--single {
    border-color: var(--red) !important;
    background: #fff7f7;
}

.woocommerce-checkout .form-row.woocommerce-validated input.input-text {
    border-color: var(--border) !important;
}

/* ── Campos AR: Tipo de factura / CUIT / DNI / Razón social ── */
/* Oculto por default: el JS elige cuál mostrar según tipo de factura.
   Así evitamos un flash al cargar. */
.woocommerce-checkout .form-row.mnl-only-A,
.woocommerce-checkout .form-row.mnl-only-B {
    display: none;
}

/* Destaque del selector de tipo de factura (decide el resto del form) */
.woocommerce-checkout #billing_tipo_factura_field {
    position: relative;
    padding-left: 12px;
    border-left: 3px solid var(--red);
    margin-bottom: 16px;
}

.woocommerce-checkout #billing_tipo_factura_field label {
    color: var(--red);
}

.woocommerce-checkout #billing_tipo_factura {
    font-weight: 700 !important;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--red) 50%),
        linear-gradient(135deg, var(--red) 50%, transparent 50%);
    background-position:
        calc(100% - 14px) 50%,
        calc(100% - 9px) 50%;
    background-size: 5px 5px;
    background-repeat: no-repeat;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 28px !important;
    cursor: pointer;
}

/* CUIT/DNI: fuente monoespaciada para legibilidad */
.woocommerce-checkout #billing_cuit,
.woocommerce-checkout #billing_dni {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.5px;
}

/* ── Resumen del pedido (col derecha) ── */
.woocommerce-checkout #order_review table.shop_table {
    border: none !important;
    border-collapse: collapse;
    width: 100%;
    background: transparent !important;
    margin: 0 0 12px;
}

.woocommerce-checkout #order_review table.shop_table thead {
    display: none;
}

.woocommerce-checkout #order_review table.shop_table tr,
.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review table.shop_table th {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 10px 0;
}

/* Filas de producto: flex horizontal — thumb | nombre+qty | precio */
.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item {
    border-bottom: 1px solid var(--border) !important;
    display: flex !important;
    align-items: center;
    gap: 12px;
    padding: 12px 0 !important;
}

.woocommerce-checkout #order_review .product-name {
    font-family: var(--font);
    line-height: 1.3;
    color: var(--black);
    padding: 0 !important;
    flex: 1 1 auto;
    min-width: 0;
    display: flex !important;
    align-items: center;
    gap: 10px;
}

/* Wrapper que inyecta el PHP: thumb + texto */
.woocommerce-checkout #order_review .mnl-order-item {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

.woocommerce-checkout #order_review .mnl-order-thumb-wrap {
    display: block;
    width: 48px;
    height: 48px;
    min-width: 48px;
    flex: 0 0 48px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--white);
    overflow: hidden;
}

.woocommerce-checkout #order_review .mnl-order-thumb {
    width: 48px !important;
    height: 48px !important;
    object-fit: contain;
    padding: 3px;
    display: block;
    margin: 0 !important;
    float: none !important;
    max-width: 48px !important;
    max-height: 48px !important;
    box-sizing: border-box;
}

.woocommerce-checkout #order_review .mnl-order-name {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--black);
    line-height: 1.35;
    overflow-wrap: break-word;
}

.woocommerce-checkout #order_review .mnl-order-name a {
    color: inherit;
    text-decoration: none;
}

.woocommerce-checkout #order_review .mnl-order-name a:hover {
    color: var(--red);
}

/* Pill de cantidad × N */
.woocommerce-checkout #order_review .product-name .product-quantity {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    background: var(--black);
    color: var(--white);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.6px;
    border-radius: 10px;
    vertical-align: middle;
    line-height: 1.4;
    white-space: nowrap;
}

.woocommerce-checkout #order_review .product-total {
    font-family: var(--font);
    font-size: 13px;
    font-weight: 800;
    color: var(--black);
    text-align: right;
    white-space: nowrap;
    padding: 0 !important;
    flex: 0 0 auto;
}

.woocommerce-checkout #order_review tfoot tr {
    border-top: 1px solid var(--border) !important;
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 10px 0 !important;
}

.woocommerce-checkout #order_review tfoot tr:first-child {
    border-top: none !important;
    padding-top: 12px !important;
}

.woocommerce-checkout #order_review tfoot th,
.woocommerce-checkout #order_review tfoot td {
    flex: 0 0 auto;
}

.woocommerce-checkout #order_review tfoot td {
    white-space: nowrap;
}

.woocommerce-checkout #order_review tfoot th {
    font-family: var(--font);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--gray-mid);
    text-align: left;
}

.woocommerce-checkout #order_review tfoot td {
    font-family: var(--font);
    font-size: 13px;
    font-weight: 700;
    color: var(--black);
    text-align: right;
    white-space: nowrap;
}

.woocommerce-checkout #order_review tfoot tr.cart-discount td,
.woocommerce-checkout #order_review tfoot tr.cart-discount td .woocommerce-Price-amount {
    color: var(--green);
}

.woocommerce-checkout #order_review tfoot tr.order-total {
    border-top: 2px solid var(--black) !important;
    margin-top: 4px;
}

.woocommerce-checkout #order_review tfoot tr.order-total th {
    font-size: 12px;
    font-weight: 800;
    color: var(--black);
    padding-top: 14px;
    padding-bottom: 14px;
}

.woocommerce-checkout #order_review tfoot tr.order-total td,
.woocommerce-checkout #order_review tfoot tr.order-total td .woocommerce-Price-amount {
    font-size: 22px;
    font-weight: 800;
    color: var(--red);
    padding-top: 14px;
    padding-bottom: 14px;
}

.woocommerce-checkout #order_review tfoot tr.order-total td small.includes_tax {
    display: block;
    font-size: 10px;
    font-weight: 500;
    color: var(--gray-mid);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: -4px;
}

/* Métodos de envío dentro del tfoot (cuando se muestran) */
.woocommerce-checkout #order_review tfoot tr.shipping ul#shipping_method {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: right;
}

.woocommerce-checkout #order_review tfoot tr.shipping ul#shipping_method li {
    margin: 0 0 4px;
    font-family: var(--font);
    font-size: 12px;
    color: var(--black);
}

.woocommerce-checkout #order_review tfoot tr.shipping ul#shipping_method input[type="radio"] {
    accent-color: var(--red);
    margin-right: 6px;
}

.woocommerce-checkout #order_review tfoot tr.shipping ul#shipping_method label {
    cursor: pointer;
    font-weight: 600;
}

/* ── Métodos de pago ── */
.woocommerce-checkout #payment {
    background: transparent !important;
    border: none !important;
    margin-top: 16px;
    padding: 0;
    border-radius: 0;
}

.woocommerce-checkout #payment > ul.payment_methods {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 0;
    margin: 0 0 16px;
    list-style: none;
}

.woocommerce-checkout #payment > ul.payment_methods::after,
.woocommerce-checkout #payment > ul.payment_methods::before {
    display: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
    margin: 0;
    list-style: none;
    background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:last-child {
    border-bottom: none;
}

.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
    width: 16px;
    height: 16px;
    accent-color: var(--red);
    margin-right: 10px;
    vertical-align: middle;
    cursor: pointer;
}

.woocommerce-checkout #payment ul.payment_methods li > label {
    font-family: var(--font);
    font-size: 12px;
    font-weight: 700;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    cursor: pointer;
    display: inline-block;
    vertical-align: middle;
    margin: 0;
}

.woocommerce-checkout #payment ul.payment_methods li img {
    max-height: 24px;
    width: auto;
    margin-left: 8px;
    vertical-align: middle;
    display: inline-block;
    float: none;
}

.woocommerce-checkout #payment ul.payment_methods li .payment_box {
    background: var(--gray-light) !important;
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 12px 14px;
    margin: 10px 0 0;
    font-size: 12px;
    font-family: var(--font);
    color: var(--gray-dark);
    line-height: 1.5;
    box-shadow: none;
}

.woocommerce-checkout #payment ul.payment_methods li .payment_box::before {
    display: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li .payment_box p {
    margin: 0 0 6px;
    font-size: 12px;
}

.woocommerce-checkout #payment ul.payment_methods li .payment_box p:last-child {
    margin: 0;
}

/* ── Términos y condiciones ── */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    margin: 14px 0 16px;
    padding: 14px 0 0;
    border-top: 1px dashed var(--border);
    font-family: var(--font);
}

.woocommerce-checkout .form-row.terms,
.woocommerce-checkout .form-row.validate-required {
    margin: 0;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text,
.woocommerce-checkout .form-row.terms label {
    font-size: 11px;
    color: var(--gray-dark);
    font-weight: 500;
    line-height: 1.5;
    cursor: pointer;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a {
    color: var(--red);
    font-weight: 700;
    text-decoration: none;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a:hover {
    text-decoration: underline;
}

.woocommerce-checkout input[name="terms"] {
    width: 14px;
    height: 14px;
    accent-color: var(--red);
    margin-right: 8px;
    vertical-align: middle;
    cursor: pointer;
}

/* ── Botón final: Realizar pedido ── */
.woocommerce-checkout #place_order {
    display: block;
    width: 100%;
    padding: 16px 20px !important;
    background: var(--red) !important;
    color: var(--white) !important;
    font-family: var(--font) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
    border: none !important;
    border-radius: 4px !important;
    cursor: pointer;
    transition: background 0.15s, transform 0.08s, box-shadow 0.15s;
    box-shadow: 0 2px 0 0 var(--red-dark) !important;
    margin-top: 6px;
    text-shadow: none;
}

.woocommerce-checkout #place_order:hover {
    background: var(--red-dark) !important;
}

.woocommerce-checkout #place_order:active {
    transform: translateY(1px);
    box-shadow: 0 1px 0 0 var(--red-dark) !important;
}

/* Overlay mientras procesa */
.woocommerce-checkout .blockUI.blockOverlay {
    background: rgba(255, 255, 255, 0.7) !important;
    opacity: 1 !important;
}

.woocommerce-checkout .blockUI.blockOverlay::before {
    border-top-color: var(--red) !important;
}

/* ── Notices de validación ── */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-notice {
    border-radius: 3px;
    padding: 12px 16px 12px 52px;
    font-family: var(--font);
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 16px;
    box-shadow: none;
}

.woocommerce-checkout .woocommerce-error {
    background: #fff5f5;
    border-top-color: var(--red) !important;
    color: var(--red-dark);
}

.woocommerce-checkout .woocommerce-error::before {
    color: var(--red);
}

.woocommerce-checkout .woocommerce-error li {
    list-style: none;
    margin: 0 0 4px;
}

.woocommerce-checkout .woocommerce-message {
    border-top-color: var(--green) !important;
    background: #f3faf4;
    color: var(--gray-dark);
}

/* ── Responsive ── */
@media (max-width: 980px) {
    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr;
        grid-template-areas:
            "notices"
            "customer"
            "review-head"
            "review";
        row-gap: 20px;
    }

    .woocommerce-checkout #order_review {
        position: static !important;
    }

    .woocommerce-checkout #order_review_heading {
        margin-top: 8px;
    }
}

@media (max-width: 640px) {
    .woocommerce-checkout .mnl-checkout-steps {
        padding: 10px 14px;
        gap: 8px;
    }

    .woocommerce-checkout .mnl-step-label {
        font-size: 10px;
        letter-spacing: 0.5px;
    }

    .woocommerce-checkout .mnl-step-num {
        width: 22px;
        height: 22px;
        font-size: 9px;
    }

    .woocommerce-checkout .mnl-step-sep {
        min-width: 10px;
    }

    .woocommerce-checkout .woocommerce-billing-fields,
    .woocommerce-checkout .woocommerce-shipping-fields,
    .woocommerce-checkout .woocommerce-additional-fields {
        padding: 20px 16px 16px;
    }

    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
        grid-template-columns: 1fr;
    }

    .woocommerce-checkout #order_review {
        padding: 16px;
    }

    .woocommerce-checkout form.checkout_coupon {
        padding: 12px;
    }
}

@media (max-width: 420px) {
    .woocommerce-checkout .mnl-step-label {
        display: none;
    }

    .woocommerce-checkout .mnl-step-sep {
        flex: 1 1 auto;
    }
}

/* =============================================
   CHECKOUT — Wizard de 3 pasos (Envío / Facturación / Pago)
   ============================================= */

/* ── Barra top: navegación entre pasos (clickeable) ── */
.woocommerce-checkout .mnl-wizard-nav .mnl-step-link {
    display: flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    padding: 2px 0;
    transition: color 0.15s;
}

.woocommerce-checkout .mnl-wizard-nav .mnl-step:not(.mnl-step--done):not(.mnl-step--current) .mnl-step-link {
    cursor: not-allowed;
    opacity: 0.6;
}

.woocommerce-checkout .mnl-wizard-nav .mnl-step--done .mnl-step-link:hover {
    color: var(--red);
}

/* ── Esconder la sección shipping (no la usamos en este flujo) ── */
.woocommerce-checkout .woocommerce-shipping-fields {
    display: none !important;
}

/* Esconder los headings default de cada sección: la barra superior ya indica el paso */
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
    display: none;
}

/* Spacing ajustado para las cards cuando no tienen h3 propio */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields {
    padding: 22px 24px;
}

/* ── Ocultar cards según paso activo ──
   billing-fields tiene contenido en pasos 1 y 2; vacía en 3.
   additional-fields sólo aplica a paso 1 (ya tiene data-step=1 vía JS). */
.woocommerce-checkout form.checkout[data-active-step="3"] .woocommerce-billing-fields {
    display: none !important;
}

/* ── Core: mostrar/ocultar filas según paso activo ──
   Por default todo está visible. Al marcar data-active-step en el form,
   ocultamos las filas que no corresponden. */
.woocommerce-checkout form.checkout[data-active-step="1"] [data-step]:not([data-step="1"]),
.woocommerce-checkout form.checkout[data-active-step="2"] [data-step]:not([data-step="2"]),
.woocommerce-checkout form.checkout[data-active-step="3"] [data-step]:not([data-step="3"]) {
    display: none !important;
}

/* ── Paso 3 panel (resumen + hint) ── card propia ── */
.woocommerce-checkout .mnl-step-3-panel {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 22px 24px;
    margin: 0;
}

.woocommerce-checkout .mnl-step-3-summary {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0 0 18px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 4px;
    overflow: hidden;
    background: var(--gray-light);
}

.woocommerce-checkout .mnl-sum-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
    font-family: var(--font);
    font-size: 12px;
    line-height: 1.4;
    align-items: baseline;
}

.woocommerce-checkout .mnl-sum-row:last-child {
    border-bottom: none;
}

.woocommerce-checkout .mnl-sum-lbl {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--gray-mid);
}

.woocommerce-checkout .mnl-sum-val {
    font-weight: 600;
    color: var(--black);
    word-break: break-word;
}

.woocommerce-checkout .mnl-step-3-hint {
    padding: 14px 16px;
    background: var(--gray-light);
    border-left: 3px solid var(--red);
    border-radius: 3px;
    font-family: var(--font);
    font-size: 12px;
    color: var(--gray-dark);
    margin: 0;
}

.woocommerce-checkout .mnl-step-3-hint strong {
    color: var(--black);
}

/* ── Cupón dentro del panel Tu pedido ── */
.woocommerce-checkout .mnl-order-coupon {
    margin: 14px 0 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--border);
}

.woocommerce-checkout .mnl-coupon-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 4px 0;
    background: none !important;
    border: none !important;
    color: var(--black);
    font-family: var(--font);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    cursor: pointer;
    text-align: left;
    box-shadow: none !important;
}

.woocommerce-checkout .mnl-coupon-toggle:hover {
    color: var(--red);
}

.woocommerce-checkout .mnl-coupon-icon {
    display: inline-flex;
    color: var(--red);
    flex-shrink: 0;
}

.woocommerce-checkout .mnl-coupon-toggle-text {
    flex: 1;
    min-width: 0;
}

.woocommerce-checkout .mnl-coupon-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 1px solid var(--border);
    border-radius: 50%;
    font-size: 14px;
    line-height: 1;
    color: var(--gray-mid);
    transition: transform 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.woocommerce-checkout .mnl-coupon-toggle.is-expanded .mnl-coupon-caret {
    transform: rotate(45deg);
    color: var(--red);
    border-color: var(--red);
}

.woocommerce-checkout form.mnl-coupon-form {
    margin: 10px 0 0;
    padding: 0;
    background: transparent !important;
    border: none !important;
    display: block;
}

.woocommerce-checkout .mnl-coupon-input-row {
    display: flex;
    gap: 8px;
}

.woocommerce-checkout .mnl-coupon-input-row input[name="coupon_code"] {
    flex: 1 1 auto;
    min-width: 0;
    height: 36px !important;
    line-height: 36px;
    font-size: 12px;
    padding: 0 10px !important;
    border: 1px solid var(--border) !important;
    border-radius: 3px !important;
    background: var(--white);
    box-shadow: none !important;
    outline: none;
    font-family: var(--font);
}

.woocommerce-checkout .mnl-coupon-input-row input[name="coupon_code"]:focus {
    border-color: var(--red) !important;
}

.woocommerce-checkout .mnl-coupon-input-row button[name="apply_coupon"] {
    height: 36px !important;
    padding: 0 16px !important;
    background: var(--black) !important;
    color: var(--white) !important;
    font-size: 11px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border: none !important;
    border-radius: 3px !important;
    cursor: pointer;
    font-family: var(--font);
    box-shadow: none !important;
    flex-shrink: 0;
}

.woocommerce-checkout .mnl-coupon-input-row button[name="apply_coupon"]:hover {
    background: var(--red) !important;
}

/* ── Errores inline: texto rojo debajo, sin box ── */
.woocommerce-checkout .form-row .mnl-field-error {
    display: block;
    margin-top: 5px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    font-family: var(--font);
    font-size: 11px;
    font-weight: 600;
    color: var(--red);
    letter-spacing: 0.1px;
}

/* Input inválido: solo borde rojo (sin fondo rosado, sin glow) */
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid textarea,
.woocommerce-checkout .form-row.woocommerce-invalid select,
.woocommerce-checkout .form-row.woocommerce-invalid .select2-container .select2-selection--single {
    border-color: var(--red) !important;
    background: var(--white) !important;
    box-shadow: none !important;
}

/* Label del campo inválido también se tiñe de rojo para remarcar */
.woocommerce-checkout .form-row.woocommerce-invalid > label {
    color: var(--red);
}

/* ── Botones del wizard (Atrás / Siguiente) ── */
.woocommerce-checkout .mnl-wizard-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding-top: 18px;
    border-top: 1px dashed var(--border);
}

.woocommerce-checkout .mnl-wizard-back,
.woocommerce-checkout .mnl-wizard-next {
    font-family: var(--font);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 12px 22px;
    border-radius: 3px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.08s;
    border: 1px solid transparent;
    outline: none;
}

.woocommerce-checkout .mnl-wizard-back {
    background: transparent;
    color: var(--gray-mid);
    border-color: var(--border);
}

.woocommerce-checkout .mnl-wizard-back:hover {
    color: var(--black);
    border-color: var(--black);
}

.woocommerce-checkout .mnl-wizard-next {
    background: var(--red);
    color: var(--white);
    border-color: var(--red);
    box-shadow: 0 2px 0 0 var(--red-dark);
    margin-left: auto;
}

.woocommerce-checkout .mnl-wizard-next:hover {
    background: var(--red-dark);
    border-color: var(--red-dark);
}

.woocommerce-checkout .mnl-wizard-next:active {
    transform: translateY(1px);
    box-shadow: 0 1px 0 0 var(--red-dark);
}

/* Si no hay Atrás (paso 1), Siguiente queda a la derecha */
.woocommerce-checkout .mnl-wizard-controls .mnl-wizard-back[style*="display: none"] + .mnl-wizard-next,
.woocommerce-checkout .mnl-wizard-controls .mnl-wizard-next:only-child {
    margin-left: auto;
}

/* ── En paso 3, ocultamos la botonera Atrás/Siguiente y mostramos
   el #place_order que ya está en el panel derecho.
   También ocultamos #payment/terms en pasos 1-2. ── */
.woocommerce-checkout form.checkout:not([data-active-step="3"]) #payment,
.woocommerce-checkout form.checkout:not([data-active-step="3"]) .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout form.checkout:not([data-active-step="3"]) #place_order {
    display: none !important;
}

/* En paso 3, agregamos un botón "Atrás" en el panel derecho también, cerca del place_order */
.woocommerce-checkout form.checkout[data-active-step="3"] .mnl-wizard-controls {
    justify-content: flex-start;
    border-top: none;
    margin-top: 16px;
    padding-top: 0;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .woocommerce-checkout .mnl-sum-row {
        grid-template-columns: 90px 1fr;
        font-size: 11px;
        padding: 8px 12px;
    }
    .woocommerce-checkout .mnl-wizard-back,
    .woocommerce-checkout .mnl-wizard-next {
        padding: 10px 16px;
        font-size: 11px;
    }
    .woocommerce-checkout .mnl-wizard-controls {
        flex-wrap: wrap;
    }
}

/* =============================================
   FOOTER
   ============================================= */
.site-footer {
    background: var(--black);
    color: #999;
    border-top: 3px solid var(--red);
}

.site-footer a {
    color: #ccc;
}

.site-footer a:hover {
    color: var(--red);
}

/* =============================================
   MENÚ MOBILE — botón hamburguesa
   ============================================= */

.mnl-menu-toggle {
    display: none; /* Oculto en desktop */
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    color: var(--white);
    font-family: var(--font-nav);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    padding: 12px 0;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    -webkit-appearance: none;
}

.mnl-menu-toggle:focus,
.mnl-menu-toggle:active,
.mnl-menu-toggle:hover {
    background: none;
    outline: none;
    color: var(--white);
    box-shadow: none;
}

.mnl-menu-toggle svg {
    width: 22px;
    height: 22px;
    stroke: var(--white);
}

/* =============================================
   RESPONSIVE
   Regla: NUNCA tocar estilos desktop desde aquí.
   Solo sobreescribir lo necesario para cada breakpoint.
   ============================================= */

/* ── Tablet (≤ 1024px) ── */
@media (max-width: 1024px) {
    .mnl-topbar-inner {
        padding: 0 16px;
        gap: 12px;
    }

    .mnl-logo img {
        height: 70px;
    }

    .mnl-search-input {
        width: 180px;
    }

    .mnl-cart-total {
        display: none;
    }

    .mnl-navbar-inner {
        padding: 0 16px;
    }

    ul.mnl-nav-menu > li > a {
        font-size: 12.5px;
        padding: 14px 8px;
    }
}

/* ── Móvil (≤ 768px) ── */
@media (max-width: 768px) {

    /* Topbar compacto: logo + search flexible + cart, todo en una fila */
    .mnl-topbar-inner {
        padding: 6px 12px;
        gap: 8px;
    }

    .mnl-logo img {
        height: 44px;
    }

    /* Search se expande al espacio disponible en mobile */
    .mnl-topbar-right {
        flex: 1 1 auto;
        min-width: 0;
        height: 36px;
    }

    .mnl-topbar-right > *,
    .mnl-topbar-right .mnl-search-form {
        height: 36px !important;
    }

    .mnl-search-form {
        flex: 1 1 auto;
        min-width: 0;
    }

    .mnl-search-input {
        width: 100%;
        min-width: 0;
        height: 36px;
        font-size: 12px;
        padding: 0 10px;
    }

    .mnl-search-btn {
        height: 36px;
        width: 36px;
    }

    .mnl-cart-btn {
        height: 36px;
        padding: 0 8px;
        gap: 4px;
        flex-shrink: 0;
    }

    .mnl-cart-total {
        display: none;
    }

    .mnl-cart-count {
        min-width: 18px;
        height: 18px;
        font-size: 10px;
    }

    .mnl-cart-btn svg {
        width: 16px;
        height: 16px;
    }

    /* Nav: mostrar hamburguesa, ocultar menú */
    .mnl-menu-toggle {
        display: flex;
        width: 100%;
    }

    .mnl-navbar-inner {
        padding: 0 12px;
        display: flex;
        flex-wrap: wrap;
    }

    /* Menú oculto en mobile hasta que se abra */
    ul.mnl-nav-menu:not(.mnl-open) {
        display: none;
    }

    ul.mnl-nav-menu.mnl-open {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    ul.mnl-nav-menu > li > a {
        padding: 14px 12px;
        border-bottom: 1px solid rgba(255,255,255,0.1);
        font-size: 14px;
        color: rgba(255,255,255,0.85);
    }

    ul.mnl-nav-menu > li.current-menu-item > a {
        color: var(--red);
        box-shadow: none;
        border-left: 3px solid var(--red);
    }

    ul.mnl-nav-menu > li:last-child > a {
        border-bottom: none;
    }

    ul.mnl-nav-menu > li::after {
        display: none;
    }

    /* Producto individual */
    .single-product .product_title {
        font-size: 17px;
    }

    .single-product .price {
        font-size: 22px !important;
    }

    .single-product .single_add_to_cart_button {
        font-size: 13px !important;
        padding: 10px 16px !important;
    }
}

/* ── Móvil pequeño (≤ 480px) ── */
@media (max-width: 480px) {
    .mnl-topbar-inner {
        padding: 4px 8px;
    }

    .mnl-logo img {
        height: 36px;
    }

    .mnl-search-input {
        font-size: 11px;
        padding: 0 8px;
    }
}

/* ── Móvil pequeño (≤ 480px) ── */
@media (max-width: 480px) {
    .mnl-topbar-inner {
        padding: 8px 12px;
    }

    .mnl-logo img {
        height: 48px;
    }

    .mnl-search-input {
        font-size: 12px;
    }

    .mnl-navbar-inner {
        padding: 0 12px;
    }
}
