/**
 * Components - blocks
 */
/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.product-page__section-title {
  display: none;
}
@media (min-width: 768px) {
  .product-page__section-title {
    font-family: var(--header-font);
    font-weight: 700;
    font-size: 28px;
    line-height: 36px;
    display: block;
    margin-bottom: 24px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .product-page__section-title {
    font-size: 32px;
    line-height: 40px;
  }
}

.product-page__divider {
  max-width: 1244px;
  color: rgba(235, 235, 235, 0.25);
  background-color: rgba(235, 235, 235, 0.25);
  border-color: rgba(235, 235, 235, 0.25);
}

.product-page__expandable-section {
  display: block;
}
@media (min-width: 768px) {
  .product-page__expandable-section {
    display: none;
  }
}

.product-page__handle {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  padding: 24px 40px 24px 24px;
  border-left: 5px solid #ffdb0f;
  position: relative;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-page__handle {
    font-size: 28px;
    line-height: 36px;
  }
}
@media (min-width: 480px) {
  .product-page__handle {
    border-left-width: 10px;
  }
}
.product-page__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;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}
@media (min-width: 480px) {
  .product-page__handle::after {
    font-size: 30px;
  }
}
.product-page__expandable-section[open] .product-page__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";
}
@media (min-width: 480px) {
  .product-page__expandable-section[open] .product-page__handle::after {
    font-size: 30px;
  }
}

.js-details-not-supported .product-page__drawer {
  display: none;
}
.js-details-not-supported[open] .product-page__drawer {
  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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.product-page-heading {
  display: flex;
  flex-direction: column;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-page-heading {
    align-items: flex-start;
  }
}

.product-page-heading__title {
  margin-bottom: 24px;
}

.product-page-heading__metadata {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: flex;
  flex-wrap: wrap;
}

.product-page-heading__metadata-set {
  display: flex;
  flex-wrap: wrap;
}
.product-page-heading__metadata-set::before {
  content: "|";
  speak: none;
  margin-right: 4px;
}
.product-page-heading__metadata-set:first-child::before {
  content: none;
}

.product-page-heading__metadata-label {
  margin-right: 4px;
}
.product-page-heading__metadata-label::after {
  content: ":";
  speak: none;
}

.product-page-heading__metadata-value {
  color: #d9121f;
  font-weight: 700;
  margin-right: 4px;
}

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.product-specifications {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .product-specifications {
    flex-direction: row;
  }
}

.product-specifications__image-container {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .product-specifications__image-container {
    flex-shrink: 0;
    max-width: 33%;
    margin-right: 24px;
  }
}

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

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
@keyframes dropDown {
  from {
    opacity: 0;
    margin-top: calc(var(--dropdown-top-margin) - 10px);
  }
  to {
    opacity: 1;
    margin-top: var(--dropdown-top-margin);
  }
}
.product-specifications-table {
  table-layout: fixed;
  width: 100%;
}

.product-specifications-table__title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.product-specifications-table__data,
.product-specifications-table__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
  overflow: hidden;
}
.product-specifications-table__data:not(:last-child),
.product-specifications-table__header-item:not(:last-child) {
  border-right: 2px solid rgba(188, 188, 188, 0.25);
}

.product-specifications-table__data--no-data {
  padding: 16px 16px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.product-specifications-table__header {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #ebebeb;
}

.product-specifications-table__row {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}

.is-retracted .product-specifications-table__row--transient {
  display: none;
}

.product-specifications-table__button {
  width: 100%;
  max-width: 320px;
  position: relative;
}
.product-specifications-table__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.product-specifications-table__button--expand {
  display: none;
}
.product-specifications-table__button--expand::after {
  content: "keyboard_arrow_down";
  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-retracted .product-specifications-table__button--expand {
  display: inline-block;
}

.product-specifications-table__button--collapse::after {
  content: "keyboard_arrow_up";
  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-retracted .product-specifications-table__button--collapse {
  display: none;
}

.product-specifications-table__footer {
  text-align: center;
  background-color: #ebebeb;
}

.product-specifications-table--skeleton .product-specifications-table__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-name: moveBackground;
  animation-iteration-count: infinite;
  animation-direction: normal;
}

@keyframes moveBackground {
  from {
    background-position: top right;
  }
  to {
    background-position: bottom left;
  }
}
.product-specifications-table--skeleton {
  position: relative;
}

.product-specifications-table__loading-indicator {
  display: none;
}
.product-specifications-table--skeleton .product-specifications-table__loading-indicator {
  position: absolute;
  top: 20px;
  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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.technical-references {
  position: relative;
}

.technical-references__table {
  display: none;
}
@media (min-width: 768px) {
  .technical-references__table {
    display: table;
  }
}

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.technical-references-table {
  table-layout: fixed;
  width: 100%;
}

.technical-references-table__title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.technical-references-table__data,
.technical-references-table__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
  overflow: hidden;
}
.technical-references-table__data:not(:last-child),
.technical-references-table__header-item:not(:last-child) {
  border-right: 2px solid rgba(188, 188, 188, 0.25);
}

.technical-references-table__data--no-data {
  padding: 16px 16px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.technical-references-table__header {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #ebebeb;
}

.technical-references-table__row {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}

.is-retracted .technical-references-table__row--transient {
  display: none;
}

.technical-references-table__button {
  width: 100%;
  max-width: 320px;
  position: relative;
}
.technical-references-table__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.technical-references-table__button--expand {
  display: none;
}
.technical-references-table__button--expand::after {
  content: "keyboard_arrow_down";
  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-retracted .technical-references-table__button--expand {
  display: inline-block;
}

.technical-references-table__button--collapse::after {
  content: "keyboard_arrow_up";
  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-retracted .technical-references-table__button--collapse {
  display: none;
}

.technical-references-table__footer {
  text-align: center;
  background-color: #ebebeb;
}

.technical-references--skeleton .technical-references-table__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-name: moveBackground;
  animation-iteration-count: infinite;
  animation-direction: normal;
}

.technical-references-table__data--type {
  position: relative;
  padding-left: 56px;
}
.technical-references-table__data--type::before {
  content: "description";
  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;
  speak: none;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.technical-references-table__data--download span {
  display: flex;
  align-items: center;
}

.technical-references-table__download-link {
  margin-left: auto;
}
.technical-references-table__download-link::after {
  content: "save_alt";
  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;
  vertical-align: top;
}

.technical-references-table__alternative-download-link {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.technical-references-table__alternative-download-link:hover {
  text-decoration: underline;
}

.technical-references-table__loading-indicator {
  display: none;
}
.technical-references--skeleton .technical-references-table__loading-indicator {
  position: absolute;
  top: 20px;
  display: block;
}

.technical-references-table__button {
  outline-offset: 3px;
}

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.technical-reference-card {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: inline-flex;
  flex-direction: column;
}
.technical-references--skeleton .technical-reference-card {
  width: 100%;
}

.technical-reference-card__header,
.technical-reference-card__body,
.technical-reference-card__footer {
  padding: 24px;
}

.technical-reference-card__header,
.technical-reference-card__body {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
  display: flex;
}

.technical-reference-card__header::before {
  content: "description";
  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: #1d1d1b;
  speak: none;
  margin-right: 24px;
}

.technical-references--skeleton .technical-reference-card__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-name: moveBackground;
  animation-iteration-count: infinite;
  animation-direction: normal;
  display: block;
}
.technical-references--skeleton .technical-reference-card__body::before {
  display: none;
}
.technical-references--skeleton .technical-reference-card__body .o-loading-indicator {
  margin-top: 20px;
  margin-bottom: 20px;
}

.technical-reference-card__footer-link {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.technical-reference-card__footer-link:hover {
  text-decoration: underline;
}

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.design-references {
  position: relative;
}

.design-references__table {
  display: none;
}
@media (min-width: 768px) {
  .design-references__table {
    display: table;
  }
}

.design-references__status-text {
  font-weight: 700;
}

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.design-references-table {
  table-layout: fixed;
  width: 100%;
}

.design-references-table__title {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  margin-left: 8px;
}

.design-references-table__data,
.design-references-table__header-item {
  text-align: left;
  vertical-align: middle;
  padding: 16px;
  overflow: hidden;
}
.design-references-table__data:not(:last-child),
.design-references-table__header-item:not(:last-child) {
  border-right: 2px solid rgba(188, 188, 188, 0.25);
}

.design-references-table__data--no-data {
  padding: 16px 16px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.design-references-table__header {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  background-color: #ebebeb;
}

.design-references-table__row {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}

.is-retracted .design-references-table__row--transient {
  display: none;
}

.design-references-table__button {
  width: 100%;
  max-width: 320px;
  position: relative;
}
.design-references-table__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.design-references-table__button--expand {
  display: none;
}
.design-references-table__button--expand::after {
  content: "keyboard_arrow_down";
  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-retracted .design-references-table__button--expand {
  display: inline-block;
}

.design-references-table__button--collapse::after {
  content: "keyboard_arrow_up";
  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-retracted .design-references-table__button--collapse {
  display: none;
}

.design-references-table__footer {
  text-align: center;
  background-color: #ebebeb;
}

.design-references--skeleton .design-references-table__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-name: moveBackground;
  animation-iteration-count: infinite;
  animation-direction: normal;
}

.design-references-table__data--type {
  position: relative;
  padding-left: 64px;
}
.design-references-table__data--type::before {
  content: "description";
  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;
  speak: none;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.design-references-table__data--select {
  padding: 0 4px;
}

.design-reference-table__select {
  margin-bottom: 0;
  width: 100%;
}

.design-references-table__download-link {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.design-references-table__download-link:hover {
  text-decoration: underline;
}

.design-reference-table__download-container {
  display: none;
}
.design-reference-table__download-container.is-active {
  display: flex;
}

.design-references-table__loading-indicator {
  display: none;
}
.design-references--skeleton .design-references-table__loading-indicator {
  position: absolute;
  top: 20px;
  display: block;
}

.design-reference-card {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  display: inline-flex;
  flex-direction: column;
}
.technical-references--skeleton .design-reference-card {
  width: 100%;
}

.design-reference-card__header,
.design-reference-card__body,
.design-reference-card__footer {
  padding: 24px;
}

.design-reference-card__header,
.design-reference-card__body {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
  display: flex;
}

.design-reference-card__header::before {
  content: "description";
  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: #1d1d1b;
  speak: none;
  margin-right: 24px;
}

.technical-references--skeleton .design-reference-card__body {
  background-image: linear-gradient(-55deg, #ffffff 25%, #edeff1, #ffffff 75%);
  background-size: 450% auto;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-name: moveBackground;
  animation-iteration-count: infinite;
  animation-direction: normal;
  display: block;
}
.technical-references--skeleton .design-reference-card__body::before {
  display: none;
}
.technical-references--skeleton .design-reference-card__body .o-loading-indicator {
  margin-top: 20px;
  margin-bottom: 20px;
}

.design-reference-card__footer-link {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: #3244ff;
}
.design-reference-card__footer-link:hover {
  text-decoration: underline;
}

.design-reference-card__download-container {
  display: none;
}
.design-reference-card__download-container.is-active {
  display: flex;
}

/**
 * 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.design-library__small {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .design-library__small {
    display: none;
  }
}

.design-library__large {
  display: none;
}
@media (min-width: 768px) {
  .design-library__large {
    display: flex;
    width: 100%;
  }
}

.design-library__alert {
  width: 100%;
}

.design-library__nav {
  margin-right: 16px;
  flex-basis: 25%;
}

.design-library__nav-tabs {
  display: none;
}
@media (min-width: 768px) {
  .design-library__nav-tabs {
    display: block;
    width: 100%;
    max-width: 300px;
  }
}

.design-library__nav-tab {
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  padding: 16px;
  width: 100%;
  text-align: left;
  transition: padding-left ease-in-out 300ms;
}
.design-library__nav-tab.is-active {
  border-left: 6px solid #d9121f;
  padding-left: 10px;
}
.design-library__nav-tab:not(:last-child) {
  border-bottom: 1px solid rgba(188, 188, 188, 0.25);
}
.design-library__nav-tab:hover, .design-library__nav-tab:focus {
  background-color: #ebebeb;
  padding-left: 24px;
}
.design-library__nav-tab:hover.is-active, .design-library__nav-tab:focus.is-active {
  padding-left: 18px;
}
.design-library__nav-tab.is-disabled {
  background-color: #bcbcbc;
  opacity: 0.5;
  padding-left: 16px;
  pointer-events: none;
}

.design-library__slide-container {
  display: none;
}
.design-library__slide-container.is-active {
  width: 100%;
  justify-content: space-around;
  display: flex;
  position: relative;
}

.design-library__slide {
  padding-bottom: 56.25%;
  height: 0;
}
.design-library__slide > * {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 100%;
  height: 100%;
  resize: both;
  overflow: auto;
}
.design-library__slide > .design-library__slide-image {
  width: 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.
 */
/**
 * Site colours
 */
/**
 * Theme colours
 */
/**
 * General success / error type colours
 */
/**
 * Overrides for defaults set in include-media.scss
 */
/**
 * Icon font
 *
 * To be used as follows:
 * @include icon(string ligature, fontSize);
 * default font size 24px as this is preferred for material icons
 *
 */
/**
 * AvatarImage
 * Styles the standard avatar image (round icon)
 *
 * To be used as follows:
 * @include avatarImage($size);
 * where $size provides the height and width of the image
 *
 */
/**
 * Line clamp
 *
 * To be used as follows:
 * @include line-clamp(int number-of-lines);
 *
 */
/**
 * Loading shimmer
 * A loading animation in which a gradient sweeps through the background
 *
 * To be used as follows:
 * @include loadingShimmer;
 *
 */
/**
 * Card percentage width
 *
 * To be used as follows:
 * @include cardPercentageWidth(int number-per-row, horizontal-margin-between);
 *
 */
/**
 * Fade
 *
 * To be used as follows:
 * @include fade(int transition-time, bool reverse-animation, string transition-type);
 * reverse-animation defaults to false (fadeOut), true will make this a fadeIn transition.
 * transition-type defaults to ease
 * Requires '.fade' class to be applied to the element.
 *
 */
/**
 * Fields
 *
 * To be used as follows:
 * @include fields;
 * Applies default styling to basic form field elements such as input, textarea, select etc.
 *
 */
/**
 * Waffles
 */
.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;
}

.part-summary {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (min-width: 768px) {
  .part-summary {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.part-summary__title {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 44px;
  line-height: 52px;
}
@media (min-width: 768px) {
  .part-summary__title {
    font-size: 48px;
    line-height: 56px;
  }
}
@media (min-width: 768px) {
  .part-summary__title {
    flex: 0 0 100%;
  }
}

.part-summary__subtitle {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
}
@media (min-width: 768px) {
  .part-summary__subtitle {
    font-size: 32px;
    line-height: 40px;
  }
}
@media (min-width: 768px) {
  .part-summary__subtitle {
    flex: 0 0 100%;
  }
}

.part-summary__content {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
  padding: 16px 0;
  width: 100%;
}
@media (min-width: 768px) {
  .part-summary__content {
    flex-direction: row;
    gap: 32px;
    padding: 32px 0;
    align-items: flex-start;
    justify-content: space-between;
  }
}

.part-summary__details {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 100%;
}
@media (min-width: 768px) {
  .part-summary__details {
    flex: 0 0 calc(50% - 16px);
  }
}

.part-summary__list {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .part-summary__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
  }
}

.part-summary__list-term {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}
@media (min-width: 768px) {
  .part-summary__list-term {
    flex: 0 0 calc(50% - 8px);
  }
}

.part-summary__list-definition {
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .part-summary__list-definition {
    margin-bottom: 0;
    flex: 0 0 calc(50% - 8px);
  }
}
.part-summary__list-definition a {
  color: #3244ff;
}

@media (min-width: 768px) {
  .part-summary__button {
    align-self: center;
  }
}

.part-summary__purchase {
  border: 1px solid #69141e;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
}
@media (min-width: 768px) {
  .part-summary__purchase {
    flex: 0 0 calc(50% - 16px);
  }
}

.part-summary__purchase_info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.part-summary__image {
  align-self: center;
}
@media (min-width: 480px) {
  .part-summary__image {
    max-width: 75%;
  }
}
@media (min-width: 768px) {
  .part-summary__image {
    max-width: 50%;
  }
}

.technical-attributes {
  border: 1px solid #69141e;
  padding: 24px;
}

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

.technical-attributes__list {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  display: flex;
  flex-direction: column;
  margin: 16px 0;
}
@media (max-width: 767px) {
  .is-retracted .technical-attributes__list dt:nth-child(n+10),
  .is-retracted .technical-attributes__list dd:nth-child(n+11) {
    display: none;
  }
}
@media (min-width: 768px) {
  .technical-attributes__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
  }
  .is-retracted .technical-attributes__list dt:nth-child(n+60),
  .is-retracted .technical-attributes__list dd:nth-child(n+61) {
    display: none;
  }
}

.technical-attributes__list-term {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}
@media (min-width: 768px) {
  .technical-attributes__list-term {
    flex: 0 0 calc(50% - 8px);
  }
}

.technical-attributes__list-definition {
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .technical-attributes__list-definition {
    margin-bottom: 0;
    flex: 0 0 calc(50% - 8px);
  }
}

.technical-attributes__button {
  padding-right: 40px;
  position: relative;
  width: 100%;
}
@media (min-width: 768px) {
  .technical-attributes__button {
    width: auto;
  }
}
.technical-attributes__button::after {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.technical-attributes__button-group {
  margin: 0 auto;
}

@media (min-width: 768px) {
  .technical-attributes__button-group--mobile {
    display: none;
  }
}

.technical-attributes__button-group--desktop {
  display: none;
}
@media (min-width: 768px) {
  .technical-attributes__button-group--desktop {
    display: block;
  }
}

.technical-attributes__button--expand {
  display: none;
}
.technical-attributes__button--expand::after {
  content: "keyboard_arrow_down";
  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-retracted .technical-attributes__button--expand {
  display: inline-flex;
}

.technical-attributes__button--collapse::after {
  content: "keyboard_arrow_up";
  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-retracted .technical-attributes__button--collapse {
  display: none;
}

.w-standard-attributes {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.standard-attributes {
  border: 1px solid #69141e;
  padding: 24px;
}
.standard-attributes a {
  color: #3244ff;
}

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

.standard-attributes__list {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .standard-attributes__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
  }
}

.standard-attributes__list-term {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
}
@media (min-width: 768px) {
  .standard-attributes__list-term {
    flex: 0 0 calc(50% - 8px);
  }
}

.standard-attributes__list-definition {
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .standard-attributes__list-definition {
    margin-bottom: 0;
    flex: 0 0 calc(50% - 8px);
  }
}

.parts-table {
  border: 1px solid #69141e;
  padding: 24px;
  margin: 32px 0;
}
.parts-table a {
  color: #3244ff;
}

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

.parts-table__table {
  width: 100%;
}

/* stack table content */
@media (max-width: 767px) {
  .parts-table__thead,
  .parts-table__tbody,
  .parts-table__header,
  .parts-table__cell,
  .parts-table__row {
    display: block;
  }
}

@media (max-width: 767px) {
  .parts-table__tbody .parts-table__row:nth-child(odd) {
    background-color: #ebebeb;
  }
}
@media (min-width: 768px) {
  .parts-table__tbody .parts-table__row:nth-child(even) {
    background-color: #ebebeb;
  }
}

.parts-table__cell,
.parts-table__header {
  padding: 4px 8px;
}

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

.parts-table__header {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 28px;
  font-weight: 700;
  text-align: left;
  background-color: #cdcdcd;
  /* Hide table headers (but not display: none;, for accessibility) */
}
@media (max-width: 767px) {
  .parts-table__header {
    position: absolute;
    top: -9999px;
    left: -9999px;
  }
}

.part-upsell-message {
  margin: 24px 0;
}

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

.part-upsell-message__text {
  margin: 16px 0;
}

.part-landing-text {
  margin: 24px 0;
}

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

.part-landing-text__content {
  margin: 16px 0;
}
@media (min-width: 768px) {
  .part-landing-text__content {
    display: flex;
    gap: 32px;
  }
}

@media (min-width: 768px) {
  .part-landing-text__text {
    flex: 1 1 auto;
  }
}

@media (min-width: 768px) {
  .part-landing-text__image-container {
    flex: 0 0 348px;
  }
}
@media (min-width: 992px) {
  .part-landing-text__image-container {
    flex: 0 0 512px;
  }
}

.part-landing-text__image {
  display: none;
}
@media (min-width: 768px) {
  .part-landing-text__image {
    display: block;
  }
}

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

.wysiwyg h1 {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 36px;
  line-height: 44px;
}
@media (min-width: 768px) {
  .wysiwyg h1 {
    font-size: 40px;
    line-height: 48px;
  }
}
.wysiwyg h2 {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 28px;
  line-height: 36px;
}
@media (min-width: 768px) {
  .wysiwyg h2 {
    font-size: 32px;
    line-height: 40px;
  }
}
.wysiwyg h3 {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .wysiwyg h3 {
    font-size: 28px;
    line-height: 36px;
  }
}
.wysiwyg h4 {
  font-family: var(--header-font);
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
}
@media (min-width: 768px) {
  .wysiwyg h4 {
    font-size: 28px;
    line-height: 36px;
  }
}
.wysiwyg h1,
.wysiwyg h2,
.wysiwyg h3,
.wysiwyg h4,
.wysiwyg p,
.wysiwyg ul,
.wysiwyg ol,
.wysiwyg table {
  margin-bottom: 24px;
}
.wysiwyg b,
.wysiwyg strong {
  font-weight: 700;
}
.wysiwyg em {
  font-style: italic;
}
.wysiwyg a:not(.o-button) {
  font-weight: 700;
  color: #3244ff;
}
.wysiwyg a:not(.o-button):hover {
  color: #d9121f;
}
.wysiwyg button a {
  color: #ffffff;
}
.wysiwyg ul {
  list-style: disc;
}
.wysiwyg ol {
  list-style: decimal;
}
.wysiwyg li {
  margin-left: 40px;
  margin-bottom: 8px;
}
.wysiwyg li:last-child {
  margin-bottom: 0;
}
.wysiwyg sup,
.wysiwyg sub {
  font-size: 75%;
  position: relative;
}
.wysiwyg sup {
  top: -0.5em;
}
.wysiwyg sub {
  bottom: -0.25em;
}
.wysiwyg table[border="1"] th,
.wysiwyg table[border="1"] td {
  border: 1px solid #1d1d1b;
}
.wysiwyg blockquote {
  padding: 8px 0 8px 24px;
  background-color: #ebebeb;
  border-left: 3px solid rgba(74, 78, 87, 0.2);
}
.wysiwyg blockquote p {
  margin-bottom: 0;
}
.wysiwyg > *:last-child {
  margin-bottom: 0;
}

.s-product-part {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin: 32px 0;
}
@media (min-width: 992px) {
  .s-product-part {
    flex-direction: row;
  }
}

@media (min-width: 992px) {
  .d-product-part-col {
    flex: 0 0 calc(50% - 16px);
  }
}

/**
 * Section is the default block on a page.
 *
 * It'll typically have one or more d-section children
 */
.s-user-content {
  width: 100%;
  padding: 12px 16px;
}
.s-user-content > .d-user-content {
  width: 100%;
  max-width: 1042px;
  margin-right: auto;
  margin-left: auto;
}

.s-user-content--header {
  padding-top: 32px;
}

.s-user-content--fullwidth {
  max-width: 1276px;
  margin-left: auto;
  margin-right: auto;
}
.s-user-content--fullwidth > .d-user-content {
  max-width: none;
  margin: 0;
}

.s-user-content--no-padding {
  padding-left: 0;
  padding-right: 0;
}

.s-user-content--2cols {
  max-width: 1276px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 992px) {
  .s-user-content--2cols {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
  }
  .s-user-content--2cols > .d-user-content {
    margin: 0;
    width: 66.66%;
  }
  .s-user-content--2cols > .d-user-content__aside {
    width: 33.33%;
    padding-left: 64px;
  }
}

.d-user-content__aside--sticky {
  position: sticky;
  top: 70px;
}
