/* Les Avisés V48.6 — mobile viewport lock + ranking readability.
   Fixes the real page-level horizontal scroll shown on Android and keeps the
   header centered after reload/back-forward restoration. */

@media (max-width:960px){
  html,
  body.lav41-master{
    width:100%!important;
    max-width:100%!important;
    overflow-x:clip!important;
    overscroll-behavior-x:none!important;
  }

  body.lav41-master{
    position:relative!important;
  }

  /* The global header always uses the viewport, never the document's accidental
     scroll width. This keeps logo and hamburger centered after a reload. */
  body.lav41-master .lav41-header{
    left:0!important;
    right:0!important;
    width:100%!important;
    max-width:100vw!important;
    overflow:hidden!important;
  }
  body.lav41-master .lav41-header>.lav41-wrap{
    width:calc(100% - 28px)!important;
    max-width:720px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  body.lav41-master .lav41-logo,
  body.lav41-master .lav41-actions,
  body.lav41-master .lav41-menu-toggle{transform:none!important}

  /* Public page roots may contain historical wide grids. Clip only the global
     viewport; intentional internal scrollers (filters/tabs) remain scrollable. */
  body.lav41-master main,
  body.lav41-master .lav41-ranking,
  body.lav41-master .lav41-home,
  body.lav41-master .lav41-profile,
  body.lav41-master .lav43-cities-page,
  body.lav41-master .lav44-page,
  body.lav41-master .lav47-public-page{
    width:100%!important;
    max-width:100%!important;
    overflow-x:clip!important;
  }

  /* Ranking: no child can enlarge the document width. */
  body.lav41-master .lav41-ranking .lav41-rank-hero,
  body.lav41-master .lav41-ranking .lav41-filters,
  body.lav41-master .lav41-ranking .lav41-rank-layout,
  body.lav41-master .lav41-ranking .lav41-ranking-list,
  body.lav41-master .lav41-ranking .lav41-ranking-list .lav41-rank-row{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body.lav41-master .lav41-ranking .lav41-rank-layout>section,
  body.lav41-master .lav41-ranking .lav41-rank-main,
  body.lav41-master .lav41-ranking .lav41-score{
    min-width:0!important;
    max-width:100%!important;
  }
  body.lav41-master .lav41-ranking .lav41-ranking-list{
    overflow-x:clip!important;
  }
  body.lav41-master .lav41-ranking .lav41-rank-row{
    overflow:hidden!important;
  }
  body.lav41-master .lav41-ranking .lav41-rank-main h3,
  body.lav41-master .lav41-ranking .lav41-rank-main h3 a,
  body.lav41-master .lav41-ranking .lav41-rank-main small{
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }

  /* The filters are the only deliberate horizontal scroller on ranking pages. */
  body.lav41-master .lav41-ranking .lav41-filter-row{
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* Readability over photography: mobile hero copy must never inherit a muted
     green/grey from a desktop layer. */
  body.lav41-master .lav41-ranking .lav41-rank-hero .lav478-rank-intro,
  body.lav41-master .lav41-ranking .lav41-rank-hero .lav478-rank-intro span,
  body.lav41-master .lav41-ranking .lav41-rank-hero>div>p,
  body.lav41-master .lav41-home .lav41-hero-copy>p:not(.lav41-eyebrow){
    color:#fff!important;
    opacity:1!important;
    text-shadow:0 1px 12px rgba(0,0,0,.32)!important;
  }
  body.lav41-master .lav41-ranking .lav41-rank-hero .lav478-rank-intro span{
    font-weight:650!important;
  }
}

@media (max-width:430px){
  body.lav41-master .lav41-header>.lav41-wrap{
    width:calc(100% - 24px)!important;
  }
  body.lav41-master .lav41-ranking .lav41-rank-hero .lav478-rank-intro{
    font-size:12.5px!important;
    line-height:1.45!important;
  }
}
