/*------------- CSS Main ------------*/
html {
  scroll-behavior: smooth !important;
  overflow-x: hidden !important;
}
body {
  font-size: 1rem;
  color: var(--blau);
  font-family: 'IBM Plex Sans', sans-serif;
  overflow-x: hidden !important;
  width: 100vw;
}
main {
  padding-bottom: 0 !important;
  padding-top: 0 !important;
}
h1, h2, p, li, td {
  max-width: 100% !important;
  line-height: 1.25;
  width: max-content;
  margin: 0;
}
h1, h2 {
  font-weight: 400;
}
h1 {
  font-size: 2.75rem;
}
h2 {
  font-size: 1.15rem;
}
p, .foermlich li {
  font-size: 0.9rem;
}
p {
  margin-top: 1em;
}
.site a {
  text-decoration: none !important;
  color: var(--blau) !important;
  background: unset !important;
  outline: none !important;
}
div, .site-footer {
  max-width: 100% !important;
  margin: 0;
  padding: 0;
}
footer {
  padding: 0 5vw 0.66rem;
  background-color: white;
}
footer p {
  font-size: 0.75rem;
}
/*--- Class ---*/
.site .button:focus, button:focus, input[type="submit"]:focus, input[type="reset"]:focus, .wp-block-search .wp-block-search__button:focus, .wp-block-button .wp-block-button__link:focus, .wp-block-file a.wp-block-file__button:focus {
  outline: none !important;
}
.primary-navigation {
  margin-left: 8rem;
  width: 28vw;
}
.primary-navigation .primary-menu-container > ul > .menu-item > a {
  padding: 0.5em 0.75em;
  font-size: 1.1rem;
}
.primary-navigation .primary-menu-container > ul > .menu-item a {
  transition: all 0.33s ease-in-out;
}
.primary-navigation .primary-menu-container > ul > .menu-item a:hover {
  color: var(--rot) !important;
}
.primary-navigation > div > .menu-wrapper .sub-menu-toggle, .primary-navigation > div > .menu-wrapper > li > .sub-menu::before, .primary-navigation > div > .menu-wrapper > li > .sub-menu::after {
  display: none;
}
.primary-navigation > div > .menu-wrapper > li > .sub-menu {
  border: none;
  display: flex;
  top: 80%;
  left: -35%;
}
.primary-navigation > div > .menu-wrapper > li > .sub-menu li {
  background: unset;
}
.primary-navigation .sub-menu .menu-item > a {
  color: white !important;
}
.mini-kontakt {
  margin-left: auto;
}
.mini-kontakt p {
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: left top;
  background-image: url('../../../../uploads/2021/08/cg-bau_tel.png');
  height: max-content;
  padding-left: 2.75em;
  margin: 0 1rem 0 0;
}
.mini-kontakt p:first-child {
  background-image: url('../../../../uploads/2021/08/cg-bau_maps.png');
}
.mini-kontakt p:last-child {
  margin-right: 0;
}
.mini-kontakt p a {
  color: var(--schwarz) !important;
  font-weight: 700;
}
.max-breite-klein, .max-breite {
  margin-left: auto;
  margin-right: auto;
}
.max-breite-klein {
  max-width: 1024px !important;
}
.max-breite {
  max-width: 1280px !important;
}
.flexbox {
  display: flex;
  flex-wrap: wrap;
}
.spacebetween {
  justify-content: space-between;
}
.spaceevery {
  justify-content: space-evenly;
}
.flex-center {
  align-items: center;
}
.flex-stretch {
  align-items: stretch;
}
.back-blau {
  background-color: var(--blau);
}
.back-rot {
  background-color: var(--rot);
}
.back-weiss {
  background-color: white;
}
.tabulatoren {
  margin: 0 auto -2px;
  width: 668px;
}
.tabulatoren div h2, .referen p, #kontakt, .tab-head-mobile h2 {
  color: white;
}
.tabulatoren div, .tabs, .maps, .referenz div, .tab-head-mobile {
  transform: skewX(-28.6deg);
}
.tabulatoren div h2, .tabs img, #leistungen .back-weiss p, #maps, .referenz div img, #leistungen .tabs .flexbox, .tab-head-mobile h2, .bouncing-down-leistung {
  transform: skewX(28.6deg);
}
.tabulatoren div, .tab-head-mobile {
  padding: 0.5rem 1rem;
  margin: 0 1rem 0 0;
  cursor: pointer;
}
.tabulatoren div, .tab-head-mobile, .tabulatoren div h2, .tab-head-mobile h2, #leistungen .back-weiss {
  transition: all 0.66s ease-in-out;
}
.tab-head-mobile, #leistungen .back-weiss.tabs-mobile {
  display: none;
}
.tab-head-mobile {
  width: max-content;
  margin: 3.5rem 0 -1px 0.6338rem;
  position: relative;
  transform: skewX(-28.6deg) !important;
}
.bouncing-down-leistung {
  position: absolute;
  left: calc(90vw - 2rem);
  top: 0;
  height: 1rem;
  width: auto;
  animation: bounceleistungdown 1.5s linear infinite;
}
#leistungen .back-weiss.tabs-mobile {
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: relative;
}
.tabs {
  margin: 0 auto;
  max-width: 960px !important;
  position: relative;
}
.tabs img {
  position: absolute;
  left: -12.5vw;
  top: 2rem;
  height: 300px !important;
  width: 300px !important;
  box-shadow: 11px 11px 11px 0px rgba(0, 0, 0, 0.22);
  overflow: hidden;
  z-index: 1;
  object-fit: cover;
  object-position: center center;
}
.referenz {
  position: relative;
  width: calc(33% - 1.25rem);
  margin: 0 2rem 2rem 0;
}
.referenz div {
  height: calc(23.1vw - 2.15rem);
  width: 100%;
  overflow: hidden;
}
.referenz:nth-of-type(3n) {
  margin-right: 0;
}
.referenz p {
  margin: -1.75rem auto 0 -3.3vw;
  padding: 1em 0;
  text-align: center;
  width: 80%;
  background-color: var(--blau);
  color: white;
  z-index: 1;
  position: relative;
}
.referenz div img {
  height: 100% !important;
  width: 155% !important;
  margin-left: -27.5%;
  object-fit: cover;
  object-position: center center;
}
.kontakt {
  width: 34vw;
}
.maps {
  overflow: hidden;
  width: 71vw;
  margin-right: -30vw;
  box-shadow: 11px 11px 11px 0px rgba(0, 0, 0, 0.22);
}
.nf-form-content {
  padding: 0 !important;
}
.nf-error-msg, .nf-error .nf-error-msg {
  color: white !important;
}
.nf-form-content .label-above .nf-field-label, .nf-form-content label {
  font-size: 0.9rem !important;
  font-weight: 400 !important;
}
.nf-form-content .list-select-wrap .nf-field-element > div, .nf-form-content input:not([type="button"]), .nf-form-content textarea {
  background: transparent !important;
  border: none !important;
  border-bottom: 2px dashed white !important;
  color: white !important;
}
.nf-form-content input[type="button"] {
  background: white !important;
  color: var(--blau) !important;
  height: auto !important;
  padding: 0.25em 1em !important;
  margin-top: 1.25em;
}
.nf-form-content input[type="button"]:hover {
  background: var(--schwarz) !important;
  color: white !important;
}
.nf-form-content nf-fields-wrap nf-field {
  display: block;
}
.nf-form-content nf-fields-wrap nf-field:first-child {
  width: 135%;
}
.nf-form-content nf-fields-wrap nf-field:nth-child(2) {
  width: 125%;
}
.nf-form-content nf-fields-wrap nf-field:nth-child(3) {
  width: 115%;
}
.nf-form-content nf-fields-wrap nf-field:nth-child(4) {
  width: 90%;
}
.foermlich {
  padding: 0 5vw 4rem;
  max-width: 1138px !important;
  margin: 9rem auto 0;
}
.foermlich h1.haupt-headline {
  font-size: 2.75rem;
  margin: 0 0 0.25em;
  width: 100%;
  text-align: center;
  color: var(--blau);
  word-break: break-all;
}
.foermlich h1 {
  font-size: 2rem;
  color: var(--rot);
}
.foermlich h1, .foermlich h2 {
  margin-top: 1em;
}
/*---- IDs ----*/
#masthead {
  height: auto;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap;
  max-width: 100%;
}
#logo-img {
  width: 9rem;
  height: 9rem;
  margin: 1rem 0 1rem 5vw;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url('../../../../uploads/2021/08/cg-bau_logo.png');
}
#masthead > .flexbox {
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-image: url('../../../../uploads/2021/08/header-background.png');
  flex-wrap: nowrap;
  width: calc(95vw - 10rem);
  padding: 0.75rem 1.5rem 3rem 0;
  align-items: flex-end;
}
#banner {
  padding: 0;
  margin: 0;
  height: 46.5vw;
}
#banner .slides li {
  width: 100vw;
  height: 46.5vw;
  background-size: 95% auto;
  background-repeat: no-repeat;
  background-position: left top;
  position: relative;
}
#banner h1 {
  position: absolute;
  right: 2vw;
  /* width: 32rem; */
  max-width: 35vw !important;
  bottom: 2.5vw;
  font-size: 2.25rem;
}
#banner .flex-control-nav {
  width: calc(32rem + 2.5vw);
  max-width: 37.5vw;
  text-align: left;
  bottom: 8vw;
  right: 0;
}
#banner .flex-control-paging li a {
  border-radius: 0;
}
#banner .flex-control-paging li a:hover {
  box-shadow: none;
}
#leistungen {
  padding: 4rem 15vw;
  margin: 0;
}
#leistungen .back-weiss {
  padding: 2.5rem 6.5rem 5rem 175px;
  min-height: 500px;
}
#leistungen .tabs .flexbox, #leistungen .tabs-mobile .flexbox {
  position: absolute;
  height: 3rem;
  width: 12rem;
  right: 1.75rem;
  bottom: 1.5rem;
}
#leistungen .tabs .flexbox div, #leistungen .tabs-mobile .flexbox div {
  box-shadow: 11px 11px 11px 0px rgba(0, 0, 0, 0.22);
  height: 100%;
  width: 3rem;
}
#leistungen .tabs-mobile .flexbox {
  opacity: 0;
  transition: all 1s ease-in-out;
}
#leistungen .back-weiss p {
  transition: all 0.33s ease-in-out;
}
#trockenbau-head {
  background-color: white;
}
#trockenbau-head-mobile {
  margin-top: 0;
}
#trockenbau-head h2 {
  color: var(--rot);
}
#sanierung, #fassaden, #abbruch {
  display: none;
}
#referenzen {
  margin: 0;
  padding: 3rem 15vw 1rem;
}
#kontakt {
  padding: 3rem 0 2.5rem 15vw;
  margin: 0;
}
#kontakt a {
  color: white !important;
}
#ninja_forms_required_items, .nf-field-container, .nf-form-content .label-above .nf-field-label {
  margin: 0 !important;
}
#maps {
  height: 100%;
  width: 60vw;
  margin-left: -19vw;
  border: none;
}
#header-foermlich {
  position: fixed;
  width: 100vw;
  margin: 0;
  z-index: 9999;
  left: 0;
  top: 0;
}
#header-foermlich img {
  position: absolute;
  width: auto;
  height: calc(100% - 1.5rem);
  left: 5vw;
  top: 0.75rem;
  cursor: pointer;
  filter: drop-shadow(11px 11px 11px rgba(0, 0, 0, 0.4));
}
#header-foermlich .mini-kontakt {
  width: max-content;
  padding: 1rem 2rem 3rem 5rem;
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-image: url('../../../../uploads/2021/08/header-background_2.png');
}
.maps > div {
  transform: skewX(28.6deg);
  width: 52%;
  padding-left: 15%;
}
#werbecluster {
  font-family: Arial, Helvetica, sans-serif !important;
  color: inherit !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  font-style: normal !important;
  -webkit-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
  cursor: alias !important;
  outline: none !important;
  background: unset !important;
  hyphens: none;
}
#werbecluster > span {
  text-decoration-color: #fdc400 !important;
  text-decoration-thickness: 3px !important;
}
#werbecluster > span:first-of-type {
  font-weight: 700 !important;
  text-decoration-style: solid !important;
}
#werbecluster > span:last-of-type {
  font-style: italic !important;
  text-decoration-style: dotted !important;
}
#werbecluster, #werbecluster span {
  transition: all 0.5s ease-in-out !important;
}
#werbecluster:hover {
  color: #4c4b4b !important;
}
#werbecluster:hover span {
  text-decoration-line: overline !important;
}