/* [2026-10-19] Menú principal (tarea 80732).
   Desplegables compactos bajo su pestaña y, en «Productos», las subcategorías
   en un panel lateral pegado al listado, como una sola ventana.
   Se aplica por estructura (listas de enlaces / pestañas internas), no por id,
   para que las pestañas que se añadan desde el módulo hereden el estilo.
   «Servicios» (contenido HTML): mismo aspecto que el resto, sin tocar su contenido. */
@media (min-width: 992px) {
  #cbp-hrmenu > ul > li.cbp-has-submeu:has(> .cbp-hrsub .cbp-valinks),
  #cbp-hrmenu > ul > li.cbp-has-submeu:has(> .cbp-hrsub .cbp-tabs-container) {
    position: relative;
  }
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-valinks) > .cbp-hrsub,
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-tabs-container) > .cbp-hrsub {
    left: 0 !important;
    right: auto !important;
    width: max-content !important;
    max-width: none;
    padding: 0;
  }
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-valinks) > .cbp-hrsub.cbp-notfit,
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-tabs-container) > .cbp-hrsub.cbp-notfit {
    left: auto !important;
    right: 0 !important;
  }
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-valinks) > .cbp-hrsub > .cbp-hrsub-inner,
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-tabs-container) > .cbp-hrsub > .cbp-hrsub-inner {
    padding: 0;
    background: #fff;
    border: 0;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
    overflow: hidden;
  }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-valinks) .iqitmegamenu-submenu-container,
  #cbp-hrmenu .cbp-hrsub:has(.cbp-tabs-container) .iqitmegamenu-submenu-container {
    width: auto;
    max-width: none;
    padding: 0;
  }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-valinks) .menu_row { margin: 0; }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-valinks) .cbp-menu-column {
    flex: none;
    width: auto;
    max-width: none;
    padding: 0;
    margin: 0;
  }

  /* Listas de subcategorías (desplegable simple y panel lateral) */
  #cbp-hrmenu .cbp-valinks {
    display: block;
    min-width: 280px;
    margin: 0;
    padding: 8px 0;
    list-style: none;
  }
  #cbp-hrmenu .cbp-valinks > li {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  #cbp-hrmenu .cbp-valinks > li > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 22px;
    color: #333 !important;
    font-size: 15px;
    line-height: 1.3;
    white-space: nowrap;
    text-decoration: none;
  }
  #cbp-hrmenu .cbp-valinks > li > a::before { display: none; }
  #cbp-hrmenu .cbp-valinks > li > a:hover,
  #cbp-hrmenu .cbp-valinks > li > a:focus-visible {
    color: #c00000 !important;
    background: #ececec;
    text-decoration: underline;
  }

  /* «Productos»: listado a la izquierda + subcategorías pegadas a la derecha */
  #cbp-hrmenu .cbp-tabs-container { margin: 0 !important; padding: 0 !important; width: auto !important; }
  #cbp-hrmenu .cbp-tabs-container > .row { flex-wrap: nowrap; margin: 0 !important; }
  #cbp-hrmenu .cbp-tabs-container .tabs-links {
    flex: 0 0 310px;
    width: 310px;
    max-width: 310px;
    padding: 8px 0;
    background: #fff;
    border: 0;
  }
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names,
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li { margin: 0; padding: 0; border: 0; }
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li > a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 40px 8px 22px;
    color: #333 !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    background: transparent;
    border: 0;
    border-radius: 0;
  }
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li > a .cbp-submenu-it-indicator {
    position: absolute;
    right: 18px;
    top: 50%;
    margin: 0;
    transform: translateY(-50%);
    font-size: 16px;
  }
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li.kbw-sin-sub > a .cbp-submenu-it-indicator { display: none; }
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li > a:hover,
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li > a:focus-visible,
  #cbp-hrmenu .cbp-tabs-container .cbp-tabs-names > li > a.active {
    color: #c00000 !important;
    background: #ececec;
  }
  #cbp-hrmenu .cbp-tabs-container .cbp-inner-border-hider { display: none; }
  #cbp-hrmenu .cbp-tabs-container .tab-content {
    display: none;
    flex: 0 0 400px;
    width: 400px;
    max-width: 400px;
    padding: 0;
    background: #ececec;
    border: 0;
  }
  #cbp-hrmenu .cbp-tabs-container:has(.cbp-tab-pane.active .cbp-valinks) .tab-content { display: block; }
  #cbp-hrmenu .cbp-tabs-container .cbp-tab-pane,
  #cbp-hrmenu .cbp-tabs-container .cbp-tab-pane .menu_row,
  #cbp-hrmenu .cbp-tabs-container .cbp-tab-pane .cbp-menu-column {
    margin: 0;
    padding: 0;
    flex: none;
    width: auto;
    max-width: none;
  }
  #cbp-hrmenu .cbp-tabs-container .tab-content .cbp-valinks { min-width: 0; }
  #cbp-hrmenu .cbp-tabs-container .tab-content .cbp-valinks > li > a { font-weight: 400; white-space: normal; }
  #cbp-hrmenu .cbp-tabs-container .tab-content .cbp-valinks > li > a:hover,
  #cbp-hrmenu .cbp-tabs-container .tab-content .cbp-valinks > li > a:focus-visible { background: #dedede; }

  /* Foco visible en la barra */
  #cbp-hrmenu > ul > li > a.nav-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: -4px;
  }
  #cbp-hrmenu .cbp-hrsub a:focus-visible {
    outline: 2px solid #c00000;
    outline-offset: -2px;
  }
  /* Opción de la barra seleccionada (abierta, ratón o foco): rectángulo gris y texto en rojo.
     «Catálogo» (enlace a catalogos) ya va sobre fondo rojo y se queda como está. */
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])).cbp-hropen > a,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:hover,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:focus-visible,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])).cbp-hropen > a *,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:hover *,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:focus-visible * {
    color: #e30613 !important;
    transition: none !important;
  }
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])).cbp-hropen > a,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:hover,
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:focus-visible {
    background: #ececec !important;
  }
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])) > a:focus-visible { outline-color: #e30613; }
  /* Sin fundidos en la barra ni en los desplegables: al pasar de una opción a
     otra el tema fundía a la vez la que se cerraba y la que se abría (parpadeo). */
  #cbp-hrmenu > ul > li > a,
  #cbp-hrmenu > ul > li > a *,
  #cbp-hrmenu > ul > li > .cbp-hrsub { transition: none !important; }
  /* Tras un clic (p. ej. «Productos», que no lleva enlace) la opción se queda
     con el foco: al cerrarse vuelve al blanco de reposo, no al negro del tema. */
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])):not(.cbp-hropen) > a:focus:not(:hover):not(:focus-visible),
  #cbp-hrmenu > ul > li:not(:has(> a[href*="catalogos"])):not(.cbp-hropen) > a:focus:not(:hover):not(:focus-visible) * {
    color: #fff !important;
    background: transparent !important;
  }
}

/* Móvil (tarea 80732): primer nivel en acordeón hacia abajo; el segundo nivel
   de «Productos» entra en panel lateral. Filas táctiles de 48px. */
@media (max-width: 991.98px) {
  #iqitmegamenu-mobile .mobile-menu__tab { min-height: 48px; flex-wrap: wrap; }
  #iqitmegamenu-mobile .mobile-menu__link { min-height: 48px; display: flex; align-items: center; }
  #iqitmegamenu-mobile .mobile-menu__arrow { min-width: 48px; min-height: 48px; display: flex; align-items: center; justify-content: center; }

  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__arrow .expand-icon { transition: transform .2s; transform: rotate(90deg); }
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__arrow .expand-icon { transform: rotate(-90deg); }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu {
    position: static !important;
    flex: 0 0 100%;
    width: 100%;
    height: auto !important;
    transform: none !important;
    animation: none !important;
    opacity: 1 !important;
    background: transparent;
    overflow: visible !important;
  }
  #iqitmegamenu-mobile li.kbw-acordeon .kbw-envoltura > ul { margin: 0; padding: 0; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__tab { border-bottom: 1px solid #eee; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__tab:last-child { border-bottom: 0; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__link { font-size: 16px; }

  /* Listas de subcategorías: cada enlace con su zona de toque */
  #iqitmegamenu-mobile .mobile-menu__links-list { margin: 0; padding: 0; }
  #iqitmegamenu-mobile .mobile-menu__links-list-li { margin: 0; padding: 0; border-bottom: 1px solid #eee; }
  #iqitmegamenu-mobile .mobile-menu__links-list-li:last-child { border-bottom: 0; }
  #iqitmegamenu-mobile .mobile-menu__links-list-li > a,
  #iqitmegamenu-mobile .kbw-ver-todo {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 10px 4px;
    font-size: 16px;
    line-height: 1.3;
    color: #333;
  }
  #iqitmegamenu-mobile .kbw-ver-todo {
    font-weight: 600;
    color: #c00000;
    border-bottom: 1px solid #eee;
    text-decoration: underline;
  }
  #iqitmegamenu-mobile .mobile-menu__row,
  #iqitmegamenu-mobile .mobile-menu__column { margin: 0; padding: 0; }
  #iqitmegamenu-mobile .mobile-menu__submenu--active { overflow-y: auto; }

  /* Filas de lado a lado: el relleno pasa del contenedor a cada fila */
  #iqitmegamenu-mobile .mobile-menu__scroller { padding-left: 0 !important; padding-right: 0 !important; }
  #iqitmegamenu-mobile .mobile-menu__scroller > li.mobile-menu__above-content,
  #iqitmegamenu-mobile .mobile-menu__scroller > li.mobile-menu__below-content { padding-left: 16px; padding-right: 16px; }
  #iqitmegamenu-mobile .mobile-menu__scroller > li.mobile-menu__tab > .mobile-menu__link { padding-left: 16px !important; }
  #iqitmegamenu-mobile .mobile-menu__scroller > li.mobile-menu__tab > .mobile-menu__arrow { margin-right: 4px !important; }

  /* Pestaña abierta: gris con texto rojo, como en escritorio; su lista también en gris */
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__link,
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__arrow { transition: background-color .3s ease, color .3s ease; }
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto { background: #ececec; }
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__link,
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__link *,
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__arrow * { color: #c00000 !important; }
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__link { font-weight: 600; }

  /* Despliegue suave hacia abajo (350 ms) */
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu {
    display: grid !important;
    grid-template-rows: 0fr;
    padding: 0 !important;
    transition: grid-template-rows .35s ease;
  }
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__submenu { grid-template-rows: 1fr; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu > .kbw-envoltura {
    min-height: 0;
    overflow: hidden;
    padding: 0 16px 0 28px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .35s ease, transform .35s ease, visibility 0s linear .35s;
    pointer-events: none;
  }
  #iqitmegamenu-mobile li.kbw-acordeon.kbw-abierto > .mobile-menu__submenu > .kbw-envoltura {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .35s ease, transform .35s ease, visibility 0s;
    pointer-events: auto;
    padding-bottom: 8px;
  }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__tab,
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__links-list-li,
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .kbw-ver-todo,
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu nav li { border-bottom-color: #dcdcdc !important; }

  /* Panel lateral de subcategorías (dentro de «Productos»): gris, filas de lado a lado */
  #iqitmegamenu-mobile .kbw-envoltura .mobile-menu__submenu--panel {
    background: #ececec !important;
    padding: 8px 0 !important;
  }
  #iqitmegamenu-mobile .kbw-envoltura .mobile-menu__submenu--panel .kbw-ver-todo,
  #iqitmegamenu-mobile .kbw-envoltura .mobile-menu__submenu--panel .mobile-menu__links-list-li > a { padding-left: 16px; padding-right: 16px; }
  #iqitmegamenu-mobile .kbw-envoltura .mobile-menu__submenu--panel .mobile-menu__links-list-li,
  #iqitmegamenu-mobile .kbw-envoltura .mobile-menu__submenu--panel .kbw-ver-todo { border-bottom-color: #dcdcdc !important; }

  /* Desplegables con contenido propio (p. ej. «Servicios»): mismo aspecto que el resto */
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu nav { background: transparent !important; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu nav li {
    padding: 0 !important;
    border-bottom: 1px solid #eee;
  }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu nav li:last-child { border-bottom: 0; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu nav li > a {
    min-height: 48px;
    padding: 10px 4px !important;
    font-size: 16px !important;
    line-height: 1.3;
    color: #333 !important;
  }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu nav li > a > span:first-child { display: none !important; }
}

/* [2026-10-20] Desplegables con contenido propio (p. ej. «Servicios») en escritorio: mismo aspecto
   que el resto (filas de 44px, texto #333, hover gris/rojo), sin tocar el HTML del módulo. */
@media (min-width: 992px) {
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-menu-column-inner > nav) { position: relative; }
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-menu-column-inner > nav) > .cbp-hrsub {
    left: 0 !important; right: auto !important; width: max-content !important; max-width: none; padding: 0;
  }
  #cbp-hrmenu > ul > li:has(> .cbp-hrsub .cbp-menu-column-inner > nav) > .cbp-hrsub > .cbp-hrsub-inner {
    padding: 0; background: #fff; border: 0; border-radius: 0 0 10px 10px; box-shadow: 0 10px 28px rgba(0, 0, 0, .18); overflow: hidden;
  }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-menu-column-inner > nav) .iqitmegamenu-submenu-container { width: auto; max-width: none; padding: 0; }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-menu-column-inner > nav) .menu_row { margin: 0; }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-menu-column-inner > nav) .cbp-menu-column { flex: none; width: auto; max-width: none; padding: 0; margin: 0; }
  #cbp-hrmenu .cbp-menu-column-inner > nav { background: transparent !important; }
  #cbp-hrmenu .cbp-menu-column-inner > nav > ul { min-width: 280px; padding: 8px 0 !important; }
  #cbp-hrmenu .cbp-menu-column-inner > nav li { padding: 0 !important; margin: 0; }
  #cbp-hrmenu .cbp-menu-column-inner > nav li > a {
    display: flex !important; align-items: center; min-height: 44px; padding: 8px 22px !important;
    color: #333 !important; font-size: 15px !important; line-height: 1.3; white-space: nowrap; text-decoration: none;
  }
  #cbp-hrmenu .cbp-menu-column-inner > nav li > a > span:first-child { display: none !important; }
  #cbp-hrmenu .cbp-menu-column-inner > nav li > a:hover,
  #cbp-hrmenu .cbp-menu-column-inner > nav li > a:focus-visible { color: #c00000 !important; background: #ececec; text-decoration: underline; }
}

/* [2026-10-20] Grupos dentro de un desplegable (p. ej. Escaleras: «Por material», «Tipo de escalera»,
   «De tramos»): uno debajo de otro, título en negrita (sin enlace, o con enlace si es categoría). */
@media (min-width: 992px) {
  #cbp-hrmenu .cbp-hrsub:has(.cbp-column-title) .menu_row { display: flex; flex-direction: column; flex-wrap: nowrap; }
  #cbp-hrmenu .cbp-hrsub:has(.cbp-column-title) .menu_row > .cbp-menu-column { width: 100%; max-width: none; flex: none; padding: 0; margin: 0; }
  #cbp-hrmenu .cbp-hrsub .menu_row > .cbp-menu-column + .cbp-menu-column { border-top: 1px solid #e3e3e3; }
  #cbp-hrmenu .cbp-hrsub .cbp-menu-column > .cbp-menu-column-inner > .cbp-column-title {
    display: flex !important;
    align-items: center;
    min-height: 44px;
    margin: 0 !important;
    padding: 12px 22px 4px !important;
    color: #333 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3;
    text-transform: none !important;
    letter-spacing: 0;
    border: 0 !important;
    white-space: nowrap;
    background: transparent;
  }
  #cbp-hrmenu .cbp-hrsub .cbp-menu-column > .cbp-menu-column-inner > a.cbp-column-title { padding: 8px 22px !important; text-decoration: none; }
  #cbp-hrmenu .cbp-hrsub .cbp-menu-column > .cbp-menu-column-inner > a.cbp-column-title:hover,
  #cbp-hrmenu .cbp-hrsub .cbp-menu-column > .cbp-menu-column-inner > a.cbp-column-title:focus-visible { background: #dedede; color: #c00000 !important; }
  #cbp-hrmenu .cbp-hrsub .cbp-menu-column > .cbp-menu-column-inner > .cbp-column-title + .cbp-valinks { padding-top: 0; }
  #cbp-hrmenu .cbp-hrsub .cbp-menu-column:has(.cbp-column-title) .cbp-valinks > li > a { text-transform: none !important; font-weight: 400 !important; }
}

@media (max-width: 991.98px) {
  #iqitmegamenu-mobile .mobile-menu__column-title {
    display: flex !important;
    align-items: center;
    min-height: 48px;
    margin: 0 !important;
    padding: 14px 4px 4px !important;
    color: #333 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.3;
    text-transform: none !important;
    letter-spacing: 0;
    text-decoration: none;
  }
  #iqitmegamenu-mobile .mobile-menu__submenu--panel .mobile-menu__column-title { padding-left: 16px !important; padding-right: 16px !important; }
  #iqitmegamenu-mobile a.mobile-menu__column-title { padding-top: 4px !important; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__column-title { padding-left: 4px !important; padding-right: 4px !important; }
  #iqitmegamenu-mobile li.kbw-acordeon > .mobile-menu__submenu .mobile-menu__submenu--panel .mobile-menu__column-title { padding-left: 16px !important; padding-right: 16px !important; }
  #iqitmegamenu-mobile .mobile-menu__column + .mobile-menu__column { border-top: 1px solid #dcdcdc; }
}

/* [2026-10-20] Pie: «Blog» bajo la lista de SOBRE FARAONE (widget HTML kbwblog), mismo aspecto que la lista */
.elementor-element-kbwblog .block-content a,
.elementor-element-kbwblog .block-content a:link { color: #fff !important; }
.elementor-element-kbwblog { margin-top: -8px; }
