@media(max-width:820px){
  /*
   * BUBB mobile detail scroll owner.
   * Every stabilized regular detail section owns exactly one vertical scroller.
   * IA and Parametres keep their dedicated circuits unchanged.
   */
  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active):not([data-lce-detail="ai"]):not([data-lce-detail="settings"]){
    width:100%!important;
    max-width:100%!important;
    height:var(--ll-mobile-vh,100dvh)!important;
    min-height:0!important;
    max-height:var(--ll-mobile-vh,100dvh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active):not([data-lce-detail="ai"]):not([data-lce-detail="settings"]):not([data-lce-detail="tv"]):not([data-lce-detail="tv"]) .app{
    width:100%!important;
    max-width:100%!important;
    height:var(--ll-mobile-vh,100dvh)!important;
    min-height:0!important;
    max-height:var(--ll-mobile-vh,100dvh)!important;
    overflow:hidden!important;
  }

  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active):not([data-lce-detail="ai"]):not([data-lce-detail="settings"]):not([data-lce-detail="tv"]):not([data-lce-detail="tv"]) .app>main{
    width:100%!important;
    max-width:100%!important;
    height:var(--ll-mobile-vh,100dvh)!important;
    min-height:0!important;
    max-height:var(--ll-mobile-vh,100dvh)!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active):not([data-lce-detail="ai"]):not([data-lce-detail="settings"]):not([data-lce-detail="tv"]):not([data-lce-detail="tv"]) main>.page.active[data-ll-mobile-detail-scroll="1"]{
    display:block!important;
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:var(--ll-mobile-detail-height,calc(var(--ll-mobile-vh,100dvh) - var(--ll-mobile-head,96px)))!important;
    min-height:0!important;
    max-height:var(--ll-mobile-detail-height,calc(var(--ll-mobile-vh,100dvh) - var(--ll-mobile-head,96px)))!important;
    margin:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y pinch-zoom!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
    contain:none!important;
    transform:none!important;
    will-change:auto!important;
    box-sizing:border-box!important;
    scrollbar-width:none!important;
  }

  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active)[data-lce-detail="people"] main>#people.page.active[data-ll-mobile-detail-scroll="1"]{
    display:block!important;
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:var(--ll-mobile-detail-height,calc(var(--ll-mobile-vh,100dvh) - var(--ll-mobile-head,96px)))!important;
    min-height:0!important;
    max-height:var(--ll-mobile-detail-height,calc(var(--ll-mobile-vh,100dvh) - var(--ll-mobile-head,96px)))!important;
    overflow-x:hidden!important;
    overflow-y:scroll!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:auto!important;
    pointer-events:auto!important;
  }

  /* Proches gets native iPhone-like vertical gesture handling.
     Content never becomes a nested vertical scroller, while controls keep
     a generous, direct touch target. */
  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active)[data-lce-detail="people"] #people :is(
    .lce-rel-people-root,[data-lce-rel-people-root],.lce-rel-grid,.lce-rel-person,.lce-rel-card-photo,.lce-rel-card-body
  ){
    touch-action:pan-y!important;
    overscroll-behavior-y:auto!important;
  }
  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active)[data-lce-detail="people"] #people :is(button,a,[role="button"]){
    touch-action:manipulation!important;
    pointer-events:auto!important;
    -webkit-tap-highlight-color:transparent!important;
    user-select:none!important;
    -webkit-user-select:none!important;
  }

  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active):not([data-lce-detail="ai"]):not([data-lce-detail="settings"]):not([data-lce-detail="tv"]):not([data-lce-detail="tv"]) main>.page.active[data-ll-mobile-detail-scroll="1"]::-webkit-scrollbar{
    display:none!important;
  }

  /* Old section-specific locks must never become a second vertical scroller. */
  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active):not([data-lce-detail="ai"]):not([data-lce-detail="settings"]):not([data-lce-detail="tv"]):not([data-lce-detail="tv"]) main>.page.active[data-ll-mobile-detail-scroll="1"] :is(
    .lce-rel-people-root,[data-lce-rel-people-root],.mem-final-shell,.caps-final-shell,.journal-shell,.legacy-shell-v2,.moi-shell
  ){
    max-height:none!important;
    overflow-y:visible!important;
    overscroll-behavior-y:auto!important;
  }

  /* Fixed/mobile overlays keep their own scroll behavior above the section scroller. */
  html[data-lce-platform="mobile"] body.lce-v10-detail:not(.bubb-launch-structure-active) :is(
    .lce-modalback,.depth-modalback,.lce-rel-modalback,.lce-pp-modalback,.caps-seal-confirmback,.ll-account-modalback
  ){
    touch-action:auto!important;
  }
}