@media (max-width: 48em) {
    .fr-sidemenu {
        order: -1;
        position: sticky;
        top: 0!important;
        margin-bottom: 1em;
    }

    @media (max-width: 48em) { /* mobile, ajustez selon votre breakpoint (cf. discussion précédente) */
        .fr-sidemenu__list {
            max-height: 60vh;              /* ou calc(100vh - hauteur du header) */
            overflow-y: auto;
            -webkit-overflow-scrolling: touch; /* inertie sur iOS */
            overscroll-behavior: contain;  /* empêche le scroll de "déborder" vers la page */
        }
    }
}