  [x-cloak] {
      display: none !important;
  }

  html,
  body {
      margin: 0;
      padding: 0;
      position: relative;
      height: 100%;
      background-color: transparent !important;
      font-family: Arial, Helvetica, sans-serif;
  }

  h4 {
      font-size: 2rem;
  }

  button {
      cursor: pointer;
  }

  #configurator {
      display: grid;
      grid-template-columns: 1fr;
      height: 100%;
  }

  @media (min-width: 61.25em) {
      #configurator {
          grid-template-columns: 5fr 1fr;
      }
  }

  #viewer {
      height: 70vh;
      background-color: #f7f7f7;
      display: flex;
      flex-direction: column;
  }

  @media (min-width: 61.25em) {
      #viewer {
          height: 100%;
          background-color: #f7f7f7;
      }
  }

  #modelViewer {
      height: 100%;
      width: 100%;
  }

  .progress-bar {
      display: block;
      width: 33%;
      height: 1.1rem;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate3d(-50%, -50%, 0);
      border-radius: 25px;
      box-shadow: 0px 3px 10px 3px rgba(0, 0, 0, 0.5), 0px 0px 5px 1px rgba(0, 0, 0, 0.6);
      border: 2px solid #adb6bd;
      background-color: rgb(242, 242, 242);
  }

  .progress-bar.hide {
      visibility: hidden;
      transition: visibility 0.3s;
  }

  .update-bar {
      background-color: rgb(0, 0 ,0);
      width: 0%;
      height: 100%;
      border-radius: 25px;
      float: left;
      transition: width 0.3s;
  }

  /* APP TOOLBAR */

  .app__toolbar {
      height: 100%;
      background: #fff;
      height: 100%;
      min-width: 16rem;
  }

  @media (min-width: 75em) {
      .app__toolbar {
          width: 25vw;
      }
  }

  .app__toolbar__inner {
      height: 100%;
      overflow: hidden;
      min-height: 0;
      position: relative;
  }

  @media (min-width: 61.25em) {
      .app__toolbar__layout {
          overflow: scroll;
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
      }
  }

  .app__toolbar__layout {
      height: 100%;
      min-height: 0;
  }

  /* APP TOOLBAR HEADER */

  .app__toolbar__header {
      padding: 1.4rem 1.4rem;
      background-color: rgb(19, 20, 22);
      color: #fff;
  }

  .app__toolbar__header .steps {
      color: #fff;
      display: flex;
      flex-flow: row nowrap;
      padding-bottom: 1rem;
      margin-bottom: 1.4rem;
      justify-content: space-between;
  }

  .app__toolbar__header .steps a {
      color: #fff;
      position: relative;
      cursor: pointer;
  }

  .app__toolbar__header .steps a.active .counter {
      border-color: rgb(233, 178, 68) !important;
  }

  .app__toolbar__header .steps a:hover .counter,
  .app__toolbar__header .steps a.active .counter {
      border-bottom: 1px solid #fff;
  }

  @media screen and (min-width: 1280px) {
      .app__toolbar__header .steps .counter {
          font-size: 1.9rem;
      }
  }

  .app__toolbar__header .steps .counter {
      line-height: 1.2;
      font-size: calc(1.3rem + 0.5999999999999999 * ((100vw - 26.25rem) / 53.75));
      display: block;
      margin-bottom: .9rem;
      padding-right: .5em;
  }

  .app__toolbar__header .steps a.active .label {
      color: rgb(233, 178, 68);
  }

  .app__toolbar__header .steps a:hover .label,
  .app__toolbar__header .steps a.active .label {
      display: block;
  }

  .app__toolbar__header .steps .label {
      font-size: .9rem;
      position: absolute;
      top: 90%;
      left: 0;
      display: none;
      text-transform: none;
      line-height: 1;
      letter-spacing: normal;
  }

  /* APP TOOLBAR CONTENT */

  .app__toolbar__content {
      padding: 1.4rem 1.4rem;
  }

  @media screen and (min-width: 1300px) and (min-height: 900px) {

      .app__toolbar__header,
      .app__toolbar__content {
          padding: 1.7rem 2.8rem;
      }
  }

  .app__toolbar__content h2 {
      font-weight: 500;
      margin-bottom: 1rem;
      text-transform: uppercase;
      font-size: 32px;
  }



  /* OPTION SELECTOR */

  .option-selector {
      display: block;
  }

  .option-selector h4 {
      margin-top: 1rem;
      font-size: 1.3rem;
  }

  .option-selector-option {
      display: block;
      border: 1px solid #e6e6e6;
      padding: 1.1rem 1.6rem 1.2rem;
      margin-bottom: 1em;
  }

  .option-selector-option h4:not(:last-child) {
      margin-bottom: .6em;
  }

  .option-selector-option h4 {
      margin: 0;
      margin-bottom: 0px;
      font-size: 1.3rem;
      text-transform: uppercase;
      line-height: 1;
  }

  .option-selector-option h6 {
      margin: 0;
      font-size: 1.1rem;
      font-weight: normal;
  }

  .option-selector-option small {
      display: block;
      letter-spacing: normal;
      opacity: .8;
  }

  .option-selector-option:hover:not(.isActive) {
      background: #f7f7f7;
      border-color: #131416;
      box-shadow: #131416 0 0 0 1px inset;
      cursor: pointer;
  }


  /* CURRENT OPTION */

  .current-option {
      display: grid;
      grid-template-columns: 1fr;
      border-bottom: 1px solid #e6e6e6;
      padding-top: 1rem;
      padding-bottom: 1rem;
      gap: 1.1rem;
      align-items: center;
  }

  @media screen and (min-width: 1200px) {
      .current-option {
          grid-template-columns: 1fr min-content;
      }
  }

  @media (min-width: 61.25em) {
      .current-option {
          padding-top: 1.3rem;
          padding-bottom: 1.3rem;
          gap: 1.6rem;
      }
  }

  .current-option.primary h4 {
      font-size: 1.3rem;
  }

  .current-option h4 {
      font-size: 1.05rem;
      text-transform: capitalize;
      display: flex;
      align-items: center;
      gap: 1rem;
      width: 100%;
      justify-content: space-between;
  }

  .current-option h3,
  .current-option h4 {
      font-family: var(--font-sans);
      font-weight: 500;
      line-height: 1.1;
      margin: 0;
  }

  .current-option small {
      display: block;
      line-height: 1.2;
      color: var(--color-text-neutral);
      letter-spacing: normal;
      margin-top: .4rem;
  }

  .current-option button {
      background: none;
      border: 1px solid #131416;
      text-transform: uppercase;
      border-radius: 1.5em;
      padding: .3em 1em;
      font-size: .9rem;
      letter-spacing: normal;
  }

  .current-option .option__swatch {
      display: grid;
      grid-template-columns: min-content 1fr;
      gap: 1rem;
      align-items: center;
  }

  @media (min-width: 46.25em) {
      .current-option .option__swatch .swatch {
          width: 3.2rem !important;
          height: 3.2rem !important;
      }
  }

  .current-option .option__swatch .swatch {
      display: block;
      width: 2.2rem;
      height: 2.2rem;
      border-radius: 50%;
  }

  .current-option .option__swatch .swatch.with-border {
      border: 1px solid #666;
  }

  .current-option .option__swatch .swatch.empty {
      background-image: linear-gradient(45deg, #808080 25%, transparent 25%), linear-gradient(-45deg, #808080 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #808080 75%), linear-gradient(-45deg, transparent 75%, #808080 75%);
      background-size: 5px 5px;
      background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
  }

  .current-option.hasImage .label {
      display: grid;
      grid-template-columns: min-content 1fr;
      gap: 1.4rem;
      align-items: center;
  }

  .current-option .featured-image {
      width: 4rem;
      height: 4rem;
      aspect-ratio: 1/1;
      margin: 0;
      border-radius: 50%;
      overflow: hidden;
  }

  .current-option .featured-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
  }


  /* COLORS LIST */

  .colors-list {
      display: block;
      margin-top: 1rem;
  }

  .colors-list ul {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-flow: row wrap;
      gap: .6rem;
  }

  .colors-list ul li {
      margin-bottom: .25em;
  }

  .colors-list .swatch {
      border-radius: 50%;
      width: 3.2rem;
      height: 3.2rem;
      cursor: pointer;
  }

  .colors-list .swatch.with-border {
      border: 1px solid #666;
  }

  /* CAMERA BUTTONS */

  .app__bike-preview__cameras {
      display: flex;
      justify-content: center;
      gap: 2rem;
      padding: 2rem;
  }

  .app__bike-preview__cameras button.isActive {
      background: #131416;
  }

  .app__bike-preview__cameras button {
      border: none;
      width: 20vw;
      max-width: 6rem;
      height: 0.8em;
      background: #adb6bd;
  }