/* Keep the page frame stable between the catalogue, account and reader. */
html { scrollbar-gutter:stable; }
@media(min-width:901px) {
  .main .wrapper:not(.read_book) {
    box-sizing:border-box;
    width:calc(100% - 32px);
    max-width:1280px;
    margin-left:auto;
    margin-right:auto;
    padding-left:20px;
    padding-right:20px;
  }
  .main nav.ebs-navigation > .wrapper,
  body:has(section.reader) .main nav.ebs-navigation > .wrapper {
    box-sizing:border-box;
    width:calc(100% - 32px);
    max-width:1280px;
    padding:12px 20px;
  }
  .main nav.ebs-navigation .logo { left:20px; }
  .main nav.ebs-navigation .back_button,
  body:has(section.reader) .main nav.ebs-navigation .back_button { margin-left:56px; }
  #backoffice-wrapper:not(.system-search) > .container {
    width:calc(100% - 32px);
    max-width:1280px;
    padding-left:20px;
    padding-right:20px;
  }
  #backoffice-wrapper:not(.system-search) .wrapper {
    width:100%;
    margin-left:0;
    margin-right:0;
  }
  #backoffice-wrapper:not(.system-search) .ebs-export-page .wrapper.auto_colomn { max-width:780px; }
  .reader .read_book,.reader .reader-version-notice { box-sizing:border-box; width:calc(100% - 32px); max-width:1280px; }
  .reader .read_sidebar,.reader .read_sidebar.open-b,.reader .read_sidebar.open-h { padding-left:20px; padding-right:20px; }
}
@supports not (scrollbar-gutter:stable) {
  html { overflow-y:scroll; }
}

/* Keep the menu toggle anchored when its label changes. */
@media(max-width:900px) {
  .main nav.ebs-navigation .nav-menu-toggle { min-width:104px; }
}

/* A route can temporarily render no content while its data loads. Keep the
   footer below the viewport-sized page instead of directly under the menu.
   Reader routes have no footer and keep their existing height calculations. */
.main:has(> footer) {
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-height:100dvh;
  padding-bottom:0;
  row-gap:40px;
}
.main > footer {
  flex-shrink:0;
  margin-top:auto;
}
