@charset "UTF-8";

/* ------------ Globale werte und farben -------------*/
:root {
  --wraper: 1080px;
  --color-primary: #14579A;
  --color-secondary: #924b95;
  --color-gray: #575757;
  --color-bg-gray: #EDEEF2;
  --color-bg-gray2: #edeef2ae;
  --color-dark: #181E23;
}

.color-primary {
  color: var(--color-primary);
  fill: var(--color-primary);
}

.color-secondary {
  color: var(--color-secondary);
  fill: var(--color-secondary);
}

.color-gray {
  color: var(--color-gray);
  fill: var(--color-gray);
}

.bg-gray {
  background-color: var(--color-bg-gray);
}

.bg-dark {
  background-color: var(--color-dark) !important;
  color: white;
}

.bg-dark h1,
.bg-dark h2,
.bg-dark h3,
.bg-dark h4 {
  color: white;
}

.bg-child-gray {
  padding-bottom: 0px;
}

.bg-child-gray>*:nth-child(even) {
  background-color: var(--color-bg-gray);
}

/* sticky offset */
[id] {
  scroll-margin-top: 100px;
}

/* roboto-regular - latin */
@font-face {
  font-display: swap;
  font-family: 'Roboto';
  src: url('../fonts/roboto-v30-latin-regular.woff2') format('woff2'),
    url('../fonts/roboto-v30-latin-regular.woff') format('woff');
}

/* roboto-700 - latin */
@font-face {
  font-display: swap;
  font-family: 'Roboto700';
  src: url('../fonts/roboto-v30-latin-700.woff2') format('woff2'),
    url('../fonts/roboto-v30-latin-700.woff') format('woff');
}



* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  outline: none;
}

html {
  font: 1rem Roboto, sans-serif;
}

html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
}

h1,
h2,
h3,
h4 {
  font: 700 2rem Roboto700, sans-serif;
  margin-top: 2rem;
  margin-bottom: .7rem;
  color: var(--color-primary);
}

h1 {
  padding-left: 1rem;
  padding-right: 1rem;
  text-align: center;
  font-size: clamp(1.4rem, calc((1rem + 12vw)*0.24), 2.4rem);
}

h2 {
  font-size: clamp(1.3rem, calc((1rem + 12vw)*0.22), 2.1rem);
}

h3 {
  font-size: clamp(1.1rem, calc((1rem + 12vw)*0.20), 1.7rem);
}

h4 {
  font-size: clamp(1rem, calc((1rem + 12vw)*0.19), 1.4rem);
}

main p,
main span,
main ul,
main ol {
  font-size: clamp(1rem, calc((1rem + 12vw)*0.17), 1.3rem);
}

p {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

p:first-child {
  padding-top: 0;
  margin-top: 0;
}

p:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
}

main ul,
main ol {
  padding-inline-start: 20px;
}

p,
span,
li {
  line-height: calc(1.3 * clamp(1rem, calc((1rem + 12vw)*0.17), 1.3rem));
}

/* Display block -> z.B f&uuml;r Bilder manchmal n&ouml;tig */
.block {
  display: block;
}

/* inhalt durch das menue verschieben */
header+* {
  margin-top: 100px;
}

main {
  padding-top: 30px;
  min-height: 70vh;
  background-color: white;
}

main>*:first-child,
.top0 {
  padding-top: 0px;
  margin-top: 0px;
}

main a {
  text-decoration: none;
  color: var(--color-primary);
  font-weight: 600;
  transition: .2s;
}

main a:hover {
  text-decoration: underline;
  color: var(--color-secondary);
}

/*--------------------- Abst&auml;nde ---------------------*/
.gap1 {
  gap: 10px;
}

.gap2 {
  gap: 20px;
}

.gap3 {
  gap: 30px;
}

.pad1 {
  padding: 1%;
}

.pad2 {
  padding: 2%;
}

.pad3 {
  padding: 3%;
}

.pad1v {
  padding-left: 1%;
  padding-right: 1%;
}

.pad2v {
  padding-left: 2%;
  padding-right: 2%;
}

.pad3v {
  padding-left: 3%;
  padding-right: 3%;
}

.pad1h {
  padding-top: 1%;
  padding-bottom: 1%;
}

.pad2h {
  padding-top: 2%;
  padding-bottom: 2%;
}

.pad3h {
  padding-top: 3%;
  padding-bottom: 3%;
}

.pad10hpx {
  padding-top: 10px;
  padding-bottom: 10px;
}

.pad7h {
  padding-top: calc(5vh + 2vw);
  padding-bottom: calc(5vh + 2vw);
}

.pad-bot0 {
  padding-bottom: 0;
}

.pad-bot60 {
  padding-bottom: 60px;
}

.pad-bot20 {
  padding-bottom: 20px;
}

.pad-left30 {
  padding-left: calc(42% - 100px);
}

.mar1 {
  margin: 1%;
}

.mar2 {
  margin: 2%;
}

.mar3 {
  margin: 3%;
}

.mar1v {
  margin-left: 1%;
  margin-right: 1%;
}

.mar2v {
  margin-left: 2%;
  margin-right: 2%;
}

.mar3v {
  margin-left: 3%;
  margin-right: 3%;
}

.mar1h {
  margin-top: 1%;
  margin-bottom: 1%;
}

.mar2h {
  margin-top: 2%;
  margin-bottom: 2%;
}

.mar3h {
  margin-top: 3%;
  margin-bottom: 3%;
}

.mar-top0 {
  margin-top: 0px;
}

.mar-bot25 {
  margin-bottom: 25px;
}

@media (min-width: 992px) {
  .pad-left0-lg {
    padding-left: 0%;
  }
}

/*--------------------- Breiten ----------------------*/
.wraper {
  width: var(--wraper);
  max-width: 92%;
  margin-left: auto;
  margin-right: auto;
}

.breit100 {
  width: 100%;
}

/*--------------------- Groessen ---------------------*/
.size64 {
  width: 64px;
  height: 64px;
}

/*------------------- Inhalt Ausrichten --------------*/
.center {
  text-align: center;
  text-align: -webkit-center;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

@media (min-width: 768px) {
  .center-md {
    text-align: center;
  }

  .left-md {
    text-align: left;
  }

  .right-md {
    text-align: right;
  }
}

@media (min-width: 992px) {
  .center-lg {
    text-align: center;
  }

  .left-lg {
    text-align: left;
  }

  .right-lg {
    text-align: right;
  }
}

.justify-content-center {
  justify-content: center;
}

.center-v {
  align-self: center;
}

/*------------------------ Flexen ---------------------*/
.flex,
.flex-md,
.flex-lg {
  display: flex;
  flex-wrap: wrap;
}

.flex>* {
  flex: 1 0 0%;
}

.flex2>* {
  flex: 1 0 38%;/* 0 0 35%*/
}

.flex-md>*,
.flex-lg>* {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
}

@media (min-width: 768px) {
  .flex-md>* {
    flex: 1 0 0%;
  }

  .flex-md-2 {
    flex: 2 0 0%;
  }

  .flex-md-3 {
    flex: 3 0 0%;
  }

  .flex-md-4 {
    flex: 4 0 0%;
  }

  .flex-md-5 {
    flex: 5 0 0%;
  }

  .flex-md-6 {
    flex: 6 0 0%;
  }

  .flex-md-7 {
    flex: 7 0 0%;
  }

  .flex-md-8 {
    flex: 8 0 0%;
  }
}

@media (min-width: 992px) {
  .flex-lg>* {
    flex: 1 0 0%;
  }

  .flex-lg-2 {
    flex: 2 0 0%;
  }

  .flex-lg-3 {
    flex: 3 0 0%;
  }

  .flex-lg-4 {
    flex: 4 0 0%;
  }

  .flex-lg-5 {
    flex: 5 0 0%;
  }

  .flex-lg-6 {
    flex: 6 0 0%;
  }

  .flex-lg-7 {
    flex: 7 0 0%;
  }

  .flex-lg-8 {
    flex: 8 0 0%;
  }
}


/*---------------- Order - Sortieren -----------------*/
.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

@media (min-width: 768px) {
  .order-md-1 {
    order: 1;
  }

  .order-md-2 {
    order: 2;
  }

  .order-md-3 {
    order: 3;
  }

  .order-md-4 {
    order: 4;
  }
}

@media (min-width: 992px) {
  .order-lg-1 {
    order: 1;
  }

  .order-lg-2 {
    order: 2;
  }

  .order-lg-3 {
    order: 3;
  }

  .order-lg-4 {
    order: 4;
  }
}

@media (min-width: 1200px) {
  .order-xl-1 {
    order: 1;
  }

  .order-xl-2 {
    order: 2;
  }

  .order-xl-3 {
    order: 3;
  }

  .order-xl-4 {
    order: 4;
  }
}

/*------------- Umbruch nach einem Span --------------*/
.umbruch::after {
  content: '\A';
  white-space: pre;
}

.shadow {
  border: #8080808f solid 1px;
  box-shadow: #8080808f 2px 2px 10px;
}

/*------------------ Header Elemente -----------------*/
#topheader {
  background-color: #181E23;
  padding: 0 2%;
  height: 100px;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
}

#topheader .logo {
  width: 130px;
  height: 64px;
}

#topheader span {
  line-height: 1rem;
}

/* farbeffekt unter den men&uuml;eintr&auml;gen */
#topheader li a:after,
#topheader #topnav ul label:after,
.footer-topline {
  background: linear-gradient(-45deg, #ffa63d, #ff3d77, #338aff, #34e4bb);
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-size: 600%;
  animation: glowing 20s linear infinite;
  transform: scaleX(0);
  transform-origin: bottom left;
  transition: transform 0.15s ease-out;
}

#topheader li a:hover::after,
#topheader li a:active::after,
#topheader #topnav ul label:hover::after,
#topheader #topnav ul label:active::after,
.footer-topline {
  transform: scaleX(1);
}

.footer-topline {
  position: unset;
  height: 3px;
}

@keyframes glowing {
  0% {
    background-position: 0 0;
  }

  50% {
    background-position: 600% 0;
  }

  100% {
    background-position: 0 0;
  }
}

/* farbeffekt ende */

/*------------ Header Kontakt Aufnehmen ------------*/
.kontakt-block {
  display: flex;
}

@media screen and (max-width:370px) {
  #topheader .kontakt-block {
    display: none;
  }
}


.kontakt-block a,
.kontakt-block span {
  line-height: 1rem;
}

.kontakt-block a:hover {
  text-decoration: none;
  color: white;
}

@media screen and (max-width:500px) {
  #topheader .kontakt-block {
    max-width: 150px;
  }
}

.kontakt-block a {
  text-decoration: none;
}

.btn span {
  height: 48px;
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  text-align: center;
}

.header .kontakt-button {
  transition: all .8s ease 0s;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  z-index: 6;
}

.btn {
  color: #fff;
  padding: 0px 17px 0px 17px;
  font-size: 1.1rem;
  font-style: italic;
  font-weight: 900;
  position: relative;
}

.btn:before {
  z-index: 3;
}

.btn:after {
  top: 5px;
  opacity: .5;
  filter: blur(10px);
  transition: opacity .8s ease 0s;
}

.btn:before,
.btn:after {
  content: "";
  background: linear-gradient(-45deg, #ffa63d, #ff3d77, #338aff, #34e4bb);
  background-size: 400%;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  border-radius: 30px;
  display: block;
  overflow: hidden;
  left: 0;
  animation: btn 20s infinite linear;
}

@keyframes btn {
  0% {
    background-position: 0% 50%
  }

  50% {
    background-position: 100% 50%
  }

  100% {
    background-position: 0% 50%
  }
}

/*---------------- Header Navigation ---------------*/

/* ----------------- Mobiles menue -----------------*/
@media screen and (max-width:1200px) {

  /* Burger und Animation */
  #topheader #topnav label.menu-icon {
    color: white;
    padding-left: 0;
    width: 48px;
    height: 48px;
    text-align: center;
    font-size: 2rem;
    display: block;
    text-decoration: none;
    transition: .2s;
  }

  #topheader label>.line {
    background: rgb(255, 255, 255);
    height: 2px;
    width: 100%;
    top: 48%;
    display: block;
    position: relative;
    transition: .3s;
    opacity: 1;
  }

  #topheader label>.line:first-of-type {
    top: 15%;
  }

  #topheader label>.line:last-of-type {
    top: 80%;
  }

  #topheader #menuToggle:checked~label .line:first-of-type {
    transform: rotateZ(-45deg);
    top: calc(50% + 4px);

  }

  #topheader #menuToggle:checked~label .line:nth-of-type(2) {
    background: #181E23;
    transform: rotateZ(45deg);
    top: calc(50% + 2px);
    height: 6px;
    opacity: 0;
  }

  #topheader #menuToggle:checked~label .line:last-of-type {
    transform: rotateZ(45deg);
    top: calc(50% - 4px);

  }

  /* Burger ende */


  #topheader #topnav {
    font-size: 1.5rem;
  }

  #topheader #topnav li {
    list-style-type: none;
  }

  #topheader #topnav>ul {
    background-color: #181E23;
    position: absolute;
    left: 100vw;
    width: 100%;
    top: 100px;
    padding-bottom: 10px;
    max-height: calc(100vh - 100px);
    transition: 0.5s;
    opacity: 0;
    z-index: 99;
    overflow-y: auto;
    overflow-x: hidden;
  }

  #topheader #topnav a,
  #topheader #topnav li>label {
    color: #fff;
    display: block;
    text-decoration: none;
    padding-left: 1.5rem;
    line-height: 48px;
    transition: .2s;
  }

  #topheader #topnav ul ul a {
    color: #fff;
    display: block;
    text-decoration: none;
    padding-left: 3rem;
    line-height: 48px;
  }

  #topheader .dropdown-content {
    overflow: hidden;
    max-height: 0px;
    transition: .5s;
  }

  #topheader .dropdown-content:hover,
  #topheader .dropdown-content:active {
    height: inherit;
  }

  #topheader #menuToggle,
  #topheader #topnav a.dropbtn {
    display: none;
  }

  #topheader #menuToggle:checked~ul {
    left: 0px;
    opacity: 1;
    box-shadow: 0px 5px 5px rgb(123 194 255 / 20%);
  }

  #topheader #topnav input {
    display: none;
  }

  #topheader input:checked~ul {
    max-height: 1000px;
  }

  #topheader #topnav ul label span {
    display: inline-block;
    transition: 1s;
  }

  #topheader input.hide-desktop:checked~label span {
    transform: rotateX(180deg);
  }

  /* untermenues beim hovern nach rechts einr&uuml;cken */
  #topheader #topnav a:hover,
  #topheader #topnav a:active,
  #topheader #topnav ul label:hover,
  #topheader #topnav ul label:active {
    background-color: #4e4e4e3a;
    transform: translatex(10px);
  }

}


/* ---------------- Desktop menue -----------------*/
@media screen and (min-width:1201px) {

  .menu-icon,
  .hide-desktop,
  #menuToggle {
    display: none;
  }

  #topheader #topnav {
    display: flex;
  }

  #topheader ul {
    list-style-type: none;
    overflow: hidden;
  }

  #topheader #topnav>ul>li {
    float: left;
  }

  #topheader li a,
  #topheader .dropbtn {
    color: rgba(255, 255, 255, 0.845);
    padding: 14px 1vw;
    position: relative;
    display: inline-block;
    text-align: center;
    text-decoration: none;
    letter-spacing: 1px;
  }

  #topheader li a.aktiv,
  #topheader .dropbtn.aktiv {
    color: rgb(255, 255, 255);
    font-weight: bolder;
  }

  #topheader .dropdown-content {
    background-color: #f9f9f9;
    min-width: 160px;
    padding-right: 10px;
    padding-bottom: 10px;
    margin-top: 22px;
    max-height: 0px;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    position: absolute;
    z-index: 1;
    transition: .2s;
    opacity: 0;
    overflow: hidden;
  }

  /* transperenter &uuml;bergang zum dropdown */
  #topheader .spacer {
    background-color: #00000000;
    margin-top: 0;
    height: 24px;
    min-width: 250px;
    box-shadow: none;
    z-index: 20;
  }

  #topheader .dropdown-content a {
    color: rgba(255, 255, 255, 0);
    display: block;
    text-align: left;
    line-height: 0rem;
    transition: .2s;
  }


  /* men&uuml;s nach unten ausfahren */
  #topheader .dropdown:hover .dropdown-content,
  #topheader .dropdown:active .dropdown-content {
    opacity: 1;
    max-height: 1000px;
  }

  #topheader .dropdown:hover .dropdown-content a,
  #topheader .dropdown:active .dropdown-content a {
    color: rgba(23, 86, 121, 1);
    line-height: 1.5rem;
  }

  /* untermenues beim hovern nach rechts einr&uuml;cken */
  #topheader .dropdown-content a:hover,
  #topheader .dropdown-content a:active {
    background-color: #f1f1f1;
    transform: translatex(10px);
  }

  #topheader #topnav .dropdown span {
    transition: 1s;
    display: inline-block;
  }

  #topheader #topnav .dropdown:hover span,
  #topheader #topnav .dropdown:active span {
    transform: rotateX(180deg);
  }

}

/*------------------ Navigation ENDE ---------------- */
/*---------------- Header Elemente ENDE --------------*/

/* --------------------- footer ----------------------*/
#footer {
  background: #181e23;
  color: rgb(148, 148, 148);
  padding: 30px 0 10px;
  overflow: hidden;
}

#footer a {
  color: rgb(243, 243, 243);
  text-decoration: none;
}

@media (max-width: 768px) {
  #footer a {
    line-height: 48px;
    display: inline-block;

  }
}

.footer_bottom {
  border-style: solid;
  border-width: 1px 0px 0px 0px;
  border-color: rgba(255, 255, 255, 0.19);
}

/*--------------------- Footer ende ------------------*/

/*--------------------- Hero header ------------------*/
.heroEffects~* {
  z-index: 1;
  position: relative;
}

.heroEffects {
  height: calc(100vh - 100px);
  position: relative;
  z-index: 0;
  top: 0;
  left: 0;
  overflow: hidden;
}

.heroEffects .bg {
  position: absolute;
  height: 100%;
  width: 100%;
  transform: scale(1);
}

.heroEffects .bg>* {
  position: absolute;
  height: 100%;
}

.heroEffects .shade {
  opacity: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 3;
  height: calc(100vh - 100px);
  position: absolute;
  width: 100%;
}

.heroEffects .title {
  width: 100%;
}

.heroEffects .title .text {
  z-index: 1;
  width: 100%;
  text-align: center;
  color: White;
  padding: 4em 1em;
  background: rgba(0, 0, 0, 0.6);
}

.heroEffects .arrow {
  position: fixed;
  left: 50%;
  margin-left: -40px;
  bottom: 30px;
  width: 40px;
  height: 40px;
  opacity: 1;
  z-index: 5;
}

.heroEffects .arrow svg {
  padding: 20px;
  box-sizing: content-box;
}

.centerV {
  display: table;
  height: 100%;
}

.centerV>div {
  display: table-cell;
  vertical-align: middle;
}


.heroEffects h1 {
  font-size: clamp(3rem, calc((1rem + 12vw)*0.45), 4rem);
  color: #fff;
}

.heroEffects ul {
  width: 90vw;
  margin: 0 auto;
  line-height: 1.5em;
  padding: 10px 20px 0;
  border-top: solid 1px rgba(255, 255, 255, 0.2);
  letter-spacing: 0.015em;
  display: block;
  color: #eee;
  list-style-type: none;
}

.heroEffects ul li::before {
  content: "•";
  padding-right: .5rem;
}

@media screen and (min-width:997px) {
  .heroEffects ul li {
    display: inline;
  }

  .heroEffects ul {
    width: 60vw;
  }
}


.bouncy {
  animation: bouncy-ani 3s infinite cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes bouncy-ani {
  0% {
    transform: translate(0, 0px);
    animation-timing-function: cubic-bezier(0.19, 0.28, 0.27, 1);
  }

  11% {
    transform: translate(0, -25px) scaleX(0.8);
    animation-timing-function: cubic-bezier(0.57, 0.01, 0.84, 0.5);
  }

  20% {
    transform: translate(0, 0px) scaleY(0.8);
    animation-timing-function: cubic-bezier(0.19, 0.28, 0.27, 1);
  }

  28% {
    transform: translate(0, -10px);
    animation-timing-function: cubic-bezier(0.57, 0.01, 0.84, 0.5);
  }

  36% {
    transform: translate(0, 0px);
    animation-timing-function: cubic-bezier(0.19, 0.28, 0.27, 1);
  }

  100% {
    transform: translate(0, 0px);
    animation-timing-function: cubic-bezier(0.19, 0.28, 0.27, 1);
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/*------------------- Hero ende --------------------*/

/*------------------- Portrait ---------------------*/
.portrait {
  align-items: center;
  display: flex;
  flex-direction: column;
  width: 280px;
  margin: 40px auto 30px;
}

.portrait .container {
  border-radius: 50%;
  height: 340px;
  -webkit-tap-highlight-color: transparent;
  transform: scale(0.6);
  transition: transform 500ms cubic-bezier(0.4, 0, 0.2, 1);
  width: 400px;
}

.portrait .container:after {
  content: "";
  height: 10px;
  position: absolute;
  top: 390px;
  /*width: 100%;*/
}

.portrait .container:hover {
  transform: scale(0.65);
}

.portrait .container-inner {
  clip-path: path("M 390,400 C 390,504.9341 304.9341,590 200,590 95.065898,590 10,504.9341 10,400 V 10 H 200 390 Z"
    );
  position: relative;
  transform-origin: 50%;
  top: -200px;
}

.portrait .circle {
  background-color: #00bbff;
  object-fit: cover;
  object-position: 0%;
  border-radius: 50%;
  cursor: pointer;
  height: 380px;
  left: 10px;
  pointer-events: none;
  position: absolute;
  top: 210px;
  /* 210px */
  width: 380px;
  animation: port-back-move 250s linear infinite;
}

@keyframes port-back-move {
  0% {
    object-position: 0%;
  }

  50% {
    object-position: 100%;
  }

  100% {
    object-position: 0%;
  }
}


.portrait .img {
  pointer-events: none;
  position: relative;
  transform: translateY(20px) scale(1.15);
  transform-origin: 50% bottom;
  transition: transform 500ms cubic-bezier(0.4, 0, 0.2, 1);
}

.portrait .container:hover .img {
  transform: translateY(0) scale(1.2);
}

.portrait .img1 {
  left: 22px;
  top: 164px;
  width: 340px;
}

.portrait .img2 {
  left: -46px;
  top: 174px;
  width: 444px;
}

.portrait .img3 {
  left: -16px;
  top: 144px;
  width: 466px;
}

.portrait .divider {
  background-color: var(--color-primary);
  height: 2px;
  width: 240px;
}

.portrait .name {
  color: var(--color-primary);
  font-size: 36px;
  font-weight: 600;
  margin-top: 16px;
  text-align: center;
}

.portrait .title {
  font-size: 14px;
  margin-top: 4px;
}

/*----------------- Portrait ende --------------------*/

/*--------------------- Button -----------------------*/
.button-primary {
  display: inline-block;
  color: var(--color-primary);
  background-color: white;
  padding: 15px 25px;
  border: var(--color-primary) solid 2px;
  letter-spacing: 2px;
  text-transform: uppercase !important;
  margin-top: 20px;
  margin-bottom: 30px;
}

.button-primary:hover,
.button-primary:active {
  color: white;
  background-color: var(--color-primary);
  text-decoration: none;
}

/*------------------- Button ende --------------------*/

/*----------------- Seitenschatten -------------------*/
.side-bg {
  position: relative;
}

.side-bg>div {
  z-index: 1;
  padding-top: 50px;
  padding-bottom: 20px;
}

.bg-right,
.bg-left {
  position: absolute;
  z-index: 0 !important;
  background-color: var(--color-bg-gray2);
  background: linear-gradient(to right, rgb(255, 255, 255) 0%, var(--color-bg-gray) 50%, rgb(255, 255, 255) 100%);
  height: 100%;
}

.bg-right {
  left: 60%;
}

.bg-left {
  left: -60%;
}

@media (min-width: 992px) {
  .side-bg>div {
    padding-top: 70px;
    padding-bottom: 30px;
  }
}

/*-------------- Seitenschatten Ende  ----------------*/

/*------------------ Progressbar  --------------------*/
.progress {
  background-color: var(--color-bg-gray);
  display: block;
  border-radius: 10px;
}

.progress .amount {
  height: 20px;
  background-color: var(--color-primary);
  display: block;
  border-radius: 10px;
}

/*----------------- Progressbar ende -----------------*/

/*--------------- Infinity Leistungen ----------------*/
:root {
  --size: clamp(8rem, 1rem + 30vmin, 15rem);
  --gap: calc(var(--size) / 14);
  --duration: 60s;
  --scroll-start: 0;
  --scroll-end: calc(-100% - var(--gap));
}

.marquee {
  display: flex;
  overflow: hidden;
  user-select: none;
  gap: var(--gap);
  -webkit-mask-image: linear-gradient(var(--mask-direction, to right),
      hsl(0 0% 0% / 0),
      hsl(0 0% 0% / 1) 10%,
      hsl(0 0% 0% / 1) 90%,
      hsl(0 0% 0% / 0));

  mask-image: linear-gradient(var(--mask-direction, to right),
      hsl(0 0% 0% / 0),
      hsl(0 0% 0% / 1) 10%,
      hsl(0 0% 0% / 1) 90%,
      hsl(0 0% 0% / 0));
}

.marquee__group {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: var(--gap);
  min-width: 100%;
  animation: scroll-x var(--duration) linear infinite;
}

.marquee img{
  width: 220px;
}

.marquee--reverse .marquee__group {
  animation-direction: reverse;
  animation-delay: -3s;
}

@keyframes scroll-x {
  from {
    transform: translateX(var(--scroll-start));
  }

  to {
    transform: translateX(var(--scroll-end));
  }
}

/* Element styles */
.marquee svg {
  display: grid;
  place-items: center;
  width: var(--size);
  fill: var(--color-primary);
  background: var(--color-bg-gray);
  aspect-ratio: 16/9;
  padding: calc(var(--size) / 10);
  border-radius: 0.5rem;
}

.marquee--vertical svg {
  width: calc(var(--size) / 1.5);
  padding: calc(var(--size) / 6);
}

/* Parent wrapper */
.wrapper1 {
  display: flex;
  flex-direction: column;
  gap: var(--gap);
  margin: auto;
  max-width: 100vw;
  margin-top: var(--gap);
  margin-bottom: var(--gap);
}

/* Toggle direction button */
.toggle {
  --size: 3rem;
  position: relative;
  position: fixed;
  top: 1rem;
  left: 1rem;
  width: var(--size);
  height: var(--size);
  font: inherit;
  text-align: center;
  cursor: pointer;
  outline: none;
  border: none;
  border-radius: 50%;
  color: inherit;
  background-color: var(--color-bg-accent);
  z-index: 1;
}

.toggle span {
  position: absolute;
  display: inline-block;
  top: 50%;
  left: calc(100% + 0.4em);
  width: fit-content;
  white-space: nowrap;
  transform: translateY(-50%);
  animation: fade 400ms 4s ease-out forwards;
  user-select: none;
}

.toggle svg {
  --size: 1.5rem;
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--size);
  height: var(--size);
  fill: currentcolor;
  transform: translate(-50%, -50%);
  transition: transform 300ms cubic-bezier(0.25, 1, 0.5, 1);
}

@keyframes fade {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

/*------------- Infinity Leistungen ende -------------*/

/*---------------- Eigene Animationen ----------------*/
/* Text schreiben */
.ani_write {
  width: 0ch;
  overflow: hidden;
  white-space: nowrap;
}

.ani_write.active {
  animation: typeIn 2s steps(28) forwards;
}

@keyframes typeIn {
  to {
    width: 28ch;
  }
}

/* Einblenden einstellungen */
.ani {
  transition: transform 0.5s, opacity 0.5s;
}

.t1 {
  transition-duration: 1s;
}

.t2 {
  transition-duration: 1.5s;
}

.d1 {
  transition-delay: .2s;
}

.d2 {
  transition-delay: .4s;
}

.d3 {
  transition-delay: .6s;
}

.d4 {
  transition-delay: .8s;
}

.d5 {
  transition-delay: 1s;
}

/* Fade In */
.ani.ani_in {
  opacity: 0;
}

.ani.ani_up {
  transform: scale(.5);
  opacity: 0;
}

.ani.ani_left {
  transform: translateX(-200px);
  opacity: 0;
}

.ani.ani_right {
  transform: translateX(200px);
  opacity: 0;
}

.ani.ani_top {
  transform: translateY(-200px);
  opacity: 0;
}

.ani.ani_bottom {
  transform: translateY(200px);
  opacity: 0;
}

/* Ausgangspunkt */
.ani.active {
  transform: translateX(0) scale(1);
  opacity: 1;
}

/*
t1, t2 langsamer
d1 - d5 versetzt
<div class="ani ani_in">Fadein</div>
<div class="ani ani_up">Fadein Scale up</div>
<div class="ani ani_left">Fadein Left</div>
<div class="ani ani_right">Fadein Right</div>
<div class="ani ani_top">Fadein Top</div>
<div class="ani ani_bottom">Fadein Bottom</div>
*/

.hover_scale {
  transition: transform 0.3s;
  transform: scale(1);
}

.hover_scale:hover {
  transform: scale(1.05);
}

/*------------- Eigene Animationen ende -------------*/

/*------------------ Whatsapp Button ----------------*/
.whatsapp-link {
  position: fixed;
  z-index: 20;
  bottom: 50px;
  right: 30px;
}

.whatsapp-link svg {
  height: 54px;
  width: 54px;
}

/*--------------- Whatsapp Button ende --------------*/

/*---------------------- Waves ----------------------*/
.header {
  position: relative;
  text-align: center;
  /*background: linear-gradient(60deg, rgba(84,58,183,1) 0%, rgba(0,172,193,1) 100%);*/
  background: linear-gradient(to bottom, rgb(17, 76, 143) 0%, rgb(26, 104, 173) 66%, rgba(56, 153, 226, 1) 100%);
  ;
  color: white;
}

.header h1 {
  z-index: 10;
}

.inner-header {
  height: 150px;
  width: 100%;
  margin: 0;
  padding: 0;
}

.header .flex {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.waves {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 15vh;
  margin-bottom: -7px;
  min-height: 70px;
  max-height: 120px;
}

/* Animation */
.parallax>use {
  animation: move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite;
}

.parallax>use:nth-child(1) {
  animation-delay: -2s;
  animation-duration: 7s;
}

.parallax>use:nth-child(2) {
  animation-delay: -3s;
  animation-duration: 10s;
}

.parallax>use:nth-child(3) {
  animation-delay: -4s;
  animation-duration: 13s;
}

.parallax>use:nth-child(4) {
  animation-delay: -5s;
  animation-duration: 20s;
}

@keyframes move-forever {
  0% {
    transform: translate3d(-90px, 0, 0);
  }

  100% {
    transform: translate3d(85px, 0, 0);
  }
}

/*Shrinking for mobile*/
@media (max-width: 768px) {
  .waves {
    height: 40px;
    min-height: 40px;
  }

  .content {
    height: 30vh;
  }
}

/*------------------- Waves ende -------------------*/


/*--------------------- Lightbox -------------------*/
.lb-loader,
.lightbox {
  text-align: center;
  line-height: 0;
  position: absolute;
  left: 0
}

body.lb-disable-scrolling {
  overflow: hidden
}

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: #000;
  filter: alpha(Opacity=80);
  opacity: .8;
  display: none
}

.lightbox {
  width: 100%;
  z-index: 10000;
  font-weight: 400;
  outline: 0
}

.lightbox .lb-image {
  display: block;
  height: auto;
  max-width: inherit;
  max-height: none;
  border-radius: 3px;
  border: 4px solid #fff
}

.lightbox a img {
  border: none
}

.lb-outerContainer {
  position: relative;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;
  background-color: #fff
}

.lb-outerContainer:after {
  content: "";
  display: table;
  clear: both
}

.lb-loader {
  top: 43%;
  height: 25%;
  width: 100%
}

.lb-cancel {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 auto;
  background: url(../img/loading.gif) no-repeat
}

.lb-nav {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10
}

.lb-container>.nav {
  left: 0
}

.lb-nav a {
  outline: 0;
  background-image: url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
}

.lb-next,
.lb-prev {
  height: 100%;
  cursor: pointer;
  display: block
}

.lb-nav a.lb-prev {
  width: 34%;
  left: 0;
  float: left;
  background: url(../img/prev.png) left 48% no-repeat;
  filter: alpha(Opacity=0);
  opacity: 0;
  -webkit-transition: opacity .6s;
  -moz-transition: opacity .6s;
  -o-transition: opacity .6s;
  transition: opacity .6s
}

.lb-nav a.lb-prev:hover {
  filter: alpha(Opacity=100);
  opacity: 1
}

.lb-nav a.lb-next {
  width: 64%;
  right: 0;
  float: right;
  background: url(../img/next.png) right 48% no-repeat;
  filter: alpha(Opacity=0);
  opacity: 0;
  -webkit-transition: opacity .6s;
  -moz-transition: opacity .6s;
  -o-transition: opacity .6s;
  transition: opacity .6s
}

.lb-nav a.lb-next:hover {
  filter: alpha(Opacity=100);
  opacity: 1
}

.lb-dataContainer {
  margin: 0 auto;
  padding-top: 5px;
  width: 100%;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px
}

.lb-dataContainer:after {
  content: "";
  display: table;
  clear: both
}

.lb-data {
  padding: 0 4px;
  color: #ccc
}

.lb-data .lb-details {
  width: 85%;
  float: left;
  text-align: left;
  line-height: 1.1em
}

.lb-data .lb-caption {
  font-size: 13px;
  font-weight: 700;
  line-height: 1em
}

.lb-data .lb-caption a {
  color: #4ae
}

.lb-data .lb-number {
  display: block;
  clear: left;
  padding-bottom: 1em;
  font-size: 12px;
  color: #999
}

.lb-data .lb-close {
  display: block;
  float: right;
  width: 30px;
  height: 30px;
  background: url(../img/close.png) top right no-repeat;
  text-align: right;
  outline: 0;
  filter: alpha(Opacity=70);
  opacity: .7;
  -webkit-transition: opacity .2s;
  -moz-transition: opacity .2s;
  -o-transition: opacity .2s;
  transition: opacity .2s
}

.lb-data .lb-close:hover {
  cursor: pointer;
  filter: alpha(Opacity=100);
  opacity: 1
}

/*------------------ Lightbox ende  ----------------*/

/*------------------ snow background ---------------*/
.snow-banner:before {
  content: '';
  display: block;
  position: absolute;
  overflow: hidden;
  z-index: 5;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  background-image: url('../img/snowflakes-a.png'),
    url('../img/snowflakes-b.png'),
    url('../img/snowflakes-d.png');
  animation: snow 30s linear infinite;

}

@keyframes snow {
  0% {
    background-position: 0px 0px, 0px 0px, 0px 0px;
  }

  25% {
    background-position: 250px 500px, -200px 200px, -100px 150px;
  }

  50% {
    background-position: 700px 1000px, -50px 500px, -70px 300px;
  }

  75% {
    background-position: 650px 1500px, 100px 700px, 50px 400px;
  }

  100% {
    background-position: 500px 2000px, 0px 1000px, 0px 500px;
  }
}

/*---------------- snow background ende -------------*/

/*------------------ Komet background ---------------*/
.komet-banner:after {
  content: '';
  display: block;
  position: absolute;
  overflow: hidden;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  background-repeat: no-repeat;
  background-image: url('../img/komet1.png'),
    url('../img/Santa_Claus.png');
  animation: komet 20s linear;
  animation-delay: 4s;
  opacity: 0;
}

@keyframes komet {
  0% {
    background-position: -22vw 30px, 130vw 30px;
    background-size: calc(100px + 10vw);
    transform: rotate(0deg), rotate(0deg);
    opacity: .8;
  }

  20% {
    background-position: 200vw 0px, 130vw 30px;
    background-size: 2vw;
    transform: rotate(20deg), rotate(0deg);
    opacity: .6;
  }

  21% {
    background-position: 200vw 0px, 100vw 50%;
    background-size: calc(100px + 10vw);
    transform: rotate(20deg), rotate(0deg);
    opacity: 1;
  }

  100% {
    background-position: 200vw 0px, 20% -20%;
    background-size: 4vw;
    transform: rotate(20deg), rotate(0deg);
    opacity: .6;
  }
}

/*---------------- Komet background ende -------------*/


/*----------------------- Hover Box ------------------*/
#hover_box {
  display: flex;
  width: 100%;
  height: 240px;
  margin: 0px auto 0 auto;
  justify-content: space-around;
}

#hover_box .box {
  width: 16.67%;
  height: 100%;
  text-align: center;
  line-height: 240px;
  transition: 1s;
  cursor: pointer;
  overflow: hidden;
  background-size: cover;
  background-position: center center;
  background-blend-mode: darken;
}

#hover_box span {
  color: white;
  text-shadow: 2px 2px 5px #000000;

  display: inline-block;
  font-size: clamp(1.1rem, calc((1rem + 12vw)*0.22), 2.1rem);

  transition: 1s;
  transform: rotate(90deg);

}

#hover_box .box:hover span {
  transform: rotate(0deg);
}

#hover_box .box:hover {
  width: 30%;
}

#box_1 {
  background: rgba(0, 0, 0, 0.3) url('../img/planung.webp');
}

#box_2 {
  background: rgba(0, 0, 0, 0.3) url('../img/kalkulation.webp');
}

#box_3 {
  background: rgba(0, 0, 0, 0.3) url('../img/design.webp');
}

#box_4 {
  background: rgba(0, 0, 0, 0.3) url('../img/template.webp');
}

#box_5 {
  background: rgba(0, 0, 0, 0.3) url('../img/inhalt.webp');
}

#box_6 {
  background: rgba(0, 0, 0, 0.3) url('../img/lounch.webp');
}

/*-------------------- Hover Box ende  ---------------*/

/*--- Homepage Bild scroll ---*/
.auto-image-scroll {
  height: 480px;
  overflow: hidden;
}

.auto-image-scroll img {
  transition: transform 8s ease-in-out, -webkit-transform 8s ease-in-out;
  width: 100%;
  max-width: 100%;
  height: auto;
}



@media screen and (max-width: 1200px) {

  [id] {
    scroll-margin-top: 80px;
  }

  #topheader .logo {
    width: auto;
    height: 54px;
  }

  #topheader {
    height: 80px;
  }

  header+* {
    margin-top: 80px;
  }

  #topheader #topnav>ul {
    top: 80px;
  }

  #topheader #topnav label.menu-icon{
    width: 40px;
    height: 40px;
  }

}