html {
  font-size: 1rem;
  font-family: 'SL Gothic';
}

body {
  font-size: 1.125rem;
  font-family: 'SL Gothic';
}

.body-maxWidth {
  max-width: 34.5rem;
}
.body-margin {
  margin: 0 0 1rem 0;
}
.body-padding {
  padding: 0;
}
.body-fontWeight {
  font-weight: normal;
}
.nullMargin {
  margin: 0;
}

/* REGULAR */
@font-face {
  font-family: 'SL Gothic';
  src:
    url('slgothictext2-regular.woff2') format('woff2'),
    url('slgothictext2-regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* BOLD */
@font-face {
  font-family: 'SL Gothic';
  src:
    url('slgothictext2-bold.woff2') format('woff2'),
    url('slgothictext2-bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* SL Gothic Display  */
@font-face {
  font-family: 'SL Gothic Display';
  src: url('slgothicdisplay-bold.woff2') format('woff2');
  font-weight: 700;
  font-style: bold;
  font-display: swap;
}

.heading-xxl {
  font-family: 'SL Gothic Display';
  padding: 0;
  margin: 0;
  font-weight: bold;
  font-size: 4.5rem;
  line-height: 4.5rem;
  font-size: clamp(3rem, 2.836879vw + 2.265957rem, 4.5rem);
  line-height: clamp(3.25rem, 2.364066vw + 2.638298rem, 4.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-xxl {
    font-size: 3rem;
    line-height: 3.25rem;
  }
}

.heading-xxl-base {
  font-family: 'SL Gothic Display';
  font-weight: bold;
  font-size: 4.5rem;
  line-height: 4.5rem;
  font-size: clamp(3rem, 2.836879vw + 2.265957rem, 4.5rem);
  line-height: clamp(3.25rem, 2.364066vw + 2.638298rem, 4.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-xxl {
    font-size: 3rem;
    line-height: 3.25rem;
  }
}

.heading-xl {
  font-family: 'SL Gothic Display';
  padding: 0;
  margin: 0;
  font-weight: bold;
  font-size: 3.75rem;
  line-height: 4rem;
  font-size: clamp(2.5rem, 2.364066vw + 1.888298rem, 3.75rem);
  line-height: clamp(2.75rem, 2.364066vw + 2.138298rem, 4rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-xl {
    font-size: 2.5rem;
    line-height: 2.75rem;
  }
}

.heading-xl-base {
  font-family: 'SL Gothic Display';
  font-weight: bold;
  font-size: 3.75rem;
  line-height: 4rem;
  font-size: clamp(2.5rem, 2.364066vw + 1.888298rem, 3.75rem);
  line-height: clamp(2.75rem, 2.364066vw + 2.138298rem, 4rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-xl {
    font-size: 2.5rem;
    line-height: 2.75rem;
  }
}

.heading-l {
  font-family: 'SL Gothic Display';
  padding: 0;
  margin: 0;
  font-weight: bold;
  font-size: 3rem;
  line-height: 3.25rem;
  font-size: clamp(2rem, 1.891253vw + 1.510638rem, 3rem);
  line-height: clamp(2.25rem, 1.891253vw + 1.760638rem, 3.25rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-l {
    font-size: 2rem;
    line-height: 2.25rem;
  }
}

.heading-l-base {
  font-family: 'SL Gothic Display';
  font-weight: bold;
  font-size: 3rem;
  line-height: 3.25rem;
  font-size: clamp(2rem, 1.891253vw + 1.510638rem, 3rem);
  line-height: clamp(2.25rem, 1.891253vw + 1.760638rem, 3.25rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-l {
    font-size: 2rem;
    line-height: 2.25rem;
  }
}

.heading-m {
  font-family: 'SL Gothic Display';
  padding: 0;
  margin: 0;
  font-weight: bold;
  font-size: 2.25rem;
  line-height: 2.5rem;
  font-size: clamp(1.5rem, 1.41844vw + 1.132979rem, 2.25rem);
  line-height: clamp(2rem, 0.945626vw + 1.755319rem, 2.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-m {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

.heading-m-base {
  font-family: 'SL Gothic Display';
  font-weight: bold;
  font-size: 2.25rem;
  line-height: 2.5rem;
  font-size: clamp(1.5rem, 1.41844vw + 1.132979rem, 2.25rem);
  line-height: clamp(2rem, 0.945626vw + 1.755319rem, 2.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-m {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

.heading-s {
  font-family: 'SL Gothic Display';
  padding: 0;
  margin: 0;
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 1.75rem;
  font-size: clamp(1.25rem, 0.472813vw + 1.12766rem, 1.5rem);
  line-height: clamp(1.5rem, 0.472813vw + 1.37766rem, 1.75rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-s {
    font-size: 1.25rem;
    line-height: 1.5rem;
  }
}

.heading-s-base {
  font-family: 'SL Gothic Display';
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 1.75rem;
  font-size: clamp(1.25rem, 0.472813vw + 1.12766rem, 1.5rem);
  line-height: clamp(1.5rem, 0.472813vw + 1.37766rem, 1.75rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-s {
    font-size: 1.25rem;
    line-height: 1.5rem;
  }
}

.heading-xs {
  font-family: 'SL Gothic Display';
  padding: 0;
  margin: 0;
  font-weight: bold;
  font-size: 1.25rem;
  line-height: 1.5rem;
  font-size: clamp(1rem, 0.472813vw + 0.87766rem, 1.25rem);
  line-height: clamp(1.25rem, 0.472813vw + 1.12766rem, 1.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-xs {
    font-size: 1rem;
    line-height: 1.25rem;
  }
}

.heading-xs-base {
  font-family: 'SL Gothic Display';
  font-weight: bold;
  font-size: 1.25rem;
  line-height: 1.5rem;
  font-size: clamp(1rem, 0.472813vw + 0.87766rem, 1.25rem);
  line-height: clamp(1.25rem, 0.472813vw + 1.12766rem, 1.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .heading-xs {
    font-size: 1rem;
    line-height: 1.25rem;
  }
}

.body {
  font-family: 'SL Gothic';
  padding: 0;
  margin: 0 0 1rem 0;
  font-weight: normal;
  font-size: 1.125rem;
  line-height: 1.75rem;
  max-width: 34.5rem;
  font-size: clamp(1rem, 0.236407vw + 0.93883rem, 1.125rem);
  line-height: clamp(1.5rem, 0.472813vw + 1.37766rem, 1.75rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .body {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.body-base {
  font-family: 'SL Gothic';
  font-weight: normal;
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-size: clamp(1rem, 0.236407vw + 0.93883rem, 1.125rem);
  line-height: clamp(1.5rem, 0.472813vw + 1.37766rem, 1.75rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .body {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.body-s {
  font-family: 'SL Gothic';
  padding: 0;
  margin: 0 0 1rem 0;
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.5rem;
  max-width: 34.5rem;
  font-size: clamp(1rem, 0vw + 1rem, 1rem);
  line-height: clamp(1.5rem, 0vw + 1.5rem, 1.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .body-s {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.body-s-base {
  font-family: 'SL Gothic';
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.5rem;
  font-size: clamp(1rem, 0vw + 1rem, 1rem);
  line-height: clamp(1.5rem, 0vw + 1.5rem, 1.5rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .body-s {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.preamble {
  font-family: 'SL Gothic';
  padding: 0;
  margin: 0 0 2rem 0;
  font-weight: normal;
  font-size: 1.5rem;
  line-height: 2rem;
  max-width: 34.5rem;
  font-size: clamp(1.25rem, 0.472813vw + 1.12766rem, 1.5rem);
  line-height: clamp(1.75rem, 0.472813vw + 1.62766rem, 2rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .preamble {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

.preamble-base {
  font-family: 'SL Gothic';
  font-weight: normal;
  font-size: 1.5rem;
  line-height: 2rem;
  font-size: clamp(1.25rem, 0.472813vw + 1.12766rem, 1.5rem);
  line-height: clamp(1.75rem, 0.472813vw + 1.62766rem, 2rem);
} /* Fallback media-query - 414px is the lower calculated bound for fluid */
@media screen and (max-width: 414px) {
  .preamble {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

/** Remove margin for last paragraph in a text **/
p.body:last-child,
p.body-s:last-child,
p.preamble:last-child {
  margin: 0;
}

/** Spacing bottom **/
.heading-xxl,
.heading-xl,
.heading-l {
  margin-bottom: 1rem;
}
@media screen and (max-width: 576px) {
  .heading-xxl,
  .heading-xl,
  .heading-l {
    margin-bottom: 1rem;
  }
}

/** Spacing bottom **/
.heading-m,
.heading-s,
.heading-xs {
  margin-bottom: 1rem;
}
@media screen and (max-width: 576px) {
  .heading-m,
  .heading-s,
  .heading-xs {
    margin-bottom: 0.5rem;
  }
}

/** 
  * Spacing top (headings: heading-xxl heading-xl heading-l).
  * Contextually added if a heading follows a paragraph, unordered list or ordered list
  **/
.heading-xxl,
.heading-xl,
.heading-l {
  padding-top: 1.5rem;
}
@media screen and (max-width: 576px) {
  .heading-xxl,
  .heading-xl,
  .heading-l {
    padding-top: 1rem;
  }
}

/** 
  * Spacing top (headings: heading-m heading-s heading-xs).
  * Contextually added if a heading follows a paragraph, unordered list or ordered list
  **/
.heading-m,
.heading-s,
.heading-xs {
  padding-top: 1rem;
}
@media screen and (max-width: 576px) {
  .heading-m,
  .heading-s,
  .heading-xs {
    padding-top: 0.5rem;
  }
}

/**
   * Padding top should always be applied, but removed if it's the first child.
   **/
.heading-xxl:first-child,
.heading-xl:first-child,
.heading-l:first-child,
.heading-m:first-child,
.heading-s:first-child,
.heading-xs:first-child {
  padding-top: 0;
}
