body.saz-scroll-locked,
html.saz-scroll-locked {
  overflow: hidden !important;
  overscroll-behavior: contain;
}

.saz-scroll:focus,
.saz-scroll:focus-visible {
  outline: none;
}

/* Basic layout for vertical panel scrolling */
.saz-scroll {
  position: relative;
  overflow: hidden; /* prevent native scroll inside */
  width: 100%;
  overscroll-behavior: contain; /* stop scroll chaining to page */
}

.saz-scroll__track {
  height: 100%;
  width: 100%;
  display: block;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  transition: transform 0.5s ease; /* duration updated by JS */
}

.saz-scroll__panel {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  min-height: 0;
}

.saz-scroll__title { margin: 0; }
.saz-scroll__content {
  width: 100%;
  max-width: 1100px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Fade mode: stack panels and cross-fade */
.saz-scroll[data-transition="fade"] .saz-scroll__track {
  position: relative;
  transition: none !important;
}
.saz-scroll[data-transition="fade"] .saz-scroll__panel {
  position: absolute;
  inset: 0; /* top:0; right:0; bottom:0; left:0 */
  opacity: 0;
  pointer-events: none;
  z-index: 1;
}
.saz-scroll[data-transition="fade"] .saz-scroll__panel.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}
