.header__grid {
  display: grid;
  height: 100%;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-flow: dense;

  &.-col2 .header__image {
    grid-column: span 2;
  }
}

.header__text {
  box-sizing: border-box;
  grid-column: span 2;
  background: rgb(var(--c-neutral-lighter));
  padding: var(--p) 4%;
  position: relative;
  z-index: 1;

  & .headline,
  & p {
    position: relative;
    z-index: 1;
  }
}

.header__bodytext {
  text-wrap: balance;
}

img.header__graphic {
  position: absolute;
  height: auto;
  object-fit: initial;

  &.-arrow {
    top: -30px;
    right: -60px;
    width: 190px;
  }

  &.-line {
    bottom: 20px;
    left: -60px;
    width: 185px;
    transform: scale(-1, 1);
  }
}

.header__image {
  height: 100%;
  width: 100%;
  overflow: hidden;
  position: relative;

  & video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  &::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: 0;
    left: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(var(--c-neutral-darkest), 0) 0%, rgba(var(--c-neutral-darkest), 0.1) 80%, rgba(var(--c-neutral-darkest), 0.3) 100%);
    pointer-events: none;
  }

  &.-left {
    & video,
    & img {
      object-position: left center;
    }
  }

  &.-right {
    & video,
    & img {
      object-position: right center;
    }
  }

  &.-top {
    & video,
    & img {
      object-position: center top;
    }
  }

  &.-bottom {
    & video,
    & img {
      object-position: center bottom;
    }
  }

  &.-bottom.-left {
    & video,
    & img {
      object-position: left bottom;
    }
  }

  &.-bottom.-right {
    & video,
    & img {
      object-position: right bottom;
    }
  }

  &.-top.-left {
    & video,
    & img {
      object-position: left top;
    }
  }

  &.-top.-right {
    & video,
    & img {
      object-position: right top;
    }
  }
}
.page.-sub {
  & .header__grid,
  & .header__slider {
    height: auto;
  }
  & .header__image {
    max-height: 800px;
  }
}

/* =============================================================================
   Media Queries
   ========================================================================== */

@media (min-width: 400px) {
  .header__text {
    padding: var(--p) 3rem;
  }
}

@media (min-width: 800px) {
  .header__grid {
    grid-template-columns: 1fr auto 1fr;
    min-height: 500px;

    &.-col2 {
      grid-template-columns: 1fr 1fr;

      & .header__image {
        grid-column: 1;
      }

      & .header__text {
        max-width: 50vw;

        & .headline,
        & .header__bodytext {
          max-width: 560px;
          width: 100%;
        }
      }

      &.-withouttext {
        grid-template-columns: 1fr;
      }
    }
  }

  .header__text {
    grid-column: 2;
    width: 56vw;
    max-width: 640px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .header__image:nth-child(2) {
    grid-column: 3;
  }

  .page .cycle-slideshow .header__image {
    height: 100%;
    max-height: 100%;
  }

  img.header__graphic {
    &.-arrow {
      top: 30px;
      right: -100px;
      width: 190px;
    }

    &.-line {
      bottom: 30px;
      left: -140px;
      width: 185px;
      transform: scale(1, 1);
    }
  }
}

@media (min-width: 1410px) {
  .header__grid {
    height: calc(100vh - 120px);
  }

  img.header__graphic {
    &.-arrow {
      top: 6vh;
      right: -200px;
      width: 380px;
    }

    &.-line {
      bottom: 6vh;
      left: -270px;
      width: 370px;
    }
  }
}