/* bloque 1 */

/* Header sin sticky, sin transforms, sin transitions */
/* FIX 2026-05-17: forzar var header-h a 128px para que el catbar no tape el nav */
html.nm2-login-fam,html body[class*="o_portal_"],html body[class*="_portal_my_"],html body.o_sale_portal_my_orders,html body.o_account_portal_my_invoices{--nm2-header-h:128px!important;--nm2-topbar-h:38px!important;--nm2-cats-h:58px!important}
/* FIX 2026-05-17: forzar Inter en body de login y portal para que el nav coincida con home */
html.nm2-login-fam body,html.nm2-login-fam .nm2-header,html.nm2-login-fam .nm2-nav,html.nm2-login-fam .nm2-nav-item,html.nm2-login-fam .nm2-topbar,
html body[class*="o_portal_"],html body[class*="o_portal_"] .nm2-header,html body[class*="o_portal_"] .nm2-nav,html body[class*="o_portal_"] .nm2-nav-item,html body[class*="o_portal_"] .nm2-topbar,
html body[class*="_portal_my_"],html body[class*="_portal_my_"] .nm2-header,html body[class*="_portal_my_"] .nm2-nav,html body[class*="_portal_my_"] .nm2-nav-item,
html body.o_sale_portal_my_orders,html body.o_sale_portal_my_orders .nm2-nav-item,
html body.o_account_portal_my_invoices,html body.o_account_portal_my_invoices .nm2-nav-item
{font-family:"Inter","Inter Variable",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif!important;line-height:1.55!important}
html.nm2-login-fam header#top,
html.nm2-login-fam header.o_header_fixed{position:static!important;transform:none!important;transition:none!important}
html.nm2-login-fam header#top .nm2-open-indicator{display:flex!important;opacity:1!important;max-height:50px!important;height:auto!important;pointer-events:auto!important}
html.nm2-login-fam #wrapwrap > main{padding-top:166px!important;transition:none!important}
html.nm2-login-fam #nm2-msb{display:none!important}
/* CATBAR ahora SIEMPRE visible — regla eliminada el 2026-05-16 */
/* Footer NM2 v4 ahora SIEMPRE visible en auth (fix 2026-05-17) */
/* html.nm2-login-fam .nm2-foot{display:none!important;visibility:hidden!important} */
/* Ocultar footer hasta que el JS lo termine de transformar */
html.nm2-login-fam #footer{visibility:hidden!important;min-height:380px}
@media(max-width:991px){html.nm2-login-fam #footer{min-height:980px}}
@media(max-width:575px){html.nm2-login-fam #footer{min-height:1240px}}
html.nm2-login-fam.nm2-footer-ready #footer{visibility:visible!important}
/* Defensa: cualquier seccion que tenga texto "METODOS DE PAGO" en el footer viejo, oculta */
html.nm2-login-fam #footer .o_footer_copyright_name{display:initial}

{}
/* bloque 2 */

/* Solo en páginas auth de Odoo (signup / reset / login) */
html.nm2-login-fam body.o_auth_signup_signup,
html.nm2-login-fam body.o_auth_signup_reset_password,
html.nm2-login-fam body.o_web_login{
  background-color:#0A1A3D !important;
}

/* Tarjeta contenedora épica */
html.nm2-login-fam .oe_website_login_container{
  max-width:460px;
  margin:32px auto;
  padding:36px 32px;
  background:linear-gradient(180deg, rgba(13,17,23,0.85) 0%, rgba(26,35,50,0.85) 100%);
  border:1px solid rgba(2,148,206,0.35);
  border-radius:14px;
  box-shadow:0 12px 40px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.04) inset;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* Labels: blanco legible */
html.nm2-login-fam .oe_website_login_container label,
html.nm2-login-fam .oe_website_login_container .form-label,
html.nm2-login-fam .oe_website_login_container .col-form-label{
  color:#ffffff !important;
  font-weight:600 !important;
  font-size:13px !important;
  letter-spacing:0.3px;
  margin-bottom:6px !important;
}

/* Inputs: fondo blanco, texto oscuro (estaban OK, pero reforzamos contorno) */
html.nm2-login-fam .oe_website_login_container .form-control{
  background-color:#ffffff !important;
  color:#212529 !important;
  border:1px solid rgba(255,255,255,0.15) !important;
  border-radius:8px !important;
  padding:10px 14px !important;
  font-size:15px !important;
}
html.nm2-login-fam .oe_website_login_container .form-control:focus{
  border-color:#0294CE !important;
  box-shadow:0 0 0 3px rgba(2,148,206,0.25) !important;
}
html.nm2-login-fam .oe_website_login_container .form-control::placeholder{
  color:#9aa0a6 !important;
}

/* Botón ojo show/hide password */
html.nm2-login-fam .oe_website_login_container .o_show_password{
  background:#ffffff !important;
  border:1px solid rgba(255,255,255,0.15) !important;
  border-left:none !important;
  color:#0A1A3D !important;
  border-top-right-radius:8px !important;
  border-bottom-right-radius:8px !important;
}
html.nm2-login-fam .oe_website_login_container .o_show_password i{
  color:#0A1A3D !important;
  opacity:1 !important;
}
html.nm2-login-fam .oe_website_login_container .input-group .form-control{
  border-top-right-radius:0 !important;
  border-bottom-right-radius:0 !important;
}

/* Botón submit Sign-up / Login */
html.nm2-login-fam .oe_website_login_container .btn-primary{
  background-color:#1B4FE0 !important;
  border-color:#1B4FE0 !important;
  color:#fff !important;
  font-weight:700 !important;
  padding:12px 24px !important;
  border-radius:8px !important;
  letter-spacing:0.5px;
  text-transform:uppercase;
  font-size:14px !important;
  transition:background-color .2s ease, transform .1s ease;
}
html.nm2-login-fam .oe_website_login_container .btn-primary:hover{
  background-color:#1542C2 !important;
  border-color:#1542C2 !important;
  transform:translateY(-1px);
}

/* Botón link "¿Ya tienes una cuenta?" / OAuth */
html.nm2-login-fam .oe_website_login_container .btn-link{
  color:#0F172A !important;
  text-decoration:none !important;
  font-weight:500 !important;
}
html.nm2-login-fam .oe_website_login_container .btn-link:hover{
  color:#1B4FE0 !important;
  text-decoration:underline !important;
}

/* Botón Passkey (Usa una llave de acceso) */
html.nm2-login-fam .oe_website_login_container .btn-outline-secondary,
html.nm2-login-fam .oe_website_login_container .btn-secondary{
  background:rgba(255,255,255,0.95) !important;
  border:1px solid rgba(255,255,255,0.2) !important;
  color:#0A1A3D !important;
  font-weight:600 !important;
  border-radius:8px !important;
  padding:10px 18px !important;
}
html.nm2-login-fam .oe_website_login_container .btn-outline-secondary:hover,
html.nm2-login-fam .oe_website_login_container .btn-secondary:hover{
  background:#ffffff !important;
  color:#1B4FE0 !important;
}

/* Mensajes de error y advertencia caps-lock: visibles sobre navy */
html.nm2-login-fam .oe_website_login_container .alert-danger{
  background-color:rgba(220,53,69,0.18) !important;
  border:1px solid rgba(220,53,69,0.5) !important;
  color:#ffd6d6 !important;
}
html.nm2-login-fam .oe_website_login_container .o_caps_lock_warning .text-warning,
html.nm2-login-fam .oe_website_login_container .text-warning{
  color:#FFD166 !important;
}

/* Texto small / helper */
html.nm2-login-fam .oe_website_login_container small,
html.nm2-login-fam .oe_website_login_container .text-muted{
  color:rgba(255,255,255,0.65) !important;
}

/* Separador "or" / divider */
html.nm2-login-fam .oe_website_login_container hr,
html.nm2-login-fam .oe_website_login_container .or-divider{
  border-color:rgba(255,255,255,0.15) !important;
  color:rgba(255,255,255,0.55) !important;
}

/* Mobile: padding compacto */
@media (max-width:575px){
  html.nm2-login-fam .oe_website_login_container{
    margin:16px 12px;
    padding:24px 18px;
    border-radius:12px;
  }
  html.nm2-login-fam .oe_website_login_container .form-control{
    font-size:16px !important; /* evita zoom iOS */
  }
}


/* === NM2-LOGIN-FIX-V20260517C — card blanca consistente + labels visibles + gap + reset-pwd debajo === */

/* Card: forzar fondo blanco consistente en login, signup y reset_password
   (la del login renderiza blanca por otra regla, la de reset_password venía con gradient navy → texto invisible).
   Unificamos a blanca y agregamos sombra/borde sutil. */
html.nm2-login-fam .oe_website_login_container{
  background:#ffffff !important;
  background-image:none !important;
  border:1px solid rgba(2,148,206,0.15) !important;
  border-radius:14px !important;
  box-shadow:0 12px 40px rgba(0,0,0,0.18) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  margin-top:96px !important;
  padding:36px 32px !important;
}
@media (max-width:575px){
  html.nm2-login-fam .oe_website_login_container{
    margin-top:48px !important;
    padding:24px 18px !important;
  }
}

/* Labels visibles oscuros */
html.nm2-login-fam .oe_website_login_container label,
html.nm2-login-fam .oe_website_login_container .form-label,
html.nm2-login-fam .oe_website_login_container .col-form-label,
html.nm2-login-fam .oe_login_form label,
html.nm2-login-fam .oe_login_form .form-label,
html.nm2-login-fam .oe_signup_form label,
html.nm2-login-fam .oe_signup_form .form-label,
html.nm2-login-fam .oe_reset_password_form label,
html.nm2-login-fam .oe_reset_password_form .form-label{
  color:#0B1220 !important;
  font-weight:600 !important;
  font-size:13px !important;
  letter-spacing:0.3px !important;
  margin-bottom:6px !important;
}

/* Texto general (incluye "Volver a inicio de sesión", divider "- o -", helper text) */
html.nm2-login-fam .oe_website_login_container p,
html.nm2-login-fam .oe_website_login_container .text-muted,
html.nm2-login-fam .oe_website_login_container small,
html.nm2-login-fam .oe_website_login_container .o_login_textcenter{
  color:#475569 !important;
}
html.nm2-login-fam .oe_website_login_container hr,
html.nm2-login-fam .oe_website_login_container .or-divider{
  border-color:rgba(11,18,32,0.12) !important;
  color:#475569 !important;
}

/* Botón link "¿Ya tienes cuenta?" / "Volver a inicio de sesión" */
html.nm2-login-fam .oe_website_login_container .btn-link,
html.nm2-login-fam .oe_website_login_container a[href*="/web/login"]{
  color:#1B4FE0 !important;
  text-decoration:none !important;
  font-weight:500 !important;
}
html.nm2-login-fam .oe_website_login_container .btn-link:hover,
html.nm2-login-fam .oe_website_login_container a[href*="/web/login"]:hover{
  color:#1542C2 !important;
  text-decoration:underline !important;
}

/* Inputs: ya están blancos, refinamos border para que se vean sobre la card blanca */
html.nm2-login-fam .oe_website_login_container .form-control{
  background:#ffffff !important;
  color:#0B1220 !important;
  border:1px solid rgba(11,18,32,0.18) !important;
  border-radius:8px !important;
  padding:10px 14px !important;
  font-size:15px !important;
}
html.nm2-login-fam .oe_website_login_container .form-control:focus{
  border-color:#0294CE !important;
  box-shadow:0 0 0 3px rgba(2,148,206,0.18) !important;
}
html.nm2-login-fam .oe_website_login_container .form-control::placeholder{
  color:#94a3b8 !important;
}

/* Botón "Elija un usuario" embebido en label */
html.nm2-login-fam .oe_login_form .o_user_switch_btn{
  color:#1B4FE0 !important;
  font-weight:500 !important;
  text-decoration:none !important;
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}
html.nm2-login-fam .oe_login_form .o_user_switch_btn:hover{
  text-decoration:underline !important;
}

/* Reposicionar "Restablecer contraseña" DEBAJO del input de password (solo /web/login) */
html.nm2-login-fam .oe_login_form .o_caps_lock_warning{
  position:relative !important;
  padding-bottom:32px !important;
}
html.nm2-login-fam .oe_login_form .o_caps_lock_warning > .d-flex.justify-content-between{
  display:block !important;
}
html.nm2-login-fam .oe_login_form .o_caps_lock_warning > .d-flex.justify-content-between > a[href*="reset_password"]{
  position:absolute !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  left:auto !important;
  margin:0 !important;
  padding:0 !important;
  font-size:13px !important;
  font-weight:500 !important;
  color:#1B4FE0 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  z-index:2 !important;
}
html.nm2-login-fam .oe_login_form .o_caps_lock_warning > .d-flex.justify-content-between > a[href*="reset_password"]:hover{
  text-decoration:underline !important;
}

/* Alertas: que se sigan viendo bien sobre la card blanca */
html.nm2-login-fam .oe_website_login_container .alert-danger{
  background-color:#fef2f2 !important;
  border:1px solid #fecaca !important;
  color:#991b1b !important;
}
html.nm2-login-fam .oe_website_login_container .alert-success{
  background-color:#f0fdf4 !important;
  border:1px solid #bbf7d0 !important;
  color:#166534 !important;
}
html.nm2-login-fam .oe_website_login_container .o_caps_lock_warning .text-warning,
html.nm2-login-fam .oe_website_login_container .text-warning{
  color:#b45309 !important;
}

/* Botón Passkey ya estaba bien, refinamos borde sobre fondo claro */
html.nm2-login-fam .oe_website_login_container .btn-outline-secondary,
html.nm2-login-fam .oe_website_login_container .btn-secondary{
  background:#ffffff !important;
  border:1px solid rgba(11,18,32,0.18) !important;
  color:#0B1220 !important;
  font-weight:600 !important;
  border-radius:8px !important;
  padding:10px 18px !important;
}
html.nm2-login-fam .oe_website_login_container .btn-outline-secondary:hover,
html.nm2-login-fam .oe_website_login_container .btn-secondary:hover{
  background:#f8fafc !important;
  color:#1B4FE0 !important;
  border-color:#1B4FE0 !important;
}


/* === Título inyectado en la card (Iniciar sesión / Restablecer contraseña) === */
html.nm2-login-fam body.o_web_login .oe_website_login_container::before,
html.nm2-login-fam body.o_auth_signup_reset_password .oe_website_login_container::before,
html.nm2-login-fam body.o_auth_signup_signup .oe_website_login_container::before{
  display:block;
  text-align:center;
  font-family:'Inter','Source Sans Pro',sans-serif;
  font-weight:700;
  font-size:22px;
  line-height:1.2;
  letter-spacing:-0.2px;
  color:#0B1220;
  margin:0 0 24px 0;
  padding-bottom:18px;
  border-bottom:1px solid rgba(11,18,32,0.08);
}
html.nm2-login-fam body.o_web_login .oe_website_login_container::before{
  content:"Iniciar sesión";
}
html.nm2-login-fam body.o_auth_signup_reset_password .oe_website_login_container::before{
  content:"Restablecer contraseña";
}
html.nm2-login-fam body.o_auth_signup_signup .oe_website_login_container::before{
  content:"Crear cuenta";
}
@media (max-width:575px){
  html.nm2-login-fam body.o_web_login .oe_website_login_container::before,
  html.nm2-login-fam body.o_auth_signup_reset_password .oe_website_login_container::before,
  html.nm2-login-fam body.o_auth_signup_signup .oe_website_login_container::before{
    font-size:19px;
    margin-bottom:18px;
    padding-bottom:14px;
  }
}


/* === Unificar fondo: reset_password y signup deben tener el mismo gradient radial que login === */
html.nm2-login-fam body.o_auth_signup_reset_password #wrapwrap,
html.nm2-login-fam body.o_auth_signup_signup #wrapwrap{
  background-image:
    radial-gradient(1200px 600px at 15% -10%, rgba(27, 79, 224, 0.08), rgba(0, 0, 0, 0) 60%),
    radial-gradient(1000px 500px at 95% 10%, rgba(110, 86, 247, 0.06), rgba(0, 0, 0, 0) 60%),
    linear-gradient(rgb(244, 246, 250) 0%, rgb(250, 251, 252) 40%, rgb(250, 251, 252) 100%)
    !important;
  background-color:transparent !important;
}


/* === Footer hero (.nm2-foot-top) visible también para usuarios logueados === */
body.nm2-view-loggedin .nm2-foot-top.nm2-only-public,
body.nm2-view-loggedin footer.nm2-foot .nm2-foot-top{
  display:block !important;
}
/* Si el grid interior fue marcado oculto también, restaurarlo a grid */
body.nm2-view-loggedin footer.nm2-foot .nm2-foot-top .nm2-foot-top-inner{
  display:grid !important;
}

/* === FIN NM2-LOGIN-FIX-V20260517 === */

{}
/* bloque 3 */

/* === Floating WhatsApp button === */
.nm2-whatsapp-float {
position: fixed;
bottom: 25px;
right: 25px;
z-index: 9999;
width: 60px;
height: 60px;
border-radius: 50%;

background-color: #25D366;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(0,0,0,0.25);
transition: transform 0.3s ease, box-shadow 0.3s ease;
text-decoration: none;
}
.nm2-whatsapp-float:hover {
transform: scale(1.1);
box-shadow: 0 6px 20px rgba(0,0,0,0.3);
text-decoration: none;
}
.nm2-whatsapp-float svg {
width: 35px;
height: 35px;
fill: #fff;
}

/* === NM2 Badges Stock Final === */
.nm2-avail-verde { background-color: #28a745 !important; color: #fff !important; font-size: 13px !important; }
.nm2-avail-verde i { color: #fff !important; }
.nm2-avail-amarilla { background-color: #c8901a !important; color: #fff !important; font-size: 13px !important; }
.nm2-avail-amarilla i { color: #fff !important; }.text-center.small.mt-1 .nm2-avail-verde, .text-center.small.mt-1 .nm2-avail-amarilla {
    display: inline-flex !important; align-items: center !important;
    justify-content: center !important; height: 23px !important;
    line-height: 1 !important; box-sizing: border-box !important; gap: 4px !important;
    row-gap: 4px !important;
    column-gap: 4px !important;
}
}

h2.o_wsale_products_item_title a span { -webkit-line-clamp: unset !important; display: inline !important; overflow: visible !important; }
}

/* === Hide phone nav link === */
a.nav-link[href^="tel:"] { display: none !important; }
/* === Active state for ALL nav items (Inicio, Tienda, Marcas, Contáctanos) === */
#top_menu a.nav-link.active,
#o_main_nav a.nav-link.active {
background-color: #0294CE !important;
color: #fff !important;
border-radius: 6px !important;
border: none !important;
}
/* === Marquee styles === */
.nm2-brands-section { opacity: 0; transition: opacity 0.5s; text-align: center; padding: 40px 0; background: #f9f9f9; }
@media (max-width: 767px) { .nm2-brands-section { padding: 10px 0 !important; margin-top: 10px !important; } }
.nm2-brands-section.nm2-ready { opacity: 1; }
.nm2-brands-section h2, .nm2-brands-section p { text-align: center; }
.nm2-marquee-wrap { overflow: hidden; position: relative; margin-bottom: 15px; }
.nm2-marquee-wrap::before, .nm2-marquee-wrap::after { content: ''; position: absolute; top: 0; width: 80px; height: 100%; z-index: 2; }
.nm2-marquee-wrap::before { left: 0; background: linear-gradient(to right, #f9f9f9, transparent); }
.nm2-marquee-wrap::after { right: 0; background: linear-gradient(to left, #f9f9f9, transparent); }
.nm2-marquee-track { display: flex; align-items: center; animation: nm2scroll 20s linear infinite; }
.nm2-marquee-track.nm2-reverse { animation: nm2scrollR 20s linear infinite; }
@keyframes nm2scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes nm2scrollR { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.nm2-marquee-wrap:hover .nm2-marquee-track { animation-play-state: paused; }
.nm2-marquee-track a { display: inline-flex; align-items: center; justify-content: center; margin: 0 30px; flex-shrink: 0; text-decoration: none; }
.nm2-marquee-track a:hover { transform: scale(1.15); }
.nm2-marquee-track a img { height: 80px; width: auto; max-width: 240px; object-fit: contain; filter: grayscale(0%); opacity: 0.6; transition: all 0.3s ease; }
.nm2-marquee-track a:hover img { filter: grayscale(0%); opacity: 1; }
.nm2-marquee-track a {
  position: relative !important;
}
.nm2-marquee-track a::after {
  content: attr(title) !important;
  position: absolute !important;
  bottom: -25px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: #333 !important;
  color: #fff !important;
  font-size: 11px !important;
  padding: 3px 10px !important;
  border-radius: 4px !important;
  white-space: nowrap !important;
  
  transition: opacity 0.3s ease !important;
  pointer-events: none !important;
}
.nm2-marquee-track a:hover::after {
  opacity: 1 !important;
}
.nm2-brands-btn { display: inline-block; margin-top: 25px; padding: 10px 30px; background-color: #0294CE; color: #fff; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.3s ease; }
.nm2-brands-btn:hover { background-color: #027aa8; color: #fff; text-decoration: none; }


}

/* nm2-wishlist-qty-fix */
.o_wsale_wishlist_page input.js_shop_qty_input { display: inline-block !important; width: 32px !important; text-align: center !important; border: 1px solid #ccc !important; border-radius: 4px !important; background: transparent !important; font-size: 14px !important; font-weight: bold !important; padding: 0 !important; -moz-appearance: textfield !important; }
.o_wsale_wishlist_page input.js_shop_qty_input::-webkit-inner-spin-button,
.o_wsale_wishlist_page input.js_shop_qty_input::-webkit-outer-spin-button { -webkit-appearance: none !important; margin: 0 !important; }
.o_wsale_wishlist_page .js_shop_qty_display { display: none !important; }

/* nm2-wishlist-compare-btn */
.o_wsale_wishlist_page .o_add_to_compare { width: 34px !important; height: 34px !important; min-width: 34px !important; border-radius: 50% !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }

/* nm2-compare-btn-round-v2 */
.o_add_to_compare { width: 34px !important; max-width: 34px !important; min-width: 34px !important; height: 34px !important; max-height: 34px !important; min-height: 34px !important; border-radius: 50% !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; overflow: hidden !important; line-height: 34px !important; box-sizing: border-box !important; }

/* nm2-blog-title-position */
.o_wblog_post_title {
  margin-left: 660px !important;
}
@media (max-width: 767px) {
  .o_wblog_post_title {
    margin-left: 0px !important;
    text-align: center !important;
    background: rgba(0,0,0,0.55);
    padding: 6px 12px;
    border-radius: 6px;
  }
}
/* nm2-blog-hide-search */
.o_blog_page .o_searchbar_form.s_searchbar_input { display: none !important; }
.o_record_cover_container + nav.navbar,
nav.navbar.navbar-light.pt-4.pb-0.px-0 {
  display: none !important;
}
/* nm2-hide-scroll-btn */
.o_scroll { display: none !important; }
.nm2-scroll-indicator { display: none !important; }
/* nm2-tarifa-pill-height */
.o_wsale_product_page .text-muted.small.mb-2[style*="28a745"] {
  min-height: 25px !important;
  line-height: 21px !important;
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  vertical-align: middle !important;
  display: inline-flex !important;
  align-items: center !important;
}
/* nm2-brands-hover */
.nm2-brands-section img {
  filter: grayscale(0%) !important;
  transition: filter 0.3s ease, transform 0.3s ease !important;
  cursor: pointer;
  max-height: 80px !important;
}
.nm2-brands-section img:hover {
  filter: grayscale(0%) !important;
  transform: scale(1.1) !important;
}
/* nm2-hide-circle-icon */
.o_wsale_stock_badge i.fa-circle { display: none !important; }
/* nm2-transito-mobile-grid */
@media (max-width: 767px) {
  div[style*="grid-template-columns"] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}
/* nm2-transito-hide-flash */
.nm2_transit_mode #o_wsale_products_grid {
  visibility: hidden;
}

/* nm2-brands-mobile */
@media (max-width: 767px) {
  .nm2-brands-section .nm2-marquee-wrap,
  .nm2-brands-section .nm2-brands-track,
  .nm2-brands-section div[style*="animation"],
  .nm2-brands-section > div:not(.container):not(.nm2-brands-mobile-grid) img {
    display: none !important;
  }
  .nm2-brands-mobile-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 15px !important;
    padding: 10px !important;
    margin: 20px 0 !important;
  }
  .nm2-brands-mobile-grid a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60px;
  }
  .nm2-brands-mobile-grid img {
    max-width: 100px;
    max-height: 50px;
    object-fit: contain;
    filter: grayscale(0%);
  }
}
@media (min-width: 768px) {
  .nm2-brands-mobile-grid {
    display: none !important;
  }
}

/* nm2-categorias-mobile */
@media (max-width: 767px) {
  section.s_dynamic_snippet_category_list .o_category_container.d-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  section.s_dynamic_snippet_category_list .s_dynamic_category_item {
    height: auto !important;
    max-height: none !important;
    aspect-ratio: 1/1 !important;
    overflow: hidden !important;
    border-radius: 10px !important;
  }
  section.s_dynamic_snippet_category_list .s_dynamic_category_item img {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
  }
  section.s_dynamic_snippet_category_list {
    opacity: 1 !important;
    transform: none !important;
  }
}

.nm2-brands-section p { margin-bottom: 90px !important; }

.s_dynamic_snippet_products .btn {
background-color: #fff !important;
color: #0294CE !important;
border: 1px solid #0294CE !important;
border-radius: 6px !important;
}
.s_dynamic_snippet_products .o_wsale_product_information { display: none !important; }

/* Hover lift effect on product cards */
.s_dynamic_snippet_products .carousel-inner {
overflow: visible !important;
}
.s_dynamic_snippet_products .oe_product_cart {
transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.s_dynamic_snippet_products .oe_product_cart:hover {
transform: translateY(-8px) !important;
box-shadow: 0 12px 24px rgba(0,0,0,0.15) !important;
}
/* === Category cards: title top-left + button === */
.s_dynamic_snippet_category_list [name="category_overlay"] {
justify-content: flex-start !important;
align-items: flex-start !important;
text-align: left !important;
}
.s_dynamic_snippet_category_list [name="category_overlay"] > * {
font-size: 13px !important;
font-weight: 600 !important;
color: #fff !important;
text-shadow: none !important;
margin-bottom: 0 !important;
text-align: left !important;
width: auto !important;
background: rgba(2,148,206,0.75) !important;
padding: 6px 14px !important;
border-radius: 4px !important;
letter-spacing: 0.5px !important;
text-transform: uppercase !important;
line-height: 1.4 !important;
backdrop-filter: blur(4px) !important;
-webkit-backdrop-filter: blur(4px) !important;
}
.s_dynamic_snippet_category_list .s_dynamic_category_arrow {
display: none !important;
}
.nm2-cat-btn {
display: inline-block;
margin-top: auto;
padding: 6px 18px;
background: #fff;
color: #0294CE;
border-radius: 6px;
font-size: 13px;
font-weight: 600;
text-decoration: none;
transition: all 0.3s ease;
align-self: flex-start;
}
.nm2-cat-btn:hover {
background: #0294CE;
color: #fff;
text-decoration: none;
}
.nm2-cat-btn {
display: none !important;
}
.s_dynamic_snippet_category_list .s_dynamic_category_item,
.s_dynamic_snippet_category_list .s_dynamic_category_item * {
text-align: left !important;
}
.s_dynamic_snippet_category_list [name="category_overlay"] {
align-self: flex-start !important;
margin-left: 0 !important;
margin-right: auto !important;
}
/* === Fondo unificado claro para todas las secciones del home === */
/* Aplicado a: Marcas, Productos destacados (tabs), Nuestras Categorías */
/* Especificidad alta para vencer al <style id="nm2v4-ptabs-styles"> inyectado por nm2-custom.js */
.nm2-brands-section {
background-color: #f7f9fc !important;
background-image:
  radial-gradient(circle 700px at 15% 200px, rgba(2,148,206,0.055) 0, transparent 100%),
  radial-gradient(circle 700px at 85% 400px, rgba(2,148,206,0.055) 0, transparent 100%) !important;
}
html body div#wrap div#nm2-products-tabs-root,
html body div#wrap div#nm2-categories-root,
html body main div#nm2-products-tabs-root,
html body main div#nm2-categories-root {
background-color: #f7f9fc !important;
background-image: radial-gradient(circle 700px at 15% 200px, rgba(2,148,206,0.055) 0, transparent 100%), radial-gradient(circle 700px at 85% 400px, rgba(2,148,206,0.055) 0, transparent 100%) !important;
}
/* Eliminar fade horizontal del marquee porque usaba el viejo #f9f9f9 */
.nm2-marquee-wrap::before { background: linear-gradient(to right, #f7f9fc, transparent) !important; }
.nm2-marquee-wrap::after { background: linear-gradient(to left, #f7f9fc, transparent) !important; }
/* === FIN fondo unificado === */

/* === ¿Por qué elegirnos? section — fondo claro, tarjetas épicas === */
section.s_text_block.o_cc1 {
background-color: #f7f9fc !important;
background-image: radial-gradient(circle 700px at 15% 200px, rgba(2,148,206,0.055) 0, transparent 100%), radial-gradient(circle 700px at 85% 400px, rgba(2,148,206,0.055) 0, transparent 100%) !important;
padding-top: 60px !important;
padding-bottom: 60px !important;
}
.s_text_block.o_cc1 h2, .s_text_block.o_cc1 h2 span {
color: #1a2332 !important;
font-weight: 800 !important;
text-align: center !important;
letter-spacing: -0.3px !important;
}
.s_text_block.o_cc1 .lead {
color: #5b6878 !important;
text-align: center !important;
font-size: 16px !important;
}
.s_text_block.o_cc1 .col-md-3 > div {
background: #ffffff !important;
border-radius: 16px !important;
padding: 32px 22px !important;
transition: transform 0.35s cubic-bezier(.2,.7,.2,1), box-shadow 0.35s ease, border-color 0.35s ease !important;
border: 1px solid #e6edf3 !important;
box-shadow: 0 2px 8px rgba(16,32,55,0.04) !important;
position: relative !important;
overflow: hidden !important;
height: 100% !important;
}
.s_text_block.o_cc1 .col-md-3 > div::before {
content: '' !important;
position: absolute !important;
top: 0 !important;
left: 0 !important;
right: 0 !important;
height: 3px !important;
background: linear-gradient(90deg, #0294CE 0%, #00b8e6 100%) !important;
opacity: 0 !important;
transition: opacity 0.35s ease !important;
}
.s_text_block.o_cc1 .col-md-3 > div:hover {
transform: translateY(-6px) !important;
box-shadow: 0 18px 36px rgba(2,148,206,0.18), 0 6px 16px rgba(16,32,55,0.08) !important;
border-color: rgba(2,148,206,0.35) !important;
}
.s_text_block.o_cc1 .col-md-3 > div:hover::before {
opacity: 1 !important;
}
.s_text_block.o_cc1 .col-md-3 i {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 64px !important;
height: 64px !important;
border-radius: 50% !important;
background: linear-gradient(135deg, #0294CE 0%, #027ab5 100%) !important;
color: #ffffff !important;
font-size: 26px !important;
margin-bottom: 14px !important;
box-shadow: 0 6px 18px rgba(2,148,206,0.32) !important;
transition: transform 0.35s ease, box-shadow 0.35s ease !important;
}
.s_text_block.o_cc1 .col-md-3 > div:hover i {
transform: scale(1.08) rotate(-3deg) !important;
box-shadow: 0 10px 24px rgba(2,148,206,0.45) !important;
}
.s_text_block.o_cc1 .col-md-3 h5 {
color: #1a2332 !important;
font-weight: 700 !important;
margin-top: 8px !important;
margin-bottom: 6px !important;
font-size: 17px !important;
letter-spacing: -0.2px !important;
}
.s_text_block.o_cc1 .col-md-3 .text-muted {
color: #6b7889 !important;
font-size: 13.5px !important;
line-height: 1.5 !important;
}
@media(max-width:767px){
.s_text_block.o_cc1 .col-md-3 > div { padding: 22px 16px !important; border-radius: 13px !important; }
.s_text_block.o_cc1 .col-md-3 i { width: 54px !important; height: 54px !important; font-size: 22px !important; }
}

/* === Footer dark theme === */
/* Gradient azul tech — continuación visual del banner WhatsApp */
footer#bottom.o_footer {
  position: relative !important;
  overflow: hidden !important;
  background-color: transparent !important;
  background-image: none !important;
}
footer#bottom.o_footer > * {
  position: relative !important;
  z-index: 1 !important;
}
#bottom .s_text_block, #bottom .s_text_block.pt120 {
  background-color: transparent !important;
  background-image: none !important;
}
#bottom .s_text_block h5 { color: #fff !important; font-size: 15px !important; text-transform: uppercase !important; letter-spacing: 1px !important; margin-bottom: 15px !important; }
#bottom .s_text_block ul a, #bottom .s_text_block li a { color: rgba(255,255,255,0.65) !important; text-decoration: none !important; transition: color 0.2s ease !important; }
#bottom .s_text_block ul a:hover, #bottom .s_text_block li a:hover { color: #fff !important; }
#bottom .s_text_block hr { border-color: rgba(255,255,255,0.15) !important; }
#bottom .s_text_block .s_badge { background-color: rgba(255,255,255,0.1) !important; color: #fff !important; }
#bottom .s_social_media i { color: rgba(255,255,255,0.65) !important; transition: color 0.2s ease !important; }
#bottom .s_social_media i:hover { color: #0294CE !important; }
#bottom .o_footer_copyright { background-color: transparent !important; background-image: none !important; border-top: 1px solid rgba(255,255,255,0.06) !important; }
#bottom .o_footer_copyright, #bottom .o_footer_copyright span, #bottom .o_footer_copyright a, #bottom .o_brand_promotion { color: rgba(255,255,255,0.5) !important; }
#bottom .o_footer_copyright a:hover, #bottom .o_brand_promotion a:hover { color: rgba(255,255,255,0.8) !important; }
.nm2-footer-brand { color: rgba(255,255,255,0.65) !important; }
.nm2-footer-brand img { max-height: 100px !important; margin-bottom: 15px !important; mix-blend-mode: screen !important; }
.nm2-footer-brand p { font-size: 14px !important; line-height: 1.6 !important; color: rgba(255,255,255,0.65) !important; }
.nm2-footer-contact { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.nm2-footer-contact li { margin-bottom: 10px !important; font-size: 14px !important; color: rgba(255,255,255,0.65) !important; }
.nm2-footer-contact li i { color: #0294CE !important; width: 20px !important; margin-right: 8px !important; }

/* === Product detail page: smaller title === */
#product_detail h1.h3,
.o_wsale_product_page h1 {
font-size: 18px !important;
line-height: 1.3 !important;
}
/* === Product detail page: availability badge style === */
#product_details .availability_messages .text-success,
#product_details .availability_messages .text-danger,
#o_wsale_cta_wrapper .availability_messages .text-success,
#o_wsale_cta_wrapper .availability_messages .text-danger,
.nm2-availability-section .availability_messages .text-success,
.nm2-availability-section .availability_messages .text-danger {
display: inline-block !important;
padding: 6px 14px !important;
border-radius: 20px !important;
font-size: 14px !important;
font-weight: 600 !important;
line-height: 1.4 !important;
}
#product_details .availability_messages .text-success,
#o_wsale_cta_wrapper .availability_messages .text-success,
.nm2-availability-section .availability_messages .text-success {
background-color: #28a745 !important;
color: #fff !important;
}
#product_details .availability_messages .text-danger,
#o_wsale_cta_wrapper .availability_messages .text-danger,
.nm2-availability-section .availability_messages .text-danger {
background-color: #dc3545 !important;
color: #fff !important;
}
/* === Out of stock badge on product detail === */
#out_of_stock_message {
display: inline-block !important;
width: fit-content !important;
padding: 6px 14px !important;
border-radius: 20px !important;
font-size: 14px !important;
font-weight: 600 !important;
line-height: 1.4 !important;
background-color: #dc3545 !important;
color: #fff !important;
border: none !important;
}
#out_of_stock_message * {
color: #fff !important;
}
/* === Force green for availability badge on product detail === */
#o_wsale_cta_wrapper .badge,
#o_wsale_cta_wrapper .badge.text-bg-info,
#o_wsale_cta_wrapper .badge.text-bg-success,
#o_wsale_cta_wrapper .text-success,
#o_wsale_cta_wrapper > span:first-child,
.nm2-availability-section .badge,
#product_details .availability_messages .badge {
background-color: #28a745 !important;
--bs-badge-bg: #28a745 !important;
--bs-bg-opacity: 1 !important;
color: #fff !important;
}

/* === Footer column spacing === */
.nm2-footer-brand {
padding-right: 40px !important;
}
/* === Fix product CTA buttons overflow === */
#o_wsale_cta_wrapper {
flex-wrap: wrap !important;
max-width: 100% !important;
}
#o_wsale_product_cta_section {
overflow: hidden !important;
}
#o_wsale_product_cta_section .d-flex {
flex-wrap: wrap !important;
max-width: 100% !important;
}
#add_to_cart_wrap {
max-width: 100% !important;
flex-wrap: wrap !important;
}
.oe_product .o_wsale_product_btn { white-space: normal !important; flex-wrap: wrap !important; }
.oe_product .o_wsale_product_btn .o_add_wishlist, .oe_product .o_wsale_product_btn .o_add_compare { position: static !important; }
/* === Wishlist heart to top-right of product card === */
.oe_product .o_wsale_product_grid_wrapper {
position: relative !important;
}
.oe_product .o_wsale_product_btn .o_add_wishlist {
position: absolute !important;
top: 10px !important;
right: 10px !important;
z-index: 10 !important;
width: 36px !important;
height: 36px !important;
border-radius: 50% !important;
background: #f0f0f0 !important;
border: none !important;
box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
padding: 0 !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
transition: background 0.2s ease !important;
}
.oe_product .o_wsale_product_btn .o_add_wishlist i {
color: #666 !important;
font-size: 16px !important;
text-shadow: none !important;
transition: color 0.2s ease !important;
}
.oe_product .o_wsale_product_btn .o_add_wishlist:hover i {
color: #e74c3c !important;
}
.oe_product .product_price span.text-success {
display: inline-block !important;
background-color: #e8f5e9 !important;
color: #2e7d32 !important;
border-radius: 50px !important;
padding: 4px 12px !important;
font-size: 12px !important;
font-weight: 600 !important;
}
.oe_product .css_not_available .o_wsale_product_btn,
.oe_product .css_not_available ~ .o_wsale_product_btn,
.css_not_available .o_wsale_product_btn {
opacity: 0.5 !important;
pointer-events: none !important;
cursor: not-allowed !important;
}
/* === Wishlist: hide Sin existencias, style Sin existencias === */
span.o_wsale_stock_badge {
display: block !important;
text-align: center !important;
font-size: 13px  !important;
font-weight: 700 !important;
padding: 4px 12px !important;
margin: 10px auto !important;
}
/* === Sin existencias badge pill style in shop === */
.oe_product .text-center.small.mt-1 span[style*="color: red"],
.oe_product .text-center.small.mt-1 span[style*="color:red"] {
background-color: #fde8e8 !important;
color: #dc3545 !important;
border-radius: 50px !important;
padding: 8px 20px !important;
font-size: 16px !important;
font-weight: 600 !important;
display: inline-block !important;
}
.oe_product .text-center.small.mt-1 span[style*="color: red"] *,
.oe_product .text-center.small.mt-1 span[style*="color:red"] * {
color: #dc3545 !important;
}
/* === Disponibilidad badge pill style in shop === */
.oe_product .text-center.small.mt-1 span[style*="color: green"],
.oe_product .text-center.small.mt-1 span[style*="color:green"],
.oe_product .text-center.small.mt-1 span.text-success,
.oe_product .product_price span.text-success,
.oe_product span.text-success,
.oe_product span[style*="color: green"],
.oe_product span[style*="color:green"] {
background-color: #e8f5e9 !important;
color: #2e7d32 !important;
border-radius: 50px !important;
padding: 8px 20px !important;
font-size: 13px !important;
font-weight: 600 !important;
display: inline-block !important;
}
.oe_product .text-center.small.mt-1 span.text-success i,
.oe_product span.text-success i,
.oe_product span[style*="color: green"] i,
.oe_product span[style*="color:green"] i {
color: #fff !important;
}

/* Reduce Add to Cart button ONLY in product grid */
#wrap .oe_product button,
#wrap .oe_product .a-submit,
.oe_website_sale .oe_product button.btn-primary,
.oe_website_sale .oe_product .a-submit,
#products_grid button,
#o_wsale_products_grid button {
font-size: 18px !important;
padding: 6px 12px !important;
line-height: 1.2 !important;
}
/* === Product Detail Page: Cart/Wishlist/Compare Layout === */
#product_detail .product_price + div,
#product_detail form .css_quantity + #add_to_cart_wrap {
/* no changes needed here */
}
/* Make the product form action area wrap */
#product_detail form .css_quantity,
.o_wsale_product_page #add_to_cart_wrap {
flex-wrap: wrap;
}
/* Product page: force the action buttons area to be a column layout */
#product_detail #add_to_cart_wrap {
display: flex !important;
flex-wrap: wrap !important;
width: 100% !important;
}
/* Cart button: full width on first row */
#product_detail #add_to_cart_wrap > a.btn-primary,
#product_detail #add_to_cart_wrap > button.btn-primary {
flex: 1 1 auto !important;
min-width: 200px !important;
font-size: 16px !important;
padding: 10px 20px !important;
}
/* Option block (wishlist + compare) on second row */
#product_detail #product_option_block {
display: flex !important;
width: 100% !important;
margin-top: 8px !important;
gap: 8px !important;
}
/* Wishlist button: show text, full width style */
#product_detail #product_option_block .o_add_wishlist,
#product_detail #product_option_block .o_wsale_wishlist_btn {
flex: 1 1 auto !important;
padding: 6px 10px !important;
font-size: 14px !important;
}
/* Compare button beside wishlist */
#product_detail #product_option_block .o_add_compare,
#product_detail #product_option_block .o_wsale_compare_btn {
padding: 6px 10px !important;
font-size: 14px !important;
}
/* === Wider wishlist button on product detail === */
#product_detail .o_add_wishlist_dyn,
#product_details .o_add_wishlist_dyn,
.o_wsale_product_page .o_add_wishlist_dyn {
flex-grow: 1 !important;
width: auto !important;
}
/* === Bigger availability badge on product detail === */
#product_detail .badge.rounded-pill,
#product_details .badge.rounded-pill,
.o_wsale_product_page .badge.rounded-pill {
font-size: 16px !important;
padding: 8px 20px !important;
font-weight: 600 !important;
}
/* === Wishlist: green availability pill badge === */
.o_wsale_wishlist_page .text-center.small.mt-1 span[style*="color: green"] {
background-color: #198754 !important;
color: #fff !important;
border-radius: 50px !important;
padding: 4px 12px !important;
font-size: 13px !important;
font-weight: 600 !important;
display: inline-block !important;
}
.o_wsale_wishlist_page .text-center.small.mt-1 span[style*="color: green"] i {
color: #fff !important;
}
/* === Wishlist: red out-of-stock pill badge === */
.o_wsale_wishlist_page span.o_wsale_stock_badge.text-bg-danger {
background-color: #dc3545 !important;
color: #fff !important;
border-radius: 50px !important;
padding: 4px 12px !important;
font-size: 13px !important;
font-weight: 600 !important;
display: inline-block !important;
border: none !important;
margin: 10px auto !important;
}
.o_wsale_wishlist_page span.o_wsale_stock_badge.text-bg-danger i {
color: #fff !important;
}

/* === Shop grid badges: light bg style (higher specificity) === */
#wrapwrap .oe_product .text-center.small.mt-1 span[style*="color: green"],
#wrapwrap .oe_product .text-center.small.mt-1 span[style*="color:green"],
#wrapwrap .oe_product .text-center.small.mt-1 span.text-success,
#wrapwrap .oe_product span.text-success,
#wrapwrap .oe_product span[style*="color: green"],
#wrapwrap .oe_product span[style*="color:green"] {
background-color: #e8f5e9 !important;
color: #2e7d32 !important;
}
#wrapwrap .oe_product .text-center.small.mt-1 span.text-success i,
#wrapwrap .oe_product span.text-success i,
#wrapwrap .oe_product span[style*="color: green"] i,
#wrapwrap .oe_product span[style*="color:green"] i {
color: #2e7d32 !important;
}
#wrapwrap .oe_product .text-center.small.mt-1 span[style*="color: red"],
#wrapwrap .oe_product .text-center.small.mt-1 span[style*="color:red"] {
background-color: #fde8e8 !important;
color: #dc3545 !important;
}
#wrapwrap .oe_product .text-center.small.mt-1 span[style*="color: red"] i,
#wrapwrap .oe_product .text-center.small.mt-1 span[style*="color:red"] i {
color: #dc3545 !important;
}
/* === Inline search bar in navbar === */
#nm2SearchInline {
  display: flex;
  align-items: center;
  background: #f0f0f0;
  border-radius: 25px;
  padding: 0 15px;
  min-width: 300px;
  max-width: 550px;
  flex-grow: 1;
}
#nm2SearchInline input {
  border: none;
  background: transparent;
  outline: none;
  font-size: 15px;
    font-weight: 500;
  width: 100%;
  color: #333;
}
#nm2SearchInline input::placeholder { color: #999; }
#nm2SearchInline i { color: #999; margin-right: 8px; }
#nm2SearchInline button { background: #0294CE; color: #fff; border: none; border-radius: 0 25px 25px 0; padding: 6px 18px; font-size: 15px; font-weight: 600; cursor: pointer; white-space: nowrap; margin-right: -15px; }
#nm2SearchInline button:hover { background: #027aa8; }
#nm2SearchInline button i { color: #fff; margin: 0; font-size: 16px; }
@media (max-width: 991px) { #nm2SearchInline { display: none !important; } }
/* === Wishlist: 4 columns === */
.o_wsale_wishlist_page .o_wsale_products_grid_table_wrapper { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 15px !important; }
.o_wsale_wishlist_page .o_wsale_products_grid_table_wrapper > div { width: 100% !important; max-width: 100% !important; }
@media (max-width: 991px) { .o_wsale_wishlist_page .o_wsale_products_grid_table_wrapper { grid-template-columns: repeat(2, 1fr) !important; } }
.s_dynamic_snippet_category_list [name="category_overlay"]{justify-content:flex-start!important;align-items:flex-start!important}
.s_dynamic_snippet_category_list [name="category_overlay"] h3{align-self:flex-start!important;text-align:left!important;margin-left:0!important;margin-right:auto!important}
.nm2-cat-btn{align-self:flex-start!important;margin-right:auto!important}
@media(max-width:767px){.nm2-marquee-track{animation-duration:10s!important}}
.oe_product .css_not_available .a-submit, .oe_product .css_not_available a#add_to_cart, .css_not_available .o_wsale_product_btn .a-submit{display:inline-block!important;opacity:0.4!important;pointer-events:none!important;cursor:not-allowed!important}
#o_main_nav .navbar-nav:not(#top_menu) a[href*="contactus"]{display:none!important}
.o_wsale_wishlist_page .o_wsale_product_btn{flex-wrap:nowrap!important;gap:2px!important}
.o_wsale_wishlist_page .css_quantity input{width:30px!important;padding:1px!important;font-size:12px!important}
.o_wsale_wishlist_page .css_quantity .btn{padding:2px 6px!important}
.o_wsale_wishlist_page .a-submit{font-size:11px!important;padding:5px 8px!important}
.o_wsale_wishlist_page input.js_shop_qty_input{width:25px!important;min-width:25px!important;max-width:25px!important;padding:2px 0!important}
.oe_product:has(.css_not_available) .o_wsale_product_btn,.oe_product:has(.css_not_available) .css_quantity,.css_not_available ~ .o_wsale_product_btn,.css_not_available ~ .css_quantity{display:none!important}

/* === nm2-wishlist-price: Force smaller price on wishlist === */
#wrapwrap .o_wsale_wishlist_page .oe_product .product_price,
#wrapwrap .o_wsale_wishlist_page .oe_product .product_price span,
#wrapwrap .o_wsale_wishlist_page .oe_product .product_price .oe_currency_value,
#wrapwrap .o_wsale_wishlist_page .oe_product span.oe_currency_value,
body .o_wsale_wishlist_page .product_price .oe_currency_value {
  font-size: 16px !important;
  font-weight: 600 !important;
}

/* === nm2-price-capsule: Price pill — match wishlist style === */
.oe_product .nm2-price-pill {
  background-color: #f0f0f0 !important;
  border: 3px solid #28a745 !important;
  border-radius: 50px !important;
  padding: 0 14px !important;
  display: inline-block !important;
  margin: 2px 0 !important;
  height: 25px !important;
  line-height: 17px !important;
  overflow: hidden !important;
}
.oe_product .nm2-price-pill,
.oe_product .nm2-price-pill span,
.oe_product .nm2-price-pill .oe_currency_value {
  font-size: 16px !important;
  font-weight: 600 !important;
}


/* nm2-price-bars override — when pill has been converted to bars */
.oe_product .nm2-price-pill:has(.nm2-mini-bar) {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 6px !important;
  height: auto !important;
  overflow: visible !important;
  display: block !important;
  line-height: normal !important;
  margin: 4px 0 !important;
}

.oe_product .product_price.nm2-price-ready {
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
}
/* nm2-hide-qty-default: hide qty selector until JS confirms stock */
#o_wsale_products_grid .oe_product .css_quantity,
#o_wsale_products_grid .oe_product .o_wsale_product_btn,
#o_wsale_products_grid .oe_product .o_wsale_product_action_row,
#o_wsale_products_grid article .css_quantity,
#o_wsale_products_grid article .o_wsale_product_btn {
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}
#o_wsale_products_grid .oe_product.nm2-has-stock .css_quantity,
#o_wsale_products_grid .oe_product.nm2-has-stock .o_wsale_product_btn,
#o_wsale_products_grid .oe_product.nm2-has-stock .o_wsale_product_action_row,
#o_wsale_products_grid article.nm2-has-stock .css_quantity,
#o_wsale_products_grid article.nm2-has-stock .o_wsale_product_btn {
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
  margin: revert !important;
  padding: revert !important;
}

.oe_product .nm2-pill-converted {
  visibility: visible !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 6px !important;
  height: auto !important;
  overflow: visible !important;
  display: block !important;
  line-height: normal !important;
  margin: 4px 0 !important;
}

/* === nm2-detail-price: Price capsule on product detail page === */
#product_detail .product_price {
  background-color: #f0f0f0 !important;
  border-radius: 50px !important;
    padding: 2px 14px !important;
  display: inline-block !important;
    border: 1px solid #28a745 !important;
    min-height: 25px !important;
}
#product_detail .product_price .oe_currency_value,
#product_detail .product_price .oe_price,
#product_detail .product_price .h5,
#product_detail .product_price [name="product_price_container"] {
    font-size: 16px !important;
  font-weight: 600 !important;
}

/* Precio más grande en ficha de producto */
#product_detail .nm2-price-capsule,
#product_detail .nm2-price-pill,
.o_wsale_product_page .nm2-price-capsule,
.o_wsale_product_page .nm2-price-pill {
    font-size: 16px !important;
}

/* nm2-fix-carousel-loading-v2 */
#nm2Carousel.carousel-fade .carousel-item {
  opacity: 0;
  transition: opacity 0.8s ease;
}
#nm2Carousel.carousel-fade .carousel-item.active {
  opacity: 1;
}

/* === Cart: smaller product name === */
#wrap .oe_cart .td-product_name a, #wrap .oe_cart .td-product_name span, .oe_website_sale .td-product_name a, .o_wsale_cart .td-product_name a { font-size: 14px !important; line-height: 1.4 !important; }

/* === Cart: smaller product name === */
a[name="o_cart_line_product_link"] h6,
a.o_cart_line_product_link h6 {
  font-size: 1rem !important;
  text-align: justify !important;
}

/* === Category cards: rounded corners + elevation hover === */
.s_dynamic_snippet_category_list [name="category_item"] {
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.s_dynamic_snippet_category_list [name="category_item"]:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 10px 25px rgba(0,0,0,0.15) !important;
}

/* === Shop grid: product card shadow + hover elevation === */
.oe_product {
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  border-radius: 10px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}
.oe_product:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 10px 25px rgba(0,0,0,0.12) !important;
}

/* === Homepage: breathing space between sections === */
#wrapwrap .nm2-brands-section { margin-top: 50px !important; }
@media (max-width: 767px) { #wrapwrap .nm2-brands-section { margin-top: 10px !important; } #wrapwrap .nm2-brands-section p { margin-bottom: 10px !important; } }

/* === Fade-in on scroll animation === */
.nm2-fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease !important;
}
.nm2-fade-in.nm2-visible {
  opacity: 1;
  transform: translateY(0);
}

/* === "Nuevo" badge on recently added products === */
.nm2-badge-nuevo {
  position: absolute !important;
  top: 10px !important;
  left: 10px !important;
  z-index: 10 !important;
  background-color: #0294CE !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 3px 10px !important;
  border-radius: 4px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

/* === Back to top button === */
.nm2-back-top {
  position: fixed !important;
  bottom: 95px !important;
  right: 25px !important;
  z-index: 9998 !important;
  width: 45px !important;
  height: 45px !important;
  border-radius: 50% !important;
  background-color: #0294CE !important;
  color: #fff !important;
  border: none !important;
  cursor: pointer !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
  transition: transform 0.3s ease, opacity 0.3s ease !important;
  opacity: 0.8 !important;
  font-size: 20px !important;
}
.nm2-back-top:hover {
  transform: scale(1.1) !important;
  opacity: 1 !important;
}
.nm2-back-top.nm2-show {
  display: flex !important;
}

/* === Scroll indicator arrow below banner === */
@keyframes nm2bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(8px); }
}
.nm2-scroll-indicator {
  position: absolute !important;
  bottom: 40px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 10 !important;
  animation: nm2bounce 1.5s ease infinite !important;
  cursor: pointer !important;
  opacity: 0.7 !important;
  transition: opacity 0.3s ease !important;
}
.nm2-scroll-indicator:hover {
  opacity: 1 !important;
}
.nm2-scroll-indicator svg {
  width: 30px !important;
  height: 30px !important;
  fill: #fff !important;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)) !important;
}

/* === Decorative separator between sections === */
.nm2-separator {
  text-align: center !important;
  margin: 0 auto !important;
  padding: 10px 0 !important;
}
.nm2-separator::before {
  content: "" !important;
  display: inline-block !important;
  width: 60px !important;
  height: 3px !important;
  background: #0294CE !important;
  border-radius: 3px !important;
}

/* === Quick filters in shop === */
.nm2-quick-filters {
  display: flex !important;
  gap: 8px !important;
  margin: 10px 0 15px 0 !important;
  flex-wrap: wrap !important;
}
#products_grid .nm2-quick-filters button,
#o_wsale_products_grid .nm2-quick-filters button,
#wrap .nm2-quick-filters button,
.nm2-quick-filters button.nm2-active,
.nm2-quick-filters button.nm2-transit-btn {
  background: rgba(2,148,206,0.08) !important;
  border: 1px solid rgba(2,148,206,0.2) !important;
  color: #1a2332 !important;
  border-radius: 6px !important;
  padding: 6px 14px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  line-height: 1.4 !important;
}
#products_grid .nm2-quick-filters button:hover,
#products_grid .nm2-quick-filters button.nm2-active,
#o_wsale_products_grid .nm2-quick-filters button:hover,
#o_wsale_products_grid .nm2-quick-filters button.nm2-active,
#wrap .nm2-quick-filters button:hover,
#wrap .nm2-quick-filters button.nm2-active {
  background: #0294CE !important;
  color: #fff !important;
  border-color: #0294CE !important;
}

/* === Low stock alert === */
.nm2-low-stock {
  display: inline-block !important;
  background-color: #fff3cd !important;
  color: #856404 !important;
  border-radius: 50px !important;
  padding: 4px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-top: 5px !important;
}
.nm2-low-stock-detail {
  display: inline-block !important;
  background-color: #fff3cd !important;
  color: #856404 !important;
  border-radius: 8px !important;
  padding: 6px 14px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin-top: 8px !important;
}

/* === Fix: force CTA visible after reorderProductFields === */
#o_wsale_product_cta_section > div.d-none {
  display: flex !important;
}

.availability_messages .o_add_wishlist_dyn,
.availability_messages .availability_message_undefined {
  display: none !important;
}

/* === Wishlist: hide duplicate stock badge === */

.o_wsale_product_sub .text-center.small.mt-1 .badge.rounded-pill.text-bg-danger {
  display: none !important;
}

/* === Product documents: styled download button === */
#product_detail .o_product_documents,
.o_wsale_product_page .o_product_documents {
  margin-top: 15px !important;
}
#product_detail .o_product_documents h5,
.o_wsale_product_page .o_product_documents h5 {
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: #333 !important;
  margin-bottom: 10px !important;
}
#product_detail .o_product_documents a,
.o_wsale_product_page .o_product_documents a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: #0294CE !important;
  color: #fff !important;
  padding: 10px 20px !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
  width: 100% !important;
  justify-content: center !important;
}
#product_detail .o_product_documents a:hover,
.o_wsale_product_page .o_product_documents a:hover {
  background: #027aa8 !important;
  transform: translateY(-2px) !important;
}
#product_detail .o_product_documents a i,
.o_wsale_product_page .o_product_documents a i {
  color: #fff !important;
  font-size: 18px !important;
}

/* nm2-ficha-tecnica */
#product_documents strong[data-oe-field="arch"] { display: none !important; }
#product_documents .list-group { border: none !important; gap: 8px; }
#product_documents .list-group-item {
  background: linear-gradient(135deg, #444 0%, #333 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 7px 22px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  box-shadow: 0 3px 12px rgba(0,0,0,0.2) !important;
  cursor: pointer !important;
}
#product_documents .list-group-item:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3) !important;
  color: #fff !important;
}
#product_documents .list-group-item .fa-download {
  font-size: 18px !important;
}

/* nm2-hide-doc-separators-v3 */
#product_documents {
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 5px !important;
}
.o_wsale_product_details_content_section_contact {
  border-top: none !important;
  border-bottom: none !important;
}
.o_wsale_product_cta_section {
  border-bottom: none !important;
}

/* nm2-doc-spacing-v4 */
#product_documents {
  padding-top: 0 !important;
  margin-top: -40px !important;
}
.o_wsale_product_details_content_section_contact.mb-4 {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  min-height: 0 !important;
}
.o_wsale_product_details_content_section_contact #contact_us_wrapper {
  margin: 0 !important;
  padding: 0 !important;
}

/* nm2-cart-btn-height-v2 */
.o_wsale_product_btn_primary {
  padding: 6px 12px !important;
  font-size: 18px !important;
  min-height: unset !important;
  height: 32px !important;
}
.o_wsale_product_action_row {
  min-height: unset !important;
  height: auto !important;
}
.o_wsale_product_action_row .css_quantity {
  height: 32px !important;
}
.o_wsale_product_action_row .css_quantity input {
  height: 32px !important;
  padding: 2px 4px !important;
}
.o_wsale_product_action_row .css_quantity .btn {
  height: 32px !important;
  padding: 2px 8px !important;
}

/* nm2-cart-animation */
@keyframes nm2-cart-bounce {
  0% { transform: scale(1); }
  25% { transform: scale(1.35); }
  50% { transform: scale(0.9); }
  75% { transform: scale(1.15); }
  100% { transform: scale(1); }
}
@keyframes nm2-cart-flash {
  0% { background: transparent; }
  50% { background: rgba(2,148,206,0.15); }
  100% { background: transparent; }
}
@keyframes nm2-fly {
  0% { opacity: 1; transform: translate(0,0) scale(1); }
  80% { opacity: 0.6; transform: translate(var(--nm2-fly-x), var(--nm2-fly-y)) scale(0.3); }
  100% { opacity: 0; transform: translate(var(--nm2-fly-x), var(--nm2-fly-y)) scale(0); }
}
.nm2-cart-bouncing { animation: nm2-cart-bounce 0.6s ease; }
.nm2-cart-flash { animation: nm2-cart-flash 0.6s ease; border-radius: 50%; }
.nm2-fly-dot { position: fixed; width: 14px; height: 14px; background: #0294CE; border-radius: 50%; z-index: 99999; pointer-events: none; animation: nm2-fly 0.7s ease-in forwards; }

/* nm2-mini-cart */
.nm2-minicart-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); z-index: 99998; opacity: 0; transition: opacity 0.3s; pointer-events: none; }
.nm2-minicart-overlay.show { opacity: 1; pointer-events: all; }
.nm2-minicart { position: fixed; top: 0; right: -400px; width: 380px; max-width: 90vw; height: 100%; background: #fff; z-index: 99999; box-shadow: -4px 0 20px rgba(0,0,0,0.15); transition: right 0.3s ease; display: flex; flex-direction: column; }
.nm2-minicart.show { right: 0; }
.nm2-minicart-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid #eee; }
.nm2-minicart-header h4 { margin: 0; font-size: 18px; font-weight: 700; color: #333; }
.nm2-minicart-close { background: none; border: none; font-size: 24px; color: #888; cursor: pointer; padding: 0 4px; line-height: 1; }
.nm2-minicart-close:hover { color: #333; }
.nm2-minicart-body { flex: 1; overflow-y: auto; padding: 15px 20px; }
.nm2-minicart-empty { text-align: center; color: #999; padding: 40px 0; font-size: 14px; }
.nm2-minicart-item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid #f0f0f0; }
.nm2-minicart-item img { width: 65px; height: 65px; object-fit: contain; background: #f8f9fa; border-radius: 8px; padding: 4px; }
.nm2-minicart-item-info { flex: 1; }
.nm2-minicart-item-name { font-size: 13px; font-weight: 500; color: #333; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; }
.nm2-minicart-item-price { font-size: 14px; font-weight: 700; color: #0294CE; margin-top: 4px; }
.nm2-minicart-item-qty { font-size: 12px; color: #888; }
.nm2-minicart-footer { padding: 15px 20px; border-top: 1px solid #eee; background: #f8f9fa; }
.nm2-minicart-total { display: flex; justify-content: space-between; font-size: 16px; font-weight: 700; color: #333; margin-bottom: 12px; }
.nm2-minicart-checkout { display: block; width: 100%; background: linear-gradient(135deg, #0294CE 0%, #0277a8 100%); color: #fff; border: none; border-radius: 10px; padding: 12px; font-size: 15px; font-weight: 600; cursor: pointer; text-align: center; text-decoration: none !important; transition: transform 0.2s, box-shadow 0.2s; }
.nm2-minicart-checkout:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(2,148,206,0.4); color: #fff; }
.nm2-minicart-continue { display: block; width: 100%; background: none; border: 1px solid #ddd; border-radius: 10px; padding: 10px; font-size: 13px; font-weight: 500; color: #555; cursor: pointer; text-align: center; margin-top: 8px; transition: background 0.2s; }
.nm2-minicart-continue:hover { background: #f0f0f0; }

/* nm2-last-purchased */
.nm2-purchased-badge { display: inline-flex; align-items: center; gap: 8px; background: #d4edda; border: 1px solid #28a745; color: #155724; border-radius: 8px; padding: 8px 16px; font-size: 13px; font-weight: 500; margin-top: 10px; }
.nm2-purchased-badge svg { width: 16px; height: 16px; fill: #28a745; flex-shrink: 0; }

/* nm2-category-hover */
.s_dynamic_snippet_category_list [name="category_item"] {
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.s_dynamic_snippet_category_list [name="category_item"]:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important;
}
/* Zoom en imagen al hover */
.s_dynamic_snippet_category_list [name="category_item"] .o_category_image {
  transition: transform 0.5s ease !important;
}
.s_dynamic_snippet_category_list [name="category_item"]:hover .o_category_image {
  transform: scale(1.1) !important;
}
/* Overlay gradiente mejorado */
.s_dynamic_snippet_category_list [name="category_overlay"] {
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 50%, transparent 100%) !important;
  transition: background 0.3s ease !important;
  justify-content: flex-end !important;
  padding-bottom: 15px !important;
}
.s_dynamic_snippet_category_list [name="category_item"]:hover [name="category_overlay"] {
  background: linear-gradient(to top, rgba(2,148,206,0.8) 0%, rgba(0,0,0,0.1) 50%, transparent 100%) !important;
}
/* Texto del nombre */
.s_dynamic_snippet_category_list [name="category_overlay"] h3 {
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5) !important;
  transition: transform 0.3s ease, text-shadow 0.3s ease !important;
  text-align: center !important;
}
.s_dynamic_snippet_category_list [name="category_item"]:hover [name="category_overlay"] h3 {
  transform: translateY(-3px) !important;
  text-shadow: 0 2px 12px rgba(0,0,0,0.7) !important;
}
/* Ocultar el span filter */
.s_dynamic_snippet_category_list .o_category_filter {
  display: none !important;
}

/* nm2-quote-pdf */
.nm2-quote-btn { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 2px solid #0294CE; color: #0294CE; border-radius: 10px; padding: 10px 22px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; margin-top: 12px; }
.nm2-quote-btn:hover { background: #0294CE; color: #fff; transform: translateY(-2px); box-shadow: 0 4px 15px rgba(2,148,206,0.3); }
.nm2-quote-btn svg { width: 18px; height: 18px; fill: currentColor; }
.nm2-quote-btn.nm2-generating { opacity: 0.6; pointer-events: none; }

/* nm2-share-qr-row */
.nm2-share-qr-row { display: flex; align-items: center; justify-content: flex-start; gap: 20px;  margin-top: 14px; padding: 8px 12px; background: #f8f9fa; border-radius: 10px; border: 1px solid #eee; width: 100% !important; box-sizing: border-box !important; }
.nm2-share-bar { display: flex; align-items: center; gap: 12px; margin-top: 0 !important; }
.nm2-share-bar span { font-size: 12px; color: #555; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; background: #f0f0f0; padding: 6px 14px; border-radius: 6px; border: 1px solid #ddd; }
.nm2-share-icon { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; border: none; }
.nm2-share-icon:hover { transform: scale(1.15); box-shadow: 0 3px 12px rgba(0,0,0,0.2); }
.nm2-share-icon svg { width: 18px; height: 18px; fill: #fff; }
.nm2-share-wa { background: #25D366; }
.nm2-share-email { background: #0294CE; }
.nm2-share-copy { background: #6c757d; position: relative; }
.nm2-share-copy.nm2-copied { background: #28a745; }
.nm2-share-tooltip { position: absolute; background: #333; color: #fff; font-size: 11px; padding: 4px 10px; border-radius: 6px; margin-top: -40px; white-space: nowrap; opacity: 0; transition: opacity 0.3s; pointer-events: none; }
.nm2-share-tooltip.show { opacity: 1; }
.nm2-qr-container { display: flex; align-items: center; gap: 6px; margin-left: auto; margin-top: 0 !important; padding: 0 !important; background: none !important; border: none !important; }
.nm2-qr-container img { border-radius: 4px; }
.nm2-qr-label { font-size: 10px; color: #888; font-weight: 500; max-width: 80px; line-height: 1.3; }

/* nm2-cta-inline-preload */
#o_wsale_cta_wrapper:not(:has(.nm2-cta-done)) {
  opacity: 0;
  max-height: 50px;
  overflow: hidden;
  transition: opacity 0.3s;
}
#o_wsale_cta_wrapper:has(.nm2-cta-done) {
  opacity: 1;
  max-height: none;
}

/* nm2-availability-full-width-v2 */
.o_wsale_product_details_content_section_cta .mb-2 .badge.rounded-pill {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  padding: 10px !important;
  font-size: 14px !important;
}

/* nm2-purchased-inline */
.nm2-purchased-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  background: #d4edda !important;
  border: 1px solid #28a745 !important;
  color: #155724 !important;
  border-radius: 20px !important;
  padding: 5px 12px !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  margin: 0 !important;
}
.nm2-purchased-badge svg { width: 12px !important; height: 12px !important; }
.nm2-price-purchased-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  flex-wrap: nowrap !important;
}

/* nm2-toast */
.nm2-toast { position:fixed; top:20px; right:20px; background:#fff; border-radius:12px; box-shadow:0 8px 30px rgba(0,0,0,0.15); padding:16px 20px; z-index:99999; display:flex; align-items:center; gap:12px; transform:translateX(120%); transition:transform 0.4s ease; max-width:380px; border-left:4px solid #28a745; }
.nm2-toast.show { transform:translateX(0); }
.nm2-toast-icon { width:40px; height:40px; background:#d4edda; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.nm2-toast-icon svg { width:20px; height:20px; fill:#28a745; }
.nm2-toast-body { flex:1; }
.nm2-toast-title { font-size:14px; font-weight:700; color:#333; margin-bottom:2px; }
.nm2-toast-msg { font-size:12px; color:#888; }
.nm2-toast-btn { background:#0294CE; color:#fff !important; border:none; border-radius:6px; padding:6px 14px; font-size:12px; font-weight:600; cursor:pointer; white-space:nowrap; flex-shrink:0; text-decoration:none !important; }
.nm2-toast-btn:hover { background:#0277a8; }
.nm2-toast-close { position:absolute; top:8px; right:10px; background:none; border:none; font-size:16px; color:#ccc; cursor:pointer; }

/* nm2-checkout-progress */
.o_wizard {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0 !important;
  padding: 20px 0 !important;
  margin-bottom: 20px !important;
  border-bottom: 1px solid #eee !important;
  width: 100% !important;
}
.o_wizard > span { text-decoration: none !important; }
.o_wizard .fa-angle-right { font-size: 18px !important; color: #ddd !important; margin: 0 15px !important; }
.o_wizard [name="step_name"] p { margin: 0 !important; font-size: 14px !important; }
.o_wizard > span:not(.o_disabled) [name="step_name"] p { font-weight: 700 !important; color: #0294CE !important; }
.o_wizard > span.o_disabled [name="step_name"] p { font-weight: 500 !important; color: #aaa !important; }

/* nm2-cart-product-name */
.o_cart_product h6.text-wrap { font-size: 15px !important; }

/* nm2-image-zoom */
.carousel-item:has(img.product_detail_img) { overflow: hidden !important; cursor: zoom-in !important; }
img.product_detail_img { transition: transform 0.3s ease !important; }

/* nm2-back-to-top-position-v2 */
button.nm2-back-top { bottom: 140px !important; }

/* nm2-trust-badges */
.nm2-trust-badges { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; padding:16px; background:#f8f9fa; border-radius:12px; border:1px solid #eee; }
.nm2-trust-item { display:flex; align-items:flex-start; gap:8px; }
.nm2-trust-icon { font-size:22px; line-height:1; }
.nm2-trust-title { font-size:12px; font-weight:700; color:#333; }
.nm2-trust-desc { font-size:11px; color:#888; line-height:1.3; }

/* nm2-buy-now */
.nm2-buy-now { width:100%; padding:7px 20px; font-size:14px; font-weight:600; background:linear-gradient(135deg,#FF6B35 0%,#e55a2b 100%); color:#fff !important; border:none; border-radius:8px; cursor:pointer; margin-top:8px; transition:transform 0.2s,box-shadow 0.2s; display:flex; align-items:center; justify-content:center; gap:8px; }
.nm2-buy-now:hover { transform:translateY(-2px); box-shadow:0 4px 15px rgba(255,107,53,0.4); }

/* nm2-gallery-layout */
#o-carousel-product { display:flex !important; flex-direction:column !important; align-items:center !important; }
#o-carousel-product > .o_carousel_product_outer { order:1 !important; width:100% !important; max-width:500px !important; margin:0 auto !important; }
#o-carousel-product > .o_carousel_product_indicators { order:2 !important; flex-direction:row !important; height:auto !important; max-height:100px !important; width:100% !important; justify-content:center !important; gap:10px !important; margin-top:12px !important; overflow:visible !important; }
#o-carousel-product > .o_carousel_product_indicators > ol { display:flex !important; flex-direction:row !important; height:auto !important; max-height:100px !important; gap:10px !important; justify-content:center !important; margin:0 !important; padding:0 !important; position:relative !important; }
#o-carousel-product > .o_carousel_product_indicators > ol > li { width:auto !important; height:auto !important; flex-shrink:0 !important; }
#o-carousel-product > .o_carousel_product_indicators img { width:85px !important; height:85px !important; object-fit:contain !important; border-radius:8px !important; }

/* nm2-thumb-arrows */
.o_carousel_product_indicators ol::-webkit-scrollbar { display:none !important; }
.o_carousel_product_indicators ol { scrollbar-width:none !important; -ms-overflow-style:none !important; }
.nm2-thumb-arrow { background:#0294CE; color:#fff; border:none; border-radius:50%; width:32px; height:32px; min-width:32px; font-size:20px; line-height:30px; text-align:center; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,0.15); flex-shrink:0; user-select:none; }
.nm2-thumb-arrow:hover { background:#0277a8; }

/* nm2-authorized-badge */
.nm2-auth-badge { display:flex; align-items:center; gap:5px; background:none; color:#607d8b; padding:4px 0; font-size:12px; font-weight:500; margin-top:6px; width:fit-content; }
.nm2-auth-badge .fa { color:#28a745; font-size:14px; }

/* nm2-product-img-frame */
.o_carousel_product_outer { border:2px solid #eee !important; border-radius:12px !important; padding:10px !important; background:#fff !important; box-shadow:0 2px 10px rgba(0,0,0,0.06) !important; }

/* nm2-open-indicator */
@keyframes nm2pulse{0%{opacity:1;transform:scale(1);}50%{opacity:0.5;transform:scale(1.4);}100%{opacity:1;transform:scale(1);}}
.nm2-open-dot { width:12px; height:12px; border-radius:50%; display:inline-block; }
.nm2-open-dot.open { background:#28a745; animation:nm2pulse 1.5s infinite; }
.nm2-open-dot.closed { background:#dc3545; }
.nm2-open-text { font-size:15px; font-weight:700; color:#fff; }
.nm2-open-indicator { display:flex; align-items:center; gap:6px; padding:0 10px; list-style:none; }

/* nm2-load-more (DISABLED - usando paginación tradicional) */
.nm2-load-more { display:none !important; }
/* Mejorar visibilidad del pager nativo de Odoo */
#o_wsale_pager { display: flex !important; margin-top: 20px !important; }
#o_wsale_pager .pagination { gap: 4px; }
#o_wsale_pager .page-link { color: #0294CE; border-color: #d0e3ed; padding: 8px 14px; font-weight: 600; }
#o_wsale_pager .page-item.active .page-link { background: #0294CE; border-color: #0294CE; color: #fff; }
#o_wsale_pager .page-link:hover { background: #e8f4fb; color: #0294CE; }
.nm2-load-more { display:block; margin:20px auto; background:#0294CE; color:#fff; border:none; border-radius:10px; padding:12px 30px; font-size:14px; font-weight:600; cursor:pointer; transition:transform 0.2s, box-shadow 0.2s; }
.nm2-load-more:hover { transform:translateY(-2px); box-shadow:0 4px 15px rgba(2,148,206,0.3); }
.nm2-load-more:disabled { background:#ccc; cursor:default; transform:none; box-shadow:none; }

/* nm2-cart-count-bounce */
@keyframes nm2-count-bounce{0%{transform:scale(1);}40%{transform:scale(1.5);}60%{transform:scale(0.9);}80%{transform:scale(1.2);}100%{transform:scale(1);}}
.nm2-count-bounce{animation:nm2-count-bounce 0.5s ease;}

/* nm2-fix-scroll-v3 */
html, body { overflow-y: auto !important; overflow-x: hidden !important; height: auto !important; }
#wrapwrap { overflow: visible !important; height: auto !important; }
.o_wsale_products_grid_table_wrapper { overflow: visible !important; }
.o_wsale_products_main_row > .col { overflow: visible !important; }

/* nm2-hide-native-cart-popup-v3 */
.o_cc1.toast { display: none !important; }

/* nm2-minicart-remove-style */
.nm2-minicart-remove { position:absolute !important; bottom:8px !important; right:8px !important; top:auto !important; cursor:pointer; font-size:13px; color:#999; z-index:10; line-height:1; }
.nm2-minicart-remove:hover { color:#e74c3c !important; }

/* nm2-tarifa-capsule */
.o_wsale_product_page div.text-muted.small.mb-2 { display:inline-block !important; background:#f0f0f0 !important; border:1px solid #ddd !important; border-radius:25px !important; padding:0px 14px !important; font-size:16px !important; color:#333 !important; line-height:23px !important; height:23px !important; margin-bottom:18px !important; }
.o_wsale_product_page div.text-muted.small.mb-2 span { font-size:16px !important; }
.o_wsale_product_page div.text-muted.small.mb-2 b span { font-size:16px !important; }
/* nm2-price-tarifa-spacing */
.o_wsale_product_page .o_wsale_product_details_content_section:has(+ .mb-2) { margin-bottom:4px !important; }

/* nm2-oos-hide */
.oe_product.nm2-oos .o_shop_qty_selector, .oe_product.nm2-oos button.js_shop_qty_minus, .oe_product.nm2-oos button.js_shop_qty_plus, .oe_product.nm2-oos input.js_shop_qty_input { display: none !important; }

/* nm2-wishlist-sort */
.o_wishlist_table { opacity:0; transition:opacity 0.3s; }
.o_wishlist_table.nm2-sorted { opacity:1; }

/* nm2-hide-availability-public */
.o_wsale_product_page .availability_messages, .o_wsale_product_page .badge.rounded-pill.text-bg-success, .o_wsale_product_page .badge.rounded-pill.text-bg-danger { display: none !important; }
.o_wsale_product_page .badge.rounded-pill.nm2-avail-visible { display: inline-flex !important; }

/* nm2-badge-center */
.o_wsale_product_page .badge.rounded-pill.text-bg-success, .o_wsale_product_page .badge.rounded-pill.text-bg-danger { text-align:center !important; justify-content:center !important; }

/* nm2-precio-label */
.nm2-precio-label { font-size:16px !important; font-weight:700; color:#333; margin-right:-5px; }
.o_wsale_product_page .product_price .text-muted { font-size:12px !important; margin-left:-6px !important; }

/* nm2-rounded-cta-buttons */
.o_wsale_product_page .css_quantity { border-radius:6px !important; overflow:hidden; }
.o_wsale_product_page button[name="add_to_cart"], .o_wsale_product_page #add_to_cart { border-radius:6px !important; }
.o_wsale_product_page .o_add_wishlist, .o_wsale_product_page .o_wsale_wishlist_btn, .o_wsale_product_page button .fa-heart, .o_wsale_product_page button .fa-heart-o { border-radius:25px !important; }
.o_wsale_product_page .o_add_compare, .o_wsale_product_page .o_wsale_compare_btn, .o_wsale_product_page button .fa-exchange { border-radius:25px !important; }
.o_wsale_product_page .o_add_wishlist_dyn, .o_wsale_product_page .o_comparelist_btn, .o_wsale_product_page .o_add_compare_dyn { border-radius:25px !important; }

/* nm2-brand-logo-size */
.nm2-brand-logo img { max-width:140px !important; height:auto !important; }
.nm2-brand-logo { margin-left: 20px !important; }

/* nm2-add-cart-btn-size */
.o_wsale_product_page button[name="add_to_cart"] { font-size:18px !important; }
.o_wsale_product_page button[name="add_to_cart"] i, .o_wsale_product_page button[name="add_to_cart"] .fa { font-size:20px !important; }

/* nm2-hide-knowledge-portal */
a[href="/knowledge/home"] { display:none !important; }
.o_portal_index_card:has(a[href="/knowledge/home"]) { display:none !important; }
.o_portal_category:has(a[href="/knowledge/home"]) { display:none !important; }

/* nm2-show-portal-cards */
.o_portal_index_card:has(a[href*="overdue_invoices"]) { display:block !important; }
.o_portal_index_card:has(a[href*="/my/security"]) { display:block !important; }

/* nm2-portal-style */
.o_portal_index_card a.d-flex { border:1px solid #e8e8e8; border-radius:12px; transition:all 0.3s; }
.o_portal_index_card a.d-flex:hover { border-color:#0294CE; box-shadow:0 4px 12px rgba(2,148,206,0.12); transform:translateY(-2px); }
.o_portal_index_card strong, .o_portal_index_card h5 { color:#0294CE !important; }

/* nm2-wishlist-price-border */
.o_wish_price {
  border: 3px solid #28a745 !important;
  border-radius: 50px !important;
  padding: 0 14px !important;
  background: #f0f0f0 !important;
  display: inline-block !important;
  text-align: center !important;
  height: 25px !important;
  line-height: 17px !important;
  overflow: hidden !important;
}

/* nm2-price-pill-mobile-fit */
@media (max-width: 767px) {
  .oe_product .nm2-price-pill {
    font-size: 13px !important;
    white-space: nowrap !important;
    overflow: visible !important;
    height: auto !important;
  }
  .oe_product .nm2-price-pill span,
  .oe_product .nm2-price-pill .oe_currency_value {
    font-size: 13px !important;
  }
}

/* nm2-hide-compare (FIX v2: solo oculta UI nativa Odoo, NO toca UI v4 nm2-*) */
/* Atacamos solo selectores nativos de Odoo. NO atacamos [class*="compare"] ni title*="ompar"
   porque rompian nuestros nm2-act--cmp. Tampoco .fa-exchange porque lo usa el icono nativo
   y necesitamos que se oculte: lo dejamos pero scopeado al wishlist page de Odoo. */
.o_add_compare,
.o_wsale_compare_btn,
.o_add_compare_dyn,
.o_comparelist_btn,
button.o_add_compare,
a.o_add_compare,
.o_wsale_wishlist_page .o_add_to_compare,
.o_wsale_wishlist_page .o_wsale_compare_btn,
.o_wsale_wishlist_page .fa-exchange,
.o_wsale_product_page .fa-exchange { display: none !important; }
/* Nuestros botones .nm2-act--cmp se mantienen visibles - no estan en estos selectores. */

/* nm2-wishlist-cart-btn-size */
.o_wsale_wishlist_page .o_wish_add button,
.o_wsale_wishlist_page button[name="add_to_cart"],
.o_wsale_wishlist_page .js_add_cart_wishlist,
.o_wsale_wishlist_page .o_wishlist_item button {
  font-size: 16px !important;
  padding: 6px 10px !important;
}
.o_wsale_wishlist_page .o_wish_add button .fa,
.o_wsale_wishlist_page button[name="add_to_cart"] .fa,
.o_wsale_wishlist_page .js_add_cart_wishlist .fa,
.o_wsale_wishlist_page .o_wishlist_item button .fa {
  font-size: 16px !important;
}

/* nm2-shop-cart-btn-size */
#o_wsale_products_grid .oe_product .o_wsale_product_btn_primary,
#o_wsale_products_grid article .o_wsale_product_btn_primary {
  font-size: 18px !important;
}
#o_wsale_products_grid .oe_product .o_wsale_product_btn_primary .fa {
  font-size: 20px !important;
}

/* nm2-hide-old-badges: hide capsule badges in shop grid */
#o_wsale_products_grid .oe_product span[style*="border-radius:800px"],
#o_wsale_products_grid .oe_product span[style*="border-radius: 800px"],
#o_wsale_products_grid article span[style*="border-radius:800px"],
#o_wsale_products_grid article span[style*="border-radius: 800px"],
#o_wsale_products_grid .oe_product .badge.rounded-pill,
#o_wsale_products_grid .oe_product .text-center.small.mt-1 span[style*="background"],
#o_wsale_products_grid article .text-center.small.mt-1 span[style*="background"] {
  display: none !important;
}
#o_wsale_products_grid .oe_product .nm2-status-bar,
#o_wsale_products_grid article .nm2-status-bar {
  display: block !important;
}

/* nm2-hide-old-modelo-sku */
#o_wsale_products_grid .shop_model_ref {
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
}

/* nm2-hide-old-wishlist-badges */
body.o_website_sale_wishlist_product_wishlist .o_wsale_stock_badge,
body.o_website_sale_wishlist_product_wishlist span.badge.text-bg-danger,
body.o_website_sale_wishlist_product_wishlist span.badge.text-bg-success,
body.o_website_sale_wishlist_product_wishlist .badge.rounded-pill.text-bg-danger,
body.o_website_sale_wishlist_product_wishlist .badge.rounded-pill.text-bg-success {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

/* nm2-hide-buynow-nostock */
.o_wsale_product_page .nm2-buy-now {
  display: none !important;
}
.o_wsale_product_page.nm2-detail-has-stock .nm2-buy-now {
  display: block !important;
}

/* nm2-fix-mikrotik-footer */
footer .o_animated_text.o_anim_fade_in,
footer .o_animate {
  animation: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* nm2-carousel-mobile-margin */
@media (max-width: 767px) {
  #nm2Carousel {
    margin-bottom: 0 !important;
  }
  #wrapwrap #wrap > section:nth-child(2),
  #wrap > section:nth-child(2),
  .nm2-brands-section,
  .nm2-brands-section.s_references,
  section:has(.nm2-brands-section) {
    margin-top: 10px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
}
/* nm2-carousel-mobile-fix */
@media (max-width: 767px) {
  #nm2Carousel .carousel-item {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-color: transparent !important;
    min-height: 0 !important;
    aspect-ratio: 3/1 !important;
    overflow: hidden !important;
    height: auto !important;
  }
  #nm2Carousel .carousel-item .container {
    min-height: auto !important;
  }
  #nm2Carousel .carousel-item img {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
  }
}

/* nm2-no-fade-mobile */
@media (max-width: 991px) {
  [data-nm2fade],
  [style*="opacity: 0"],
  [style*="translateY"],
  #wrap section,
  #wrap .container,
  #wrap .row,
  #wrap .col,
  #wrap [class*="col-"] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* nm2-category-no-black */
@media (max-width: 767px) {
  .s_dynamic_category_item.bg-black {
    background-color: #f0f0f0 !important;
  }
}

/* nm2-category-label-small */
@media (max-width: 767px) {
  .s_dynamic_category_item div[name="category_overlay"] {
    justify-content: flex-end !important;
    padding: 5px !important;
    background: linear-gradient(transparent 40%, rgba(0,0,0,0.6) 100%) !important;
  }
  .s_dynamic_category_item h3,
  .s_dynamic_category_item h3.h4,
  .s_dynamic_category_item .h4,
  .s_dynamic_snippet_category_list .s_dynamic_category_item h3 {
    font-size: 9px !important;
    padding: 2px 6px !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .s_dynamic_category_item .s_dynamic_category_button {
    display: none !important;
  }
}

/* nm2-shop-bars-mobile */
@media (max-width: 767px) {
  .oe_product .nm2-price-pill,
  .oe_product .nm2-pill-converted,
  .oe_product .nm2-mini-bar,
  .oe_product .nm2-status-bar,
  .oe_product .nm2-modelo-bar {
    max-width: 100% !important;
    overflow: hidden !important;
  }
  .oe_product .nm2-pill-converted table,
  .oe_product .nm2-mini-bar {
    width: 100% !important;
  }
  .oe_product .nm2-pill-converted table td,
  .oe_product .nm2-mini-bar td {
    font-size: 11px !important;
    padding: 3px 2px !important;
    white-space: nowrap !important;
  }
  .oe_product .nm2-pill-converted div[style*="607d8b"],
  .oe_product .nm2-status-bar {
    font-size: 10px !important;
    padding: 3px 4px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .oe_product .nm2-modelo-bar div {
    font-size: 10px !important;
    padding: 2px 4px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .oe_product .nm2-modelo-bar div:last-child {
    font-size: 13px !important;
  }
  }


/* nm2-fouc-prevention — hide native price flash on product pages (logged-in only) */
body.o_connected_user .o_wsale_product_details_content_section_price { display: none !important; }

/* nm2-feature-cards-equal — equal height feature cards on mobile */
@media (max-width: 767px) {
  .s_text_block .row.text-center {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
  .s_text_block .row.text-center > .col-12 {
    grid-column: 1 / -1;
  }
  .s_text_block .col-6.col-md-3 {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    display: flex !important;
  }
  .s_text_block .col-6.col-md-3 > div {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* nm2-qty-align — equal height for qty controls and cart button */
.oe_product button.btn.btn-sm.js_shop_qty_minus,
.oe_product button.btn.btn-sm.js_shop_qty_plus {
  height: 28px !important;
  min-height: 28px !important;
  width: 28px !important;
  min-width: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
.oe_product input.js_shop_qty_input {
  height: 28px !important;
  min-height: 28px !important;
  text-align: center !important;
  box-sizing: border-box !important;
}
.oe_product .o_wsale_product_btn_primary {
  height: 28px !important;
  min-height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 12px !important;
  font-size: 14px !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

/* nm2-footer-badges — clean left-border style */
footer .s_badge.badge.text-bg-primary {
  background: rgba(2,148,206,0.15) !important;
  border: none !important;
  border-left: 3px solid #0294CE !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 10px 16px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,0.9) !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  text-align: left !important;
}
footer .s_badge.badge.text-bg-primary i.fa {
  color: #0294CE !important;
  font-size: 16px !important;
}

/* nm2-footer-link-spacing — better touch targets on mobile */
@media (max-width: 991px) {
  footer ul li a,
  footer .col-lg-3 a:not(.navbar-brand) {
    line-height: 1.9 !important;
  }
}


/* nm2-search-icon-only — hide "Buscar" text, compact search bar */
header button:has(.oi-search) {
  font-size: 0 !important;
  line-height: 0 !important;
  padding: 8px 14px !important;
  min-width: 0 !important;
}
header button:has(.oi-search) .oi-search {
  font-size: 18px !important;
  line-height: 1 !important;
}
#nm2SearchInline {
  min-width: 200px !important;
  max-width: 200px !important;
  width: 200px !important;
}

/* nm2-header-compact — balanced nav padding */
@media (min-width: 992px) {
  header nav.navbar {
    padding-left: 24px !important;
    padding-right: 10px !important;
  }
}

/* nm2-hide-marcas-arrow */
header .nav-item.dropdown > a.dropdown-toggle::after { display: none !important; }

/* nm2-bar-scroll-hide — hide announcement bar div on scroll */
header#top.o_header_is_scrolled .nm2-open-indicator { display: none !important; }

/* nm2-header-icon-gap — 10px between search/wa/cart/wishlist only */
@media (min-width: 992px) {
  #nm2SearchInline { margin-right: 6px !important; }
  header li.nav-item:has(.nm2-wa-header) { margin-right: 6px !important; }
  header li.o_wsale_my_cart { margin-right: 6px !important; }
}

/* nm2-bar-mobile — hide phone numbers on small screens */
@media (max-width: 991px) {
  .nm2-bar-desktop { display: none !important; }
  .nm2-open-indicator { font-size: 11px !important; padding: 4px 10px !important; }
}

/* nm2-footer-fouc — hide original lists until JS replaces them */
#footer .col-lg-3 ul.list-unstyled { display: none !important; }

/* nm2-hide-footer-badges — remove redundant badges */
footer .s_badge.badge.text-bg-primary { display: none !important; }

/* nm2-footer-fixes — hide original payment icons, constrain logo */
#footer .d-flex.flex-wrap.gap-1 { display: none !important; }
#footer .nm2-pago-grid ~ .s_hr,
#footer .nm2-pago-grid ~ hr,
#footer .col-lg-3:has(.nm2-pago-grid) .s_hr ~ .s_hr { display: none !important; }
.nm2-contact-grid img { max-height: 50px !important; max-width: 200px !important; }
.nm2-contact-grid a:last-child { padding: 10px 12px !important; justify-content: center !important; padding: 12px !important; }
.nm2-contact-grid a:last-child img { max-height: 50px !important; max-width: 200px !important; margin: auto 0 !important; }
.nm2-contact-grid ~ .s_hr,
.nm2-contact-grid ~ hr { display: none !important; }

/* nm2-footer-equal-cols — equal width and spacing for all 4 footer columns */
@media (min-width: 992px) {
  #footer .row { display: flex !important; gap: 40px !important; }
  #footer .row > .col-lg-3 { flex: 1 !important; max-width: none !important; width: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
}

/* nm2-footer-grid-spacing — equal spacing between separator and grids */
#footer .s_hr { margin-bottom: 12px !important; padding-bottom: 0 !important; }
#footer .nm2-contact-grid,
#footer .nm2-brand-grid,
#footer .nm2-product-grid { margin-top: 0 !important; }

/* nm2-footer-vertical-center — equal top and bottom padding */
#footer section.s_text_block { padding-top: 40px !important; padding-bottom: 40px !important; }
#footer .col-lg-3 { padding-bottom: 0 !important; }

/* nm2-subir-position — move Subir button above chat widget */
#o_scroll_top, .o_scroll_top, a[href="#top"] {
  bottom: 120px !important;
}

/* nm2-nav-active — highlight nav links on their pages */
body.o_website_url_marcas header .nav-link[href="/marcas"],
body[class*="marcas"] header a.nav-link[href="/marcas"],
body[class*="blog"] header a.nav-link[href="/blog"],
body.o_website_url_blog header a.nav-link[href="/blog"] {
  background: #0294CE !important;
  color: #fff !important;
}

/* nm2-nav-gap — uniform spacing between menu items */
@media (min-width: 992px) {
  header .navbar-nav.top_menu { gap: 4px !important; }
}

/* nm2-shop-categories — styled pills with scroll indicator */
.o_wsale_filmstrip_container {
  position: relative !important;
}
.o_wsale_filmstrip_container::after {
  content: '' !important;
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 60px !important;
  background: linear-gradient(to right, transparent, #fff) !important;
  pointer-events: none !important;
  z-index: 2 !important;
}
.o_wsale_filmstrip_link {
  border-radius: 20px !important;
  padding: 8px 16px !important;
  background: rgba(2,148,206,0.08) !important;
  border: 1px solid rgba(2,148,206,0.2) !important;
  color: #1a2332 !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.o_wsale_filmstrip_link:hover,
.o_wsale_filmstrip_link:has(input:checked) {
  background: #0294CE !important;
  color: #fff !important;
  border-color: #0294CE !important;
}
.o_wsale_filmstrip_image {
  display: none !important;
}
.o_wsale_filmstrip li {
  padding: 0 3px !important;
}

/* nm2-filmstrip-scrollbar — styled horizontal scroll */
.o_wsale_filmstrip_wrapper {
  scrollbar-width: thin !important;
  scrollbar-color: #0294CE transparent !important;
}
.o_wsale_filmstrip_wrapper::-webkit-scrollbar {
  height: 8px !important;
}
.o_wsale_filmstrip_wrapper::-webkit-scrollbar-track {
  background: rgba(0,0,0,0.05) !important;
  border-radius: 4px !important;
}
.o_wsale_filmstrip_wrapper::-webkit-scrollbar-thumb {
  background: #0294CE !important;
  border-radius: 4px !important;
}
.o_wsale_filmstrip_wrapper {
  cursor: grab !important;
}
.o_wsale_filmstrip_wrapper:active {
  cursor: grabbing !important;
}

/* nm2-filmstrip-inner — remove inner border, bigger icons */
.o_wsale_filmstrip_item {
  border: none !important;
  box-shadow: none !important;
  background: none !important;
}
.o_wsale_filmstrip_link .fa {
  font-size: 18px !important;
}

/* nm2-category-icons-css — pure CSS icons, zero delay */
.o_wsale_filmstrip_link::before {
  font-family: 'Font Awesome 4', FontAwesome;
  font-size: 18px;
  content: '\f02b';
  margin-right: 2px;
}
.o_wsale_filmstrip_link[href*="accesorios-cctv"]::before { content: '\f12e'; }
.o_wsale_filmstrip_link[href*="alarmas"]::before { content: '\f0f3'; }
.o_wsale_filmstrip_link[href*="camaras"]::before { content: '\f03d'; }
.o_wsale_filmstrip_link[href*="computacion"]::before { content: '\f109'; }
.o_wsale_filmstrip_link[href*="contra-incendio"]::before { content: '\f134'; }
.o_wsale_filmstrip_link[href*="control-de-acceso"]::before { content: '\f084'; }
.o_wsale_filmstrip_link[href*="energia"]::before { content: '\f0e7'; }
.o_wsale_filmstrip_link[href*="gabinetes"]::before { content: '\f233'; }
.o_wsale_filmstrip_link[href*="grabadores"]::before { content: '\f0a0'; }
.o_wsale_filmstrip_link[href*="herramientas"]::before { content: '\f0ad'; }
.o_wsale_filmstrip_link[href*="redes"]::before { content: '\f0e8'; }
.o_wsale_filmstrip_link[href*="video-porteros"]::before { content: '\f095'; }

/* nm2-scroll-perf — reduce flicker on mobile scroll */
.nm2-open-indicator {
  transition: opacity 0.15s ease !important;
  will-change: opacity !important;
}
header#top {
  will-change: transform, background !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
}
header#top.o_header_is_scrolled .nm2-open-indicator {
  opacity: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transition: opacity 0.15s ease, height 0s 0.15s, padding 0s 0.15s !important;
}

/* nm2-odoo-branding — reduce visibility */
.o_footer_copyright_name + span,
footer .js_language_selector ~ *,
footer a[href*="odoo.com"] {
  opacity: 0.3 !important;
  font-size: 11px !important;
}

/* nm2-footer-mobile-spacing — breathing room between footer sections */
@media (max-width: 991px) {
  #footer .col-lg-3 { margin-bottom: 24px !important; }
  #footer h5 { margin-top: 8px !important; }
}
/* nm2-mobile-fixed-header — always fixed to prevent scroll jump */
@media (max-width: 991px) {
  header#top {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
  }
  #wrapwrap > main {
    padding-top: 120px !important;
  }
}

/* nm2-hide-dynamic-categories-mobile */
@media (max-width: 991px) {
  .s_dynamic_category, section:has(.s_dynamic_category_item) {
    display: none !important;
  }
  section:has(.s_dynamic_category_item) + .s_hr,
  .s_dynamic_category + .s_hr,
  .nm2-mobile-cats ~ .s_hr:first-of-type {
    display: none !important;
  }
}

/* nm2-contact-center — center all contact pill text and title */
.nm2-contact-grid a {
  justify-content: center !important;
  text-align: center !important;
}
#footer .col-lg-3 h5 {
  text-align: center !important;
}

/* nm2-blog-spacing — space between banner and posts */
#o_wblog_posts_loop { margin-top: 32px !important; }

{}
/* bloque 4 */

/* nm2-header-brutal-v4 */

/* Announcement bar — hidden by CSS, JS div replaces it */
header#top::before {
  content: none;
  display: none;
  background: linear-gradient(90deg, #0294CE 0%, #02b5e0 50%, #0294CE 100%);
  color: #fff;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 15px;
  letter-spacing: 0.3px;
  height: auto;
  min-height: 18px;
  line-height: 1.4;
  overflow: visible;
}

/* Hide announcement bar on scroll — all screens */
header#top.o_header_is_scrolled::before {
  display: none !important;
}

/* Desktop header styles */
@media (min-width: 992px) {
  header#top {
    background: linear-gradient(180deg, #0d1117 0%, #1a2332 100%) !important;
    padding: 0 !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important;
    border-bottom: 3px solid #0294CE !important;
  }
  header#top .container-fluid {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
  header#top .navbar-brand { margin-right: 24px !important; }
  header#top .navbar-brand img,
  header#top .o_logo_img {
    max-height: 28px !important;
    height: 28px !important;
    filter: brightness(1.1) !important;
  }
  header#top .nav-link,
  header#top .navbar-nav .nav-link {
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #fff !important;
    padding: 6px 10px !important;
    border-radius: 6px !important;
    transition: all 0.3s ease !important;
  }
  header#top .nav-link:hover {
    background: rgba(2, 148, 206, 0.2) !important;
    color: #02b5e0 !important;
  }
  header#top .nav-link.active {
    background: #0294CE !important;
    color: #fff !important;
  }
  header#top input[name="search"] {
    border: 2px solid #0294CE !important;
    border-radius: 25px 0 0 25px !important;
    padding: 8px 18px !important;
    
    color: #fff !important;
    transition: all 0.3s ease !important;
  }
  header#top input[name="search"]:focus {
    background: rgba(255,255,255,0.95) !important;
    color: #333 !important;
    box-shadow: 0 0 15px rgba(2,148,206,0.4) !important;
  }
  header#top input[name="search"]::placeholder { color: rgba(255,255,255,0.5) !important; }
  header#top input[name="search"]:focus::placeholder { color: #999 !important; }
  header#top .oe_search_button,
  header#top form[action="/shop"] .btn {
    background: #0294CE !important;
    border: 2px solid #0294CE !important;
    border-radius: 0 25px 25px 0 !important;
    color: #fff !important;
    font-weight: 700 !important;
  }
  header#top .fa-shopping-cart,
  header#top .fa-heart {
    font-size: 20px !important;
    transition: transform 0.2s ease !important;
  }
  header#top .fa-shopping-cart:hover,
  header#top .fa-heart:hover {
    transform: scale(1.2) !important;
  }
  header#top .my_cart_quantity,
  header#top .my_wish_quantity {
    background: #0294CE !important;
  }
  header#top.o_header_is_scrolled {
    background: rgba(13, 17, 23, 0.85) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
  }
  header#top.o_header_is_scrolled::before {
    display: none;
  }
}

/* Mobile: hide CSS ::before, JS div replaces it */
@media (max-width: 991px) {
  header#top::before {
    display: none !important;
    content: none !important;
  }
  header#top {
    background: linear-gradient(180deg, #0d1117 0%, #1a2332 100%) !important;
    border-bottom: 3px solid #0294CE !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3) !important;
    overflow: visible !important;
  }
  header#top .container-fluid,
  header#top .container-fluid.py-3 {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
}

{}
/* bloque 5 */

body:not(.o_connected_user) #o_wsale_product_details_content article > hr,
body:not(.o_connected_user) #o_wsale_product_details_content article > .nm2-share-qr-row {
  max-width: 520px !important;
}

{}
/* bloque 6 */

@media (max-width: 767px) {
  .nm2-brand-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .nm2-brand-grid a {
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .nm2-brand-grid a img {
    max-width: 70% !important;
    max-height: 28px !important;
    object-fit: contain !important;
  }
}

{}
/* bloque 7 */

@media (max-width: 991px) {
  /* Force contact column full width */
  #footer .col-lg-3:has(.nm2-contact-grid) {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  /* Contact grid full width */
  .nm2-contact-grid {
    width: 100% !important;
  }
  /* Each pill stretches and centers content */
  #footer .nm2-contact-grid a {
    width: 100% !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
  /* Separator full width */
  #footer .col-lg-3:has(.nm2-contact-grid) .s_hr,
  #footer .col-lg-3:has(.nm2-contact-grid) hr {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* Center footer titles */
  #footer h5 {
    text-align: center !important;
  }
}

{}
/* bloque 8 */

@media (max-width: 767px) {
  /* Container full width */
  .oe_product .o_wsale_product_btn,
  article.oe_product_cart .o_wsale_product_btn {
    width: 100% !important;
    flex-wrap: nowrap !important;
  }
  /* Qty stays compact */
  .oe_product .o_wsale_product_btn .css_quantity {
    flex: 0 0 auto !important;
  }
  /* Cart button fills remaining space */
  .oe_product .o_wsale_product_btn .o_wsale_product_btn_primary,
  .oe_product .o_wsale_product_btn > button.btn-primary,
  .oe_product .o_wsale_product_btn > a.btn-primary {
    flex: 1 1 auto !important;
  }
}

{}
/* bloque 9 */

/* Hide only payment icon images in copyright bar, not text/links */
.o_footer_copyright img[src*="payment_icon"],
.o_footer_copyright img[src*="payment"],
.o_footer_copyright .o_payment_icon,
.s_supported_payment_methods,
#bottom .o_footer_copyright .d-flex.flex-wrap.gap-1 {
  display: none !important;
}

{}
/* bloque 10 */

.nm2-brand-grid a,
.nm2-product-grid a {
  height: 52px !important;
  padding: 8px !important;
}

{}
/* bloque 11 */

/* Style blog banner title */
.o_wblog_post_page_cover .o_wblog_post_title h1 {
  font-size: 48px !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  text-shadow: 0 2px 20px rgba(0,0,0,0.6) !important;
}

{}
/* bloque 12 */

@media (max-width: 991px) {
  header#top > .container-fluid {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}

{}
/* bloque 13 */

@media (max-width: 991px) {
  .o_footer_copyright .container {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
  .o_footer_copyright .row {
    row-gap: 0 !important;
    gap: 0 !important;
  }
  .o_footer_copyright .col-md {
    gap: 2px !important;
    padding: 0 !important;
    margin: 0 !important;
  }
}

{}
/* bloque 14 */

@media (max-width: 767px) {
  .nm2-registro-form .row.mb-3 > div[class*="col-"] {
    margin-bottom: 12px !important;
  }
  .nm2-registro-form .row.mb-3 > div[class*="col-"]:last-child {
    margin-bottom: 0 !important;
  }
  .nm2-registro-form .row.mb-3 {
    margin-bottom: 12px !important;
  }
  .nm2-registro-form .mb-3 {
    margin-bottom: 12px !important;
  }
  .nm2-registro-form .mb-4 {
    margin-bottom: 16px !important;
  }
  .nm2-registro-form h3 {
    font-size: 18px !important;
    margin-top: 20px !important;
    margin-bottom: 14px !important;
  }
  .nm2-registro-form .form-label {
    margin-bottom: 4px !important;
  }
}

{}
/* bloque 15 */

section.s_carousel{background:#0d1117 !important;}
section.s_carousel .carousel-indicators{bottom:0 !important;margin-bottom:4px !important;padding:0 !important;}

{}
/* bloque 16 */

#nm2-cat-bar{background:#1a2332;padding:0;overflow:visible;white-space:nowrap;position:relative;z-index:1000;}
#nm2-cat-bar .nm2-cat-list{display:flex;max-width:100%;margin:0;padding:0;list-style:none;gap:0;justify-content:stretch;}
#nm2-cat-bar .nm2-cat-item{position:relative;flex:1;text-align:center;}
#nm2-cat-bar .nm2-cat-item+.nm2-cat-item .nm2-cat-link{border-left:1px solid rgba(255,255,255,0.15);}
#nm2-cat-bar .nm2-cat-link{display:block;padding:10px 16px;color:#ccc;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:0.3px;white-space:nowrap;transition:all 0.2s;border-bottom:2px solid transparent;}
#nm2-cat-bar .nm2-cat-link:hover{color:#fff;border-bottom-color:#0294CE;background:rgba(2,148,206,0.1);}
#nm2-cat-bar .nm2-cat-item.active .nm2-cat-link{color:#fff;border-bottom-color:#0294CE;background:rgba(2,148,206,0.18);}
#nm2-cat-bar .nm2-cat-link{cursor:pointer;}
#nm2-mega-panel{display:none;position:absolute;left:0;right:0;top:100%;background:linear-gradient(180deg,#f8f9fa 0%,#fff 100%);border-top:3px solid #0294CE;box-shadow:0 12px 40px rgba(0,0,0,0.18);z-index:999;padding:28px 0 24px;}
#nm2-mega-panel.active{display:block;}
#nm2-mega-panel .nm2-mega-inner{max-width:100%;margin:0 auto;padding:0 40px;display:flex;flex-wrap:wrap;gap:20px;}
#nm2-mega-panel .nm2-mega-col{min-width:200px;flex:1;}
#nm2-mega-panel .nm2-mega-title{font-size:14px;font-weight:700;color:#1a2332;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #0294CE;display:inline-block;text-transform:uppercase;letter-spacing:0.5px;}
#nm2-mega-panel .nm2-mega-sub{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;}
#nm2-mega-panel .nm2-mega-sub li a{display:flex;align-items:center;gap:8px;padding:4px 10px;color:#444;text-decoration:none;font-size:13px;border-radius:6px;transition:all 0.2s;font-weight:450;}
#nm2-mega-panel .nm2-mega-sub li a:before{content:'';width:0;height:0;opacity:0;transition:all 0.2s;margin-left:-8px;}
#nm2-mega-panel .nm2-mega-sub li a:hover{background:rgba(2,148,206,0.12);color:#0294CE;padding-left:14px;box-shadow:inset 3px 0 0 #0294CE;}

#nm2-mega-panel .nm2-mega-sub li a:hover:before{opacity:0;}
#nm2-mega-panel .nm2-mega-viewall{display:inline-flex;align-items:center;gap:6px;margin-top:14px;color:#fff;background:#0294CE;font-size:12px;font-weight:600;text-decoration:none;padding:8px 16px;border-radius:6px;transition:all 0.2s;}
#nm2-mega-panel .nm2-mega-viewall:hover{background:#027ab5;text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px rgba(2,148,206,0.3);}
@media(max-width:768px){
  #nm2-cat-bar{display:none !important;}
  #nm2-mega-panel{position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto;padding:60px 16px 20px;}
  #nm2-mega-panel .nm2-mega-inner{flex-direction:column;gap:20px;}
  #nm2-mega-panel .nm2-mega-close{position:fixed;top:16px;right:16px;background:#1a2332;color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;z-index:1000;}
}

{}
/* bloque 17 */

.nm2-related h3 {
  font-size: 24px !important;
  font-weight: 700 !important;
  color: #1a2332 !important;
  text-align: center !important;
  position: relative !important;
  padding-bottom: 14px !important;
  margin-bottom: 28px !important;
  letter-spacing: 0.3px !important;
}
.nm2-related h3::after {
  content: "" !important;
  display: block !important;
  width: 60px !important;
  height: 3px !important;
  background: #0294CE !important;
  margin: 12px auto 0 !important;
  border-radius: 2px !important;
}

{}
/* bloque 18 */

/* Kill all gaps between homepage sections */
#wrapwrap #wrap > * {
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* The WA banner should have no margin */
#nm2-wa-banner {
  margin:0 !important;
}
/* Por qué elegirnos - no gap above */
#nm2-wa-banner + section,
#nm2-wa-banner + .nm2-separator + section {
  margin-top:0 !important;
}

{}
/* bloque 19 */

#nm2-wa-banner { margin-top:0 !important; padding-top:30px !important; }

{}
/* bloque 20 */

/* Fix: #wrapwrap > main has padding-top:120px for desktop; override for mobile */
@media (max-width: 991px) {
  #wrapwrap > main,
  body #wrapwrap > main,
  html body #wrapwrap > main {
    padding-top: 86px !important;
  }
}

{}
/* bloque 21 */

/* Ocultar el buscador viejo inline del header en desktop */
@media (min-width: 992px) {
  #nm2SearchInline {
    display: none !important;
  }
}

{}
/* bloque 22 */

/* Expandir contenedor del footer hacia los laterales para que los 3 bloques sean más anchos */
@media (min-width: 992px) {
  footer#bottom section.s_text_block .s_allow_columns.container,
  footer#bottom section.s_text_block .container {
    max-width: 100% !important;
    padding-left: 140px !important;
    padding-right: 140px !important;
  }
}

{}
/* bloque 23 */

@media (max-width:575px){
  /* Precio en tarjetas de tránsito: celdas azul/navy con fondo inline */
  td[style*="background:#0294CE"],
  td[style*="background:#1a2332"]{
    font-size:11px !important;
    padding:5px 3px !important;
    white-space:normal !important;
    line-height:1.2 !important;
    letter-spacing:-0.3px !important;
    word-break:break-word !important;
  }
}

{}
/* bloque 24 */

@media (max-width: 991px) {
  /* Panel 90% del ancho (antes 80%) */
  #o_wsale_offcanvas {
    width: 90% !important;
    max-width: 440px !important;
  }
  /* Ocultar botones flotantes cuando offcanvas está abierto */
  body:has(#o_wsale_offcanvas.show) #nm2BackToTop,
  body:has(#o_wsale_offcanvas.show) .o-livechat-root,
  body:has(#o_wsale_offcanvas.show) [class*="livechat"] {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.2s !important;
  }
}

{}
/* bloque 25 */

/* Y en la propia sección */
html body .nm2-related,
html body div.nm2-related {
  margin-top: 40px !important;
  margin-bottom: 40px !important;
  padding-top: 25px !important;
  border-top: 1px solid #eee !important;
}
@media (max-width: 768px) {
  body.o_website_sale_product main {
    padding-bottom: 50px !important;
  }
  html body .nm2-related {
    margin-top: 25px !important;
    margin-bottom: 20px !important;
  }
}

{}
/* bloque 26 */

/* Tarjeta completa: sombra suave con toque azul y transición */
html body .nm2-related-card,
html body .nm2-related .nm2-related-card {
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 16px rgba(2, 148, 206, 0.06) !important;
  border: 1px solid #eef2f5 !important;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  overflow: hidden !important;
}
html body .nm2-related-card:hover,
html body .nm2-related .nm2-related-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 6px 12px rgba(0,0,0,0.06), 0 16px 32px rgba(2, 148, 206, 0.18) !important;
  border-color: #bbd9ed !important;
}
/* Imagen: fondo blanco uniforme (antes era #f8f9fa gris) */
html body .nm2-related-card img,
html body .nm2-related .nm2-related-card img {
  background: #fff !important;
  padding: 20px !important;
}

{}
/* bloque 27 */

html body .nm2-pcard-name {
  font-weight: 700 !important;
  color: #1a2332 !important;
}

{}
/* bloque 28 */


/* Nombre del producto en bold dentro de las tarjetas del shop y wishlist
   (sobrescribe regla previa .o_wishlist_item h2 * { font-weight: 400 }) */ html body #o_wsale_products_grid article.oe_product_cart h2.o_wsale_products_item_title a span {
  font-weight: 700 !important;
  color: #1a2332 !important;
}

{}
/* bloque 29 */

/* Tarjeta: más alta para acomodar nombres largos */
.nm2-ptabs-grid .nm2-pcard {
  min-height: 350px !important;
}
/* Área del nombre: más espacio y sin truncar */
.nm2-ptabs-grid .nm2-pcard-name {
  min-height: 110px !important;
  max-height: none !important;
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  line-height: 1.4 !important;
  font-size: 13px !important;
  padding-bottom: 4px !important;
}
/* Reservar espacio al final de la tarjeta */
.nm2-ptabs-grid .nm2-pcard {
  padding-bottom: 20px !important;
}

{}
/* bloque 30 */
html body span[name="price"] {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  font-size: 0 !important;
}

{}
/* bloque 31 */


/* 6) En anchos chicos (<420px de columna), apilar precio sin IVA / con IVA verticalmente
      como red de seguridad en caso de que aún se vea apretado */
@media (max-width: 1100px) {
  .oe_product .nm2-mini-bar,
  .oe_product_cart .nm2-mini-bar {
    display: block !important;
  }
  .oe_product .nm2-mini-bar tbody,
  .oe_product_cart .nm2-mini-bar tbody,
  .oe_product .nm2-mini-bar tr,
  .oe_product_cart .nm2-mini-bar tr {
    display: block !important;
    width: 100% !important;
  }
  .oe_product .nm2-mini-bar td,
  .oe_product_cart .nm2-mini-bar td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}


{}
/* bloque 32 */

/* =============================================================
   NEXUSM2 — FIX VISTA MÓVIL TIENDA
   Mejora la presentación de cards de producto en pantallas chicas:
   - Imágenes más grandes y visibles
   - Placeholder skeleton mientras cargan
   - Reduce espacio en blanco
   - Botón "Subir" no tapa contenido
   ============================================================= */

@media (max-width: 767px) {

  /* 1) IMAGEN MÁS GRANDE — antes 133px de alto, ahora ocupa ancho completo */
  .oe_product .oe_product_image,
  .oe_product_cart .oe_product_image {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    min-height: 140px !important;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%) !important;
  }

  .oe_product .oe_product_image_link,
  .oe_product_cart .oe_product_image_link {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 1 / 1 !important;
  }

  .oe_product .oe_product_image_img_wrapper,
  .oe_product_cart .oe_product_image_img_wrapper {
    width: 100% !important;
    height: 100% !important;
  }

  .oe_product img.oe_product_image_img,
  .oe_product_cart img.oe_product_image_img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 8px !important;
    box-sizing: border-box !important;
  }

  /* 2) PLACEHOLDER SKELETON mientras la imagen carga */
  .oe_product .oe_product_image:not(:has(img[src])),
  .oe_product .oe_product_image_img_wrapper:empty {
    background:
      linear-gradient(90deg,
        #f0f0f0 0%,
        #e0e0e0 50%,
        #f0f0f0 100%) !important;
    background-size: 200% 100% !important;
    animation: nm2-shimmer 1.5s ease-in-out infinite !important;
  }

  @keyframes nm2-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
  }

  /* 3) CARD: reducir padding y mejorar densidad */
  .oe_product .oe_product_cart,
  .oe_product_cart {
    border-radius: 8px !important;
    overflow: hidden !important;
  }

  .oe_product .o_wsale_product_information,
  .oe_product_cart .o_wsale_product_information {
    padding: 8px !important;
  }

  /* 4) NOMBRE DEL PRODUCTO: más compacto */
  .oe_product .o_wsale_products_item_title,
  .oe_product_cart .o_wsale_products_item_title,
  .oe_product h6,
  .oe_product_cart h6 {
    font-size: 12px !important;
    line-height: 1.25 !important;
    margin-bottom: 4px !important;
  }

  /* 5) MODELO Y SKU: más pequeños y compactos */
  .oe_product .nm2-modelo-bar > div,
  .oe_product_cart .nm2-modelo-bar > div {
    padding: 2px 6px !important;
    font-size: 11px !important;
  }
  .oe_product .nm2-modelo-bar > div:nth-child(2),
  .oe_product_cart .nm2-modelo-bar > div:nth-child(2) {
    font-size: 13px !important;
  }

  /* 6) CÁPSULAS DE PRECIO: más compactas en móvil */
  .oe_product .nm2-mini-bar td,
  .oe_product_cart .nm2-mini-bar td {
    font-size: 11px !important;
    padding: 4px 3px !important;
    line-height: 1.15 !important;
  }

  /* 7) BADGES (Tarifa, Sin existencias, etc): más compactos */
  .oe_product .badge.rounded-pill,
  .oe_product_cart .badge.rounded-pill,
  .oe_product article div[style*="background:#0294CE"],
  .oe_product article div[style*="background:#607d8b"],
  .oe_product article div[style*="background:#28a745"],
  .oe_product article div[style*="background:#dc3545"],
  .oe_product article div[style*="background:#d4a017"] {
    font-size: 11px !important;
    padding: 3px 6px !important;
  }

  /* 8) BOTÓN "SUBIR" — más pequeño y posicionado para no tapar contenido */
  .nm2-scroll-top,
  button[class*="scroll-top"],
  .o_scroll_top,
  a.o_scroll_to_top {
    bottom: 80px !important;
    right: 12px !important;
    width: 40px !important;
    height: 40px !important;
    font-size: 11px !important;
    padding: 0 !important;
  }
  /* Si tiene texto "Subir", reemplazar por solo flecha en móvil */
  .nm2-scroll-top .text,
  .o_scroll_top span:not(.fa):not(.oi) {
    display: none !important;
  }

  /* 9) GRID: 2 columnas estables con gap consistente */
  .o_wsale_products_grid_table_wrapper {
    gap: 8px !important;
  }

  /* 10) ENVÍO GRATIS Y BANNERS: que no consuman tanto espacio */
  .nm2-shipping-banner,
  [class*="envio"],
  [class*="shipping-banner"] {
    font-size: 11px !important;
    padding: 4px 8px !important;
  }

  /* 11) PAGINACIÓN MÓVIL: más visible y fácil de tocar */
  #o_wsale_pager .page-link {
    padding: 8px 12px !important;
    font-size: 14px !important;
    min-width: 36px !important;
    min-height: 36px !important;
  }

  /* 12) RESERVAR ESPACIO para imágenes lazy mientras cargan */
  .oe_product img[loading="lazy"]:not([src]),
  .oe_product img[loading="lazy"][src=""] {
    min-height: 140px !important;
    background: #f0f0f0 !important;
  }

  /* 13) TÍTULOS del card: NO truncar agresivamente */
  .oe_product .o_wsale_products_item_title a,
  .oe_product_cart .o_wsale_products_item_title a {
    display: -webkit-box !important;
    -webkit-line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: break-word !important;
  }
}

/* MÓVIL CHICO (<400px) — ajustes adicionales */
@media (max-width: 400px) {
  .oe_product .o_wsale_products_item_title,
  .oe_product_cart .o_wsale_products_item_title,
  .oe_product h6 {
    font-size: 11px !important;
  }

  .oe_product .nm2-mini-bar td,
  .oe_product_cart .nm2-mini-bar td {
    font-size: 10px !important;
    padding: 3px 2px !important;
  }
}

/* CRÍTICO: forzar layout vertical (imagen arriba, contenido abajo) en móvil */
@media (max-width: 767px) {
  .oe_product .oe_product_cart,
  .oe_product_cart {
    flex-direction: column !important;
  }
  .oe_product .oe_product_image,
  .oe_product_cart .oe_product_image {
    width: 100% !important;
    flex: none !important;
  }
  .oe_product .o_wsale_product_information,
  .oe_product_cart .o_wsale_product_information {
    width: 100% !important;
    flex: 1 1 auto !important;
  }
}

/* CRÍTICO: sobrescribir variable de tamaño thumbnail Odoo en móvil */
@media (max-width: 767px) {
  .oe_product_cart {
    --o-wsale-card-thumb-size: 100% !important;
  }
  .oe_product_cart .oe_product_image {
    min-width: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1/1 !important;
  }
  .oe_product_cart .oe_product_image_link,
  .oe_product_cart .oe_product_image_img_wrapper,
  .oe_product_cart img.oe_product_image_img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 1/1 !important;
    object-fit: contain !important;
  }
}

/* MÓVIL: resetear padding del article y hacer imagen ocupar TODO el ancho */
@media (max-width: 767px) {
  .oe_product_cart {
    padding: 0 !important;
  }
  .oe_product_cart .oe_product_image {
    margin: 0 !important;
    border-radius: 8px 8px 0 0 !important;
  }
  /* La info del producto sí necesita padding */
  .oe_product_cart .o_wsale_product_information {
    padding: 10px !important;
  }
}

{}
/* bloque 33 */


/* =============================================================
   NM2 — Header sticky FINAL V2
   Compatible con iOS Chrome/Safari y Firefox
   ============================================================= */

:root {
  --nm2-header-h: 86px;
  --nm2-search-h: 58px;
}

/* Anular display:none de la barra azul, usar opacity + height */
header#top.o_header_is_scrolled .nm2-open-indicator {
  display: flex !important;
  opacity: 0 !important;
  max-height: 0 !important;
  height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  transition: opacity 0.2s ease, max-height 0.2s ease, padding 0.2s ease !important;
  pointer-events: none !important;
}

header#top:not(.o_header_is_scrolled) .nm2-open-indicator {
  max-height: 50px !important;
  opacity: 1 !important;
  transition: opacity 0.2s ease, max-height 0.2s ease, padding 0.2s ease !important;
}

header#top {
  transition: none !important;
}

@media (max-width: 991px) {
  /* Buscador móvil */
  #nm2-msb {
    position: fixed !important;
    top: var(--nm2-header-h, 86px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 998 !important;
    margin: 0 !important;
    background: rgb(13, 17, 23) !important;
    transition: top 0.2s ease !important;
  }
  
  /* Padding-top dinámico — máxima especificidad para ganar contra reglas viejas */
  html body #wrapwrap > main,
  body #wrapwrap > main,
  #wrapwrap > main {
    padding-top: calc(var(--nm2-header-h, 86px) + var(--nm2-search-h, 58px)) !important;
    transition: padding-top 0.2s ease !important;
  }
  
  /* Fondo blanco */
  html body, body, #wrapwrap {
    background: #ffffff !important;
  }
}


{}
/* bloque 34 */


/* =============================================================
   NM2 — Compactar sidebar de categorías en desktop
   Recupera espacio para los cards manteniendo legibilidad
   ============================================================= */
@media (min-width: 992px) {
  #products_grid_before {
    max-width: 220px !important;
    flex: 0 0 220px !important;
    width: 220px !important;
  }
  
  /* El item <a> debe usar todo el ancho disponible del <li> */
  #products_grid_before .accordion-header {
    width: 100% !important;
  }
  #products_grid_before .accordion-header > a,
  #products_grid_before li > a,
  #products_grid_before .nav-item a,
  #products_grid_before a.p-0 {
    width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  
  /* Ligero ajuste de font-size para que "Radio Enlaces" quepa */
  #products_grid_before .accordion-header > a,
  #products_grid_before li > a {
    font-size: 14px !important;
    line-height: 1.3 !important;
  }
}


{}
/* bloque 35 */


/* =============================================================
   NM2 — Shop layout responsive
   ============================================================= */

/* Desktop ancho con sidebar (≥1200px): 4 columnas */
@media (min-width: 1200px) {
  .o_wsale_products_grid_table {
    grid-template-columns: repeat(4, 1fr) !important;
  }
  .o_wsale_products_grid_table > .oe_product {
    grid-column: span 1 !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* Laptop sin sidebar (992-1199px): 4 columnas (aprovecha el espacio liberado) */
@media (min-width: 992px) and (max-width: 1199px) {
  .o_wsale_products_grid_table {
    grid-template-columns: repeat(4, 1fr) !important;
  }
  .o_wsale_products_grid_table > .oe_product {
    grid-column: span 1 !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* Tablet (768-991px): 3 columnas */
@media (min-width: 768px) and (max-width: 991px) {
  .o_wsale_products_grid_table {
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .o_wsale_products_grid_table > .oe_product {
    grid-column: span 1 !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* Móvil/tablet pequeño (<768px): 2 columnas */
@media (max-width: 767px) {
  .o_wsale_products_grid_table {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .o_wsale_products_grid_table > .oe_product {
    grid-column: span 1 !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}


{}
/* bloque 36 */


/* =============================================================
   NM2 — Sidebar visible solo en pantallas ≥1200px
   En pantallas medianas (992-1199px), el menú horizontal de arriba ya cubre la navegación
   ============================================================= */

/* Ocultar sidebar entre 992px y 1199px (donde antes se veía cortado) */
@media (min-width: 992px) and (max-width: 1199px) {
  #products_grid_before {
    display: none !important;
  }
  
  /* El grid de productos ocupa todo el ancho disponible */
  .o_wsale_products_main_row {
    flex-wrap: wrap !important;
  }
  #products_grid {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
}


{}
/* bloque 37 */


/* =============================================================
   NM2 — Menú horizontal de categorías sticky debajo del header
   Se oculta al scrollear (igual que la barra azul superior)
   ============================================================= */

@media (min-width: 768px) {
  #nm2-cat-bar {
    position: fixed !important;
    top: var(--nm2-header-h, 86px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 999 !important;
    background: rgb(26, 35, 50) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    transition: top 0.2s ease, opacity 0.2s ease, max-height 0.2s ease, padding 0.2s ease !important;
  }
  
  /* Cuando el header está scrolleado, ocultar también la catbar */
  body.nm2-scrolled #nm2-cat-bar {
    opacity: 0 !important;
    max-height: 0 !important;
    height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    border-bottom: 0 !important;
  }
  
  /* Padding-top de main: 43px cuando catbar visible, 0 cuando oculto */
  body.nm2-has-catbar:not(.nm2-scrolled) #wrapwrap > main,
  html body.nm2-has-catbar:not(.nm2-scrolled) #wrapwrap > main {
    padding-top: 43px !important;
    transition: padding-top 0.2s ease !important;
  }
  
  body.nm2-has-catbar.nm2-scrolled #wrapwrap > main,
  html body.nm2-has-catbar.nm2-scrolled #wrapwrap > main {
    padding-top: 0 !important;
    transition: padding-top 0.2s ease !important;
  }
}

@media (max-width: 767px) {
  #nm2-cat-bar {
    display: none !important;
  }
}


{}
/* bloque 38 */

/* Hover desktop muestra secondary también */
@media (hover: hover) {
  .oe_product_cart:hover .oe_product_image_img_wrapper_primary { opacity: 0; }
  .oe_product_cart:hover .oe_product_image_img_wrapper_secondary { opacity: 1; }
}

/* DOTS de carousel funcionales (encima de imagen) */
.nm2-card-dots {
  position: absolute !important;
  bottom: 8px !important;
  left: 0 !important; right: 0 !important;
  display: flex !important;
  justify-content: center !important;
  gap: 6px !important;
  z-index: 5 !important;
  pointer-events: none;
}
html body .nm2-card-dots span.nm2-dot,
html body .nm2-card-dots .nm2-dot {
  width: 8px !important;
  height: 8px !important;
  min-width: 8px !important;
  min-height: 8px !important;
  max-width: 8px !important;
  max-height: 8px !important;
  border-radius: 50% !important;
  background-color: rgba(255,255,255,0.9) !important;
  border: 1px solid rgba(0,0,0,0.5) !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  pointer-events: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.4) !important;
  box-sizing: border-box !important;
  flex: 0 0 8px !important;
  display: inline-block !important;
  line-height: 0 !important;
  font-size: 0 !important;
  vertical-align: middle !important;
}
html body .nm2-card-dots span.nm2-dot.nm2-active,
html body .nm2-card-dots .nm2-dot.nm2-active {
  background-color: #0294CE !important;
  border-color: #ffffff !important;
  width: 10px !important;
  height: 10px !important;
  min-width: 10px !important;
  min-height: 10px !important;
  max-width: 10px !important;
  max-height: 10px !important;
  flex: 0 0 10px !important;
}

{}
/* bloque 39 */

/* ============================================================
   NM2 WA SECTION — ÉPICO (Opción E)
   Override completo del banner #nm2-wa-banner inyectado por nm2-custom.js
   Especificidad alta + !important para vencer el style inline del JS bundle
   ============================================================ */
html body:not([class*="nm2_v4"]):not([class*="nm2-page-"]):not(.nm2-view-public):not(.nm2-view-loggedin) {
  background-color: #0a1929 !important;
  background-image: linear-gradient(180deg, #0a1929 0%, #0d2540 50%, #0a1929 100%) !important;
  background-attachment: fixed !important;
  background-size: 100% 100vh !important;
  background-repeat: no-repeat !important;
}
/* Reset explícito de fondo para todas las páginas v4 */
html body[class*="nm2_v4"],
html body:has(.nm2-v4-root) {
  background: #FAFBFC !important;
  background-image: none !important;
  background-attachment: scroll !important;
}

/* Ocultar botón back-to-top duplicado legacy (v3 nm2-custom.js) en páginas v4 */
html body[class*="nm2_v4"] #nm2BackToTop,
html body:has(.nm2-v4-root) #nm2BackToTop,
html body[class*="nm2_v4"] button.nm2-back-top,
html body:has(.nm2-v4-root) button.nm2-back-top {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
html body div#wrap div#nm2-wa-banner {
  position: relative !important;
  overflow: hidden !important;
  padding: 64px 24px !important;
  text-align: left !important;
  background-color: transparent !important;
  background-image: none !important;
}
html body div#wrap div#nm2-wa-banner::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 0%, #0294ce 30%, #25d366 70%, transparent 100%);
  z-index: 2;
}
html body div#wrap div#nm2-wa-banner::after {
  content: none !important;
}
#nm2-wa-banner .nm2-wa-wrap {
  position: relative;
  z-index: 1;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 56px;
  align-items: center;
}
#nm2-wa-banner .nm2-wa-left { color: #fff; }
#nm2-wa-banner .nm2-wa-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(37, 211, 102, 0.12);
  border: 1px solid rgba(37, 211, 102, 0.3);
  color: #25d366;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  margin-bottom: 18px;
}
#nm2-wa-banner .nm2-wa-eyebrow .dot {
  width: 8px; height: 8px;
  background: #25d366;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6);
  animation: nm2-wa-pulse 2s infinite;
}
@keyframes nm2-wa-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6); }
  70%  { box-shadow: 0 0 0 10px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
#nm2-wa-banner .nm2-wa-title {
  font-size: 38px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.8px;
  margin: 0 0 14px;
  color: #fff;
}
#nm2-wa-banner .nm2-wa-title .accent {
  background: linear-gradient(120deg, #25d366 0%, #4cc9f0 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}
#nm2-wa-banner .nm2-wa-subtitle {
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,0.75);
  margin: 0 0 26px;
  max-width: 520px;
}
#nm2-wa-banner .nm2-wa-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 0 0 32px;
  max-width: 520px;
}
#nm2-wa-banner .nm2-wa-stat {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 14px 12px;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  transition: 0.3s;
}
#nm2-wa-banner .nm2-wa-stat:hover {
  background: rgba(37, 211, 102, 0.08);
  border-color: rgba(37, 211, 102, 0.3);
  transform: translateY(-2px);
}
#nm2-wa-banner .nm2-wa-stat i {
  color: #25d366;
  font-size: 16px;
  margin-bottom: 6px;
  display: block;
}
#nm2-wa-banner .nm2-wa-stat-val {
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  margin-bottom: 3px;
}
#nm2-wa-banner .nm2-wa-stat-lbl {
  font-size: 11px;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
  letter-spacing: 0.2px;
}
#nm2-wa-banner .nm2-wa-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
#nm2-wa-banner .nm2-wa-cta {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #25d366;
  color: #fff !important;
  padding: 14px 28px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(37, 211, 102, 0.35);
  transition: 0.3s;
  border: none;
}
#nm2-wa-banner .nm2-wa-cta:hover {
  background: #1ebe5d;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(37, 211, 102, 0.45);
  color: #fff !important;
}
#nm2-wa-banner .nm2-wa-cta::after {
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.35) 50%, transparent 70%);
  animation: nm2-wa-shimmer 3s infinite;
}
@keyframes nm2-wa-shimmer {
  0%   { left: -100%; }
  60%  { left: 100%; }
  100% { left: 100%; }
}
#nm2-wa-banner .nm2-wa-cta i { font-size: 20px; }
#nm2-wa-banner .nm2-wa-phone {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  padding: 12px 18px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s;
}
#nm2-wa-banner .nm2-wa-phone:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(2, 148, 206, 0.4);
}
#nm2-wa-banner .nm2-wa-phone i { color: #4cc9f0; }
#nm2-wa-banner .nm2-wa-phone .copy-hint {
  font-size: 11px;
  color: rgba(255,255,255,0.5);
  margin-left: 4px;
}
#nm2-wa-banner .nm2-wa-right {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
#nm2-wa-banner .nm2-wa-right::before {
  content: "";
  position: absolute;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(37, 211, 102, 0.25) 0%, transparent 70%);
  filter: blur(40px);
  z-index: 0;
  animation: nm2-wa-float 6s ease-in-out infinite;
}
@keyframes nm2-wa-float {
  0%, 100% { transform: translateY(0); opacity: 0.7; }
  50%      { transform: translateY(-15px); opacity: 1; }
}
#nm2-wa-banner .nm2-phone {
  position: relative;
  width: 280px;
  height: 560px;
  background: #1a1a1a;
  border-radius: 38px;
  padding: 10px;
  box-shadow:
    0 30px 60px rgba(0,0,0,0.5),
    0 0 0 1px rgba(255,255,255,0.05),
    inset 0 0 0 1px rgba(255,255,255,0.04);
  transform: rotate(-3deg);
  transition: transform 0.5s;
  z-index: 1;
}
#nm2-wa-banner .nm2-phone:hover {
  transform: rotate(0deg) translateY(-8px);
}
#nm2-wa-banner .nm2-phone::before {
  content: "";
  position: absolute;
  top: 16px; left: 50%;
  transform: translateX(-50%);
  width: 90px; height: 22px;
  background: #1a1a1a;
  border-radius: 12px;
  z-index: 3;
}
#nm2-wa-banner .nm2-phone-screen {
  width: 100%;
  height: 100%;
  background: #e5ddd5;
  border-radius: 30px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#nm2-wa-banner .nm2-phone-header {
  background: linear-gradient(135deg, #075E54 0%, #128C7E 100%);
  color: #fff;
  padding: 36px 12px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}
#nm2-wa-banner .nm2-phone-avatar {
  width: 36px; height: 36px;
  background: linear-gradient(135deg, #0294ce, #25d366);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  flex-shrink: 0;
}
#nm2-wa-banner .nm2-phone-info { flex: 1; min-width: 0; }
#nm2-wa-banner .nm2-phone-name { font-size: 14px; font-weight: 600; line-height: 1.2; }
#nm2-wa-banner .nm2-phone-status {
  font-size: 11px;
  color: rgba(255,255,255,0.8);
  display: flex;
  align-items: center;
  gap: 4px;
}
#nm2-wa-banner .nm2-phone-status .green-dot {
  width: 6px; height: 6px;
  background: #25d366;
  border-radius: 50%;
  box-shadow: 0 0 4px #25d366;
  animation: nm2-wa-pulse 2s infinite;
}
#nm2-wa-banner .nm2-phone-icons {
  display: flex;
  gap: 14px;
  color: #fff;
  font-size: 13px;
  opacity: 0.85;
}
#nm2-wa-banner .nm2-phone-chat {
  flex: 1;
  background:
    radial-gradient(circle at 20% 30%, rgba(0,0,0,0.03) 0, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(0,0,0,0.03) 0, transparent 50%),
    #e5ddd5;
  padding: 12px 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
#nm2-wa-banner .nm2-msg {
  max-width: 78%;
  padding: 7px 10px;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1.35;
  position: relative;
  opacity: 0;
  transform: translateY(8px);
  animation: nm2-wa-msg-in 0.4s forwards;
  box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);
  color: #303030;
}
@keyframes nm2-wa-msg-in {
  to { opacity: 1; transform: translateY(0); }
}
#nm2-wa-banner .nm2-msg.client {
  background: #fff;
  align-self: flex-start;
  border-top-left-radius: 0;
}
#nm2-wa-banner .nm2-msg.client::before {
  content: "";
  position: absolute;
  top: 0; left: -6px;
  width: 0; height: 0;
  border-style: solid;
  border-width: 0 0 8px 6px;
  border-color: transparent transparent transparent #fff;
}
#nm2-wa-banner .nm2-msg.us {
  background: #dcf8c6;
  align-self: flex-end;
  border-top-right-radius: 0;
}
#nm2-wa-banner .nm2-msg.us::before {
  content: "";
  position: absolute;
  top: 0; right: -6px;
  width: 0; height: 0;
  border-style: solid;
  border-width: 0 6px 8px 0;
  border-color: transparent #dcf8c6 transparent transparent;
}
#nm2-wa-banner .nm2-msg-time {
  font-size: 9px;
  color: #888;
  float: right;
  margin-left: 8px;
  margin-top: 4px;
}
#nm2-wa-banner .nm2-msg.us .nm2-msg-time { color: #5a9c5a; }
#nm2-wa-banner .nm2-msg.us .nm2-msg-time::after {
  content: " \2713\2713";
  color: #4fc3f7;
}
#nm2-wa-banner .nm2-msg:nth-child(1) { animation-delay: 0.4s; }
#nm2-wa-banner .nm2-msg:nth-child(2) { animation-delay: 1.4s; }
#nm2-wa-banner .nm2-msg:nth-child(3) { animation-delay: 2.4s; }
#nm2-wa-banner .nm2-msg:nth-child(4) { animation-delay: 3.4s; }
#nm2-wa-banner .nm2-typing {
  background: #fff;
  align-self: flex-start;
  padding: 10px 14px;
  border-radius: 7px;
  border-top-left-radius: 0;
  display: inline-flex;
  gap: 4px;
  align-items: center;
  box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);
  opacity: 0;
  animation: nm2-wa-msg-in 0.3s 4.4s forwards;
  width: -moz-fit-content;
  width: fit-content;
}
#nm2-wa-banner .nm2-typing span {
  width: 6px; height: 6px;
  background: #999;
  border-radius: 50%;
  animation: nm2-wa-bounce 1.2s infinite;
}
#nm2-wa-banner .nm2-typing span:nth-child(2) { animation-delay: 0.2s; }
#nm2-wa-banner .nm2-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes nm2-wa-bounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30%           { transform: translateY(-4px); opacity: 1; }
}
@media (max-width: 900px) {
  #nm2-wa-banner .nm2-wa-wrap { grid-template-columns: 1fr; gap: 40px; text-align: center; }
  #nm2-wa-banner .nm2-wa-stats { margin-left: auto; margin-right: auto; }
  #nm2-wa-banner .nm2-wa-subtitle { margin-left: auto; margin-right: auto; }
  #nm2-wa-banner .nm2-wa-actions { justify-content: center; }
  #nm2-wa-banner .nm2-wa-eyebrow { margin-left: auto; margin-right: auto; }
  #nm2-wa-banner .nm2-wa-title { font-size: 30px; }
  #nm2-wa-banner .nm2-phone { transform: rotate(0deg); }
}
@media (max-width: 480px) {
  #nm2-wa-banner .nm2-wa-stats { grid-template-columns: 1fr; }
  #nm2-wa-banner .nm2-wa-title { font-size: 26px; }
  #nm2-wa-banner .nm2-phone { width: 240px; height: 480px; }
}

{}
/* bloque 40 */
/* NM2 HEADER ACTIONS REORDER */
.nm2-header-actions { display: flex; align-items: center; }
/* default natural order is preserved; we override only for the 3 logged-in items */
.nm2-header-actions #nm2-fav-btn { order: 1; }
.nm2-header-actions #nm2-cart-btn { order: 2; }
.nm2-header-actions .am-account { order: 3; }
/* burger and public-only items keep their natural order around these */
.nm2-header-actions .nm2-burger { order: 0; }
.nm2-header-actions .nm2-only-public { order: 4; }
/* END NM2 HEADER ACTIONS REORDER */
{}
/* bloque 41 */

/* ============================================================
   NM2 MOBILE HEADER V5 — VOICE-FIRST SEARCH
   - Buscador voz primero (Web Speech API)
   - Chip compacto centrado con mic activo + indicador escuchando
   - Sugerencias dropdown abajo
   - Muestra favoritos
   - Nav scroll horizontal
   - Elimina #nm2-cmp-bar, .nm2-fab-wa, #nm2-wa-fab, .nm2-fab-top
   - Padding-top main para hero
   ============================================================ */

/* === KILL OLD MOBILE SEARCHERS === */
#nm2-msb, #nm2-meps, #nm2-mse,
form#nm2-msb, form#nm2-meps, form#nm2-mse {
  display: none !important;
  visibility: hidden !important;
}

/* === VOICE SEARCH MOBILE (V5) === */
@media (max-width: 991px) {
  .nm2-vs {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background: linear-gradient(180deg, #FAFBFC 0%, #F4F6FA 100%);
    padding: 4px 12px 6px;
    border-bottom: 1px solid #E5E7EB;
    z-index: 50;
  }
  .nm2-vs-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1.5px solid #1B4FE0;
    border-radius: 999px;
    padding: 3px 5px 3px 14px;
    height: 34px;
    box-shadow: 0 2px 8px rgba(27, 79, 224, 0.08);
    width: auto;
    max-width: 100%;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
  }
  .nm2-vs-chip:focus-within {
    border-color: #F59E0B;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
  }
  .nm2-vs-chip.is-listening {
    border-color: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.18);
    animation: nm2VsListen 1.2s ease-in-out infinite;
  }
  @keyframes nm2VsListen {
    0%, 100% { box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.18); }
    50%      { box-shadow: 0 0 0 8px rgba(239, 68, 68, 0.06); }
  }
  .nm2-vs-input {
    flex: 1 1 auto;
    border: 0;
    background: transparent;
    outline: none;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #0a1f3d;
    min-width: 140px;
    width: 100%;
    padding: 0;
    height: 22px;
    line-height: 22px;
  }
  .nm2-vs-input::placeholder {
    color: #6b7280;
    font-weight: 500;
    opacity: 1;
  }
  .nm2-vs-mic {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 0;
    background: linear-gradient(135deg, #1B4FE0 0%, #2563eb 100%);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.15s ease, background 0.15s ease;
    box-shadow: 0 2px 6px rgba(27, 79, 224, 0.35);
  }
  .nm2-vs-chip.is-listening .nm2-vs-mic {
    background: linear-gradient(135deg, #dc2626 0%, #ef4444 100%);
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.4);
  }
  .nm2-vs-mic:active { transform: scale(0.92); }
  .nm2-vs-mic svg { width: 14px; height: 14px; }

  /* Listening hint */
  .nm2-vs-hint {
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translate(-50%, 100%);
    background: #ef4444;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 3px 10px;
    border-radius: 999px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 51;
  }
  .nm2-vs.is-listening .nm2-vs-hint { opacity: 1; }

  /* Suggestions dropdown */
  .nm2-vs-sug {
    display: none;
    position: absolute;
    top: 100%;
    left: 12px;
    right: 12px;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(11, 18, 32, 0.18);
    max-height: 64vh;
    overflow-y: auto;
    z-index: 9999;
    margin-top: 6px;
  }
  .nm2-vs-sug.active { display: block; }
  .nm2-vs-sug a {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    text-decoration: none;
    color: #0a1f3d;
    border-bottom: 1px solid #f3f4f6;
  }
  .nm2-vs-sug a:last-child { border-bottom: none; }
  .nm2-vs-sug a:active { background: #DDE6FF; }
  .nm2-vs-sug img {
    width: 36px; height: 36px;
    object-fit: contain;
    border-radius: 6px;
    margin-right: 10px;
    background: #f5f7fa;
    flex-shrink: 0;
  }
  .nm2-vs-sug .nm2-vs-sn {
    flex: 1 1 auto;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .nm2-vs-sug .nm2-vs-sp {
    font-size: 12px;
    font-weight: 700;
    color: #1B4FE0;
    margin-left: 8px;
    white-space: nowrap;
  }
  .nm2-vs-sug .nm2-vs-cat {
    background: linear-gradient(135deg, #F1EEFE 0%, #DDE6FF 100%);
  }
  .nm2-vs-sug .nm2-vs-cat i {
    color: #1B4FE0;
    margin-right: 8px;
  }
  .nm2-vs-sug .nm2-vs-all {
    background: #1B4FE0;
    color: #fff;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    justify-content: center;
    padding: 12px;
  }
  .nm2-vs-sug .nm2-vs-nores {
    padding: 14px;
    text-align: center;
    color: #6b7280;
    font-size: 13px;
  }

  body.offcanvas-open .nm2-vs,
  body:has(.offcanvas.show) .nm2-vs,
  body:has(#top_menu_collapse_mobile.show) .nm2-vs {
    visibility: hidden;
  }

  /* === BURGER al final (lado derecho) en mobile === */
  .nm2-header-actions {
    display: flex !important;
    align-items: center !important;
  }
  .nm2-header-actions #nm2-burger { order: 99 !important; margin-left: 4px !important; }
  .nm2-header-actions #nm2-fav-btn { order: 1 !important; }
  .nm2-header-actions .am-account { order: 2 !important; }
  .nm2-header-actions #nm2-cart-btn { order: 3 !important; }

    /* === SHOW FAVORITES BUTTON IN MOBILE === */
  #nm2-fav-btn.nm2-hide-mobile {
    display: inline-flex !important;
    visibility: visible !important;
    width: 44px !important;
    height: 44px !important;
  }

  /* === NAV: ELIMINADA en mobile (menú por hamburguesa) === */
  header.nm2-header .nm2-nav,
  header.nm2-header > .nm2-nav,
  .nm2-nav {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  /* === KILL COMPARADOR (mobile) — WhatsApp se conserva === */
  #nm2-cmp-bar,
  .nm2-cmp-bar {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  /* === PADDING-TOP main (override site rule) — sin nav = menos altura === */
  html body div#wrapwrap > main,
  html body #wrapwrap:has(#nm2-cats) > main,
  html:not(.nm2-login-fam) body:not([class*="o_portal_"]):not([class*="_portal_my_"]) #wrapwrap:has(#nm2-cats) > main {
    padding-top: 150px !important;
  }
  /* Aplastar TODO el margen/padding del contenido antes del hero */
  html body .nm2-v4-root,
  html body .nm2-v4-root > section:first-child,
  html body .nm2-v4-root > div:first-child,
  html body .nm2-v4-root > .nm2-hero-brut,
  html body .nm2-v4-root > .nm2-hero-brutalist,
  html body main > .nm2-v4-root > *:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  /* Hero badge: separar del H1 (estaba montado) */
  .nm2-hero-brut-badge,
  .nm2-hero-brutalist .nm2-hero-brut-badge {
    margin-bottom: 18px !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
  }
  .nm2-hero-brut-h1,
  .nm2-hero-brut h1,
  .nm2-hero-brutalist h1 {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

@media (min-width: 992px) {
  .nm2-vs { display: none !important; }
  #nm2-cmp-bar, .nm2-cmp-bar {
    display: none !important; visibility: hidden !important; pointer-events: none !important;
  }
}

/* === STATS GRID MOBILE: 2x2 sin desborde === */
@media (max-width: 767px) {
  .nm2-stats-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  .nm2-stats-grid .nm2-stat,
  .nm2-stats-grid .nm2-stat-card {
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 12px !important;
  }
  .nm2-stats-grid .nm2-stat-num,
  .nm2-stats-grid .nm2-stat-card-num {
    font-size: clamp(20px, 5.5vw, 28px) !important;
    line-height: 1.1 !important;
    word-break: break-word !important;
  }
  .nm2-stats-grid .nm2-stat-label,
  .nm2-stats-grid .nm2-stat-sub {
    font-size: 11px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .nm2-stats-grid .nm2-stat-icon {
    width: 36px !important;
    height: 36px !important;
    flex-shrink: 0 !important;
  }
}

/* === HERO BRUTALIST MOBILE === */
@media (max-width: 767px) {
  .nm2-hero-brut-main { flex-direction: column !important; gap: 16px !important; }
  .nm2-hero-brut-left {
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    gap: 14px !important;
  }
  .nm2-hero-brut-badge {
    writing-mode: horizontal-tb !important;
    transform: none !important;
    font-size: 10px !important;
    letter-spacing: 2px !important;
    padding: 6px 12px !important;
    height: auto !important;
    width: auto !important;
    align-self: flex-start !important;
  }
  .nm2-hero-brut-content { width: 100% !important; max-width: 100% !important; }
  .nm2-hero-brut-h1,
  .nm2-hero-brut h1,
  .nm2-hero-brutalist h1 {
    font-size: clamp(28px, 8vw, 40px) !important;
    line-height: 1.05 !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }
  .nm2-hero-brut-right, .nm2-hero-brut-product-img { display: none !important; }
  .nm2-hero-brut-cta, .nm2-hero-brut-cta-row { flex-wrap: wrap !important; width: 100% !important; }
}
  /* === FIX BRANDS STRIP MOBILE — todos visibles sin scroll === */
  @media (max-width: 767px) {
    .nm2-hero-brut-brands-strip {
      overflow: hidden !important;
      width: 100% !important;
      max-width: 100% !important;
    }
    .nm2-hero-brut-brands {
      display: flex !important;
      flex-wrap: nowrap !important;
      gap: 4px !important;
      padding: 10px 8px !important;
      width: 100% !important;
      min-width: 0 !important;
      max-width: 100% !important;
      justify-content: space-between !important;
      align-items: center !important;
      box-sizing: border-box !important;
    }
    .nm2-hero-brut-brands > * {
      flex: 1 1 0 !important;
      min-width: 0 !important;
      max-width: 40px !important;
      max-height: 22px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
    }
    .nm2-hero-brut-brands img,
    .nm2-hero-brut-brands svg {
      max-width: 100% !important;
      max-height: 18px !important;
      width: auto !important;
      height: auto !important;
      object-fit: contain !important;
    }
    .nm2-hero-brut-strip-cta {
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      box-sizing: border-box !important;
    }
  }


  
  /* === FIX HEADER LAYOUT MOBILE — burger al extremo derecho === */
  @media (max-width: 767px) {
    .nm2-header-inner {
      grid-template-columns: auto 1fr !important;
      gap: 8px !important;
      padding: 0 12px !important;
    }
    .nm2-header-inner > .nm2-logo {
      grid-column: 1 !important;
      justify-self: start !important;
    }
    .nm2-header-inner > #nm2-search-wrap {
      display: none !important;
    }
    .nm2-header-inner > .nm2-header-actions {
      grid-column: 2 !important;
      justify-self: end !important;
      width: 100% !important;
      display: flex !important;
      flex-direction: row !important;
      align-items: center !important;
      gap: 6px !important;
    }
    /* Reset orden raro previo y empujar burger al extremo derecho */
    .nm2-header-actions > * {
      order: 1 !important;
    }
    .nm2-header-actions > #nm2-burger {
      order: 99 !important;
      margin-left: auto !important;
    }
    /* Favoritos y carrito (cuando existan) entre logo y burger */
    .nm2-header-actions > #nm2-fav-btn,
    .nm2-header-actions > .nm2-fav-btn,
    .nm2-header-actions > a[href*="wishlist"],
    .nm2-header-actions > .o_wsale_my_cart,
    .nm2-header-actions > a[href*="shop/cart"] {
      order: 50 !important;
      margin-left: 0 !important;
    }
  }

  

  /* FAV+CART ICONS MOBILE styles — removed */

{}
/* bloque 42 */

/* ==== RESTAURAR íconos ORIGINALES en mobile ==== */
/* Mostrar el botón de favoritos original (nm2-fav-btn) que tenía nm2-hide-mobile */
@media (max-width: 991px) {
  #nm2-fav-btn.nm2-hide-mobile,
  .nm2-header-actions #nm2-fav-btn,
  header.nm2-header #nm2-fav-btn {
    display: inline-flex !important;
    visibility: visible !important;
    width: 44px !important;
    height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    left: auto !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
  /* Ocultar duplicados nuevos por si quedan en algún caché */
  #nm2-mb-fav, #nm2-mb-cart, .nm2-mb-icon {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
    pointer-events: none !important;
  }
  /* Orden visual: favoritos -> carrito -> burger */
  .nm2-header-actions { gap: 6px !important; justify-content: flex-end !important; align-items: center !important; }
  .nm2-header-actions > #nm2-fav-btn { order: 50 !important; margin-left: auto !important; }
  .nm2-header-actions > #nm2-cart-btn { order: 51 !important; margin-left: 0 !important; }
  .nm2-header-actions > #nm2-burger { order: 99 !important; margin-left: 0 !important; }
  /* Ocultar nativos Odoo (sin excluir nuestros duplicados — ya no existen) */
  header .o_wsale_my_cart,
  header .o_wsale_my_wish,
  .nm2-header-actions .o_wsale_my_cart,
  .nm2-header-actions .o_wsale_my_wish,
  li.o_wsale_my_cart, li.o_wsale_my_wish,
  .o_header_mobile_buttons_wrap {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
  }
}

{}
/* bloque 43 */

/* Override inline style applied by old killAll / dedupe scripts to nm2-fav-btn / nm2-cart-btn */
@media (max-width: 991px) {
  body.nm2-view-loggedin header.nm2-header .nm2-header-actions #nm2-fav-btn,
  body.nm2-view-loggedin header.nm2-header .nm2-header-actions #nm2-fav-btn.nm2-hide-mobile {
    display: inline-flex !important;
    visibility: visible !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    position: relative !important;
    left: auto !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
  body.nm2-view-loggedin header.nm2-header .nm2-header-actions #nm2-cart-btn {
    display: inline-flex !important;
    visibility: visible !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    position: relative !important;
    left: auto !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
}

{}
/* bloque 44 */

.nm2-cart-lines{ display:flex; flex-direction:column; gap:14px; margin-top:14px; }
.nm2-cart-line{
  display:flex; gap:12px; padding:12px; border:1px solid var(--nm2-border,#e5e7eb);
  border-radius:12px; background:#fff; align-items:flex-start;
}
.nm2-cart-line__img{
  width:64px; height:64px; border-radius:8px; object-fit:cover;
  background:#f4f5f7; flex-shrink:0;
}
.nm2-cart-line__body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.nm2-cart-line__name{
  font-size:13px; line-height:1.3; color:var(--nm2-text-1,#0d1220);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; font-weight:500;
}
.nm2-cart-line__row{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
}
.nm2-cart-line__qty{
  display:inline-flex; align-items:center; gap:0; border:1px solid #d4d6dc;
  border-radius:999px; overflow:hidden; background:#fff;
}
.nm2-cart-line__qty button{
  width:28px; height:28px; border:none; background:transparent; cursor:pointer;
  font-size:16px; line-height:1; color:#0d1220; padding:0;
}
.nm2-cart-line__qty button:disabled{ opacity:.4; cursor:not-allowed; }
.nm2-cart-line__qty span{
  min-width:28px; text-align:center; font-size:13px; font-weight:600;
}
.nm2-cart-line__price{
  font-size:14px; font-weight:700; color:#0d1220; white-space:nowrap;
}
.nm2-cart-line__remove{
  background:none; border:none; color:#6b7280; cursor:pointer; padding:2px 4px;
  font-size:12px; align-self:flex-start;
}
.nm2-cart-line__remove:hover{ color:#dc2626; }
.nm2-cart-line.is-busy{ opacity:.55; pointer-events:none; }

{}
/* bloque 45 */

/* Wishlist mobile: cards a todo el ancho */
@media (max-width: 640px){
  .nm2-wish-grid{
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .nm2-wish-grid > .wl-c,
  .nm2-wish-grid > article{
    width: 100% !important;
    max-width: none !important;
  }
}
/* Tablet pequeña (641-820): 2 columnas claras */
@media (min-width: 641px) and (max-width: 820px){
  .nm2-wish-grid{
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}

{}
/* bloque 46 */

/* ====== NM2 SKU CHIP ÉPICO v2 — compacto ====== */
.nm2-shop-card-id.nm2-shop-card-id--sku{
  background: #FFFFFF !important;
  border: 1px solid #DCE5FF !important;
  border-radius: 6px !important;
  padding: 1px 5px 1px 2px !important;
  box-shadow: 0 1px 0 rgba(11, 30, 63, 0.04), 0 2px 5px -2px rgba(27, 79, 224, 0.10) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  height: 22px !important;
  min-height: 22px !important;
  max-height: 22px !important;
  cursor: pointer !important;
  transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease !important;
  position: relative !important;
  flex-shrink: 0 !important;
}
.nm2-shop-card-id.nm2-shop-card-id--sku:hover{
  border-color: #1B4FE0 !important;
  box-shadow: 0 2px 0 rgba(11, 30, 63, 0.05), 0 4px 12px -4px rgba(27, 79, 224, 0.30) !important;
  transform: translateY(-1px) !important;
}
.nm2-shop-card-id.nm2-shop-card-id--sku:active{
  transform: translateY(0) !important;
}

/* Label "SKU" */
.nm2-shop-card-id--sku > .nm2-shop-card-id-label{
  background: linear-gradient(180deg, #1B4FE0 0%, #1946CC 100%) !important;
  color: #FFFFFF !important;
  font-family: "Inter Tight", system-ui, -apple-system, sans-serif !important;
  font-weight: 800 !important;
  font-size: 8.5px !important;
  line-height: 1 !important;
  letter-spacing: 0.08em !important;
  padding: 3px 5px 2px !important;
  border-radius: 4px !important;
  text-transform: uppercase !important;
  display: inline-flex !important;
  align-items: center !important;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,0.12) !important;
  height: 16px !important;
}

/* Valor SKU */
.nm2-shop-card-id--sku > .nm2-shop-card-id-val{
  font-family: "Inter Tight", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  color: #0B1E3F !important;
  font-feature-settings: "tnum" 1, "lnum" 1, "cv11" 1 !important;
  font-variant-numeric: tabular-nums lining-nums !important;
  letter-spacing: 0.02em !important;
}

/* Ícono copiar en hover */
.nm2-shop-card-id--sku::after{
  content: "";
  width: 10px;
  height: 10px;
  background-color: #1B4FE0;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='9' y='9' width='13' height='13' rx='2'/><path d='M5 15V5a2 2 0 0 1 2-2h10'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='9' y='9' width='13' height='13' rx='2'/><path d='M5 15V5a2 2 0 0 1 2-2h10'/></svg>") center/contain no-repeat;
  opacity: 0;
  transform: translateX(-2px);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
  margin-left: -1px;
}
.nm2-shop-card-id--sku:hover::after{
  opacity: 0.7;
  transform: translateX(0);
}

/* Estado copiado (verde) */
.nm2-shop-card-id--sku.copied,
.nm2-shop-card-id--sku[data-copied="1"]{
  border-color: #16A34A !important;
  background: #F0FDF4 !important;
}
.nm2-shop-card-id--sku.copied > .nm2-shop-card-id-label,
.nm2-shop-card-id--sku[data-copied="1"] > .nm2-shop-card-id-label{
  background: linear-gradient(180deg, #16A34A 0%, #148F42 100%) !important;
}
.nm2-shop-card-id--sku.copied::after,
.nm2-shop-card-id--sku[data-copied="1"]::after{
  background-color: #16A34A;
  opacity: 1;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/contain no-repeat;
}


/* ====== NM2 MODELO CHIP — tipografía épica ====== */
.nm2-shop-card-id.nm2-shop-card-id--model{
  background: linear-gradient(180deg, #1565C0 0%, #0F4C9E 100%) !important;
  border: 1px solid #0F4C9E !important;
  border-radius: 6px !important;
  padding: 1px 8px !important;
  box-shadow: 0 1px 0 rgba(11, 30, 63, 0.06), 0 2px 5px -2px rgba(15, 76, 158, 0.30), inset 0 -1px 0 rgba(0,0,0,0.12) !important;
  height: 22px !important;
  min-height: 22px !important;
  max-height: 22px !important;
  align-items: center !important;
  display: inline-flex !important;
  transition: box-shadow .18s ease, transform .18s ease !important;
}
.nm2-shop-card-id.nm2-shop-card-id--model:hover{
  box-shadow: 0 2px 0 rgba(11, 30, 63, 0.08), 0 4px 12px -4px rgba(15, 76, 158, 0.45), inset 0 -1px 0 rgba(0,0,0,0.12) !important;
  transform: translateY(-1px) !important;
}
.nm2-shop-card-id--model > .nm2-shop-card-id-val{
  font-family: "Inter Tight", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 700 !important;
  font-size: 11.5px !important;
  line-height: 1 !important;
  color: #FFFFFF !important;
  font-feature-settings: "tnum" 1, "lnum" 1, "cv11" 1 !important;
  font-variant-numeric: tabular-nums lining-nums !important;
  letter-spacing: 0.02em !important;
  text-shadow: 0 1px 0 rgba(0,0,0,0.10) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  min-width: 0 !important;
  display: inline-block !important;
  max-width: 100% !important;
}

/* Row: nowrap + gap + Modelo trunca con ellipsis */
.nm2-shop-card-ids-row{
  align-items: center !important;
  gap: 5px !important;
  flex-wrap: nowrap !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
.nm2-shop-card-ids-row > .nm2-shop-card-id.nm2-shop-card-id--model{
  min-width: 0 !important;
  overflow: hidden !important;
  max-width: 100% !important;
  height: 22px !important;
  align-items: center !important;
}
.nm2-shop-card-id--model > .nm2-shop-card-id-val{
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  min-width: 0 !important;
  display: inline-block !important;
  max-width: 100% !important;
}

{}