/* bloque 1 */

.oe_product .o_wsale_product_btn .o_add_wishlist, .oe_product .o_wsale_product_btn .o_add_compare { flex-grow: 0 !important; flex-shrink: 0 !important; width: 32px !important; padding: 0 !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.4 !important;
  pointer-events: none !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: #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;
}
.oe_product .text-center.small.mt-1 span[style*="color: red"] i,
.oe_product .text-center.small.mt-1 span[style*="color:red"] i {
              color: #fff !important;
}
span[data-oe-id="4094"] {
      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;
}
span[data-oe-id="4094"] i {
  color: #fff !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: #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;
}
.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 in grid */
button.o_wsale_product_btn_primary {
  font-size: 18px !important;
  padding: 6px 12px !important;
}
/* === Wishlist: center out-of-stock badge === */
.o_wsale_wishlist_page span.o_wsale_stock_badge.text-bg-danger {
  display: inline-block !important;
  margin: 10px auto !important;
  text-align: center !important;
  width: fit-content !important;
    padding: 4px 12px !important;
      font-size: 13px !important;
  align-self: center !important;
}
.o_wsale_wishlist_page .o_wsale_product_information_text {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
.nm2-footer-contact, .nm2-footer-contact li { text-transform: none !important; }
/* === Wishlist: 4 columns === */
#o_comparelist_table.o_wishlist_table { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width: 991px) { #o_comparelist_table.o_wishlist_table { grid-template-columns: repeat(2, 1fr) !important; } }
.o_wsale_wishlist_page .oe_product .product_price,
.o_wsale_wishlist_page .oe_product .product_price span,
.o_wsale_wishlist_page .oe_product .product_price .oe_currency_value,
.o_wsale_wishlist_page .oe_product span.oe_currency_value {
font-size: 16px !important;
font-weight: 600 !important;
}
.o_wsale_wishlist_page .o_wish_price,
.o_wsale_wishlist_page .o_wish_price span,
.o_wsale_wishlist_page .o_wish_price .fw-bold,
.o_wsale_wishlist_page .o_wish_price .oe_currency_value,
.o_wish_price .oe_currency_value {
  font-size: 16px !important;
  font-weight: 600 !important;
}
.o_wsale_wishlist_page .o_wish_price {
  background-color: #f0f0f0 !important;
  border-radius: 50px !important;
  padding: 2px 14px !important;
  display: inline-block !important;
}
.s_dynamic_snippet_category_list [name="category_item"] { cursor: pointer !important; }
.nm2-related { max-width: 1200px; margin: 30px auto 40px; padding: 0 15px; }
.nm2-related h3 { font-size: 22px; font-weight: 700; color: #333; margin-bottom: 20px; text-align: center; }
.nm2-related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.nm2-related-card { background: #fff; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.08); overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; text-decoration: none !important; color: inherit !important; display: block; }
.nm2-related-card:hover { transform: translateY(-4px); box-shadow: 0 6px 20px rgba(0,0,0,0.15); }
.nm2-related-card img { width: 100%; height: 180px; object-fit: contain; padding: 15px; background: #f8f9fa; }
.nm2-related-card .nm2-rc-info { padding: 12px 15px; }
.nm2-related-card .nm2-rc-name { font-size: 13px; font-weight: 600; color: #333; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; min-height: 34px; }
.nm2-related-card .nm2-rc-price { font-size: 15px; font-weight: 700; color: #0294CE; margin-top: 8px; }
@media (max-width: 768px) { .nm2-related-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } .nm2-related-card img { height: 140px; } }
';
    html+='@page{size:portrait;} body{font-family:Helvetica,Arial,sans-serif;margin:30px;color:#333;font-size:12px;}';
    html+='.header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;border-bottom:3px solid #0294CE;padding-bottom:20px;}';
    html+='.logo{font-size:28px;font-weight:800;color:#0294CE;}';
    html+='.logo span{color:#333;}';
    html+='.company-info{text-align:right;font-size:11px;color:#666;line-height:1.6;}';
    html+='.title{font-size:20px;font-weight:700;color:#333;margin-bottom:5px;}';
    html+='.subtitle{font-size:12px;color:#888;margin-bottom:25px;}';
    html+='table{width:100%;border-collapse:collapse;margin-bottom:20px;table-layout:fixed;}';
    html+='th{background:#0294CE;color:#fff;padding:10px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:0.5px;}';
    html+='td{padding:8px 10px;border-bottom:1px solid #eee;font-size:11px;word-wrap:break-word;} th:nth-child(1),td:nth-child(1){width:3%;} th:nth-child(2),td:nth-child(2){width:15%;} th:nth-child(3),td:nth-child(3){width:44%;} th:nth-child(4),td:nth-child(4){width:7%;text-align:center;} th:nth-child(5),td:nth-child(5){width:13%;text-align:right;} th:nth-child(6),td:nth-child(6){width:18%;text-align:right;}';
    html+='tr:nth-child(even){background:#f8f9fa;}';
    html+='.total-row{background:#f0f9ff !important;font-weight:700;font-size:14px;}';
    html+='.total-row td{border-top:2px solid #0294CE;border-bottom:2px solid #0294CE;}';
    html+='.footer{margin-top:30px;padding-top:15px;border-top:1px solid #ddd;font-size:10px;color:#888;text-align:center;}';
    html+='.validity{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:10px 15px;font-size:11px;color:#856404;margin-top:20px;text-align:center;}';
    html+='
.o_wsale_product_page .o_wsale_product_details_content_section_price {
  visibility:hidden !important; height:0 !important; overflow:hidden !important; margin:0 !important; padding:0 !important;
}
.o_wsale_product_page span.badge.rounded-pill.text-bg-success,
.o_wsale_product_page span.badge.rounded-pill.text-bg-danger {
  display:none !important;
}
.o_wsale_product_page .text-muted.small.mb-2[style*="28a745"] {
  display:none !important;
}
.o_wsale_product_page .nm2-cant-caja,
.o_wsale_product_page div[style*="margin-top:-14px"][style*="margin-bottom:16px"] {
  display:none !important;
}

{}
/* bloque 2 */

#nm2-categories { padding:40px 20px; max-width:1340px; margin:0 auto; }
.nm2-cat-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:20px; }
.nm2-cat-header h2 { font-size:28px; font-weight:800; color:#1a2332; margin:0; }
.nm2-cat-header p { color:#666; font-size:15px; margin:4px 0 0; }
.nm2-cat-header a { color:#0294CE; font-weight:600; font-size:14px; text-decoration:none; }
.nm2-cat-header a:hover { text-decoration:underline; }
.nm2-cat-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
}
@media(max-width:992px){ .nm2-cat-grid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:576px){ .nm2-cat-grid { grid-template-columns:repeat(2,1fr); } }
.nm2-cat-card {
  position:relative; border-radius:12px; overflow:hidden; aspect-ratio:4/3;
  display:block; text-decoration:none; transition:transform 0.3s;
}
.nm2-cat-card:hover { transform:scale(1.03); }
.nm2-cat-card img {
  width:100%; height:100%; object-fit:cover;
}
.nm2-cat-card-overlay {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(transparent, rgba(0,0,0,0.7));
  padding:40px 14px 14px;
}
.nm2-cat-card-name {
  display:inline-block; background:#0294CE; color:#fff; font-size:12px;
  font-weight:700; padding:6px 14px; border-radius:4px; text-transform:uppercase;
  letter-spacing:0.5px;
}

{}
/* bloque 3 */

#nm2-products-tabs { background:#0294CE; padding:30px 0 40px; }
.nm2-ptabs-header { display:flex; justify-content:center; gap:10px; margin-bottom:24px; }
.nm2-ptabs-header button {
  background:rgba(255,255,255,0.15); border:2px solid rgba(255,255,255,0.3);
  font-size:15px; font-weight:600; color:rgba(255,255,255,0.7);
  padding:10px 28px; cursor:pointer; border-radius:6px; transition:all 0.3s;
}
.nm2-ptabs-header button.active {
  background:#fff; color:#0294CE; border-color:#fff;
  box-shadow:0 4px 15px rgba(0,0,0,0.15);
}
.nm2-ptabs-header button:hover:not(.active) {
  background:rgba(255,255,255,0.25); color:#fff;
}
.nm2-ptabs-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
  max-width:1300px; margin:0 auto; padding:0 20px;
  opacity:1; transition:opacity 0.3s ease;
}
.nm2-ptabs-grid.nm2-fading { opacity:0; }
@media(max-width:992px){ .nm2-ptabs-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:576px){ .nm2-ptabs-grid { grid-template-columns:1fr 1fr; gap:10px; } }
.nm2-pcard {
  background:#fff; border-radius:12px; overflow:hidden;
  transition:transform 0.3s, box-shadow 0.3s; text-decoration:none; display:block;
  box-shadow:0 2px 8px rgba(0,0,0,0.08); position:relative;
}
.nm2-pcard:hover { transform:translateY(-6px); box-shadow:0 12px 30px rgba(0,0,0,0.2); }
.nm2-pcard img { width:100%; height:200px; object-fit:contain; padding:16px; background:#fff; }
.nm2-pcard-brand {
  position:absolute; top:10px; left:10px; background:rgba(0,0,0,0.7);
  color:#fff; font-size:10px; font-weight:700; padding:3px 8px; border-radius:4px;
  text-transform:uppercase; letter-spacing:0.5px;
}
.nm2-pcard-name {
  padding:12px 14px 14px 14px; font-size:12px; color:#333; font-weight:500;
  line-height:1.4; height:92px; overflow:hidden; display:-webkit-box;
  -webkit-line-clamp:3; -webkit-box-orient:vertical;
  border-top:1px solid #f0f0f0;
  box-sizing:border-box;
}
.nm2-ptabs-panel { display:none; }
.nm2-ptabs-panel.active { display:block; }
.nm2-ptabs-footer { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:20px; }
.nm2-ptabs-more {
  display:inline-block; background:#fff; color:#0294CE;
  border:none; padding:10px 30px; border-radius:6px; font-size:14px;
  font-weight:600; cursor:pointer; transition:all 0.3s; text-decoration:none;
}
.nm2-ptabs-more:hover { transform:translateY(-2px); box-shadow:0 4px 15px rgba(0,0,0,0.2); color:#0294CE; }
.nm2-ptabs-dots { display:flex; gap:6px; }
.nm2-ptabs-dot {
  width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,0.3);
  cursor:pointer; transition:all 0.3s; border:none;
}
.nm2-ptabs-dot.active { background:#fff; transform:scale(1.2); }

{}
/* bloque 4 */

/* ==========================================
   NEXUSM2 - SHOP MOBILE CLEAN OVERRIDE
   2 columnas mobile, botones sin desborde,
   banner tarifa compacto y botón subir no invasivo.
   Reemplaza overrides mobile viejos.
   ========================================== */

@media (max-width: 575.98px) {

  html, body {
    overflow-x: hidden !important;
  }

  #wrapwrap,
  main,
  .container,
  .container-fluid,
  .row {
    max-width: 100% !important;
  }

  .o_searchbar_form,
  .o_wsale_products_searchbar_form {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
    width: 100% !important;
    align-items: center !important;
  }

  .o_searchbar_form input,
  .o_wsale_products_searchbar_form input {
    min-width: 0 !important;
    width: 100% !important;
    font-size: 16px !important;
  }

  .o_searchbar_form .btn,
  .o_wsale_products_searchbar_form .btn {
    white-space: nowrap !important;
  }

  #o_wsale_products_grid .o_wsale_products_grid_table.grid {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  #o_wsale_products_grid .o_wsale_products_grid_table.grid > .oe_product {
    grid-column: span 6 / span 6 !important;
    min-width: 0 !important;
  }

  #o_wsale_products_grid .oe_product,
  #o_wsale_products_grid .oe_product_cart,
  #o_wsale_products_grid .o_wsale_product_information,
  #o_wsale_products_grid .card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #o_wsale_products_grid .oe_product_cart,
  #o_wsale_products_grid .card {
    padding: 12px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }

  #o_wsale_products_grid .oe_product_cart * {
    min-width: 0 !important;
  }

  #o_wsale_products_grid .oe_product_image,
  #o_wsale_products_grid .o_wsale_product_img_wrapper,
  #o_wsale_products_grid .o_wsale_product_img {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    border-radius: 12px !important;
    margin-bottom: 8px !important;
  }

  #o_wsale_products_grid .oe_product_image img,
  #o_wsale_products_grid .o_wsale_product_img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }

  #o_wsale_products_grid h2.o_wsale_products_item_title,
  #o_wsale_products_grid h2.o_wsale_products_item_title a,
  #o_wsale_products_grid h2.o_wsale_products_item_title a span {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    min-height: 2.4em !important;
    margin: 4px 0 6px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  #o_wsale_products_grid .text-muted,
  #o_wsale_products_grid .o_wsale_product_information_text,
  #o_wsale_products_grid .small.text-muted {
    font-size: 12px !important;
    line-height: 1.25 !important;
    margin-bottom: 6px !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  #o_wsale_products_grid .text-muted.small:first-of-type {
    font-size: 11px !important;
    opacity: .75 !important;
    margin-bottom: 4px !important;
  }

  #o_wsale_products_grid .product_price,
  #o_wsale_products_grid .product_price .oe_currency_value,
  #o_wsale_products_grid .oe_price,
  #o_wsale_products_grid span.oe_currency_value {
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    text-align: left !important;
  }

  #o_wsale_products_grid .product_price {
    margin-bottom: 8px !important;
  }

  #o_wsale_products_grid .text-center.small.mt-1,
  #o_wsale_products_grid .o_wsale_stock_badge,
  #o_wsale_products_grid .nm2-avail-verde,
  #o_wsale_products_grid .nm2-avail-amarilla {
    font-size: 11px !important;
    line-height: 1.2 !important;
    min-width: 100% !important;
    width: 100% !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 5px 8px !important;
    border-radius: 999px !important;
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    white-space: normal !important;
    text-align: center !important;
  }

  #o_wsale_products_grid .css_quantity {
    display: grid !important;
    grid-template-columns: 30px 1fr 30px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 38px !important;
    margin-bottom: 8px !important;
  }

  #o_wsale_products_grid .css_quantity .btn,
  #o_wsale_products_grid .css_quantity button,
  #o_wsale_products_grid .css_quantity input.js_shop_qty_input {
    height: 38px !important;
    min-width: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
  }

  #o_wsale_products_grid input.js_shop_qty_input {
    width: 100% !important;
    text-align: center !important;
    border: 1px solid #d0d5dd !important;
    border-radius: 6px !important;
    background: #fff !important;
    font-weight: 700 !important;
    -moz-appearance: textfield !important;
  }

  #o_wsale_products_grid input.js_shop_qty_input::-webkit-inner-spin-button,
  #o_wsale_products_grid input.js_shop_qty_input::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
  }

  #o_wsale_products_grid .js_shop_qty_display {
    display: none !important;
  }

  #o_wsale_products_grid .o_wsale_product_btn,
  #o_wsale_products_grid .o_add_cart,
  #o_wsale_products_grid form[action*="/shop/cart/update"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin-top: auto !important;
    width: 100% !important;
  }

  #o_wsale_products_grid .btn,
  #o_wsale_products_grid .btn-primary,
  #o_wsale_products_grid .btn-outline-primary,
  #o_wsale_products_grid .btn-light {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 40px !important;
    padding: 0 10px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #o_wsale_products_grid .o_add_wishlist,
  #o_wsale_products_grid .btn.o_add_wishlist_dyn {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border-radius: 50% !important;
    padding: 0 !important;
  }

  .back-to-top,
  .o_back_to_top,
  .scroll-top {
    width: 46px !important;
    height: 46px !important;
    right: 10px !important;
    bottom: 82px !important;
    border-radius: 999px !important;
    padding: 0 !important;
    z-index: 20 !important;
  }

  .back-to-top span,
  .o_back_to_top span,
  .scroll-top span {
    display: none !important;
  }

  .catalogo-b2b-banner,
  .tariff-banner,
  .customer-rate-banner,
  .tarifa-banner {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    padding: 14px !important;
    overflow: hidden !important;
  }

  .catalogo-b2b-banner *,
  .tariff-banner *,
  .customer-rate-banner *,
  .tarifa-banner * {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .filters-row,
  .catalog-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  .filters-row::-webkit-scrollbar,
  .catalog-tabs::-webkit-scrollbar {
    display: none !important;
  }

  .filters-row > *,
  .catalog-tabs > * {
    flex: 0 0 auto !important;
  }
}


{}
/* bloque 5 */

/* NM2 — Fix header sticky tapando detalle de orden */
body.o_sale_portal_order_page.nm2-view-loggedin main,
body.o_sale_portal_sale_order_page.nm2-view-loggedin main,
body[class*="o_sale_portal"][class*="nm2-view-loggedin"] main,
body[class*="o_portal_my_doc"][class*="nm2-view-loggedin"] main,
body[class*="o_portal"][class*="nm2-view-loggedin"] main {
  padding-top: 224px;
}
html { scroll-padding-top: 240px; }
@media (max-width: 767px) {
  body[class*="o_sale_portal"][class*="nm2-view-loggedin"] main,
  body[class*="o_portal_my_doc"][class*="nm2-view-loggedin"] main,
  body[class*="o_portal"][class*="nm2-view-loggedin"] main {
    padding-top: 180px;
  }
  html { scroll-padding-top: 196px; }
}

{}