/* =========================================================================
   MRC — Catálogo /shop con el sistema visual de la home RC1 (mrc-rc1-site.css)
   - Todo acotado a body:has(.mrc-catalogo): no afecta otras páginas.
   - Reutiliza tokens y componentes de RC1 (--color-*, --font-*, --sp-*,
     .mrc-nav, .mrc-footer, .mrc-btn). No define colores ni fuentes nuevas.
   - Requiere que la página cargue también mrc-rc1-site.css y tenga .mrc-rc1.
   ========================================================================= */

/* ---------- Encabezado / pie: se usan los de RC1, no los de Odoo ---------- */
body:has(.mrc-catalogo) #wrapwrap > header#top,
body:has(.mrc-catalogo) #wrapwrap > footer#bottom,
body:has(.mrc-catalogo) .o_footer_copyright { display: none !important; }

body:has(.mrc-catalogo) #wrap.mrc-catalogo { background: var(--surface-page); }
body:has(.mrc-catalogo) .mrc-catalogo .oe_structure:empty { display: none; }

/* Contenedor del shop alineado al de RC1 (1280px + gutters) */
body:has(.mrc-catalogo) #o_wsale_container,
body:has(.mrc-catalogo) #product_detail.o_wsale_container_lg,
body:has(.mrc-catalogo) #product_detail > .o_wsale_content_contained {
  max-width: var(--container-max) !important;
  margin-left: auto; margin-right: auto;
  padding-left: var(--gutter-desktop); padding-right: var(--gutter-desktop);
}
body:has(.mrc-catalogo) #product_detail > .o_wsale_content_contained { padding-left: 0; padding-right: 0; }

/* Textos base dentro del shop */
body:has(.mrc-catalogo) .mrc-catalogo,
body:has(.mrc-catalogo) .mrc-catalogo .text-muted { font-family: var(--font-body); }
body:has(.mrc-catalogo) .mrc-catalogo .text-muted { color: #454545 !important; }
body:has(.mrc-catalogo) #o_wsale_container a:not(.btn):not(.page-link):not(.dropdown-item),
body:has(.mrc-catalogo) #product_detail a:not(.btn):not(.dropdown-item) { color: var(--color-gray-900); }
/* Menú "Ordenar por": opción activa con contraste AA (grafito invertido, como los chips activos) */
body:has(.mrc-catalogo) .o_sortby_dropdown .dropdown-menu { border: 1px solid var(--border-on-light); border-radius: var(--radius); box-shadow: var(--shadow-surface); padding: var(--sp-2); }
body:has(.mrc-catalogo) .o_sortby_dropdown .dropdown-item { color: var(--color-gray-900); border-radius: 6px; font-size: 15px; padding: 10px 12px; }
body:has(.mrc-catalogo) .o_sortby_dropdown .dropdown-item:hover,
body:has(.mrc-catalogo) .o_sortby_dropdown .dropdown-item:focus { background: var(--color-gray-100); color: var(--color-gray-900); }
body:has(.mrc-catalogo) .o_sortby_dropdown .dropdown-item.active,
body:has(.mrc-catalogo) .o_sortby_dropdown .dropdown-item:active { background: var(--color-gray-900); color: var(--color-white); }

/* ---------- Intro del catálogo (eyebrow + título + bajada) ---------- */
body:has(.mrc-catalogo) .mrc-cat-intro { padding-top: var(--sp-8); }
body:has(.mrc-catalogo) .mrc-cat-intro .mrc-breadcrumb { padding-top: 0; margin-bottom: var(--sp-6); }
body:has(.mrc-catalogo) .mrc-cat-intro h1 { font-size: 48px; margin-top: var(--sp-2); }
body:has(.mrc-catalogo) .mrc-cat-intro .mrc-lede { margin-top: var(--sp-4); max-width: 640px; }
body:has(.mrc-catalogo) .mrc-cat-busqueda { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); margin-top: var(--sp-4); font-size: 15px; }
/* El breadcrumb nativo del encabezado de Odoo se reemplaza por el de la intro RC1 */
body:has(.mrc-catalogo) #o_wsale_products_header .breadcrumb,
body:has(.mrc-catalogo) #o_wsale_products_header .o_wsale_breadcrumb { display: none !important; }
/* El encabezado nativo de Odoo queda solo con herramientas (categorías, búsqueda, orden) */
body:has(.mrc-catalogo) #o_wsale_products_header { padding-top: var(--sp-6) !important; padding-bottom: var(--sp-6) !important; gap: var(--sp-4) !important; }
body:has(.mrc-catalogo) #o_wsale_products_header > h1,
body:has(.mrc-catalogo) #o_wsale_products_header .o_wsale_shop_title { display: none !important; }

/* Categorías (filmstrip) como chips RC1 */
body:has(.mrc-catalogo) .o_wsale_filmstrip { gap: var(--sp-2) !important; }
body:has(.mrc-catalogo) .o_wsale_filmstrip li { margin: 0 !important; }
body:has(.mrc-catalogo) .o_wsale_filmstrip_link {
  display: flex !important; align-items: center; min-height: 44px;
  padding: 10px 18px !important; border-radius: 999px !important;
  background: var(--surface-white) !important; border: 1.5px solid var(--border-on-light) !important;
  font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--color-gray-900) !important;
  box-shadow: none !important; white-space: nowrap; transition: border-color 150ms ease, color 150ms ease;
}
body:has(.mrc-catalogo) .o_wsale_filmstrip_link * { font: inherit !important; color: inherit !important; margin: 0 !important; }
body:has(.mrc-catalogo) .o_wsale_filmstrip_link img,
body:has(.mrc-catalogo) .o_wsale_filmstrip_link .o_wsale_filmstrip_image { display: none !important; }
body:has(.mrc-catalogo) .o_wsale_filmstrip_link .o_wsale_filmstrip_item { background: transparent !important; padding: 0 !important; border: 0 !important; align-items: center; }
body:has(.mrc-catalogo) .o_wsale_filmstrip_link:hover { border-color: var(--color-gray-900) !important; }
body:has(.mrc-catalogo) .o_wsale_filmstrip_link.active,
body:has(.mrc-catalogo) .o_wsale_filmstrip li.active .o_wsale_filmstrip_link,
body:has(.mrc-catalogo) .o_wsale_filmstrip_link[aria-current] {
  background: var(--color-gray-900) !important; border-color: var(--color-gray-900) !important; color: var(--color-white) !important;
}

/* Búsqueda, orden y filtros con la forma de .mrc-catalog-search */
body:has(.mrc-catalogo) .o_wsale_products_searchbar_form .o_search_input_group,
body:has(.mrc-catalogo) .products_header .o_search_input_group { border-radius: var(--radius) !important; overflow: hidden; border: 1.5px solid var(--border-on-light); background: var(--surface-white); }
body:has(.mrc-catalogo) .o_wsale_products_searchbar_form input.oe_search_box,
body:has(.mrc-catalogo) .products_header input.oe_search_box {
  font-family: var(--font-body); font-size: 16px; min-height: 48px; padding: 12px 16px;
  background: var(--surface-white) !important; border: 0 !important; border-radius: 0 !important; color: var(--color-gray-900);
}
body:has(.mrc-catalogo) .products_header .oe_search_button,
body:has(.mrc-catalogo) .products_header .btn-light,
body:has(.mrc-catalogo) .o_sortby_dropdown > .btn {
  background: var(--surface-white) !important; border: 1.5px solid var(--border-on-light) !important; border-radius: var(--radius) !important;
  min-height: 48px; font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--color-gray-900) !important;
}
body:has(.mrc-catalogo) .products_header .o_search_input_group .oe_search_button { border: 0 !important; border-radius: 0 !important; }
body:has(.mrc-catalogo) .mrc-catalogo input.oe_search_box:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: -3px; }

/* Barra lateral de filtros (escritorio) como panel RC1 */
body:has(.mrc-catalogo) #products_grid_before .o_wsale_products_grid_before_rail { height: auto !important; }
body:has(.mrc-catalogo) #products_grid_before .accordion-item {
  background: var(--surface-white); border: 1px solid var(--border-on-light) !important; border-radius: var(--radius) !important; padding: var(--sp-2) var(--sp-4);
}
body:has(.mrc-catalogo) #products_grid_before .accordion-header,
body:has(.mrc-catalogo) #products_grid_before .accordion-button { font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--color-gray-900); background: transparent; box-shadow: none; }

/* ---------- Grilla de productos = .mrc-product-card de RC1 ---------- */
body:has(.mrc-catalogo) #o_wsale_products_grid { gap: var(--sp-6) !important; }
body:has(.mrc-catalogo) .oe_product_cart {
  background: var(--surface-white) !important; border: 1px solid var(--border-on-light) !important; border-radius: var(--radius) !important;
  overflow: hidden; flex-direction: column !important; box-shadow: none; transition: box-shadow 200ms ease, transform 200ms ease;
}
body:has(.mrc-catalogo) .oe_product_cart:hover { box-shadow: var(--shadow-surface); }
/* Imagen: cuadrada, fondo suave, equipo COMPLETO (contain), nunca recortado */
body:has(.mrc-catalogo) .oe_product_cart .oe_product_image {
  aspect-ratio: 1 / 1; height: auto !important; width: 100% !important; flex: 0 0 auto !important;
  background: var(--surface-soft); padding: var(--sp-6); margin: 0 !important; border-radius: 0 !important;
}
body:has(.mrc-catalogo) .oe_product_cart .oe_product_image a,
body:has(.mrc-catalogo) .oe_product_cart .oe_product_image .oe_product_image_link { display: block; width: 100%; height: 100%; }
body:has(.mrc-catalogo) .oe_product_cart .oe_product_image img,
body:has(.mrc-catalogo) .oe_product_cart .oe_product_image .oe_product_image_img {
  width: 100% !important; height: 100% !important; max-height: none !important; object-fit: contain !important; object-position: center; mix-blend-mode: multiply;
}
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_information {
  padding: var(--sp-6) !important; display: flex; flex-direction: column; gap: var(--sp-2); text-align: left !important;
}
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_products_item_title,
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_products_item_title a {
  font-family: var(--font-display) !important; font-weight: 600 !important; font-size: 17px !important; line-height: 1.3 !important;
  color: var(--color-gray-900) !important; text-decoration: none;
}
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_products_item_title a:hover { color: var(--color-red) !important; }
body:has(.mrc-catalogo) .oe_product_cart .oe_subdescription,
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_description {
  font-size: 14px; line-height: 1.5; color: #454545; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_sub { margin-top: auto; padding-top: var(--sp-2); }
/* Odoo 19 muestra las acciones solo al pasar el mouse: en el catálogo deben verse siempre (también en táctil) */
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn {
  width: 100%; opacity: 1 !important; visibility: visible !important; position: static !important; transform: none !important;
  display: block !important; pointer-events: auto !important; aspect-ratio: auto !important; height: auto !important;
}
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_action_row { display: flex !important; width: 100%; gap: 0; transform: none !important; height: auto !important; padding: 0 !important; }
body:has(.mrc-catalogo) .oe_product_cart .o_add_compare_placeholder { display: none !important; }
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_sub { display: block !important; }
body:has(.mrc-catalogo) .oe_product_cart .o_l10n_ar_product_price:empty { display: none; }
/* "Consultar precio" del listado = .mrc-btn--secondary */
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary.btn-outline-primary {
  display: inline-flex !important; align-items: center; justify-content: center; gap: var(--sp-2); width: 100%;
  min-height: 44px; padding: 10px 16px !important; border-radius: var(--radius) !important;
  background: transparent !important; border: 2px solid var(--color-gray-900) !important; color: var(--color-gray-900) !important;
  font-family: var(--font-display); font-weight: 600; font-size: 14px; position: static !important; box-shadow: none !important;
  opacity: 1 !important; transform: none !important; height: auto !important; flex: 1 1 auto !important; aspect-ratio: auto !important;
}
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary.btn-outline-primary:hover { border-color: var(--color-red) !important; color: var(--color-red) !important; }
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary .o_label { font-size: 14px !important; margin: 0 !important; display: inline !important; }
/* RC1 no usa íconos en botones secundarios */
body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary .fa { display: none !important; }

/* Paginador */
body:has(.mrc-catalogo) .products_pager .page-link {
  border: 1.5px solid var(--border-on-light); border-radius: var(--radius) !important; margin: 0 3px; min-width: 44px; min-height: 44px;
  display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 600; color: var(--color-gray-900); background: var(--surface-white);
}
body:has(.mrc-catalogo) .products_pager .page-item.active .page-link { background: var(--color-gray-900); border-color: var(--color-gray-900); color: var(--color-white); }

/* ---------- Ficha de producto = .mrc-pd de RC1 ---------- */
body:has(.mrc-catalogo) #product_detail { margin-top: 0 !important; padding-top: var(--sp-6); padding-bottom: var(--sp-16); }
/* Breadcrumb */
body:has(.mrc-catalogo) .o_wsale_breadcrumb { font-family: var(--font-display); font-size: 13px; font-weight: 500; color: #454545; padding: 0 0 var(--sp-6) 0 !important; }
/* Los íconos (.oi/.fa) conservan su fuente propia: si heredan Montserrat se ven como cuadrados */
body:has(.mrc-catalogo) .o_wsale_breadcrumb, body:has(.mrc-catalogo) .o_wsale_breadcrumb *:not(.oi):not(.fa) { font-family: var(--font-display) !important; font-size: 13px !important; }
body:has(.mrc-catalogo) .o_wsale_breadcrumb a { color: #454545 !important; }
body:has(.mrc-catalogo) .o_wsale_breadcrumb a:hover { color: var(--color-red) !important; }
body:has(.mrc-catalogo) .o_wsale_breadcrumb .breadcrumb-item.active,
body:has(.mrc-catalogo) .o_wsale_breadcrumb .breadcrumb-item.active span { color: var(--color-gray-900); font-weight: 600; }
body:has(.mrc-catalogo) .o_wsale_breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: rgba(10,20,30,0.25); }
/* Columnas */
body:has(.mrc-catalogo) #product_detail_main { --bs-gutter-x: 64px; align-items: flex-start !important; }
body:has(.mrc-catalogo) #product_detail_main .o_wsale_product_images { background: var(--surface-white); border-radius: var(--radius); padding: var(--sp-8); }
body:has(.mrc-catalogo) #product_detail_main .o_wsale_product_images img,
body:has(.mrc-catalogo) #o-carousel-product img {
  object-fit: contain !important; width: 100% !important; height: auto !important; max-height: 560px !important; mix-blend-mode: multiply;
}
body:has(.mrc-catalogo) #o-carousel-product .o_carousel_product_outer { background: transparent !important; }
/* Título, bajada y "Consultar precio" */
body:has(.mrc-catalogo) #product_details h1 {
  font-family: var(--font-display) !important; font-weight: 800 !important; font-size: 44px !important; line-height: 1.12 !important;
  letter-spacing: -0.01em; color: var(--color-gray-900); margin: 0 0 var(--sp-4) 0 !important;
}
body:has(.mrc-catalogo) #product_details .oe_structure.text-muted,
body:has(.mrc-catalogo) #product_details .oe_structure.text-muted p { font-size: 18px; line-height: 1.55; color: #454545 !important; }
/* Datos técnicos de la descripción: una columna con viñetas normales; en pantallas amplias, columnas solo si cada una tiene ≥280 px */
body:has(.mrc-catalogo) #product_details .oe_structure.text-muted p { margin: 0 0 8px; }
body:has(.mrc-catalogo) #product_details .oe_structure.text-muted ul { list-style: disc; padding-left: 0; margin: 0 0 12px; }
body:has(.mrc-catalogo) #product_details .oe_structure.text-muted li { margin: 0 0 2px 1.25em; font-size: 15px; line-height: 1.5; color: #454545; }
@media (min-width: 1025px) {
  body:has(.mrc-catalogo) #product_details .oe_structure.text-muted ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); column-gap: 24px; }
}
body:has(.mrc-catalogo) #product_details .mrc-consultar-precio {
  display: flex !important; align-items: center; gap: var(--sp-3);
  font-family: var(--font-display) !important; font-weight: 600 !important; font-size: 15px !important; color: var(--color-gray-900);
  padding-top: var(--sp-4); margin-top: var(--sp-2) !important; border-top: 2px solid var(--color-gray-900);
}
body:has(.mrc-catalogo) #product_details .mrc-consultar-precio::before { content: ""; width: 20px; height: 2px; background: var(--color-red); flex-shrink: 0; }
/* Botón "Solicitar presupuesto" = .mrc-btn--primary */
body:has(.mrc-catalogo) #contact_us_wrapper button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 15px 28px;
  background: var(--color-red) !important; border: 2px solid var(--color-red) !important; border-radius: var(--radius) !important; color: var(--color-white) !important;
  font-family: var(--font-display); font-weight: 600; font-size: 16px; box-shadow: none !important; transition: background 200ms ease, transform 200ms ease;
}
body:has(.mrc-catalogo) #contact_us_wrapper button:hover { background: #A80000 !important; border-color: #A80000 !important; }
body:has(.mrc-catalogo) #contact_us_wrapper button:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: 2px; }

/* ---------- Formulario de presupuesto = .mrc-form de RC1 en panel blanco ---------- */
body:has(.mrc-catalogo) #solicitar-presupuesto {
  background: var(--surface-white) !important; border: 1px solid var(--border-on-light) !important; border-radius: var(--radius) !important;
  box-shadow: var(--shadow-surface); padding: var(--sp-8) !important; margin-top: var(--sp-6); scroll-margin-top: calc(var(--nav-height) + 16px);
}
body:has(.mrc-catalogo) #solicitar-presupuesto h2 { font-family: var(--font-display) !important; font-weight: 700 !important; font-size: 24px !important; color: var(--color-gray-900); margin-bottom: var(--sp-2) !important; }
body:has(.mrc-catalogo) #solicitar-presupuesto > p { font-size: 15px !important; line-height: 1.55; color: #454545 !important; margin-bottom: var(--sp-6) !important; }
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_rows { row-gap: var(--sp-4); }
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_field { margin-bottom: 0 !important; }
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_label {
  font-family: var(--font-display); font-weight: 600; font-size: 13.5px; color: var(--color-gray-900); margin-bottom: 6px !important;
}
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_mark { color: var(--color-red); }
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_input {
  font-family: var(--font-body); font-size: 16px; padding: 13px 16px; min-height: 50px;
  border: 1.5px solid rgba(10,20,30,0.14) !important; border-radius: var(--radius) !important;
  background: var(--surface-white) !important; color: var(--color-gray-900); box-shadow: none !important;
}
body:has(.mrc-catalogo) #solicitar-presupuesto textarea.s_website_form_input { min-height: 110px; resize: vertical; }
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_input:focus,
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_input:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: 2px; border-color: var(--color-red) !important; }
body:has(.mrc-catalogo) #solicitar-presupuesto .is-invalid,
body:has(.mrc-catalogo) #solicitar-presupuesto .o_has_error .s_website_form_input { border-color: var(--color-red) !important; }
body:has(.mrc-catalogo) #solicitar-presupuesto .form-text { font-size: 13.5px; color: #454545; margin-top: 6px; display: block; }
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_send {
  display: flex !important; align-items: center; justify-content: center; min-height: 52px; margin-top: var(--sp-2);
  background: var(--color-red) !important; border: 2px solid var(--color-red) !important; border-radius: var(--radius) !important;
  color: var(--color-white) !important; font-family: var(--font-display); font-weight: 600; font-size: 16px;
}
body:has(.mrc-catalogo) #solicitar-presupuesto .s_website_form_send:hover { background: #A80000 !important; border-color: #A80000 !important; }
body:has(.mrc-catalogo) #solicitar-presupuesto #s_website_form_result { display: block; margin-top: var(--sp-3); font-size: 14px; }

/* ---------- Confirmación ---------- */
body:has(.mrc-catalogo) .mrc-confirmacion { padding-top: var(--sp-16); padding-bottom: var(--section-gap); }
body:has(.mrc-catalogo) .mrc-confirmacion__card {
  background: var(--surface-white); border: 1px solid var(--border-on-light); border-radius: var(--radius); box-shadow: var(--shadow-surface);
  padding: var(--sp-12); max-width: 720px;
}
body:has(.mrc-catalogo) .mrc-confirmacion h1 { font-size: 44px; margin-top: var(--sp-2); }
body:has(.mrc-catalogo) .mrc-confirmacion .mrc-lede { margin-top: var(--sp-4); }
body:has(.mrc-catalogo) .mrc-confirmacion__actions { display: flex; flex-wrap: wrap; gap: var(--sp-4); margin-top: var(--sp-8); }

/* ---------- Móvil (cortes de RC1: 1024 / 768 / 480) ---------- */
@media (max-width: 1024px) {
  body:has(.mrc-catalogo) #product_detail_main { --bs-gutter-x: 32px; }
}
@media (max-width: 768px) {
  body:has(.mrc-catalogo) #o_wsale_container,
  body:has(.mrc-catalogo) #product_detail.o_wsale_container_lg { padding-left: var(--gutter-mobile); padding-right: var(--gutter-mobile); }
  body:has(.mrc-catalogo) .mrc-cat-intro { padding-top: var(--sp-6); }
  body:has(.mrc-catalogo) .mrc-cat-intro h1 { font-size: 30px; }
  body:has(.mrc-catalogo) #o_wsale_products_grid { gap: var(--sp-3) !important; }
  body:has(.mrc-catalogo) .oe_product_cart .oe_product_image { padding: var(--sp-3); }
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_information { padding: var(--sp-3) !important; }
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_products_item_title,
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_products_item_title a { font-size: 15px !important; }
  body:has(.mrc-catalogo) .oe_product_cart .oe_subdescription,
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_description { display: none; }
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary.btn-outline-primary { min-height: 40px; padding: 8px 10px !important; font-size: 13px; }
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary .fa { display: none; }
  body:has(.mrc-catalogo) #product_detail_main .o_wsale_product_images { padding: var(--sp-4); margin-bottom: var(--sp-6); }
  body:has(.mrc-catalogo) #product_details h1 { font-size: 28px !important; }
  body:has(.mrc-catalogo) #product_details .oe_structure.text-muted,
  body:has(.mrc-catalogo) #product_details .oe_structure.text-muted p { font-size: 16px; }
  body:has(.mrc-catalogo) #contact_us_wrapper button { width: 100%; }
  body:has(.mrc-catalogo) #solicitar-presupuesto { padding: var(--sp-6) !important; }
  body:has(.mrc-catalogo) .mrc-confirmacion { padding-top: var(--sp-8); }
  body:has(.mrc-catalogo) .mrc-confirmacion__card { padding: var(--sp-6); }
  body:has(.mrc-catalogo) .mrc-confirmacion h1 { font-size: 30px; }
  body:has(.mrc-catalogo) .mrc-confirmacion__actions .mrc-btn { width: 100%; justify-content: center; }
}

/* ---------- Ficha: botón flotante "Solicitar presupuesto" (reemplaza al de WhatsApp en el catálogo) ---------- */
body:has(.mrc-catalogo) .mrc-cta-flotante { display: none; }
@media (max-width: 768px) {
  body:has(.mrc-catalogo) .mrc-cta-flotante {
    display: flex; align-items: center; justify-content: center; position: fixed; z-index: 40;
    left: calc(16px + env(safe-area-inset-left)); right: calc(16px + env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom));
    min-height: 52px; border: 0; border-radius: var(--radius); background: var(--color-red); color: var(--color-white);
    font-family: var(--font-display); font-weight: 600; font-size: 16px; box-shadow: 0 8px 20px rgba(17,17,17,0.22);
    transition: opacity 160ms ease, transform 160ms ease;
  }
  body:has(.mrc-catalogo) .mrc-cta-flotante { transition: opacity 160ms ease, transform 160ms ease, visibility 0s linear 0s; }
  /* visibility: el botón oculto sale del orden de tabulación (no solo invisible) */
  body:has(.mrc-catalogo) .mrc-cta-flotante.is-oculto { opacity: 0; transform: translateY(12px); pointer-events: none; visibility: hidden; transition: opacity 160ms ease, transform 160ms ease, visibility 0s linear 160ms; }
  body:has(.mrc-catalogo) .mrc-cta-flotante:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: 3px; }
  body:has(.mrc-catalogo) .o_wsale_product_page.mrc-catalogo .mrc-footer__bottom { padding-bottom: calc(16px + 52px + 16px); }
}

/* RC1 no cierra el menú móvil al pasar a escritorio: si quedó abierto, html.mrc-scroll-lock bloquea el scroll.
   En el catálogo, por encima del corte del menú (1220px) se ocultan el menú y se libera el scroll. */
@media (min-width: 1221px) {
  html.mrc-scroll-lock:has(.mrc-catalogo) { overflow: visible; }
  body:has(.mrc-catalogo) .mrc-mobile-menu { display: none !important; }
}

/* ---------- Catálogo simplificado: solo tipo de producto, rubro y búsqueda ----------
   Se ocultan de la interfaz (no se borran datos ni atributos en Odoo): barra de categorías nativa,
   barra lateral de filtros por atributo, panel de filtros móvil y selector de orden. */
body:has(.mrc-catalogo) #o_wsale_categories_filmstrip,
body:has(.mrc-catalogo) #products_grid_before,
body:has(.mrc-catalogo) #o_wsale_offcanvas,
body:has(.mrc-catalogo) [data-bs-target="#o_wsale_offcanvas"],
body:has(.mrc-catalogo) .o_sortby_dropdown,
body:has(.mrc-catalogo) .products_attributes_filters,
body:has(.mrc-catalogo) .o_pricelist_dropdown { display: none !important; }

body:has(.mrc-catalogo) .mrc-cat-nav { display: flex; flex-direction: column; gap: var(--sp-4); margin-top: var(--sp-8); }
body:has(.mrc-catalogo) .mrc-cat-nav__grupo { display: flex; flex-direction: column; gap: var(--sp-2); }
body:has(.mrc-catalogo) .mrc-cat-nav__titulo { font-family: var(--font-display); font-weight: 600; font-size: 12px !important; letter-spacing: 0.08em; text-transform: uppercase; color: #454545; margin: 0; }
body:has(.mrc-catalogo) .mrc-cat-nav__chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
body:has(.mrc-catalogo) .mrc-cat-nav__sep { width: 1px; height: 24px; background: var(--border-on-light); margin: 0 var(--sp-1); }
body:has(.mrc-catalogo) .mrc-cat-chip {
  display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border-radius: 999px;
  background: var(--surface-white); border: 1.5px solid var(--border-on-light);
  font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--color-gray-900) !important; white-space: nowrap;
  transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
}
body:has(.mrc-catalogo) .mrc-cat-chip--sec { font-weight: 500; }
body:has(.mrc-catalogo) .mrc-cat-chip:hover { border-color: var(--color-gray-900); }
body:has(.mrc-catalogo) .mrc-cat-chip:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: 2px; }
body:has(.mrc-catalogo) .mrc-cat-chip[aria-current] { background: var(--color-gray-900); border-color: var(--color-gray-900); color: var(--color-white) !important; }
/* Con la barra lateral oculta, la grilla usa todo el ancho: 4 columnas en escritorio */
@media (min-width: 1200px) {
  body:has(.mrc-catalogo) #o_wsale_products_grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  body:has(.mrc-catalogo) #o_wsale_products_grid > .oe_product { grid-column: auto / span 1 !important; }
}
@media (max-width: 768px) {
  /* Filas de chips con desplazamiento horizontal en celular */
  body:has(.mrc-catalogo) .mrc-cat-nav { margin-top: var(--sp-6); }
  body:has(.mrc-catalogo) .mrc-cat-nav__chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--gutter-mobile)); padding: 2px var(--gutter-mobile) 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  body:has(.mrc-catalogo) .mrc-cat-nav__chips::-webkit-scrollbar { display: none; }
  body:has(.mrc-catalogo) .mrc-cat-chip { min-height: 40px; padding: 8px 14px; font-size: 13.5px; }
}

/* ---------- Ajustes móviles (2026-10-16) ---------- */
/* Selectores compactos de tipo y rubro: solo celular; en escritorio siguen los chips */
body:has(.mrc-catalogo) .mrc-cat-sel { display: none; }
@media (max-width: 768px) {
  body:has(.mrc-catalogo) .mrc-cat-nav { display: none; }
  body:has(.mrc-catalogo) .mrc-cat-sel { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); margin-top: var(--sp-4); position: relative; z-index: 30; }
  body:has(.mrc-catalogo) .mrc-cat-sel__item { min-width: 0; }
  body:has(.mrc-catalogo) .mrc-cat-sel__item:nth-child(3) { grid-column: 1 / -1; }
  body:has(.mrc-catalogo) .mrc-cat-sel summary {
    list-style: none; cursor: pointer; display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 56px;
    padding: 8px 30px 8px 12px; background: var(--surface-white); border: 1.5px solid var(--border-on-light); border-radius: var(--radius); position: relative;
  }
  body:has(.mrc-catalogo) .mrc-cat-sel summary::-webkit-details-marker { display: none; }
  body:has(.mrc-catalogo) .mrc-cat-sel summary::after {
    content: ""; position: absolute; right: 12px; top: 50%; width: 8px; height: 8px; margin-top: -6px;
    border-right: 2px solid var(--color-gray-900); border-bottom: 2px solid var(--color-gray-900); transform: rotate(45deg); transition: transform 150ms ease;
  }
  body:has(.mrc-catalogo) .mrc-cat-sel details[open] > summary { border-color: var(--color-gray-900); }
  body:has(.mrc-catalogo) .mrc-cat-sel details[open] > summary::after { transform: rotate(-135deg); margin-top: -2px; }
  body:has(.mrc-catalogo) .mrc-cat-sel summary:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: 2px; }
  body:has(.mrc-catalogo) .mrc-cat-sel__label { font-family: var(--font-display); font-weight: 600; font-size: 10.5px; letter-spacing: 0.04em; text-transform: uppercase; color: #454545; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body:has(.mrc-catalogo) .mrc-cat-sel__valor { font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--color-gray-900); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* La lista se despliega sobre los productos, a todo el ancho, sin mover los selectores */
  body:has(.mrc-catalogo) .mrc-cat-sel__lista {
    position: absolute; left: 0; right: 0; top: calc(100% + 6px); max-height: min(70vh, 560px); overflow-y: auto; box-shadow: 0 12px 28px rgba(17,17,17,0.18);
    list-style: none; margin: 0; padding: 6px; background: var(--surface-white); border: 1.5px solid var(--color-gray-900); border-radius: var(--radius);
  }
  body:has(.mrc-catalogo) .mrc-cat-sel__lista a {
    display: flex; align-items: center; min-height: 44px; padding: 8px 10px; border-radius: 6px;
    font-family: var(--font-display); font-weight: 500; font-size: 15px; color: var(--color-gray-900) !important; text-decoration: none;
  }
  body:has(.mrc-catalogo) .mrc-cat-sel__lista a[aria-current] { background: var(--color-gray-900); color: var(--color-white) !important; font-weight: 600; }
  body:has(.mrc-catalogo) .mrc-cat-sel__lista a:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: -3px; }
  body:has(.mrc-catalogo) .mrc-cat-sel__sep { height: 1px; background: var(--border-on-light); margin: 6px 10px; }

  /* Introducción más compacta: los productos aparecen antes */
  body:has(.mrc-catalogo) .mrc-cat-intro { padding-top: var(--sp-4); }
  body:has(.mrc-catalogo) .mrc-cat-intro .mrc-breadcrumb { margin-bottom: var(--sp-3); }
  body:has(.mrc-catalogo) .mrc-cat-intro .mrc-eyebrow { display: none; }
  body:has(.mrc-catalogo) .mrc-cat-intro h1 { font-size: 28px; margin-top: 0; }
  body:has(.mrc-catalogo) .mrc-cat-intro .mrc-lede { margin-top: var(--sp-2); font-size: 16px; }
  body:has(.mrc-catalogo) #o_wsale_products_header { padding-top: var(--sp-3) !important; padding-bottom: var(--sp-4) !important; }

  /* Buscador visible directamente (sin abrir la lupa) */
  body:has(.mrc-catalogo) .o_wsale_products_header_search_form_container { display: block !important; width: 100%; }
  body:has(.mrc-catalogo) .products_header form.o_searchbar_form:has(> a.d-sm-none) { display: none !important; }

  /* Ficha: menos espacio entre el encabezado y la imagen (la imagen se sigue mostrando completa: object-fit contain) */
  body:has(.mrc-catalogo) #product_detail { padding-top: var(--sp-2); }
  body:has(.mrc-catalogo) .o_wsale_breadcrumb { padding-bottom: var(--sp-2) !important; }
  body:has(.mrc-catalogo) #product_detail_main .o_wsale_product_images { padding: var(--sp-2); }
  body:has(.mrc-catalogo) #product_detail_main #o-carousel-product { margin-bottom: 0 !important; }
}

/* ---------- Adaptación (2026-10-17): paginación sin desborde en celular ----------
   7–8 botones de 44 px + márgenes superaban los 358 px útiles a 390 px. Se reducen el mínimo y los márgenes
   (sin achicar la tipografía) y, si aun así no entran, pasan a una segunda línea en lugar de salirse. */
@media (max-width: 480px) {
  body:has(.mrc-catalogo) .products_pager .pagination { flex-wrap: wrap; justify-content: center; row-gap: 6px; max-width: 100%; }
  body:has(.mrc-catalogo) .products_pager .page-link { min-width: 40px; margin: 0 2px; padding-left: 6px; padding-right: 6px; }
}

/* ---------- Imágenes (2026-10-17) ----------
   Ficha sin foto válida: aviso discreto sobre el marcador de Odoo. Foto compartida por la línea: aclaración bajo la imagen. */
body:has(.mrc-catalogo) .oe_product_image_link { position: relative; }
body:has(.mrc-catalogo) .mrc-sin-imagen {
  position: absolute; left: 8px; right: 8px; bottom: 10px; width: fit-content; max-width: calc(100% - 16px); margin-inline: auto;
  padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,0.92); border: 1px solid var(--border-on-light);
  font-family: var(--font-body); font-size: 12.5px; line-height: 1.3; color: #454545; text-align: center; white-space: normal; pointer-events: none;
}
body:has(.mrc-catalogo) .mrc-img-nota {
  margin: var(--sp-2) 0 0; font-family: var(--font-body); font-size: 13.5px; line-height: 1.45; color: #454545; text-align: center;
}
body:has(.mrc-catalogo) .mrc-img-nota--sin { font-weight: 500; color: var(--color-gray-900); }

/* Pantallas muy angostas (≤380 px): "Consultar precio" de las tarjetas puede ir en dos líneas en vez de cortarse con "…" */
@media (max-width: 380px) {
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary,
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary * { white-space: normal !important; text-overflow: clip !important; overflow: visible !important; }
  body:has(.mrc-catalogo) .oe_product_cart .o_wsale_product_btn_primary { line-height: 1.25; padding-left: 8px !important; padding-right: 8px !important; height: auto !important; }
}

/* ---------- Otros comercios (2026-10-17) ---------- */
body:has(.mrc-catalogo) .mrc-cat-otros { margin: var(--sp-4) 0 0; font-size: 15px; line-height: 1.5; color: #454545; }
body:has(.mrc-catalogo) .mrc-cat-otros a { display: inline-block; padding: 6px 0; color: var(--color-red) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }  /* bloque en línea: zona táctil continua aunque el texto pase de renglón */
body:has(.mrc-catalogo) .mrc-otros-comercios {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-8); align-items: start;
  margin: var(--sp-12) 0 var(--sp-8); padding: var(--sp-8); background: var(--surface-white); border-radius: var(--radius);
  box-shadow: var(--shadow-surface); scroll-margin-top: calc(var(--nav-height, 88px) + 16px);
}
body:has(.mrc-catalogo) .mrc-otros-comercios h2 { font-family: var(--font-display); font-weight: 800; font-size: 28px; line-height: 1.2; margin: var(--sp-2) 0 var(--sp-3); color: var(--color-gray-900); }
body:has(.mrc-catalogo) .mrc-otros-comercios p { font-size: 16px; line-height: 1.55; color: #454545; margin: 0; }
body:has(.mrc-catalogo) .mrc-otros-comercios .form-label { font-weight: 600; font-size: 14px; color: var(--color-gray-900); }
body:has(.mrc-catalogo) .mrc-otros-comercios .form-control { min-height: 46px; border: 1.5px solid var(--border-on-light); border-radius: var(--radius); }
body:has(.mrc-catalogo) .mrc-otros-comercios .form-control:focus-visible { outline: 3px solid var(--color-cobalt); outline-offset: 0; }
body:has(.mrc-catalogo) .mrc-otros-comercios .form-text { font-size: 13px; color: #454545; display: block; margin-top: 4px; }
body:has(.mrc-catalogo) .mrc-otros-comercios .s_website_form_send { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; }
@media (max-width: 768px) {
  body:has(.mrc-catalogo) .mrc-otros-comercios { grid-template-columns: 1fr; gap: var(--sp-4); padding: var(--sp-6); margin-top: var(--sp-8); }
  body:has(.mrc-catalogo) .mrc-otros-comercios h2 { font-size: 24px; }
  body:has(.mrc-catalogo) .mrc-otros-comercios .s_website_form_send { width: 100%; }
}

/* ---------- Ficha: envío e instalación (datos confirmados en el BOS) ---------- */
body:has(.mrc-catalogo) .mrc-logistica { list-style: none; margin: var(--sp-3) 0 var(--sp-4); padding: 0; display: grid; gap: 6px; }
body:has(.mrc-catalogo) .mrc-logistica li { position: relative; padding-left: 18px; font-size: 14px; line-height: 1.45; color: #454545; }
body:has(.mrc-catalogo) .mrc-logistica li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 8px; height: 2px; background: var(--color-red); }
