/*
 * MrNiceVIP v5 · piel oscura de toda la tienda.
 *
 * Acompaña a la portada de temporada (módulo mnvportada): mismo fondo, tipografía y color de compra
 * en cabecera, catálogo, ficha, carrito, pedido, cuenta y pie. Se carga después del resto de hojas del tema;
 * vaciar este archivo devuelve el aspecto anterior.
 */

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/montserrat-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --mnv-negro: #050505;
    --mnv-tarjeta: #101010;
    --mnv-superficie: #1a1a1a;
    --mnv-linea: #2b2b2b;
    --mnv-linea-suave: #1f1f1f;
    --mnv-texto: #ffffff;
    --mnv-texto-1: #e6e6e6;
    --mnv-texto-2: #b8b8b8;
    --mnv-texto-3: #8c8c8c;
    --mnv-verde: #1dbf6a;
    --mnv-verde-claro: #36d47f;
    --mnv-verde-tinta: #082c18;
    --mnv-ambar: #f7b477;
    --mnv-menta: #a3ddb8;
    --mnv-rojo: #ff8a80;
    --mnv-fuente: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    color-scheme: dark;
}

/* Base ----------------------------------------------------------------- */

body,
#main-page-content,
#wrapper {
    background: var(--mnv-negro);
    color: var(--mnv-texto-1);
}
body,
.btn, .form-control, .custom-select, input, select, textarea, button,
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.cbp-hrmenu, .dropdown-menu, .modal, .tooltip, .popover {
    font-family: var(--mnv-fuente);
}
body { -webkit-font-smoothing: antialiased; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.page-title, .section-title, .block-title, .card-title, .modal-title, legend, label, dt, th { color: var(--mnv-texto); }
p, li, dd, td, small, .text-muted, .form-text { color: inherit; }
.text-muted, .form-text, small.text-muted, .product-reference, .product-category-name { color: var(--mnv-texto-3) !important; }
hr { border-color: var(--mnv-linea); }
/* El editor del tema fija el color de los enlaces con esta forma de selector; se repite para sustituirlo.
   Cada zona elige su color con --mnv-enlace en lugar de competir en especificidad. */
a:link:not(.nav-link):not(.btn), a:visited:not(.nav-link):not(.btn) { color: var(--mnv-enlace, var(--mnv-texto)); }
a:hover:not(.nav-link):not(.btn), a:focus:not(.nav-link):not(.btn) { color: var(--mnv-enlace-activo, var(--mnv-verde-claro)); }
::selection { background: var(--mnv-verde); color: var(--mnv-verde-tinta); }
:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.page-title, h1.h1, .page-header h1 {
    font-weight: 800; letter-spacing: 0; text-transform: uppercase;
}
.page-title span, .section-title span, .block-title span { background: none; }
.section-title, .block-title { border-color: var(--mnv-linea); }

/* Cabecera ------------------------------------------------------------- */

#header,
#checkout-header {
    background: linear-gradient(#1a1a1a, #0a0a0a);
    border-bottom: 1px solid #2a2a2a;
    box-shadow: none;
}
#header .header-nav {
    padding-top: .3rem; padding-bottom: .3rem;
    background: transparent; border-bottom: 1px solid var(--mnv-linea-suave);
    color: var(--mnv-texto-2); font-size: 12px;
}
#header .header-nav a,
#header .header-nav .expand-more,
#header .header-nav .language-selector-wrapper,
#header .header-nav .currency-selector-wrapper { color: var(--mnv-texto-2); font-weight: 600 !important; }
#header .header-nav a:hover { color: #fff; }
#header .header-nav .block-links-inline li + li,
#header .header-nav .block-iqitlinksmanager li + li { border-color: var(--mnv-linea); }

.header-top { padding-top: .9rem; padding-bottom: .9rem; color: #fff; }
.header-top a:not(.btn):not(.nav-link),
.header-top .header-btn-w .header-btn { color: #fff; }
.header-top a:not(.btn):not(.nav-link):hover,
.header-top .header-btn-w .header-btn:hover { color: var(--mnv-verde-claro); }
#desktop_logo img, #mobile-header .logo, .mobile-main-bar img.logo { max-height: 46px; width: auto; }
.header-top .header-btn-w .header-btn > .icon { font-size: 1.25rem; }
.header-top .header-btn-w .header-btn .title,
.header-top .header-btn-w .header-btn > span { font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.header-top .cart-products-count-btn,
#mobile-header .cart-products-count-btn,
.cart-products-count-btn {
    background: var(--mnv-verde); color: var(--mnv-verde-tinta); font-weight: 800;
}

/* El menú ya no necesita extenderse fuera de la página para pintar su fondo. */
#iqitmegamenu-horizontal {
    margin: 0; padding: 0; background: transparent;
    border: 0; border-top: 1px solid var(--mnv-linea-suave);
}
.iqit-megamenu-container { max-width: none; width: 100%; }
.cbp-hrmenu > ul { text-align: center; }
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a,
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > span.cbp-main-link,
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a .cbp-tab-title {
    color: #9a9a9a; font-size: 13px; font-weight: 600; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase;
}
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a,
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > span.cbp-main-link {
    padding: 14px; border: 0; background: transparent;
}
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a .cbp-tab-title > i,
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a .cbp-tab-title .icon,
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a .cbp-tab-title img { display: none; }
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a:hover .cbp-tab-title,
#iqitmegamenu-horizontal .cbp-hrmenu > ul > li.cbp-hropen > a .cbp-tab-title { color: #fff; }

/* Con la cabecera de escritorio (desde 992 px) el menú comparte fila con el logotipo y las acciones. */
@media (min-width: 992px) {
    #desktop-header { position: relative; }
    #desktop-header .iqit-megamenu-container {
        position: absolute !important; top: 0; bottom: 0; left: 50%; transform: translateX(-50%);
        display: flex; align-items: center; width: auto; padding: 0; pointer-events: none;
    }
    #desktop-header .iqit-megamenu-container > * { pointer-events: auto; }
    #desktop-header .container-iqitmegamenu { width: auto; padding: 0; }
    #iqitmegamenu-horizontal { border-top: 0; }
    #iqitmegamenu-horizontal .cbp-hrmenu > ul { white-space: nowrap; }
}
/* Entre 992 y 1199 px (tablet en horizontal, ventanas estrechas) todo se aprieta para caber en esa fila. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    #desktop_logo img { max-height: 36px; }
    #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a,
    #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > span.cbp-main-link { padding: 14px 6px; }
    #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a .cbp-tab-title { font-size: 12px; letter-spacing: .04em; }
    #header .header-top .header-btn-w .header-btn .title { display: none; }
    #header .header-top .header-btn-w .header-btn { min-width: 44px; text-align: center; }
}
.cbp-hrmenu > ul > li > a:hover,
.cbp-hrmenu > ul > li.cbp-hropen > a,
.cbp-hrmenu > ul > li.cbp-hropen > a:hover,
.cbp-hrmenu > ul > li.cbp-hrmenu-tab.active > a { color: #fff; background: transparent; }
.cbp-hrmenu .cbp-hrsub-inner,
.cbp-hrmenu .cbp-hrsub,
.cbp-hrmenu .cbp-triangle-top { background: var(--mnv-tarjeta); border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
.cbp-hrmenu .cbp-hrsub-inner { --mnv-enlace: var(--mnv-texto-1); }

/* Cabecera fija al desplazarse */
.sticky-desktop-wrapper #desktop-header.stuck-header,
#mobile-header-sticky.stuck-down,
#mobile-header-sticky.stuck-up.visible-stuck-up,
#iqitmegamenu-wrapper.stuck-menu {
    background: rgba(10, 10, 10, .92); border-bottom: 1px solid #2a2a2a; box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}

/* Cabecera móvil */
#mobile-header,
#mobile-header .mobile-main-bar,
#mobile-header .mobile-bottom-bar { background: transparent; color: #fff; border-color: var(--mnv-linea-suave); }
#mobile-header .m-nav-btn,
#mobile-header .m-nav-btn > i,
#mobile-header a:not(.btn) { color: #fff; }
#mobile-header .m-nav-btn > span { color: var(--mnv-texto-2); font-size: 10px; font-weight: 600; letter-spacing: .04em; }
#mobile-header .mobile-menu,
#_mobile_iqitmegamenu-mobile,
#iqitmegamenu-mobile,
.cbp-mobilesubmenu,
.mobile-menu__content,
#mobile-header .dropdown-menu { background: var(--mnv-tarjeta); color: var(--mnv-texto-1); border-color: var(--mnv-linea); }
#iqitmegamenu-mobile li > a,
.mobile-menu__link,
#iqitmegamenu-mobile .mm-expand,
.mobile-menu__content a { color: var(--mnv-texto-1); border-color: var(--mnv-linea-suave); }
.mobile-menu__content, #mobile-header .dropdown-menu { --mnv-enlace: var(--mnv-texto-1); }
#iqitmegamenu-mobile li { border-color: var(--mnv-linea-suave); }

/* Buscador desplegable y menús */
.dropdown-menu,
#header .dropdown-menu,
.header-search-btn-drop,
#search_widget .dropdown-menu,
.autocomplete-suggestions {
    background: var(--mnv-tarjeta); border: 1px solid var(--mnv-linea); color: var(--mnv-texto-1);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .6);
}
.dropdown-menu, .autocomplete-suggestions { --mnv-enlace: var(--mnv-texto-1); --mnv-enlace-activo: #fff; }
.dropdown-item, .dropdown-menu li { color: var(--mnv-texto-1); }
.dropdown-item:hover, .dropdown-item:focus, .dropdown-menu a:hover { background: var(--mnv-superficie); color: #fff; }
.autocomplete-suggestion:hover, .autocomplete-selected { background: var(--mnv-superficie); }

/* Migas, títulos y bloques ---------------------------------------------- */

#wrapper .breadcrumb,
.breadcrumb { --mnv-enlace: var(--mnv-texto-3); --mnv-enlace-activo: #fff; background: transparent; color: var(--mnv-texto-3); }
.breadcrumb li, .breadcrumb .breadcrumb-item { color: var(--mnv-texto-3); }
#wrapper #inner-wrapper { padding-bottom: 3rem; }

.card, .page-content.card, .page-footer, .block-section, .box, .page-customer-account #content,
.sidebar-block, .block-categories, #search_filters, .products-selection, .definition-list dl dd, .definition-list dl dt,
.cart-summary, .cart-container, .checkout-step, section.checkout-step, #js-checkout-summary, .order-confirmation-table,
#order-items, #order-details, .page-order-detail .box, .address, .addresses-footer, .order-line, .cart-item,
.product-tabs .tab-content, #product-details, .product-features, .product-accessories, .iqit-accordion .card,
.contact-form, #stores .store-item, .cms-box, .elementor-accordion .elementor-accordion-item,
.customization-modal .modal-content, .quickview .modal-content {
    background: var(--mnv-tarjeta); border-color: #222; color: var(--mnv-texto-1); box-shadow: none;
}
.card-header, .card-footer, .modal-header, .modal-footer, .card-block { background: transparent; border-color: var(--mnv-linea-suave); color: var(--mnv-texto); }
.card, .block-section, .cart-summary, .checkout-step, .page-content.card { border-radius: 16px; }

.list-group-item, .table, .table td, .table th, .table thead th, .table-bordered, .table-bordered td, .table-bordered th,
.nav-tabs, .nav-tabs .nav-link, .tab-content, dl, dt, dd { background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
.table thead th, th { color: var(--mnv-texto); }
.table-striped tbody tr:nth-of-type(odd) { background: rgba(255, 255, 255, .03); }
.nav-tabs .nav-link { color: var(--mnv-texto-2); font-weight: 600; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link:hover { background: transparent; border-color: transparent transparent var(--mnv-verde); color: #fff; }

/* Botones -------------------------------------------------------------- */

.btn { border-radius: 10px; font-weight: 700; letter-spacing: .04em; }
.btn-primary,
.btn-primary:not(:disabled):not(.disabled),
.btn-product-list,
button.btn-primary,
a.btn-primary {
    background: var(--mnv-verde); border-color: var(--mnv-verde); color: var(--mnv-verde-tinta);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):hover,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-product-list:hover {
    background: var(--mnv-verde-claro); border-color: var(--mnv-verde-claro); color: var(--mnv-verde-tinta); box-shadow: none;
}
.btn-primary.disabled, .btn-primary:disabled { background: #242424; border-color: #242424; color: #8c8c8c; opacity: 1; }
.btn-secondary, .btn-tertiary, .btn-default, .btn-outline-secondary, .btn-light,
.btn-secondary:not(:disabled):not(.disabled) {
    background: transparent; border: 1px solid rgba(255, 255, 255, .3); color: #fff;
}
.btn-secondary:hover, .btn-tertiary:hover, .btn-default:hover, .btn-outline-secondary:hover, .btn-light:hover,
.btn-secondary:not(:disabled):not(.disabled):hover {
    background: rgba(255, 255, 255, .08); border-color: #fff; color: #fff;
}
.btn-link { color: var(--mnv-texto-1); }
.btn-link:hover { color: var(--mnv-verde-claro); }
#back-to-top { background: #fff; color: #000; border-radius: 50%; }

/* Formularios ---------------------------------------------------------- */

.form-control, .custom-select, select.form-control, textarea.form-control, .input-group .form-control,
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="search"], input[type="date"], textarea, select,
.bootstrap-touchspin input.form-control, .input-group-text, .input-group-addon {
    background-color: #181818; border: 1px solid #3a3a3a; color: #fff; border-radius: 10px;
}
.form-control:focus, .custom-select:focus, input:focus, textarea:focus, select:focus {
    background-color: #1c1c1c; border-color: var(--mnv-verde); color: #fff; box-shadow: 0 0 0 3px rgba(29, 191, 106, .2);
}
.form-control::placeholder, input::placeholder, textarea::placeholder { color: #7d7d7d; opacity: 1; }
.form-control:disabled, .form-control[readonly] { background-color: #111; color: #8c8c8c; }
.form-control-label, .form-group label, label { color: var(--mnv-texto-1); }
.form-control-comment, .form-footer, .form-informations { color: var(--mnv-texto-3); }
.custom-checkbox input[type="checkbox"] + span,
.custom-radio { background: #151515; border-color: #555; }
.custom-checkbox input[type="checkbox"] + span .checkbox-checked { color: var(--mnv-verde); }
.custom-radio input[type="radio"]:checked + span { background-color: var(--mnv-verde); }
.bootstrap-touchspin .btn-touchspin, .bootstrap-touchspin .input-group-btn-vertical > .btn, .input-group-btn > .btn {
    background: #1f1f1f; border-color: #333; color: #fff;
}
.input-group .btn[data-action="show-password"] { background: #1f1f1f; border-color: #333; color: #fff; border-radius: 0 10px 10px 0; }

/* Catálogo ------------------------------------------------------------- */

.products-selection, #js-product-list-top, .products-sort-nb-dropdown, .view-switcher a { background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-2); }
.product-miniature .thumbnail-container,
.product-miniature .product-description,
.product-miniature { background: transparent; }
.product-miniature-default,
.product-miniature-grid {
    overflow: hidden; background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px;
    transition: border-color .15s;
}
.product-miniature-grid:hover { border-color: #3a3a3a; box-shadow: none; }
.product-miniature .product-description { padding: 14px 16px 16px; }
.product-miniature .product-title, .product-miniature .product-title a { font-weight: 700; text-transform: uppercase; }
/* El editor del tema corta el título a una línea; los nombres de entrada necesitan hasta tres. */
.product-miniature-grid .product-title {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; height: auto; margin: 4px 0 8px;
    overflow: hidden; color: #fff; font-size: 14px; line-height: 1.3;
}
.product-miniature .product-price { font-size: 18px; font-weight: 800; }
.product-miniature .product-price-and-shipping br + br { display: none; }
.product-miniature .product-category-name { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }

/* Sin filtros ni bloques, la columna lateral sólo deja un hueco: el listado ocupa todo el ancho. */
@supports selector(:has(*)) {
    #left-column:not(:has(.block, .facet, #search_filters, .block-categories)) { display: none; }
    /* :has() no se puede anidar: la misma condición se escribe desde el contenedor de las dos columnas. */
    :not(:has(> #left-column .block, > #left-column .facet, > #left-column #search_filters, > #left-column .block-categories)) > #content-wrapper.left-column { flex: 0 0 100%; max-width: 100%; }
    @media (min-width: 1200px) {
        :not(:has(> #left-column .block, > #left-column .facet, > #left-column #search_filters, > #left-column .block-categories)) > #content-wrapper.left-column .products > [class*="col-"] { flex: 0 0 25%; max-width: 25%; }
    }
}
.product-miniature .product-price, .product-price, .current-price, .product-prices .current-price span { color: #fff; }
.product-miniature .product-price-and-shipping span[style] { color: var(--mnv-texto-3); }
.product-miniature .product-functional-buttons { background: transparent; }
.product-miniature .product-functional-buttons a { color: #fff; }
.product-flag, .product-flags .product-flag { background: var(--mnv-ambar); color: #201204; font-weight: 800; }
.product-flag.out_of_stock, .product-flag.out-of-stock { background: #2a2a2a; color: #cfcfcf; }
.product-availability, .product-unavailable { color: var(--mnv-rojo); }
.product-available { color: var(--mnv-verde-claro); }
.pagination, .page-list { --mnv-enlace: var(--mnv-texto-1); --mnv-enlace-activo: #fff; }
.pagination .page-link, .pagination a, .page-list a, .page-list li { background: transparent; border-color: var(--mnv-linea); }
.pagination .current, .page-list .current, .pagination .page-item.active { --mnv-enlace: #000; --mnv-enlace-activo: #000; }
.pagination .current a, .page-list .current a, .pagination .page-item.active .page-link { background: #fff; border-color: #fff; }
.category-description, #category-description, .category-cover { color: var(--mnv-texto-2); }
.block-categories, #search_filters { --mnv-enlace: var(--mnv-texto-1); }
.facet-title { color: var(--mnv-texto-1); }

/* Ficha de producto ------------------------------------------------------ */

#main-product-wrapper, .product-info-row, .product_header_container, .product-information { color: var(--mnv-texto-1); }
.product_header_container .page-title, h1.page-title { text-transform: uppercase; }
.product-prices .current-price, .product-prices .product-price { color: #fff; font-weight: 800; }
.product-prices, .product-prices div, .product-prices span { color: var(--mnv-texto-1); }
.product-description, .product-description-short, .rte-content, .rte, .cms-content, #content.page-cms {
    color: var(--mnv-texto-1);
}
/* Páginas de contenido: ancho de lectura cómodo en pantallas grandes. */
body#cms #content.page-cms, body#cms .page-content.page-cms { max-width: 880px; margin-left: auto; margin-right: auto; }
/* Los textos pegados desde el editor traen colores pensados para fondo blanco. */
.rte-content [style*="color: #000"], .rte-content [style*="color:#000"], .rte-content [style*="color: black"],
.rte-content [style*="color: rgb(0, 0, 0)"], .rte-content [style*="color: #333"], .rte-content [style*="color:#333"],
.rte-content [style*="color: #222"], .rte-content [style*="color: #111"], .rte-content [style*="color: rgb(51, 51, 51)"],
.rte-content [style*="color: rgb(34, 34, 34)"], .rte-content [style*="color: rgb(33, 37, 41)"],
.product-description [style*="color: #000"], .product-description [style*="color: rgb(0, 0, 0)"],
.product-description-short [style*="color: #000"], .product-description-short [style*="color: rgb(0, 0, 0)"],
.cms-content [style*="color: #000"], .cms-content [style*="color: rgb(0, 0, 0)"] { color: inherit !important; }
.rte-content [style*="background"], .product-description [style*="background-color"], .cms-content [style*="background-color"] { background: transparent !important; }
.rte-content, .product-information .product-description, .cms-content, #content.page-cms { --mnv-enlace: var(--mnv-verde-claro); --mnv-enlace-activo: #fff; }
.rte-content a, .product-information .product-description a, .cms-content a { text-decoration: underline; }
.rte-content table td, .rte-content table th { border-color: var(--mnv-linea); }

.product-add-to-cart .add-to-cart,
.product-add-to-cart .btn-primary {
    min-height: 54px; padding-left: 2rem; padding-right: 2rem; border-radius: 12px;
    font-size: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.product-quantity .qty .input-group, .product-quantity .bootstrap-touchspin { border-radius: 12px; }
/* Bloque de compra de la ficha: la misma tarjeta que las entradas de la portada. */
#product #add-to-cart-or-refresh {
    max-width: 560px; margin: 8px auto 22px; padding: 20px 24px 24px;
    background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px;
}
#product #add-to-cart-or-refresh .product_p_price_container { padding-top: 0; border-top: 0; }
#product .product-add-to-cart { margin-bottom: 0; padding-bottom: 0; }
#product .product-add-to-cart .product-quantity { flex-wrap: nowrap; justify-content: center; margin-bottom: 0; }
#product .product-add-to-cart .product-quantity > .col { margin-bottom: 0; padding-bottom: 0; }
/* Cantidad y botón comparten fila también en móvil, donde el tema los apila a todo el ancho. */
#product .product-add-to-cart .col-add-qty { flex: 0 0 auto; width: auto; max-width: none; }
#product .product-add-to-cart .col-add-qty .qty { width: 84px; }
#product .product-add-to-cart .col-add-btn { flex: 1 1 auto; width: auto; min-width: 0; max-width: none; }
#product .product-add-to-cart .add,
#product .product-add-to-cart .add-to-cart { width: 100%; }
#product #add-to-cart-or-refresh > .product-discounts { margin-bottom: 0 !important; }
/* Precio: manda la cifra; la referencia y el desglose de gastos, en segundo plano. */
#product .product-prices .product-reference { margin-bottom: 2px; color: var(--mnv-texto-3); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
#product .product-prices .product-reference .label { margin: 0; color: inherit; font-size: inherit; }
#product .product-prices .current-price-value { font-size: 32px; font-weight: 800; line-height: 1.15; }
#product .product-prices .current-price > span[style] { display: inline-block; margin-top: 4px; color: var(--mnv-texto-2); font-size: 12px !important; font-weight: 500; line-height: 1.5; }
#product .product-prices .current-price > br ~ br { display: none; }
#product .product-prices .tax-shipping-delivery-label:empty { display: none; }

/* En móvil el cartel se reduce y el título se contiene: precio y botón quedan en la primera pantalla. */
@media (max-width: 767px) {
    #product .col-product-image .images-container { max-width: 200px; margin-left: auto; margin-right: auto; }
    #product #content-wrapper .product_header_container .page-title { font-size: 22px; line-height: 1.25; }
    #product #add-to-cart-or-refresh { padding: 14px 16px 18px; }
    #product .product-add-to-cart .add-to-cart { padding-left: .5rem; padding-right: .5rem; font-size: 13px; letter-spacing: .03em; white-space: nowrap; }
    #product .product-add-to-cart .add-to-cart > i { display: none; }
}

/* En pantallas anchas la ficha se alinea a la izquierda y la compra ocupa una fila: precio a un lado, botón al otro. */
@media (min-width: 992px) {
    #product .col-product-info { text-align: left; }
    #product #content-wrapper .product_header_container .page-title { text-align: left; }
    #product #add-to-cart-or-refresh {
        display: flex; flex-wrap: wrap; align-items: center; gap: 0 28px;
        max-width: none; margin-left: 0; margin-right: 0; padding: 22px 26px;
    }
    #product #add-to-cart-or-refresh > * { flex: 1 1 100%; }
    #product #add-to-cart-or-refresh > .product_p_price_container { flex: 1 1 260px; margin: 0; }
    #product #add-to-cart-or-refresh > .product-add-to-cart { flex: 0 0 auto; padding-top: 0 !important; }
    #product .product-add-to-cart .col-add-btn { flex: 0 0 auto; }
    #product .product-add-to-cart .add-to-cart { min-width: 250px; }
    #product .product-information > .mnv-descripcion__boton { align-self: flex-start; }
}
.product-additional-info, .product-manufacturer, .product-reference, .product-minimal-quantity { color: var(--mnv-texto-3); }
.product-cover, .product-cover img, .images-container .product-cover { background: var(--mnv-tarjeta); border-radius: 16px; }
.product-cover img { border-radius: 16px; }
.product-images > li.thumb-container > .thumb, .thumb.selected, .thumb { border-color: var(--mnv-linea); background: var(--mnv-tarjeta); }
.social-sharing, .product-additional-info { --mnv-enlace: var(--mnv-texto-2); }
/* Sin características que mostrar, el tema deja sólo el título del bloque. */
.product-details-section.empty-product-details { display: none; }

/* Carrito y pedido ------------------------------------------------------ */

.cart-grid, .cart-overview, .cart-items, .cart-item, .cart-detailed-totals, .cart-summary-line, .cart-summary-products,
.cart-summary-totals, .checkout .cart-summary-line, #cart-subtotal-products, .card-block.cart-summary-totals,
.cart-total, .cart-summary-line.cart-total, .block-promo, .promo-code, .promo-name, .cart-detailed-actions { background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
.cart-summary-line .value, .cart-summary-line .label, .cart-total .label, .cart-total .value { color: var(--mnv-texto); }
.cart-item .product-line-info a, .product-line-info a.label, .cart-item a.label { font-weight: 600; }
.cart-item .product-price, .product-line-grid .product-price strong { color: #fff; }
.cart-items-header, .cart-grid-body .card-block, .cart-container .card-block { border-color: var(--mnv-linea); color: var(--mnv-texto-2); }
.cart-summary .cart-detailed-actions .btn, .checkout .btn-primary, .cart-detailed-actions .btn-primary {
    min-height: 54px; border-radius: 12px; font-size: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.remove-from-cart { --mnv-enlace: var(--mnv-texto-2); --mnv-enlace-activo: var(--mnv-rojo); }
.remove-from-cart i { color: inherit; }
.no-items, .cart-overview .no-items { color: var(--mnv-texto-2); }
.cart-summary .block-promo, .cart-summary .cart-voucher, .block-promo .promo-code { background: transparent; }
.block-promo .cart-voucher-area { background: transparent; border-top: 1px solid var(--mnv-linea-suave); }

body#checkout section.checkout-step { background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px; box-shadow: none; }
body#checkout section.checkout-step .step-title { color: #fff; border-color: var(--mnv-linea-suave); font-weight: 800; text-transform: uppercase; }
body#checkout section.checkout-step { margin-bottom: 12px; }
body#checkout section.checkout-step .step-number {
    display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-right: 8px;
    border: 0; border-radius: 50%; background: #fff; color: #000; font-size: 13px; font-weight: 800; vertical-align: middle;
}
body#checkout section.checkout-step.-complete .step-number { background: var(--mnv-verde); color: var(--mnv-verde-tinta); }
body#checkout section.checkout-step:not(.-current):not(.-complete) .step-number { background: #2a2a2a; color: #9a9a9a; }
/* El medidor de contraseña trae sus colores en línea. */
#password-strength-meter { background: #2a2a2a !important; }
#strength-text { color: var(--mnv-texto-3) !important; }
body#checkout section.checkout-step .step-edit { color: var(--mnv-texto-2); }
body#checkout section.checkout-step .address-item,
body#checkout section.checkout-step .payment-options .payment-option,
body#checkout section.checkout-step .delivery-option,
body#checkout .additional-information, body#checkout .condition-label, body#checkout .js-payment-option-form {
    background: #151515; border-color: #2f2f2f; color: var(--mnv-texto-1);
}
body#checkout section.checkout-step .address-item.selected { border-color: var(--mnv-verde); }
body#checkout #conditions-to-approve, body#checkout .condition-label label, body#checkout .payment-options label { color: var(--mnv-texto-1); }
body#checkout .nav-inline .nav-link, body#checkout .nav-tabs .nav-link { color: var(--mnv-texto-2); }
body#checkout .nav-inline .nav-link.active { color: #fff; }
#checkout-header .logo, #checkout-header img { max-height: 46px; width: auto; }
body#order-confirmation #content-hook_order_confirmation, body#order-confirmation .card { background: var(--mnv-tarjeta); color: var(--mnv-texto-1); }

/* Cuenta ---------------------------------------------------------------- */

.page-my-account #content .links a,
.page-my-account #content .links a span.link-item {
    background: var(--mnv-tarjeta); border-color: #222; color: #fff; box-shadow: none; border-radius: 16px;
}
.page-my-account #content .links a:hover span.link-item,
.page-my-account #content .links a:hover i { color: var(--mnv-verde-claro); }
.page-my-account #content .links a i { color: var(--mnv-texto-2); }
.page-authentication #content, .page-customer-account #content, .page-addresses .address, .page-order-detail .box,
#history .orders .order, .login-form, .register-form, .forgotten-password { background: transparent; color: var(--mnv-texto-1); box-shadow: none; }
.page-footer, .my-account-links { --mnv-enlace: var(--mnv-texto-1); }
/* Acceso, registro y recuperación de contraseña: formulario centrado en una tarjeta. */
body#authentication #content, body#registration #content, body#password #content {
    max-width: 640px; margin: 0 auto; padding: 28px 28px 20px;
    background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px;
}
body#authentication #content .form-footer .btn, body#registration #content .form-footer .btn, body#password #content .form-footer .btn {
    width: 100%; min-height: 50px; border-radius: 12px; font-size: 14px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
body#authentication #content .no-account, body#authentication #content hr { border-color: var(--mnv-linea-suave); }
.label-pill, .badge { border-radius: 999px; }
/* Páginas de la cuenta que pintan otros módulos. Sus hojas fijan fondos blancos pensados para una tienda clara y,
   con el texto claro de la piel, quedaban ilegibles («Mis entradas», menú de afiliados). Esto las deja legibles
   también con el módulo mnvcuenta apagado; con él encendido, el aspecto lo decide su propia hoja. */
#module-selltickets-tickets .page-content { background: transparent; box-shadow: none; color: var(--mnv-texto-1); }
#module-selltickets-tickets .box-ticket { background: var(--mnv-superficie); color: var(--mnv-texto-1); }
#module-selltickets-tickets .ticket-qr { padding: 8px; background: #fff; border-radius: 10px; box-sizing: content-box; }
#module-selltickets-tickets .orders_mvl .row { border-color: var(--mnv-linea); }
#module-selltickets-tickets .dark, #module-selltickets-tickets .color-myaccount { color: inherit; }
.my-account-side-links a, .my-account-side-links a .link-item { background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
#myaffiliateaccount .nav-pills .nav-link { background: var(--mnv-tarjeta); border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
#myaffiliateaccount .nav-pills .nav-link.active { background: var(--mnv-superficie); color: #fff; box-shadow: inset 3px 0 0 var(--mnv-verde); }
#myaffiliateaccount .list-group-item { background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-1); }

/* Wallet (módulo wkcustomerwallet) ---------------------------------------- */

/* Saldo en la barra superior: una píldora discreta con el nombre y la cifra; el verde queda para el icono. */
#header .header-nav .mnv-wallet-pildora { display: inline-block; margin: 0 0 0 14px; padding: 0; vertical-align: middle; }
#header .header-nav .mnv-wallet-pildora a {
    display: inline-flex; align-items: center; gap: 7px; min-height: 26px; padding: 0 11px 0 9px;
    border: 1px solid var(--mnv-linea); border-radius: 999px; background: rgba(255, 255, 255, .04);
    color: var(--mnv-texto-2); line-height: 1; text-decoration: none; transition: background-color .15s, border-color .15s;
}
#header .header-nav .mnv-wallet-pildora a:hover { background: rgba(255, 255, 255, .09); border-color: #4a4a4a; color: #fff; }
#header .mnv-wallet-pildora svg { flex: none; color: var(--mnv-verde-claro); }
#header .mnv-wallet-pildora .wallet-total-amount {
    padding: 0; background: none; border-radius: 0; color: #fff; font-weight: 700; font-variant-numeric: tabular-nums;
}
/* En el pago: saldo al elegir «Pagar con Wallet», aviso de saldo insuficiente, y el paso sin los márgenes del módulo. */
body#checkout #checkout-payment-step { margin-top: 0 !important; margin-bottom: 12px !important; }
body#checkout #checkout-payment-step .step-number { margin-bottom: 0; }
body#checkout .wallet-info-amount { margin: 0 0 12px; color: var(--mnv-texto-1) !important; font-size: 15px !important; font-weight: 600; }
body#checkout .wk_wallet_box1 {
    margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--mnv-linea); border-radius: 12px;
    background: rgba(255, 255, 255, .04); color: var(--mnv-texto-2); font-size: 14px; line-height: 1.5; text-align: left;
}
body#checkout .wk_wallet_box1 p { margin: 0; }
body#checkout .wk_wallet_box1 a { --mnv-enlace: var(--mnv-verde-claro); font-weight: 700; }
/* Pago de una recarga: la página propia del módulo, con el aspecto del pedido y el importe a la vista. */
body#checkout .mnv-wallet-recarga-cabecera { margin-bottom: 28px; }
body#checkout .mnv-wallet-recarga-cabecera .text-muted { --mnv-enlace: var(--mnv-texto-2); font-size: 13px; }
body#checkout .mnv-wallet-recarga { max-width: 760px; margin: 0 auto; padding: 4px 0 56px; }
body#checkout .mnv-wallet-recarga .page-title { margin-bottom: 22px; text-align: center; }
.mnv-wallet-recarga__importe {
    display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 12px; padding: 18px 24px;
    background: linear-gradient(150deg, rgba(29, 191, 106, .16), rgba(29, 191, 106, .03) 58%), var(--mnv-tarjeta);
    border: 1px solid rgba(29, 191, 106, .3); border-radius: 16px;
}
.mnv-wallet-recarga__importe span { color: var(--mnv-texto-2); font-size: 14px; font-weight: 600; }
.mnv-wallet-recarga__importe strong { color: #fff; font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* La página del Wallet con el módulo mnvcuenta apagado: su tabla quedaba blanca bajo el texto claro de la piel. */
#module-wkcustomerwallet-customerwalletdetails .wk_wallet_content { background: var(--mnv-tarjeta); border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
#module-wkcustomerwallet-customerwalletdetails .wk_wallet_content .table,
#module-wkcustomerwallet-customerwalletdetails .wk_wallet_content .table th,
#module-wkcustomerwallet-customerwalletdetails .wk_wallet_content .table td { background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
#module-wkcustomerwallet-customerwalletdetails .wk_wallet_content .table th { color: var(--mnv-texto-3); }
#module-wkcustomerwallet-customerwalletdetails .wk_badge,
#module-wkcustomerwallet-customerwalletdetails .wk_status { color: #0b0c0d !important; font-weight: 700; }

/* Avisos, ventanas y carrito lateral ------------------------------------- */

.alert { border-radius: 12px; border: 1px solid transparent; }
.alert-info { background: rgba(120, 170, 255, .1); border-color: rgba(120, 170, 255, .3); color: #cfe0ff; }
.alert-warning { background: rgba(247, 180, 119, .1); border-color: rgba(247, 180, 119, .35); color: var(--mnv-ambar); }
.alert-danger { background: rgba(255, 110, 100, .1); border-color: rgba(255, 110, 100, .35); color: #ffb3ac; }
.alert-success { background: rgba(29, 191, 106, .12); border-color: rgba(29, 191, 106, .4); color: #9be8c0; }
.alert { --mnv-enlace: currentColor; --mnv-enlace-activo: #fff; }
.alert a { text-decoration: underline; }
.notifications-container .alert ul, .alert ul { margin-bottom: 0; }

.modal-content, #blockcart-modal .modal-content, .modal-body, .modal-dialog .modal-content {
    background: #111; border: 1px solid var(--mnv-linea); border-radius: 18px; color: var(--mnv-texto-1);
}
.modal-backdrop { background: #000; }
.modal-backdrop.show { opacity: .74; }
.modal .close, .close { color: #fff; text-shadow: none; opacity: .8; }
#blockcart-modal .modal-title, #blockcart-modal .cart-products-count, #blockcart-modal .product-name, #blockcart-modal .cart-content p { color: var(--mnv-texto); }
#blockcart-modal .divide-right { border-color: var(--mnv-linea); }

#blockcart-content, .blockcart-content, #_desktop_blockcart-content, .ps-shoppingcart.side-cart #blockcart-content {
    background: #0d0d0d; border-color: var(--mnv-linea); color: var(--mnv-texto-1);
}
#blockcart-content .cart-title, #blockcart-content .cart-title .modal-title, #blockcart-content .cart-totals, #blockcart-content .cart-subtotals,
#blockcart-content .cart-products > li, #blockcart-content a:not(.btn) { color: var(--mnv-texto-1); border-color: var(--mnv-linea); }
#blockcart-content a:not(.btn):hover { color: var(--mnv-verde-claro); }
#blockcart-content .cart-products::-webkit-scrollbar-thumb { background-color: #333; }

#iqitcookielaw, .iqitcookielaw, #iqitcookielaw.p-bottom {
    background: rgba(16, 16, 16, .96); border: 1px solid var(--mnv-linea); border-radius: 14px; color: var(--mnv-texto-1);
}
#iqitcookielaw #iqitcookielaw-accept, #iqitcookielaw .btn { background: var(--mnv-verde); border-color: var(--mnv-verde); color: var(--mnv-verde-tinta); }
.tooltip-inner { background: #fff; color: #000; }
.ns-box, .toast { background: #111; border: 1px solid var(--mnv-linea); color: #fff; border-radius: 12px; }

/* Al pasar el ratón, enfocar o pulsar -------------------------------------
   Bootstrap y varios módulos aclaran el fondo u oscurecen el texto en esos estados, pensando en una tienda clara:
   sobre la piel oscura el texto desaparecía (filas del resumen de afiliados, aspa del carrito lateral, botones del
   menú del móvil). Aquí resaltan con un velo claro y el texto conserva su color. */
.table-hover tbody tr:hover, .table-hover tbody tr:hover > td, .table-hover tbody tr:hover > th,
.table-active, .table-active > td, .table-active > th,
.table-secondary, .table-secondary > td, .table-secondary > th,
.table-light, .table-light > td, .table-light > th,
.table-dark, .table-dark > td, .table-dark > th { background-color: rgba(255, 255, 255, .05); color: var(--mnv-texto-1); }
.table-primary, .table-primary > td, .table-primary > th,
.table-info, .table-info > td, .table-info > th { background-color: rgba(120, 170, 255, .12); color: var(--mnv-texto-1); }
.table-success, .table-success > td, .table-success > th { background-color: rgba(29, 191, 106, .12); color: var(--mnv-texto-1); }
.table-warning, .table-warning > td, .table-warning > th { background-color: rgba(247, 180, 119, .12); color: var(--mnv-texto-1); }
.table-danger, .table-danger > td, .table-danger > th { background-color: rgba(255, 110, 100, .12); color: var(--mnv-texto-1); }
.table-hover .table-secondary:hover, .table-hover .table-secondary:hover > td, .table-hover .table-secondary:hover > th,
.table-hover .table-light:hover, .table-hover .table-light:hover > td, .table-hover .table-light:hover > th,
.table-hover .table-dark:hover, .table-hover .table-dark:hover > td, .table-hover .table-dark:hover > th { background-color: rgba(255, 255, 255, .09); }
.table-hover .table-primary:hover, .table-hover .table-primary:hover > td, .table-hover .table-primary:hover > th,
.table-hover .table-info:hover, .table-hover .table-info:hover > td, .table-hover .table-info:hover > th { background-color: rgba(120, 170, 255, .2); }
.table-hover .table-success:hover, .table-hover .table-success:hover > td, .table-hover .table-success:hover > th { background-color: rgba(29, 191, 106, .2); }
.table-hover .table-warning:hover, .table-hover .table-warning:hover > td, .table-hover .table-warning:hover > th { background-color: rgba(247, 180, 119, .2); }
.table-hover .table-danger:hover, .table-hover .table-danger:hover > td, .table-hover .table-danger:hover > th { background-color: rgba(255, 110, 100, .2); }
.list-group-item-action { color: var(--mnv-texto-1); }
.list-group-item.list-group-item-action[class]:hover, .list-group-item.list-group-item-action[class]:focus, .list-group-item.list-group-item-action[class]:active,
.list-group-hover .list-group-item:hover,
#myaffiliateaccount .list-group.list-group-hover .list-group-item:hover { background-color: rgba(255, 255, 255, .05); color: #fff; }
.close:hover, .close:focus, .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { color: #fff; opacity: 1; }
/* Botones sin variante (sólo «btn») y los del menú del móvil: Bootstrap les pone texto casi negro. */
.btn:not([class*="btn-"]):not(.mobile-menu__back-btn),
.btn:not([class*="btn-"]):not(.mobile-menu__back-btn):hover, .btn:not([class*="btn-"]):not(.mobile-menu__back-btn):focus { color: inherit; }
.btn.mobile-menu__close:hover, .btn.mobile-menu__close:focus, .btn.mobile-menu__close:active,
.btn.mobile-menu__back-btn:hover, .btn.mobile-menu__back-btn:focus, .btn.mobile-menu__back-btn:active { color: #fff; }
a.nav-link:hover, a.nav-link:focus { color: var(--mnv-enlace-activo, #fff); }
.alert.alert-danger a:not(.btn), .alert.alert-warning a:not(.btn), .alert.alert-info a:not(.btn), .alert.alert-success a:not(.btn) { color: inherit !important; }
.alert.alert-danger a:hover:not(.btn), .alert.alert-warning a:hover:not(.btn), .alert.alert-info a:hover:not(.btn), .alert.alert-success a:hover:not(.btn) { color: #fff !important; }

/* Colores del editor del tema ------------------------------------------------
   El editor (módulo iqitthemeeditor) escribe sus colores con selectores propios, varios con id o !important.
   Aquí se sustituye cada uno con la misma forma de selector; si se cambia un color en el editor, este bloque manda. */

#page-preloader { background: var(--mnv-negro); }
#checkout #wrapper { background: var(--mnv-negro); }
#checkout .card { background: var(--mnv-tarjeta); }
#checkout-footer { background: #0a0a0a; color: var(--mnv-texto-3); }
#checkout-footer a { color: var(--mnv-texto-2); }
#checkout-footer a:hover { color: #fff; }

#content-wrapper .page-title,
#content-wrapper .section-title,
#wrapper .block-title { color: var(--mnv-texto); border-bottom-color: var(--mnv-linea); font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
#content-wrapper .page-title a:link, #content-wrapper .page-title a:visited,
#content-wrapper .section-title a:link, #content-wrapper .section-title a:visited,
#wrapper .block-title a:link, #wrapper .block-title a:visited { color: var(--mnv-texto); }
#wrapper .breadcrumb a { color: var(--mnv-texto-3); }
#wrapper .breadcrumb a:hover { color: #fff; }
#wrapper .breadcrumb li::after { color: #555; }
#left-column .block, #right-column .block { border-color: var(--mnv-linea); }

.iqit-accordion .title a:link:not(.nav-link):not(.btn),
.iqit-accordion .title a:visited:not(.nav-link):not(.btn) { color: var(--mnv-texto); }
.iqit-accordion .nav-link:not(.collapsed),
.nav-tabs .nav-link.active, .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { color: #fff; border-bottom-color: var(--mnv-verde); }

.btn-primary.disabled:hover, .btn-primary:disabled:hover, .btn-primary.disabled:focus, .btn-primary:disabled:focus { background: #242424; border-color: #242424; color: #8c8c8c; }
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled, .btn-secondary.disabled, .btn-secondary:disabled { background: transparent; border: 1px solid rgba(255, 255, 255, .16); color: #8c8c8c; }
#back-to-top:hover { background: #dcdcdc; color: #000; }

.custom-select2, .custom-select2 option, .custom-select2:focus-within { background-color: #151515; color: #fff; }
.custom-select2::after { color: #fff; }
.custom-checkbox input[type="checkbox"] + span:not(.color), .custom-radio { background: #151515; border-color: #555; color: var(--mnv-verde); }
.custom-checkbox input[type="checkbox"] + span .checkbox-checked { color: var(--mnv-verde); }
.custom-radio input[type="radio"]:checked + span { background-color: var(--mnv-verde); }
.dropdown-menu .dropdown-item, .autocomplete-suggestions .dropdown-item { color: var(--mnv-texto-1) !important; border-bottom-color: var(--mnv-linea-suave); }
.dropdown-menu .dropdown-item:focus, .dropdown-menu .dropdown-item:hover,
.autocomplete-suggestions .dropdown-item:focus, .autocomplete-suggestions .dropdown-item:hover { background: var(--mnv-superficie); }
.header-top .form-search-control { border-color: #333; }
#checkout #login-form #field-email, #checkout #login-form #field-password { background-color: #151515 !important; border: 1px solid #333; }
#checkout #login-form .btn-outline-secondary { background: #1f1f1f; border-color: #333; color: #fff; }

.cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu ul.cbp-hrsub-level2 {
    background: var(--mnv-tarjeta); border: 1px solid var(--mnv-linea); box-shadow: 0 16px 40px rgba(0, 0, 0, .6);
}
.cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu .cbp-hrsub-inner a, .cbp-hrmenu .cbp-hrsub-inner a:link,
.cbp-hrmenu .cbp-tabs-names li a,
.cbp-hrmenu .cbp-hrsub-inner .cbp-column-title, .cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:link { color: var(--mnv-texto-1) !important; }
.cbp-hrmenu .cbp-hrsub-inner a:hover, .cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:hover,
.cbp-hrmenu .cbp-tabs-names li a:hover, .cbp-hrmenu .cbp-tabs-names li a.active { color: var(--mnv-verde-claro) !important; background: transparent; }
.cbp-hrmenu .tabs-links { background: #151515; }
#sticky-cart-wrapper a.header-cart-btn:not(:hover) { color: #fff; }

#mobile-header .mobile-buttons-bar { background: transparent; }
#mobile-header .m-nav-btn { border-color: transparent; }
#mobile-header .m-nav-btn:hover { background: rgba(255, 255, 255, .08); color: #fff; }
#mobile-header .col-mobile-menu-dropdown.show { background: #151515; }
.mobile-menu__submenu { background: var(--mnv-tarjeta); }
.mobile-menu__header-wrapper, .mobile-menu__footer { background-color: #151515; border-color: var(--mnv-linea); color: var(--mnv-texto-1); }
.mobile-menu__close, .mobile-menu__back-btn, .mobile-menu__column { color: var(--mnv-texto-1); }
.mobile-menu__column-title,
#iqitmegamenu-mobile li > ul.mobile-menu__submenu--accordion .mobile-menu__link { color: var(--mnv-texto-2) !important; }
.mobile-menu__legend { background-color: var(--mnv-verde); color: var(--mnv-verde-tinta); }

.product-available { background: rgba(29, 191, 106, .14); color: var(--mnv-verde-claro); }
.product-unavailable { background: rgba(255, 110, 100, .12); color: var(--mnv-rojo); }
.product-unavailable-allow-oosp { background: rgba(247, 180, 119, .12); color: var(--mnv-ambar); }
.product-miniature-grid .product-functional-buttons a:link,
.product-miniature-grid .product-functional-buttons a:visited,
.product-miniature-grid .product-functional-buttons a:hover { background: #1f1f1f; box-shadow: none; }
.swiper-button-next, .swiper-button-prev { background-color: rgba(0, 0, 0, .55) !important; color: #fff; }
.swiper-pagination-bullet { background: #fff; }
.images-container .swiper-button-arrow, #product .product-cover .expander > span,
#product-modal .modal-body .swiper-button-arrow { color: #fff; }
#search_filters .noUi-connect { background: var(--mnv-verde); }
.js-quickview-np-btn { background: #1f1f1f; color: #fff; }

/* Pie ------------------------------------------------------------------- */

#footer,
#footer .footer-container,
#footer #footer-container-main,
#footer #footer-copyrights,
#footer .footer-style-inline,
.footer-container {
    background: #0a0a0a; border-color: var(--mnv-linea-suave); color: var(--mnv-texto-3);
}
#footer { border-top: 1px solid var(--mnv-linea-suave); }
#footer a, #footer .block-links a, #footer li a { color: var(--mnv-texto-2); }
#footer a:hover { color: #fff; }
#footer h5, #footer .block-title, #footer .footer-title, #footer .h5 { color: #fff; border-color: var(--mnv-linea); }
#footer .social-links a, #footer .social-links i { color: var(--mnv-texto-2); }
#footer p, #footer span, #footer li { color: inherit; }
#footer .block, #footer .contact-rich { background: transparent; border: 0; }
#footer #footer-container-main { padding-top: 0; }
#footer #footer-container-main > .container { padding-top: 36px; border-top: 0; }
#footer #footer-copyrights { padding-top: 6px; padding-bottom: 28px; }

/* Elementor: bloques de contenido creados con fondo claro ------------------ */

#content .elementor-section, .elementor-section .elementor-column-wrap, .elementor-widget-container { color: inherit; }
.elementor-widget-text-editor, .elementor-text-editor, .elementor-widget-heading .elementor-heading-title { color: inherit; }
.elementor-accordion .elementor-tab-title, .elementor-accordion .elementor-tab-content,
.elementor-toggle .elementor-tab-title, .elementor-toggle .elementor-tab-content {
    background: transparent; border-color: var(--mnv-linea); color: var(--mnv-texto-1);
}

/* Móvil y tablet ------------------------------------------------------------ */

/* Un fragmento de seguimiento deja un párrafo vacío al principio de la página y la baja 11 px. */
body > p:first-child { margin: 0; }

@media (max-width: 991.98px) {
    /* Cabecera en una fila y fija: menú y logotipo a la izquierda; buscar, cuenta y carrito a la derecha.
       El idioma y la moneda están en el pie del menú. */
    #header { position: sticky; top: 0; z-index: 1030; background: #0b0b0b; border-bottom: 1px solid #262626; }
    #header .header-nav { display: none; }
    #mobile-header { position: relative; height: 58px; }
    #mobile-header > .container {
        position: absolute; z-index: 1; top: 0; left: 58px; display: flex; align-items: center;
        width: auto; max-width: none; height: 58px; padding: 0;
    }
    #mobile-header .mobile-main-bar { padding: 0; }
    #mobile-header .col-mobile-logo { padding: 0; text-align: left; }
    #mobile-header .col-mobile-logo a { display: flex; align-items: center; height: 46px; }
    #mobile-header .logo { display: block; width: auto; max-height: 28px; }
    #mobile-header .mobile-buttons-bar > .container { max-width: none; padding: 0 6px; }
    #mobile-header .row-mobile-buttons { flex-wrap: nowrap; height: 58px; margin-right: 0; margin-left: 0; }
    #mobile-header .col-mobile-btn { flex: 0 0 46px; max-width: 46px; }
    #mobile-header .col-mobile-btn-menu { margin-right: auto; }
    #mobile-header .m-nav-btn {
        display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0;
        border: 0; border-radius: 50%;
    }
    #mobile-header .m-nav-btn > i { font-size: 20px; }
    #mobile-header #search-widget-mobile { right: 0; left: 0; width: 100%; margin: 0; padding: 12px 14px; border-radius: 0 0 14px 14px; }

    /* Menú: panel a pantalla completa en móvil. Primero las secciones del catálogo, en grande;
       después los enlaces de servicio, más discretos. */
    .col-mobile-menu-push #_mobile_iqitmegamenu-mobile {
        width: 100vw; max-width: 430px; height: 100vh; height: 100dvh; margin: 0; padding: 0;
        background: #070707; border: 0; border-radius: 0; box-shadow: none;
    }
    .col-mobile-menu-push.show #mobile_menu_click_overlay { background: rgba(0, 0, 0, .72); }
    .col-mobile-menu-push #iqitmegamenu-mobile { background: #070707; border: 0; }
    .mobile-menu__header-wrapper {
        align-items: center; min-height: 58px; padding: 0 6px 0 20px !important;
        background: #070707; border-bottom: 1px solid #1c1c1c; color: #fff;
    }
    .mobile-menu__back-btn { color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
    .mobile-menu__back-btn .fa { font-size: 22px; }
    .mobile-menu__title { font-size: 14px; }
    .mobile-menu__close { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; color: #fff; font-size: 22px; }
    .mobile-menu__content { margin: 0 !important; background: #070707; }
    .mobile-menu__scroller { display: flex; flex-direction: column; padding: 8px 20px 24px !important; }
    .mobile-menu__submenu--panel { padding: 8px 20px 24px !important; background: #070707; }
    .mobile-menu__tab { min-height: 62px; border-bottom: 1px solid #1c1c1c !important; }
    .mobile-menu__link {
        padding: 18px 0 !important; color: #fff !important;
        font-size: 19px !important; font-weight: 800 !important; line-height: 1.2; text-transform: uppercase !important;
    }
    .mobile-menu__arrow {
        display: flex; align-items: center; justify-content: flex-end; align-self: stretch; width: 48px; padding: 0 !important;
        color: #8c8c8c; font-size: 22px;
    }
    .mobile-menu__submenu--panel .mobile-menu__link { font-size: 16px !important; font-weight: 700 !important; }
    .mobile-menu__scroller > .mobile-menu__tab--has-submenu { order: 1; }
    .mobile-menu__scroller > .mobile-menu__below-content { order: 2; height: 14px; }
    .mobile-menu__scroller > .mobile-menu__tab:not(.mobile-menu__tab--has-submenu) { order: 3; min-height: 48px; border-bottom: 0 !important; }
    .mobile-menu__scroller > .mobile-menu__tab:not(.mobile-menu__tab--has-submenu) > .mobile-menu__link {
        padding: 12px 0 !important; color: #b8b8b8 !important; font-size: 15px !important; font-weight: 600 !important; text-transform: none !important;
    }
    .mobile-menu__footer {
        align-items: center; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)) !important;
        background: #0d0d0d; border-top: 1px solid #1c1c1c; color: #e6e6e6; font-size: 14px;
    }
    .mobile-menu__language-currency { align-items: center !important; gap: 8px; }
    .mobile-menu__language-selector, .mobile-menu__currency-selector, .mobile-menu__user a {
        position: relative; display: inline-flex !important; align-items: center; min-height: 40px; margin: 0 !important; padding: 0 14px;
        border: 1px solid #333; border-radius: 999px; font-weight: 600; white-space: nowrap;
    }
    .mobile-menu__user a { gap: 8px; text-decoration: none; }
    .mobile-menu__language-currency-dropdown {
        position: absolute; bottom: calc(100% + 8px); left: 0; min-width: 140px; padding: 2px 16px;
        background: #151515; border: 1px solid #333; border-radius: 12px;
    }
    .mobile-menu__language-currency-dropdown ul { margin: 0; padding: 0; list-style: none; }
}
/* Cantidad: en pantallas táctiles, menos y más a los lados del número, con tamaño para el dedo
   (el tema los apila en dos flechas de 20 px). */
@media (max-width: 991.98px) {
    .bootstrap-touchspin { display: inline-flex; flex-wrap: nowrap; align-items: stretch; width: auto; }
    .bootstrap-touchspin .input-group-btn-vertical { display: contents; }
    .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin {
        position: static; display: flex; flex: 0 0 40px; align-items: center; justify-content: center;
        width: 40px; height: auto; min-height: 44px; max-height: none; margin: 0; padding: 0;
        background: #1f1f1f; border: 1px solid #3a3a3a; color: #fff;
    }
    .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin:first-child { order: 3; border-radius: 0 10px 10px 0; }
    .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin:last-child { order: 1; border-radius: 10px 0 0 10px; }
    .bootstrap-touchspin input.form-control {
        order: 2; flex: 0 0 46px; width: 46px; min-width: 0; height: auto; padding: 0;
        border-right: 0; border-left: 0; border-radius: 0; text-align: center; -moz-appearance: textfield; appearance: textfield;
    }
    .bootstrap-touchspin input.form-control::-webkit-outer-spin-button,
    .bootstrap-touchspin input.form-control::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
    .bootstrap-touchspin .btn-touchspin i { position: static; margin: 0; font-size: 13px; transform: none; }
    .bootstrap-touchspin .btn-touchspin .touchspin-up::before { content: "\f067"; }
    .bootstrap-touchspin .btn-touchspin .touchspin-down::before { content: "\f068"; }
    #product .product-add-to-cart .col-add-qty .qty { width: auto; }
    .cart-item .product-line-actions .qty { flex: 0 0 auto; width: auto; max-width: none; }
    .cart-item .product-line-actions .bootstrap-touchspin { width: auto; max-width: none; }

    /* Zonas táctiles de al menos 40 px. */
    .cart-line-product-actions .remove-from-cart { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; font-size: 18px; }
    body#cart .cart-grid-body > .btn { min-height: 44px; display: inline-flex; align-items: center; }
    #footer #footer-container-main .block-links ul > li a { display: inline-block; padding: 9px 0; }
    body#checkout #checkout-header .container > a,
    body#checkout #js-checkout-summary a.text-muted { display: inline-block; padding: 10px 0; }
    #footer .social-links a, .social-sharing a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; font-size: 20px; }
    #wrapper .breadcrumb, #wrapper .breadcrumb a, #wrapper .breadcrumb span { font-size: 12px; }
    /* Las migas en una sola línea; si no caben, se deslizan. */
    #wrapper .breadcrumb ol { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
    #wrapper .breadcrumb ol::-webkit-scrollbar { display: none; }
    #wrapper .breadcrumb ol li { flex: none; }
    #wrapper .breadcrumb .row { flex-wrap: nowrap; }
    #wrapper .breadcrumb .row > .col { min-width: 0; }
}

/* Con una sola moneda su selector no tiene nada que ofrecer. */
@supports selector(:has(*)) {
    .mobile-menu__currency-selector:not(:has(li)) { display: none !important; }
}

@media (max-width: 767.98px) {
    #content-wrapper .page-title { margin-bottom: 18px; padding-bottom: 0; font-size: 26px; line-height: 1.15; }
    #wrapper { padding-top: 1.1rem; }
    #wrapper .breadcrumb { margin-top: -1.1rem; margin-bottom: .5rem; padding: 10px 0; }
    /* Anterior y siguiente producto: en el teléfono se navega desde el listado. */
    #iqitproductsnav { display: none; }
    /* En la ficha el último paso de las migas repite el título. */
    body#product #wrapper .breadcrumb ol li:last-child { display: none; }
    body#product #wrapper .breadcrumb ol li:nth-last-child(2)::after { display: none; }

    /* El editor del tema vuelve a mostrar en móvil lo que el tema ocultaba (.hidden-sm-down); esto sobra en pantalla pequeña. */
    .products-selection .view-switcher, .products-selection .showing, .cart-items .cart-item-header { display: none !important; }
    .products-selection > .row { justify-content: flex-end !important; }

    /* Carrito: total en una línea y botón de pago siempre a la vista. */
    body#cart .cart-summary-line.cart-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
    body#cart .cart-total .label, body#cart .cart-total .value { font-size: 18px; }
    body#cart .cart-summary-line.cart-total::after { display: none; }
    body#cart .cart-total .value { margin-left: auto; text-align: right; }
    /* Con la cabecera fija el botón de volver arriba sólo tapa contenido. */
    #back-to-top { display: none !important; }
    /* iOS amplía la página al enfocar un campo con letra de menos de 16 px. */
    input, select, textarea, .form-control, .custom-select { font-size: 16px; }
}

@supports selector(:has(*)) {
    @media (max-width: 767.98px) {
        body#cart .cart-detailed-actions:not(:has(.disabled, [disabled])) {
            position: fixed; z-index: 1020; right: 0; bottom: 0; left: 0;
            padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
            background: rgba(10, 10, 10, .96); border-top: 1px solid #262626;
        }
        body#cart:has(.cart-detailed-actions:not(:has(.disabled, [disabled]))) #footer { padding-bottom: 84px; }
    }
}

/* Listados en el teléfono: una fila por producto, con el nombre completo junto al cartel. */
@media (min-width: 768px) and (max-width: 991.98px) {
    #js-product-list .products > [class*="col-"] { flex: 0 0 33.3333%; max-width: 33.3333%; }
}
@media (max-width: 359.98px) {
    /* En los teléfonos más estrechos la línea del carrito deja sólo cantidad e importe,
       y en la ficha la cantidad va encima del botón. */
    .cart-item .unit-price { display: none; }
    #product .product-add-to-cart .product-quantity { flex-wrap: wrap; row-gap: 10px; }
    #product .product-add-to-cart .col-add-qty { flex: 0 0 100%; display: flex; justify-content: center; }
    #product .product-add-to-cart .col-add-btn { flex: 0 0 100%; }
}
@media (max-width: 575.98px) {
    #js-product-list .products > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
    #js-product-list .product-miniature-grid { display: grid; grid-template-columns: 108px minmax(0, 1fr); align-items: center; }
    #js-product-list .product-miniature-grid .thumbnail-container { margin: 10px 0 10px 10px; overflow: hidden; border-radius: 10px; }
    #js-product-list .product-miniature-grid .product-description { display: block; padding: 10px 14px 10px 12px; text-align: left; }
    #js-product-list .product-miniature-grid .product-title { -webkit-line-clamp: 4; margin: 2px 0 6px; font-size: 13.5px; }
    #js-product-list .product-miniature .product-price { font-size: 17px; }
    #js-product-list .product-miniature .product-functional-buttons { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}
