[esl-scroll-lock] {
  overflow: hidden !important;

  &:not(html[esl-scroll-lock='native'])::-webkit-scrollbar {
    display: none !important;
  }
}

html[esl-scroll-lock] body {
  overflow: hidden !important;
}

html[esl-scroll-lock='native'] {
  overflow-y: scroll !important;

  &[esl-scroll-lock-passive] {
    overflow-y: hidden !important;
  }

  body {
    max-width: 100vw !important;
    max-height: 100vh !important;
  }
}

html[esl-scroll-lock='pseudo'],
html[esl-scroll-lock='background'] {
  --s-lock-offset: 0;
  padding-right: var(--s-lock-offset);

  &:not([esl-scroll-lock-passive])::after {
    content: '';
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    overflow-y: scroll;
    z-index: 1;
  }
}

html[esl-scroll-lock='pseudo']:not([esl-scroll-lock-passive])::after {
  // Pseudo scroll should be visible above the content
  z-index: 999999;
}
