/* Reader-only pinned controls and scroll clearance. Height variables are
   measured by the reader at runtime; these values keep the initial layout safe. */
.book-reader-controls {
  position: sticky;
  top: var(--book-site-header-height, 65px);
  z-index: 45;
  background: var(--bg, #faf8f2);
  /* iOS Safari can fail to repaint a sticky bar after a programmatic page
     change; its own compositing layer keeps the bar painted. */
  transform: translateZ(0);
}

.book-reader .book-page {
  scroll-margin-top: calc(
    var(--book-site-header-height, 65px) +
    var(--book-controls-height, 132px) +
    1rem
  );
  scroll-margin-bottom: 1rem;
}

.book-reader .book-index {
  top: calc(
    var(--book-site-header-height, 65px) +
    var(--book-controls-height, 132px) +
    1rem
  );
  max-height: min(
    76vh,
    760px,
    calc(100dvh - var(--book-site-header-height, 65px) - var(--book-controls-height, 132px) - 2rem)
  );
  padding-bottom: 1rem;
}

@media (max-width: 760px) {
  .book-reader .book-page {
    scroll-margin-top: calc(
      var(--book-site-header-height, 65px) +
      var(--book-controls-height, 178px) +
      1rem
    );
  }

  .book-reader .book-index {
    top: calc(
      var(--book-site-header-height, 65px) +
      var(--book-controls-height, 178px) +
      1rem
    );
    max-height: min(
      76vh,
      calc(100dvh - var(--book-site-header-height, 65px) - var(--book-controls-height, 178px) - 2rem)
    );
  }
}
