.elementor-kit-6{--e-global-color-primary:#303030;--e-global-color-secondary:#303030;--e-global-color-text:#30303099;--e-global-color-accent:#E6361A;--e-global-color-5325dd0:#FFFFFF;--e-global-color-b09d4ed:#313131;--e-global-color-bd016fd:#F0F0F0;--e-global-color-18dd6ec:#30303099;--e-global-color-f34a911:#FFFFFF;--e-global-color-64d8cbb:#FFFFFFCC;--e-global-color-4588626:#E5E9EE;--e-global-color-27ab53a:#5C99FF;--e-global-color-620c9c4:#FFFFFF;--e-global-color-c9b88d2:#FFFFFF;--e-global-color-c741922:#FFFFFF;--e-global-color-10a6941:#DEDEDE;--e-global-color-5f2a7d1:#B1C3FF;--e-global-color-69807f9:#FFFFFF00;--e-global-color-53a88c6:#373737;--e-global-color-f5718ad:#2B2B2B;--e-global-color-3672045:#FFFFFF99;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.6em;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:500;--e-global-typography-d94705b-font-family:"Montserrat";--e-global-typography-d94705b-font-size:60px;--e-global-typography-d94705b-font-weight:700;--e-global-typography-d94705b-line-height:1em;--e-global-typography-d94705b-letter-spacing:-2px;--e-global-typography-0f36551-font-family:"Montserrat";--e-global-typography-0f36551-font-size:72px;--e-global-typography-0f36551-font-weight:900;--e-global-typography-0f36551-line-height:1em;--e-global-typography-0f36551-letter-spacing:-2px;--e-global-typography-f89ab80-font-family:"Montserrat";--e-global-typography-f89ab80-font-size:48px;--e-global-typography-f89ab80-font-weight:800;--e-global-typography-f89ab80-line-height:1.1em;--e-global-typography-f89ab80-letter-spacing:-2.5px;--e-global-typography-e6af5e5-font-family:"Montserrat";--e-global-typography-e6af5e5-font-size:30px;--e-global-typography-e6af5e5-font-weight:700;--e-global-typography-e6af5e5-letter-spacing:-2px;--e-global-typography-d9852fd-font-family:"Montserrat";--e-global-typography-d9852fd-font-size:24px;--e-global-typography-d9852fd-font-weight:400;--e-global-typography-d9852fd-line-height:1.3em;--e-global-typography-5fc7945-font-family:"Montserrat";--e-global-typography-5fc7945-font-size:20px;--e-global-typography-5fc7945-font-weight:600;--e-global-typography-5fc7945-line-height:1em;--e-global-typography-85e3b3e-font-family:"Montserrat";--e-global-typography-85e3b3e-font-size:60px;--e-global-typography-85e3b3e-font-weight:800;--e-global-typography-85e3b3e-line-height:1em;--e-global-typography-85e3b3e-letter-spacing:-2px;--e-global-typography-2806413-font-family:"Montserrat";--e-global-typography-2806413-font-size:36px;--e-global-typography-2806413-font-weight:700;--e-global-typography-2806413-line-height:1.1em;--e-global-typography-fca8fbe-font-family:"Montserrat";--e-global-typography-fca8fbe-font-size:18px;--e-global-typography-fca8fbe-font-weight:400;--e-global-typography-fca8fbe-line-height:1.6em;--e-global-typography-6efc6e3-font-family:"Montserrat";--e-global-typography-6efc6e3-font-size:65px;--e-global-typography-6efc6e3-font-weight:700;--e-global-typography-43fc0b1-font-family:"Montserrat";--e-global-typography-43fc0b1-font-size:54px;--e-global-typography-43fc0b1-font-weight:400;--e-global-typography-174a75a-font-family:"Montserrat";--e-global-typography-174a75a-font-size:20px;--e-global-typography-174a75a-font-weight:400;--e-global-typography-174a75a-line-height:1em;--e-global-typography-07e6f2c-font-family:"Montserrat";--e-global-typography-07e6f2c-font-size:1.125rem;--e-global-typography-558a952-font-family:"Montserrat";--e-global-typography-558a952-font-size:20px;--e-global-typography-558a952-font-weight:600;--e-global-typography-f3697dc-font-family:"Montserrat";--e-global-typography-f3697dc-font-size:16px;--e-global-typography-de9454d-font-family:"Montserrat";--e-global-typography-de9454d-font-size:20px;--e-global-typography-70fb5e3-font-family:"Montserrat";--e-global-typography-70fb5e3-font-size:24px;--e-global-typography-70fb5e3-font-weight:700;--e-global-typography-70fb5e3-text-transform:uppercase;--e-global-typography-70fb5e3-letter-spacing:0px;--e-global-typography-9c39110-font-family:"Montserrat";--e-global-typography-9c39110-font-size:16px;--e-global-typography-9c39110-font-weight:600;--e-global-typography-9c39110-line-height:1.2em;--e-global-typography-9c39110-letter-spacing:-0.4px;background-color:#EBEFF4;color:var( --e-global-color-text );font-family:"Montserrat", Sans-serif;font-size:16px;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-accent );font-family:"Montserrat", Sans-serif;font-size:16px;font-weight:500;line-height:20px;color:var( --e-global-color-c741922 );border-radius:100px 100px 100px 100px;padding:6px 6px 6px 24px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:var( --e-global-color-secondary );}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 p{margin-block-end:1.5em;}.elementor-kit-6 a{color:#E6361A;font-family:"Montserrat", Sans-serif;font-weight:500;}.elementor-kit-6 h1{font-family:"Montserrat", Sans-serif;font-size:80px;font-weight:400;}.elementor-kit-6 h2{font-family:"Montserrat", Sans-serif;font-size:54px;font-weight:600;}.elementor-kit-6 h3{font-family:"Montserrat", Sans-serif;font-size:24px;font-weight:400;}.elementor-kit-6 h4{font-family:"Inter", Sans-serif;font-size:22px;}.elementor-kit-6 h5{font-family:"Montserrat", Sans-serif;font-size:18px;}.elementor-kit-6 h6{font-family:"Montserrat", Sans-serif;font-size:18px;font-weight:600;}.elementor-kit-6 img{border-radius:20px 20px 20px 20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1250px;}.e-con{--container-max-width:1250px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-d94705b-font-size:50px;--e-global-typography-f89ab80-font-size:48px;--e-global-typography-e6af5e5-font-size:24px;--e-global-typography-d9852fd-font-size:20px;--e-global-typography-85e3b3e-font-size:36px;--e-global-typography-85e3b3e-line-height:1.5em;--e-global-typography-fca8fbe-font-size:20px;--e-global-typography-9c39110-font-size:20px;}.elementor-kit-6 h1{font-size:40px;}.elementor-kit-6 h2{font-size:36px;}.elementor-kit-6 h3{font-size:24px;}.elementor-kit-6 h4{font-size:20px;}.elementor-kit-6 h5{font-size:18px;}.elementor-kit-6 h6{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-d94705b-font-size:42px;--e-global-typography-f89ab80-font-size:36px;--e-global-typography-f89ab80-line-height:1.2em;--e-global-typography-e6af5e5-font-size:22px;--e-global-typography-d9852fd-font-size:18px;--e-global-typography-85e3b3e-font-size:30px;--e-global-typography-85e3b3e-line-height:1.5em;--e-global-typography-2806413-font-size:26px;--e-global-typography-2806413-line-height:1.3em;--e-global-typography-fca8fbe-font-size:18px;--e-global-typography-9c39110-font-size:18px;}.elementor-kit-6 a{font-size:16px;}.elementor-kit-6 h1{font-size:36px;}.elementor-kit-6 h2{font-size:32px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */html,
body{
  width:100%;
  overflow-x:hidden;
}

/* ---- Layout-CSS des Child-Themes der Altseite (uebernommen 20.08.2026) ---- */
/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/
.black-strong span.elementor-icon-list-text b,
.black-strong span.elementor-icon-list-text strong{
    color: #303030;
}
.slider-home-service-box {
    justify-content: space-between;
}
.grecaptcha-badge {
    display: none !important;
}

.timeline-line:before {
    content: "";
    position: absolute;
    top: 70%;
    left: 0;
    width: 110%;
    height: 1px;
    background: #cacaca;
}
#slide-menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
transition: all 500ms cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */

transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
  z-index: 500;
}
header {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
}
#slide-menu.show {
    right: 0;
}

/* Block Scroll when menu is opened */
body.show{
    overflow: hidden;
}

/* Typo */

h1 span,
h2 span,
.h2-hero-tagline span{
	color:#E6361A
}
.hero-bold-p strong,
.hero-bold-p b{
    color: #E6361A;
    font-weight: normal !important;
}
span.elementor-icon-list-text b {
    color: #fff;
    font-weight: bold !important;
}
header .elementor-widget-search .e-search .e-search-submit {
    padding: 14px;
    min-height: 1px;
    line-height: 1;
    position: absolute;
    top: 50%;
    right: 2px;
    transform: translateY(-50%);
    border-radius: 100px;
}
header .elementor-widget-search .e-search .e-search-submit i {
    margin: 0;
}
header .elementor-widget-search .e-search-input {
    padding: 12px 10px 12px 40px;
    border: 0;
    border-radius: 100px;
    min-height: 1px;
    min-width: 1px;
}
/* -------------------------------------------------------------------
   BUTTON ARROW
------------------------------------------------------------------- */
.icon-arrow-wrapper {
  height: 40px;
  max-height: 40px;
  min-height: 40px;
  border-radius: 100px;
  transform: translateZ(0);
}

.icon-btn {
  height: 16px;
  width: 16px;
  transition: all 500ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
}

.button-wrapper:hover .icon-btn {
  transform: translate(45px, -45px);
}

.icon-btn-sec {
  height: 16px;
  width: 16px;
  position: absolute;
  transform: translate(-25px, 25px);
  transition: all 500ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
}

.button-wrapper:hover .icon-btn-sec {
  transform: translate(0px, 0px);
}
span.elementor-button-content-wrapper {
    align-items: center;
}
span.elementor-button-icon {
    font-size: 2.7em;
}

/* MISC */
.blog-post-box {
    height: 100%;
}
.blog-post-box .elementor-widget-button {
    margin-top: auto;
}
.step-number .elementor-widget-container {
    background: #e63519;
    width: 40px;
    height: 40px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100px !important;
}
.step-number-line:before {
    content: "";
    position: absolute;
    top: 10px;
    left: 29px;
    width: 1px;
    height: 100%;
    background: #B7B9BD;
}
.sticky-cta {
    position: fixed;
    right: 0;
    bottom: 100px;
    width: 17em;
    transition: all .35s ease-in-out;
	z-index:999;
}

.sticky-cta:hover {
	right:0
}

.sticky-cta a {
    color: #fff;
    display: block;
    font-weight: bold;
    font-size: 20px;
	transition:all .25s;
}
.sticky-cta a:hover {
	opacity:.7
}
span.e-n-accordion-item-title-icon svg {
    width: 40px !important;
    height: 40px !important;
}
summary.e-n-accordion-item-title[aria-expanded="true"] {
    border-radius: 20px 20px 0 0;
}


.home-service-box-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-70%);
    z-index: 0;
}
.home-service-box .elementor-widget-heading {
    position: relative;
    z-index: 2;
	transition:all .35s ease-in-out;
	opacity:1
}


.hero-inner-main:before {
	background-size:auto !important
}
.humburger.active span {
    background: #303030;
}
.hero-inner-main > .e-con-inner {
    padding-bottom: 185px !important;
}
.hero-inner-main+.padding-section:before {
    content: "";
    position: absolute;
    top: -55px;
    left: 0;
    width: 100%;
    height: 55px;
    background: #ebeff3;
    border-radius: 60px 60px 0 0;
    z-index: 9;
}
.button-empty-abs {
    position: absolute;
    top: 0;
    right: 0;
    width: 84px;
    height: 84px;

}
.button-empty-abs-tl {
    position: absolute;
    top: 0;
    left: 0;
    width: 84px;
    height: 84px;

}
.button-empty-abs-tl:before {
	content: "";
    position: absolute;
    background: #393939;
    width: 84px;
    height: 84px;
    left: 0;
    top: 0;
    border-radius: 20px 0 100px 0;
	transition:all .25s ease-in-out;
}
.button-empty-abs:before {
    content: "";
    position: absolute;
    background: #393939;
    width: 84px;
    height: 84px;
    right: 0;
    top: 0;
    border-radius: 0 20px 0 100px;
	transition:all .25s ease-in-out;
}
.button-empty-abs .elementor-button-wrapper,
.button-empty-abs-tl .elementor-button-wrapper{
    position: relative;
    z-index: 2;
    height: 100%;
    width: 100%;
}
.button-empty-abs .elementor-button-wrapper a,
.button-empty-abs-tl .elementor-button-wrapper a{
    font-size: 0.6em;
    width: 100%;
    height: 100%;
	    display: flex;
    align-items: center;
    justify-content: center;
    display: flex;
}
.button-empty-abs span.elementor-button-content-wrapper{
    position: relative;
    top: -6px;
    left: 7px;
}
.button-empty-abs-tl span.elementor-button-content-wrapper {
	position: relative;
    top: -6px;
    right: 7px;
}
.button-abs-hover:hover .button-empty-abs:before {
    width: 100px;
    height: 100px;
}
.offset-border-tl:after {
    content: "";
    position: absolute;
    top: -20px;
    left: -20px;
    width: calc(100% - 20px);
    height: 30%;
    background: rgba(61, 61, 61, 0.84);
    z-index: 0;
    border-radius: 20px;
}
.offset-border-tl > .e-con {
	position:relative;
	z-index:1
}
.elementor-element.elementor-element-3b2615d .e-con-inner {
    margin: 0;
    padding: 0;
}
.section-overlay-bottom {
    margin-top: -9em;
}
.overflow-img-pseudo:after {
    content: "";
    position: absolute;
    left: -3.5em;
    width: 7em;
    height: 100%;
    background-image: url(https://san-rep.de/wp-content/uploads/2026/08/Group-2072751088.png);
    z-index: 0;
    top: 0;
    bottom: 0;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 0;
}
.overflow-img-pseudo img {
    position:relative;
	z-index:1
}
.thin {
    max-width: 700px !important;
    margin-left: auto;
    margin-right: auto;
}
.thin-m {
	max-width: 850px !important;
    margin-left: auto;
    margin-right: auto;
}
/* Add your custom styles here */
.padding-section {
	padding-top: 60px;
	padding-bottom: 60px;
}
@media screen and (max-width: 1450px) {
	#backtop {
		display:none
	}
}
@media screen and (max-width: 1250px){
	.padding-section{
		padding-top: 40px;
		padding-bottom: 40px;
		padding-left: 40px;
		padding-right: 40px;		
	}	
}

@media screen and (max-width: 767px){
	.padding-section {
		padding-top: 30px;
		padding-bottom: 30px;
		padding-left: 20px;
		padding-right: 20px;		
	}
	.full-width-button-mobile a{
		width: 100%;
	}
}

@keyframes float {
	0% {
		transform: translatey(0px);
	}
	50% {
		transform: translatey(-20px);
	}
	100% {
		transform: translatey(0px);
	}
}

.floating-up {
	animation: float 6s ease-in-out infinite;
}

.flex-row{
	display: flex;
	flex-direction: row;
}
.logo-gallery .gallery{
	display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.faq-border .elementor-toggle .elementor-tab-title{
	border: 1px solid;	
}

.icon-button svg{
	height: 14px;
}

.icon-start .elementor-icon-list-icon{
	align-self: start;
}

p.elementor-heading-title{
	margin-bottom: 0;
}

.scroll-logo{
  transition-timing-function: linear !important; 
}

.elementor-widget-text-editor p:last-child{
	margin-bottom: 0px!important;
}
.full-height-image{
	height: 100%!important;
}
.card-overflow-image{
	height:100%;
	margin-top:-5%;
	margin-bottom: -5%;
	margin-left: -20%;
}
.card-overflow-image img{
	height: 100%;
	object-fit: cover;
}
.gold-list ul {
  list-style: none; /* Remove default bullets */
	padding-inline-start: 0;
}
.gold-list li{
	display: flex;
}

.gold-list ul li::before {
  content: "\2022";  /* Add content: \2022 is the CSS Code/unicode for a bullet */
  color: var( --e-global-color-accent ); /* Change the color */
  font-weight: bold; /* If you want it to be bold */
  display: inline-block; /* Needed to add space between the bullet and the text */
  width: 1em; /* Also needed for space (tweak if needed) */
  margin-left: 0; /* Also needed for space (tweak if needed) */
	flex-shrink: 0;
}

.elementor-icon-wrapper{
	display: flex;
}

.full-width-button a{
	width: 100%;
}

.logo-carousel .swiper-wrapper{
  -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important; 
}
.logo-carousel img{
    height: 50px; 
    object-fit: contain;
    border-radius: 0;
}

.elementor-button-icon {
	display: flex;
}

	.hero-inner-main:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #303030, #30303000);
    z-index: 2;
}

.hero-inner-left {
    position: relative;
    z-index: 3;
}
@media screen and (max-width: 1425px) {
	.hero-inner-main:before {
		background-size: 65% !important;
	}
}

@media screen and (min-width: 1024px) and (max-width:1425px) {
	.hero-inner-main > .e-con-inner {
    position: relative;
    z-index: 3;
}
	.hero-inner-main:before {
    z-index: 1;
}

}

@media screen and (max-width: 1024px) {
/* 	.hero-inner-main:before {
		display:none !important
	} */
	.header-contact-button {
    margin-left: auto;
}
	header .sub-menu {
    position: relative !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
}

@media screen and (max-width:768px) {
	.section-overlay-bottom {
    margin-top: 0;
	}
	.step-number-line:before {
		display:none
	}
	.sticky-cta {
		display:none
	}
	.hero-inner-main > .e-con-inner {
    padding-top: 90px;
    padding-bottom: 130px !important;
}
	.button-empty-abs:before,
	.button-empty-abs-tl:before{
		height:64px;
		width:64px;
	}
	span.elementor-button-icon {
    font-size: 2.2em;
}
	.button-empty-abs span.elementor-button-content-wrapper {
    position: relative;
    top: -13px;
    left: 14px;
}
	.button-empty-abs-tl span.elementor-button-content-wrapper {
    top: -13px;
    left: -14px;
}
	.home-service-box-hover {
		border-radius: 20px 20px 80px 20px;
	}
	.hide-background-overlay-mobile:before {
		display:none !important
	}
}

@media screen and (max-width:480px) {
	.timeline-progress {
   z-index:-1
}
	.timeline-line:before {
    width: 95%;
    margin: 0 auto;
    right: 0;
		z-index:-2
}
}

/* ==== Eigene Ergaenzungen des Neuaufbaus (20.08.2026) ==== */
/* Kreis-Pfeil der Knoepfe mit Hover-Wechsel.
   Im Original lag rechts im Knopf ein gefuellter Kreis mit Pfeil, und beim
   Ueberfahren flog der Pfeil nach rechts oben hinaus, waehrend ein zweiter von
   links unten nachrueckte (.icon-btn / .icon-btn-sec im Child-Theme). Die
   Knopfpolsterung des Kits (24px links, 6px rechts) ist auf diesen Kreis
   ausgelegt.

   ACHTUNG, am 26.08.2026 richtiggestellt: Elementor liefert das eingebettete
   SVG NICHT aus (Falle 20) — im Ruhezustand war der Kreis deshalb leer, und
   der Pfeil erschien erst beim Ueberfahren. Beide Pfeile werden darum hier als
   Maske gezeichnet: ::before ist der rote Ruhepfeil, ::after der dunkle, der
   nachrueckt. Die svg-Regeln bleiben stehen, falls Elementor das Symbol eines
   Tages doch ausliefert; sie stoeren nicht.

   Wichtig: font-size 0, sonst schieben die Leerzeichen im Markup den Pfeil
   aus der Mitte. */
.elementor-button .elementor-button-icon {
  position: relative;
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 100px;
  overflow: hidden;
  background: #FFFFFF;
  color: #303030;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  line-height: 0;
  flex: 0 0 auto;
}

.elementor-button .elementor-button-icon svg {
  display: block;
  width: 15px;
  height: 15px;
  fill: currentColor;
  transition: transform 500ms cubic-bezier(0.86, 0, 0.07, 1);
}

.elementor-button .elementor-button-icon::before {
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  background-color: var(--e-global-color-accent, #E6361A);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h13M12 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h13M12 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translate(0, 0);
  transition: transform 500ms cubic-bezier(0.86, 0, 0.07, 1);
}

.elementor-button:hover .elementor-button-icon::before {
  transform: translate(30px, -30px);
}

.elementor-button .elementor-button-icon::after {
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h13M12 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h13M12 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translate(-30px, 30px);
  transition: transform 500ms cubic-bezier(0.86, 0, 0.07, 1);
}

.elementor-button:hover .elementor-button-icon svg {
  transform: translate(30px, -30px);
}

.elementor-button:hover .elementor-button-icon::after {
  transform: translate(0, 0);
}

@media (prefers-reduced-motion: reduce) {
  .elementor-button .elementor-button-icon svg,
  .elementor-button .elementor-button-icon::before,
  .elementor-button .elementor-button-icon::after {
    transition: none;
  }
}

/* Knoepfe auf hellem Grund tragen den Kreis in der Markenfarbe statt in Weiss.
   WER HIER EINEN KNOPF ERGAENZT, muss ihn auch in der zweiten Liste darunter
   ergaenzen: Auf einem roten Kreis waere der rote Ruhepfeil unsichtbar. */
.elementor-element-0864db5 .elementor-button-icon,
.elementor-element-1825c19 .elementor-button-icon,
.elementor-element-1c86b6d .elementor-button-icon,
.elementor-element-f63d02e .elementor-button-icon {
  background: #E6361A;
  color: #FFFFFF;
}

/* Auf dem roten Kreis ist der Ruhepfeil weiss statt rot — rot auf rot waere
   nicht zu sehen. Der dunkle Pfeil (::after) regelt das ueber currentColor
   schon von selbst; ::before traegt eine feste Farbe und braucht die Ausnahme. */
.elementor-element-0864db5 .elementor-button-icon::before,
.elementor-element-1825c19 .elementor-button-icon::before,
.elementor-element-1c86b6d .elementor-button-icon::before,
.elementor-element-f63d02e .elementor-button-icon::before {
  background-color: #FFFFFF;
}

/* Gleich hohe Service-Karten im Karussell.
   Swiper macht die Folien gleich hoch, die Elementor-Container darin bleiben
   aber auf Inhaltshoehe. Dadurch wirken die Karten unterschiedlich gross,
   obwohl die Folien es nicht sind. Die Kette wird deshalb durchgestreckt;
   justify-content: space-between aus dem Child-Theme setzt den Knopf danach
   von selbst an den Kartenboden. */
.elementor-element-082144a .swiper-slide > .e-con,
.elementor-element-082144a .swiper-slide > .e-con > .e-con-inner,
.elementor-element-082144a .swiper-slide .slider-home-service-box {
  height: 100%;
}

/* Ueberscroll-Rand.
   macOS zeigt beim Weiterscrollen ueber das Seitenende die Hintergrundfarbe der
   Leinwand. Die kommt von html, sonst von body. Body ist hell (#EBEFF4), der
   Footer dunkel — dadurch blitzt unter dem Footer ein heller Streifen auf.
   html bekommt deshalb die Footer-Farbe; die sichtbare Seite bleibt unberuehrt,
   weil body seine eigene Farbe behaelt. */
html {
  background-color: #303030;
}

/* Google-Bewertungen: ganzer Text statt "Weiterlesen".
   Das Widget kommt von Trustindex und laesst sich von hier nicht umkonfigurieren
   (die Einstellung liegt im Trustindex-Konto des Kunden). Diese Regeln klappen
   den gekuerzten Text auf und blenden den Aufklapp-Link aus. */
.ti-widget .ti-read-more {
  display: none !important;
}
.ti-widget .ti-review-content,
.ti-widget .ti-review-text-container {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
}
.ti-widget .ti-fade-container {
  display: none !important;
}

/* Karussell-Pfeile in der Knopf-Optik.
   Elementor faerbt sie ab Werk fast weiss; auf dem hellen Seitengrund waren sie
   praktisch unsichtbar, und ohne sichtbare Pfeile wirkt das Karussell, als
   liesse es sich gar nicht bedienen. Der Greif-Cursor zeigt am Rechner
   ausserdem an, dass man ziehen kann — auf dem Handy wischt man ohnehin. */
.elementor-element-082144a .elementor-swiper-button {
  width: 40px;
  height: 40px;
  border-radius: 100px;
  background: #FFFFFF;
  color: #303030;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(48, 48, 48, 0.14);
  transition: background-color 200ms ease, color 200ms ease;
}

.elementor-element-082144a .elementor-swiper-button svg {
  /* Ohne !important bleibt der Pfeil auf Elementors 36px und fuellt den 40er
     Kreis fast vollstaendig aus — er wirkt hineingequetscht. Der Hebel ueber
     die Schriftgroesse des Knopfes greift nicht, Elementors eigene Regel
     gewinnt dort (am 21.08.2026 im Browser gegengeprueft). */
  width: 15px !important;
  height: 15px !important;
  fill: currentColor;
}

.elementor-element-082144a .elementor-swiper-button:hover {
  background: #E6361A;
  color: #FFFFFF;
}

.elementor-element-082144a .swiper {
  cursor: grab;
}

.elementor-element-082144a .swiper:active {
  cursor: grabbing;
}


/* Notrufbalken auf dem Handy.
   Das Child-Theme der Altseite blendet .sticky-cta unter 768px komplett aus
   (@media screen and (max-width:768px){.sticky-cta{display:none}}) — also genau
   auf dem Geraet, mit dem man anruft. Bei einem 24/7-Notdienst ist die Nummer
   der wichtigste Knopf der Seite, deshalb wird sie hier zurueckgeholt.

   Statt des schmalen Kastens rechts laeuft der Balken auf dem Handy als volle
   Leiste am unteren Rand — das gewohnte Muster, verdeckt keinen Inhalt und
   bietet eine grosse Tippflaeche. Die !important-Angaben sind noetig, weil
   Elementors eigene Element-Regeln das Kit-CSS sonst schlagen. */
@media screen and (max-width: 768px) {
  .sticky-cta {
    display: flex !important;
    /* Elementor-Container schalten unterhalb des Umbruchpunkts von selbst auf
       Spalte, wenn keine mobile Richtung gesetzt ist. Ohne diese Zeile stapelt
       sich der Hoerer ueber die Nummer und der Balken wird doppelt so hoch. */
    flex-direction: row !important;
    /* Elementor gibt Container-Kindern width:100%. Zusammen mit der Hoerer-
       Kachel passt das nicht in eine Zeile, die Textkachel bricht um und der
       Balken wird doppelt so hoch. */
    flex-wrap: nowrap !important;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100% !important;
    gap: 0 !important;
    align-items: stretch !important;
    box-shadow: 0 -2px 14px rgba(0, 0, 0, 0.28);
  }

  .sticky-cta > .elementor-element-d9c87d3 {
    width: 76px !important;
    flex: 0 0 76px !important;
  }

  .sticky-cta > .elementor-element-b046f30 {
    display: flex !important;
    width: auto !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 10px !important;
  }

  .sticky-cta .elementor-widget-text-editor p {
    margin: 0;
    text-align: center;
  }

  /* Der Balken liegt fest ueber dem Seitenende. Ohne diesen Platz verdeckt er
     die letzte Zeile des Fusses. Die Flaeche traegt die Leinwandfarbe von html
     und faellt neben dem dunklen Fuss nicht auf. */
  body {
    padding-bottom: 84px;
  }
}

/* Aufzaehlungszeichen der Leistungsseiten (22.08.2026).
   Das Original setzt als Symbol ein 8x8-SVG: ein gefuellter Kreis in der
   Akzentfarbe (dot-icon.svg). Elementor 4 liefert weder Font Awesome noch
   hochgeladene SVG aus (Falle 20), der Span bleibt leer — was wie ein
   Einrueckungsfehler aussieht, nicht wie ein fehlendes Element (Falle 19).

   Ein Kreis ist einfach genug, um ihn originalgetreu in CSS zu zeichnen. Das
   spart einen Upload und laesst den Bauplan unberuehrt bei 1:1.

   Bewusst eng auf die Seite begrenzt: Header und Fuss tragen in denselben
   Widgets Brief- und Hoerersymbole, die Startseite zusaetzlich Ellipse-1448.
   Eine pauschale Regel wuerde dort falsche Punkte setzen. Kommen die weiteren
   zwoelf Leistungsseiten dazu, gehoert das auf eine gemeinsame Klasse
   gehoben statt pro Seite wiederholt. */
.elementor-240 .elementor-widget-icon-list .elementor-icon-list-icon::before {
  content: "";
  display: block;
  width: var(--e-icon-list-icon-size, 8px);
  height: var(--e-icon-list-icon-size, 8px);
  border-radius: 50%;
  background-color: var(--e-global-color-accent, #E6361A);
}

/* Die rote Schlusszeile der Startseiten-H1 ("make it right!") darf nie
   zwischen ihren drei Woertern brechen. Gemessen am 26.08.2026 in WebKit:
   zwischen 1025 und 1040 px Fensterbreite zerfaellt sie sonst in zwei Zeilen —
   ein schmales Band, das bei den ueblichen Testbreiten (1024, 1280, 1440)
   durch die Maschen faellt und genau deshalb lange unbemerkt blieb.

   Der Umbruch VOR der Zeile kommt aus einem <br> im Bauplan, nicht von hier.
   Eng auf das Element begrenzt, damit andere Ueberschriften frei umbrechen. */
.elementor-element-ef92835 .elementor-heading-title span {
  white-space: nowrap;
}

/* Bautrockner-Bild quadratisch, Ausschnitt nach links gezogen.
   Quadratisch per aspect-ratio statt per Pixelhoehe: Eine feste Hoehe waere
   nur bei genau einer Fensterbreite ein Quadrat. Die Quelle ist 594x387, ein
   Quadrat schneidet also 35 % der Breite weg. Bei mittigem Schnitt liefe der
   Rand mitten durch den Trockner — er sitzt bei etwa 10 bis 40 % der Breite.
   object-position 20 % laesst ihn vollstaendig im Bild. */
.elementor-element-e56881c img {
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: cover;
  object-position: 20% center;
}

/* Ueberschrift im roten CTA der Wasserschadenseite.
   Der Kasten ist seit dem 26.08.2026 schmaler; 48px fuellten ihn danach von
   Rand zu Rand. Die Groesse haengt an einer GLOBALEN Typografie, die fuer die
   ganze Website gilt und deshalb nicht angefasst wird — der Wert wird hier nur
   fuer dieses eine Element ueberschrieben.

   Nur ab 1025px: Darunter laeuft der Kasten wieder ueber die volle Breite und
   die globale Mobilgroesse (36px) passt dort bereits. */
@media (min-width: 1025px) {
  .elementor-element-45d97983 .elementor-heading-title {
    /* !important, weil Elementors eigene Seitenregel spezifischer ist
       (.elementor-240 .elementor-element.elementor-element-… ) — Falle 5. */
    font-size: 40px !important;
    line-height: 1.1 !important;
  }
}/* End custom CSS */