html * {
  box-sizing: border-box;
}
body {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion) {
  body {
    scroll-behavior: unset;
  }
}
#main {
  -webkit-hyphens: auto;
      -ms-hyphens: auto;
          hyphens: auto;
}
html,
body {
  margin: 0;
  padding: 0;
}

.inner {
  width: 100%;
  max-width: 1100px; /* SIEHE MEDIA-QUERY */
  margin-right: auto;
  margin-left: auto;
}

#main .inner,
#footer .inner {
  padding-left: 20px;
  padding-right: 20px;
}

#logo {
  z-index: 999;
  float: left;
  padding-left: 20px;
}

.clearfix:after {
  display: block;
  visibility: hidden;
  clear: both;
  height: 0;
  content: ".";
}

h1,
h2,
h3,
h4,
h5,
p,
ul,
li {
  margin-top: 0;
}

p, ul, ol {
  margin-bottom: 2em;
}
p:last-child {
  margin-bottom: 0;
}
img {
  max-width: 100%;
  height: auto;
}
img[loading] {
  transition: opacity .8s;
}
img.lazy {
  opacity: 0;
}

.selectall {
  -webkit-user-select: all;
     -moz-user-select: all;
      -ms-user-select: all;
          user-select: all;
}

.nobreak {
  white-space: nowrap;
}

.js .fixed {
  position: fixed;
  top: 0;
}

.flexbox {  display: flex;  flex-wrap: wrap;
}
.fb-spacearound {  justify-content: space-around;
}
.fb-spacebetween {  justify-content: space-between;
}
.fb-nowrap {  flex-wrap: nowrap;
}
.fb-bottom { align-items: flex-end;
}
/* .fb-reverse {
  flex-direction: row-reverse;
} */
@media only screen and (max-width: 699px) {
  .fb-reverse {
    flex-direction: column-reverse;
  }
}
.fb-vertical {
  align-items: center;
}
.gap {
  width: var(--gap);
}
.gap40 {
  width: 40px;
}
.gap80 {
  width: 80px;
}

/* It won't work if the target has top padding or border or within flexbox since it relies on margin-collapse. */
.anchor-offset:target::before {
  content: '';
  display: block;
  position: relative;
  width: 0;
  height: 150px;
  margin-top: -150px;
  visibility: hidden;
  pointer-events: none;
}
/* Alternative (Safari?) */
/* html, body {
  --top-spacing: 100px;
  scroll-padding-top: var(--top-spacing);
} */




.menu {
  z-index: -1;
  overflow: auto;
  box-sizing: border-box;
  width: 100%;
  list-style: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  transition: visibility 0s, opacity 0.2s ease-out;
  pointer-events: initial;
  padding: 0;
}

.js .menu {
  position: absolute;
  visibility: hidden;
  opacity: 0;
}

.expanded .menu {
  visibility: visible;
  opacity: 1;
}


.menu a,
.menu span {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
   -khtml-user-select: none;
  -webkit-touch-callout: none;
  display: block;
}

button.toggle {
  display: none;
}
.js button.toggle {
  display: block;
  background: none;
  color: inherit;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  outline: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-indent: -9999px;
}

.toggle {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  transition-timing-function: linear;
  transition-duration: 0.15s;
  transition-property: opacity,-webkit-filter;
  transition-property: opacity,filter;
  transition-property: opacity,filter,-webkit-filter;
  font-size: 1.1rem;
  cursor: pointer;
}


.toggle span {
  top: 50%;
  display: block;
  margin-left: 15px;
  transition-timing-function: cubic-bezier(0.55,0.055,0.675,0.19);
  transition-duration: 75ms;
  text-align: left;
  border-bottom: none!important;
  border-radius: 0;
  box-shadow: none;
}

.toggle span:before {
  position: absolute;
  height: 2px;
  content: "";
}

.toggle span,
.toggle span:after,
.toggle span:before {
  position: absolute;
  width: 25px;
  height: 2px;
  transition: transform ease 0.15s;
}

.toggle span:after,
.toggle span:before {
  display: block;
  content: "";
}

.toggle span:before {
  top: -8px;
  transition: top 75ms ease 0.12s,opacity 75ms ease;
}

.toggle span:after {
  bottom: -8px;
  transition: bottom 75ms ease 0.12s,transform 75ms cubic-bezier(0.55,0.055,0.675,0.19);
}

.expanded .toggle span {
  transition-delay: 0.12s;
  transition-timing-function: cubic-bezier(0.215,0.61,0.355,1);
  transform: rotate(45deg);
}

.expanded .toggle span:before {
  top: 0;
  transition: top 75ms ease,opacity 75ms ease 0.12s;
  opacity: 0;
}

.expanded .toggle span:after {
  bottom: 0;
  transition: bottom 75ms ease,transform 75ms cubic-bezier(0.215,0.61,0.355,1) 0.12s;
  transform: rotate(-90deg);
}


.form-textarea {
  resize: none;
  transition: height 0.6s ease 0s;
  line-height: inherit;
}

input.form-text,
textarea {
  background: #fff no-repeat calc(100% - 20px) 20px;
}


label.checkbox input[type="checkbox"] {
  opacity: 0;
  text-indent: -999px;
  float: left;
}

label.checkbox span {
  box-sizing: content-box;
  float: left;
  cursor: pointer;
}

label.checkbox :checked + span:after {
  content: '';
  background-image: url(../images/check.png);
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAW0lEQVR4AWP4//8/WZguGg2A+AAQC4D4pGj68B8CLoA0k6QJQyPU+gUQmrAmkBxM0wVkCUKaYBoVsChwwKUJhnE56T92TQiM4R/8mhCYYLDjCm2CEY0L0z+tAgAtCnUuLIfg+QAAAABJRU5ErkJggg==');
  width: 100%;
  height: 100%;
  display: block;
}

.label {
  position: absolute !important;
  top: -9999px !important;
  left: -9999px !important;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  -moz-column-gap: var(--gap);
       column-gap: var(--gap);
  row-gap: var(--gap);
}

.center {
  text-align: center;
}

/* Medium Devices, Desktops */
@media only screen and (min-width : 993px) {
  .js button.toggle {
    display: none;
  }

  #nav {
    width: auto;
  }

  .js .menu {
    position: relative;
    visibility: visible;
    overflow: inherit;
    width: auto;
    max-height: initial;
    text-align: center;
    opacity: 1;
    padding: 32px 20px;
    display: flex;
    justify-content: space-between;
  }

  #logo {
    float: none;
  }



  .menu li {
    display: inline-block;
    border: none;
  }

  .menu li:first-child {
    padding-left: 0;
  }

  .menu > li:first-child a {
    padding-left: 0;
  }
}


@media screen and (min-width: 1024px) {
  a[href^="tel"] {
    cursor: default;
    color: inherit;
  }
}

/* INNER WIDTH + 40px */
@media screen and (min-width: 1180px) {
  #main .inner:not(.herowrapper) {
      padding-left: 0;
      padding-right: 0;
  }
  #logo {
    padding-left: 0;
  }
  .menu {
    padding-right: 0;
  }
}

