/************************************ Start: Text mit Hintergrundfläche ************************************/
.cms_textBg_box { padding: 45px; box-shadow: var(--box-shadow); }
@media screen and (max-width: 991px) { .cms_textBg_box { padding: 30px; } }
.cms_textBg_box h1,
.cms_textBg_box h2,
.cms_textBg_box h3,
.cms_textBg_box h4,
.cms_textBg_box p { color: var(--white); }
.cms_textBg_box a { color: var(--white); text-decoration-color: var(--white); }
.cms_textBg_box a:hover { text-decoration-color: transparent; }
.cms_textBg_box h2 > .quadrat:before,
.cms_textBg_box h3 > .quadrat:before,
.cms_textBg_box h4 > .quadrat:before { background: var(--white); }
@media screen and (max-width: 959px) { .cms_textBg_box h1 > .quadrat:before { background: var(--white); } }
/************************************ End: Text mit Hintergrundfläche ************************************/
/************************************ Start: Teaser klein ************************************/
.cms_tk_box { position: relative; display: flex; width: 100%; background: var(--tertiary); }
.cms_tk_img { flex-shrink: 0; width: 210px; }
.cms_tk_img > picture { display: flex; width: calc(100% - 30px); transition: var(--transition); }
.cms_tk_img > picture > img { width: 100%; height: 180px; object-fit: cover; }
.cms_tk_info { flex: 1; display: flex; align-items: center; gap: 12px; width: 100%; padding: 20px; margin: 0 0 0 -30px; transition: var(--transition); will-change: transform; }
.cms_tk_info > svg { display: flex; width: 16px; height: 16px; transition: var(--transition); will-change: transform; }
.cms_tk_info > svg > path { fill: var(--primary); }
.cms_tk_box:hover .cms_tk_img > picture { width: 100%; }
.cms_tk_box:hover .cms_tk_info { transform: translateX(30px); }
.cms_tk_box:hover .cms_tk_info > svg { transform: rotate(45deg); }
@media screen and (max-width: 959px) {
    .cms_tk_img { width: 180px; }
    .cms_tk_img > picture > img { height: 150px; }
    .cms_tk_info { padding: 15px; }
    .cms_tk_info h4 { word-break: break-word; }
}
/************************************ End: Teaser klein ************************************/
/************************************ Start: Kontaktbox ************************************/
.cms_kb_box { display: flex; width: 100%; box-shadow: var(--box-shadow); }
.cms_kb_imgContainer { position: relative; display: flex; max-width: 300px; width: 100%; min-height: 300px; }
.cms_kb_imgBox { display: flex; width: 100%; }
.cms_kb_imgBox > picture { display: flex; width: 100%; }
.cms_kb_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center; object-fit: cover; }
.cms_kb_imgLegend { display: none; }
.cms_kb_content { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 43px; width: 100%; padding: 45px; background: var(--primary); }
.cms_kb_text { width: 100%; }
.cms_kb_text * { color: var(--white); }
.cms_kb_info_box { display: flex; flex-wrap: wrap; gap: 30px 95px; width: 100%; }
.cms_kb_info { display: flex; flex-direction: column; gap: 4px; }
.cms_kb_info > div { font-weight: 300; font-size: 24px; line-height: 31px; color: var(--white); }
.cms_kb_info > .cms_kb_fullName { font-weight: 600; }
.cms_kb_contact_lst { display: flex; flex-direction: column; gap: 10px; }
.cms_kb_contact > a { display: flex; align-items: center; gap: 11px; color: var(--white); }
.cms_kb_contact > a:hover { text-decoration-color: var(--white); }
.cms_kb_contact > a > svg { display: flex; }
.cms_kb_mail > a > svg { width: 19px; height: 15px; }
.cms_kb_telefon > a > svg { width: 20px; height: 20px; }
.cms_kb_contact > a > svg > path { stroke: var(--white); }
@media screen and (max-width: 959px) {
    .cms_kb_content { gap: 26px; padding: 25px; }
    .cms_kb_info_box { gap: 26px 30px; }
    .cms_kb_info > div { font-size: 19px; line-height: 23px; }
    .cms_kb_contact_lst { gap: 4px; }
    .cms_kb_contact > a { gap: 9px; }
    .cms_kb_mail > a > svg { width: 17px; height: 14px; }
    .cms_kb_telefon > a > svg { width: 18px; height: 18px; }
}
@media screen and (max-width: 700px) {
    .cms_kb_box { flex-direction: column; }
    .cms_kb_imgContainer { max-width: none; min-height: auto; }
    .cms_kb_imgBox > picture { padding: 0 0 66.75675675675676% 0; }
    .cms_kb_content { flex: none; }
}
@media screen and (max-width: 500px) { .cms_kb_imgBox > picture { padding: 0 0 100% 0; } }
/************************************ End: Kontaktbox ************************************/
/************************************ Start: Checkliste ************************************/
.cms_checkliste_box { display: flex; flex-direction: column; width: 100%; }
.cms_checkliste_item { position: relative; display: flex; width: 100%; padding: 25px 0 25px 25px; border-bottom: 1px solid var(--bg-hr); }
.cms_checkliste_box > .cms_checkliste_item:first-of-type { padding: 0 0 25px 25px; }
.cms_checkliste_item:before { content: ""; position: absolute; z-index: 1; top: 36.5px; left: 0; width: 12px; height: 12px; background: var(--primary); }
.cms_checkliste_box > .cms_checkliste_item:first-of-type:before { top: 11.5px; }
@media screen and (max-width: 959px) {
    .cms_checkliste_item { padding: 15px 0 15px 15px; }
    .cms_checkliste_box > .cms_checkliste_item:first-of-type { padding: 0 0 15px 15px; }
    .cms_checkliste_item:before { top: 23.5px; width: 10px; height: 10px; }
    .cms_checkliste_box > .cms_checkliste_item:first-of-type:before { top: 8.5px; }
}
/************************************ End: Checkliste ************************************/
/************************************ Start: Galerie Senn AG ************************************/
.cms_gsa_box { width: 100%; }
.cms_gsa_imgContainer { position: relative; z-index: 1 !important; width: 100%; overflow: clip; }
.cms_gsa_imgBox { width: 100%; }
.cms_gsa_imgBox:before { content: ""; position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); visibility: hidden; opacity: 0; transition: var(--transition); }
.cms_gsa_imgBox:hover:before { visibility: visible; opacity: 1; }
.cms_gsa_imgBox:after { content: "\f002"; position: absolute; z-index: 3; top: 50%; left: 50%; transform: translate(-50%,-50%); font: 28px 'FontAwesome'; line-height: 30px; color: var(--white); text-align: center; visibility: hidden; opacity: 0; transition: var(--transition); }
.cms_gsa_imgBox:hover:after { visibility: visible; opacity: 1; }
.cms_gsa_imgBox > picture { display: flex; width: 100%; padding: 0 0 66.57894736842105% 0; }
.cms_gsa_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center; object-fit: cover; transition: var(--transition); will-change: transform; }
.cms_gsa_box:hover .cms_gsa_imgBox > picture > img { transform: scale(1.05); }
.cms_gsa_imgLegend { display: none; }
.gsaSwiper-button { cursor: pointer; position: absolute; z-index: 11 !important; top: 50%; transform: translateY(-50%); display: flex; justify-content: center; align-items: center; width: 30px; height: 30px; background: var(--primary); transition: var(--transition); }
.gsaSwiper-button.swiper-button-disabled { pointer-events: none; cursor: auto; opacity: .35; }
.gsaSwiper-button:not(.swiper-button-disabled):hover { background: var(--secondary); }
.gsaSwiper-button-prev { left: 0; }
.gsaSwiper-button-next { right: 0; }
.gsaSwiper-button > svg { display: flex; width: 9px; height: 15px; }
.gsaSwiper-button > svg > path { stroke: var(--white); }
/************************************ End: Galerie Senn AG ************************************/
/************************************ Start: Galerie Projekte ************************************/
.proSwiper { overflow: visible; clip-path: inset(-100vw); margin: 0 0 22.5px 0; }
.cms_proSwiper_box { width: 100%; }
.cms_proSwiper_imgContainer { position: relative; z-index: 1 !important; width: 100%; overflow: clip; }
.cms_proSwiper_imgBox { width: 100%; }
/*.cms_proSwiper_imgBox:before { content: ""; position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); visibility: hidden; opacity: 0; transition: var(--transition); }
.cms_proSwiper_imgBox:hover:before { visibility: visible; opacity: 1; }
.cms_proSwiper_imgBox:after { content: "\f002"; position: absolute; z-index: 3; top: 50%; left: 50%; transform: translate(-50%,-50%); font: 28px 'FontAwesome'; line-height: 30px; color: var(--white); text-align: center; visibility: hidden; opacity: 0; transition: var(--transition); }
.cms_proSwiper_imgBox:hover:after { visibility: visible; opacity: 1; }*/
.cms_proSwiper_imgBox > picture { display: flex; width: 100%; padding: 0 0 66.66666666666666% 0; }
.cms_proSwiper_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center; object-fit: cover; /*transition: var(--transition); will-change: transform;*/ }
/*.cms_proSwiper_box:hover .cms_proSwiper_imgBox > picture > img { transform: scale(1.05); }*/
.cms_proSwiper_imgLegend { display: none; }
.cms_proSwiper_button_lst { --proSwiperBtnLstPos: calc(calc(calc(100% - 1630px) / 2) + 30px); position: absolute; z-index: 11 !important; bottom: 0; left: max(30px,var(--proSwiperBtnLstPos)); transform: translateY(50%); display: flex; align-items: center; gap: 18px; }
.proSwiper-button { cursor: pointer; display: flex; justify-content: center; align-items: center; width: 45px; height: 45px; background: var(--primary); transition: var(--transition); }
.proSwiper-button.swiper-button-disabled { pointer-events: none; cursor: auto; opacity: .35; }
.proSwiper-button:not(.swiper-button-disabled):hover { background: var(--secondary); }
.proSwiper-button > svg { display: flex; width: 10px; height: 17px; }
.proSwiper-button > svg > path { stroke: var(--white); }
@media screen and (max-width: 959px) {
    .proSwiper { margin: 0 0 15px 0; }
    .cms_proSwiper_button_lst { gap: 15px; }
    .proSwiper-button { width: 30px; height: 30px; }
    .proSwiper-button > svg { width: 9px; height: 15px; }
}
/************************************ End: Galerie Projekte ************************************/