@charset "UTF-8";
@import "fonts.css";
@import "vendors/fontawesome-pro.css";
@import "vendors/lightbox.min.css";
.baukasten *,
.baukasten *::before,
.baukasten *::after {
  box-sizing: border-box;
}
.baukasten * {
  margin: 0;
  padding: 0;
  font: inherit;
}
.baukasten img,
.baukasten picture,
.baukasten svg {
  display: block;
  max-width: 100%;
}
.baukasten body {
  font-family: var(--default-font-primary), var(--default-font-secondary);
  font-weight: var(--default-font-weight);
  font-size: clamp(1rem, 1.0416666667vw, 1.25rem);
  color: var(--clr-font);
  line-height: 150%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
}
.baukasten a {
  color: var(--clr-primary);
}
.baukasten a:is(:hover, :focus) {
  color: var(--clr-primary);
  text-decoration: underline;
}
.baukasten strong {
  font-weight: 700;
}
.baukasten .container {
  --max-width: calc(min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem));
  width: min(100cqw - var(--min-margin-inline), var(--max-width));
  margin-inline: auto;
}
.baukasten .container-margin-left {
  padding-inline: var(--margin-inline);
}
@media screen and (min-width: 45em) {
  .baukasten .container-margin-left {
    padding-left: var(--margin-inline);
    padding-right: 0;
  }
}
.baukasten .container-margin-right {
  padding-inline: var(--margin-inline);
}
@media screen and (min-width: 45em) {
  .baukasten .container-margin-right {
    padding-right: var(--margin-inline);
    padding-left: 0;
  }
}
.baukasten .container-margin-inline {
  padding-inline: var(--margin-inline);
}
.baukasten .clr-invert {
  --clr-invert: white;
  --hamburger-color: white;
}
.baukasten .clr-invert h1, .baukasten .clr-invert h2, .baukasten .clr-invert h3, .baukasten .clr-invert h4, .baukasten .clr-invert h5, .baukasten .clr-invert h6, .baukasten .clr-invert p, .baukasten .clr-invert a, .baukasten .clr-invert a:hover {
  color: var(--clr-invert);
}
.baukasten .clr-invert .button[data-type=secondary], .baukasten .clr-invert .button.secondary {
  border-color: var(--clr-invert);
  color: var(--clr-invert);
}
.baukasten .clr-invert .button[data-type=secondary]:hover, .baukasten .clr-invert .button.secondary:hover {
  opacity: 0.8;
}
.baukasten .clr-invert .nav a:not(.button) {
  color: var(--clr-invert);
}
.baukasten .clr-invert .nav a:not(.button):hover {
  color: var(--clr-invert);
}
.baukasten .ellipsis {
  display: -webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.baukasten .text-right {
  text-align: right;
}
.baukasten .text-center {
  text-align: center;
}
.baukasten .text-left {
  text-align: left;
}
.baukasten .margin-inline-auto {
  margin-inline: auto;
}
.baukasten .margin-left-auto {
  margin-left: auto;
}
.baukasten .margin-right-auto {
  margin-right: auto;
}
.baukasten .flex-group {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--flex-column-gap, clamp(1.09375rem, 1.3020833333vw, 1.5625rem));
  row-gap: var(--flex-row-gap, calc(clamp(1.09375rem, 1.3020833333vw, 1.5625rem) / 2));
  width: fit-content;
}
.baukasten .flex-group.mx-auto {
  width: 100%;
  justify-content: center;
}
.baukasten .image-size-auto {
  width: 100%;
}
.baukasten .image-size-50 {
  width: 50%;
}
.baukasten .image-size-1 {
  width: 1rem;
}
.baukasten .image-size-2 {
  width: 2rem;
}
.baukasten .image-size-3 {
  width: 3rem;
}
.baukasten .image-size-4 {
  width: 4rem;
}
.baukasten .image-size-5 {
  width: 5rem;
}
.baukasten .image-size-6 {
  width: 6rem;
}
.baukasten .image-size-7 {
  width: 7rem;
}
.baukasten .image-size-8 {
  width: 8rem;
}
.baukasten .image-size-9 {
  width: 9rem;
}
.baukasten .image-size-10 {
  width: 10rem;
}
.baukasten .space-1 {
  padding-top: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .space-2 {
  padding-top: clamp(2.1875rem, 2.6041666667vw, 3.125rem);
}
.baukasten .space-3 {
  padding-top: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten .space-4 {
  padding-top: clamp(4.375rem, 5.2083333333vw, 6.25rem);
}
.baukasten .space-5 {
  padding-top: clamp(5.46875rem, 6.5104166667vw, 7.8125rem);
}
.baukasten .space-6 {
  padding-top: clamp(6.5625rem, 7.8125vw, 9.375rem);
}
.baukasten .space-inline-1 {
  padding-inline: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .space-inline-2 {
  padding-inline: clamp(2.1875rem, 2.6041666667vw, 3.125rem);
}
.baukasten .space-inline-3 {
  padding-inline: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten .space-inline-4 {
  padding-inline: clamp(4.375rem, 5.2083333333vw, 6.25rem);
}
.baukasten .space-block-1 {
  padding-block: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .space-block-2 {
  padding-block: clamp(2.1875rem, 2.6041666667vw, 3.125rem);
}
.baukasten .space-block-3 {
  padding-block: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten .space-block-4 {
  padding-block: clamp(4.375rem, 5.2083333333vw, 6.25rem);
}
.baukasten .transform-y-100 {
  transform: translateY(-100%);
}
.baukasten .transform-y-200 {
  transform: translateY(-200%);
}
.baukasten .transform-y-300 {
  transform: translateY(-300%);
}
.baukasten .transform-y-400 {
  transform: translateY(-400%);
}
.baukasten .transform-y-500 {
  transform: translateY(-500%);
}
.baukasten .video-container {
  position: relative;
  aspect-ratio: 16/9;
  display: block;
}
.baukasten .video-container .video-wrapper {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.baukasten .video-container .video-wrapper video {
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.baukasten .even-columns {
  display: grid;
  gap: var(--grid-gap, clamp(1.09375rem, 1.3020833333vw, 1.5625rem));
}
@media screen and (min-width: 45em) {
  .baukasten .even-columns {
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
  }
}
.baukasten .nav {
  --flex-column-gap: clamp(2.1875rem, 2.6041666667vw, 3.125rem);
  list-style: none;
  align-items: center;
  font-family: var(--default-font-primary), var(--default-font-secondary);
  font-weight: 700;
  font-size: clamp(0.9rem, 0.8333333333vw, 1rem);
  text-transform: uppercase;
}
.baukasten .nav a {
  color: var(--clr-font);
  text-decoration: none;
}
.baukasten .nav a:is(:hover, :focus) {
  color: var(--clr-font);
  text-decoration: underline;
}
.baukasten nav[aria-label*=secondary] {
  margin-left: auto;
}
.baukasten nav[aria-label*=slides] {
  position: absolute;
  bottom: clamp(3.28125rem, 3.90625vw, 4.6875rem);
  left: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
  margin-left: auto;
  background-color: rgba(255, 255, 255, 0.55);
  border-radius: 2rem;
  padding: 0.25rem;
}
.baukasten nav[aria-label*=slides] .nav {
  --flex-column-gap: .25rem;
}
.baukasten nav[aria-label*=project-slides] {
  position: relative;
  display: flex;
  justify-content: center;
  bottom: 0;
  left: auto;
  background-color: transparent;
  border-radius: 2rem;
  padding: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten nav[aria-label*=project-slides] .nav {
  --flex-column-gap: .25rem;
}
.baukasten nav[aria-label*=stepper] {
  position: absolute;
  display: flex;
  justify-content: center;
  top: 0;
  height: 100%;
  overflow-y: hidden;
  left: -2rem;
  background-color: transparent;
  border-radius: 2rem;
  padding: 0;
}
@media screen and (min-width: 45em) {
  .baukasten nav[aria-label*=stepper] {
    left: auto;
    padding: 0 clamp(3.28125rem, 3.90625vw, 4.6875rem);
  }
}
.baukasten nav[aria-label*=stepper] .nav-scroll {
  width: 0.5rem;
  height: 10rem;
  position: absolute;
  background-color: var(--clr-font);
  z-index: 9;
}
.baukasten nav[aria-label*=stepper] .nav-line {
  width: 0.1rem;
  height: 100%;
  position: absolute;
  background-color: var(--clr-font);
  z-index: 8;
}
.baukasten nav[aria-label*=stepper] .nav {
  --flex-column-gap: .25rem;
  flex-flow: column;
  justify-content: space-between;
  position: relative;
  z-index: 11;
}
.baukasten [aria-controls=main-navigation] {
  --width: 3.5rem;
  position: relative;
  display: block;
  width: var(--width);
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 999;
}
@media screen and (min-width: 45em) {
  .baukasten [aria-controls=main-navigation] {
    display: none;
  }
}
.baukasten [aria-controls=main-navigation] .hamburger__line {
  transition: y 0.25s 0.25s, transform 0.25s, opacity 0s 0.25s;
  transform-origin: center;
}
.baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger {
  --hamburger-color: var(--font-color);
}
.baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger__line {
  transition: y 0.25s, transform 0.25s 0.25s, opacity 0s 0.25s;
  transform-origin: center;
}
.baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger__top, .baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger__bottom {
  y: 45;
}
.baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger__top {
  transform: rotate(45deg);
}
.baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger__bottom {
  transform: rotate(-45deg);
}
.baukasten [aria-controls=main-navigation][aria-expanded=true] .hamburger__middle {
  opacity: 0;
}
.baukasten nav[aria-label*=social-media] .nav {
  --flex-column-gap: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten nav[aria-label*=social-media] a {
  --brand-icon: "";
}
.baukasten nav[aria-label*=social-media] a:after {
  content: var(--brand-icon);
  font-family: "Font Awesome 6 Brands", sans-serif;
  font-size: calc(clamp(1rem, 1.0416666667vw, 1.25rem) * 1.35);
}
.baukasten nav[aria-label*=social-media] a:hover {
  text-decoration: none;
  opacity: 0.5;
}
.baukasten .site-header {
  position: relative;
  color: hsl(219, 97%, 27%);
  background-color: hsl(0, 0%, 100%);
  padding: clamp(1.09375rem, 1.3020833333vw, 1.5625rem) 0;
}
.baukasten .site-header__float {
  position: absolute;
  width: 100%;
  z-index: 999;
  background-color: transparent;
}
.baukasten .site-header__inner {
  display: flex;
  gap: clamp(2.1875rem, 2.6041666667vw, 3.125rem);
  align-items: center;
  justify-content: space-between;
  width: calc(min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem));
  margin-inline: auto;
}
@media screen and (min-width: 45em) {
  .baukasten .site-header__inner {
    justify-content: flex-start;
  }
}
.baukasten .site-header__inner__column {
  flex-flow: row;
}
@media screen and (min-width: 45em) {
  .baukasten .site-header__inner__column {
    flex-flow: column;
  }
}
.baukasten #main-navigation {
  --clr-invert: var(--clr-font);
  display: grid;
  position: absolute;
  width: 0;
  top: 0;
  right: 0;
  height: 100vh;
  transition: transform 0.25s;
  background-color: #fff;
  padding-top: clamp(4.375rem, 5.2083333333vw, 6.25rem);
  z-index: 99;
}
.baukasten #main-navigation[data-visible=false] {
  transform: translateX(100%);
  width: 0;
  overflow: hidden;
}
.baukasten #main-navigation[data-visible=true] {
  transform: translateX(0);
  width: 80%;
}
.baukasten #main-navigation [role=navigation] {
  width: 80%;
  margin-left: auto;
}
.baukasten #main-navigation [role=navigation] .nav {
  flex-flow: column;
  align-items: flex-start;
}
.baukasten #main-navigation [aria-label*=secondary] {
  margin-top: auto;
  margin-bottom: clamp(5.46875rem, 6.5104166667vw, 7.8125rem);
}
@media screen and (min-width: 45em) {
  .baukasten #main-navigation {
    --clr-invert: white;
    display: flex;
    position: relative;
    min-height: auto;
    right: auto;
    bottom: auto;
    height: auto;
    width: 100%;
    flex-flow: row;
    align-items: center;
    padding-top: 0;
    background-color: transparent;
  }
  .baukasten #main-navigation[data-visible=false] {
    transform: translateX(0);
    width: inherit;
  }
  .baukasten #main-navigation[data-visible=true] {
    transform: translateX(0);
    width: inherit;
  }
  .baukasten #main-navigation [role=navigation] {
    width: auto;
    margin-left: unset;
  }
  .baukasten #main-navigation [role=navigation] .nav {
    flex-flow: row;
    align-items: center;
  }
  .baukasten #main-navigation [aria-label*=secondary] {
    margin-left: auto;
    margin-top: unset;
    margin-bottom: unset;
  }
}
.baukasten .logo {
  width: clamp(8.75rem, 9.375vw, 11.25rem);
  height: auto;
}
.baukasten .logo__xs {
  width: clamp(4.375rem, 5.7291666667vw, 6.875rem);
}
.baukasten .logo__s {
  width: clamp(6.875rem, 7.8125vw, 9.375rem);
}
.baukasten .logo__m {
  width: clamp(8.75rem, 9.375vw, 11.25rem);
}
.baukasten .logo__l {
  width: clamp(11.25rem, 11.9791666667vw, 14.375rem);
}
.baukasten .logo__xl {
  width: clamp(14.375rem, 14.0625vw, 16.875rem);
}
.baukasten .site-main {
  --grid-columns: 12;
  --grid-gap: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
  --max-total-width: calc(min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem));
  --margin-inline: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
  display: grid;
  grid-template-columns: [bleed-start] var(--margin-inline) [content-start] repeat(var(--grid-columns), 1fr) [content-end] var(--margin-inline) [bleed-end];
  grid-template-rows: repeat(auto-fill, minmax(1rem, auto));
  grid-column-gap: var(--grid-gap);
}
.baukasten .site-main > [bleed-start], .baukasten .site-main > [bleed-end] {
  grid-column-gap: 0;
}
.baukasten .site-main .fb-acf-grid__column {
  --background-color: none;
  --text-color: inherit;
  --row-span: 1;
  position: relative;
  display: flex;
  align-items: var(--align-items);
  justify-content: var(--justify-content);
  grid-column-start: var(--grid-column-start-sm);
  grid-column-end: var(--grid-column-end-sm);
  grid-row: span var(--row-span);
  background-color: var(--background-color);
  color: var(--text-color);
}
.baukasten .site-main .fb-acf-grid__column__inner {
  flex-grow: 1;
  max-width: 100%;
}
@media screen and (min-width: 45em) {
  .baukasten .site-main .fb-acf-grid__column.background-gap-left:before {
    content: "";
    position: absolute;
    top: 0;
    width: calc(var(--grid-gap) / 2);
    left: calc(var(--grid-gap) / -2);
    height: 100%;
    background-color: var(--background-color);
  }
  .baukasten .site-main .fb-acf-grid__column.background-gap-right:after {
    content: "";
    position: absolute;
    top: 0;
    width: calc(var(--grid-gap) / 2);
    right: calc(var(--grid-gap) / -2);
    height: 100%;
    background-color: var(--background-color);
  }
}
@media screen and (min-width: 45em) {
  .baukasten .site-main .fb-acf-grid__column {
    position: relative;
    grid-column-start: var(--grid-column-start);
    grid-column-end: var(--grid-column-end);
    grid-row: span var(--grid-row-span);
  }
}
.baukasten .site-footer {
  --background-color: var(--clr-secondary);
  padding-inline: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
  padding-block: clamp(5.46875rem, 6.5104166667vw, 7.8125rem);
  background-color: var(--background-color);
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: 1fr 3fr;
}
.baukasten .site-footer__column-span {
  grid-column: 1/-1;
  place-self: end;
}
.baukasten .accordion_item {
  --padding: 1rem;
  position: relative;
  width: 100%;
  display: flex;
  border-bottom: 1px solid hsl(0, 0%, 84%);
  padding-bottom: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
  margin-bottom: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
  gap: 1rem;
  cursor: pointer;
}
.baukasten .accordion_item__title {
  min-width: 20rem;
  text-align: left;
}
.baukasten .accordion_item__trigger {
  background: transparent;
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  pointer-events: none;
}
.baukasten .accordion_item__trigger:after {
  position: absolute;
  right: var(--padding);
  content: "";
  font-size: clamp(1.55rem, 2.2916666667vw, 2.75rem);
  font-weight: 300;
  font-family: "Font Awesome 6 Sharp";
}
.baukasten .accordion_item__trigger[aria-expanded=false]:after {
  content: "\f178";
}
.baukasten .accordion_item__trigger[aria-expanded=true]:after {
  content: "\f078";
}
.baukasten .accordion_item__content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 500ms;
  padding-right: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten .accordion_item__content > div {
  overflow: hidden;
}
.baukasten .accordion_item__content[aria-hidden=false] {
  grid-template-rows: 1fr;
}
.baukasten .accordion_image {
  width: 100%;
  flex-flow: column;
}
@media screen and (min-width: 45em) {
  .baukasten .accordion_image {
    flex-flow: row;
  }
}
.baukasten .accordion_image__item {
  display: flex;
  flex-flow: column;
  flex-grow: 1;
  justify-content: flex-end;
  align-items: flex-start;
  height: clamp(10rem, 13.3333333333vw, 16rem);
  background-position: center center;
  background-size: cover;
  border-radius: 2rem;
  padding: clamp(3.28125rem, 3.90625vw, 4.6875rem);
  transition: flex-grow 0.35s, height 0.35s;
}
@media screen and (min-width: 45em) {
  .baukasten .accordion_image__item {
    height: clamp(40rem, 51.6666666667vw, 62rem);
  }
}
.baukasten .accordion_image__item__inner {
  position: absolute;
  opacity: 0;
  transition: opacity 0.05s 0s, width 0.25s 0s;
  max-width: 100%;
}
.baukasten .accordion_image__item.active {
  flex-grow: 3;
  height: clamp(20rem, 26.6666666667vw, 32rem);
}
@media screen and (min-width: 45em) {
  .baukasten .accordion_image__item.active {
    height: clamp(40rem, 51.6666666667vw, 62rem);
  }
}
.baukasten .accordion_image__item.active .accordion_image__item__inner {
  transition: opacity 0.45s 0.3s, width 0s 0.35s;
  opacity: 1;
  width: 100%;
}
.baukasten h1, .baukasten .heading-1 {
  --heading-text-transform: uppercase;
  font-size: clamp(4.2rem, 7.2916666667vw, 8.75rem);
  font-weight: 700;
  font-family: var(--heading-font-primary), var(--heading-font-secondary);
  text-transform: var(--heading-text-transform);
  letter-spacing: 0;
  line-height: 1;
}
.baukasten h2, .baukasten .heading-2 {
  --heading-text-transform: uppercase;
  font-size: clamp(2.5rem, 4.1666666667vw, 5rem);
  font-weight: 700;
  font-family: var(--heading-font-primary), var(--heading-font-secondary);
  text-transform: var(--heading-text-transform);
  letter-spacing: 0;
  line-height: 1;
}
.baukasten h3, .baukasten .heading-3 {
  --heading-text-transform: uppercase;
  font-size: clamp(1.55rem, 2.2916666667vw, 2.75rem);
  font-weight: 700;
  font-family: var(--heading-font-primary), var(--heading-font-secondary);
  text-transform: var(--heading-text-transform);
  letter-spacing: 0;
  line-height: 1;
}
.baukasten h4, .baukasten .heading-4 {
  --heading-text-transform: uppercase;
  font-size: clamp(1rem, 1.0416666667vw, 1.25rem);
  font-weight: 700;
  font-family: var(--heading-font-primary), var(--heading-font-secondary);
  text-transform: var(--heading-text-transform);
  letter-spacing: 0;
  line-height: 1;
}
.baukasten h5, .baukasten .heading-5 {
  --heading-text-transform: uppercase;
  font-size: clamp(0.6125rem, 0.6770833333vw, 0.8125rem);
  font-weight: 700;
  font-family: var(--heading-font-primary), var(--heading-font-secondary);
  text-transform: var(--heading-text-transform);
  letter-spacing: 0;
  line-height: 1;
}
.baukasten .button {
  display: inline-flex;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
  font-family: var(--default-font-primary), var(--default-font-secondary);
  font-size: clamp(0.92rem, 1.0416666667vw, 1.25rem);
  text-transform: uppercase;
  font-weight: 700;
  padding: 0.75em 2em;
  border: 1px solid transparent;
  border-radius: 0;
  transition: 275ms ease;
  box-shadow: none;
  min-height: 1rem;
}
.baukasten .button[data-type=primary], .baukasten .button.primary {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
  color: hsl(0, 0%, 100%);
}
.baukasten .button[data-type=primary]:is(:hover, :focus), .baukasten .button.primary:is(:hover, :focus) {
  background-color: var(--clr-primary);
  border-color: var(--clr-primary);
  color: hsl(0, 0%, 100%);
  text-decoration: none;
}
.baukasten .button[data-type=secondary], .baukasten .button.secondary {
  background-color: transparent;
  border-color: var(--clr-font);
  color: var(--clr-font);
}
.baukasten .button[data-type=secondary]:is(:hover, :focus), .baukasten .button.secondary:is(:hover, :focus) {
  background-color: transparent;
  border-color: var(--clr-secondary);
  color: var(--clr-secondary);
  text-decoration: none;
}
.baukasten .button[data-type=nav], .baukasten .button.nav {
  background-color: var(--clr-primary);
  border-color: var(--clr-primary);
  color: hsl(0, 0%, 100%);
}
.baukasten .button[data-type=nav]:is(:hover, :focus), .baukasten .button.nav:is(:hover, :focus) {
  background-color: var(--clr-secondary);
  border-color: var(--clr-secondary);
  color: hsl(0, 0%, 100%);
  text-decoration: none;
}
.baukasten .button[data-type=slide], .baukasten .button.slide {
  background-color: transparent;
  border-radius: 2rem;
  font-size: clamp(0.7375rem, 0.78125vw, 0.9375rem);
  font-weight: 400;
  padding: 1.25em 2em;
}
.baukasten .button[data-type=slide]:is(:hover, :focus), .baukasten .button[data-type=slide].active, .baukasten .button.slide:is(:hover, :focus), .baukasten .button.slide.active {
  background-color: white;
  text-decoration: none;
}
.baukasten .button[data-type=slide-point], .baukasten .button.slide {
  border-radius: 2rem;
  width: clamp(1rem, 1.4583333333vw, 1.75rem);
  height: clamp(1rem, 1.4583333333vw, 1.75rem);
  background-color: white;
  border: 1px solid var(--clr-font);
  padding: 0;
}
.baukasten .button[data-type=slide-point]:is(:hover, :focus), .baukasten .button[data-type=slide-point].active, .baukasten .button.slide:is(:hover, :focus), .baukasten .button.slide.active {
  background-color: var(--clr-font);
}
.baukasten .button[data-type=stepper-point], .baukasten .button.slide {
  border-radius: 2rem;
  width: clamp(2.25rem, 3.28125vw, 3.9375rem);
  height: clamp(2.25rem, 3.28125vw, 3.9375rem);
  font-size: clamp(1.175rem, 1.5625vw, 1.875rem);
  line-height: clamp(2.25rem, 3.28125vw, 3.9375rem);
  background-color: var(--clr-font);
  color: white;
  border: 1px solid white;
  padding: 0;
}
.baukasten .button[data-type=stepper-point]:is(:hover, :focus), .baukasten .button[data-type=stepper-point].active, .baukasten .button.slide:is(:hover, :focus), .baukasten .button.slide.active {
  background-color: var(--clr-font);
  color: white;
  text-decoration: none;
}
.baukasten .cards {
  --breakpoint: 20.625rem;
  display: grid;
  grid-template-rows: auto;
  grid-template-columns: repeat(auto-fit, minmax(20.625rem, max-content));
  justify-content: center;
  gap: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .cards.cards__nowrap {
  grid-template-columns: repeat(auto-fit, minmax(var(--breakpoint), max-content));
}
.baukasten .cards a {
  text-decoration: none;
  transition: transform 100ms, box-shadow 150ms;
}
.baukasten .cards a:hover {
  transform: scale(1.02);
}
.baukasten .cards img {
  --aspect-ratio: 16/9;
  width: 100%;
  aspect-ratio: var(--aspect-ratio);
  object-fit: cover;
}
.baukasten .cards__item {
  border: 1px solid hsl(0, 0%, 84%);
  max-width: 30rem;
}
.baukasten .cards__content {
  padding: clamp(2.1875rem, 2.6041666667vw, 3.125rem) clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .cards__content:has(:empty) {
  display: none;
}
.baukasten .cards__title {
  margin-bottom: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .counter-cards {
  --breakpoint: 20.625rem;
  display: grid;
  grid-template-rows: auto;
  grid-template-columns: repeat(auto-fit, minmax(25.625rem, max-content));
  justify-content: center;
}
.baukasten .counter-cards__item {
  border: none;
  max-width: 30rem;
  background-color: #F5F5F5;
}
.baukasten .counter-cards hr {
  margin-bottom: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .counter-cards__content {
  padding: clamp(2.1875rem, 2.6041666667vw, 3.125rem) clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .stepper-wrap {
  position: relative;
}
.baukasten .stepper-cards {
  --breakpoint: 20.625rem;
  position: relative;
  min-height: 50vh;
  width: 100%;
}
.baukasten .stepper-cards__item {
  position: absolute;
  top: 50%;
  border: none;
  width: 100%;
}
.baukasten .stepper-cards__content {
  padding: clamp(3.28125rem, 3.90625vw, 4.6875rem) clamp(3.28125rem, 3.90625vw, 4.6875rem);
  width: 75%;
  max-width: 55.9375rem;
  margin-inline: auto;
  background-color: var(--clr-primary);
  color: white;
}
.baukasten form {
  --red: hsl(18 100% 50%);
  --green: hsl(130 52% 46%);
  --valid: var(--green);
  --invalid: var(--red);
  --focus: black;
  --blur: black;
  display: grid;
  grid-template-columns: repeat(auto-fill, 1fr);
  position: relative;
  grid-gap: 2rem;
}
@media screen and (min-width: 45em) {
  .baukasten form {
    grid-template-columns: 7fr 5fr;
  }
}
.baukasten form .form-group {
  position: relative;
  display: grid;
  --color: black;
}
.baukasten form .form-group:has(:invalid) {
  --color: var(--invalid);
}
.baukasten form .form-group:has(:focus) {
  --color: var(--focus);
}
.baukasten form .form-group:has(:valid) {
  --color: var(--valid);
}
.baukasten form .form-group:has(:placeholder-shown) {
  --color: var(--blur);
}
.baukasten form .form-group:has(:invalid:not(:focus):not(:placeholder-shown)) .form-group__error {
  display: block;
}
.baukasten form .form-group:has(:focus) .form-group__error, .baukasten form .form-group:has(:placeholder-shown:not(:focus)) .form-group__error {
  display: none;
}
.baukasten form .form-group .form-group__error {
  display: none;
  white-space: nowrap;
  position: absolute;
  top: 0;
  transform: translateY(-100%);
  color: var(--red);
  font-size: clamp(1rem, 1.0416666667vw, 1.25rem);
}
.baukasten form .form-group input:focus-visible {
  outline-color: var(--color);
}
.baukasten form .form-group .form-input {
  all: unset;
  display: block;
  border: 1px solid var(--color);
  padding: clamp(1.09375rem, 1.3020833333vw, 1.5625rem) clamp(2.1875rem, 2.6041666667vw, 3.125rem);
  color: var(--color);
  transition: border-color 200ms;
  font-size: clamp(1rem, 1.0416666667vw, 1.25rem);
}
.baukasten form .form-group .form-input:focus-visible {
  outline-color: var(--color);
}
.baukasten form .form-group .form-input::placeholder {
  color: var(--color);
}
.baukasten form .form-group__full-width {
  grid-column: 1/-1;
}
.baukasten form .button {
  grid-column: 2/-1;
  padding: clamp(1.09375rem, 1.3020833333vw, 1.5625rem) clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
  opacity: 0.25;
  max-width: 18rem;
  justify-self: end;
}
.baukasten form:valid [type=submit] {
  opacity: 1;
}
.baukasten .gallery {
  display: grid;
  gap: 1rem;
  grid-template-rows: auto;
  grid-template-columns: repeat(auto-fill, minmax(20.625rem, 1fr));
}
.baukasten .gallery__item img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
}
.baukasten .rich-text ul {
  font-size: clamp(1rem, 1.0416666667vw, 1.25rem);
  --icon-size: 1.125rem;
  --gutter: .75rem;
  padding: 0 0 0 var(--icon-size);
  margin-top: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
}
.baukasten .rich-text ul li {
  color: #707070;
  padding-left: var(--gutter);
}
.baukasten .rich-text ul li::marker {
  content: var(--list-bullet);
  font-weight: 400;
  font-family: "Font Awesome 6 Sharp";
  font-size: var(--icon-size);
  color: var(--clr-font);
}
.baukasten .title-image {
  --aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  background-size: cover;
  background-repeat: no-repeat;
  aspect-ratio: 1/1;
}
@media screen and (min-width: 45em) {
  .baukasten .title-image {
    aspect-ratio: 16/9;
  }
}
@media screen and (min-width: 65em) {
  .baukasten .title-image {
    aspect-ratio: var(--aspect-ratio);
  }
}
.baukasten .title-image .title-image-caption {
  width: calc(min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem));
  margin-inline: auto;
}
.baukasten .title-image .title-image-caption__headline {
  position: relative;
}
.baukasten .title-image .title-image-caption__headline .eyebrow {
  position: absolute;
  top: 0;
  transform: translateY(-100%);
}
.baukasten .title-image .title-image-caption__buttons {
  margin-top: clamp(2.1875rem, 2.6041666667vw, 3.125rem);
}
.baukasten .title-image-col .even-columns {
  grid-auto-flow: row;
  justify-items: center;
}
.baukasten .title-slides {
  --aspect-ratio: 1 / 1;
  position: relative;
  overflow: hidden;
  aspect-ratio: var(--aspect-ratio);
  width: 100%;
}
@media screen and (min-width: 45em) {
  .baukasten .title-slides {
    --aspect-ratio: 4 / 3;
  }
}
@media screen and (min-width: 65em) {
  .baukasten .title-slides {
    --aspect-ratio: 16 / 9;
  }
}
.baukasten .title-slides__slide {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  padding-inline: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
  grid-auto-rows: max-content;
  grid-auto-flow: row;
  align-content: center;
}
@media screen and (min-width: 65em) {
  .baukasten .title-slides__slide {
    grid-auto-flow: column;
  }
}
.baukasten .title-slides__slide > div:first-child {
  align-self: center;
}
.baukasten .title-slides__slide > div:last-child {
  margin-bottom: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten .title-slides__description {
  font-size: clamp(1.55rem, 2.2916666667vw, 2.75rem);
  line-height: 125%;
}
@media screen and (min-width: 45em) {
  .baukasten .title-slides__cta {
    position: absolute;
    margin-top: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
    bottom: clamp(3.28125rem, 3.90625vw, 4.6875rem);
    right: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
    margin-right: auto;
  }
}
@media screen and (min-width: 45em) {
  .baukasten .title-slider-col .title-slides__cta {
    position: relative;
    bottom: auto;
    right: auto;
    margin-right: initial;
  }
}
.baukasten .title-slider-col .title-slides__slide {
  padding-inline: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
}
@media screen and (min-width: 65em) {
  .baukasten .title-slider-col .title-slides__slide {
    grid-auto-flow: row;
  }
}
.baukasten .title-slider-col .title-slides__slide > div:first-child {
  display: flex;
  flex-flow: column;
  align-items: center;
  text-align: center;
  width: clamp(10px, 50vw, 45rem);
  min-width: 20rem;
  margin-inline: auto;
}
.baukasten .title-slider-col .title-slides__slide > div:last-child {
  display: flex;
  justify-content: center;
  margin-bottom: clamp(3.28125rem, 3.90625vw, 4.6875rem);
}
.baukasten .project-slides {
  position: relative;
  overflow: hidden;
}
.baukasten .project-slides__slide {
  position: absolute;
  width: 100%;
  padding-inline: calc((100% - (min(85vw, 1920px) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem) + clamp(1.09375rem, 1.3020833333vw, 1.5625rem))) / 2);
}
.baukasten .project-slides__inner {
  --grid-gap: clamp(1.09375rem, 1.3020833333vw, 1.5625rem);
  position: relative;
  display: grid;
  grid-gap: var(--grid-gap);
  grid-template-columns: 1fr;
  grid-template-rows: min-content;
}
@media screen and (min-width: 45em) {
  .baukasten .project-slides__inner {
    grid-template-columns: 1fr 1fr;
  }
}
.baukasten .project-slides__content {
  position: relative;
}
@media screen and (min-width: 45em) {
  .baukasten .project-slides__content {
    top: 18.75%;
  }
}
.baukasten .project-slides__images {
  display: grid;
  align-content: start;
  grid-gap: var(--grid-gap);
  grid-template-columns: 1fr 2fr;
}
@media screen and (min-width: 45em) {
  .baukasten .project-slides__images {
    grid-template-columns: 1fr;
  }
}
.baukasten .project-slides__images .gallery {
  grid-template-columns: 1fr 1fr;
}
.baukasten .project-slides__images .gallery__item img {
  aspect-ratio: 16/9;
}
.baukasten .ticker {
  background-color: var(--clr-primary);
  color: hsl(0, 0%, 100%);
  font-size: clamp(0.9rem, 0.8333333333vw, 1rem);
  font-weight: 700;
  text-transform: uppercase;
  overflow: hidden;
  padding-block: 0.5rem;
  max-width: 100%;
}
.baukasten .ticker__move {
  white-space: nowrap;
}
.baukasten .ticker__element {
  display: inline-block;
}
.baukasten .ticker__element > div {
  display: flex;
  align-items: center;
}

/*# sourceMappingURL=main.css.map */
