.hero-home.has-image  {
  margin-top: -65px;
  justify-content: flex-end;
  flex-direction: column;
  align-items: flex-start;
  background-color: $color-black;

  button {
    @include focus-light();
  }

  @media (min-width: $break-medium) {
    margin-top: -86px;
    min-height: 50vh;
    padding-top: 35vw;
    margin-bottom: 0;
  }

  @media (min-width: $break-large) {
    margin-bottom: 0 !important;
  }

  .video-controls .is-paused .play-icon {
    display: block;
  }

  .is-paused > svg:first-child {
    display: none;
  }

  .video-controls {
    position: absolute;
    right: 3px;
    bottom: 65px;
    z-index: 100;
    opacity: 0;
    width: 30px;
    height: 30px;

    @media (min-width: $break-medium) {
      right: 31px;
      bottom: 75px;
    }

    @media (min-width: $break-large) {
      bottom: 100px;
      right: 135px;
      width: 55px;
      height: 55px;
    }

    button {
      border: 0;
      background-color: transparent;
      padding: 0;
      width: 100%;
      height: 100%;
    }

    svg {
      width: 30px;
      height: 30px;
      position: absolute;
      top: 0;
      left: 0;

      @media (min-width: $break-large) {
        width: 55px;
        height: 55px;
      }
    }
  }

  &.loaded {
    .video-controls {
      opacity: 1;
      transition: all 300ms 600ms;
    }

    video,
    picture {
      opacity: 1;
      transition: all 300ms;
    }

    h1{
      opacity: 1;
      transform: translateY(0);
      transition: all 300ms 300ms;
    }

    .italic-text {
      opacity: 1;
      transition: all 300ms 300ms;
      transform: translateY(0) translateX(-50%);
    }

    video ~ picture {
      display: none;
    }

    .italic-text:before {
      transform: scaleX(1);
      transition: all 100ms 1400ms;
    }

    .italic-text:after {
      transform: scaleY(1);
      transition: all 300ms 1500ms;
    }

    .italic-text .circles:after {
      opacity: 1;
      transition: all 300ms 600ms;
    }

    .italic-text .circles:before {
      opacity: 1;
      transition: all 300ms 2000ms;
    }

    .decorative-lines:after {
      transform: translateY(-100%) scaleY(1);
      transition: all 100ms 900ms;
    }

    .decorative-lines:before {
      transform: translateX(100%) scaleX(1);
      transition: all 300ms 1100ms;
    }
  }

  .homepage-hero__header {
    max-width: 1800px;
    position: relative;
    margin: 0 auto;
    width: 100%;
  }

  video {
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 100%;
    opacity: 0;
    object-fit: cover;
  }

  picture {
    width: 100%;
    min-height: calc(50vh - 46px);
    position: absolute;
    max-width: calc(100vw - var(--scrollbar-width));
    height: 100%;
    object-fit: cover;
    opacity: 0;

    @media (min-width: $break-medium) {
      min-height: 100%;
    }

    @media (min-width: $break-large) {
      min-height: 100%;
      height: 100%;
    }
  }

  h1 {
    opacity: 0;
    transform: translateY(50px);
    @media (min-width: $break-medium) {
      @include fontsize(64px);
    }

    @media (min-width: $break-large) {
      @include fontsize(96px);
      padding: 0 165px 55px 165px;
    }

    span {
      @include fontsize(24px);
      display: block;

      @media (min-width: $break-medium) {
        @include fontsize(32px);
      }

      @media (min-width: $break-large) {
        @include fontsize(64px);
      }
    }
  }

  .italic-text {
    opacity: 0;
    transform: translateY(50px);
    color: white;
    font-family: $font-handwriting;
    @include fontsize(18px);
    position: relative;
    z-index: 1;
    padding: 0 45px 30px;
    width: 100%;
    left: 50%;

    @media (min-width: $break-medium) {
      @include fontsize(28px);
      padding: 0 110px 45px;
    }


    @media (min-width: $break-large) {
      @include fontsize(54px);
      padding: 0 155px 10px 145px;
      max-width: 1800px;
      transform: translateX(-50%) translateY(50px);
      left: 50%;
    }

    div {
      position: relative;
      display: inline-block;
      min-height: 1em;

      span {
        padding: 0 10px;

        @media (min-width: $break-large) {
          padding: 0 20px;
        }
      }

      &::before {
        //right horz line
        content: "";
        position: absolute;
        height: 2px;
        top: 8px;
        right: 0;
        background-color: white;
        border-radius: 100em 0 0 100em ;
        width: calc(100vw - 100% - 60px);
        transform: translateX(100%) scaleX(0);
        transform-origin: right;

        @media (min-width: $break-medium) {
          width: calc(100vw - 100% - 155px);
        }

        @media (min-width: $break-large) {
          height: 3px;
          width: calc(100vw - 100% - 305px - var(--scrollbar-width))
        }

        @media (min-width: $content-max + 1) {
          width: calc(1800px - 100% - 305px);
        }
      }
  
      &:after {
        //right vert line
        content: "";
        position: absolute;
        left: calc(100vw - 62px);
        transform: translateY(-100%) scaleY(0);
        transform-origin: top;
        top: 10px;
        height: 50px;
        background-color: $color-white;
        border-radius: 0 100em 100em 0;
        width: 2px;

        @media (min-width: $break-medium) {
          left: calc(100vw - 157px);
        } 

        @media (min-width: $break-large) {
          left: calc(100vw - 307px - var(--scrollbar-width));
          width: 3px;
          height: 55px;

        }

        @media (min-width: $content-max + 1) {
          left: calc(1800px - 307px);
        }
          
      }
    }

    .circles {
      position: absolute;
      left: 0;
      width: 100%;
      &:before {
        //left circ
        content: "";
        opacity: 0;
        width: 10px;
        height: 10px;
        background-color: $color-green;
        border: 2px solid $color-white;
        left: 9px;
        top: 61px;
        border-radius: 100em;
        position: absolute;

        @media (min-width: $break-medium) {
          left: 42px;
          top: 86px;
          width: 15px;
          height: 15px;
        }

        @media (min-width: $break-large) {
          left: 79px;
          width: 18px;
          height: 18px;
          top: 156px;
          border: 3px solid $color-white;
        }
      }

      &:after {
        //right circ
        content: "";
        width: 10px;
        height: 10px;
        background-color: $color-green;
        border: 2px solid $color-white;
        right: 9px;
        top: -54px;
        border-radius: 100em;
        position: absolute;
        opacity: 0;


        @media (min-width: $break-medium) {
          right: 37px ;
          width: 15px;
          height: 15px;
          top: -57px;
        }

        @media (min-width: $break-large) {
          right: 153px ;
          width: 18px;
          height: 18px;
          top: -68px;
          right: 149px;
          border: 3px solid $color-white;
        }
      }
    }
    

    &::before {
      //left horz line
      content: "";
      position: absolute;
      left: 15px;
      height: 2px;
      top: 8px;
      transform: scaleX(0);
      transform-origin: right;
      background-color: $color-white;
      border-radius: 0 100em 100em 0;
      width: 33px;

      @media (min-width: $break-medium) {
        left: 50px;
        width: 57px;
      }

      @media (min-width: $break-large) {
        left: 90px;
        height: 3px;
      }
    }

    &:after {
       //left vert line
      content: "";
      position: absolute;
      left: 15px;
      height: 55px;
      top: 8px;
      transform: scaleY(0);
      transform-origin: top;
      background-color: $color-white;
      border-radius: 0 100em 100em 0;
      width: 2px;


      @media (min-width: $break-medium) {
        left: 50px;
        height: 80px;
      }

      @media (min-width: $break-large) {
        left: 90px;
        height: 150px;
        width: 3px;
      }
    }
  }

  .video-controls .play-icon {
    width: 30px;
    height: 30px;
    border-radius: 100em;
    border: 2px solid $color-white;
    background-color: $color-blue-dark;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    color: $color-white;

    @media (min-width: $break-large) {
      width: 55px;
      height: 55px;
      border: 3px solid $color-white;
    }

    svg {
      width: 10px;
      height: 10px;
      position: absolute;
      left: 53%;
      top: 50%;
      transform: translate(-50%, -50%);

      @media (min-width: $break-large) {
        width: 20px;
        height: 20px;
      }
    }
  }
}

.homepage-hero__ctas {
  color: $color-white;
  background-color: $color-green-dark;
  background-image: url(../assets/img/hero-cta-sm.png);
  background-size: cover;

  @media (min-width: $break-medium) {
    background-image: url(../assets/img/hero-cta-lg.png);
  }

  &__inner {
    @media (min-width: $break-medium) {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 50px;
    }

    @media (min-width: $break-large) {
      max-width: 1800px;
      margin: 0 auto;
    }

    padding: 40px 20px 80px;

    @media (min-width: $break-medium) {
      padding: 70px 50px 135px;
    }
  
    @media (min-width: $break-large) {
      padding: 140px 80px 130px;
    }
  }

  h2 {
    color: white;
    margin-top: 0;

    @media (min-width: $break-medium) {
      margin: 0;
    }

    @media (min-width: $break-large) {
      @include fontsize(72px);
    }

    span {
      @media (min-width: $break-medium) {
        display: block;
      }

      @media (min-width: $break-large) {
        display: inline-block;
      } 
    }


    .first-text {
      font-family: $font-acumen;
      font-weight: 400;
      margin-bottom: 8px;
      @include fontsize(16px);
      display: block;

      @media (min-width: $break-medium) {
        @include fontsize(20px);
      }

      @media (min-width: $break-large) {
        @include fontsize(32px);
      }
    }
  }

  ul {
    padding: 0;
    display: flex;
    margin-top: 15px;
    gap: 12px;
  }

  li {
    padding: 0;
    @media (min-width: $break-medium) {
      margin: 0;
    }
    &::before {
      content: none
    }
  }

  a {
    @include cta(primary, dark);
    border: 1px solid;
    min-width: 87px;
    text-align: center;

    &:focus {
      @include focus-light();
    }

    @media (min-width: $break-large) {
      padding: 19px 48px 24px
    }

    &::before {
      content: none;
    }
  }
}