/* 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;
}

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

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

/* MEDIUM ITALIC */
@font-face {
  font-family: 'SL Gothic';
  src: url('slgothictext2-mediumitalic.woff2') format('woff2'), url('slgothictext2-mediumitalic.woff') format('woff');
  font-weight: 500;
  font-style: italic;
  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;
}

/* BOLD ITALIC */
@font-face {
  font-family: 'SL Gothic';
  src: url('slgothictext2-bolditalic.woff2') format('woff2'), url('slgothictext2-bolditalic.woff') format('woff');
  font-weight: 700;
  font-style: italic;
  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;
}

/**
 * Headings / Title (UX calls them titles) 
 * See: https://designnotes.blog.gov.uk/2018/02/19/developing-new-typography-and-spacing-for-gov-uk-frontend/
 *
**/
.heading-xxl {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 72px;
  line-height: 72px;
}

.heading-xxl-base {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  font-size: 72px;
  line-height: 72px;
}

.heading-xl {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 60px;
  line-height: 64px;
}

.heading-xl-base {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  font-size: 60px;
  line-height: 64px;
}

.heading-l {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 48px;
  line-height: 52px;
}

.heading-l-base {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  font-size: 48px;
  line-height: 52px;
}

.heading-m {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 36px;
  line-height: 40px;
}

.heading-m-base {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  font-size: 36px;
  line-height: 40px;
}

.heading-s {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 24px;
  line-height: 28px;
}

.heading-s-base {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  font-size: 24px;
  line-height: 28px;
}

.heading-xs {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 20px;
  line-height: 24px;
}

.heading-xs-base {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  font-size: 20px;
  line-height: 24px;
}

/** Spacing bottom **/
.heading-xxl,
.heading-xl,
.heading-l,
.heading-xxl-base,
.heading-xl-base,
.heading-l-base {
  margin-bottom: 24px;
}

.heading-s,
.heading-xs,
.heading-m,
.heading-s-base,
.heading-xs-base,
.heading-m-base {
  margin-bottom: 16px;
}

/** 
   * Spacing top (large headings, l, xl, xxl).
   * Contextually added if a heading follows a paragraph, unordered list or ordered list
  **/
p + .heading-xxl,
p + .heading-xl,
p + .heading-l,
ul + .heading-xxl,
ul + .heading-xl,
ul + .heading-l,
ol + .heading-xxl,
ol + .heading-xl,
ol + .heading-l,
p + .heading-xxl-base,
p + .heading-xl-base,
p + .heading-l-base,
ul + .heading-xxl-base,
ul + .heading-xl-base,
ul + .heading-l-base,
ol + .heading-xxl-base,
ol + .heading-xl-base,
ol + .heading-l-base {
  padding-top: 24px;
}

/** 
   * Spacing top (small headings, m, s, xs).
   * Contextually added if a heading follows a paragraph, unordered list or ordered list
  **/
p + .heading-m,
p + .heading-s,
p + .heading-xs,
ul + .heading-m,
ul + .heading-s,
ul + .heading-xs,
ol + .heading-m,
ol + .heading-s,
ol + .heading-xs,
p + .heading-m-base,
p + .heading-s-base,
p + .heading-xs-base,
ul + .heading-m-base,
ul + .heading-s-base,
ul + .heading-xs-base,
ol + .heading-m-base,
ol + .heading-s-base,
ol + .heading-xs-base {
  padding-top: 16px;
}

/** Paragraph texts **/
.body {
  margin: 0 0 16px 0;
  padding: 0;
  font-size: 18px;
  line-height: 28px;
  font-family: SL Gothic;
  font-weight: normal;
  max-width: 552px;
}

.body-s {
  margin: 0 0 16px 0;
  padding: 0;
  font-size: 16px;
  line-height: 24px;
  font-family: SL Gothic;
  font-weight: normal;
  max-width: 552px;
}

/**
 * Body-like format without padding and margin for use within components.
 * Also without max-width which is only intended for paragraph texts.
**/
.body-base {
  padding: 0;
  font-size: 18px;
  line-height: 28px;
  font-family: SL Gothic;
  font-weight: normal;
}
.body-s-base {
  margin: 0 0 16px 0;
  padding: 0;
  font-size: 16px;
  line-height: 24px;
  font-family: SL Gothic;
  font-weight: normal;
  max-width: 552px;
}

/** Utility classes for body when we want different combinations **/
.body-maxWidth {
  max-width: 552px;
}

.body-margin {
  margin: 0 0 16px 0;
}

.body-fontWeight {
  font-weight: normal;
}

.preamble {
  margin: 0;
  margin-bottom: 32px;
  padding: 0;
  font-size: 24px;
  line-height: 32px;
  font-family: SL Gothic;
  font-weight: normal;
  max-width: 552px;
}

.preamble-base {
  font-size: 24px;
  line-height: 32px;
  font-family: SL Gothic;
}

@media screen and (max-width: 576px) {
  .heading-xxl,
  .heading-xxl-base {
    font-size: 48px;
    line-height: 52px;
  }
  .heading-xl,
  .heading-xl-base {
    font-size: 40px;
    line-height: 44px;
  }
  .heading-l,
  .heading-l-base {
    font-size: 32px;
    line-height: 36px;
  }
  .heading-m,
  .heading-m-base {
    font-size: 24px;
    line-height: 32px;
  }
  .heading-s,
  .heading-s-base {
    font-size: 20px;
    line-height: 24px;
  }
  .heading-xs,
  .heading-xs-base {
    font-size: 16px;
    line-height: 20px;
  }

  .body,
  .body-base {
    font-size: 16px;
    line-height: 24px;
  }
  .body-s,
  .body-s-base {
    font-size: 14px;
    line-height: 20px;
  }
  .preamble,
  .preamble-base {
    font-size: 20px;
    line-height: 28px;
  }

  /* Spacing */
  .heading-xxl,
  .heading-xl,
  .heading-l,
  .heading-xxl-base,
  .heading-xl-base,
  .heading-l-base {
    margin-bottom: 16px;
  }

  .heading-s,
  .heading-xs,
  .heading-m,
  .heading-s-base,
  .heading-xs-base,
  .heading-m-base {
    margin-bottom: 8px;
  }
  p + .heading-xxl,
  p + .heading-xl,
  p + .heading-l,
  ul + .heading-xxl,
  ul + .heading-xl,
  ul + .heading-l,
  ol + .heading-xxl,
  ol + .heading-xl,
  ol + .heading-l,
  p + .heading-xxl-base,
  p + .heading-xl-base,
  p + .heading-l-base,
  ul + .heading-xxl-base,
  ul + .heading-xl-base,
  ul + .heading-l-base,
  ol + .heading-xxl-base,
  ol + .heading-xl-base,
  ol + .heading-l-base {
    padding-top: 16px;
  }
  p + .heading-m,
  p + .heading-s,
  p + .heading-xs,
  ul + .heading-m,
  ul + .heading-s,
  ul + .heading-xs,
  ol + .heading-m,
  ol + .heading-s,
  ol + .heading-xs,
  p + .heading-m-base,
  p + .heading-s-base,
  p + .heading-xs-base,
  ul + .heading-m-base,
  ul + .heading-s-base,
  ul + .heading-xs-base,
  ol + .heading-m-base,
  ol + .heading-s-base,
  ol + .heading-xs-base {
    padding-top: 8px;
  }
}
