.page-wrapper {
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  min-height: 100vh;
  display: flex;
}

.main {
  background-color: #0045a0;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  min-height: 300vh;
  padding: 10vh 3rem 0;
  display: flex;
  position: relative;
}

.row-wrapper {
  z-index: 2;
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  flex-flow: column;
  width: 100%;
  max-width: 1920px;
  margin-bottom: 30rem;
  display: flex;
  position: sticky;
  top: 10vh;
}

.row {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  justify-content: center;
  align-items: flex-end;
  height: 7rem;
  display: flex;
  position: relative;
}

.img-to {
  width: 8rem;
}

.img-to.inner {
  width: 12rem;
  min-width: 12rem;
  position: absolute;
  inset: auto auto 0% 0%;
}

.img-to.transparent {
  opacity: 0;
}

.line {
  background-color: #0000;
  flex: 1;
  align-self: flex-end;
  height: .4rem;
}

.line.filled {
  background-color: #fff;
  flex: 0 auto;
  max-width: 100%;
}

.line.filled.fill {
  width: 5rem;
}

.line-fill {
  perspective-origin: 50%;
  transform-origin: 0%;
  transform-style: preserve-3d;
  background-color: #fff;
  flex: 1;
  align-self: flex-end;
  height: .4rem;
  transform: scale3d(0, 1, 1);
}

.main-anim-wrapper {
  z-index: 1;
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  flex-flow: column;
  width: 100%;
  max-width: 1920px;
  margin-bottom: 24rem;
  display: flex;
  position: relative;
}

.main-anim-row {
  grid-column-gap: 2.5rem;
  grid-row-gap: 2.5rem;
  justify-content: center;
  align-items: flex-end;
  height: 7rem;
  display: flex;
  position: relative;
}

.div-block {
  transform-origin: 0%;
  justify-content: flex-start;
  align-items: flex-end;
  width: 12rem;
  min-height: 5rem;
  display: flex;
  position: relative;
  overflow: hidden;
}

.body {
  cursor: crosshair;
  font-size: 12px;
}

.service-name {
  opacity: 1;
  color: #fff;
  margin-left: auto;
  margin-right: auto;
  font-family: Agrandir, Arial, sans-serif;
  font-size: 2.5rem;
  line-height: 130%;
  transition: transform .4s ease-in-out;
  position: absolute;
  bottom: 1rem;
  left: auto;
  right: 0;
}

.service-name:hover {
  transform: translate(-3rem, -1rem);
}

.service-name.left {
  left: 0;
  right: auto;
}

.service-name.mid {
  right: auto;
}

.kontakt {
  background-color: #121214;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  padding-bottom: 7rem;
  padding-left: 3rem;
  padding-right: 3rem;
  display: flex;
}

.div-block-3 {
  z-index: 1;
  justify-content: space-between;
  align-items: stretch;
  width: 100%;
  display: flex;
  position: relative;
}

.image {
  max-width: 60%;
  transition: all .4s ease-in-out;
  transform: translate(0);
}

.image:hover {
  object-position: 80% 51%;
}

.div-block-4 {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  justify-content: flex-end;
  align-items: center;
  padding-bottom: 2rem;
  display: flex;
}

.text-block {
  transform-origin: 100% 100%;
  color: #fff;
  font-family: Jost, sans-serif;
  font-size: 20px;
  transform: rotate(-90deg);
}

.color-switcher {
  cursor: pointer;
  background-color: #0045a0;
  border: 2px solid #000;
  border-radius: 1.5rem;
  width: 3rem;
  height: 3rem;
  transition: transform .3s ease-in-out;
}

.color-switcher:hover {
  transform: scale(1.15);
}

.color-switcher.sand {
  background-color: #cee0dc;
}

.color-switcher.olive {
  background-color: #657153;
}

.color-switcher.orange {
  background-color: #f29559;
}

.color-switcher.earth {
  background-color: #a26769;
}

.code-embed {
  display: none;
}

.div-block-5 {
  grid-column-gap: 8rem;
  grid-row-gap: 8rem;
  color: #fff;
  border-bottom: .4rem solid #fff;
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  max-width: 1920px;
  padding-top: 7rem;
  padding-bottom: 9rem;
  font-size: 1.5rem;
  display: flex;
}

.div-block-6 {
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  font-family: Jost, sans-serif;
  display: flex;
}

.paragraph {
  max-width: 30%;
  font-family: Jost, sans-serif;
  line-height: 145%;
}

.text-block-2 {
  text-align: right;
  line-height: 145%;
}

.code-embed-2 {
  z-index: 99;
  pointer-events: none;
  text-align: center;
  width: 100%;
  position: fixed;
  inset: auto auto 3rem;
}

.img-cos.inner {
  object-position: 50% 100%;
  width: 12rem;
  position: absolute;
  inset: auto 0% 0% auto;
}

.img-cos.transparent {
  opacity: 0;
  width: 12rem;
}

@media screen and (max-width: 991px) {
  .main-anim-row {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    justify-content: flex-start;
    align-items: flex-end;
  }

  .service-name {
    left: 0;
    right: auto;
  }

  .service-name:hover {
    transform: none;
  }
}

@media screen and (max-width: 767px) {
  .img-to {
    width: 6rem;
  }

  .div-block {
    justify-content: flex-start;
    align-items: flex-end;
  }

  .service-name {
    font-size: 2rem;
  }

  .image {
    object-fit: cover;
    max-width: 80%;
  }

  .div-block-6 {
    grid-column-gap: 3rem;
    grid-row-gap: 3rem;
    flex-flow: column;
  }

  .paragraph {
    max-width: 100%;
  }

  .img-cos.inner {
    width: 9.5rem;
    right: auto;
  }

  .img-cos.transparent {
    width: 9rem;
  }
}

@media screen and (max-width: 479px) {
  .main {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .img-to {
    width: 4rem;
  }

  .line.filled.fill {
    width: 3rem;
  }

  .div-block {
    width: 8rem;
  }

  .kontakt {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .div-block-3 {
    grid-column-gap: 3rem;
    grid-row-gap: 3rem;
    flex-flow: column;
  }

  .image {
    object-fit: cover;
    max-width: 100%;
    height: 30rem;
  }

  .div-block-4 {
    flex-flow: row;
    justify-content: space-between;
    align-items: center;
  }

  .color-switcher {
    width: 2rem;
    height: 2rem;
  }

  .div-block-6 {
    grid-column-gap: 4rem;
    grid-row-gap: 4rem;
    text-align: left;
    flex-flow: column;
    justify-content: space-between;
    align-items: flex-start;
  }

  .paragraph {
    max-width: 100%;
  }

  .text-block-2 {
    text-align: left;
  }

  .code-embed-2 {
    height: 3rem;
    font-size: 1rem;
  }

  .img-cos.inner {
    box-sizing: border-box;
    object-fit: fill;
    object-position: 0% 100%;
    width: 8rem;
    height: 2.6rem;
    position: absolute;
    inset: auto auto 0%;
  }

  .img-cos.transparent {
    width: 6.4rem;
  }
}


@font-face {
  font-family: 'Agrandir';
  src: url('../fonts/PPAgrandir-GrandRegular.eot') format('embedded-opentype'), url('../fonts/PPAgrandir-GrandRegular.woff') format('woff'), url('../fonts/PPAgrandir-GrandRegular.ttf') format('truetype'), url('../fonts/PPAgrandir-GrandRegular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}