.elementor-kit-9{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-9e8be8a:#AD0B36;--e-global-color-d66cc78:#000000;--e-global-color-8383e07:#F9E9E8;--e-global-color-0fe6bf5:#DA053A;--e-global-typography-primary-font-family:"Arial";--e-global-typography-primary-font-weight:500;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-3169f66-font-family:"Arial";--e-global-typography-3169f66-font-size:40px;--e-global-typography-3169f66-font-weight:600;--e-global-typography-3169f66-text-transform:uppercase;--e-global-typography-2d39a6d-font-family:"Arial";--e-global-typography-2d39a6d-font-size:26px;--e-global-typography-2d39a6d-font-weight:600;--e-global-typography-83167de-font-family:"Arial";--e-global-typography-83167de-font-size:24px;--e-global-typography-83167de-font-weight:400;}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.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;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-9{--e-global-typography-3169f66-font-size:30px;--e-global-typography-2d39a6d-font-size:22px;--e-global-typography-83167de-font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* --- Desktop & Global --- */

/* --- STICKY FOOTER FIX --- */
html, body {
  height: 100%;
  margin: 0;
}

body {
  display: grid;
  grid-template-rows: auto 1fr auto; /* header, content, footer */
  min-height: 100vh;
  min-height: 100dvh;
}

.e-loop-item {
    min-width: 0 !important;
}

section[id],
div[id],
.elementor-section[id],
.elementor-container[id] {
    scroll-margin-top: 143px !important;
}

/* =========================================
   1. KACHELN & HOVER EFFEKTE
   ========================================= */
.elementor .leistung_kachel {
    position: relative;
    border-radius: 5px;
    border: 3px solid transparent !important;
    background: 
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(#ffffff, #ffffff) border-box !important;
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), background 0.3s ease;
    will-change: transform;
    pointer-events: auto !important;
    cursor: pointer;
}

.elementor .leistung_kachel a,
.elementor .leistung_kachel[data-elementor-open-lightbox],
.elementor .leistung_kachel .elementor-widget-container {
    position: relative;
    z-index: 10 !important;
    pointer-events: auto !important;
}

.elementor .leistung_kachel:hover {
    transform: scale(1.03);
    background: 
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(90deg, #AD0B36 0%, #DA053A 100%) border-box !important;
}

.elementor .leistung_kachel:hover .leistung_icon .elementor-icon {
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%);
    color: #FFFFFF !important;
}

.elementor .leistung_kachel:hover .leistung_text {
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* =========================================
   2. SLIDER GRUNDGERÜST & SPUREN
   ========================================= */
.custom-slider {
    position: relative;
    width: 100% !important;
    max-width: 100% !important; /* FIX: Verhindert den Scrollbalken auf der gesamten Seite */
    box-sizing: border-box !important;
    overflow: hidden !important; 
}

.custom-slider-track {
    display: flex !important;
    flex-wrap: nowrap !important; /* Zwingt die Bilder strikt nebeneinander */
    align-items: stretch !important;
    overflow-x: auto !important;
    width: 100% !important; 
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    box-sizing: border-box !important;
}

.custom-slider-track::-webkit-scrollbar {
    display: none;
}

.custom-slide {
    min-width: 0 !important; 
    scroll-snap-align: start !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
}

.custom-slide img {
    width: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
    border-radius: 5px 5px 0 0;
}

.custom-slide-caption {
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%);
    color: #ffffff;
    font-family: Arial, sans-serif;
    padding: 15px;
    border-radius: 0 0 5px 5px;
    box-sizing: border-box;
    height: 110px;
    line-height: 26px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis; 
    hyphens: auto;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important; 
}

/* =========================================
   3. BREAKPOINTS FÜR DEN SLIDER (1, 2 oder 3 Spalten)
   ========================================= */

/* --- MOBILE (bis 767px): 1 Spalte --- */
@media (max-width: 767px) {
    .custom-slider { padding: 0 35px !important; }
    .custom-slider-track { gap: 20px !important; }
    .custom-slide {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .custom-slide img { height: 280px !important; }
}

/* --- TABLET HOCHFORMAT (768px bis 1024px): 2 Spalten --- */
@media (min-width: 768px) and (max-width: 1024px) {
    .custom-slider { padding: 0 35px !important; } 
    .custom-slider-track { gap: 30px !important; }
    .custom-slide {
        /* Sichere Rechnung: 100% Breite abzüglich einer Lücke (30px), geteilt durch 2 */
        flex: 0 0 calc((100% - 30px) / 2) !important;
        width: calc((100% - 30px) / 2) !important;
        max-width: calc((100% - 30px) / 2) !important;
    }
    .custom-slide img { height: 300px !important; }
}

/* --- DESKTOP (ab 1025px): 3 Spalten --- */
@media (min-width: 1025px) {
    .custom-slider { padding: 0 40px !important; }
    .custom-slider-track { gap: 60px !important; }
    .custom-slide {
        /* Sichere Rechnung: 100% Breite abzüglich zwei Lücken (120px), geteilt durch 3 */
        flex: 0 0 calc((100% - 120px) / 3) !important;
        width: calc((100% - 120px) / 3) !important;
        max-width: calc((100% - 120px) / 3) !important;
    }
    .custom-slide img { height: 350px !important; }
}

/* =========================================
   4. PFEILE
   ========================================= */
.custom-slider-prev, .custom-slider-next {
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    width: auto !important; 
    height: auto !important;
    cursor: pointer;
    font-size: 45px;
    line-height: 1 !important; 
    display: inline-block !important; 
    z-index: 2;
    padding: 0;
    transition: opacity 0.3s ease;
}

.custom-slider-prev { left: 0; padding-left: 5px; }
.custom-slider-next { right: 0; padding-right: 5px; }

.custom-slider-prev:hover, .custom-slider-next:hover { 
    opacity: 0.6; 
    color: #7a082640 !important;
}

.custom-slider-prev.disabled, .custom-slider-next.disabled,
.custom-slider-prev[disabled], .custom-slider-next[disabled] {
    background: #999999 !important; 
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
    opacity: 0.3 !important;
    cursor: not-allowed !important;
    pointer-events: none;
}

/* =========================================
   5. TABS & RESTE (Dein bestehender Code)
   ========================================= */
.unterkategorie-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 40px;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0 20px;
}

.unterkategorie-tab {
    border: 2px solid #555555 !important;
    background: #FFFFFF !important;
    color: #555555 !important;
    padding: 8px 16px;
    border-radius: 20px;
    cursor: pointer;
    font-family: Arial, sans-serif;
    font-size: 14px;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
    background-clip: border-box !important;
}

.unterkategorie-tab.active,
.unterkategorie-tab:hover {
    background: 
        linear-gradient(#FFFFFF, #FFFFFF) padding-box, 
        linear-gradient(90deg, #AD0B36 0%, #DA053A 100%) border-box !important;
    border: 2px solid transparent !important;
    color: #DA053A !important;
    padding: 8px 16px;
    border-radius: 20px;
    cursor: pointer;
    font-family: Arial, sans-serif;
    font-size: 14px;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.ueberschrift_rot{
    background: -webkit-linear-gradient(90deg,#AD0B36 0%, #DA053A 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.rahmen_rot{
    background: -webkit-linear-gradient(90deg,#AD0B36 0%, #DA053A 100%);
}

.elementor-button {
  background: linear-gradient(90deg,#AD0B36 0%, #DA053A 100%) !important;
  border: none !important;
  transition: all 0.3s ease;
}

.elementor .adress_icon:hover.elementor-icon,
.elementor .adress_icon:hover .elementor-icon {
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%) !important;
}

.elementor .adress_icon:hover.elementor-icon i,
.elementor .adress_icon:hover .elementor-icon i,
.elementor .adress_icon:hover.elementor-icon svg,
.elementor .adress_icon:hover .elementor-icon svg {
    -webkit-text-fill-color: #FFFFFF !important;
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
}

.projekt_ueberschrift {
    background: #555555 !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    display: inline-block !important;
    line-height: 1.0;
}

.header_menue .elementor-nav-menu--main .elementor-item {
    color: #333333 !important;
    font-weight: 700;
    transition: all 0.3s ease !important;
}

.header_menue .elementor-nav-menu--main .elementor-item:hover,
.header_menue .elementor-nav-menu--main .elementor-item.elementor-item-active,
.header_menue .elementor-nav-menu--main .elementor-item.highlighted {
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

.header_menue .elementor-nav-menu--main .elementor-item:hover .sub-arrow,
.header_menue .elementor-nav-menu--main .elementor-item.highlighted .sub-arrow {
    color: #DA053A !important;
}

.header_menue .elementor-nav-menu--dropdown {
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0px 10px 25px rgba(0, 0, 0, 0.15) !important;
    border: none !important;
    padding: 0 !important;
    background: transparent !important;
}

.header_menue .elementor-nav-menu--dropdown li,
.header_menue .elementor-nav-menu--dropdown .elementor-item {
    background: linear-gradient(180deg, #999999 0%, #777777 100%) !important;
    transition: all 0.3s ease !important;
}

.header_menue .elementor-nav-menu--dropdown .elementor-item {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    font-weight: 600;
    padding: 12px 20px !important;
}

.header_menue .elementor-nav-menu--dropdown li:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.header_menue .elementor-nav-menu--dropdown li:hover,
.header_menue .elementor-nav-menu--dropdown li:hover > .elementor-item,
.header_menue .elementor-nav-menu--dropdown .elementor-item:hover,
.header_menue .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.header_menue .elementor-nav-menu--dropdown .elementor-item.highlighted {
    background: linear-gradient(90deg, #AD0B36 0%, #DA053A 100%) !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
}

.text_bereich {
    text-align: justify;
    hyphens: auto;
    hyphenate-limit-chars: 8 3 3; 
    hyphenate-limit-lines: 2; 
}/* End custom CSS */