@import url(https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap);
@import url(https://fonts.googleapis.com/icon?family=Material+Icons+Round);
/**
 * Vendor Styles
 */
/**
  * Base styling
  */
/**
  * Components - objects
  */
/**
  * Components - blocks
  */
/**
  * Components - structures
  */
/**
  * Utilities
  */
/**
  * IE specific styling
  */
/**
  * Fonts
  */
/**
  * Material icons
  */
/* 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;
}

@-webkit-keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes scaleOut {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
@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;
  -webkit-animation-name: scaleIn;
          animation-name: scaleIn;
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-timing-function: ease-out;
          animation-timing-function: ease-out;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
  -webkit-animation-name: scaleOut;
          animation-name: scaleOut;
  -webkit-animation-duration: 0.2s;
          animation-duration: 0.2s;
  -webkit-animation-timing-function: ease-out;
          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='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M8.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'/></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
 */
/**
 * Theme 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;
 *
 */
* {
  box-sizing: border-box;
}

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

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

body {
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-y: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
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;
}

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%;
  vertical-align: middle;
  border: 0;
}

strong,
b {
  font-weight: 700;
}

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

body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
}

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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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-branded-text {
  font-weight: 700;
}

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

.o-button {
  font-family: "Roboto", Arial, sans-serif;
  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: #ffffff;
  border-radius: 4px;
  background-color: #1d1d1b;
  cursor: pointer;
}
.o-button:hover {
  background-color: #4a4e57;
}
.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: #1d1d1b;
  background-color: #edeff1;
}
.o-button--secondary:hover {
  background-color: #bcbcbc;
}

.o-button--active {
  background-color: #bcbcbc;
}

.o-button--ghost {
  color: #1d1d1b;
  background-color: transparent;
}
.o-button--ghost:hover {
  color: #1d1d1b;
  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 Round";
  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 Round";
  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
 */
/**
 * Theme 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;
 *
 */
.form__errors {
  margin-bottom: 24px;
}

.form__error {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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 Round";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.o-checkbox__help {
  font-family: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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 Round";
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  top: 0;
  left: 0;
}

.o-radio__help {
  font-family: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.select-field {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}

.select-field__input {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .select-field__label {
  color: #d9121f;
}
.select-field__label a {
  font-weight: 700;
}
.select-field__label a:hover {
  color: #d9121f;
}

.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: "Roboto", Arial, sans-serif;
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M8.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'/></svg>");
  background-repeat: no-repeat;
  background-position: calc(100% - 8px) 50%;
  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
 */
/**
 * Theme 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;
 *
 */
.input-field {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
}

.input-field__input {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .input-field__label {
  color: #d9121f;
}
.input-field__label a {
  font-weight: 700;
}
.input-field__label a:hover {
  color: #d9121f;
}

.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: "Roboto", Arial, sans-serif;
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.o-bar-input {
  border: none;
  margin: 0;
  padding: 4px 0 8px;
}

.o-bar-input__title {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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 Round";
  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-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;
  -webkit-animation: spin 0.6s linear infinite;
          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;
}

@-webkit-keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  position: absolute;
  left: -10000px;
  padding: 8px;
  z-index: 1;
  background-color: #ffffff;
}
.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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #1d1d1b;
  border-bottom: solid 1px #bcbcbc;
}
.o-table td {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
}

.o-body-large-bold {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}

.o-body-regular {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.o-body-bold {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
}

.o-body-supporting {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
}

.o-banner-title {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #ffffff;
}

.o-landing-page-title {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
  color: #4a4e57;
}
@media (min-width: 768px) {
  .o-section-title {
    font-size: 32px;
    line-height: 40px;
  }
}

.o-section-sub-title {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #4a4e57;
}

.o-card-title--small {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
}

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

.advert.advert--placeholder {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  position: relative;
  padding-top: 12px;
  padding-left: 24px;
  padding-bottom: 12px;
  padding-right: 64px;
  color: var(--alert-text-colour);
  background-color: var(--alert-bg-colour);
  border: 1px solid var(--alert-border-colour);
  border-radius: 4px;
}

.alert--success {
  --alert-bg-colour: #dff0d8;
  --alert-text-colour: #3c763d;
  --alert-border-colour: #d6e9c6;
}

.alert--error {
  --alert-bg-colour: #f8d7da;
  --alert-text-colour: #721c24;
  --alert-border-colour: #f5c6cb;
}

.alert--warning {
  --alert-bg-colour: #fff3cd;
  --alert-text-colour: #856404;
  --alert-border-colour: #ffeeba;
}

.alert--info {
  --alert-bg-colour: #d1ecf1;
  --alert-text-colour: #0c5460;
  --alert-border-colour: #bee5eb;
}

.alert__close {
  position: absolute;
  right: 0;
  top: 0;
  height: 45px;
  width: 40px;
  color: var(--alert-text-colour);
  content: "";
}
.alert__close::before {
  content: "close";
  font-family: "Material Icons Round";
  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;
}

.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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  margin-left: 16px;
  color: #3244ff;
}

.avatar--large-username .avatar__username {
  font-family: "Roboto", Arial, sans-serif;
  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 {
  width: 100%;
  padding: 8px 16px;
  background-color: var(--theme-alt-bg-colour);
  display: none;
}
@media (min-width: 768px) {
  .s-breadcrumbs {
    display: block;
  }
}

.breadcrumbs {
  font-family: "Roboto", Arial, sans-serif;
  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: ">";
}

/**
 * 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
 */
/**
 * Theme 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;
 *
 */
/**
 * 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
 */
/**
 * Theme 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;
 *
 */
.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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

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

@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;
}
.product-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.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 Round";
  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 Round";
  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
 */
/**
 * Theme 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;
 *
 */
.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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

@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;
}
.card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.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: "Roboto", Arial, sans-serif;
  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%;
}

/**
 * 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
 */
/**
 * Theme 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;
 *
 */
.card-meta {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  display: flex;
  justify-content: space-between;
  color: #4a4e57;
  font-family: "Roboto", Arial, sans-serif;
  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: text-top;
  speak: none;
}

.card-meta__views::before {
  content: "remove_red_eye";
  font-family: "Material Icons Round";
  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 Round";
  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 Round";
  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";
}

/**
 * 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
 */
/**
 * Theme 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;
 *
 */
.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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #4a4e57;
}
@media (min-width: 992px) {
  .tech-card__label {
    font-family: "Roboto", Arial, sans-serif;
    font-size: 18px;
    line-height: 28px;
    font-weight: 700;
    max-width: 100%;
    padding: 16px 24px 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
 */
/**
 * Theme 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;
 *
 */
.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;
}
.info-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.info-card__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #4a4e57;
  padding: 24px;
}
.info-card__body h3 {
  font-family: "Roboto", Arial, sans-serif;
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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 Round";
  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;
}

/**
 * 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
 */
/**
 * Theme 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;
 *
 */
.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;
}
.post-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
@media (min-width: 768px) {
  .post-card {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
  }
}

.post-card__metadata {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
    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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.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;
}
.related-article-card:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}

.related-article-card__title {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #d9121f;
}

.related-article-card__author {
  font-family: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.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;
}
.search-result:hover {
  transform: scale(1.02);
  box-shadow: 2px 6px 34px 12px rgba(29, 29, 27, 0.24);
}
@media (min-width: 768px) {
  .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--product .search-result__image-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 50%;
}
@media (min-width: 768px) {
  .search-result--product .search-result__image-container {
    height: 103px;
    width: 140px;
    padding-top: 0;
  }
}

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

.search-result__image-overlay {
  position: absolute;
  bottom: 4px;
  left: 4px;
}

.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__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;
  }
}

/**
 * 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
 */
/**
 * Theme 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;
 *
 */
.search-result-metadata {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-direction: column;
}

.search-result-metadata__headline {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.search-result-metadata__content_parent {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.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 Round";
  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 Round";
  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: -webkit-grab;
  cursor: grab;
}

.glide--dragging {
  cursor: -webkit-grabbing;
  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 Round";
  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 Round";
  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: "";
  }
}

.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 Round";
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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;
}

.expandable-item {
  color: #1d1d1b;
  border-bottom: 1px solid #edeff1;
  padding: 0;
}

.expandable-item__handle {
  font-family: "Roboto", Arial, sans-serif;
  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 Round";
  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 Round";
  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";
}

.expandable-item__drawer {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding-top: 8px;
  padding-bottom: 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: "Roboto", Arial, sans-serif;
  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;
}

.footer {
  font-family: "Roboto", Arial, sans-serif;
  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);
}

.footer__rs-group {
  margin-bottom: 24px;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .footer__rs-group {
    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;
}

.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;
}

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

.geo-notice__content {
  font-family: "Roboto", Arial, sans-serif;
  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;
  box-shadow: 0 2px 30px 0 rgba(188, 188, 188, 0.38);
  position: -webkit-sticky;
  position: sticky;
  z-index: 10;
  top: 0;
}
.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;
}

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

.header__icons {
  display: flex;
}

@media (min-width: 480px) {
  .header__nav-button {
    margin-left: 24px;
  }
}

.header__full-width-search {
  flex-basis: 100%;
  opacity: 1;
}
.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__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
  pointer-events: none;
  display: inherit;
}
.header-icon:hover .header-icon__label {
  color: #d9121f;
}

.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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  background: #d9121f;
  color: #ffffff;
}

.nav-button {
  display: flex;
  flex-direction: column;
  margin-left: 8px;
  cursor: pointer;
  align-items: center;
}
.nav-button:hover .nav-button__icon {
  background-color: #d9121f;
}

.nav-button__icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #1d1d1b;
  box-shadow: 0 2px 7px 0 rgba(29, 29, 27, 0.27);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.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);
}

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

.expanding-search__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
}
.expanding-search__label > span {
  opacity: 1;
  transition: opacity 0.2s;
}

.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
 */
/**
 * Theme 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;
 *
 */
.full-width-search {
  margin-top: 16px;
  width: 100%;
  position: relative;
  border-bottom: 1px solid #4a4e57;
}
@media (min-width: 768px) {
  .full-width-search {
    display: none;
  }
}

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

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

.header-search__label {
  font-family: "Roboto", Arial, sans-serif;
  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 Round";
  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;
}

.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 Round";
  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
 */
/**
 * Theme 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;
 *
 */
.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;
}

.expanding-search__label {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 12px;
  line-height: 20px;
  color: #4a4e57;
}
.expanding-search__label > span {
  opacity: 1;
  transition: opacity 0.2s;
}

.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
 */
/**
 * Theme 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;
 *
 */
.full-width-search {
  margin-top: 16px;
  width: 100%;
  position: relative;
  border-bottom: 1px solid #4a4e57;
}
@media (min-width: 768px) {
  .full-width-search {
    display: 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
 */
/**
 * Theme 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;
 *
 */
.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;
  }

  .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: "";
    position: absolute;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid rgba(225, 225, 225, 0.5);
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    top: -6px;
  }
}
.is-dropdown-open .dropdown-menu-list {
  display: block;
  -webkit-animation: dropDown 0.2s ease-in both;
          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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
    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
 */
/**
 * Theme 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;
 *
 */
.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
 */
/**
 * Theme 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;
 *
 */
/**
 * 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
 */
/**
 * Theme 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;
 *
 */
.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 Round";
    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 Round";
    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 Round";
    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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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;
  -webkit-animation: fadeIn 0.3s ease-in both;
          animation: fadeIn 0.3s ease-in both;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
    transform: translate3d(0, -2%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@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
 */
/**
 * Theme 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;
 *
 */
@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 Round";
  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: "Roboto", Arial, sans-serif;
  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
 */
/**
 * Theme 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;
 *
 */
.site-nav-footer {
  font-family: "Roboto", Arial, sans-serif;
  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/6.8.0/images/css/Discover_479px_small.db9c0786..png);
}
@media (min-width: 480px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Discover_767x460_medium_small.5307201a..png);
  }
}
@media (min-width: 768px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Discover_991x460_medium.f19e96b1..png);
  }
}
@media (min-width: 992px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Discover_1244x460_medium_large.ad1e2b65..png);
  }
}
@media (min-width: 1440px) {
  .t-discover .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Discover_1244x460_large.51038b5a..png);
  }
}
.t-air-quality .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Air_Quality_479px_small.8bf8b2d2..png);
}
@media (min-width: 480px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Air_Quality_767x460_medium_small.c369065d..png);
  }
}
@media (min-width: 768px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Air_Quality_991x460_medium.100d0e5f..png);
  }
}
@media (min-width: 992px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Air_Quality_1244x460_medium_large.7ced1369..png);
  }
}
@media (min-width: 1440px) {
  .t-air-quality .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Air_Quality_1244x460_large.e2eb60e4..png);
  }
}
.t-activist-engineering .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Activist_Engineering_479px_small.5f990271..png);
}
@media (min-width: 480px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Activist_Engineering_767x460_medium_small.a1629e4a..png);
  }
}
@media (min-width: 768px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Activist_Engineering_991x460_medium.17af98d1..png);
  }
}
@media (min-width: 992px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Activist_Engineering_1244x460_medium_large.d865b9b9..png);
  }
}
@media (min-width: 1440px) {
  .t-activist-engineering .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Activist_Engineering_1244x460_large.ded0ac89..png);
  }
}
.t-forum .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Forum_479px_small.fff7a4c5..png);
}
@media (min-width: 480px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Forum_767x460_medium_small.2dd318cc..png);
  }
}
@media (min-width: 768px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Forum_991x460_medium.e58ca979..png);
  }
}
@media (min-width: 992px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Forum_1244x460_medium_large.18d76778..png);
  }
}
@media (min-width: 1440px) {
  .t-forum .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Forum_1244x460_large.b4b206fe..png);
  }
}
.t-home .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Home_50_479px_small.5f6ac0a8..png);
}
@media (min-width: 480px) {
  .t-home .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Home_50_767x460_medium_small.126dacf1..png);
  }
}
@media (min-width: 768px) {
  .t-home .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Home_50_991x460_medium.4175a624..png);
  }
}
@media (min-width: 992px) {
  .t-home .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Home_50_1244x460_medium_large.5b0e4564..png);
  }
}
@media (min-width: 1440px) {
  .t-home .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Home_50_1244x460_large.c22acc69..png);
  }
}
.t-learn .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Learn_479px_small.93f1b8f7..png);
}
@media (min-width: 480px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Learn_767x460_medium_small.7c8ad4ed..png);
  }
}
@media (min-width: 768px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Learn_991x460_medium.d83fc692..png);
  }
}
@media (min-width: 992px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Learn_1244x460_medium_large.2a813a27..png);
  }
}
@media (min-width: 1440px) {
  .t-learn .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Learn_1244x460_large.7b58a295..png);
  }
}
.t-resources .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Resources_479px_small.bf9ccff2..png);
}
@media (min-width: 480px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Resources_767x460_medium_small.91d8377c..png);
  }
}
@media (min-width: 768px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Resources_991x460_medium.627278ee..png);
  }
}
@media (min-width: 992px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Resources_1244x460_medium_large.9d71dc2f..png);
  }
}
@media (min-width: 1440px) {
  .t-resources .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Resources_1244x460_large.e44622ba..png);
  }
}
.t-services .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Services_479px_small.0b6ece1f..png);
}
@media (min-width: 480px) {
  .t-services .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Services_767x460_medium_small.9d40c0fd..png);
  }
}
@media (min-width: 768px) {
  .t-services .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Services_991x460_medium.05ffe8eb..png);
  }
}
@media (min-width: 992px) {
  .t-services .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Services_1244x460_medium_large.fae2a49e..png);
  }
}
@media (min-width: 1440px) {
  .t-services .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Services_1244x460_large.c0278584..png);
  }
}
.t-software .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Software_479px_small.7239292d..png);
}
@media (min-width: 480px) {
  .t-software .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Software_767x460_medium_small.cc53e4c3..png);
  }
}
@media (min-width: 768px) {
  .t-software .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Software_991x460_medium.87e1b37d..png);
  }
}
@media (min-width: 992px) {
  .t-software .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Software_1244x460_medium_large.9eebe8b2..png);
  }
}
@media (min-width: 1440px) {
  .t-software .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Software_1244x460_large.eb5596b8..png);
  }
}
.t-software-ds-pcb .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_479px_small.7da4f4eb..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_767x460_medium_small.ff214086..png);
  }
}
@media (min-width: 768px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_991x460_medium.6157e6f0..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_1244x460_medium_large.02beb5d3..png);
  }
}
@media (min-width: 1440px) {
  .t-software-ds-pcb .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_1244x460_large.6c30cc60..png);
  }
}
.t-software-ds-pcb-pro .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_Pro_479px_small.e7d90bff..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/6.8.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/6.8.0/images/css/DS_PCB_Pro_991x460_medium.1009f10a..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-pro .hero {
    background-image: url(/7d751ad7/6.8.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/6.8.0/images/css/DS_PCB_Pro_1244x460_large.225c1cfc..png);
  }
}
.t-software-dse .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/DSE_479px_small.92fd113d..png);
}
@media (min-width: 480px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSE_767x460_medium_small.e4ab17f8..png);
  }
}
@media (min-width: 768px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSE_991x460_medium.375b091b..png);
  }
}
@media (min-width: 992px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSE_1244x460_medium_large.82e73aa7..png);
  }
}
@media (min-width: 1440px) {
  .t-software-dse .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSE_1244x460_large.820cb016..png);
  }
}
.t-software-dsm .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/DSM_479px_small.f9984d7a..png);
}
@media (min-width: 480px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSM_767x460_medium_small.8003cf77..png);
  }
}
@media (min-width: 768px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSM_991x460_medium.3fef4c40..png);
  }
}
@media (min-width: 992px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSM_1244x460_medium_large.58fa209b..png);
  }
}
@media (min-width: 1440px) {
  .t-software-dsm .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/DSM_1244x460_large.722fab34..png);
  }
}
.t-software-pcb-compare .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/PCB_Comparison_479px_small.404e7d9e..png);
}
@media (min-width: 480px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/PCB_Comparison_767x460_medium_small.1c79725d..png);
  }
}
@media (min-width: 768px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/PCB_Comparison_991x460_medium.b043caa0..png);
  }
}
@media (min-width: 992px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/PCB_Comparison_1244x460_medium_large.33e6a3a1..png);
  }
}
@media (min-width: 1440px) {
  .t-software-pcb-compare .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/PCB_Comparison_1244x460_large.937b5874..png);
  }
}
.t-software-ds-pcb-v10 .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/DS_PCB_Nano_479px_small.8c7d2c2f..png);
}
@media (min-width: 480px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/6.8.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/6.8.0/images/css/DS_PCB_Nano_991x460_medium.faee39f1..png);
  }
}
@media (min-width: 992px) {
  .t-software-ds-pcb-v10 .hero {
    background-image: url(/7d751ad7/6.8.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/6.8.0/images/css/DS_PCB_Nano_1244x460_large.1b141337..png);
  }
}
.t-software-ds-pcb-pro-v10 .hero {
  background-image: url(/7d751ad7/6.8.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/6.8.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/6.8.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/6.8.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/6.8.0/images/css/DS_PCB_Pro_Nano_1244x460_large.d8047dbf..png);
  }
}
.t-software-pcb-compare-v10 .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/PCB_Comparison_Nano_479px_small.d900f9aa..png);
}
@media (min-width: 480px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/6.8.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/6.8.0/images/css/PCB_Comparison_Nano_991x460_medium.e738dcba..png);
  }
}
@media (min-width: 992px) {
  .t-software-pcb-compare-v10 .hero {
    background-image: url(/7d751ad7/6.8.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/6.8.0/images/css/PCB_Comparison_Nano_1244x460_large.b87b5dc5..png);
  }
}
.t-grass-roots-education .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/GRE_479px_small.7f90d3cc..png);
}
@media (min-width: 480px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/GRE_767x460_medium_small.d3751982..png);
  }
}
@media (min-width: 768px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/GRE_991x460_medium.2264f877..png);
  }
}
@media (min-width: 992px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/GRE_1244x460_medium_large.9621bb48..png);
  }
}
@media (min-width: 1440px) {
  .t-grass-roots-education .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/GRE_1244x460_large.d794cd70..png);
  }
}
.t-student-innovation .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/INNO_479px_small.daea047e..png);
}
@media (min-width: 480px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/INNO_767x460_medium_small.b7fae7ac..png);
  }
}
@media (min-width: 768px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/INNO_991x460_medium.9705ee6e..png);
  }
}
@media (min-width: 992px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/INNO_1244x460_medium_large.9ca1e35f..png);
  }
}
@media (min-width: 1440px) {
  .t-student-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/INNO_1244x460_large.824dd582..png);
  }
}
.t-learning-and-skills .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/LAS_479px_small.7daa71a5..png);
}
@media (min-width: 480px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/LAS_767x460_medium_small.485f1718..png);
  }
}
@media (min-width: 768px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/LAS_991x460_medium.5a516bd5..png);
  }
}
@media (min-width: 992px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/LAS_1244x460_medium_large.6efc9522..png);
  }
}
@media (min-width: 1440px) {
  .t-learning-and-skills .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/LAS_1244x460_large.e4e71113..png);
  }
}
.t-opportunities .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/OPP_479px_small.5e0bfd1d..png);
}
@media (min-width: 480px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/OPP_767x460_medium_small.2d25c425..png);
  }
}
@media (min-width: 768px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/OPP_991x460_medium.c3cd03d7..png);
  }
}
@media (min-width: 992px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/OPP_1244x460_medium_large.e3302438..png);
  }
}
@media (min-width: 1440px) {
  .t-opportunities .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/OPP_1244x460_large.af77043a..png);
  }
}
.t-draftsight .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Draftsight_479px_small.6da9b2b0..png);
}
@media (min-width: 480px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Draftsight_767x460_medium_small.1e22ca0d..png);
  }
}
@media (min-width: 768px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Draftsight_991x460_medium.d1579c7a..png);
  }
}
@media (min-width: 992px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Draftsight_1244x460_medium_large.84c43df0..png);
  }
}
@media (min-width: 1440px) {
  .t-draftsight .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Draftsight_1244x460_large.ce14e668..png);
  }
}
.t-innovation .hero {
  background-image: url(/7d751ad7/6.8.0/images/css/Innovation_479px_small.3863ffaf..png);
}
@media (min-width: 480px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Innovation_767x460_medium_small.4f19a71a..png);
  }
}
@media (min-width: 768px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Innovation_991x460_medium.96b75170..png);
  }
}
@media (min-width: 992px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/6.8.0/images/css/Innovation_1244x460_medium_large.2b0d0c1e..png);
  }
}
@media (min-width: 1440px) {
  .t-innovation .hero {
    background-image: url(/7d751ad7/6.8.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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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 Round";
  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 Round";
  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;
  -webkit-animation: raiseIn 0.2s ease-in both;
          animation: raiseIn 0.2s ease-in both;
}
@-webkit-keyframes raiseIn {
  from {
    opacity: 0;
    transform: translate3d(0, 0%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, -2%, 0);
  }
}
@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 Round";
  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 Round";
    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 Round";
  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 Round";
    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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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%;
  }
}

body.has-open-modal {
  overflow: hidden;
}

.w-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 50;
  background: rgba(0, 0, 0, 0.75);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

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

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

.modal__header {
  font-family: "Roboto", Arial, sans-serif;
  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;
  position: absolute;
  right: 0;
  top: 0;
}
@media (min-width: 768px) {
  .modal__close {
    right: 5px;
    top: 5px;
  }
}
.modal__close > span {
  pointer-events: none;
}
.modal--media .modal__close {
  color: #ffffff;
  top: -45px;
  right: 0;
}

.modal__body {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding: 24px;
  flex: 1 1 auto;
  overflow: auto;
}

.modal__footer {
  padding: 12px 24px;
  border-top: 1px solid #f7f7f7;
  display: flex;
  justify-content: flex-start;
}

.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: "Roboto", Arial, sans-serif;
  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 Round";
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  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__input {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .search__label {
  color: #d9121f;
}
.search__label a {
  font-weight: 700;
}
.search__label a:hover {
  color: #d9121f;
}

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

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

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

.search__error {
  font-family: "Roboto", Arial, sans-serif;
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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__input {
  font-family: "Roboto", Arial, sans-serif;
  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: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  color: #1d1d1b;
  margin-bottom: 8px;
}
.is-invalid > .search-select__label {
  color: #d9121f;
}
.search-select__label a {
  font-weight: 700;
}
.search-select__label a:hover {
  color: #d9121f;
}

.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: "Roboto", Arial, sans-serif;
  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 Round";
  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: "Roboto", Arial, sans-serif;
  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 Round";
    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 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: "Roboto", Arial, sans-serif;
  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 Round";
  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: 767px) {
  .search-results__filter-bar {
    display: none;
  }
}

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

.search-results__label {
  font-family: "Roboto", Arial, sans-serif;
  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='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M8.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'/></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: "Roboto", Arial, sans-serif;
  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 Round";
  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;
}

.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-wrap: wrap;
  justify-content: center;
}
.s-button-group > .d-button-group {
  margin: 4px 8px;
}

.s-button-group--left-align {
  justify-content: left;
}

.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;
}

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

@media (min-width: 992px) {
  .s-content-with-aside {
    display: flex;
    align-items: flex-start;
    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: 3;
    margin-right: 64px;
    margin-bottom: 0;
  }
}

.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;
}
.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%;
}

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

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

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

.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;
}

.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;
  -webkit-animation: 1s;
          animation: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-name: shimmer;
          animation-name: shimmer;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
}

@-webkit-keyframes shimmer {
  0% {
    background-position: -400px 0;
  }
  100% {
    background-position: 400px 0;
  }
}

@keyframes shimmer {
  0% {
    background-position: -400px 0;
  }
  100% {
    background-position: 400px 0;
  }
}
/**
 * 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
 */
/**
 * Theme 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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
.alert {
  background-color: #f7f7f7;
  color: #4a4e57;
  border-color: #edeff1;
}

.alert--success {
  background-color: #dff0d8;
  color: #3c763d;
  border-color: #d6e9c6;
}

.alert--error {
  background-color: #f8d7da;
  color: #721c24;
  border-color: #f5c6cb;
}

.alert--warning {
  background-color: #fff3cd;
  color: #856404;
  border-color: #ffeeba;
}

.alert--info {
  background-color: #d1ecf1;
  color: #0c5460;
  border-color: #bee5eb;
}

.alert__close {
  color: #4a4e57;
}
.alert--success .alert__close {
  color: #3c763d;
}
.alert--error .alert__close {
  color: #721c24;
}
.alert--warning .alert__close {
  color: #856404;
}
.alert--info .alert__close {
  color: #0c5460;
}

/**
 * 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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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;
  }
}
/**
 * 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
 */
/**
 * Theme 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;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .w-header {
    position: fixed;
    top: 0;
  }
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .vp-banner {
    background-color: #f7f7f7;
  }
  .t-discover .vp-banner {
    background-color: #00bf9f;
  }
  .t-air-quality .vp-banner {
    background-color: #00bf9f;
  }
  .t-forum .vp-banner {
    background-color: #0098bf;
  }
  .t-home .vp-banner {
    background-color: #e36666;
  }
  .t-learn .vp-banner {
    background-color: #01c44e;
  }
  .t-grass-roots-education .vp-banner {
    background-color: #01c44e;
  }
  .t-resources .vp-banner {
    background-color: #ffdb0f;
  }
  .t-services .vp-banner {
    background-color: #ff8b2d;
  }
  .t-software .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-v10 .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-ds-pcb-pro-v10 .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-dse .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-dsm .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare .vp-banner {
    background-color: #d1aadc;
  }
  .t-software-pcb-compare-v10 .vp-banner {
    background-color: #d1aadc;
  }
  .t-draftsight .vp-banner {
    background-color: #d1aadc;
  }
}
/**
 * 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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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
 */
/**
 * Theme 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;
 *
 */
@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;
  }
}
@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
 */
/**
 * Theme 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;
 *
 */
@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;
  }
}
/**
 * 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
 */
/**
 * Theme 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;
 *
 */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  main {
    margin-top: 56px;
  }
}
