@import url(https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap);
/* noto-sans-cyrillic-ext-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-ext-400-normal.ee376441.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* noto-sans-cyrillic-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-400-normal.ac040a06.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* noto-sans-devanagari-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-devanagari-400-normal.b7662f94.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB;
}
/* noto-sans-greek-ext-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-ext-400-normal.a53d3a50.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* noto-sans-greek-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-400-normal.6d921428.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* noto-sans-vietnamese-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-vietnamese-400-normal.7ac08f5e.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* noto-sans-latin-ext-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-ext-400-normal.e6c5088b.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* noto-sans-latin-400-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-400-normal.668fa41f.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-normal.52416d70.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* noto-sans-cyrillic-ext-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-ext-400-italic.64150094.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* noto-sans-cyrillic-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-400-italic.9dc7f698.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* noto-sans-devanagari-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-devanagari-400-italic.ad622e23.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB;
}
/* noto-sans-greek-ext-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-ext-400-italic.fd74e6ea.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* noto-sans-greek-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-400-italic.1c22553d.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* noto-sans-vietnamese-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-vietnamese-400-italic.221e112d.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* noto-sans-latin-ext-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-ext-400-italic.6f2c1913.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* noto-sans-latin-400-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-400-italic.06b1c08d.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-400-italic.d083cbfc.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* noto-sans-cyrillic-ext-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-ext-700-normal.fd216e94.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* noto-sans-cyrillic-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-700-normal.5d209bf6.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* noto-sans-devanagari-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-devanagari-700-normal.c3be0a25.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB;
}
/* noto-sans-greek-ext-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-ext-700-normal.7d0c3638.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* noto-sans-greek-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-700-normal.ae932d29.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* noto-sans-vietnamese-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-vietnamese-700-normal.0d08f35d.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* noto-sans-latin-ext-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-ext-700-normal.474b2795.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* noto-sans-latin-700-normal*/
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-700-normal.ed37599f.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-normal.b0b72b4a.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* noto-sans-cyrillic-ext-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-ext-700-italic.432cf100.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* noto-sans-cyrillic-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-cyrillic-700-italic.5f19ea49.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* noto-sans-devanagari-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-devanagari-700-italic.07e01038.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB;
}
/* noto-sans-greek-ext-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-ext-700-italic.95d0331b.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* noto-sans-greek-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-greek-700-italic.8eff54b3.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* noto-sans-vietnamese-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-vietnamese-700-italic.793ab216.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* noto-sans-latin-ext-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-ext-700-italic.894716e6.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* noto-sans-latin-700-italic*/
@font-face {
  font-family: 'Noto Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/noto-sans-latin-700-italic.378098f9.woff2) format('woff2'), url(/7d751ad7/10.1.0/fonts/noto-sans-all-700-italic.9b69977c.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/**
 * Vendor Styles
 */
/**
  * Base styling
  */
/**
  * Components - objects
  */
/**
  * Components - blocks
  */
/**
  * Components - structures
  */
/**
  * Utilities
  */
/**
  * IE specific styling
  */
/**
  * Fonts
  */
/* http://meyerweb.com/eric/tools/css/reset/
   v5.0.1 | 20191019
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, menu, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
  display: block;
}

/* HTML5 hidden-attribute fix for newer browsers */
*[hidden] {
  display: none;
}

body {
  line-height: 1;
}

menu, ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

.ss-main {
  position: relative;
  display: inline-block;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  color: #666;
  width: 100%;
}

.ss-main .ss-single-selected {
  display: flex;
  cursor: pointer;
  width: 100%;
  height: 30px;
  padding: 6px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #fff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}

.ss-main .ss-single-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}

.ss-main .ss-single-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}

.ss-main .ss-single-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.ss-main .ss-single-selected .placeholder {
  display: flex;
  flex: 1 1 100%;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  width: calc(100% - 30px);
  line-height: 1em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.ss-main .ss-single-selected .placeholder * {
  display: flex;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: auto;
}

.ss-main .ss-single-selected .placeholder .ss-disabled {
  color: #dedede;
}

.ss-main .ss-single-selected .ss-deselect {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
  font-weight: bold;
}

.ss-main .ss-single-selected .ss-deselect.ss-hide {
  display: none;
}

.ss-main .ss-single-selected .ss-arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
}

.ss-main .ss-single-selected .ss-arrow span {
  border: solid #666;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 3px;
  transition: transform 0.2s, margin 0.2s;
}

.ss-main .ss-single-selected .ss-arrow span.arrow-up {
  transform: rotate(-135deg);
  margin: 3px 0 0 0;
}

.ss-main .ss-single-selected .ss-arrow span.arrow-down {
  transform: rotate(45deg);
  margin: -3px 0 0 0;
}

.ss-main .ss-multi-selected {
  display: flex;
  flex-direction: row;
  cursor: pointer;
  min-height: 30px;
  width: 100%;
  padding: 0 0 0 3px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #fff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}

.ss-main .ss-multi-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}

.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled {
  color: #666;
}

.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete {
  cursor: not-allowed;
}

.ss-main .ss-multi-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}

.ss-main .ss-multi-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}

.ss-main .ss-multi-selected .ss-values {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  flex: 1 1 100%;
  width: calc(100% - 30px);
}

.ss-main .ss-multi-selected .ss-values .ss-disabled {
  display: flex;
  padding: 4px 5px;
  margin: 2px 0px;
  line-height: 1em;
  align-items: center;
  width: 100%;
  color: #dedede;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes scaleOut {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
.ss-main .ss-multi-selected .ss-values .ss-value {
  display: flex;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  align-items: center;
  font-size: 12px;
  padding: 3px 5px;
  margin: 3px 5px 3px 0px;
  color: #fff;
  background-color: #5897fb;
  border-radius: 4px;
  animation-name: scaleIn;
  animation-duration: 0.2s;
  animation-timing-function: ease-out;
  animation-fill-mode: both;
}

.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
  animation-name: scaleOut;
  animation-duration: 0.2s;
  animation-timing-function: ease-out;
}

.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete {
  margin: 0 0 0 5px;
  cursor: pointer;
}

.ss-main .ss-multi-selected .ss-add {
  display: flex;
  flex: 0 1 3px;
  margin: 9px 12px 0 5px;
}

.ss-main .ss-multi-selected .ss-add .ss-plus {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #666;
  position: relative;
  height: 10px;
  width: 2px;
  transition: transform 0.2s;
}

.ss-main .ss-multi-selected .ss-add .ss-plus:after {
  background: #666;
  content: "";
  position: absolute;
  height: 2px;
  width: 10px;
  left: -4px;
  top: 4px;
}

.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross {
  transform: rotate(45deg);
}

.ss-content {
  position: absolute;
  width: 100%;
  margin: -1px 0 0 0;
  box-sizing: border-box;
  border: solid 1px #dcdee2;
  z-index: 1010;
  background-color: #fff;
  transform-origin: center top;
  transition: transform 0.2s, opacity 0.2s;
  opacity: 0;
  transform: scaleY(0);
}

.ss-content.ss-open {
  display: block;
  opacity: 1;
  transform: scaleY(1);
}

.ss-content .ss-search {
  display: flex;
  flex-direction: row;
  padding: 8px 8px 6px 8px;
}

.ss-content .ss-search.ss-hide {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}

.ss-content .ss-search.ss-hide input {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}

.ss-content .ss-search input {
  display: inline-flex;
  font-size: inherit;
  line-height: inherit;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0px;
  height: 30px;
  padding: 6px 8px;
  margin: 0;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #fff;
  outline: 0;
  text-align: left;
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -webkit-appearance: textfield;
}

.ss-content .ss-search input::-moz-placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}

.ss-content .ss-search input:-ms-input-placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}

.ss-content .ss-search input::placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}

.ss-content .ss-search input:focus {
  box-shadow: 0 0 5px #5897fb;
}

.ss-content .ss-search .ss-addable {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  font-size: 22px;
  font-weight: bold;
  flex: 0 0 30px;
  height: 30px;
  margin: 0 0 0 8px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  box-sizing: border-box;
}

.ss-content .ss-addable {
  padding-top: 0px;
}

.ss-content .ss-list {
  max-height: 200px;
  overflow-x: hidden;
  overflow-y: auto;
  text-align: left;
}

.ss-content .ss-list .ss-optgroup .ss-optgroup-label {
  padding: 6px 10px 6px 10px;
  font-weight: bold;
}

.ss-content .ss-list .ss-optgroup .ss-option {
  padding: 6px 6px 6px 25px;
}

.ss-content .ss-list .ss-optgroup-label-selectable {
  cursor: pointer;
}

.ss-content .ss-list .ss-optgroup-label-selectable:hover {
  color: #fff;
  background-color: #5897fb;
}

.ss-content .ss-list .ss-option {
  padding: 6px 10px 6px 10px;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.ss-content .ss-list .ss-option * {
  display: inline-block;
}

.ss-content .ss-list .ss-option:hover, .ss-content .ss-list .ss-option.ss-highlighted {
  color: #fff;
  background-color: #5897fb;
}

.ss-content .ss-list .ss-option.ss-disabled {
  cursor: not-allowed;
  color: #dedede;
  background-color: #fff;
}

.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected {
  color: #666;
  background-color: rgba(88, 151, 251, 0.1);
}

.ss-content .ss-list .ss-option.ss-hide {
  display: none;
}

.ss-content .ss-list .ss-option .ss-search-highlight {
  background-color: #fffb8c;
}

.ss-main .ss-single-selected {
  border: none;
  height: auto;
  background-image: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27><path d=%27M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z%27/></svg>");
  background-repeat: no-repeat;
  background-position: right;
  padding: 11px 40px 11px 8px;
}
.ss-main .ss-single-selected .ss-arrow {
  display: none;
}
.ss-main .ss-single-selected .placeholder {
  min-height: 18px;
}
.ss-main.select-field__input {
  background-image: none;
  padding-right: 0;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.tippy-box {
  background: #ffffff;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  border-top: 1px solid rgba(74, 78, 87, 0.1);
  animation: dropDown 0.2s ease-in both;
}

.tippy-content {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  text-align: center;
  line-height: 20px;
  color: #4a4e57;
  white-space: pre-line;
  justify-content: center;
  width: 100%;
  padding: 8px;
}
@media (min-width: 768px) {
  .tippy-content {
    padding: 8px 24px;
  }
}
.tippy-content:hover {
  background: #f7f7f7;
}

.tippy-arrow {
  width: 16px;
  height: 16px;
  color: #ffffff;
}
.tippy-arrow::before {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
}
.tippy-box[data-placement^=top] > .tippy-arrow::before {
  bottom: 8px;
  left: 0;
  border-width: 8px 8px 0;
  border-top-color: initial;
  transform-origin: center top;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow {
  top: 0;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow::before {
  top: -8px;
  left: 0;
  border-width: 0 8px 8px;
  border-color: transparent;
  border-bottom-color: rgba(74, 78, 87, 0.1);
  transform-origin: center bottom;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow::after {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
  top: -7px;
  left: 0;
  border-width: 0 8px 8px;
  border-bottom-color: initial;
  transform-origin: center bottom;
}
.tippy-box:hover .tippy-arrow {
  color: #f7f7f7;
}

* {
  box-sizing: border-box;
}

*::before,
*::after {
  box-sizing: border-box;
}

html {
  height: -moz-fit-content;
  height: fit-content;
}

body {
  --body-font: "Roboto", Arial, sans-serif;
  --header-font: "Roboto", Arial, sans-serif;
  --button-primary-colour: #1d1d1b;
  --button-primary-hover-colour: #4a4e57;
  --button-primary-text-colour: #ffffff;
  --button-secondary-colour: #edeff1;
  --button-secondary-hover-colour: #bcbcbc;
  --button-secondary-text-colour: #1d1d1b;
  --button-border-radius: 4px;
  --body-text-color: #4a4e57;
  --title-text-colour: #4a4e57;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-y: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.ff-brand-2022 {
  --body-font: "Noto Sans", sans-serif;
  --header-font: "Oswald", sans-serif;
  --button-border-radius: 8px;
  --button-primary-colour: #1f1f1f;
  --button-primary-text-colour: #ffffff;
  --button-primary-hover-colour: #454545;
  --button-secondary-colour: #ebebeb;
  --button-secondary-hover-colour: #cdcdcd;
  --button-secondary-text-colour: #1f1f1f;
  --body-text-color: #1f1f1f;
  --title-text-colour: #1f1f1f;
}
body.has-suppressed-highlight button:focus,
body.has-suppressed-highlight input:focus,
body.has-suppressed-highlight select:focus,
body.has-suppressed-highlight summary:focus,
body.has-suppressed-highlight textarea:focus {
  outline: none;
}
body.nav-is-open {
  overflow: hidden;
}

main {
  flex: 1 0 auto;
}

header,
footer {
  flex-shrink: 0;
}

select {
  border: 0;
  background: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

button,
input {
  border: 0;
  background: none;
  cursor: pointer;
  margin: 0;
  padding: 0;
}
button::-ms-clear,
input::-ms-clear {
  display: none;
}

input[type=text] {
  min-width: 0;
}

summary {
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

summary::after {
  background: none;
}

details[open] summary::after {
  background: none;
}

input[type=search],
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
  -webkit-appearance: none;
          appearance: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  border: 0;
}

strong,
b {
  font-weight: 700;
}

dialog {
  border: 0;
}
dialog::backdrop {
  background: rgba(0, 0, 0, 0.75);
}

input[type=file] {
  border: 0;
  padding: 0;
}
input[type=file]:focus {
  border: 0;
  padding: 0;
}

:root {
  --content-max-width: 1244px;
  --theme-bg-colour: #f7f7f7;
  --theme-alt-bg-colour: #f7f7f7;
  --theme-text-colour: #4a4e57;
  --theme-alt-text-colour: #d9121f;
}
:root .t-discover {
  --theme-bg-colour: #00bf9f;
  --theme-alt-bg-colour: #40ceb7;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-air-quality {
  --theme-bg-colour: #00bf9f;
  --theme-alt-bg-colour: #40ceb7;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-activist-engineering {
  --theme-bg-colour: #ffffff;
  --theme-alt-bg-colour: #40ceb7;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-forum {
  --theme-bg-colour: #0098bf;
  --theme-alt-bg-colour: #40b2cf;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-home {
  --theme-bg-colour: #e36666;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-learn,
:root .t-grass-roots-education,
:root .t-student-innovation,
:root .t-learning-and-skills,
:root .t-opportunities {
  --theme-bg-colour: #01c44e;
  --theme-alt-bg-colour: #41d37a;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-resources {
  --theme-bg-colour: #ffdb0f;
  --theme-alt-bg-colour: #ffe44b;
  --theme-text-colour: #1d1d1b;
}
:root .t-services {
  --theme-bg-colour: #ff8b2d;
  --theme-alt-bg-colour: #fea861;
  --theme-text-colour: #1d1d1b;
  --theme-alt-text-colour: #ffffff;
}
:root .t-innovation {
  --theme-bg-colour: #ffffff;
  --theme-alt-bg-colour: #fea861;
  --theme-text-colour: #1d1d1b;
}
:root .t-software,
:root .t-software-ds-pcb,
:root .t-software-ds-pcb-pro,
:root .t-software-dse,
:root .t-software-dsm,
:root .t-software-pcb-compare,
:root .t-software-ds-pcb-v10,
:root .t-software-ds-pcb-pro-v10,
:root .t-draftsight,
:root .t-software-pcb-compare-v10 {
  --theme-bg-colour: #d1aadc;
  --theme-alt-bg-colour: #ddbfe5;
  --theme-text-colour: #1d1d1b;
}
:root .t-brand-2022 {
  --theme-bg-colour: #69141e;
  --theme-text-colour: #ffffff;
}

body {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: var(--body-text-color);
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover, a:focus {
  color: #4a4e57;
  text-decoration: none;
}

button:hover {
  text-decoration: none;
}

.header {
  color: #4a4e57;
  font-family: var(--body-font);
  font-weight: 400;
}

.o-button:hover, .o-button:focus {
  color: #ffffff;
}
.o-button.o-button--secondary:hover, .o-button.o-button--secondary:focus {
  color: #1d1d1b;
}

.footer__nav-link > a:hover {
  color: #ffffff;
}

.filter-bar__filter {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  line-height: normal;
}
.filter-bar__filter:hover, .filter-bar__filter:focus, .filter-bar__filter.is-active {
  color: #ffffff;
}

.language-selector__link:focus {
  color: #ffffff;
}

.wysiwyg ol li::before {
  display: none;
}
.wysiwyg ul li {
  background-image: none;
  padding-left: 0;
}

.o-badge {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  max-width: 100%;
  border-radius: 4px;
  padding: 4px 16px;
  margin-bottom: 4px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  color: #ffffff;
  background-color: #1d1d1b;
}

.o-badge--tutorial {
  background-color: #bcbcbc;
  color: #1d1d1b;
}

.o-badge--product {
  background-color: #d9121f;
}

.o-badge--success {
  background-color: #00691e;
}

.o-badge--info {
  background-color: #005f69;
}

.o-badge--warning {
  background-color: #d76405;
}

.o-badge--error {
  background-color: #ef0000;
}

.o-branded-text {
  font-weight: 700;
}

.o-branded-text__highlight {
  color: #d9121f;
}

.o-button {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  line-height: 1;
  padding: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--button-primary-text-colour);
  border-radius: var(--button-border-radius);
  background-color: var(--button-primary-colour);
  cursor: pointer;
}
.o-button:hover {
  background-color: var(--button-primary-hover-colour);
}
.o-button:disabled {
  pointer-events: none;
}

@media (max-width: 768px) {
  .o-button--full-width-mobile {
    width: 100%;
  }
}

.o-button--small {
  padding: 12px 16px;
}

.o-button--danger {
  background-color: #d9121f;
}

.o-button--secondary {
  color: var(--button-secondary-text-colour);
  background-color: var(--button-secondary-colour);
}
.o-button--secondary:hover {
  background-color: var(--button-secondary-hover-colour);
}

.o-button--active {
  background-color: var(--button-secondary-hover-colour);
}

.o-button--ghost {
  color: var(--button-secondary-text-colour);
  background-color: transparent;
}
.o-button--ghost:hover {
  color: var(--button-secondary-text-colour);
  background-color: transparent;
}

.is-loading-cards .o-button__load-more, .has-all-items .o-button__load-more {
  display: none;
}

.o-button--icon-left,
.o-button--icon-right {
  position: relative;
  vertical-align: bottom;
  padding-left: 40px;
  padding-right: 40px;
}
.o-button--small .o-button--icon-left,
.o-button--small .o-button--icon-right {
  padding-left: 24px;
  padding-right: 24px;
}

.o-button--icon-right .o-button__icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 16px;
}
.o-button--icon-left .o-button__icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 16px;
}

.o-show-more {
  position: absolute;
  bottom: -60px;
  width: 120px;
  border-radius: 4px;
  background-color: #f7f7f7;
  content: "";
  color: #4a4e57;
}
.o-show-more::before {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 58px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-retracted .o-show-more::before {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 58px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.form__errors {
  margin-bottom: 24px;
}

.form__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #d9121f;
}

.form__field-group {
  margin-bottom: 24px;
}
.form__field-group > .input-field {
  margin-bottom: 0;
}
.form__field-group > .input-field > .input-field__label {
  margin-bottom: 8px;
}
.form__field-group .o-radio {
  margin-bottom: 8px;
}
.form__field-group .o-checkbox:last-child {
  margin-bottom: 0;
}

.form__legend {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .form__legend {
    font-size: 28px;
    line-height: 36px;
  }
}

.form__toggle {
  display: none;
}
.form__toggle.is-visible {
  margin-bottom: 24px;
  display: block;
  background-color: #f7f7f7;
}
.form__toggle.is-visible > .input-field {
  padding: 16px;
}
.form__toggle.is-visible > .select-field {
  padding: 16px;
  margin-bottom: 0;
}
.form__toggle.is-visible > .o-checkbox {
  padding: 16px;
  margin-bottom: 0;
}

/**
 * FormField
 *
 * To be used as follows:
 * @include formField(string fieldName);
 * Applies default styling to basic form field elements such as input, label, errors etc.
 *
 */
/**
 * ToggleField
 *
 * To be used as follows:
 * @include toggleField(string fieldName);
 * Applies default styling to toggle form field elements such as checkboxes & radio buttons.
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-checkbox {
  margin-bottom: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.o-checkbox__input {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
.o-checkbox__input:focus + .o-checkbox__label::before {
  outline: 2px solid #3244ff;
  outline-offset: 2px;
}
.has-suppressed-highlight .o-checkbox__input:focus + .o-checkbox__label::before {
  outline: none;
  outline-offset: 0;
  box-shadow: 0 0 4px 0 #3244ff;
}

.o-checkbox__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  position: relative;
  padding-left: 24px;
  color: #1d1d1b;
  cursor: pointer;
}
.o-checkbox__label::before {
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
  border: 2px solid #4a4e57;
  margin-right: 8px;
  display: inline-block;
  background-color: #ffffff;
}
.o-checkbox__label > span {
  flex: 1;
}
.o-checkbox__label:hover::before {
  background: #edeff1;
}

.o-checkbox__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.o-checkbox__error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.o-checkbox__help {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
}
.o-checkbox__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.o-checkbox__label {
  align-items: center;
}
.o-checkbox__label.input-field__label {
  font-weight: normal;
}
.o-checkbox__label::before {
  height: 18px;
  width: 18px;
  border-radius: 3px;
  align-self: flex-start;
}

.o-checkbox__input:checked + .o-checkbox__label::before {
  background-color: #3244ff;
  border-radius: 3px;
  transform: rotate(0deg) scale(1);
  opacity: 1;
  border: 2px solid #3244ff;
}
.o-checkbox__input:checked + .o-checkbox__label::after {
  content: "";
  transform: rotate(45deg) scale(1);
  position: absolute;
  left: 6px;
  top: 6px;
  opacity: 1;
  width: 6px;
  height: 12px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  background-color: transparent;
  border-radius: 0;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-radio {
  margin-bottom: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.o-radio__input {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
.o-radio__input:focus + .o-radio__label::before {
  outline: 2px solid #3244ff;
  outline-offset: 2px;
}
.has-suppressed-highlight .o-radio__input:focus + .o-radio__label::before {
  outline: none;
  outline-offset: 0;
  box-shadow: 0 0 4px 0 #3244ff;
}

.o-radio__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  position: relative;
  padding-left: 24px;
  color: #1d1d1b;
  cursor: pointer;
}
.o-radio__label::before {
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
  border: 2px solid #4a4e57;
  margin-right: 8px;
  display: inline-block;
  background-color: #ffffff;
}
.o-radio__label > span {
  flex: 1;
}
.o-radio__label:hover::before {
  background: #edeff1;
}

.o-radio__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.o-radio__error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.o-radio__help {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
}
.o-radio__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.o-radio__label.input-field__label {
  font-weight: normal;
}
.o-radio__label::before {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex: 0 0 18px;
  align-self: flex-start;
}

.o-radio__input:checked + .o-radio__label::before {
  background: transparent;
  border-color: #3244ff;
}
.o-radio__input:checked + .o-radio__label::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 9px;
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 50%;
  margin-right: 10px;
  background: #3244ff;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.select-field {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}
.select-field [list]::-webkit-calendar-picker-indicator {
  margin-top: -4px;
}

.select-field__input {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.select-field__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.select-field__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .select-field__input {
  border-color: #d9121f;
}
.select-field__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.select-field__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.select-field__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.select-field__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.select-field__label a {
  font-weight: 700;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.select-field__label--regular {
  font-weight: 400;
}

.select-field__label-required {
  font-weight: normal;
}

.select-field__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.select-field__error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.select-field__help {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.select-field__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.select-field__input {
  background-image: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27><path d=%27M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z%27/></svg>");
  background-repeat: no-repeat;
  background-position: calc(100% - 8px) 50%;
  padding-right: 40px;
}
.select-field__input:focus {
  padding-right: 40px;
}

.select-field__input--no-padding {
  padding: 0;
}

.select-field--inline {
  margin: 24px 0 0;
}
@media (min-width: 768px) {
  .select-field--inline {
    flex-direction: row;
    align-items: center;
    margin: 0;
  }
}
.select-field--inline .select-field__label {
  margin-bottom: 12px;
}
@media (min-width: 768px) {
  .select-field--inline .select-field__label {
    margin: 0 12px 0 0;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.input-field {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}
.input-field [list]::-webkit-calendar-picker-indicator {
  margin-top: -4px;
}

.input-field__input {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.input-field__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.input-field__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .input-field__input {
  border-color: #d9121f;
}
.input-field__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.input-field__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.input-field__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.input-field__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.input-field__label a {
  font-weight: 700;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.input-field__label--regular {
  font-weight: 400;
}

.input-field__label-required {
  font-weight: normal;
}

.input-field__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.input-field__error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.input-field__help {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.input-field__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.input-field--with-associated-control {
  margin-bottom: 8px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-bar-input {
  border: none;
  margin: 0;
  padding: 4px 0 8px;
}

.o-bar-input__title {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #ffffff;
}

.o-bar-input__options {
  display: flex;
}

.o-bar-input__input {
  display: none;
}

.o-bar-input__label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  flex: 1 1 20%;
  background-color: #edeff1;
  color: #1d1d1b;
  margin-right: 8px;
  transition: all 0.3s ease;
  text-align: center;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  padding: 4px;
  cursor: pointer;
}
.o-bar-input__label:last-child {
  margin-right: 0;
}

.o-bar-input__input:not(:checked) + .o-bar-input__label:hover {
  background-color: #d9121f;
  color: #ffffff;
}

.o-bar-input__input:checked + .o-bar-input__label {
  background-color: #d9121f;
  color: #ffffff;
}

.o-heading-extra-large {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
}
@media (min-width: 768px) {
  .o-heading-extra-large {
    font-size: 48px;
    line-height: 56px;
  }
}

.o-heading-large {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}
@media (min-width: 768px) {
  .o-heading-large {
    font-size: 40px;
    line-height: 48px;
  }
}

.o-heading-medium {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
}
@media (min-width: 768px) {
  .o-heading-medium {
    font-size: 32px;
    line-height: 40px;
  }
}

.o-heading-small {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .o-heading-small {
    font-size: 28px;
    line-height: 36px;
  }
}

.o-icon {
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 16px; /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.o-icon--24 {
  font-size: 24px;
}

.o-icon--32 {
  font-size: 32px;
}

.o-loading-indicator {
  display: block;
  content: "";
  margin: 100px calc(50% - 25px);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  border-top: 5px solid #d9121f;
  border-right: 5px solid transparent;
  animation: spin 0.6s linear infinite;
}

.o-loading-indicator--small {
  margin: 0 16px;
  display: inline-block;
  width: 16px;
  height: 16px;
  border-top: 2px solid #d9121f;
}

.o-loading-indicator--feed {
  display: none;
}
.is-loading-cards .o-loading-indicator--feed {
  display: block;
}

.o-loading-indicator--lazy-load {
  display: none;
}
.is-loading-cards .o-loading-indicator--lazy-load, .is-loading-content .o-loading-indicator--lazy-load {
  display: block;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.o-skip-to-content {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  left: -10000px;
  padding: 8px;
  z-index: 1;
  background-color: #ffffff;
}
.ff-new-cards .o-skip-to-content {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .o-skip-to-content .card__image {
  border-radius: 0;
}
.o-skip-to-content:focus {
  top: 80px;
  left: 16px;
}

.o-text-link {
  font-weight: 700;
  color: #3244ff;
}
.o-text-link:hover {
  color: #d9121f;
}

.o-table {
  width: 100%;
}
.o-table.is-hidden {
  display: none;
}
.o-table th {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
  border-bottom: solid 1px #bcbcbc;
}
.o-table td {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  border-bottom: solid 1px #edeff1;
  font-weight: normal;
}
.o-table td,
.o-table th {
  text-align: left;
  padding: 16px;
  vertical-align: top;
}
.o-table td:first-child,
.o-table th:first-child {
  text-align: left;
  padding-left: 0;
}
.o-table td:last-child,
.o-table th:last-child {
  text-align: left;
  padding-right: 0;
}
.o-table.o-table--with-actions td:last-child {
  padding-top: 8px;
  padding-bottom: 8px;
}

.w-table {
  overflow: auto;
}

.o-body-large-regular {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
}

.o-body-large-bold {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.o-body-regular {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
}

.o-body-bold {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

.o-body-supporting {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
}

.o-banner-title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #ffffff;
}

.o-landing-page-title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-landing-page-title {
    font-size: 48px;
    line-height: 56px;
  }
}

.o-page-title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-page-title {
    font-size: 40px;
    line-height: 48px;
  }
}

.o-section-title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  color: var(--title-text-color);
}
@media (min-width: 768px) {
  .o-section-title {
    font-size: 32px;
    line-height: 40px;
  }
}
.s-section--highlighted .o-section-title {
  color: #ffffff;
}

.o-section-sub-title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-section-sub-title {
    font-size: 28px;
    line-height: 36px;
  }
}

.o-content-title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-content-title {
    font-size: 28px;
    line-height: 36px;
  }
}

.o-card-title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #4a4e57;
}

.o-card-title--small {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
}

.o-tag {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  max-width: 100%;
  display: inline-block;
  padding: 3px 15px;
  border: 1px solid #3244ff;
  border-radius: 24px;
  background-color: rgba(50, 68, 255, 0.15);
  color: #3244ff;
  font-weight: bold;
}

a.o-tag:hover {
  background-color: rgba(50, 68, 255, 0.1);
  color: #3244ff;
}

.w-tag {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
  margin-bottom: 24px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
}

.o-label__required-flag {
  font-weight: normal;
  color: #4a4e57;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-input {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.o-input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.o-input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.o-input.has-error {
  border-color: #d9121f;
}
.o-input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.o-input--width-2 {
  max-width: 5.4ex;
}

.o-input--width-3 {
  max-width: 7.2ex;
}

.o-input--width-4 {
  max-width: 9ex;
}

.o-input--width-5 {
  max-width: 10.8ex;
}

.o-input--width-10 {
  max-width: 23ex;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-textarea {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.o-textarea:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.o-textarea:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.o-textarea.has-error {
  border-color: #d9121f;
}
.o-textarea::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-textarea:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-textarea::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-select {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
  background-image: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27><path d=%27M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z%27/></svg>");
  background-repeat: no-repeat;
  background-position: calc(100% - 8px) 50%;
  padding-right: 40px;
}
.o-select:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.o-select:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.o-select.has-error {
  border-color: #d9121f;
}
.o-select::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-select:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-select::placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.o-select:focus {
  padding-right: 40px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-radio {
  display: flex;
  margin-bottom: 8px;
}

.o-radio__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  position: relative;
  padding-left: 24px;
  color: #1d1d1b;
  cursor: pointer;
}
.o-radio__label::before {
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #4a4e57;
  background-color: #ffffff;
}
.o-radio__label:hover::before {
  background: #edeff1;
}

.o-radio__input {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
.o-radio__input:focus + .o-radio__label::before {
  outline: 2px solid #3244ff;
  outline-offset: 2px;
}
.has-suppressed-highlight .o-radio__input:focus + .o-radio__label::before {
  outline: none;
  outline-offset: 0;
  box-shadow: 0 0 4px 0 #3244ff;
}

.o-radio__input:checked + .o-radio__label::before {
  background: transparent;
  border-color: #3244ff;
}
.o-radio__input:checked + .o-radio__label::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3244ff;
}

.o-radio--inline {
  display: inline-flex;
  margin-right: 8px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-checkbox__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  display: flex;
  position: relative;
  padding-left: 24px;
  color: #1d1d1b;
  cursor: pointer;
}
.o-checkbox__label::before {
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
  width: 18px;
  height: 18px;
  border: 2px solid #4a4e57;
  background-color: #ffffff;
}
.o-checkbox__label > span {
  flex: 1;
}
.o-checkbox__label:hover::before {
  background: #edeff1;
}

.o-checkbox__input {
  opacity: 0;
  position: absolute;
  z-index: -1;
}
.o-checkbox__input:focus + .o-radio__label::before {
  outline: 2px solid #3244ff;
  outline-offset: 2px;
}
.has-suppressed-highlight .o-checkbox__input:focus + .o-radio__label::before {
  outline: none;
  outline-offset: 0;
  box-shadow: 0 0 4px 0 #3244ff;
}

.o-checkbox__input:checked + .o-checkbox__label::before {
  background-color: #3244ff;
  border-radius: 3px;
  transform: rotate(0deg) scale(1);
  opacity: 1;
  border: 2px solid #3244ff;
}
.o-checkbox__input:checked + .o-checkbox__label::after {
  content: "";
  transform: rotate(45deg) scale(1);
  position: absolute;
  left: 6px;
  top: 6px;
  opacity: 1;
  width: 6px;
  height: 12px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  background-color: transparent;
  border-radius: 0;
}

.o-checkbox--inline {
  display: inline-flex;
  margin-right: 8px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.o-form-msg {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
}

.o-form-msg--help {
  color: #4a4e57;
  text-align: left;
}
.o-form-msg--help a {
  color: #4a4e57;
  text-decoration: underline;
}

.o-form-msg--error {
  position: relative;
  padding-left: 24px;
  color: #d9121f;
}
.o-form-msg--error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.access-restriction {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
}

.access-restriction__teaser {
  height: 150px;
  overflow-y: hidden;
  margin-bottom: 24px;
}

.access-restriction__panel {
  position: relative;
}
.access-restriction__panel > * {
  margin-bottom: 24px;
}
.access-restriction__panel :last-child {
  margin-bottom: 0;
}
.access-restriction__panel::before {
  position: absolute;
  content: "";
  background: linear-gradient(to bottom, transparent 0%, transparent 25px, #ffffff 150px, #ffffff 100%);
  bottom: 100%;
  left: 0;
  height: 150px;
  width: 100%;
}

.access-restriction__panel-title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}
@media (min-width: 768px) {
  .access-restriction__panel-title {
    font-size: 40px;
    line-height: 48px;
  }
}

.access-restriction__register-button {
  display: flex;
}

@media (max-width: 768px) {
  .access-restriction__register-button {
    flex-direction: column;
  }
}
.access-restriction--over {
  margin-top: -150px;
}
.access-restriction--over .access-restriction__panel {
  background-color: #ffffff;
}

.w-advert {
  width: 100%;
  padding: 24px 16px;
  overflow: hidden;
  display: flex;
  justify-content: center;
}

.advert.advert--placeholder {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgb(216, 216, 216);
  height: 250px;
  width: 300px;
}
@media (min-width: 768px) {
  .advert.advert--placeholder {
    height: 90px;
    width: 728px;
  }
}

.alert {
  --alert-bg-colour: #f7f7f7;
  --alert-text-colour: #4a4e57;
  --alert-border-colour: #edeff1;
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  position: relative;
  display: flex;
  gap: 16px;
  padding: 8px 16px;
  color: var(--alert-text-colour);
  background-color: var(--alert-bg-colour);
  border: 2px solid var(--alert-border-colour);
  border-radius: 4px;
}
.alert a {
  text-decoration: underline;
}

.alert--success {
  --alert-bg-colour: #dff0d8;
  --alert-border-colour: #228e46;
}

.alert--error {
  --alert-bg-colour: #f8d7da;
  --alert-border-colour: #d9121f;
}

.alert--warning {
  --alert-bg-colour: #fff6ef;
  --alert-border-colour: #fea861;
}

.alert--info {
  --alert-bg-colour: #d1ecf1;
  --alert-border-colour: #3244ff;
}

.alert__close {
  position: absolute;
  right: 0;
  top: 0;
  height: 40px;
  width: 40px;
  color: var(--alert-icon-colour);
  content: "";
}
.alert__close::before {
  content: "close";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.alert__icon {
  font-size: 20px;
  color: var(--alert-border-colour);
}

.avatar {
  display: flex;
  align-items: center;
}
.avatar:hover .avatar__username {
  color: #d9121f;
}

.avatar__image {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-block;
}
.avatar__image > svg {
  width: 38px;
  height: 38px;
  fill: #4a4e57;
}

.avatar__username {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  margin-left: 16px;
  color: #3244ff;
}

.avatar--large-username .avatar__username {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.avatar--large-image .avatar__image {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-block;
}
.avatar--large-image .avatar__image > svg {
  width: 48px;
  height: 48px;
  fill: #4a4e57;
}
@media (min-width: 768px) {
  .avatar--large-image .avatar__image {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: inline-block;
  }
  .avatar--large-image .avatar__image > svg {
    width: 68px;
    height: 68px;
    fill: #4a4e57;
  }
}

.s-breadcrumbs {
  display: none;
}
@media (min-width: 768px) {
  .s-breadcrumbs {
    display: block;
    width: 100%;
    padding: 8px 16px;
    background-color: var(--theme-alt-bg-colour);
  }
}
@media (min-width: 768px) {
  .ff-brand-2022 .s-breadcrumbs {
    background: #ef0000;
  }
}

.breadcrumbs {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 4px;
  padding-right: 4px;
}

.breadcrumbs__item {
  display: inline;
  color: rgba(29, 29, 27, 0.9);
}
.breadcrumbs__item:hover {
  color: #4a4e57;
}
.breadcrumbs__item:last-child {
  font-weight: 700;
  pointer-events: none;
}
.breadcrumbs__item:not(:last-child)::after {
  padding: 0 8px;
  color: rgba(29, 29, 27, 0.65);
  content: ">";
}
.ff-brand-2022 .breadcrumbs__item {
  color: #ffffff;
}
.ff-brand-2022 .breadcrumbs__item a:hover {
  color: #ffffff;
  text-decoration: underline;
}
.ff-brand-2022 .breadcrumbs__item:not(:last-child)::after {
  padding: 0 8px;
  color: #ffffff;
  content: ">";
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.card__badges, .product-card__badges {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  padding: 8px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.card--product .card__image-container, .card--product .product-card__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 66.66%;
}

.card__image, .product-card__image {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  width: 100%;
}

.card--product .card__image, .card--product .product-card__image {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.card__label, .product-card__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  padding: 16px 24px 24px;
  flex-grow: 1;
  color: #4a4e57;
  text-align: left;
}

.card--has-meta-data .card__label, .card--has-meta-data .product-card__label {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
}

.ff-new-cards .card__label, .ff-new-cards .product-card__label {
  padding: 16px;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.product-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  position: relative;
}
.ff-new-cards .product-card {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .product-card .card__image {
  border-radius: 0;
}
.product-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.ff-new-cards .product-card:hover {
  box-shadow: none;
}

.product-card__button {
  width: 100%;
  height: 100%;
}

.product-card__button-body {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.product-card__overlay {
  display: none;
}
.is-overlay-visible .product-card__overlay {
  display: flex;
  border-radius: 4px;
  position: absolute;
  pointer-events: none;
  flex-direction: column;
  justify-content: center;
  padding: 24px;
  width: 100%;
  height: 100%;
  top: 0;
  background-color: rgba(74, 78, 87, 0.8);
  z-index: 10;
}

.product-card__overlay-button {
  margin-bottom: 24px;
  position: relative;
  pointer-events: auto;
  display: inline-block;
}
.product-card__overlay-button:last-child {
  margin-bottom: 0;
}
.product-card__overlay-button::after {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
}

.product-card__overlay-button--basket {
  transition: all 0.2s ease-in-out;
}
.product-card__overlay-button--basket::after {
  content: "shopping_basket";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #d9121f;
}
.product-card__overlay-button--basket.is-added {
  background-color: #d9121f;
}
.product-card__overlay-button--basket.is-added::after {
  color: #ffffff;
}

.product-card__overlay-button--info::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.is-added .product-card__basket-add-text {
  display: none;
}

.product-card__basket-add-text--added {
  display: none;
}
.is-added .product-card__basket-add-text--added {
  display: block;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.product-card__badges, .card__badges {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  padding: 8px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.card--product .product-card__image-container, .card--product .card__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 66.66%;
}

.product-card__image, .card__image {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  width: 100%;
}

.card--product .product-card__image, .card--product .card__image {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.product-card__label, .card__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  padding: 16px 24px 24px;
  flex-grow: 1;
  color: #4a4e57;
  text-align: left;
}

.card--has-meta-data .product-card__label, .card--has-meta-data .card__label {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
}

.ff-new-cards .product-card__label, .ff-new-cards .card__label {
  padding: 16px;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  position: relative;
}
.ff-new-cards .card {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .card .card__image {
  border-radius: 0;
}
.card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.ff-new-cards .card:hover {
  box-shadow: none;
}

.w-card__quote {
  position: relative;
  display: flex;
  justify-content: space-around;
  flex-direction: column;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  padding: 40px;
  flex-grow: 1;
  background-color: #4a4e57;
}

.card__quote {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #ffffff;
}

.card__quote-open {
  position: absolute;
  z-index: 1;
  top: 16px;
  left: 24px;
}

.card__quote-close {
  position: absolute;
  z-index: 1;
  right: 24px;
  bottom: 16px;
}

.card--quote .card__label {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 24px;
  min-height: 56px;
  flex-grow: 0;
}

.card--muted-hover:hover {
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
}

.card--full-height {
  height: 100%;
}

.ff-new-cards .card__image {
  border-radius: 0;
}
.ff-new-cards .card__label {
  padding: 16px;
}
.ff-new-cards .w-card__quote {
  border-radius: 0;
}
.ff-new-cards .card--icon {
  position: relative;
}
.ff-new-cards .card--icon::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  border-top: 88px solid #69141e;
  border-right: 100px solid transparent;
  transition: 0.2s;
  z-index: 1;
}
.ff-new-cards .card--icon::after {
  position: absolute;
  top: 16px;
  left: 16px;
  width: 27px;
  height: 27px;
  z-index: 2;
}
.ff-new-cards .card--icon:hover::before {
  border-top-color: #32000f;
}
.ff-new-cards .card--icon--dse::after {
  content: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzggNzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik0zOS4wMi40OUMxNy44MS40OS42IDE3LjY5LjYgMzguOTFjMCAyMS4yMiAxNy4yMSAzOC40MiAzOC40MiAzOC40MnMzOC40Mi0xNy4yMSAzOC40Mi0zOC40MlM2MC4yNC40OSAzOS4wMi40OVptMCA3MC41MmMtMTcuNzMgMC0zMi4xLTE0LjM3LTMyLjEtMzIuMSAwLTE3LjczIDE0LjM4LTMyLjEgMzIuMS0zMi4xczMyLjEgMTQuMzcgMzIuMSAzMi4xYzAgMTcuNzMtMTQuMzcgMzIuMS0zMi4xIDMyLjFaIiBmaWxsPSIjZmZmIi8+CiAgICA8cGF0aCBkPSJNNTAuNjcgNTMuNDJjLTcuODEgMC0xMi41My00LjU2LTE0LjQ2LTEzLjk0LTEuOTEtOS4zNC03LjExLTkuMzQtOC44My05LjM0LTQuODQgMC04Ljc2IDMuOTMtOC43NiA4Ljc2YTIuODcgMi44NyAwIDAgMS0yLjg3IDIuODdjLTEuNTggMC0yLjg3LTEuMjktMi44Ny0yLjg3IDAtOC4wMSA2LjUxLTE0LjUyIDE0LjUyLTE0LjUyIDQuMzMgMCAxMS45OCAxLjgxIDE0LjQ2IDEzLjk0IDEuNjggOC4yMSA1LjIzIDkuMzQgOC44MyA5LjM0IDQuODQgMCA4Ljc2LTMuOTMgOC43Ni04Ljc2YTIuODcgMi44NyAwIDAgMSAyLjg3LTIuODdjMS41OCAwIDIuODcgMS4yOSAyLjg3IDIuODcgMCA4LjAxLTYuNTEgMTQuNTItMTQuNTIgMTQuNTJaIiBmaWxsPSIjRUYwMDAwIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGNsaXBQYXRoIGlkPSJhIj4KICAgICAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg3OHY3OEgweiIvPgogICAgPC9jbGlwUGF0aD4KICA8L2RlZnM+Cjwvc3ZnPgo=);
}
.ff-new-cards .card--icon--dsm::after {
  content: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzAgNzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik0zNS4wMiA3NC41NFYzNi41MUw2Ny4wNSAxOS45djM4LjAyTDM1LjAyIDc0LjU0WiIgZmlsbD0iI0VGMDAwMCIvPgogICAgPHBhdGggZD0iTTY5LjY0IDE4LjE3IDM1LjE0LjI3bC0uMTItLjA2LS4xMi4wNkwuNDIgMTguMTdsLS4xMy4wN3Y0MS4zM2wuMTMuMDcgMzQuNDkgMTcuOS4xMi4wNi4xMi0uMDYgMzQuNS0xNy45LjEzLS4wN1YxOC4yNGwtLjEzLS4wN2gtLjAxWm0tNS4zMSAzLjM4djM0LjcybC0yOS4zMSAxNS4yLTI5LjMtMTUuMlYyMS41NWwyOS4zLTE1LjIxIDI5LjMxIDE1LjIxWiIgZmlsbD0iI2ZmZiIvPgogICAgPHBhdGggZD0iTTM1LjAyIDc1LjUzYy0uNTUgMC0uOTktLjQ0LS45OS0uOTlWMzYuNTFjMC0uMzcuMjEtLjcxLjU0LS44OEw2Ni42IDE5LjAxYTEgMSAwIDAgMSAxLjM0LjQyYy4yNS40OS4wNiAxLjA4LS40MiAxLjM0TDM2LjAzIDM3LjExdjM3LjQyYzAgLjU1LS40NC45OS0uOTkuOTloLS4wMnYuMDFaIiBmaWxsPSIjRjVGNUY1Ii8+CiAgICA8cGF0aCBkPSJNMzUuMDIgMzcuNWMtLjE1IDAtLjMxLS4wNC0uNDYtLjExTDIuNTQgMjAuNzdhLjk4Mi45ODIgMCAwIDEtLjQyLTEuMzRjLjI1LS40OS44NS0uNjggMS4zNC0uNDJsMzIuMDIgMTYuNjJjLjQ5LjI1LjY4Ljg1LjQyIDEuMzQtLjE4LjM0LS41Mi41NC0uODguNTR2LS4wMVoiIGZpbGw9IiNGNUY1RjUiLz4KICA8L2c+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImEiPgogICAgICA8cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDcwdjc4SDB6Ii8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+Cg==);
  width: 24px;
  height: 27px;
}
.ff-new-cards .card--icon--dspcb::after {
  content: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjIgNzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj4KICAgIDxwYXRoIGQ9Ik01Mi45IDY3LjM1YzAgNC4xNC0zLjM2IDcuNS03LjUgNy41LTQuMTQgMC03LjUtMy4zNi03LjUtNy41IDAtNC4xNCAzLjM2LTcuNSA3LjUtNy41IDQuMTQgMCA3LjUgMy4zNiA3LjUgNy41WiIgZmlsbD0iI0VGMDAwMCIvPgogICAgPHBhdGggZD0iTTE2LjA1LjQydjEyLjg3SC0uMDF2MzkuNzRoMTYuMDZ2NC42M2MtNC4zNCAxLjIxLTcuMzYgNS4xOC03LjM2IDkuNjggMCA1LjU0IDQuNTEgMTAuMDUgMTAuMDYgMTAuMDUgNS41NSAwIDEwLjA1LTQuNTEgMTAuMDUtMTAuMDUgMC00LjUtMy4wMi04LjQ2LTcuMzYtOS42OFY0Ny42M0g1LjM4VjE4LjY4aDEyLjJ2MjMuMDNoMjYuODlWMTQuODJIMjEuNDRWNS44aDM1LjIzdjQxLjgySDQyLjd2MTAuMDNjLTQuMzQgMS4yMS03LjM2IDUuMTgtNy4zNiA5LjY4IDAgNS41NCA0LjUxIDEwLjA1IDEwLjA2IDEwLjA1IDUuNTUgMCAxMC4wNi00LjUxIDEwLjA2LTEwLjA1IDAtNC41LTMuMDItOC40Ni03LjM2LTkuNjh2LTQuNjNoMTMuNzlsLjE5LjIxVi40MkgxNi4wNVptNy42NCA2Ni45MmMwIDIuNzMtMi4yMiA0Ljk1LTQuOTYgNC45NS0yLjc0IDAtNC45Ni0yLjIyLTQuOTYtNC45NXMyLjIyLTQuOTUgNC45Ni00Ljk1YzIuNzQgMCA0Ljk2IDIuMjIgNC45NiA0Ljk1Wm0tMy44LTI3LjkzVjE3LjE1aDIyLjI2djIyLjI2SDE5Ljg5Wk00NS40IDcyLjI5Yy0yLjczIDAtNC45NC0yLjIyLTQuOTQtNC45NXMyLjIyLTQuOTYgNC45NC00Ljk2IDQuOTUgMi4yMiA0Ljk1IDQuOTZjMCAyLjc0LTIuMjIgNC45NS00Ljk1IDQuOTVaIiBmaWxsPSIjZmZmIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGNsaXBQYXRoIGlkPSJhIj4KICAgICAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg2MnY3OEgweiIvPgogICAgPC9jbGlwUGF0aD4KICA8L2RlZnM+Cjwvc3ZnPgo=);
  width: 24px;
  height: 30px;
}
.ff-new-cards .card--icon--software::after {
  content: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTIwIDc4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik01Ny42OSAyNC45Mmg3LjA2YzcuMjcgMCA5LjM3IDIuNjIgOS4zNyA4LjgydjEwLjEzYzAgNi4yNy0yLjEgOC45Ni05LjMgOC45NmgtNy4xM1YyNC45MlptNy4xMyAyMy42MmMyLjc5IDAgMi45Ni0xLjIxIDIuOTYtMy43MlYzMi42NmMwLTIuNDUtLjI4LTMuNDQtMy0zLjQ0aC0uOTN2MTkuMzJoLjk3Wm0xMS4wNi00LjE3IDUuMjctLjc5Yy4wNyAzLjYyLjkgNC45NiAyLjQ1IDQuOTYgMS4yNyAwIDEuNTUtMS4wNyAxLjU1LTIuMDMgMC0yLjMxLTEuMTctMy42OS0zLjA3LTUuM2wtMi40MS0yLjFjLTIuMTQtMS43OS0zLjc1LTMuODktMy43NS03LjI3IDAtNC43MiAzLTcuMyA3LjgyLTcuMyA1Ljk2IDAgNi44MiA0LjY1IDYuOTIgNy45MmwtNS4zLjY1Yy0uMDctMi40OC0uMjQtNC4wNi0xLjgzLTQuMDYtMS4xNCAwLTEuNjUgMS4yMS0xLjY1IDIuMTcgMCAyLjA3IDEuMDcgMy4xNyAyLjY5IDQuNThsMi4zMSAyLjAzYzIuNDEgMi4wNyA0LjM0IDQuNTEgNC4zNCA4LjM3IDAgMy44Ni0yLjg2IDcuMDMtNy4zIDcuMDMtNS4yNyAwLTcuODItMi42NS04LjAzLTguODVsLS4wMS0uMDFaIiBmaWxsPSIjZmZmIi8+CiAgPHBhdGggZD0iTTUxLjI4IDEzLjMzSC4xM3Y1MS4xNWg1MS4xNVYxMy4zM1oiIGZpbGw9IiNFRjAwMDAiLz4KICA8cGF0aCBkPSJNNDMuNzYgMzcuNjljLTEuMi0xLjItMi42OC0xLjcyLTQuODktMS43MmgtNC43NWMtLjg3IDAtMS4zNC0uNDYtMS4zMy0xLjMzdi0yLjU3YzAtLjg4LjQ2LTEuMzMgMS4zMy0xLjMzaDEwLjc1di01LjgxSDMzLjUyYy00LjItLjA0LTYuNjMgMi4zNS02LjU3IDYuNTd2My43OGMwIDIuMTQuNDcgMy40OSAxLjYzIDQuNjUgMS4xNSAxLjE1IDIuNTUgMS42NSA0LjY3IDEuNjVoNC45OWMuODcgMCAxLjM0LjQ2IDEuMzMgMS4zM3YyLjc5YzAgLjQ0LS4xMS43Ni0uMzQuOTktLjIzLjIzLS41NC4zNC0uOTkuMzRIMjMuMTVsLTMuMDctNS4wNWMzLjQ2LS4wNCA1LjUzLTIuMDYgNS40Ni01LjYxdi00Ljg2YzAtMi4yNC0uNDktMy42NC0xLjctNC44NS0xLjIxLTEuMjEtMi42NS0xLjczLTQuODctMS43M0g2LjF2MjcuOUgxMlYzMC43NWg2LjM4Yy40NCAwIC43Ni4xMS45OS4zNC4yNC4yNC4zNC41NC4zNC45OXYzLjU2YzAgLjg4LS40NiAxLjMzLTEuMzMgMS4zMy0xLjgzLjA0LTMuNjMtLjM0LTQuNzEgMS4zOC0uOCAxLjI1LS41MSAzLjA0LjI2IDQuMjguODMgMS40NyA1LjMyIDkuNDYgNS4zMiA5LjQ2LjI3LjQ3Ljc3Ljc1IDEuMzcuNzVoMTguMjZjNC4yMS4wNiA2LjYxLTIuMzcgNi41Ny02LjU3di0zLjcxYzAtMi4yNC0uNDktMy42NC0xLjctNC44NXYtLjAyaC4wMVoiIGZpbGw9IiNmZmYiLz4KICA8cGF0aCBkPSJNMTE5LjkxIDM2LjYyaC0uMDIuMDItLjA0bC0xOS4zNy0xLjUxIDcuNTctNS41NC05LjQ0IDMuMSA0LjQ5LTkuODQtMTMuNjUgMTMuNzkgMTMuNjUgMTMuNzgtNC40OS05Ljg0IDkuNDQgMy4xLTcuNTctNS41MyAxOS4zNy0xLjUxaC4wNFoiIGZpbGw9IiNFRjAwMDAiLz4KPC9zdmc+Cg==);
  width: 44px;
  height: 18px;
  top: 12px;
}
.ff-new-cards .card--icon--technologies::after {
  content: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgODAgNzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTIyLjgzIDE2LjZjLTkuMDYgMC0xNi40MyA3LjM3LTE2LjQzIDE2LjQzIDAgOS4wNiA3LjM3IDE2LjQzIDE2LjQzIDE2LjQzIDkuMDYgMCAxNi40My03LjM3IDE2LjQzLTE2LjQzIDAtOS4wNi03LjM3LTE2LjQzLTE2LjQzLTE2LjQzWm0wIDI2Ljg1Yy01Ljc1IDAtMTAuNDMtNC42OC0xMC40My0xMC40M3M0LjY4LTEwLjQzIDEwLjQzLTEwLjQzIDEwLjQzIDQuNjggMTAuNDMgMTAuNDMtNC42OCAxMC40My0xMC40MyAxMC40M1pNNTcuMjIgNC41MWMtOS4wNiAwLTE2LjQzIDcuMzctMTYuNDMgMTYuNDMgMCA5LjA2IDcuMzcgMTYuNDMgMTYuNDMgMTYuNDMgOS4wNiAwIDE2LjQzLTcuMzcgMTYuNDMtMTYuNDMgMC05LjA2LTcuMzctMTYuNDMtMTYuNDMtMTYuNDNabTAgMjYuODVjLTUuNzUgMC0xMC40My00LjY4LTEwLjQzLTEwLjQzUzUxLjQ3IDEwLjUgNTcuMjIgMTAuNXMxMC40MyA0LjY4IDEwLjQzIDEwLjQzLTQuNjggMTAuNDMtMTAuNDMgMTAuNDNaTTY1LjI5IDQzLjFINDkuMTZjLTYuNzUgMC0xMi41OCA1LjA0LTEzLjU4IDExLjczbC0uMTYgMS4xLTEuMDgtLjI4Yy0xLjE1LS4zLTIuMzEtLjQ2LTMuNDUtLjQ2SDE0Ljc3Yy03LjU4IDAtMTMuNzUgNi4xNy0xMy43NSAxMy43NXY0LjM3aDZ2LTQuMzdjMC00LjI3IDMuNDgtNy43NSA3Ljc1LTcuNzVoMTYuMTJjNC4yNyAwIDcuNzUgMy40OCA3Ljc1IDcuNzV2NC4zN2g2di00LjM3YzAtMy4xNC0xLjA0LTYuMDktMy04LjU2bC0uMjItLjI3di0zLjI2YzAtNC4yNyAzLjQ4LTcuNzUgNy43NS03Ljc1aDE2LjEyYzQuMjcgMCA3Ljc1IDMuNDggNy43NSA3Ljc1djE2LjQ2aDZWNTYuODVjMC03LjU4LTYuMTctMTMuNzUtMTMuNzUtMTMuNzVaIiBmaWxsPSIjZmZmIi8+Cjwvc3ZnPgo=);
  width: 28px;
  height: 22px;
}
.ff-new-cards .card--tutorial,
.ff-new-cards .card--technologyhub {
  background-color: #69141e;
  border: 0;
  color: #ffffff;
}
.ff-new-cards .card--tutorial:hover,
.ff-new-cards .card--technologyhub:hover {
  background-color: #32000f;
}
.ff-new-cards .card--tutorial .card__label,
.ff-new-cards .card--technologyhub .card__label {
  color: #ffffff;
}
.ff-new-cards .card--tutorial .card__image-container,
.ff-new-cards .card--technologyhub .card__image-container {
  padding: 16px 16px 0;
}
.ff-new-cards .card--quote .card__label {
  padding-bottom: 0;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.card-meta {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  display: flex;
  justify-content: space-between;
  color: #4a4e57;
  font-family: var(--body-font);
  padding: 8px 24px;
  border-top: 1px solid #bcbcbc;
}

.card-meta__stats {
  display: flex;
  justify-content: space-between;
}
.card-meta__stats > span {
  padding-right: 8px;
}
.card-meta__stats > span::before {
  font-size: 12px;
  padding-right: 4px;
  vertical-align: middle;
  speak: none;
}

.card-meta__views::before {
  content: "remove_red_eye";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.card-meta__comments::before {
  content: "mode_comment";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.card-meta__likes::before {
  content: "thumb_up";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.ff-new-cards .card-meta {
  padding: 8px 16px;
}
.ff-new-cards .card--tutorial .card-meta,
.ff-new-cards .card--technologyhub .card-meta {
  color: #ffffff;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.tech-card {
  display: inline-flex;
  flex-direction: row;
  padding: 8px;
  align-items: center;
}
@media (min-width: 992px) {
  .tech-card {
    flex-direction: column;
    padding: 0;
    align-items: flex-start;
  }
}

.is-retracted .tech-card--transient {
  display: none;
}

.tech-card__image {
  height: 40px;
  width: 40px;
  margin-right: 8px;
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .tech-card__image {
    height: auto;
    width: 100%;
    margin-right: 0;
  }
}

.tech-card__label {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
}
@media (min-width: 992px) {
  .tech-card__label {
    font-family: var(--body-font);
    font-size: 18px;
    line-height: 28px;
    font-weight: 700;
    max-width: 100%;
    padding: 16px 24px 24px;
  }
  .ff-new-cards .tech-card__label {
    padding: 16px 16px 24px;
  }
}

@media (max-width: 991px) {
  .ff-new-cards .tech-card.card--icon {
    position: relative;
    padding-right: 64px;
  }
  .ff-new-cards .tech-card.card--icon::before {
    display: none;
  }
  .ff-new-cards .tech-card.card--icon::after {
    left: auto;
    right: 16px;
  }
}
.ff-new-cards .tech-card.card--tutorial .tech-card__label, .ff-new-cards .tech-card.card--technologyhub .tech-card__label {
  color: #ffffff;
}
@media (min-width: 992px) {
  .ff-new-cards .tech-card.card--tutorial .tech-card__image, .ff-new-cards .tech-card.card--technologyhub .tech-card__image {
    padding: 16px 16px 0;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.info-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  justify-content: space-between;
}
.ff-new-cards .info-card {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .info-card .card__image {
  border-radius: 0;
}
.info-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.ff-new-cards .info-card:hover {
  box-shadow: none;
}

.info-card__body {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  padding: 24px;
}
.ff-new-cards .info-card__body {
  padding: 16px;
}
.info-card__body h3 {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}
.info-card__body ul {
  flex-direction: column;
}
@media (min-width: 480px) {
  .info-card--jumbo .info-card__body ul {
    -moz-column-count: 2;
         column-count: 2;
  }
}
.info-card__body li {
  padding-left: 24px;
  position: relative;
  margin-bottom: 8px;
}
.info-card__body li::before {
  content: "check";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  position: absolute;
  line-height: 20px;
  left: 0;
  color: #d9121f;
}

.info-card__embedded-video {
  margin-bottom: 24px;
}

.info-card__footer {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  font-weight: 700;
  color: #1d1d1b;
  border-top: 1px solid #edeff1;
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.info-card__footer::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.info-card__footer:hover {
  color: #d9121f;
}
.ff-new-cards .info-card__footer {
  padding: 8px 16px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.package-card {
  --subscription-primary-colour: #cdcdcd;
  position: relative;
  display: inline-flex;
  flex-direction: column;
  padding: 16px;
  gap: 16px;
  color: #ffffff;
  z-index: 0;
  background: #69141e url(/7d751ad7/10.1.0/images/css/waffles-top-left.65251ba6..png) left top no-repeat;
}
@media (min-width: 992px) {
  .package-card {
    padding: 24px;
  }
  .ff-new-cards .package-card {
    padding: 16px;
  }
}
.package-card.t-explorer {
  --subscription-primary-colour: #00cdbe;
  background-image: url(/7d751ad7/10.1.0/images/css/waffles-top-left.65251ba6..png), url(/7d751ad7/10.1.0/images/css/waffles-explorer.c5c98291..png);
  background-position: left top, right bottom;
  background-repeat: no-repeat, no-repeat;
}
.package-card.t-creator {
  --subscription-primary-colour: #c8a0ff;
  background-image: url(/7d751ad7/10.1.0/images/css/waffles-top-left.65251ba6..png), url(/7d751ad7/10.1.0/images/css/waffles-creator.1db9edd3..png);
  background-position: left top, right bottom;
  background-repeat: no-repeat, no-repeat;
}
.package-card.t-engineer {
  --subscription-primary-colour: #ffcd00;
  background-image: url(/7d751ad7/10.1.0/images/css/waffles-top-left.65251ba6..png), url(/7d751ad7/10.1.0/images/css/waffles-engineer.50f03ec1..png);
  background-position: left top, right bottom;
  background-repeat: no-repeat, no-repeat;
}

.package-card__title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .package-card__title {
    font-size: 48px;
    line-height: 56px;
  }
}

.package-card__price {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .package-card__price {
    font-size: 32px;
    line-height: 40px;
  }
}

.package-card__price--original {
  text-decoration: line-through;
}

.package-card__billing-frequency {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.package-card__tax-status {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
}

.package-card--with-features .package-card__description {
  display: none;
}
@media (min-width: 992px) {
  .package-card--with-features .package-card__description {
    display: block;
  }
}

.package-card__features {
  display: none;
}
.package-card--with-features .package-card__features {
  display: block;
}
@media (min-width: 992px) {
  .package-card--with-features .package-card__features {
    display: none;
  }
}

.package-card__features__title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
}

.package-card__button {
  margin-top: auto;
  border: 2px solid var(--subscription-primary-colour);
}
@media (max-width: 991px) {
  .package-card--with-features .package-card__button {
    margin-top: 0;
    border: 0;
  }
}

.package-card__features__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.package-card__features__list-item {
  position: relative;
  padding-left: 32px;
}
.package-card__features__list-item::before {
  position: absolute;
  top: 4px;
  left: 4px;
  content: "";
  z-index: -1;
  display: block;
  height: 16px;
  width: 16px;
  background-color: #1f1f1f;
  border-radius: 50%;
}
.package-card__features__list-item::after {
  content: "check_circle";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 24px;
  color: var(--subscription-primary-colour);
}

.package-card__features__list-items--expanded:not(.is-visible) {
  display: none;
}

.package-card__features-button {
  color: #3244ff;
  font-weight: bold;
  width: 100%;
}
.package-card__features-button:focus, .package-card__features-button:hover {
  color: #3244ff;
}

.package-card__features-button--see-more:not(.is-visible) {
  display: none;
}

.package-card__features-button--see-fewer:not(.is-visible) {
  display: none;
}

@media (max-width: 991px) {
  .package-card--with-features {
    background: none !important;
    color: #1f1f1f;
    border: 2px solid var(--subscription-primary-colour);
  }
  .package-card--with-features::after, .package-card--with-features::before {
    display: none;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.post-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
}
.ff-new-cards .post-card {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .post-card .card__image {
  border-radius: 0;
}
.post-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.ff-new-cards .post-card:hover {
  box-shadow: none;
}
@media (min-width: 768px) {
  .post-card {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
  }
}

.post-card__metadata {
  font-family: var(--header-font);
  font-weight: 700;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .post-card__metadata {
    margin-left: auto;
  }
}

.post-card__metadata-set {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}
@media (min-width: 768px) {
  .post-card__metadata-set {
    justify-content: flex-start;
  }
}

.post-card__metadata-label {
  margin-left: 8px;
}

.post-card__metadata-value {
  color: #d9121f;
}

.post-card__body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .post-card__body {
    flex-basis: 70%;
  }
}

.post-card__body-title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #1d1d1b;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .post-card__body-title {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 8px;
  }
}

.post-card__body-subtext {
  display: none;
}
@media (min-width: 768px) {
  .post-card__body-subtext {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 24px;
    display: flex;
    flex-direction: row;
  }
}

.post-card__author {
  display: flex;
  flex-direction: row;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .post-card__author {
    margin-bottom: 0;
  }
}

.post-card__author-image {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 24px;
}
.post-card__author-image > svg {
  width: 50px;
  height: 50px;
  fill: #4a4e57;
}
@media (min-width: 768px) {
  .post-card__author-image {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: inline-block;
  }
  .post-card__author-image > svg {
    width: 68px;
    height: 68px;
    fill: #4a4e57;
  }
}

.post-card__author-body {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .post-card__author-body {
    display: none;
  }
}

.post-card__author-username {
  font-weight: 700;
}
@media (min-width: 768px) {
  .post-card__author-username {
    margin-right: 16px;
  }
}

.post-card__author-subtext {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.related-article-card {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  padding: 24px;
  display: flex;
  flex-direction: column;
  border-radius: 10px;
  background-color: #ffffff;
}
.ff-new-cards .related-article-card {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .related-article-card .card__image {
  border-radius: 0;
}
.related-article-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.ff-new-cards .related-article-card:hover {
  box-shadow: none;
}
.ff-new-cards .related-article-card {
  padding: 16px;
}

.related-article-card__title {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: 700;
  margin-bottom: 24px;
}

.related-article-card__details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}

.related-article-card__type {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #d9121f;
}

.related-article-card__author {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  text-align: right;
}

.related-article-card__tags {
  margin-top: auto;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.search-result {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  border: 1px solid rgba(29, 29, 27, 0.17);
  transition: 0.2s;
  position: relative;
  align-items: flex-start;
  padding: 24px;
}
.ff-new-cards .search-result {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .search-result .card__image {
  border-radius: 0;
}
.search-result:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
.ff-new-cards .search-result:hover {
  box-shadow: none;
}
@media (min-width: 992px) {
  .search-result {
    flex-direction: row;
  }
}

.search-result__image-container {
  margin-bottom: 8px;
  width: 100%;
  position: relative;
  text-align: center;
}
@media (min-width: 768px) {
  .search-result__image-container {
    width: 140px;
    margin-bottom: 0;
    margin-right: 24px;
  }
}
.search-result__image-container .search-result--product, .search-result--part .search-result__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 50%;
}
@media (min-width: 992px) {
  .search-result__image-container .search-result--product, .search-result--part .search-result__image-container {
    height: 103px;
    width: 140px;
    padding-top: 0;
  }
}

.search-result__image .search-result--product, .search-result--part .search-result__image {
  -o-object-fit: contain;
     object-fit: contain;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.search-result__body {
  display: flex;
  flex: 1;
  justify-content: space-between;
  flex-direction: column-reverse;
  width: 100%;
}
@media (min-width: 768px) {
  .search-result__body {
    flex-direction: row;
  }
}

.search-result--part {
  align-items: flex-start;
}
.search-result--part .search-result__body--part {
  display: flex;
  flex: 1;
  justify-content: space-between;
  flex-direction: column;
  width: 100%;
}
@media (min-width: 992px) {
  .search-result--part .search-result__body--part {
    flex-direction: row;
  }
}

.search-result__badges {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
}
@media (min-width: 768px) {
  .search-result__badges {
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
  }
}

.ff-new-cards .search-result {
  box-shadow: none;
  padding: 16px;
}
.ff-new-cards .search-result--forum,
.ff-new-cards .search-result--tutorial,
.ff-new-cards .search-result--forumpost,
.ff-new-cards .search-result--technologyhub {
  background-color: #69141e;
  color: #ffffff;
}
.ff-new-cards .search-result--forum .search-result-metadata__headline,
.ff-new-cards .search-result--tutorial .search-result-metadata__headline,
.ff-new-cards .search-result--forumpost .search-result-metadata__headline,
.ff-new-cards .search-result--technologyhub .search-result-metadata__headline {
  color: #ffffff;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.search-result-metadata {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  justify-content: center;
}

.search-result-metadata__headline {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #1d1d1b;
}

.search-result-metadata__image {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 8px;
  vertical-align: middle;
}
.search-result-metadata__image > svg {
  width: 28px;
  height: 28px;
  fill: #4a4e57;
}

.search-result-metadata__large {
  display: none;
}
@media (min-width: 768px) {
  .search-result-metadata__large {
    display: block;
    margin-bottom: 8px;
  }
}

.search-result-metadata__item {
  margin-right: 24px;
}

.search-result-metadata__small {
  display: flex;
  align-items: flex-start;
  margin-top: 8px;
}
@media (min-width: 768px) {
  .search-result-metadata__small {
    display: none;
  }
}

.search-result-metadata__owner {
  font-weight: 700;
}

.search-result-metadata__subtitle {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
}

.search-result-metadata__status {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

@media (min-width: 992px) {
  .search-result-metadata__notices {
    flex: 0 0 175px;
  }
}

.search-result-metadata__notices {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) and (max-width: 991px) {
  .search-result-metadata__notices {
    flex-direction: row;
  }
}

.search-result-metadata__notice {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  padding-top: 8px;
}
@media (min-width: 768px) {
  .search-result-metadata__notice {
    margin-left: 16px;
  }
}

.search-result-metadata__notice:first-child {
  margin-left: 0;
}
@media (min-width: 992px) {
  .search-result-metadata__notice:first-child {
    margin-left: 16px;
  }
}

.search-result-metadata__content_parent {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .search-result-metadata__content_parent {
    display: none;
  }
  .search-result-metadata__large .search-result-metadata__content_parent {
    display: inline-block;
  }
}

.search-result-metadata__price {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.search-placeholder-image {
  position: relative;
  width: 100%;
}
.search-placeholder-image::before {
  content: "";
  padding-top: 39%;
  height: 0;
  display: block;
}
@media (min-width: 768px) {
  .search-placeholder-image::before {
    padding-top: 71%;
  }
}
.search-placeholder-image::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  speak: none;
  color: #ffffff;
}

.search-placeholder-image--question {
  background-color: #0098bf;
}
.search-placeholder-image--question::after {
  content: "help";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 56px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.search-placeholder-image--support {
  background-color: #d1aadc;
}
.search-placeholder-image--support::after {
  content: "article";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 56px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.glide {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}
.glide * {
  box-sizing: inherit;
}
.glide__track {
  overflow: hidden;
}
.glide__slides {
  position: relative;
  width: 100%;
  list-style: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transform-style: preserve-3d;
  touch-action: pan-Y;
  overflow: hidden;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
}
.glide__slides--dragging {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.glide__slide {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  white-space: normal;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}
.glide__slide a {
  -webkit-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
.glide__arrows {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.glide__bullets {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.glide--rtl {
  direction: rtl;
}

.glide--swipeable {
  cursor: grab;
}

.glide--dragging {
  cursor: grabbing;
}

.glide__track {
  padding-left: 8px;
  padding-right: 8px;
  margin-left: -8px;
  margin-right: -8px;
}

.glide__slides {
  box-sizing: content-box;
  padding: calc(2 * 8px) 8px;
  margin-left: -8px;
  margin-right: -8px;
}

.glide__slide {
  box-sizing: border-box;
  height: auto;
}
@media (min-width: 480px) {
  [data-carousel-cards-per-view="2"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 480px) and (max-width: 991px) {
  [data-carousel-cards-per-view="3"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 992px) {
  [data-carousel-cards-per-view="3"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-carousel-cards-per-view="4"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-carousel-cards-per-view="4"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 992px) {
  [data-carousel-cards-per-view="4"] .glide__slide {
    width: calc(25% - 12px);
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(25% - 12px);
  }
}
@media (min-width: 1440px) {
  [data-carousel-cards-per-view="5"] .glide__slide {
    width: calc(20% - 12.8px);
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(50% - 8px);
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(25% - 12px);
  }
}
@media (min-width: 1440px) {
  [data-carousel-cards-per-view="6"] .glide__slide {
    width: calc(16.6666666667% - 13.3333333333px);
  }
}

/**
 * Carousel controls are the arrows to navigate between slides
 */
.carousel-controls__arrow {
  background: #ffffff;
  border: 1px solid rgb(232, 232, 232);
  border-radius: 48px;
  box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.5);
  height: 48px;
  width: 48px;
  color: #d9121f;
  position: absolute;
  display: block;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  opacity: 1;
  cursor: pointer;
  transition: opacity 0.2s ease;
  line-height: 1;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow {
    height: 80px;
    width: 80px;
  }
}
.carousel-controls__arrow.is-disabled {
  opacity: 0;
}

.carousel-controls__arrow--left {
  left: 10px;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--left {
    left: calc(-80px / 2);
  }
}
.carousel-controls__arrow--left::after {
  content: "keyboard_arrow_left";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 34px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--left::after {
    font-size: 48px;
  }
}
@media (min-width: 1440px) {
  .carousel--peekaboo .carousel-controls__arrow--left {
    left: calc((-80px / 2) + 100px);
  }
}

.carousel-controls__arrow--right {
  right: 10px;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--right {
    right: calc(-80px / 2);
  }
}
.carousel-controls__arrow--right::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 34px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
}
@media (min-width: 1440px) {
  .carousel-controls__arrow--right::after {
    font-size: 48px;
  }
}
@media (min-width: 1440px) {
  .carousel--peekaboo .carousel-controls__arrow--right {
    right: calc((-80px / 2) + 100px);
  }
}

@media (min-width: 1440px) {
  .carousel--peekaboo {
    position: relative;
  }
  .carousel--peekaboo::before {
    position: absolute;
    top: 0;
    left: -8px;
    height: 100%;
    width: 108px;
    background: linear-gradient(to right, var(--carousel-bg-colour) 0%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 75%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 100%);
    z-index: 2;
    content: "";
  }
  .carousel--peekaboo::after {
    position: absolute;
    top: 0;
    right: -8px;
    height: 100%;
    width: 108px;
    background: linear-gradient(to left, var(--carousel-bg-colour) 0%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 75%, rgba(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue), 0%) 100%);
    z-index: 2;
    content: "";
  }
}

.cta {
  text-align: center;
  padding: 40px 16px;
  color: #ffffff;
  background-color: #4a4e57;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMjAiIGhlaWdodD0iNjIwIiB2aWV3Qm94PSIwIDAgMzIwIDYyMCI+CiAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTQgLTUwKSI+CiAgICA8cGF0aCBmaWxsPSIjNEE0RTU3IiBkPSJNMTQgNTBoMzQwdjYyMEgxNHoiLz4KICAgIDxjaXJjbGUgY3g9IjMzNCIgY3k9IjEwNiIgcj0iMjAiIGZpbGw9IiMwMDAiIG9wYWNpdHk9Ii4xOTIiLz4KICAgIDxjaXJjbGUgY3g9IjI1IiBjeT0iMjEyIiByPSIyMCIgZmlsbD0iIzAwMCIgb3BhY2l0eT0iLjE5MiIvPgogICAgPGcgc3Ryb2tlPSIjRkZGIiBzdHJva2Utb3BhY2l0eT0iLjIiIHN0cm9rZS13aWR0aD0iOCI+CiAgICAgIDxwYXRoIGQ9Ik0yMDAuODIgMjY2Ljk5MmwyNy42IDMwLjAzNWExMyAxMyAwIDAxMCAxNy41OTNsLTI3LjYgMzAuMDM1Yy00Ljg1OCA1LjI4Ni0xMy4wODIgNS42MzQtMTguMzY4Ljc3NmExMyAxMyAwIDAxLS43NzYtLjc3NmwtMjcuNi0zMC4wMzVhMTMgMTMgMCAwMTAtMTcuNTkzbDI3LjYtMzAuMDM1YzQuODU4LTUuMjg2IDEzLjA4MS01LjYzNCAxOC4zNjgtLjc3NmExMyAxMyAwIDAxLjc3Ni43NzZ6Ii8+CiAgICAgIDxwYXRoIGQ9Ik0xNjYuODIgMjY2Ljk5MmwyNy42IDMwLjAzNWExMyAxMyAwIDAxMCAxNy41OTNsLTI3LjYgMzAuMDM1Yy00Ljg1OCA1LjI4Ni0xMy4wODIgNS42MzQtMTguMzY4Ljc3NmExMyAxMyAwIDAxLS43NzYtLjc3NmwtMjcuNi0zMC4wMzVhMTMgMTMgMCAwMTAtMTcuNTkzbDI3LjYtMzAuMDM1YzQuODU4LTUuMjg2IDEzLjA4MS01LjYzNCAxOC4zNjgtLjc3NmExMyAxMyAwIDAxLjc3Ni43NzZ6Ii8+CiAgICA8L2c+CiAgICA8ZyBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMiIgc3Ryb2tlLXdpZHRoPSI4Ij4KICAgICAgPHBhdGggZD0iTTIwMC44MiAxMC45OTJsMjcuNiAzMC4wMzVhMTMgMTMgMCAwMTAgMTcuNTkzbC0yNy42IDMwLjAzNWMtNC44NTggNS4yODYtMTMuMDgyIDUuNjM0LTE4LjM2OC43NzZhMTMgMTMgMCAwMS0uNzc2LS43NzZsLTI3LjYtMzAuMDM1YTEzIDEzIDAgMDEwLTE3LjU5M2wyNy42LTMwLjAzNWM0Ljg1OC01LjI4NiAxMy4wODEtNS42MzQgMTguMzY4LS43NzZhMTMgMTMgMCAwMS43NzYuNzc2eiIvPgogICAgICA8cGF0aCBkPSJNMTY2LjgyIDEwLjk5MmwyNy42IDMwLjAzNWExMyAxMyAwIDAxMCAxNy41OTNsLTI3LjYgMzAuMDM1Yy00Ljg1OCA1LjI4Ni0xMy4wODIgNS42MzQtMTguMzY4Ljc3NmExMyAxMyAwIDAxLS43NzYtLjc3NmwtMjcuNi0zMC4wMzVhMTMgMTMgMCAwMTAtMTcuNTkzbDI3LjYtMzAuMDM1YzQuODU4LTUuMjg2IDEzLjA4MS01LjYzNCAxOC4zNjgtLjc3NmExMyAxMyAwIDAxLjc3Ni43NzZ6Ii8+CiAgICA8L2c+CiAgICA8ZyBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMiIgc3Ryb2tlLXdpZHRoPSI4Ij4KICAgICAgPHBhdGggZD0iTTIwMC44MiA1NDEuOTkybDI3LjYgMzAuMDM1YTEzIDEzIDAgMDEwIDE3LjU5M2wtMjcuNiAzMC4wMzVjLTQuODU4IDUuMjg2LTEzLjA4MiA1LjYzNC0xOC4zNjguNzc2YTEzIDEzIDAgMDEtLjc3Ni0uNzc2bC0yNy42LTMwLjAzNWExMyAxMyAwIDAxMC0xNy41OTNsMjcuNi0zMC4wMzVjNC44NTgtNS4yODYgMTMuMDgxLTUuNjM0IDE4LjM2OC0uNzc2YTEzIDEzIDAgMDEuNzc2Ljc3NnoiLz4KICAgICAgPHBhdGggZD0iTTE2Ni44MiA1NDEuOTkybDI3LjYgMzAuMDM1YTEzIDEzIDAgMDEwIDE3LjU5M2wtMjcuNiAzMC4wMzVjLTQuODU4IDUuMjg2LTEzLjA4MiA1LjYzNC0xOC4zNjguNzc2YTEzIDEzIDAgMDEtLjc3Ni0uNzc2bC0yNy42LTMwLjAzNWExMyAxMyAwIDAxMC0xNy41OTNsMjcuNi0zMC4wMzVjNC44NTgtNS4yODYgMTMuMDgxLTUuNjM0IDE4LjM2OC0uNzc2YTEzIDEzIDAgMDEuNzc2Ljc3NnoiLz4KICAgIDwvZz4KICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iMTAwIiByPSIyMCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjgiIG9wYWNpdHk9Ii4xOTIiLz4KICAgIDxjaXJjbGUgY3g9IjMzNCIgY3k9IjIxOCIgcj0iMjAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4IiBvcGFjaXR5PSIuMTkyIi8+CiAgICA8ZyBvcGFjaXR5PSIuMTkyIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzNDkgNDA4KSI+CiAgICAgIDxjaXJjbGUgY3g9IjMyOSIgY3k9IjI2IiByPSIyMCIgZmlsbD0iIzAwMCIvPgogICAgICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjEzMiIgcj0iMjAiIGZpbGw9IiMwMDAiLz4KICAgICAgPGNpcmNsZSBjeD0iNDUiIGN5PSIyMCIgcj0iMjAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4Ii8+CiAgICAgIDxjaXJjbGUgY3g9IjMyOSIgY3k9IjEzOCIgcj0iMjAiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4Ii8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K);
  background-position: center center;
  background-size: cover;
}
@media (min-width: 481px) {
  .cta {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI0NTYiIHZpZXdCb3g9IjAgMCAxNDQwIDQ1NiI+CiAgPGRlZnM+CiAgICA8cGF0aCBpZD0iYSIgZD0iTTAgMGgxNDU2djQ1NkgweiIvPgogIDwvZGVmcz4KICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIi8+CiAgICA8L21hc2s+CiAgICA8dXNlIGZpbGw9IiM0QTRFNTciIHhsaW5rOmhyZWY9IiNhIi8+CiAgICA8Y2lyY2xlIGN4PSIzOTkuNSIgY3k9IjQzNS41IiByPSIyMC41IiBmaWxsPSIjRkZGIiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMDUyIi8+CiAgICA8ZWxsaXBzZSBjeD0iMTkiIGN5PSI0NTYuNSIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjA1MiIgcng9IjE5IiByeT0iMjAuNSIvPgogICAgPGNpcmNsZSBjeD0iMzAyIiBjeT0iMTM2IiByPSIyMCIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjA1MiIvPgogICAgPGNpcmNsZSBjeD0iMTM2NSIgY3k9Ijg5LjgxNSIgcj0iMjAiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiIG9wYWNpdHk9Ii4wMzMiLz4KICAgIDxlbGxpcHNlIGN4PSIxMTI4LjUiIGN5PSIzNzkiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4IiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMTkyIiByeD0iMTguNSIgcnk9IjE5Ii8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xMTY5LjEzNSAxODAuNDA0bDM3LjI1NCAxLjU1YTEzIDEzIDAgMDExMi40NDcgMTIuNDMxbDEuNTU4IDM2LjI5NmMuMzA3IDcuMTczLTUuMjU4IDEzLjIzOC0xMi40MzEgMTMuNTQ2YTEzIDEzIDAgMDEtMS4wOTggMGwtMzcuMjU0LTEuNTVhMTMgMTMgMCAwMS0xMi40NDctMTIuNDMxbC0xLjU1OC0zNi4yOTZjLS4zMDctNy4xNzMgNS4yNTgtMTMuMjM4IDEyLjQzMS0xMy41NDZhMTMgMTMgMCAwMTEuMDk4IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxMTg4IDIxMi4zMTUpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xMTM4LjEzNCAxODAuNDEzbDM2LjI5NiAxLjUzM2ExMyAxMyAwIDAxMTIuNDQgMTIuNDRsMS41MzMgMzYuMjk1Yy4zMDMgNy4xNzMtNS4yNjcgMTMuMjM0LTEyLjQ0IDEzLjUzN2ExMyAxMyAwIDAxLTEuMDk3IDBsLTM2LjI5Ni0xLjUzM2ExMyAxMyAwIDAxLTEyLjQ0LTEyLjQ0bC0xLjUzMy0zNi4yOTVjLS4zMDMtNy4xNzMgNS4yNjctMTMuMjM0IDEyLjQ0LTEzLjUzN2ExMyAxMyAwIDAxMS4wOTcgMHoiIG1hc2s9InVybCgjYikiIHRyYW5zZm9ybT0icm90YXRlKDQ1IDExNTYuNSAyMTIuMzE1KSIvPgogICAgPHBhdGggc3Ryb2tlPSIjRkZGIiBzdHJva2Utb3BhY2l0eT0iLjE5OSIgc3Ryb2tlLXdpZHRoPSI4IiBkPSJNODUxLjU5OCAzNDcuNzQ5bDM4LjIxMiAxLjU2NmExMyAxMyAwIDAxMTIuNDU2IDEyLjQyM2wxLjU4IDM2LjI5N2MuMzEzIDcuMTczLTUuMjQ5IDEzLjI0LTEyLjQyMiAxMy41NTNhMTMgMTMgMCAwMS0xLjA5OC4wMDJsLTM4LjIxMi0xLjU2N2ExMyAxMyAwIDAxLTEyLjQ1Ni0xMi40MjNsLTEuNTgtMzYuMjk3Yy0uMzEzLTcuMTczIDUuMjQ5LTEzLjI0IDEyLjQyMi0xMy41NTNhMTMgMTMgMCAwMTEuMDk4LS4wMDF6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSA4NzAuOTYyIDM3OS42NjkpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik02MjIuMTM0IDU4LjQxM2wzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NWMuMzAzIDcuMTczLTUuMjY3IDEzLjIzNC0xMi40NCAxMy41MzdhMTMgMTMgMCAwMS0xLjA5NyAwbC0zNi4yOTYtMS41MzNhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY3LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSA2NDAuNSA5MC4zMTUpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0yMjkuNTk2IDI0Ny4wNmwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAyNDcuOTYyIDI3OC45NjIpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik04MjAuNTk2IDM0Ny43NjZsMzYuMjk2IDEuNTM0YTEzIDEzIDAgMDExMi40NCAxMi40NGwxLjUzMyAzNi4yOTVjLjMwMyA3LjE3My01LjI2NyAxMy4yMzQtMTIuNDQgMTMuNTM3YTEzIDEzIDAgMDEtMS4wOTggMGwtMzYuMjk1LTEuNTM0YTEzIDEzIDAgMDEtMTIuNDQtMTIuNDRsLTEuNTMzLTM2LjI5NWMtLjMwMy03LjE3MyA1LjI2Ni0xMy4yMzQgMTIuNDQtMTMuNTM3YTEzIDEzIDAgMDExLjA5NyAweiIgbWFzaz0idXJsKCNiKSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgODM4Ljk2MiAzNzkuNjY5KSIvPgogICAgPHBhdGggc3Ryb2tlPSIjRkZGIiBzdHJva2Utb3BhY2l0eT0iLjE5OSIgc3Ryb2tlLXdpZHRoPSI4IiBkPSJNNTkwLjEzNSA1OC40MDRsMzcuMjU0IDEuNTVhMTMgMTMgMCAwMTEyLjQ0NyAxMi40MzFsMS41NTggMzYuMjk2Yy4zMDcgNy4xNzMtNS4yNTggMTMuMjM4LTEyLjQzMSAxMy41NDZhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNy4yNTQtMS41NWExMyAxMyAwIDAxLTEyLjQ0Ny0xMi40MzFsLTEuNTU4LTM2LjI5NmMtLjMwNy03LjE3MyA1LjI1OC0xMy4yMzggMTIuNDMxLTEzLjU0NmExMyAxMyAwIDAxMS4wOTggMHoiIG1hc2s9InVybCgjYikiIHRyYW5zZm9ybT0icm90YXRlKDQ1IDYwOSA5MC4zMTUpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xOTcuNTk2IDI0Ny4wNmwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAyMTUuOTYyIDI3OC45NjIpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xNDIzLjU5Ni0zMy45NGwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxNDQxLjk2MiAtMi4wMzgpIi8+CiAgICA8cGF0aCBzdHJva2U9IiNGRkYiIHN0cm9rZS1vcGFjaXR5PSIuMTk5IiBzdHJva2Utd2lkdGg9IjgiIGQ9Ik0xMzkxLjU5Ni0zMy45NGwzNi4yOTYgMS41MzNhMTMgMTMgMCAwMTEyLjQ0IDEyLjQ0bDEuNTMzIDM2LjI5NGMuMzAzIDcuMTc0LTUuMjY3IDEzLjIzNS0xMi40NCAxMy41MzhhMTMgMTMgMCAwMS0xLjA5OCAwbC0zNi4yOTUtMS41MzRhMTMgMTMgMCAwMS0xMi40NC0xMi40NGwtMS41MzMtMzYuMjk1Yy0uMzAzLTcuMTczIDUuMjY2LTEzLjIzNCAxMi40NC0xMy41MzdhMTMgMTMgMCAwMTEuMDk3IDB6IiBtYXNrPSJ1cmwoI2IpIiB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxNDA5Ljk2MiAtMi4wMzgpIi8+CiAgICA8ZWxsaXBzZSBjeT0iMTcwIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE5IiByeT0iMjEiLz4KICAgIDxlbGxpcHNlIGN4PSIzNTYuNSIgY3k9IjYuODE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE4LjUiIHJ5PSIyMCIvPgogICAgPGNpcmNsZSBjeD0iNTQ0IiBjeT0iMjkyLjgxNSIgcj0iMTkiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI4IiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMTkyIi8+CiAgICA8Y2lyY2xlIGN4PSIxNDAyLjUiIGN5PSIyNzguNSIgcj0iMjAuNSIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjAzMyIvPgogICAgPGNpcmNsZSBjeD0iODcyLjUiIGN5PSIxNDkuNSIgcj0iMjAuNSIgZmlsbD0iI0ZGRiIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjA1MiIvPgogICAgPGVsbGlwc2UgY3g9IjExNDYuNSIgY3k9IjQ0IiBmaWxsPSIjMDAwIiBtYXNrPSJ1cmwoI2IpIiBvcGFjaXR5PSIuMTkyIiByeD0iMTguNSIgcnk9IjIwIi8+CiAgICA8ZWxsaXBzZSBjeD0iMTguNSIgY3k9IjQ0NiIgZmlsbD0iIzAwMCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE4LjUiIHJ5PSIyMCIvPgogICAgPGVsbGlwc2UgY3g9IjEzOTYuNSIgY3k9IjQ0NiIgZmlsbD0iIzAwMCIgbWFzaz0idXJsKCNiKSIgb3BhY2l0eT0iLjE5MiIgcng9IjE4LjUiIHJ5PSIyMCIvPgogIDwvZz4KPC9zdmc+Cg==);
    background-repeat: repeat;
  }
}
.cta.cta--light {
  background-image: url(/7d751ad7/10.1.0/images/css/light-small.7e63ba2c..png);
  background-color: #f7f7f7;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .cta.cta--light {
    background-image: url(/7d751ad7/10.1.0/images/css/light-large.bc6593dd..png);
  }
}
.cta.cta--fullwidth {
  padding: 64px 16px;
}

.cta__label {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .cta__label {
    font-size: 40px;
    line-height: 48px;
  }
}
.cta--fullwidth .cta__label {
  margin-bottom: 24px;
}

.cta__description {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  max-width: 600px;
  margin: 0 auto 16px;
}
.cta--fullwidth .cta__description {
  margin-bottom: 24px;
}
.cta__description a {
  color: inherit;
  text-decoration: underline;
}

.cta--fullwidth .cta__body {
  max-width: 600px;
  margin: 0 auto;
}

.embedded-video__poster {
  position: relative;
  width: 100%;
}
.embedded-video__poster > img {
  width: 100%;
  pointer-events: none;
}
.embedded-video__poster::after {
  content: "play_circle_outline";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 50px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #d9121f;
  speak: none;
  position: absolute;
  top: calc(50% - 25px);
  left: calc(50% - 25px);
}
@media (min-width: 768px) {
  .embedded-video__poster::after {
    font-size: 70px;
  }
}

.embedded-video__video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
}
.embedded-video__video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.error {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  text-align: center;
  padding: 24px 24px;
}
@media (min-width: 768px) {
  .error {
    padding: 64px 64px;
  }
}

.error__code {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .error__code {
    font-size: 28px;
    line-height: 36px;
  }
}

.error__description {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .error__description {
    font-size: 28px;
    line-height: 36px;
  }
}

.error__message {
  margin-bottom: 24px;
}

.error-list {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .error-list {
    flex-direction: row;
    justify-content: center;
  }
}

@media (min-width: 768px) {
  .error-list--item {
    margin-right: 24px;
  }
}

.error-list--item__link {
  font-weight: bold;
  color: #3244ff;
}

.ff-brand-2022 .w-expandable-item {
  display: flex;
  gap: 16px;
  flex-direction: column;
}

.expandable-item {
  color: #1d1d1b;
  border-bottom: 1px solid #edeff1;
  padding: 0;
}
.ff-brand-2022 .expandable-item {
  border: 2px solid #69141e;
}

.expandable-item__handle {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  position: relative;
  padding-right: 24px;
  padding-top: 16px;
  padding-bottom: 16px;
  cursor: pointer;
}
.expandable-item__handle::after {
  content: "add";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
.expandable-item[open] .expandable-item__handle::after {
  content: "remove";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}
.ff-brand-2022 .expandable-item__handle {
  padding-left: 16px;
  padding-right: 40px;
}
.ff-brand-2022 .expandable-item__handle::after {
  right: 16px;
  color: #1d1d1b;
}

.expandable-item__drawer {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  padding-top: 8px;
  padding-bottom: 16px;
}
.ff-brand-2022 .expandable-item__drawer {
  padding-left: 16px;
  padding-right: 16px;
}
.js-details-not-supported .expandable-item__drawer {
  display: none;
}
.js-details-not-supported[open] .expandable-item__drawer {
  display: block;
}

.expandable-item--large .expandable-item__handle {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .expandable-item--large .expandable-item__handle {
    font-size: 28px;
    line-height: 36px;
  }
}
.expandable-item--large .expandable-item__handle::after {
  font-size: 26px;
}
@media (min-width: 768px) {
  .expandable-item--large .expandable-item__handle::after {
    font-size: 28px;
  }
}
.expandable-item[open] .expandable-item--large .expandable-item__handle::after {
  font-size: 26px;
}
@media (min-width: 768px) {
  .expandable-item[open] .expandable-item--large .expandable-item__handle::after {
    font-size: 28px;
  }
}

.expandable-item--standalone {
  margin-bottom: 24px;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}

.w-footer {
  width: 100%;
  padding: 0 16px;
  background: #1d1d1b;
}
.ff-furniture-2022 .w-footer {
  background: #69141e;
}

.footer {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  width: 100%;
  max-width: 1244px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  padding-top: 24px;
  padding-bottom: 24px;
  color: #ffffff;
}

.footer__separator {
  height: 1px;
  width: 100%;
  margin-top: 16px;
  margin-bottom: 8px;
  background-color: rgba(255, 255, 255, 0.2);
}
.ff-furniture-2022 .footer__separator {
  background-color: #ef0000;
}

.footer__branding {
  margin-bottom: 24px;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .footer__branding {
    margin-bottom: 0;
  }
}
.ff-furniture-2022 .footer__branding {
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .ff-furniture-2022 .footer__branding {
    margin-bottom: 0;
  }
}

.footer__rs-group b {
  font-weight: bold;
}

.footer__ds-logo {
  margin-right: 16px;
}
.footer__ds-logo > img,
.footer__ds-logo > svg {
  height: 20px;
}
.ff-furniture-2022 .footer__ds-logo > img,
.ff-furniture-2022 .footer__ds-logo > svg {
  height: 24px;
}

.footer__language-selector {
  width: 100%;
}
@media (min-width: 768px) {
  .footer__language-selector {
    width: auto;
  }
}

.footer__nav-link {
  position: relative;
  display: inline-block;
  margin: 0;
}
.footer__nav-link > a {
  color: #ffffff;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-right: 8px;
  display: inline-block;
}
.footer__nav-link:not(:last-child)::after {
  padding-right: 8px;
  content: "|";
}

.footer__social-icons {
  height: 16px;
  display: inline-flex;
  align-items: center;
  font-weight: 700;
}
.footer__social-icons svg {
  height: 16px;
}
.footer__social-icons svg > path {
  fill: #ffffff;
}

.footer__social-icons-link {
  line-height: 1;
  padding: 0 8px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.form__fieldset {
  margin-bottom: 24px;
}

.form__legend {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #1d1d1b;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .form__legend {
    font-size: 28px;
    line-height: 36px;
  }
}

.form__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
  width: 100%;
}
@media (min-width: 768px) {
  .form__fields--inline .form__field {
    width: auto;
    flex-grow: 1;
  }
}

.form__field--toggle {
  margin-bottom: 0;
}

.form__element .o-radio,
.form__element .o-checkbox {
  margin-bottom: 8px;
}

.form__fields {
  position: relative;
  width: 100%;
}

@media (min-width: 768px) {
  .form__fields--inline {
    display: flex;
    align-items: baseline;
    gap: 24px;
  }
}

.form__fields--box {
  padding: 24px 24px 0;
  margin-bottom: 24px;
  background-color: #edeff1;
  border: 1px solid #bcbcbc;
}

.form__fields--toggleable {
  display: none;
}
.form__fields--toggleable.is-visible {
  display: block;
}

.form__fields--collection {
  padding-right: 64px;
}

.form__delete {
  position: absolute;
  right: 22px;
  top: 22px;
  color: #d9121f;
}
.form__field ~ .form__delete, .form__fields--inline ~ .form__delete {
  top: auto;
  bottom: 32px;
}

@media (min-width: 768px) {
  .form__field--width-half {
    width: 50%;
  }
}

@media (min-width: 768px) {
  .form__field--width-three-quarter {
    width: 75%;
  }
}

@media (min-width: 768px) {
  .form__field--width-one-quarter {
    width: 25%;
  }
}

@media (min-width: 768px) {
  .form__field--width-one-third {
    width: 33.3333333333%;
  }
}

@media (min-width: 768px) {
  .form__field--width-two-third {
    width: 66.6666666667%;
  }
}

.geo-notice {
  background-color: #f7f7f7;
}

.geo-notice__content {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .geo-notice__content {
    padding-left: 24px;
  }
}

.geo-notice__container {
  justify-content: center;
  align-items: center;
}
@media (min-width: 768px) {
  .geo-notice__container {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

.geo-notice__buttons {
  margin: 24px;
}
@media (min-width: 768px) {
  .geo-notice__buttons {
    display: flex;
    flex-wrap: initial;
    justify-content: left;
    margin: 24px;
  }
}

.geo-notice__button {
  margin: 24px;
}

.js-geo-notice--dismissed {
  display: none;
}

.w-header {
  width: 100%;
  padding-left: 16px;
  padding-right: 16px;
  background-color: #ffffff;
  position: sticky;
  z-index: 10;
  top: 0;
}
@media (min-width: 992px) {
  .w-header {
    position: relative;
    height: auto;
  }
}
.w-header.nav-is-open {
  position: fixed;
  z-index: 20;
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100%;
}

.header {
  width: 100%;
  max-width: 1244px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 8px;
  padding-bottom: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
@media (min-width: 600px) {
  .header {
    min-height: 60px;
  }
}

.header__logo > img {
  height: 40px;
}
@media (min-width: 600px) {
  .header__logo > img {
    height: 24px;
  }
}
.ff-furniture-2022 .header__logo > img {
  height: 34px;
}
@media (min-width: 600px) {
  .ff-furniture-2022 .header__logo > img {
    height: 30px;
  }
}

.header__icons {
  display: flex;
}

.header__full-width-search {
  flex-basis: 100%;
  opacity: 1;
  position: relative;
}
@media (max-width: 767px) {
  .header__full-width-search::after, .header__full-width-search::before {
    content: "";
    position: absolute;
    top: 4px;
    left: -16px;
    right: -16px;
    border-top: 1px solid #cdcdcd;
  }
}
@media (max-width: 767px) {
  .header__full-width-search::after {
    top: auto;
    bottom: -8px;
  }
}
.is-scrolled .header__full-width-search {
  opacity: 0;
  height: 0;
}

.header__nav {
  display: none;
  flex-basis: 100%;
  margin-top: 8px;
  padding-bottom: 8px;
}
.nav-is-open .header__nav {
  display: block;
  overflow: auto;
  /*
      16px: header top padding
      40px: header height
      40px: full width search height
      8px: nav top margin
   */
  height: calc(100vh - 104px);
}
@media (min-width: 768px) {
  .nav-is-open .header__nav {
    height: calc(100vh - 64px);
  }
}

.header-icon {
  min-width: 48px;
  position: relative;
  display: flex;
  flex-direction: column;
  margin-left: 8px;
  align-items: center;
  color: #4a4e57;
  text-align: center;
}
@media (min-width: 480px) {
  .header-icon {
    margin-left: 16px;
  }
}
@media (min-width: 768px) {
  .header-icon {
    margin: 0 8px;
  }
}
.header-icon:hover {
  color: #d9121f;
}

.header-icon--search-toggle {
  display: none;
}
@media (min-width: 480px) {
  .header-icon--search-toggle {
    display: inherit;
  }
}
.header-icon--search-toggle:hover {
  color: #d9121f;
}

.header-icon--basket {
  display: none;
}
.header-icon--basket.has-items {
  display: inherit;
}

.header-icon--contribute {
  display: none;
}
@media (min-width: 340px) {
  .header-icon--contribute {
    display: flex;
  }
}

.header-icon__icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-block;
  pointer-events: none;
  display: inherit;
  vertical-align: center;
}
.header-icon__icon > svg {
  width: 24px;
  height: 24px;
  fill: #4a4e57;
}
.header-icon__icon > svg {
  fill: #4a4e57;
}

.header-icon__label {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  pointer-events: none;
  display: inherit;
}

.header-icon__notification {
  width: 20px;
  height: 20px;
  top: -8px;
  right: 4px;
  position: absolute;
  display: none;
  pointer-events: none;
  color: #d9121f;
  text-shadow: 2px 2px 4px rgba(29, 29, 27, 0.5);
}
.has-notifications .header-icon__notification {
  display: block;
}

.header-icon__counter {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 16px;
  min-height: 16px;
  display: block;
  padding-left: 6px;
  padding-right: 6px;
  border-radius: 999em;
  font-weight: 700;
  font-family: var(--header-font);
  background: #d9121f;
  color: #ffffff;
}

/* stylelint-disable selector-max-compound-selectors */
.ff-furniture-2022 .header-icon__label {
  color: #69141e;
}
.ff-furniture-2022 .header-icon__icon > svg {
  fill: #69141e;
}
.ff-furniture-2022 .header-icon {
  color: #69141e;
}
.ff-furniture-2022 .header-icon:hover {
  color: #1d1d1b;
  fill: #1d1d1b;
}
.ff-furniture-2022 .header-icon:hover .header-icon__label {
  color: #1d1d1b;
}
.ff-furniture-2022 .header-icon:hover .header-icon__icon > svg {
  fill: #1d1d1b;
}

/* stylelint-enable selector-max-compound-selectors */
.nav-button {
  display: flex;
  flex-direction: column;
  margin-left: 8px;
  cursor: pointer;
  align-items: center;
}
@media (min-width: 480px) {
  .nav-button {
    margin-left: 24px;
  }
}
@media (min-width: 992px) {
  .nav-button {
    display: none;
  }
}
.nav-button:hover .nav-button__icon {
  background-color: #d9121f;
}

.nav-button__icon {
  width: 22px;
  height: 22px;
  margin: 1px;
  border-radius: 50%;
  background-color: #1d1d1b;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.ff-furniture-2022 .nav-button__icon {
  background-color: #69141e;
}

.nav-button__burger,
.nav-button__burger::before,
.nav-button__burger::after {
  width: 12px;
  height: 1px;
  content: "";
  display: block;
  background-color: #ffffff;
  transition: 0.4s;
  pointer-events: none;
}

.nav-button__burger::before {
  position: absolute;
  bottom: 3px;
}
.nav-is-open .nav-button__burger::before {
  transform: rotate(-45deg) translate(-2px, 2px);
}

.nav-button__burger {
  position: relative;
}
.nav-is-open .nav-button__burger {
  background-color: transparent;
}

.nav-button__burger::after {
  position: absolute;
  bottom: -3px;
}
.nav-is-open .nav-button__burger::after {
  transform: rotate(45deg) translate(-2px, -2px);
}

.ff-furniture-2022 .nav-button:hover .header-icon__label {
  color: #69141e;
}
.ff-furniture-2022 .nav-button:hover .nav-button__icon {
  background-color: #69141e;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.expanding-search {
  justify-content: flex-end;
  border-bottom: none;
  max-height: 40px;
}
@media (max-width: 767px) {
  .expanding-search {
    display: none;
  }
}
.expanding-search:focus-within {
  transition: border 0.2s;
  border-bottom: 1px solid #4a4e57;
}
.ff-furniture-2022 .expanding-search:focus-within {
  border-color: #69141e;
}

.expanding-search__label {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
}
.expanding-search__label > span {
  opacity: 1;
  transition: opacity 0.2s;
}
.ff-furniture-2022 .expanding-search__label {
  color: #69141e;
}

.expanding-search__input {
  order: 2;
  width: 0;
  transition: width 0.2s, opacity 0.2s;
  max-height: 24px;
}
.expanding-search__input.has-content {
  width: 200px;
}
.expanding-search__input.has-content ~ .expanding-search__label span {
  opacity: 0;
}
.expanding-search__input.has-content ~ .expanding-search__reset {
  display: inline-block;
}
.expanding-search__input:focus {
  width: 200px;
}
.expanding-search__input:focus ~ .expanding-search__label span {
  opacity: 0;
}

.expanding-search__reset {
  margin-bottom: 12px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.full-width-search {
  margin-top: 16px;
  width: 100%;
  position: relative;
  border-bottom: 1px solid #4a4e57;
}
@media (min-width: 768px) {
  .full-width-search {
    display: none;
  }
}
.ff-furniture-2022 .full-width-search {
  border: none;
}

.full-width-search__label > span {
  opacity: 0;
  position: absolute;
}

.header-search {
  display: flex;
  position: relative;
}

.header-search__label {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  order: 1;
  text-align: center;
  color: rgba(74, 78, 87, 0.45);
}
.header-search__label:hover {
  color: #d9121f;
}
.header-search__label:hover::before {
  color: #d9121f;
}
.header-search__label::before {
  content: "search";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #4a4e57;
  display: block;
}
.ff-furniture-2022 .header-search__label::before {
  color: #69141e;
}
.ff-furniture-2022 .header-search__label:hover {
  color: #1d1d1b;
}
.ff-furniture-2022 .header-search__label:hover::before {
  color: #1d1d1b;
}

.header-search__input {
  width: 100%;
  padding-right: 8px;
  padding-left: 8px;
  order: 2;
}
.header-search__input.has-content {
  padding-right: 24px;
}
.header-search__input.has-content ~ .header-search__reset {
  display: inline-block;
}
.header-search__input::-moz-placeholder {
  color: #4a4e57;
}
.header-search__input:-ms-input-placeholder {
  color: #4a4e57;
}
.header-search__input::placeholder {
  color: #4a4e57;
}
@supports (-webkit-overflow-scrolling: touch) {
  .header-search__input {
    font-size: 16px;
    transform: scale(0.75);
    transform-origin: left;
    height: 32px;
  }
}

.header-search__reset {
  display: none;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  padding: 4px;
}
.header-search__reset::after {
  content: "close";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 18px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  display: block;
  color: rgba(74, 78, 87, 0.45);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.expanding-search {
  justify-content: flex-end;
  border-bottom: none;
  max-height: 40px;
}
@media (max-width: 767px) {
  .expanding-search {
    display: none;
  }
}
.expanding-search:focus-within {
  transition: border 0.2s;
  border-bottom: 1px solid #4a4e57;
}
.ff-furniture-2022 .expanding-search:focus-within {
  border-color: #69141e;
}

.expanding-search__label {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
}
.expanding-search__label > span {
  opacity: 1;
  transition: opacity 0.2s;
}
.ff-furniture-2022 .expanding-search__label {
  color: #69141e;
}

.expanding-search__input {
  order: 2;
  width: 0;
  transition: width 0.2s, opacity 0.2s;
  max-height: 24px;
}
.expanding-search__input.has-content {
  width: 200px;
}
.expanding-search__input.has-content ~ .expanding-search__label span {
  opacity: 0;
}
.expanding-search__input.has-content ~ .expanding-search__reset {
  display: inline-block;
}
.expanding-search__input:focus {
  width: 200px;
}
.expanding-search__input:focus ~ .expanding-search__label span {
  opacity: 0;
}

.expanding-search__reset {
  margin-bottom: 12px;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.full-width-search {
  margin-top: 16px;
  width: 100%;
  position: relative;
  border-bottom: 1px solid #4a4e57;
}
@media (min-width: 768px) {
  .full-width-search {
    display: none;
  }
}
.ff-furniture-2022 .full-width-search {
  border: none;
}

.full-width-search__label > span {
  opacity: 0;
  position: absolute;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.dropdown-menu-list {
  position: absolute;
  left: 0;
  width: 100%;
  background: #ffffff;
  margin-top: 20px;
  display: none;
  box-shadow: 0 10px 10px 0 rgba(74, 78, 87, 0.2);
  z-index: 1;
  border-top: 1px solid rgba(74, 78, 87, 0.1);
}

@media (min-width: 768px) {
  .dropdown-menu-list {
    width: auto;
    margin-top: 24px;
    border-radius: 4px;
    box-shadow: 2px 2px 1px rgba(225, 225, 225, 0.5);
    left: 50%;
    transform: translateX(-50%);
    border-top: none;
    border: 1px solid #cdcdcd;
  }
  .dropdown-menu-list::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #ffffff;
    left: 50%;
    transform: translateX(-50%);
    top: -5px;
  }
  .dropdown-menu-list::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #cdcdcd;
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    top: -6px;
    position: absolute;
  }
}
.is-dropdown-open .dropdown-menu-list {
  display: block;
  animation: dropDown 0.2s ease-in both;
}

@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.dropdown-menu-list__item {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
  white-space: nowrap;
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 16px;
}

@media (min-width: 768px) {
  .dropdown-menu-list__item {
    font-family: var(--body-font);
    font-size: 12px;
    line-height: 20px;
    padding: 8px 24px;
  }
}
.dropdown-menu-list__item:hover {
  background: #f7f7f7;
}

.w-dropdown-menu-list {
  --dropdown-top-margin: 48px;
}
@media (min-width: 768px) {
  .w-dropdown-menu-list {
    --dropdown-top-margin: 20px;
    position: relative;
  }
}
.is-scrolled .w-dropdown-menu-list {
  --dropdown-top-margin: $spacing-1;
}
@media (min-width: 768px) {
  .is-scrolled .w-dropdown-menu-list {
    --dropdown-top-margin: 20px;
    position: relative;
  }
}

.dropdown-menu-list__item--separator {
  border-bottom: 1px solid rgba(74, 78, 87, 0.1);
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.site-nav {
  max-width: 900px;
  margin: 0 auto;
}

.site-nav__categories {
  display: flex;
  flex-flow: row wrap;
}

.site-nav__category {
  width: 100%;
}
@media (min-width: 768px) {
  .site-nav__category {
    width: 33.333%;
    padding: 16px;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.site-nav-category {
  color: #4a4e57;
  border-bottom: 1px solid #f7f7f7;
}
@media (min-width: 768px) {
  .site-nav-category {
    border: none;
  }
}

.site-nav-category__heading {
  position: relative;
  padding-top: 16px;
  display: block;
}
@media (min-width: 768px) {
  .site-nav-category__heading {
    border-bottom: 0;
    padding-bottom: 8px;
  }
}

.site-nav-category__link {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}
@media (max-width: 767px) {
  .site-nav-category__link::after {
    content: "add";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    speak: none;
    color: #d9121f;
    margin-left: 8px;
  }
  .is-expanded .site-nav-category__link::after {
    content: "remove";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}
@media (min-width: 768px) {
  .site-nav-category__link {
    justify-content: flex-start;
  }
  .site-nav-category__link::after {
    content: "keyboard_arrow_right";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    speak: none;
    color: #d9121f;
    margin-left: 8px;
  }
}

.site-nav-category__link--small {
  display: flex;
  color: inherit;
  width: 100%;
}
@media (min-width: 768px) {
  .site-nav-category__link--small {
    display: none;
  }
}

.site-nav-category__link--large {
  display: none;
}
@media (min-width: 768px) {
  .site-nav-category__link--large {
    display: flex;
  }
}

.site-nav-category__title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  line-height: 24px;
  position: relative;
}
@media (min-width: 768px) {
  .site-nav-category__title::before {
    content: "";
    width: 0;
    position: absolute;
    background-color: #d9121f;
    transition: width 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: -1;
    height: 2px;
    bottom: 0;
    left: 0;
  }
  .site-nav-category__link:hover .site-nav-category__title {
    color: #d9121f;
    transition: color 0.5s ease;
  }
  .site-nav-category__link:hover .site-nav-category__title::before {
    width: 100%;
  }
}

.site-nav-category__description {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  font-style: italic;
  margin-bottom: 24px;
  max-width: 260px;
}
@media (min-width: 768px) {
  .site-nav-category__description {
    margin-bottom: 0;
    max-width: none;
  }
}

.site-nav-category__items {
  display: none;
}
@media (min-width: 768px) {
  .site-nav-category__items {
    display: block;
  }
}
.is-expanded .site-nav-category__items {
  display: block;
  animation: fadeIn 0.3s ease-in both;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translate3d(0, -2%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media (min-width: 768px) {
  .site-nav-item--small-screen-only {
    display: none;
  }
}

.site-nav-item__link {
  display: flex;
  justify-content: space-between;
  padding-top: 8px;
  padding-bottom: 8px;
}
.site-nav-item__link::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
  color: #d9121f;
  margin-left: 8px;
}

.site-nav-item__title {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  line-height: 24px;
  color: #4a4e57;
  position: relative;
}
@media (min-width: 768px) {
  .site-nav-item__title::before {
    content: "";
    width: 0;
    position: absolute;
    background-color: #d9121f;
    transition: width 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: -1;
    height: 2px;
    bottom: 0;
    left: 0;
  }
  .site-nav-item__link:hover .site-nav-item__title {
    color: #d9121f;
    transition: color 0.5s ease;
  }
  .site-nav-item__link:hover .site-nav-item__title::before {
    width: 100%;
  }
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.site-nav-footer {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  display: flex;
  justify-content: space-between;
  flex-flow: column;
}
@media (min-width: 768px) {
  .site-nav-footer {
    max-width: 1244px;
    margin: 0 auto;
    flex-flow: row;
  }
}

@media (min-width: 768px) {
  .site-nav-footer__links {
    display: inline;
  }
}

.site-nav-footer__link {
  position: relative;
  display: inline-block;
  margin: 0;
}
.site-nav-footer__link > a {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-right: 8px;
  display: inline-block;
}
.site-nav-footer__link:not(:last-child)::after {
  padding-right: 8px;
  content: "|";
}

.site-nav-footer__social-icons {
  display: inline-flex;
  align-items: center;
}
@media (min-width: 768px) {
  .site-nav-footer__social-icons {
    white-space: nowrap;
    margin-left: 8px;
  }
}

.site-nav-footer__social-icon {
  margin: 0 8px;
  line-height: 1;
}
.site-nav-footer__social-icon svg {
  max-width: 16px;
  height: 20px;
}

.hero {
  min-height: 460px;
  height: 100%;
  position: relative;
  padding-top: 40px;
  padding-bottom: 104px;
  display: flex;
  flex-direction: column;
  align-items: baseline;
  overflow: hidden;
  width: 100%;
  background-repeat: no-repeat;
  background-position: center;
}
.t-discover .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Discover_479px_small.db9c0786..png);
}
@media (min-width: 480px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Discover_767x460_medium_small.5307201a..png);
  }
}
@media (min-width: 768px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Discover_991x460_medium.f19e96b1..png);
  }
}
@media (min-width: 992px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Discover_1244x460_medium_large.ad1e2b65..png);
  }
}
@media (min-width: 1440px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Discover_1244x460_large.51038b5a..png);
  }
}
.t-air-quality .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Air_Quality_479px_small.8bf8b2d2..png);
}
@media (min-width: 480px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Air_Quality_767x460_medium_small.c369065d..png);
  }
}
@media (min-width: 768px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Air_Quality_991x460_medium.100d0e5f..png);
  }
}
@media (min-width: 992px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Air_Quality_1244x460_medium_large.7ced1369..png);
  }
}
@media (min-width: 1440px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Air_Quality_1244x460_large.e2eb60e4..png);
  }
}
.t-activist-engineering .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Activist_Engineering_479px_small.5f990271..png);
}
@media (min-width: 480px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Activist_Engineering_767x460_medium_small.a1629e4a..png);
  }
}
@media (min-width: 768px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Activist_Engineering_991x460_medium.17af98d1..png);
  }
}
@media (min-width: 992px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Activist_Engineering_1244x460_medium_large.d865b9b9..png);
  }
}
@media (min-width: 1440px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Activist_Engineering_1244x460_large.ded0ac89..png);
  }
}
.t-forum .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Forum_479px_small.fff7a4c5..png);
}
@media (min-width: 480px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Forum_767x460_medium_small.2dd318cc..png);
  }
}
@media (min-width: 768px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Forum_991x460_medium.e58ca979..png);
  }
}
@media (min-width: 992px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Forum_1244x460_medium_large.18d76778..png);
  }
}
@media (min-width: 1440px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Forum_1244x460_large.b4b206fe..png);
  }
}
.t-home .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Home_50_479px_small.5f6ac0a8..png);
}
@media (min-width: 480px) {
  .t-home .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Home_50_767x460_medium_small.126dacf1..png);
  }
}
@media (min-width: 768px) {
  .t-home .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Home_50_991x460_medium.4175a624..png);
  }
}
@media (min-width: 992px) {
  .t-home .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Home_50_1244x460_medium_large.5b0e4564..png);
  }
}
@media (min-width: 1440px) {
  .t-home .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Home_50_1244x460_large.c22acc69..png);
  }
}
.t-learn .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Learn_479px_small.93f1b8f7..png);
}
@media (min-width: 480px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Learn_767x460_medium_small.7c8ad4ed..png);
  }
}
@media (min-width: 768px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Learn_991x460_medium.d83fc692..png);
  }
}
@media (min-width: 992px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Learn_1244x460_medium_large.2a813a27..png);
  }
}
@media (min-width: 1440px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Learn_1244x460_large.7b58a295..png);
  }
}
.t-resources .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Resources_479px_small.bf9ccff2..png);
}
@media (min-width: 480px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Resources_767x460_medium_small.91d8377c..png);
  }
}
@media (min-width: 768px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Resources_991x460_medium.627278ee..png);
  }
}
@media (min-width: 992px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Resources_1244x460_medium_large.9d71dc2f..png);
  }
}
@media (min-width: 1440px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Resources_1244x460_large.e44622ba..png);
  }
}
.t-services .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Services_479px_small.0b6ece1f..png);
}
@media (min-width: 480px) {
  .t-services .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Services_767x460_medium_small.9d40c0fd..png);
  }
}
@media (min-width: 768px) {
  .t-services .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Services_991x460_medium.05ffe8eb..png);
  }
}
@media (min-width: 992px) {
  .t-services .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Services_1244x460_medium_large.fae2a49e..png);
  }
}
@media (min-width: 1440px) {
  .t-services .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Services_1244x460_large.c0278584..png);
  }
}
.t-software .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Software_479px_small.7239292d..png);
}
@media (min-width: 480px) {
  .t-software .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Software_767x460_medium_small.cc53e4c3..png);
  }
}
@media (min-width: 768px) {
  .t-software .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Software_991x460_medium.87e1b37d..png);
  }
}
@media (min-width: 992px) {
  .t-software .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Software_1244x460_medium_large.9eebe8b2..png);
  }
}
@media (min-width: 1440px) {
  .t-software .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Software_1244x460_large.eb5596b8..png);
  }
}
.t-software-ds-pcb .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_479px_small.7da4f4eb..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_767x460_medium_small.ff214086..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_991x460_medium.6157e6f0..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_1244x460_medium_large.02beb5d3..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_1244x460_large.6c30cc60..png);
  }
}
.t-software-ds-pcb-pro .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_479px_small.e7d90bff..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_767x460_medium_small.2ac5f8c7..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_991x460_medium.1009f10a..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_1244x460_medium_large.fb5648f0..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_1244x460_large.225c1cfc..png);
  }
}
.t-software-dse .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/DSE_479px_small.92fd113d..png);
}
@media (min-width: 480px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSE_767x460_medium_small.e4ab17f8..png);
  }
}
@media (min-width: 768px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSE_991x460_medium.375b091b..png);
  }
}
@media (min-width: 992px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSE_1244x460_medium_large.82e73aa7..png);
  }
}
@media (min-width: 1440px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSE_1244x460_large.820cb016..png);
  }
}
.t-software-dsm .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/DSM_479px_small.f9984d7a..png);
}
@media (min-width: 480px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSM_767x460_medium_small.8003cf77..png);
  }
}
@media (min-width: 768px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSM_991x460_medium.3fef4c40..png);
  }
}
@media (min-width: 992px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSM_1244x460_medium_large.58fa209b..png);
  }
}
@media (min-width: 1440px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DSM_1244x460_large.722fab34..png);
  }
}
.t-software-pcb-compare .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_479px_small.404e7d9e..png);
}
@media (min-width: 480px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_767x460_medium_small.1c79725d..png);
  }
}
@media (min-width: 768px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_991x460_medium.b043caa0..png);
  }
}
@media (min-width: 992px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_1244x460_medium_large.33e6a3a1..png);
  }
}
@media (min-width: 1440px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_1244x460_large.937b5874..png);
  }
}
.t-software-ds-pcb-v10 .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Nano_479px_small.8c7d2c2f..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Nano_767x460_medium_small.a47895eb..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Nano_991x460_medium.faee39f1..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Nano_1244x460_medium_large.9b4b2dd7..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Nano_1244x460_large.1b141337..png);
  }
}
.t-software-ds-pcb-pro-v10 .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_Nano_479px_small.bc569479..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_Nano_767x460_medium_small.54182b3e..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_Nano_991x460_medium.2bd9cc7b..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_Nano_1244x460_medium_large.2ad2be9a..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb-pro-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/DS_PCB_Pro_Nano_1244x460_large.d8047dbf..png);
  }
}
.t-software-pcb-compare-v10 .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_Nano_479px_small.d900f9aa..png);
}
@media (min-width: 480px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_Nano_767x460_medium_small.3e9cdbc6..png);
  }
}
@media (min-width: 768px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_Nano_991x460_medium.e738dcba..png);
  }
}
@media (min-width: 992px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_Nano_1244x460_medium_large.ad6ef3f9..png);
  }
}
@media (min-width: 1440px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/PCB_Comparison_Nano_1244x460_large.b87b5dc5..png);
  }
}
.t-grass-roots-education .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/GRE_479px_small.7f90d3cc..png);
}
@media (min-width: 480px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/GRE_767x460_medium_small.d3751982..png);
  }
}
@media (min-width: 768px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/GRE_991x460_medium.2264f877..png);
  }
}
@media (min-width: 992px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/GRE_1244x460_medium_large.9621bb48..png);
  }
}
@media (min-width: 1440px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/GRE_1244x460_large.d794cd70..png);
  }
}
.t-student-innovation .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/INNO_479px_small.daea047e..png);
}
@media (min-width: 480px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/INNO_767x460_medium_small.b7fae7ac..png);
  }
}
@media (min-width: 768px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/INNO_991x460_medium.9705ee6e..png);
  }
}
@media (min-width: 992px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/INNO_1244x460_medium_large.9ca1e35f..png);
  }
}
@media (min-width: 1440px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/INNO_1244x460_large.824dd582..png);
  }
}
.t-learning-and-skills .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/LAS_479px_small.7daa71a5..png);
}
@media (min-width: 480px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/LAS_767x460_medium_small.485f1718..png);
  }
}
@media (min-width: 768px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/LAS_991x460_medium.5a516bd5..png);
  }
}
@media (min-width: 992px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/LAS_1244x460_medium_large.6efc9522..png);
  }
}
@media (min-width: 1440px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/LAS_1244x460_large.e4e71113..png);
  }
}
.t-opportunities .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/OPP_479px_small.5e0bfd1d..png);
}
@media (min-width: 480px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/OPP_767x460_medium_small.2d25c425..png);
  }
}
@media (min-width: 768px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/OPP_991x460_medium.c3cd03d7..png);
  }
}
@media (min-width: 992px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/OPP_1244x460_medium_large.e3302438..png);
  }
}
@media (min-width: 1440px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/OPP_1244x460_large.af77043a..png);
  }
}
.t-draftsight .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Draftsight_479px_small.6da9b2b0..png);
}
@media (min-width: 480px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Draftsight_767x460_medium_small.1e22ca0d..png);
  }
}
@media (min-width: 768px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Draftsight_991x460_medium.d1579c7a..png);
  }
}
@media (min-width: 992px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Draftsight_1244x460_medium_large.84c43df0..png);
  }
}
@media (min-width: 1440px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Draftsight_1244x460_large.ce14e668..png);
  }
}
.t-innovation .hero {
  background-image: url(/7d751ad7/10.1.0/images/css/Innovation_479px_small.3863ffaf..png);
}
@media (min-width: 480px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Innovation_767x460_medium_small.4f19a71a..png);
  }
}
@media (min-width: 768px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Innovation_991x460_medium.96b75170..png);
  }
}
@media (min-width: 992px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Innovation_1244x460_medium_large.2b0d0c1e..png);
  }
}
@media (min-width: 1440px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/10.1.0/images/css/Innovation_1244x460_large.5fd73555..png);
  }
}
@media (min-width: 768px) {
  .hero {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

.hero__stats-block {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}
.hero__stats-block .d-hero__stats-block {
  width: calc(33.3333333333% - 10.6666666667px);
}

.hero__title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  max-width: 620px;
  display: inline-block;
  margin-bottom: 24px;
  letter-spacing: -1.5px;
  color: var(--theme-text-colour);
}
@media (min-width: 768px) {
  .hero__title {
    font-size: 48px;
    line-height: 56px;
  }
}
.hero__title > b {
  color: var(--theme-alt-text-colour);
}

.hero__body {
  max-width: 620px;
  display: inline-block;
}
@media (min-width: 992px) {
  .hero__body {
    padding-right: 40px;
  }
}

.hero__subtitle {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  color: var(--theme-text-colour);
  margin-bottom: 24px;
}

.hero__content {
  width: 100%;
}
@media (min-width: 992px) {
  .hero__content {
    width: 50%;
  }
}

.active-language {
  color: #ffffff;
  display: flex;
  align-items: center;
}
.active-language::after {
  content: "keyboard_arrow_down";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
.is-dropdown-open .active-language::after {
  content: "keyboard_arrow_up";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 12px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}

.active-language__flag {
  width: 16px;
  height: 16px;
}

.active-language__flag,
.active-language__label {
  pointer-events: none;
  margin-right: 8px;
}

.language-selector {
  position: relative;
}

.language-selector__list {
  background: #1d1d1b;
  position: absolute;
  bottom: 32px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  width: 100%;
  border-radius: 5px;
  box-shadow: 2px 2px 27px 0 rgba(29, 29, 27, 0.7);
  right: 0;
  z-index: 15;
  display: none;
  color: #ffffff;
}
@media (min-width: 768px) {
  .language-selector__list {
    min-width: 128px;
  }
}
.language-selector__list::before, .language-selector__list::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  left: 5%;
  transform: translateX(-10%);
}
@media (min-width: 768px) {
  .language-selector__list::before, .language-selector__list::after {
    left: 70%;
    transform: translateX(-70%);
  }
}
.language-selector__list::before {
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #1d1d1b;
  z-index: 2;
  bottom: -5px;
}
.language-selector__list::after {
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid rgba(225, 225, 225, 0.5);
  z-index: 1;
  bottom: -6px;
}
.is-dropdown-open .language-selector__list {
  display: block;
  animation: raiseIn 0.2s ease-in both;
}
@keyframes raiseIn {
  from {
    opacity: 0;
    transform: translate3d(0, 0%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, -2%, 0);
  }
}

.language-selector__item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  cursor: pointer;
}
.language-selector__item:hover {
  background: rgba(188, 188, 188, 0.1);
}

.language-selector__link {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 8px 8px;
}
.language-selector__link:hover {
  color: #ffffff;
}

.language-selector__flag {
  margin-right: 22px;
  width: 16px;
  height: 16px;
}

.media-carousel {
  position: relative;
}

.media-carousel__slide {
  display: flex;
  justify-content: space-between;
}

.media-carousel__controls {
  position: absolute;
  bottom: 0;
  width: 100%;
}
@media (min-width: 768px) {
  .media-carousel__controls {
    right: 0;
    width: 50%;
  }
}

.media-carousel-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.media-carousel-controls__button {
  background-color: #f1f1f1;
  width: 64px;
  height: 56px;
}
@media (min-width: 768px) {
  .media-carousel-controls__button {
    width: 104px;
    height: 88px;
  }
}
.media-carousel-controls__button:hover {
  background-color: #d9121f;
}

.media-carousel-controls__button--back::before {
  content: "keyboard_arrow_left";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 36px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
@media (min-width: 768px) {
  .media-carousel-controls__button--back::before {
    content: "keyboard_arrow_left";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 56px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}

.media-carousel-controls__button--forward::before {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 36px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}
@media (min-width: 768px) {
  .media-carousel-controls__button--forward::before {
    content: "keyboard_arrow_right";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 56px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
  }
}

.media-carousel-controls__counter {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #4a4e57;
  display: inline-flex;
}

.media-slide {
  opacity: 0;
  position: absolute;
  color: #4a4e57;
  pointer-events: none;
  top: 0;
}
.media-slide.is-current {
  opacity: 1;
  position: relative;
  pointer-events: auto;
}

.media-slide__image {
  display: none;
}
@media (min-width: 768px) {
  .media-slide__image {
    width: 50%;
    display: block;
  }
}

.media-slide__title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .media-slide__title {
    font-size: 28px;
    line-height: 36px;
  }
}

.media-slide__subtitle {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}

.media-slide__body_text p {
  margin-bottom: 8px;
}
.media-slide__body_text a {
  font-weight: 700;
}
.media-slide__body_text a:hover {
  color: #d9121f;
}

.media-slide__body {
  padding: 16px 16px 104px;
}
@media (min-width: 768px) {
  .media-slide__body {
    width: 50%;
  }
}

.mega-nav {
  border-top: 1px solid #cdcdcd;
  background-color: #ffffff;
  position: relative;
}
@media (max-width: 991px) {
  .mega-nav {
    display: none;
  }
  .w-header.nav-is-open ~ .mega-nav {
    position: fixed;
    top: 56px;
    left: 0;
    display: block;
    height: calc(100vh - 56px);
    width: 100%;
    padding: 24px 0;
    overflow: hidden auto;
    z-index: 20;
  }
}
@media (min-width: 992px) {
  .mega-nav {
    padding: 0 16px;
    border-bottom: 1px solid #cdcdcd;
  }
}

.mega-nav__container {
  height: 100%;
}
@media (min-width: 992px) {
  .mega-nav__container {
    max-width: 1244px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 992px) {
  .mega-nav__list {
    display: flex;
  }
}

@media (max-width: 991px) {
  .mega-nav__sub-menu {
    position: absolute;
    top: 0;
    left: 100%;
    height: 100%;
    width: 100%;
    background-color: #ffffff;
    transition: left 0.1s ease-in-out;
    visibility: hidden;
  }
  .mega-nav__sub-menu.is-open {
    left: 0;
    z-index: 5;
    visibility: visible;
  }
}
@media (min-width: 992px) {
  .mega-nav__sub-menu {
    display: none;
  }
  .mega-nav__item:hover .mega-nav__sub-menu {
    display: block;
    position: absolute;
    width: 100%;
    top: calc(100% + 1px);
    left: 0;
    background: #ffffff;
    z-index: 5;
    padding: 40px 16px 16px;
    box-shadow: 0 5px 5px 0 rgba(31, 31, 31, 0.5);
  }
}

@media (max-width: 991px) {
  .mega-nav__item {
    margin: 0 0 8px;
  }
  .mega-nav__level-2-list > .mega-nav__item {
    margin: 24px 0;
  }
  .mega-nav__level-3-list > .mega-nav__item {
    margin: 0;
  }
}
@media (min-width: 992px) {
  .mega-nav__item {
    -moz-column-break-inside: avoid;
         break-inside: avoid-column;
  }
  .mega-nav__level-2-list > .mega-nav__item {
    margin: 0 0 24px;
  }
}

.mega-nav__item-link {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
}
@media (max-width: 991px) {
  .mega-nav__item-link {
    display: block;
    height: 44px;
    padding: 8px 24px;
    color: #1f1f1f;
  }
}
@media (min-width: 992px) {
  .mega-nav__item-link {
    display: block;
    padding: 8px 0;
    color: #1f1f1f;
  }
  .mega-nav__item-link:hover {
    color: #454545;
  }
}

.mega-nav__top-level-link {
  position: relative;
  display: inline-block;
}
@media (max-width: 991px) {
  .mega-nav__top-level-link {
    font-family: var(--header-font);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 20px;
    line-height: 28px;
  }
  .mega-nav__top-level-link::after {
    content: "chevron_right";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    position: absolute;
    right: 0;
    top: 12px;
    speak: none;
    color: #ef0000;
  }
}
@media (min-width: 992px) {
  .mega-nav__top-level-link {
    padding: 24px;
    font-family: var(--body-font);
    font-weight: 700;
    font-size: 14px;
    line-height: 19px;
  }
  .mega-nav__top-level-link::after {
    content: "expand_more";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    position: absolute;
    right: 0;
    top: 22px;
    speak: none;
    color: #ef0000;
    transition: all 0.3s ease-in-out;
  }
  .mega-nav__top-level-link::before {
    position: absolute;
    bottom: 16px;
    left: 50%;
    right: 50%;
    content: "";
    height: 2px;
    background-color: #ef0000;
    transition: all 0.3s ease-in-out;
  }
  .mega-nav__item:hover .mega-nav__top-level-link::before {
    left: 24px;
    right: 0;
  }
  .mega-nav__item:hover .mega-nav__top-level-link::after {
    transform: rotate(-180deg);
  }
  .mega-nav__item:first-child .mega-nav__top-level-link {
    padding-left: 0;
  }
  .mega-nav__item:first-child:hover .mega-nav__top-level-link::before {
    left: 0;
  }
}
.mega-nav__top-level-link.is-active {
  color: #ef0000;
}

@media (max-width: 991px) {
  .mega-nav__level-2-list {
    padding-bottom: 16px;
  }
}
@media (min-width: 992px) {
  .mega-nav__level-2-list {
    -moz-column-count: 2;
         column-count: 2;
    -moz-column-gap: 24px;
         column-gap: 24px;
    max-width: 1244px;
    margin: 0 auto 24px;
  }
}
@media (min-width: 1200px) {
  .mega-nav__level-2-list {
    -moz-column-count: 4;
         column-count: 4;
  }
}

@media (min-width: 992px) {
  .mega-nav__level-3-list {
    -moz-column-break-inside: avoid;
         break-inside: avoid-column;
  }
}

.mega-nav__back-to-all {
  display: block;
  width: 100%;
  position: relative;
  padding: 8px 24px 8px 48px;
  font-family: var(--header-font);
  text-transform: uppercase;
  font-weight: 700;
  font-size: 16px;
  line-height: 28px;
  text-align: left;
  border-bottom: 1px solid #cdcdcd;
}
@media (min-width: 992px) {
  .mega-nav__back-to-all {
    display: none;
  }
}
.mega-nav__back-to-all::after {
  content: "chevron_left";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  position: absolute;
  left: 24px;
  top: 11px;
  speak: none;
  color: #ef0000;
}

@media (min-width: 992px) {
  .mega-nav__item-all {
    display: none;
  }
}

.mega-nav__level-2-header {
  display: block;
}
@media (max-width: 991px) {
  .mega-nav__level-2-header {
    padding: 8px 24px;
    font-family: var(--header-font);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 18px;
    line-height: 28px;
    color: #69141e;
  }
}
@media (min-width: 992px) {
  .mega-nav__level-2-header {
    padding: 8px 0;
    font-family: var(--header-font);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 24px;
    line-height: 36px;
    color: #69141e;
  }
  .mega-nav__level-2-header:hover {
    color: #a00f28;
  }
}

.modal {
  background: #ffffff;
  box-shadow: 4px 4px 14px 0 rgba(81, 81, 81, 0.5);
  min-width: 100px;
  min-height: 100px;
  width: calc(100vw - 2 * 16px);
  max-width: 821px;
  max-height: calc(100vh - 2 * 16px);
  padding: 0;
}
.modal[open], [open] .modal {
  display: flex;
  flex-direction: column;
}

.modal--media {
  background: none;
  box-shadow: none;
  width: calc((100vh - 2 * 16px) * 1.7777777778 - 90px);
  max-width: calc(100vw - 2 * 16px);
}
@media (min-width: 992px) {
  .modal--media {
    max-width: 1000px;
  }
}

.modal__header {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  padding: 12px 24px;
  border-bottom: 1px solid #f7f7f7;
  display: flex;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .modal__header {
    font-size: 28px;
    line-height: 36px;
  }
}

.modal__close {
  width: 50px;
  height: 40px;
  color: #1d1d1b;
  font-weight: normal;
  font-size: 32px;
  line-height: 40px;
}
.modal__close > span {
  pointer-events: none;
}
.modal--media .modal__close {
  color: #ffffff;
  align-self: flex-end;
}
:not(.modal--media) > .modal__close {
  position: absolute;
  right: 0;
  top: 0;
}
@media (min-width: 768px) {
  :not(.modal--media) > .modal__close {
    right: 5px;
    top: 5px;
  }
}

.modal__body {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  padding: 24px;
  flex: 1 1 auto;
  overflow: auto;
}

.modal__footer {
  padding: 12px 24px;
  border-top: 1px solid #f7f7f7;
}

.page-heading__title-container {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .page-heading__title-container {
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 0;
    align-items: flex-start;
  }
}

.page-heading__title {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .page-heading__title {
    margin-right: 40px;
  }
}

.page-heading__partner-logo {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.paginator {
  display: flex;
  align-items: center;
}

.paginator__link {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  display: flex;
  min-width: 30px;
  justify-content: center;
  margin-right: 4px;
}
.paginator__link:hover {
  color: #d9121f;
}

.paginator__link--active {
  color: #ffffff;
  background-color: #4a4e57;
  border-radius: 50%;
  text-align: center;
  border: 3px solid #4a4e57;
}
.paginator__link--active:hover {
  color: #ffffff;
}

.paginator__link--previous::after {
  content: "keyboard_arrow_left";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.paginator__link--next::after {
  content: "keyboard_arrow_right";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  speak: none;
}

.paginator__link--first::after {
  margin-left: 24px;
  content: "...";
}

.paginator__link--last::before {
  margin-right: 24px;
  content: "...";
}

.partner-logo__label {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  margin-right: 4px;
}

.product-link {
  display: inline-flex;
  vertical-align: middle;
}

.product-link__product {
  margin-right: 4px;
}
.product-link--unverified .product-link__product {
  color: inherit;
  text-decoration: inherit;
  cursor: auto;
  pointer-events: none;
  margin-right: 0;
}

.product-link__basket {
  color: #3244ff;
}
.product-link__basket:hover {
  color: #d9121f;
}
.product-link__basket::before {
  content: "shopping_basket";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 18px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
}
.product-link--unverified .product-link__basket {
  display: none;
}

.form__errors {
  margin-bottom: 24px;
}

.form__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #d9121f;
}

.form__field-group {
  margin-bottom: 24px;
}
.form__field-group > .input-field {
  margin-bottom: 0;
}
.form__field-group > .input-field > .input-field__label {
  margin-bottom: 8px;
}
.form__field-group .o-radio {
  margin-bottom: 8px;
}
.form__field-group .o-checkbox:last-child {
  margin-bottom: 0;
}

.form__legend {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .form__legend {
    font-size: 28px;
    line-height: 36px;
  }
}

.form__toggle {
  display: none;
}
.form__toggle.is-visible {
  margin-bottom: 24px;
  display: block;
  background-color: #f7f7f7;
}
.form__toggle.is-visible > .input-field {
  padding: 16px;
}
.form__toggle.is-visible > .select-field {
  padding: 16px;
  margin-bottom: 0;
}
.form__toggle.is-visible > .o-checkbox {
  padding: 16px;
  margin-bottom: 0;
}

/**
 * FormField
 *
 * To be used as follows:
 * @include formField(string fieldName);
 * Applies default styling to basic form field elements such as input, label, errors etc.
 *
 */
/**
 * ToggleField
 *
 * To be used as follows:
 * @include toggleField(string fieldName);
 * Applies default styling to toggle form field elements such as checkboxes & radio buttons.
 *
 */
.search {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}
.search [list]::-webkit-calendar-picker-indicator {
  margin-top: -4px;
}

.search__input {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.search__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.search__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .search__input {
  border-color: #d9121f;
}
.search__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.search__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.search__label a {
  font-weight: 700;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.search__label--regular {
  font-weight: 400;
}

.search__label-required {
  font-weight: normal;
}

.search__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.search__error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.search__help {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.search__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.search-select {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}
.search-select [list]::-webkit-calendar-picker-indicator {
  margin-top: -4px;
}

.search-select__input {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  font-weight: inherit;
  border-radius: 4px;
  border: 2px solid #7f8695;
  background-color: #ffffff;
  padding: 10px 8px;
}
.search-select__input:focus {
  border: 4px solid #1d1d1b;
  padding: 8px 6px;
}
.search-select__input:disabled {
  background-color: #edeff1;
  cursor: not-allowed;
}
.is-invalid .search-select__input {
  border-color: #d9121f;
}
.search-select__input::-moz-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search-select__input:-ms-input-placeholder {
  color: rgba(74, 78, 87, 0.45);
}
.search-select__input::placeholder {
  color: rgba(74, 78, 87, 0.45);
}

.search-select__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.search-select__label a {
  font-weight: 700;
}

.o-form_row__label--disabled {
  color: #7f8695;
}

.search-select__label--regular {
  font-weight: 400;
}

.search-select__label-required {
  font-weight: normal;
}

.search-select__error {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  position: relative;
  margin-top: 8px;
  padding-left: 24px;
  color: #d9121f;
}
.search-select__error::before {
  content: "error";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.search-select__help {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  color: rgba(74, 78, 87, 0.8);
  text-align: left;
  margin-bottom: 8px;
}
.search-select__help a {
  color: #4a4e57;
  text-decoration: underline;
}

.search {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .search {
    width: 100%;
  }
}

.search__search-field {
  display: flex;
  flex: 5;
  position: relative;
}
.search__search-field::before {
  display: none;
}
@media (min-width: 768px) {
  .search__search-field::before {
    content: "search";
    font-family: "Material Icons Rounded";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: "liga";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 8px;
    color: #bcbcbc;
    display: block;
  }
}

.search__input {
  margin-bottom: 0;
  width: 100%;
  border-right: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
@media (min-width: 768px) {
  .search__input {
    padding: 10px 8px 10px 32px;
    margin-right: 16px;
    border-right: 2px solid;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
  }
}

.search__input:focus {
  box-shadow: none;
  padding-left: 30px;
}
@media (min-width: 768px) {
  .search__input:focus {
    box-shadow: 0 2px 4px 0 rgba(127, 134, 149, 0.5);
  }
}

.search__error {
  display: none;
}
.is-invalid > .search__error {
  font-family: var(--body-font);
  font-size: 12px;
  line-height: 20px;
  color: #d9121f;
  position: absolute;
  left: 0;
  margin-top: 50px;
  display: block;
}

.search__text-label {
  opacity: 0;
}

.search__submit {
  display: inline-block;
  text-align: center;
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  text-indent: -9999px;
  position: relative;
  width: 48px;
}
@media (min-width: 768px) {
  .search__submit {
    text-indent: 0;
    width: auto;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    line-height: 16px;
  }
}
.search__submit::before {
  content: "search";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  color: #bcbcbc;
  display: block;
  position: absolute;
  text-indent: 0;
  left: 12px;
  top: 12px;
}
@media (min-width: 768px) {
  .search__submit::before {
    display: none;
  }
}

.search__preposition {
  display: none;
}
@media (min-width: 768px) {
  .search__preposition {
    display: block;
    margin-right: 16px;
  }
}

.search-results {
  padding-bottom: 40px;
}

@media (max-width: 991px) {
  .search-results__filter-bar {
    display: none;
  }
}

.search-results__filter-bar--alternate {
  display: none;
}
@media (min-width: 993px) {
  .search-results__filter-bar--alternate {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 0 16px;
    margin-bottom: 16px;
  }
}

@media (min-width: 992px) {
  .search-results__filter-drawer {
    display: none;
  }
}

.search-results__label {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-bottom: 24px;
}
.search-results__label strong {
  color: #d9121f;
}

.search-results__options {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .search-results__options {
    flex-direction: row;
  }
}

.search-results__info {
  margin-bottom: 24px;
}

.search-results__alt-link {
  font-weight: 700;
  color: #3244ff;
}
.search-results__alt-link:hover {
  color: #d9121f;
}

.search-results__sort {
  display: none;
  align-items: center;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .search-results__sort {
    display: flex;
  }
}
.search-results__sort > .select-field {
  width: auto;
  margin-right: 24px;
  margin-bottom: 24px;
}

.search-results__paginator {
  display: flex;
  width: 100%;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .search-results__paginator {
    justify-content: flex-end;
    margin-bottom: 0;
  }
}

.search-select {
  margin-bottom: 0;
  display: flex;
  flex: 2 0;
  max-width: calc(55% - 48px);
}
@media (min-width: 768px) {
  .search-select {
    margin-right: 16px;
    max-width: none;
  }
}

.search-select__input {
  margin-bottom: 0;
  border-right: 0;
  border-radius: 0;
  padding-right: 24px;
  min-width: 104px;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27><path d=%27M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z%27/></svg>");
  background-repeat: no-repeat;
  background-position: right;
}
@media (min-width: 768px) {
  .search-select__input {
    border-radius: 4px;
    border-right: 2px solid;
  }
}

.search-select__input:focus {
  box-shadow: none;
}
@media (min-width: 768px) {
  .search-select__input:focus {
    box-shadow: 0 2px 4px 0 rgba(127, 134, 149, 0.5);
  }
}

.no-search-results__title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  display: flex;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .no-search-results__title {
    font-size: 28px;
    line-height: 36px;
  }
}
.no-search-results__title::before {
  content: "search";
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: "liga";
  align-self: center;
  margin-right: 24px;
}

.reduced-hero {
  margin: 24px 0;
}

.reduced-hero__title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
  margin-bottom: 16px 0;
  color: #69141e;
  max-width: 720px;
}
@media (min-width: 768px) {
  .reduced-hero__title {
    font-size: 48px;
    line-height: 56px;
  }
}
.s-section--highlighted .reduced-hero__title {
  color: #ffffff;
}

.reduced-hero__text {
  max-width: 720px;
}
.s-section--highlighted .reduced-hero__text {
  color: #ffffff;
}

.s-alert {
  padding: 32px 32px;
}
.s-alert .d-alert {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 12px;
}
.s-alert .d-alert:last-child {
  margin-bottom: 0;
}

.s-alert--floaty {
  position: absolute;
  top: 115px;
  left: 32px;
  right: 32px;
  z-index: 5;
  padding: 0;
}
@media (min-width: 768px) {
  .s-alert--floaty {
    top: 75px;
  }
}

.s-button-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 0;
}
@media (min-width: 480px) {
  .s-button-group {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (min-width: 480px) {
  .s-button-group--left-align {
    justify-content: left;
  }
}

@media (min-width: 480px) {
  .s-button-group--right-align {
    justify-content: right;
  }
}

.s-card-deck {
  margin-bottom: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.s-card-deck > .d-card-deck {
  width: 100%;
  margin-bottom: 16px;
}
@media (min-width: 480px) {
  .s-card-deck[data-cards-per-row="2"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="2"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) {
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="3"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 992px) {
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck {
    width: calc(25% - 12px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"] > .d-card-deck:nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="4"].card-deck--single-row > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="4"].card-deck--single-row > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(25% - 12px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 1440px) {
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck {
    width: calc(20% - 12.8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="5"] > .d-card-deck:nth-child(5n) {
    margin-right: 0;
  }
}
@media (min-width: 480px) and (max-width: 767px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(50% - 8px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(2n) {
    margin-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(3n) {
    margin-right: 0;
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(25% - 12px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(4n) {
    margin-right: 0;
  }
}
@media (min-width: 1440px) {
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck {
    width: calc(16.6666666667% - 13.3333333333px);
    margin-right: 16px;
  }
  .s-card-deck[data-cards-per-row="6"] > .d-card-deck:nth-child(6n) {
    margin-right: 0;
  }
}

.s-hierarchy-deck {
  display: grid;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-columns: 1fr;
  grid-template-areas: "feature-card-1" "feature-card-2" "feature-card-3" "card-4" "card-5";
}
@media (min-width: 480px) {
  .s-hierarchy-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-template-areas: "feature-card-1 feature-card-1" "feature-card-2 feature-card-2" "feature-card-3 feature-card-3" "card-4 card-5";
  }
}
@media (min-width: 992px) {
  .s-hierarchy-deck {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-template-areas: "feature-card-1 feature-card-1 feature-card-2 feature-card-2" "feature-card-3 feature-card-3 card-4 card-5";
  }
}

.s-hierarchy-deck__feature-card-1 {
  grid-area: feature-card-1;
}

.s-hierarchy-deck__feature-card-2 {
  grid-area: feature-card-2;
}

.s-hierarchy-deck__feature-card-3 {
  grid-area: feature-card-3;
}

.s-hierarchy-deck__card-4 {
  grid-area: card-4;
}

.s-hierarchy-deck__card-5 {
  grid-area: card-5;
}

.s-home-deck {
  display: grid;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-columns: 1fr;
  grid-template-areas: "feature-card-1" "feature-card-2" "card-3" "card-4" "card-5" "card-6" "card-7" "card-8";
}
@media (min-width: 480px) {
  .s-home-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-template-areas: "feature-card-1 feature-card-2" "card-3 card-4" "card-5 card-6" "card-7 card-8";
  }
}
@media (min-width: 992px) {
  .s-home-deck {
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(6, 1fr);
    grid-template-areas: "feature-card-1 card-3 card-4" "feature-card-1 card-3 card-4" "feature-card-1 card-5 card-6" "feature-card-2 card-5 card-6" "feature-card-2 card-7 card-8" "feature-card-2 card-7 card-8";
  }
}

.s-home-deck__feature-card-1 {
  grid-area: feature-card-1;
}

.s-home-deck__feature-card-2 {
  grid-area: feature-card-2;
}

.s-home-deck__card-3 {
  grid-area: card-3;
}

.s-home-deck__card-4 {
  grid-area: card-4;
}

.s-home-deck__card-5 {
  grid-area: card-5;
}

.s-home-deck__card-6 {
  grid-area: card-6;
}

.s-home-deck__card-7 {
  grid-area: card-7;
}

.s-home-deck__card-8 {
  grid-area: card-8;
}

.s-extravaganza-deck {
  display: grid;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-columns: 1fr;
  grid-template-areas: "feature-card-1" "card-2" "card-3";
}
@media (min-width: 480px) {
  .s-extravaganza-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "feature-card-1 feature-card-1" "card-2 card-3";
  }
}
@media (min-width: 992px) {
  .s-extravaganza-deck {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-template-areas: "feature-card-1 card-2" "feature-card-1 card-3";
  }
}

.s-extravaganza-deck__feature-card-1 {
  grid-area: feature-card-1;
}

.s-extravaganza-deck__card-2 {
  grid-area: card-2;
}

.s-extravaganza-deck__card-3 {
  grid-area: card-3;
}

.s-package-deck {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 768px) {
  .s-package-deck {
    flex-direction: row;
    gap: 24px;
  }
}
.s-package-deck > .d-package-deck {
  width: 100%;
}

/**
 * Card decks are a structure that holds multiple cards.
 */
/**
 * Section for a carousel block
 */
.s-carousel {
  --carousel-bg-colour-red: 255;
  --carousel-bg-colour-green: 255;
  --carousel-bg-colour-blue: 255;
  --carousel-bg-colour: rgb(var(--carousel-bg-colour-red), var(--carousel-bg-colour-green), var(--carousel-bg-colour-blue));
  background: var(--carousel-bg-colour);
  width: 100%;
  padding: 32px 16px;
}
.s-carousel > .d-carousel {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1440px) {
  .s-carousel > .d-carousel.d-carousel--peekaboo {
    max-width: calc((2 * 100px) + 1244px);
  }
}

.s-carousel--alternative {
  --carousel-bg-colour-red: 247;
  --carousel-bg-colour-green: 247;
  --carousel-bg-colour-blue: 247;
}

.s-content-with-aside {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media (min-width: 992px) {
  .s-content-with-aside {
    flex-direction: row;
  }
}

@media (min-width: 992px) {
  .d-content-with-aside {
    flex: 1;
  }
}

.d-content-with-aside--content {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .d-content-with-aside--content {
    flex: 2;
  }
}

.s-content-with-aside--reverse-mobile {
  flex-direction: column-reverse;
}
@media (min-width: 992px) {
  .s-content-with-aside--reverse-mobile {
    flex-direction: row;
  }
}

.s-hero {
  width: 100%;
  background-color: var(--theme-bg-colour);
}
.s-hero > .d-hero {
  padding-left: 16px;
  padding-right: 16px;
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 1272px) {
  .s-hero > .d-hero {
    padding-left: 0;
    padding-right: 0;
  }
}

.s-listing {
  width: 100%;
  padding: calc(var(--content-gap) / 2) 0;
}
@media (min-width: 992px) {
  .s-listing {
    padding-right: 16px;
    padding-left: 16px;
  }
}
.s-listing > .d-listing {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 992px) {
  .s-listing > .d-listing {
    padding-right: 0;
    padding-left: 0;
  }
}
.s-listing > .d-listing--header {
  background-color: #1d1d1b;
  padding-right: 0;
  padding-left: 0;
}

.s-pseudo-modal {
  background: #bcbcbc;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px 16px;
}
.s-pseudo-modal > .d-pseudo-modal {
  border-radius: 4px;
  box-shadow: 0 2px 10px 0 rgba(29, 29, 27, 0.17);
  width: 100%;
  max-width: 872px;
  margin-right: auto;
  margin-left: auto;
  background: #ffffff;
}
.ff-new-cards .s-pseudo-modal > .d-pseudo-modal {
  border-radius: 0;
  box-shadow: none;
}
.ff-new-cards .s-pseudo-modal > .d-pseudo-modal .card__image {
  border-radius: 0;
}
.s-pseudo-modal::before {
  height: 100%;
  width: 100%;
  content: "";
  background-color: #bcbcbc;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 0;
}

/**
 * Expandable is a section with some hidden content.
 *
 * It'll typically have one or more d-expandable children
 */
.s-expandable {
  position: relative;
  width: 100%;
  padding: 32px 16px;
  margin-bottom: 128px;
  background-color: #f7f7f7;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.s-expandable > .d-expandable {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}

.s-section-header {
  width: 100%;
  padding: 32px 16px;
}
.s-section-header > .d-section-header {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
  background-color: #1d1d1b;
  padding: 24px;
  margin-bottom: 16px;
  text-align: center;
}
@media (min-width: 480px) {
  .s-section-header > .d-section-header {
    text-align: left;
  }
}
.s-section-header > .d-section-header--no-background {
  background-color: inherit;
  padding: 0;
  text-align: inherit;
}

/**
 * Section is the default block on a page.
 *
 * It'll typically have one or more d-section children
 */
.s-section {
  width: 100%;
  padding: 16px;
}
@media (min-width: 992px) {
  .s-section {
    padding: 32px 16px;
  }
}
.s-section > .d-section {
  width: 100%;
  max-width: 1244px;
  margin-right: auto;
  margin-left: auto;
}
.s-section > .d-section.d-section--full-width {
  width: 95%;
  max-width: 95%;
}
.ff-brand-2022 .s-section {
  padding: 32px 16px;
}
.s-section.t-explorer {
  color: #00cdbe;
}
.s-section.t-creator {
  color: #c8a0ff;
}
.s-section.t-engineer {
  color: #ffcd00;
}

.s-section--narrow > .d-section {
  max-width: 720px;
}

.s-section--spaceless-top {
  padding-top: 0;
}
.ff-brand-2022 .s-section--spaceless-top {
  padding-top: 0;
}

.s-section--spaceless {
  padding: 0 16px;
}

.s-section--alternative {
  background-color: #f7f7f7;
}

.s-section--highlighted {
  background-color: #69141e;
  color: #ffffff;
}

.s-section--themeable {
  --section-bg-colour: #f7f7f7;
  background-color: var(--section-bg-colour, #f7f7f7);
}

@media (min-width: 768px) {
  .s-title-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}

.d-title-group {
  display: flex;
  align-items: center;
}

.d-subscriptions__desktop {
  display: none;
}
@media (min-width: 992px) {
  .d-subscriptions__desktop {
    display: block;
  }
}

.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.u-mb-large {
  margin-bottom: 64px;
}

.u-mb-medium {
  margin-bottom: 40px;
}

.u-mb-small {
  margin-bottom: 24px;
}

.u-mb-xsmall {
  margin-bottom: 16px;
}

.u-mt-large {
  margin-top: 64px;
}

.u-mt-medium {
  margin-top: 40px;
}

.u-mt-small {
  margin-top: 24px;
}

.u-mt-xsmall {
  margin-top: 16px;
}

.u-ml-large {
  margin-left: 64px;
}

.u-ml-medium {
  margin-left: 40px;
}

.u-ml-small {
  margin-left: 24px;
}

.u-ml-xsmall {
  margin-left: 16px;
}

.u-mr-large {
  margin-right: 64px;
}

.u-mr-medium {
  margin-right: 40px;
}

.u-mr-small {
  margin-right: 24px;
}

.u-mr-xsmall {
  margin-right: 16px;
}

.u-standalone {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 24px;
}

.u-skeleton {
  position: relative;
  background: #bcbcbc;
  background: linear-gradient(to right, #bcbcbc 8%, rgba(188, 188, 188, 0.8) 18%, #bcbcbc 33%);
  background-size: 800px 104px;
  animation: 1s;
  animation-fill-mode: forwards;
  animation-iteration-count: infinite;
  animation-name: shimmer;
  animation-timing-function: linear;
}

@keyframes shimmer {
  0% {
    background-position: -400px 0;
  }
  100% {
    background-position: 400px 0;
  }
}
.u-list {
  list-style: none;
}

.u-list__item {
  padding: 4px 8px;
}

/**
 * IE specific styling
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .o-feedback-trigger {
    display: none;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .info-card__body {
    min-height: 1px;
  }
}
@media screen and (-ms-high-contrast: active) and (min-width: 480px), (-ms-high-contrast: none) and (min-width: 480px) {
  .info-card--jumbo .info-card__body ul {
    -moz-column-count: auto;
         column-count: auto;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .glide__slide {
    margin-top: 8px;
    margin-bottom: 8px;
  }
}
@media screen and (-ms-high-contrast: active) and (min-width: 1440px), (-ms-high-contrast: none) and (min-width: 1440px) {
  .carousel--peekaboo::before {
    background: linear-gradient(to right, #ffffff 0%, transparent 75%, transparent 100%);
  }
  .carousel--peekaboo::after {
    background: linear-gradient(to left, #ffffff 0%, transparent 75%, transparent 100%);
  }
  .s-carousel--alternative .carousel--peekaboo::before {
    background: linear-gradient(to right, #f7f7f7 0%, transparent 75%, transparent 100%);
  }
  .s-carousel--alternative .carousel--peekaboo::after {
    background: linear-gradient(to left, #f7f7f7 0%, transparent 75%, transparent 100%);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
.alert {
  background-color: #f7f7f7;
  color: #4a4e57;
  border-color: #4a4e57;
}

.alert--success {
  background-color: #dff0d8;
  border-color: #01c44e;
}

.alert--error {
  background-color: #f8d7da;
  border-color: #d9121f;
}

.alert--warning {
  background-color: #fff9e8;
  border-color: #fea861;
}

.alert--info {
  background-color: #d1ecf1;
  border-color: #3244ff;
}

.alert__icon,
.alert__close {
  color: #4a4e57;
}
.alert--success .alert__icon,
.alert--success .alert__close {
  color: #01c44e;
}
.alert--error .alert__icon,
.alert--error .alert__close {
  color: #d9121f;
}
.alert--warning .alert__icon,
.alert--warning .alert__close {
  color: #fea861;
}
.alert--info .alert__icon,
.alert--info .alert__close {
  color: #3244ff;
}

/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .footer__social-icons svg {
    width: 16px;
  }
  .footer__ds-logo svg {
    width: 170px;
  }
  .footer__partners > a {
    width: 30px;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-breadcrumbs {
    background-color: #f7f7f7;
  }
  .t-discover .s-breadcrumbs, .t-air-quality .s-breadcrumbs, .t-activist-engineering .s-breadcrumbs {
    background-color: #40ceb7;
  }
  .t-forum .s-breadcrumbs {
    background-color: #40b2cf;
  }
  .t-learn .s-breadcrumbs, .t-grass-roots-education .s-breadcrumbs, .t-student-innovation .s-breadcrumbs, .t-learning-and-skills .s-breadcrumbs, .t-opportunities .s-breadcrumbs {
    background-color: #41d37a;
  }
  .t-resources .s-breadcrumbs {
    background-color: #ffe44b;
  }
  .t-services .s-breadcrumbs {
    background-color: #fea861;
  }
  .t-software .s-breadcrumbs, .t-software-ds-pcb .s-breadcrumbs, .t-software-ds-pcb-pro .s-breadcrumbs, .t-software-dse .s-breadcrumbs, .t-software-dsm .s-breadcrumbs, .t-software-pcb-compare .s-breadcrumbs, .t-software-ds-pcb-v10 .s-breadcrumbs, .t-software-ds-pcb-pro-v10 .s-breadcrumbs, .t-software-pcb-compare-v10 .s-breadcrumbs {
    background-color: #ddbfe5;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .forum-listing-group__handle {
    border-color: #f7f7f7;
  }
  .t-discover .forum-listing-group__handle {
    border-color: #00bf9f;
  }
  .t-air-quality .forum-listing-group__handle {
    border-color: #00bf9f;
  }
  .t-forum .forum-listing-group__handle {
    border-color: #0098bf;
  }
  .t-home .forum-listing-group__handle {
    border-color: #e36666;
  }
  .t-learn .forum-listing-group__handle {
    border-color: #01c44e;
  }
  .t-grass-roots-education .forum-listing-group__handle {
    border-color: #01c44e;
  }
  .t-resources .forum-listing-group__handle {
    border-color: #ffdb0f;
  }
  .t-services .forum-listing-group__handle {
    border-color: #ff8b2d;
  }
  .t-software .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-dse .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-dsm .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-pcb-compare .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-draftsight .forum-listing-group__handle {
    border-color: #d1aadc;
  }
  .t-brand-2022 .forum-listing-group__handle {
    border-color: #69141e;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .w-header {
    position: fixed;
    top: 0;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .search-result-metadata {
    flex: 1 1;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .tags__tag {
    padding-left: 12px;
  }
  .tags__tag:first-child {
    padding-left: 0;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active) and (min-width: 480px), (-ms-high-contrast: none) and (min-width: 480px) {
  .add-comment__submit {
    max-width: 240px;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-hierarchy-deck .d-hierarchy-deck {
    width: calc(33.3333333333% - 10.6666666667px);
    margin-top: 8px;
    margin-bottom: 8px;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-home-deck .d-home-deck {
    margin-top: 8px;
    margin-bottom: 8px;
  }
  .s-home-deck__feature-card-1,
  .s-home-deck__feature-card-2 {
    width: calc(50% - 8px);
  }
  .s-home-deck__card-3,
  .s-home-deck__card-4,
  .s-home-deck__card-5,
  .s-home-deck__card-6,
  .s-home-deck__card-7,
  .s-home-deck__card-8 {
    width: calc(33.3333333333% - 10.6666666667px);
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-extravaganza-deck::after {
    content: "";
    display: table;
    clear: both;
  }
  .s-extravaganza-deck .d-extravaganza-deck {
    width: calc(50% - 8px);
    margin-top: 8px;
    margin-bottom: 8px;
  }
  .s-extravaganza-deck .s-extravaganza-deck__feature-card-1 {
    float: left;
  }
  .s-extravaganza-deck .s-extravaganza-deck__card-2 {
    float: right;
  }
  .s-extravaganza-deck .s-extravaganza-deck__card-3 {
    float: right;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-carousel {
    background: #ffffff;
  }
  .s-carousel--alternative {
    background: #f7f7f7;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-hero {
    background-color: #f7f7f7;
  }
  .t-discover .s-hero {
    background-color: #00bf9f;
  }
  .t-air-quality .s-hero {
    background-color: #00bf9f;
  }
  .t-forum .s-hero {
    background-color: #0098bf;
  }
  .t-home .s-hero {
    background-color: #e36666;
  }
  .t-learn .s-hero {
    background-color: #01c44e;
  }
  .t-grass-roots-education .s-hero {
    background-color: #01c44e;
  }
  .t-resources .s-hero {
    background-color: #ffdb0f;
  }
  .t-services .s-hero {
    background-color: #ff8b2d;
  }
  .t-software .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .s-hero {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .s-hero {
    background-color: #d1aadc;
  }
  .t-software-dse .s-hero {
    background-color: #d1aadc;
  }
  .t-software-dsm .s-hero {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare .s-hero {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .s-hero {
    background-color: #d1aadc;
  }
  .t-draftsight .s-hero {
    background-color: #d1aadc;
  }
  .t-brand-2022 .s-hero {
    background-color: #69141e;
  }
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .hero__title,
  .hero__content {
    align-self: flex-start;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .s-cta {
    background-color: #f7f7f7;
  }
  .t-discover .s-cta {
    background-color: #00bf9f;
  }
  .t-air-quality .s-cta {
    background-color: #00bf9f;
  }
  .t-forum .s-cta {
    background-color: #0098bf;
  }
  .t-home .s-cta {
    background-color: #e36666;
  }
  .t-learn .s-cta {
    background-color: #01c44e;
  }
  .t-grass-roots-education .s-cta {
    background-color: #01c44e;
  }
  .t-resources .s-cta {
    background-color: #ffdb0f;
  }
  .t-services .s-cta {
    background-color: #ff8b2d;
  }
  .t-software .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .s-cta {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .s-cta {
    background-color: #d1aadc;
  }
  .t-software-dse .s-cta {
    background-color: #d1aadc;
  }
  .t-software-dsm .s-cta {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare .s-cta {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .s-cta {
    background-color: #d1aadc;
  }
  .t-draftsight .s-cta {
    background-color: #d1aadc;
  }
  .t-brand-2022 .s-cta {
    background-color: #69141e;
  }
}
/**
 * This file is read by the styleguide to automatically produce the list of colours names and variables
 * in the General/Colours page.
 *
 * It will assume any line beginning with an "$" is a colour definition line, and will ignore all others.
 */
/**
 * Main site colours
 */
/**
 * Brand 2022 colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * ContentBox
 * Gives an element a raised appearance and rounded corners.
 *
 * To be used as follows:
 * @include contentBox;
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  main {
    margin-top: 56px;
  }
}
/* oswald-cyrillic-ext-400-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-ext-400-normal.7b46ac36.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-ext-400-normal.cc2175de.woff) format("woff");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* oswald-cyrillic-400-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-400-normal.2ac7a565.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-400-normal.d52bf3ed.woff) format("woff");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* oswald-vietnamese-400-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/oswald-vietnamese-400-normal.41a32b05.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-vietnamese-400-normal.28224d2b.woff) format("woff");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* oswald-latin-ext-400-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/oswald-latin-ext-400-normal.9bef1115.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-latin-ext-400-normal.669a0886.woff) format("woff");
  unicode-range: U+0100-02AF, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* oswald-latin-400-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/oswald-latin-400-normal.37ffdd26.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-latin-400-normal.29b8172d.woff) format("woff");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* oswald-cyrillic-ext-700-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-ext-700-normal.99241c2d.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-ext-700-normal.75490ecc.woff) format("woff");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* oswald-cyrillic-700-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-700-normal.1a083d17.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-cyrillic-700-normal.d8944968.woff) format("woff");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* oswald-vietnamese-700-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/oswald-vietnamese-700-normal.c0a8b0eb.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-vietnamese-700-normal.a196cd7f.woff) format("woff");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* oswald-latin-ext-700-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/oswald-latin-ext-700-normal.050049ff.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-latin-ext-700-normal.ff3ae353.woff) format("woff");
  unicode-range: U+0100-02AF, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* oswald-latin-700-normal */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-display: var(--fontsource-display, swap);
  font-weight: 700;
  src: url(/7d751ad7/10.1.0/fonts/oswald-latin-700-normal.c844a55c.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/oswald-latin-700-normal.8e9db2e1.woff) format("woff");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/**
  * Material icons
  */
/* material-icons-rounded-all-400-normal*/
@font-face {
  font-family: "Material Icons Rounded";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/7d751ad7/10.1.0/fonts/material-icons-rounded-all-400-normal.1824e753.woff2) format("woff2"), url(/7d751ad7/10.1.0/fonts/material-icons-rounded-all-400-normal.6d0b4901.woff) format("woff");
}
.material-icons-rounded {
  font-family: "Material Icons Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px; /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
}
