/* open-sans-regular - latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local(''),
       url('/open-sans-v27-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('/open-sans-v27-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* open-sans-700 - latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: local(''),
       url('/open-sans-v27-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('/open-sans-v27-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

* {
  font-family: 'Open Sans';
  font-size: 18px;
  line-height: 26px;
  color: #444;
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

section.keyvisual {
  width: 100%;
  height: 100vh;
  position: relative;
  position: fixed;
  top: 0;
  background-image: url(images/freising-domberg-altstadt.jpg);
  background-size: cover;
  z-index: 0;
}

section.keyvisual:after {
  content: '';
  width: 100%;
  height: 180px;
  position: absolute;
  top: 90px;
  background-image: url(images/overlay-wasserfarbe-top.png);
  background-size: cover;
  background-position: top center;
  z-index: 0;
}

.header a.logo {
  display: block;
  width: 100%;
  position: absolute;
  top: 0;
  background-color: #fff;
  padding: 18px 30px;
  z-index: 1;
}

.header a.logo img {
  display: block;
  width: 180px;
}

.header p {
  display: none;
  position: relative;
  text-align: right;
  z-index: 1;
  font-size: 18px;
  line-height: 26px;
  width: 100%;
  padding: 54px 30px 0px 0px;
}

.slogan {
  position: absolute;
  top: 30%;
  right: 18px;
  left: 18px;
  transform: translate(0, -20%);
  display: flex;
  flex-direction: column;
  z-index: 1;
}

.slogan h1 {
  font-size: 42px;
  line-height: 50px;
  font-weight: normal;
  text-transform: uppercase;
  color: #fff;
  text-align: center;
}

.slogan h1 span {
  display: block;
  position: relative;
  font-size: 42px;
  line-height: 50px;
  color: #fff;
  margin: 6px 0;
  padding: 6px 18px;
  background-color: #0582B9;
  border-radius: 4px;
  transition: all 0.2s ease-out;
}

.slogan h1 span.slogan1 {
  max-width: 525px;
  transform: translateX(0);
}

.slogan h1 span.slogan2 {
  max-width: 305px;
  transform: translateX(0);
}

a.arrow-down {
  width: 84px;
  height: 66px;
  position: absolute;
  bottom: 90px;
  left: calc(50% - 30px);
  background-color: #E27E32;
  background-image: url(images/arrow-down.svg);
  background-size: 32px;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: 2px 2px 4px 0 rgba(5,5,5,0.10);
  border-radius: 4px;
  animation-name: arrow-down;
  animation-duration: 2.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  transition: all 0.4s ease-in-out;
}

@keyframes arrow-down {
  0% {
    bottom: 90px;
  }
  50% {
    bottom: 96px;
  }
  100% {
    bottom: 90px;
  }
}

a.arrow-down:hover {
  background-color: #ff913e;
  transition: all 0.4s ease-in-out;
}

section.content {
  width: 100%;
  height: 100%;
  position: relative;
  background-color: #fff;
  padding: 60px 0;
  margin-top: 100vh;
  z-index: 1;
}

section.content:after {
  content: '';
  width: 100%;
  height: 180px;
  position: absolute;
  top: -180px;
  background-image: url(images/overlay-wasserfarbe-bottom.png);
  background-size: cover;
  background-position: top center;
  z-index: 0;
}

.inner {
  width: 100%;
  max-width: 1024px;
  text-align: center;
  padding: 0 18px;
  margin: 0 auto;
}

h2 {
  font-family: 'Formata', 'Open Sans';
  font-size: 36px;
  line-height: 44px;
  color: #0582B9;
  margin: 0 0 18px;
}

a.button {
  display: inline-block;
  background-color: #E27E32;
  padding: 18px 42px;
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  margin-top: 30px;
  transition: all 0.4s ease-in-out;
}

a.button:hover {
  background-color: #ff913e;
  transition: all 0.4s ease-in-out;
}

.footer {
  padding: 60px 18px 0;
}

.footer p {
  font-size: 18px;
  line-height: 26px;
  text-align: center;
}

.footer a {
  font-size: 18px;
  line-height: 26px;
  text-decoration: none;
  transition: all 0.3s ease-in-out;
}

.footer a:hover {
  color: #0582B9;
  transition: all 0.3s ease-in-out;
}



@media (min-width: 780px) {
  * {
    font-size: 24px;
    line-height: 32px;
  }

  section.keyvisual {
    height: 100vh;
    top: 0;
  }

  section.keyvisual:after {
    height: 240px;
    top: 100px;
  }

  .header a.logo {
    top: 0;
    background-color: #fff;
    padding: 18px 30px;
  }

  .header a.logo img {
    width: 200px;
  }

  .slogan {
    top: 30%;
    right: 6%;
    left: auto;
    transform: translate(0, -20%);
  }

  .slogan h1 {
    font-size: 54px;
    line-height: 60px;
  }

  .slogan h1 span {
    font-size: 54px;
    line-height: 60px;
    margin: 6px 0;
    padding: 6px 24px;
  }

  .slogan h1 span.slogan1 {
    max-width: 676px;
    transform: translateX(0);
  }

  .slogan h1 span.slogan2 {
    max-width: 394px;
    transform: translateX(120px);
  }

  @keyframes arrow-down {
    0% {
      bottom: 180px;
    }
    50% {
      bottom: 186px;
    }
    100% {
      bottom: 180px;
    }
  }

  section.content {
    min-height: 720px;
    height: 100vh;
    padding: 60px 0 60px;
    margin-top: 100vh;
  }

  .inner {
    max-width: 1024px;
    padding: 0 30px;
    transform: translateY(30%);
  }

  h2 {
    font-size: 48px;
    line-height: 56px;
    margin: 24px 0 24px;
  }

  a.button {
    padding: 18px 42px;
    margin-top: 24px;
  }

  .footer {
    position: absolute;
    bottom: 60px;
    left: 60px;
    right: 60px;
  }

  .footer p {
    font-size: 18px;
    line-height: 26px;
  }

  .footer a {
    font-size: 18px;
    line-height: 26px;
  }
}


@media (min-width: 1200px) {
  .slogan {
    top: 32%;
    right: 12%;
    left: auto;
    transform: translate(0, -20%);
  }

  .slogan h1 {
    font-size: 72px;
    line-height: 78px;
  }

  .slogan h1 span {
    font-size: 72px;
    line-height: 78px;
    margin: 6px 0;
    padding: 6px 24px;
  }

  .slogan h1 span.slogan1 {
    max-width: 886px;
    transform: translateX(0);
  }

  .slogan h1 span.slogan2 {
    max-width: 509px;
    transform: translateX(180px);
  }

  .inner {
    padding: 0 60px;
    transform: translateY(48%);
  }

  .footer {
    bottom: 60px;
    left: 30px;
    right: 30px;
  }
}


@media (min-width: 1600px) {
  @keyframes arrow-down {
    0% {
      bottom: 240px;
    }
    50% {
      bottom: 246px;
    }
    100% {
      bottom: 240px;
    }
  }

  section.content:after {
    height: 240px;
    top: -240px;
  }
}

@media (min-width: 2000px) {
  @keyframes arrow-down {
    0% {
      bottom: 300px;
    }
    50% {
      bottom: 306px;
    }
    100% {
      bottom: 300px;
    }
  }

  section.content:after {
    height: 300px;
    top: -300px;
  }
}
