.sbf-page {
  width: 210mm;
  height: 297mm;
  padding: var(--sbf-page-margin-v) var(--sbf-page-margin-h);
  display: flex;
  flex-direction: column;
  font-family: var(--sbf-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
  background: #ffffff;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

.sbf-page__content {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.sbf-page--with-logo {
  padding-top: 0;
}

.sbf-page__logo {
  display: block;
  max-width: 250px;
  max-height: 150px;
  width: auto;
  height: auto;
  align-self: flex-start;
  flex-shrink: 0;
  margin-top: 20px;
  margin-bottom: 20px;
}

.sbf-page__footer-slot {
  flex-shrink: 0;
  margin-top: auto;
  margin-left: calc(-1 * var(--sbf-page-margin-h));
  margin-right: calc(-1 * var(--sbf-page-margin-h));
  margin-bottom: calc(-1 * var(--sbf-page-margin-v));
  width: calc(100% + 2 * var(--sbf-page-margin-h));
}

.sbf-page--with-footer .sbf__main {
  margin-bottom: var(--sbf-content-above-footer-gap);
}

.sbf__main {
  flex: 1 1 auto;
  display: flex;
  gap: 9mm;
  align-items: flex-start;
  min-height: 0;
}

.sbf__main--continue {
  flex: 1 1 auto;
  display: flex;
  gap: 9mm;
  align-items: flex-start;
  min-height: 0;
}

.sbf__left {
  flex: 0 0 64mm;
  max-width: 64mm;
}

.sbf__left--spacer {
  flex: 0 0 64mm;
  max-width: 64mm;
  min-height: 1px;
}

.sbf__right {
  flex: 1 1 auto;
  min-width: 0;
}

.sbf__right--continue {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: var(--sbf-flow-continue-top-gap);
}

.sbf__cover-wrap {
  position: relative;
  width: 100%;
  max-width: 64mm;
  margin-bottom: 14px;
  overflow: visible;
}
.sbf__cover-wrap--shadow {
  margin-left: -5px;
  width: calc(100% + 10px);
  max-width: none;
}

.sbf__cover {
  width: 100%;
  height: auto;
  display: block;
}

.sbf__cover-placeholder {
  font-family: var(--sbf-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  font-style: italic;
  color: #595959;
  margin-bottom: 14px;
}

.sbf__format {
  margin-bottom: 10px;
}
.sbf__format-name {
  margin: 0 0 2px;
}

.sbf__format-name,
.sbf__sidebar-heading {
  font-family: var(--sbf-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sbf-label-color);
}

.sbf__sidebar-heading {
  margin: 0 0 10px;
}

.sbf__format-meta {
  font-family: var(--sbf-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
  margin: 0;
}

.sbf__meta-line {
  font-family: var(--sbf-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
  margin: 0 0 2px;
}

.sbf__other-formats-label {
  font-family: var(--sbf-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
  margin: 22px 0 8px;
}

.sbf__custom-text {
  font-family: var(--sbf-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
  margin: 12px 0 14px;
}
.sbf__custom-text p,
.sbf__custom-text span,
.sbf__custom-text a,
.sbf__custom-text strong,
.sbf__custom-text b,
.sbf__custom-text em,
.sbf__custom-text i {
  color: var(--sbf-body-color);
}
.sbf__custom-text p {
  margin: 0 0 4px;
}
.sbf__custom-text p:last-child {
  margin-bottom: 0;
}

.sbf__divider--left + .sbf__custom-text {
  margin-top: 0;
}

.sbf__divider {
  border: none;
  border-top: 1px solid var(--sbf-rule-color);
  margin: 0;
}
.sbf__divider--left {
  margin: 14px 0 10px 0;
}
.sbf__divider--right {
  margin: 8px 0 12px;
}

.sbf__qr {
  display: block;
  width: 96px;
  height: 96px;
  margin-top: 6px;
}

.sbf__header {
  margin: 0;
}

.sbf__title {
  font-family: var(--sbf-serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--sbf-title-color);
  margin-top: 0;
  margin-bottom: 6px;
}

.sbf__subtitle {
  font-family: var(--sbf-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.35;
  color: #000000;
  margin: 0 0 6px;
}

.sbf__author {
  font-family: var(--sbf-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #000000;
  margin-bottom: 15px;
}

.sbf__label {
  font-family: var(--sbf-sans);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sbf-label-color);
  margin: 0 0 10px;
}

.sbf__rich {
  font-family: var(--sbf-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
}
.sbf__rich strong,
.sbf__rich b {
  font-family: var(--sbf-sans);
  font-size: inherit;
  font-weight: 700;
  line-height: 1.5;
  color: var(--sbf-body-color);
}
.sbf__rich em,
.sbf__rich i {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-style: italic;
  color: var(--sbf-body-color);
}
.sbf__rich strong em,
.sbf__rich strong i,
.sbf__rich b em,
.sbf__rich b i,
.sbf__rich em strong,
.sbf__rich em b,
.sbf__rich i strong,
.sbf__rich i b {
  font-weight: 700;
  font-style: italic;
  font-synthesis: weight style;
}
.sbf__rich {
  margin-bottom: 15px;
}
.sbf__rich p {
  font-family: var(--sbf-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-body-color);
  margin: 0 0 10px;
}
.sbf__rich p:last-child {
  margin-bottom: 0;
}
.sbf__rich a {
  color: var(--sbf-label-color);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sbf__bio-block {
  margin-top: 0;
}

.sbf__read-more {
  font-family: var(--sbf-sans);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  margin: 4px 0 20px;
}
.sbf__read-more a {
  color: var(--sbf-label-color);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sbf__rich .sbf__read-more {
  display: inline;
  margin: 0;
}

.sbf__flow-gap {
  height: var(--sbf-flow-bottom-gap);
  flex-shrink: 0;
  pointer-events: none;
}

.sbf__footer {
  background: var(--sbf-footer-bg);
  width: 100%;
  max-height: var(--sbf-footer-max-height);
  overflow: hidden;
}

.sbf__footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-height: var(--sbf-footer-max-height);
  overflow: hidden;
  padding: 12px var(--sbf-page-margin-h);
  text-align: center;
}

.sbf__footer-logo {
  display: block;
  height: auto;
  width: auto;
  max-height: 72px;
  max-width: 100%;
  object-fit: contain;
  flex-shrink: 0;
}

.sbf__footer-heading {
  font-family: var(--sbf-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 6px;
  color: var(--sbf-footer-color);
}

.sbf__footer-copy {
  font-family: var(--sbf-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--sbf-footer-color);
}
.sbf__footer-copy strong,
.sbf__footer-copy b {
  font-family: var(--sbf-sans);
  font-size: inherit;
  font-weight: 700;
  line-height: 1.5;
}
.sbf__footer-copy em,
.sbf__footer-copy i {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-style: italic;
}
.sbf__footer-copy strong em,
.sbf__footer-copy strong i,
.sbf__footer-copy b em,
.sbf__footer-copy b i,
.sbf__footer-copy em strong,
.sbf__footer-copy em b,
.sbf__footer-copy i strong,
.sbf__footer-copy i b {
  font-weight: 700;
  font-style: italic;
  font-synthesis: weight style;
}
.sbf__footer-copy p {
  margin: 0 0 2px;
}
.sbf__footer-copy p:last-child {
  margin-bottom: 0;
}
.sbf__footer-copy a {
  color: var(--sbf-footer-color);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sbf__footer-copy * {
  color: var(--sbf-footer-color);
}

div#generate-pdf p {
  text-align: center;
  padding-bottom: 20px;
  margin-top: -60px;
  padding-top: 60px;
}

.sbf-doc {
  --sbf-serif: Playfair Display, Georgia, Times New Roman, serif;
  --sbf-sans: Lato, Helvetica Neue, Helvetica, Arial, sans-serif;
  --sbf-body-color: #1a1a1a;
  --sbf-title-color: #000000;
  --sbf-label-color: #1a237e;
  --sbf-footer-bg: #1a237e;
  --sbf-footer-color: #ffffff;
  --sbf-rule-color: #cbcbcb;
  --sbf-page-margin-v: 12mm;
  --sbf-page-margin-h: 14mm;
  --sbf-flow-bottom-gap: 16mm;
  --sbf-flow-continue-top-gap: 6mm;
  --sbf-content-above-footer-gap: 8mm;
  --sbf-footer-max-height: 150px;
}
.sbf-doc *,
.sbf-doc *::before,
.sbf-doc *::after {
  box-sizing: border-box;
}
