@charset "UTF-8";

/* v 1.0 */
/* barlow-500 - latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/barlow-v12-latin-500.eot"); /* IE9 Compat Modes */
  src: local(""),
    url("../fonts/barlow-v12-latin-500.eot?#iefix") format("embedded-opentype"),
    /* IE6-IE8 */ url("../fonts/barlow-v12-latin-500.woff2") format("woff2"),
    /* Super Modern Browsers */ dvd url("../fonts/barlow-v12-latin-500.woff")
      format("woff"),
    /* Modern Browsers */ url("../fonts/barlow-v12-latin-500.ttf")
      format("truetype"),
    /* Safari, Android, iOS */ url("../fonts/barlow-v12-latin-500.svg#Barlow")
      format("svg"); /* Legacy iOS */
}

/* barlow-600 - latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/barlow-v12-latin-600.eot"); /* IE9 Compat Modes */
  src: local(""),
    url("../fonts/barlow-v12-latin-600.eot?#iefix") format("embedded-opentype"),
    /* IE6-IE8 */ url("../fonts/barlow-v12-latin-600.woff2") format("woff2"),
    /* Super Modern Browsers */ url("../fonts/barlow-v12-latin-600.woff")
      format("woff"),
    /* Modern Browsers */ url("../fonts/barlow-v12-latin-600.ttf")
      format("truetype"),
    /* Safari, Android, iOS */ url("../fonts/barlow-v12-latin-600.svg#Barlow")
      format("svg"); /* Legacy iOS */
}

/* barlow-700 - latin */
@font-face {
  font-family: "Barlow";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/barlow-v12-latin-700.eot"); /* IE9 Compat Modes */
  src: local(""),
    url("../fonts/barlow-v12-latin-700.eot?#iefix") format("embedded-opentype"),
    /* IE6-IE8 */ url("../fonts/barlow-v12-latin-700.woff2") format("woff2"),
    /* Super Modern Browsers */ url("../fonts/barlow-v12-latin-700.woff")
      format("woff"),
    /* Modern Browsers */ url("../fonts/barlow-v12-latin-700.ttf")
      format("truetype"),
    /* Safari, Android, iOS */ url("../fonts/barlow-v12-latin-700.svg#Barlow")
      format("svg"); /* Legacy iOS */
}

:root {
  --rot: rgb(170, 0, 0);
  --rot-transparent: rgba(170, 0, 0, 0.7);
  --blau: rgb(8, 8, 8);
  --blau-transparent: rgba(8, 8, 8, 0.7);
  --weiss: rgb(255, 255, 255);
}
body {
  background: var(--rot);
  font-size: 1rem;
  line-height: 1.5rem;
  color: var(--blau);
  font-family: "Barlow", sans-serif;
}
img,
object,
embed,
video {
  max-width: 100%;
}
* {
  box-sizing: border-box;
  margin: 0;
}

/* Layout für Mobilgeräte: 480 px oder weniger. */

#seite {
  /*margin: auto;*/
  padding: 5.75rem 0 0 0;
  background: var(--weiss);
}

header,
.blog-featured,
.blog,
.item-page,
footer,
.vorteile {
  padding: 2rem 10%;
}

header {
  color: var(--weiss);
  display: flex;
  width: 100%;
  align-items: center;
  -webkit-align-items: center;
  justify-content: space-between;
  position: fixed; /*    */
  z-index: 999;
  background: var(--rot);
  top: 0;
  padding: 0rem 10%;
}

header a:is(:link, :visited),
.referenzen a:is(:link, :visited) {
  color: var(--weiss);
}

/* NAVIGATION NEU */

.nav-toggle {
  position: absolute !important;
  top: -9999px !important;
  left: -9999px !important;
}

.nav-toggle:focus ~ .nav-toggle-label {
  outline: 3px solid rgba(rgb(255, 255, 255), 0.75);
}

.nav-toggle-label {
  position: absolute;
  top: 0;
  right: 10%;
  margin: 0 0rem 0 0;
  height: 100%;
  display: flex;
  align-items: center;
}

.nav-toggle-label span,
.nav-toggle-label span::before,
.nav-toggle-label span::after {
  display: block;
  background: white;
  height: 0.2rem;
  width: 2rem;
  border-radius: 0.1rem;
  position: relative;
}

.nav-toggle-label span::before,
.nav-toggle-label span::after {
  content: "";
  position: absolute;
}

.nav-toggle-label span::before {
  bottom: 0.75rem;
}

.nav-toggle-label span::after {
  top: 0.75rem;
}

.nav-toggle:checked ~ .navigation {
  transform: scale(1, 1);
}

.nav-toggle:checked ~ .navigation a {
  opacity: 1;
  transition: opacity 250ms ease-in-out 250ms;
}
.nav-toggle:checked ~ label span {
  height: 3rem;
  background: var(--rot);
  transition: linear 125ms;
}

.nav-toggle:checked ~ label span::before {
  transform: rotate(45deg);
  bottom: 1.36rem;
}

.nav-toggle:checked ~ label span::after {
  transform: rotate(-45deg);
  top: 1.5rem;
}

nav.navigation {
  display: flex;
  margin: 0rem 0 0 -1rem;
  padding: 0.6rem 0 0.6rem 0;
  align-self: baseline;
  position: absolute;
  text-align: left;
  top: 100%;
  left: 0;
  width: calc(100% + 1rem);
  background: var(--rot-transparent);
  transform: scale(0, 1);
  transform-origin: right;
  transition: transform 400ms ease-in-out;
}
ul.hauptnavigation {
  margin: 0;
  padding: 0 0 0 10%;
}
.hauptnavigation li {
  position: relative;
  list-style: none;
}
.hauptnavigation li a,
.hauptnavigation li ul li a {
  display: inline-block;
  width: 100%;
  padding: 0.5rem 1rem;
  white-space: pre;
}
.hauptnavigation li ul {
  text-align: left;
  margin: 0 0 0 3rem;
  padding: 0;
  font-size: smaller;
  line-height: 120%;
}
.hauptnavigation li ul,
.hauptnavigation li ul li {
  display: block;
  min-width: 100%;
}

#links {
  -ms-hyphens: auto;
  -moz-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
}

h1 {
  font-weight: 400;
  font-size: 2rem;
  line-height: 2rem;
  margin: 1rem 0 2rem 0;
  letter-spacing: 0.025rem;
}

header h1 {
  font-size: 1.5rem;
  line-height: 1.5rem;
  margin: 1rem 0 0.5rem 0;
}

h2 {
  font-weight: 500;
  font-size: 1.5rem;
  margin: 1.5rem 0;
}

h3 {
  font-weight: 600;
  font-size: 1.125rem;
  margin-bottom: 1.5rem;
}

img {
  width: 100%;
}

button {
  margin: 0.5rem 0 0 0;
}

#logo a {
  color: #ffffff;
}

#logo a:visited {
  color: #fff;
}

#logo a:hover {
  color: #fff;
}

.blog-featured {
  text-align: center;
  background: rgba(8, 8, 8, 0.1);
}

.blog-items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  column-gap: 4rem;
}
figcaption {
  margin: 1rem 0;
}

.blog-featured .item-image img {
  width: 50%;
  margin: auto;
  filter: opacity(50%) grayscale();
}

.beitrag-rechts {
  margin: 0 0 1rem 0rem;
  display: block;
  font-size: 0.75rem;
}
.com-content-article__body:after {
  content: "";
  display: block;
  clear: both;
}
.moduletable {
  position: relative;
}

/* SLIDESHOW UNTEN */

.moduletable.referenzen h1 {
  color: var(--weiss);
  position: absolute;
  top: 0;
  z-index: 10;
  width: 100%;
  padding: 2rem 10%;
  text-align: center;
}
#unten .camera_target_content {
  background: var(--blau-transparent);
}
#unten .camera_caption {
  height: 100%;
  padding: 25vh 0;
}
.camera_caption > div {
  padding: 0;
}
.camera_caption_title {
  font-size: 2rem;
  line-height: 2rem !important;
  font-weight: normal;
  line-height: inherit;
  margin: -1rem 0 1rem 0;
}
.weitere-referenzen .custom {
  color: var(--weiss);
  position: absolute;
  bottom: 0;
  z-index: 10;
  width: 100%;
  padding: 2rem 10%;
  text-align: center;
}
footer {
  background: rgba(170, 0, 0, 1);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  column-gap: 2rem;
  color: var(--weiss);
}
footer ul {
  margin: 0 0 1.5rem 0;
  padding: 0;
}
footer li {
  list-style: none;
}
footer a {
  color: #fff;
}
footer a:visited {
  color: #fff;
}

/* Layout für Tablet-PCs: 641 bis 768 px. Erbt Stile vom: Layout für Mobilgeräte. */

@media only screen and (min-width: 641px) {
  .beitrag-rechts {
    width: calc(50% - 2rem);
    margin: 0 0 1rem 2rem;
    float: right;
    clear: both;
    display: block;
    font-size: 0.75rem;
  }
}

/* Desktoplayout: 769 bis maximal 1232 px.  Erbt Stile von: den Layouts für Mobilgeräte und Tablet-PCs. */

@media only screen and (min-width: 769px) {
  .nav-toggle-label {
    display: none;
  }
  nav.navigation {
    // all: unset; /* this causes issues with Edge, since it's unsupported */

    /* the following lines add Edge support */
    position: relative;
    text-align: left;
    transition: none;
    transform: scale(1, 1);
    top: initial;
    left: initial;
    /* end Edge support stuff*/
    margin: 0;
    width: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }
  ul.hauptnavigation {
    display: flex;
    margin: 0;
  }
  .hauptnavigation li {
    position: relative;
    list-style: none;
  }
  .hauptnavigation li a,
  .hauptnavigation li ul li a {
    display: inline-block;
    width: 100%;
    padding: 0.5rem 1rem;
    white-space: pre;
  }
  .hauptnavigation li ul {
    position: absolute;
    z-index: 99;
    text-align: left;
    background: rgba(0, 0, 0, 0.8);
    top: 100%;
    left: 0;
    transform: scale(1, 0);
    transform-origin: top;
    transition: transform 400ms ease-in-out;
    margin: 0;
    padding: 0;
  }
  .hauptnavigation li ul,
  .hauptnavigation li ul li {
    display: block;
    min-width: 100%;
  } /**/
  /*  .nav li a {
    pointer-events: none;
    }*/

  /*
    nav li a:hover {
    color:#fff;
    }*/
  nav li a ~ ul a {
    opacity: 0;
    transition: opacity 150ms ease-in-out;
  }

  nav li:hover a ~ ul {
    transform: scale(1, 1);
  }
  nav li:hover a ~ ul a {
    opacity: 1;
    transition: opacity 250ms ease-in-out 250ms;
  }
}
@media only screen and (min-width: 1080px) {
}
