.component-trading-slot {
  display: flex;
  flex-direction: column;
  height: var(--ts-mobile-height); }
  @media (min-width: 750px) {
    .component-trading-slot {
      height: var(--ts-tablet-height); } }
  @media (min-width: 810px) {
    .component-trading-slot {
      height: var(--ts-height); } }
  .component-trading-slot__image {
    width: 100%;
    height: var(--ts-image-height); }
  .component-trading-slot__copy-holder {
    width: 100%;
    display: flex;
    flex-direction: column; }
    .component-trading-slot__copy-holder > * {
      margin-bottom: 0.5rem; }
  @media (min-width: 810px) {
    .component-trading-slot__cta {
      margin-top: auto; } }
  .component-trading-slot--ratio {
    height: -webkit-fit-content;
    height: fit-content; }
    @media (min-width: 750px) {
      .component-trading-slot--ratio {
        width: var(--component-width); } }
    .component-trading-slot--ratio .component-trading-slot__image {
      overflow: hidden;
      padding-top: var(--ts-image-height);
      height: 0;
      background: var(--ts-image-src);
      background-position: center;
      background-size: cover; }

.component-logo-banner__cta {
  width: 100%; }
  @media (min-width: 810px) {
    .component-logo-banner__cta {
      width: -webkit-fit-content;
      width: fit-content; } }

.component-logo-banner__image {
  width: var(--logo-size);
  margin: 0 auto; }

.component-image-banner {
  min-height: 13rem;
  background-image: var(--bg-image);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center; }
  .component-image-banner__copy-holder {
    width: 90%;
    height: 100%;
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 0;
    bottom: 0;
    justify-content: center;
    padding-left: 10%; }
    @media (min-width: 810px) {
      .component-image-banner__copy-holder {
        width: 50%; } }
    .component-image-banner__copy-holder > * {
      margin-bottom: 0.5rem; }
  .component-image-banner__cta {
    width: 40%;
    min-width: 10rem; }

.component-hero-banner {
  display: flex;
  overflow: hidden;
  flex-direction: column; }
  @media (min-width: 810px) {
    .component-hero-banner {
      flex-direction: row;
      height: 28rem; } }
  @media (min-width: 1280px) {
    .component-hero-banner {
      height: 35rem; } }
  .component-hero-banner__image {
    width: 100%; }
  .component-hero-banner__image-container {
    width: 100%;
    max-height: 300px;
    overflow: hidden; }
    @media (min-width: 750px) {
      .component-hero-banner__image-container {
        max-height: unset; } }
    @media (min-width: 810px) {
      .component-hero-banner__image-container {
        width: auto;
        max-height: unset; } }
    @media (min-width: 1440px) {
      .component-hero-banner__image-container {
        width: auto; } }
  .component-hero-banner__image-headline {
    width: var(--image-heading-width); }
  .component-hero-banner__copy-holder {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1rem;
    align-items: var(--copy-alignment);
    text-align: var(--text-alignment); }
    @media (min-width: 810px) {
      .component-hero-banner__copy-holder {
        width: 50%;
        padding: 2rem 3rem 2rem 3rem;
        align-self: center; } }
    .component-hero-banner__copy-holder > * {
      margin-bottom: 0.1rem;
      color: var(--copy-colour); }
  .component-hero-banner__heading {
    font-family: Amiri, "Times New Roman", serif;
    letter-spacing: 0;
    font-size: 1.19rem; }
    @media (min-width: 810px) {
      .component-hero-banner__heading {
        font-size: 1.44rem; } }
  .component-hero-banner__subheading {
    font-weight: 700; }
  .component-hero-banner__cta {
    width: 100%;
    min-width: 10rem;
    color: #fbfbfb; }
    @media (min-width: 750px) {
      .component-hero-banner__cta {
        width: 40%; } }
  @media (min-width: 810px) {
    .component-hero-banner--reverse .component-hero-banner__cta {
      margin-left: auto;
      margin-right: auto; } }
  .component-hero-banner__image {
    overflow: hidden;
    object-fit: cover;
    height: 300px; }
    @media (min-width: 750px) {
      .component-hero-banner__image {
        height: 600px; } }
    .component-hero-banner__image.promotion {
      height: 513px; }

.component-product-review {
  display: flex;
  overflow: hidden;
  height: 100%;
  flex-direction: column;
  position: relative; }
  @media (min-width: 810px) {
    .component-product-review {
      flex-direction: row;
      padding: 0 10%; } }
  .component-product-review__image {
    width: 100%; }
    @media (min-width: 750px) {
      .component-product-review__image {
        width: 50%;
        margin: 0 auto; } }
  .component-product-review__ratings {
    font-size: 1.75rem;
    text-align: center; }
    @media (min-width: 810px) {
      .component-product-review__ratings {
        text-align: left; } }
  .component-product-review__header {
    text-align: center;
    letter-spacing: 0;
    font-size: 2.5rem; }
    @media (min-width: 810px) {
      .component-product-review__header {
        text-align: left; } }
  .component-product-review__copy-holder {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 1rem 0 1rem; }
    @media (min-width: 810px) {
      .component-product-review__copy-holder {
        width: 50%;
        padding: 0 3rem 0 3rem; } }
    .component-product-review__copy-holder > * {
      margin-bottom: 1rem; }
    .component-product-review__copy-holder .blockquote {
      width: 90%; }
  .component-product-review__product-detail {
    margin-top: 1rem;
    display: flex;
    flex-direction: column; }
    @media (min-width: 810px) {
      .component-product-review__product-detail {
        margin-top: 3rem; } }
    @media (min-width: 810px) {
      .component-product-review__product-detail .add-to-cart-review {
        max-width: 50%;
        margin-right: 1.2rem; } }
  .component-product-review__callout {
    padding: 0.5rem 1rem 0.5rem 1rem;
    padding-left: 0;
    background-color: #ffffff;
    font-size: 80%;
    margin: 1rem auto;
    background-image: var(--callout-bg-img);
    background-size: contain;
    background-repeat: no-repeat; }
    @media (min-width: 810px) {
      .component-product-review__callout {
        margin: 1rem 0; } }
  @media (min-width: 810px) {
    .component-product-review__cta {
      width: 50%; } }
  .component-product-review__reviewer {
    font-size: 60%; }
    .component-product-review__reviewer::before {
      display: none; }
  .component-product-review .product-review-error {
    width: 90%;
    position: absolute;
    left: 5%;
    top: 5%;
    z-index: 1; }

.component-ndulge-banner {
  color: #ffffff; }
  .component-ndulge-banner__holder {
    min-height: 310px;
    display: flex;
    flex-direction: column;
    color: inherit; }
    .component-ndulge-banner__holder p {
      color: inherit;
      font-size: 1.75rem;
      line-height: 28px; }
      @media (min-width: 810px) {
        .component-ndulge-banner__holder p {
          font-size: 2.06rem;
          line-height: 38px; } }
    @media (min-width: 810px) {
      .component-ndulge-banner__holder {
        max-width: 100%;
        flex-direction: row;
        align-items: center; } }
  .component-ndulge-banner__heading {
    color: inherit; }
    .component-ndulge-banner__heading img {
      width: 55%; }
      @media (min-width: 810px) {
        .component-ndulge-banner__heading img {
          width: 80%; } }
      @media (min-width: 1440px) {
        .component-ndulge-banner__heading img {
          width: 50%; } }
    @media (min-width: 810px) {
      .component-ndulge-banner__heading {
        flex: 1;
        align-self: center; } }
  .component-ndulge-banner__subline {
    color: inherit; }
    @media (min-width: 810px) {
      .component-ndulge-banner__subline {
        font-size: 2.06rem; } }
  .component-ndulge-banner__copy {
    border: 1px solid #ffffff; }
    @media (min-width: 810px) {
      .component-ndulge-banner__copy {
        flex: 3; } }
    @media (min-width: 810px) {
      .component-ndulge-banner__copy p {
        margin-right: 5rem; } }
  @media (min-width: 810px) {
    .component-ndulge-banner__cta {
      width: 14rem; } }

.component-spotlight-banner {
  display: flex;
  flex-direction: column;
  height: -webkit-max-content;
  height: max-content;
  background-color: #ffffff; }
  @media (min-width: 750px) {
    .component-spotlight-banner {
      margin: 0 12.5%; } }
  @media (min-width: 810px) {
    .component-spotlight-banner {
      height: 650px;
      flex-direction: row; } }
  .component-spotlight-banner__image {
    width: 100%;
    height: 480px;
    margin-bottom: 1rem;
    position: relative; }
    @media (min-width: 750px) {
      .component-spotlight-banner__image {
        height: 580px; } }
    @media (min-width: 810px) {
      .component-spotlight-banner__image {
        height: 100%;
        order: 2;
        flex: 1 1 50%;
        text-align: center; } }
    @media (min-width: 810px) {
      .component-spotlight-banner__image img {
        max-width: 380px; } }
  .component-spotlight-banner__callout {
    padding: 0.5rem 1rem 0.5rem 1rem;
    font-size: 80%;
    margin: 1rem auto;
    background-image: var(--callout-bg-img);
    background-size: contain;
    background-repeat: no-repeat;
    background-position-x: center; }
  .component-spotlight-banner__copy-holder {
    width: 100%;
    display: flex;
    flex-direction: column;
    text-align: center;
    flex: 1 1 50%; }
    @media (min-width: 810px) {
      .component-spotlight-banner__copy-holder {
        order: 1;
        justify-content: center; } }
    .component-spotlight-banner__copy-holder > * {
      margin-bottom: 1rem; }
  .component-spotlight-banner__heading {
    font-size: 2.06rem; }
  .component-spotlight-banner__cta {
    width: 100%; }
    @media (min-width: 750px) {
      .component-spotlight-banner__cta {
        width: 70%;
        margin: 0 auto; } }
    @media (min-width: 810px) {
      .component-spotlight-banner__cta {
        width: 50%; } }

.component-icon-text__icon {
  width: var(--icon-size);
  margin: 0 auto; }

.component-icon-text__text {
  padding: 0 2rem; }

.component-back-to-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: none;
  border: none; }
  .component-back-to-top__icon {
    width: 63px;
    margin-bottom: 0.5rem; }
  .component-back-to-top__text {
    letter-spacing: 3px;
    font-weight: bolder; }

.component-delivery-banner {
  position: relative;
  box-shadow: inset 0 8px 6px -10px #1e1e1e; }
  .component-delivery-banner__copy span {
    text-transform: initial; }
  @media (min-width: 810px) {
    .component-delivery-banner::before {
      content: "|";
      position: absolute;
      left: 0;
      visibility: var(--left-divider); }
    .component-delivery-banner::after {
      content: "|";
      position: absolute;
      right: 0;
      visibility: var(--right-divider); } }

.component-product-carousel .swatches {
  justify-content: center; }

.component-product-carousel__cta {
  width: 100%; }
  @media (min-width: 810px) {
    .component-product-carousel__cta {
      width: 392px; } }

.row-caption-small {
  font-family: FuturaLTPro, "FuturaSerieBQ", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1rem;
  letter-spacing: 2px;
  margin-bottom: 3rem;
  font-weight: 300; }

.row-caption-large {
  font-family: FuturaLTPro, "FuturaSerieBQ", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 28px;
  letter-spacing: 4px;
  font-weight: 300;
  margin: 2rem 1.5rem; }
  @media (min-width: 810px) {
    .row-caption-large {
      font-size: 33px;
      margin-bottom: 1.5rem; } }
