/* 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-xl {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  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-m {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  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-xs {
  font-family: 'SL Gothic Display', 'SL Gothic Text';
  font-size: inherit;
  padding: 0;
  margin: 0;
  font-size: 20px;
  line-height: 24px;
}

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

.heading-s,
.heading-xs,
.heading-m {
  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 {
  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 {
  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;
}

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

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

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

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

  .heading-s,
  .heading-xs,
  .heading-m {
    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 {
    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 {
    padding-top: 8px;
  }
}
