.marketing-features-progress {
  position: relative;
  display: block !important;
  overflow: hidden;
}

.marketing-features-progress__heading {
  padding-top: 50px;
  padding-bottom: 35px;
  margin-top: 0;
  margin-bottom: 0;
  text-align: center;
  background-color: #fff;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__heading {
    padding-top: 65px;
    padding-bottom: 60px;
    font-size: rems(34px);
  }
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__heading {
    font-size: rems(42px);
  }
}

.marketing-features-progress__feature-title {
  margin-bottom: 10px;
  text-align: center;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature-title {
    margin-top: 20px;
    margin-bottom: 20px;
    font-size: rems(22px);
    text-align: left;
  }
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__feature-title {
    font-size: rems(26px);
  }
}

.marketing-features-progress__feature-description {
  font-size: rems(16px);
  line-height: 1.7;
}

.marketing-features-progress__content,
.marketing-features-progress__graphic {
  position: relative;
}

@media only screen and (max-width: 641px) {
  .marketing-features-progress__content,
  .marketing-features-progress__graphic {
    z-index: 4;
  }
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__content,
  .marketing-features-progress__graphic {
    width: 40%;
  }
}

@media only screen and (max-width: 641px) {
  .marketing-features-progress__content {
    padding-top: 20px;
    padding-bottom: 5px;
    margin-bottom: 30px;
    background-color: #fff;
  }
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__content {
    width: 33.33333333%;
  }

  .marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__content {
    margin-right: 6.5%;
  }

  .marketing-features-progress__feature:nth-of-type(even) .marketing-features-progress__content {
    margin-left: 6.5%;
  }
}

.marketing-features-progress__image > img {
  display: block;
  margin: 0 auto;
}

.marketing-features-progress__video {
  display: none;
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__video {
    position: absolute;
    top: 11.7%;
    left: 3.7%;
    display: block;
    height: 76%;
  }

  .marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__video {
    right: 3.6%;
    left: auto;
  }
}

.marketing-features-progress__feature {
  position: relative;
  counter-increment: feature-progress-steps;
}

@media only screen and (max-width: 641px) {
  .marketing-features-progress__feature {
    padding-top: 120px;
  }
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.marketing-features-progress__feature:nth-of-type(even) .marketing-features-progress__content,
.marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__graphic {
  margin-right: auto;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__graphic {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__graphic {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__content {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
}

/*
// ------------------------------------------------------
// The following rules create the step progress indicator
// ------------------------------------------------------
*/

.marketing-features-progress__features {
  position: relative;
  padding-bottom: 125px;
  margin-bottom: 30px;
  counter-reset: feature-progress-steps;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__features {
    padding-bottom: 100px;
  }
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__features {
    padding-bottom: 150px;
  }
}

/*
// This creates the fill the the progress steps as the user scrolls. We don't fix the fill on page load, as it'll flash a big purple box on the page before the content loads, so we fix it and color it properly once the user scrolls past the header section.
*/

.marketing-features-progress__features:before {
  position: absolute;
  top: 50px;
  right: calc(50% - 27px);
  bottom: 0;
  z-index: -1;
  display: block;
  width: 56px;
  background-color: #dadada;
  content: '';
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  will-change: background-image;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__features:before {
    top: 80px;
  }
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__features:before {
    top: 130px;
  }
}

.marketing-features-progress__features--in-view:before {
  position: fixed;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#bd37ac), color-stop(49.99%, #bd37ac), color-stop(50%, #dadada), to(#dadada));
  background-image: linear-gradient(to bottom, #bd37ac 0%, #bd37ac 49.99%, #dadada 50%, #dadada 100%);
  background-position: center;
}

/*
// These are the circles with the progress numbers
*/

.marketing-features-progress__finish,
.marketing-features-progress__number {
  position: absolute;
  right: calc(50% - 30px);
  z-index: 3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 60px;
  height: 60px;
  background-position: center;
  background-repeat: no-repeat;
}

.marketing-features-progress__number {
  top: 30px;
  font-size: 22px;
  font-weight: 400;
  background-image: url("/img/circle.svg");
}

.marketing-features-progress__feature:first-of-type .marketing-features-progress__number {
  background-image: url("/img/circle-top.svg");
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:last-of-type .marketing-features-progress__number {
    background-image: url("/img/circle-bottom.svg");
  }
}

.marketing-features-progress__number:before {
  position: relative;
  top: 1px;
  content: counter(feature-progress-steps);
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__number {
    top: calc(50% - 30px);
  }
}

/*
// This creates the final state indicator
*/

.marketing-features-progress__finish {
  bottom: 0;
  background-image: url("/img/circle-final.svg");
  content: '';
}

/*
// This creates the mask for the final state indicator
*/

.marketing-features-progress__finish-mask {
  position: relative;
  height: 30px;
}

.marketing-features-progress__finish-mask:before,
.marketing-features-progress__finish-mask:after {
  position: absolute;
  top: 0;
  bottom: 0;
  width: calc(50% - 30px);
  background-color: #f8f8f8;
  content: '';
}

.marketing-features-progress__finish-mask:before {
  left: 0;
}

.marketing-features-progress__finish-mask:after {
  right: 0;
}

/*
// These create the vertical lines (and dotted lines) between steps
*/

.marketing-features-progress__feature:before,
.marketing-features-progress__feature:after,
.marketing-features-progress__finish:before {
  position: absolute;
  right: calc(50% - 30px);
  z-index: 3;
  display: block;
  width: 60px;
  background-image: url("/img/line.svg");
  background-position: top center;
  background-repeat: repeat-y;
  background-size: 60px 60px;
  content: '';
}

.marketing-features-progress__feature:before {
  top: 0;
  height: 30px;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:before {
    bottom: calc(50% + 30px);
    height: auto;
  }
}

.marketing-features-progress__feature:after {
  top: 90px;
  bottom: 0;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:after {
    top: calc(50% + 30px);
  }
}

/*
// Apply the dotted lines to the first and last items
*/

.marketing-features-progress__feature:first-of-type:before {
  background-image: url("/img/dot.svg");
  background-size: 60px 26px;
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:first-of-type:before {
    background-position: center;
  }
}

@media only screen and (min-width: 641px) {
  .marketing-features-progress__feature:last-of-type:after {
    bottom: -100px;
    background-image: url("/img/dot.svg");
    /* background-color:#F7F9FB; */
    background-size: 60px 26px;
  }
}

@media only screen and (min-width: 1024px) {
  .marketing-features-progress__feature:last-of-type:after {
    bottom: -150px;
  }
}

/*
// This shows the partial dotted line at the last step on mobile
*/

.marketing-features-progress__finish:before {
  display: none;
}

@media only screen and (max-width: 641px) {
  .marketing-features-progress__finish:before {
    bottom: 100%;
    display: block;
    height: 125px;
    background-image: url("/img/dot.svg");
    background-size: 60px 26px;
  }
}

/*
// On mobile the first feature has a bigger gap at the top to make room for the dots, so everything needs to be adjusted a bit
*/

@media only screen and (max-width: 641px) {
  .marketing-features-progress__feature:first-of-type {
    padding-top: 180px;
  }

  .marketing-features-progress__feature:first-of-type:before {
    height: 105px;
  }

  .marketing-features-progress__feature:first-of-type:after {
    top: 165px;
  }

  .marketing-features-progress__feature:first-of-type .marketing-features-progress__number {
    top: 105px;
  }
}

/*
// Transitions
*/

@media only screen and (min-width: 641px) {
  .marketing-features-progress__content,
  .marketing-features-progress__graphic {
    opacity: 0;
    -webkit-transition: opacity 100ms ease-in, -webkit-transform 300ms ease-in;
    transition: opacity 100ms ease-in, -webkit-transform 300ms ease-in;
    transition: opacity 100ms ease-in, transform 300ms ease-in;
    transition: opacity 100ms ease-in, transform 300ms ease-in, -webkit-transform 300ms ease-in;
    -webkit-transition-delay: 200ms;
            transition-delay: 200ms;
  }

  .marketing-features-progress__feature--in-view .marketing-features-progress__content,
  .marketing-features-progress__feature--in-view
  .marketing-features-progress__graphic {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0) !important;
            transform: translate3d(0, 0, 0) !important;
  }

  .marketing-features-progress__content {
    -webkit-transform: translate3d(-25%, 0, 0);
            transform: translate3d(-25%, 0, 0);
  }

  .marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__content {
    -webkit-transform: translate3d(25%, 0, 0);
            transform: translate3d(25%, 0, 0);
  }

  .marketing-features-progress__graphic {
    -webkit-transform: translate3d(25%, 0, 0);
            transform: translate3d(25%, 0, 0);
  }

  .marketing-features-progress__feature:nth-of-type(odd) .marketing-features-progress__graphic {
    -webkit-transform: translate3d(-25%, 0, 0);
            transform: translate3d(-25%, 0, 0);
  }
}
