/*
 * Para que position:sticky funcione en BeTheme hay que anular el overflow:hidden
 * con overflow:clip en todos los ancestros del menú sticky.
 *
 * Cadena real de ancestros (extraída del HTML de la página):
 *   #Wrapper > header > ... (header de navegación, fuera de #Content)
 *   #Wrapper > #Content > .content_wrapper > main.sections_group
 *     > .entry-content > .mfn-builder-content > section#menu  ← sticky
 *
 * Los IDs raíz se aplican globalmente. El resto se limita a #Content para
 * NO afectar al header, donde overflow:hidden protege los submenús.
 */
#Wrapper,
#Content,
#page-wrap {
    overflow: clip !important;
}

/* Ancestros intermedios entre #Content y la sección sticky */
#Content .content_wrapper,
#Content .sections_group,
#Content .entry-content,
#Content .mfn-builder-content,
#Content .mcb-wrap,
#Content .mcb-section,
#Content .mfn-builder-wrap,
#Content .mfn-builder-section,
#Content .mfn-wrapper {
    overflow: clip !important;
}

/*
 * El sticky se aplica a la SECTION que envuelve el nav, no al nav en sí.
 *
 * En escritorio el menú queda pegado al borde superior (top: 0).
 * En móvil, .s-menu-header-main es sticky, así que desplazamos el menú
 * exactamente su altura para que queden apilados sin solaparse.
 *
 * Ajusta --s-menu-header-h si la altura real del menú superior cambia.
 */
/*
 * --s-menu-header-h: altura del menú superior sticky.
 * Ajusta estos valores midiendo .s-menu-header-main en DevTools tras hacer
 * scroll (cuando el header ya está sticky).
 */
:root {
    --s-menu-header-h: 150px;    /* escritorio */
}

@media (max-width: 768px) {
    :root {
        --s-menu-header-h: 60px; /* móvil */
    }
}

/*
 * Opt-in: el sticky sólo se activa cuando el <html> tiene la clase
 * .uf3-sticky-on, que añade el JS del plugin tras confirmar que la página
 * NO está dentro de un iframe (editores visuales tipo BeBuilder, Elementor,
 * etc. quedan exentos automáticamente sin necesidad de detectarlos en PHP).
 */
html.uf3-sticky-on body.page section:has(nav[aria-label="Menú de titulaciones"]) {
    position: sticky;
    top: var(--s-menu-header-h);
    z-index: 999;
    background-color: #fff;
    isolation: isolate;
    /*
     * Extiende el fondo blanco hacia arriba para cubrir el hueco entre el
     * borde inferior del header sticky y el menú.
     */
    box-shadow: 0 -30px 0 0 #fff;
}

body.page ul#menu-titulaciones {
    list-style: none; 
    display: flex; 
    gap: var(--spacing-xl) ; 
    border-bottom: 1px solid rgba(33, 36, 39, 0.06); 
    margin-bottom: 0; 
    margin-left: 0; 
    width: max-content;
    padding-top: 1em;
    padding-bottom: 1em;
}


body.page ul#menu-titulaciones li a {
    color: rgb(33, 36, 39);
}


body.page ul#menu-titulaciones li.activo a {
    border-bottom: 4px solid #1458CC; 
    color: #1458cc; 
    padding-bottom: 18px; 
    margin-bottom: 0;
}


/* Flecha "Volver arriba": pill compacto para que no aumente la altura del
   <li> (flex item) y, por tanto, no separe el border-bottom gris del <ul>
   respecto a la barra azul del ítem activo. */
body.page ul#menu-titulaciones li.ir-arriba {
    align-self: center;
}

body.page ul#menu-titulaciones li.ir-arriba a {
    padding: 0.15rem 0.65rem !important;
}

/* Blindaje: la flecha nunca debe heredar el estilo "activo" aunque por
   error reciba la clase .activo. */
body.page ul#menu-titulaciones li.ir-arriba a,
body.page ul#menu-titulaciones li.ir-arriba.activo a {
    font-weight: normal;
    color: rgb(33, 36, 39);
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}


/* --- Scroll horizontal en móvil --- */
@media (max-width: 768px) {

    body.page nav:has(ul#menu-titulaciones) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        /* ocultar scrollbar visualmente */
        scrollbar-width: none;
    }

    body.page nav:has(ul#menu-titulaciones)::-webkit-scrollbar {
        display: none;
    }

    /* Flecha "Volver arriba" pegada a la derecha del nav mientras el resto
       de ítems hace scroll horizontal por debajo. */
    body.page ul#menu-titulaciones {
        /* Sin esto, cuando hay pocos ítems el <ul> es más estrecho que el
           <nav> y la flecha no llega al borde derecho. */
        min-width: 100%;
    }

    body.page ul#menu-titulaciones li.ir-arriba {
        position: sticky;
        right: 0;
        margin-left: auto;
        z-index: 2;
        background-color: #ffffff;
        padding-left: 0.5rem;
        padding-top: 0.4rem;
    }

}