/*
Theme Name:     KadenceChild
Theme URI:      n/a
Template:       kadence
Author:         Pro Author
Author URI:     n/a
Description:    Child Theme Description
Version:        1.0
License:        GNU General Public License v3.0 (or later)
License URI:    https://www.gnu.org/licenses/gpl-3.0.html
*/



 /*#######################################################################
#######################################################################*/

/* Vertikale Zentrierung der Inhalte in Kadence Tabs */
/* Nur den Tab ansprechen, der NICHT versteckt ist */
 .kt-tabs-content-wrap > .wp-block-kadence-tab[aria-hidden="false"] {
    min-height: 600px;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

/* Den inneren Container auf volle Breite halten */
 .kt-tabs-content-wrap > .wp-block-kadence-tab[aria-hidden="false"] > .kt-tab-inner-content-inner {
    width: 100%;
}



/*#######################################################################
#######################################################################*/

.image-magnifier {
    position: relative;
    display: block !important;
    cursor: crosshair;
    /* Jetzt explizit auf visible, damit die Linse überstehen darf */
    overflow: visible !important; 
    z-index: 10 !important;;
}

.image-magnifier img {
    display: block;
    width: 100%;
    height: auto;
    /* Wichtig, damit die Linse sich auf das Bild bezieht */
    pointer-events: all; 
}

.magnifier-lens {
    position: absolute;
    width: 400px;
    height: 400px;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(0,0,0,0.4);
    pointer-events: none;
    display: none;
    z-index: 9999!important;; /* Sehr hoch, damit sie über anderen Elementen schwebt */
    background-repeat: no-repeat;
    background-color: #fff;
}

/* Zeigt die Linse nur, wenn man über dem Container ist */
.image-magnifier:hover .magnifier-lens {
    display: block;
}

 /*#######################################################################
#######################################################################*/


.kb-adv-form-field select option {
    color: #000!important;
}

 /*#######################################################################
#######################################################################*/

/* =========================================================================
   CHART CONTAINER BASE (Standard: Bleibt perfekt für Kuchendiagramme)
   ========================================================================= */
   .my-chart-box { 
    position: relative;
    min-height: 500px;
    width: 100%;
    max-width: 1290px;
}

/* PURE CSS-MAGIE FÜR LINIENDIAGRAMME (Desktop)
   Erkennt die Linien automatisch anhand des data-attributs im Canvas!
*/
.my-chart-box:has([data-type="line"]),
.my-chart-box:has([data-type="line-epex"]) {
    min-height: 450px !important;
    height: 450px !important;
    max-height: 450px !important; /* Deckelt die Höhe rigoros auf Desktop */
}

/* =========================================================================
   RESPONSIVE BREAKPOINT (Mobilgeräte)
   ========================================================================= */
@media (max-width: 767px) {
    .my-chart-box {
        min-height: 600px !important; /* Mehr Platz für die Kuchen-Legende */
        max-width: 100%;
    }

    /* AUTOMATISCHE ANPASSUNG FÜR LINIENDIAGRAMME (Mobil) */
    .my-chart-box:has([data-type="line"]),
    .my-chart-box:has([data-type="line-epex"]) {
        min-height: 350px !important; 
        height: 350px !important;
        max-height: 350px !important; /* Deckelt die Höhe auf Mobile */
    }
}

/* =========================================================================
   CANVAS STYLING & FIX FOR CHART.JS INLINE STYLES
   ========================================================================= */
.custom-chart {
    display: block !important;
    filter: drop-shadow(0px 10px 12px rgba(0,0,0,0.1));
}

/* Zwingt den Canvas, sich exakt an die neue Container-Höhe anzupassen */
.my-chart-box:has([data-type="line"]) .custom-chart,
.my-chart-box:has([data-type="line-epex"]) .custom-chart {
    height: 100% !important;
}
 /*#######################################################################
#######################################################################*/



.fold-out-section {
    position: relative;
    /* Wir schalten den Standard-Hover für die Sektion quasi "blind" 
       und steuern ihn über ein Kind-Element oder Pseudo-Element */
    pointer-events: none; 
}

/* Der unsichtbare Sensor */
.fold-out-section::before {
    content: "";
    position: absolute;
    /* Zentrierung des Sensors */
    top: 50%;
    left: 50%;
    transform: translate(-80%, -80%);
    
    /* HIER DIE GRÖSSE DER HOVERZONE ANPASSEN */
    width: 200px; 
    height: 200px;
    
    /* Macht den Sensor wieder interaktiv */
    pointer-events: auto; 
    z-index: 10;
    
    /* Zum Testen kannst du background: rgba(255,0,0,0.2) nutzen */
    background: transparent; 
}

/* Die Spalte muss wieder auf Pointer-Events reagieren, damit Links darin klappen */
.fold-out-section .kt-inside-inner-col {
    pointer-events: auto;
    min-height: 300px;
    /* ... dein restlicher Code ... */
    transform: translate(calc(-100% + 150px), calc(100% - 150px));
    background-color: inherit;
    transition: transform 0.3s ease, background-color 0.3s ease;
    position: relative;
    z-index: 1;
}


/* --- DER TEXT --- */

.fold-out-text {

    opacity: 0; /* Standardmäßig unsichtbar */

    /* Letzte Definition gewinnt: 0.6s für weiches Einblenden */

    transition: opacity 0.6s ease;

}


/* --- NEUE HOVER-LOGIK --- */
/* Wir triggern den Effekt, wenn der SENSOR (::before) gehovered wird */
/* Da CSS kein "Hovering on before triggers sibling" direkt kann, 
   nutzen wir den Hover auf der Section, aber nur dort, wo der Sensor ist */

.fold-out-section:is(:hover, .hovered) .kt-inside-inner-col {
    transform: translate(0, 0);
    background-color: color-mix(in srgb, var(--global-palette1, #f59c00) 95%, transparent) !important;
}

.fold-out-section:is(:hover, .hovered) .fold-out-text {
    opacity: 1;
}

 /*#######################################################################
#######################################################################*/


.section-circle .kt-inside-inner-col {
    /* Größe deckeln */
    width: 100%;
    max-width: 450px;
  
    /* Magie: Erzwingt quadratisches Verhältnis (Breite = Höhe) */
    aspect-ratio: 1 / 1 !important;
  
    /* Zentrierung im Container */
    margin-left: auto;
    margin-right: auto;
  
    /* Falls es ein Kreis sein soll */
    border-radius: 50%;
  
    /* Flexbox, um den Inhalt im Quadrat/Kreis mittig zu halten */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  
    /* Verhindert, dass Padding das Quadrat verzieht */
    box-sizing: border-box;
    overflow: hidden;
  }
  
  /* Fallback für ältere Browser (Safari < 15) */
  @supports not (aspect-ratio: 1 / 1) {
    .section-circle .kt-inside-inner-col {
      height: 450px; /* Feste Höhe als Backup */
    }
  }


 /*#######################################################################
#######################################################################*/


/* NEU & WICHTIG: Erzwingt, dass die äußere Kadence-Spalte (die das Grid enthält) 
   keine Maximalbreite hat und 100% der verfügbaren Breite nutzt. */
.wp-block-kadence-column .kt-inside-inner-col {
    max-width: none !important;
    width: 100% !important;
}

/* 1. Stellt sicher, dass die Query Card selbst volle Breite übernimmt */
.wp-block-kadence-query-card {
    max-width: none !important;
    width: 100% !important;
}

/* 2. Stellt sicher, dass der Grid-Wrapper volle Breite annimmt */
.kb-query-grid-wrap {
    max-width: none !important; /* Entfernt jede Standard-Maximalbreite */
    width: 100% !important;
}

/* ========================================================== */
/* B. VERTICALE AUSRICHTUNG (Button Fix)                      */
/* ========================================================== */

/* 3. Listenelement (.kb-query-item): Flex-Container & 100% Höhe/Breite */
.kb-query-item {
    display: flex;
    flex-direction: column;
    height: 100%; 
    min-height: 100%;
    width: 100% !important; /* Erzwingt, dass <li> die volle Grid-Zellenbreite nutzt */
}

/* 4. Textspalte (.wp-block-kadence-column): Flex-Grow & 100% Breite */
.kb-query-item .wp-block-kadence-column {
    display: flex; 
    flex-direction: column; 
    flex-grow: 1; 
    width: 100%; 
}

/* 5. Innerer Container (.kt-inside-inner-col): Muss COLUMN bleiben */
/* (Wird hier nur zur Vollständigkeit aufgeführt, da er oben schon korrigiert wurde) */
.kb-query-item .wp-block-kadence-column .kt-inside-inner-col {
    display: flex;
    flex-direction: column; 
    height: 100%; 
    width: 100%; 
}

/* 6. Erzwinge die volle Breite für ALLE Kindelemente */
.kb-query-item .kt-inside-inner-col > * {
    width: 100%; 
    max-width: 100%;
}

/* 7. Button-Ausrichtung unten */
.kb-query-item .kb-buttons-wrap {
    margin-top: auto; 
    align-self: flex-start;
}









.wp-block-video {
     box-sizing: border-box;
    /* Setzt den Eckradius auf 15 Pixel */
    border-radius: 15px; 
    overflow: hidden;
}

.kb-svg-icon-wrap {
    z-index: 10;
}

.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap .kt-svg-icon-list-single {
    margin-right: 10px;
    padding: 8px 0;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}


/* ========================================================== */
/* BASIS-CONTAINER (SECTION) - Löst den Effekt aus             */
/* ========================================================== */
.arrow-hover-section {
  position: relative;
  overflow: visible; 
  cursor: pointer;
}

/* ========================================================== */
/* BILD-CONTAINER (KT-INSIDE-INNER-COL)                       */
/* ========================================================== */
.arrow-hover-section .kt-inside-inner-col {
    position: relative; 
}


/* ========================================================== */
/* WP-BLOCK-KADENCE-IMAGE (TARGET-ELEMENT) - STARTZUSTAND     */
/* * Beinhaltet alle Transformationen und Transitions          */
/* ========================================================== */
.arrow-hover-section .wp-block-kadence-image {
    position: relative;
    display: block; 
    width: 100%; /* Sicherstellen, dass Breite vorhanden ist */
    height: auto;
    /* Startform: Rechteck (6 Punkte für smoothe Transition) */
    clip-path: polygon(100% 0, 100% 50%, 100% 100%, 0% 100%, 0 50%, 0% 0%);
    transform: translateX(0);
    
    /* Transitions für alle synchronisierten Animationen */
    transition:
        clip-path 0.3s cubic-bezier(0.25, 1, 0.5, 1),
        transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);

    will-change: clip-path, transform;
    backface-visibility: hidden;
    z-index: 1; 
}


/* ---------------------------------------------------------- */
/* OVERLAY-DEFINITION (::after auf .wp-block-kadence-image)   */
/* ---------------------------------------------------------- */
.arrow-hover-section .wp-block-kadence-image::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* SYNCHRONISATION START: Gleiche Form und Position wie das Target-Element */
    clip-path: polygon(100% 0, 100% 50%, 100% 100%, 0% 100%, 0 50%, 0% 0%);
    transform: translateX(0);
    
    /* Farbe: Startet halbtransparent (rgba(0, 0, 0, 0.2)) */
    background-color: rgba(0, 0, 0, 0.0); 
    
    /* Transitions für alle synchronisierten Animationen */
    transition: 
        background-color 0.3s cubic-bezier(0.25, 1, 0.5, 1),
        clip-path 0.3s cubic-bezier(0.25, 1, 0.5, 1),
        transform 0.3s cubic-bezier(0.25, 1, 0.5, 1),
        border-radius 0.3s cubic-bezier(0.25, 1, 0.5, 1); /* Transition für Radius hinzufügen */

    pointer-events: none;
    z-index: 2; 
}


/* ========================================================== */
/* BILD-ELEMENT (IMG) - NUR FÜR DIE ANZEIGE                   */
/* ========================================================== */
.arrow-hover-section .wp-block-kadence-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ========================================================== */
/* TEXT-ELEMENTE (STARTZUSTAND)                               */
/* ========================================================== */
.arrow-hover-section .arrow-text-1,
.arrow-hover-section .arrow-text-2,
.arrow-hover-section .arrow-text-3 {
    transform: translateX(0); 
    transition: 
        opacity 0.3s cubic-bezier(0.25, 1, 0.5, 1), 
        transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    position: relative; 
    z-index: 3; 
}

.arrow-hover-section .arrow-text-2 {
    opacity: 1; 
}

.arrow-hover-section .arrow-text-3 {
    opacity: 0; 
}





/* ========================================================== */
/* HOVER/HOVERED-ZUSTAND (Ausgelöst durch :hover oder .hovered)*/
/* ========================================================== */

/* 1. KADENCE-IMAGE EFFEKT: Pfeil-Zuschnitt und 20% Verschiebung */
/* Hover- und .hovered-Zustand */
.arrow-hover-section:is(:hover, .hovered) .wp-block-kadence-image {
  clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 25% 50%, 0% 0%);
  border-radius: 0;
  /* Kein translateX hier, mobile/tablet = kein Verschieben */
}

/* Ab Tablet-Breite (z.B. 768px und größer) translateX anwenden */
@media (min-width: 768px) {
  .arrow-hover-section:is(:hover, .hovered) .wp-block-kadence-image {
    transform: translateX(5%);
  }
}

/* 2. OVERLAY EINBLENDEN UND SYNCHRONISIEREN */
.arrow-hover-section:is(:hover, .hovered) .wp-block-kadence-image::after {
    border-radius: 0px!important;
    /* Hintergrundfarbe auf fast volle Transparenz setzen (Ausblenden) */
    background-color: rgba(0, 0, 0, 0.0); 
    
    /* SYNCHRONISATION ENDE: Pfeil-Zuschnitt und 20% Verschiebung */
    clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 25% 50%, 0% 0%);

}


@media (min-width: 768px) {
  .arrow-hover-section:is(:hover, .hovered) .wp-block-kadence-image::after {
        transform: translateX(0%);
  }
}

/* 3. TEXT 1-EFFEKT: 30% Verschiebung nach rechts */
.arrow-hover-section:is(:hover, .hovered) .arrow-text-1 {
    transform: translateX(30%); 
}

/* 4. TEXT 2-EFFEKT: Sichtbar machen und 35% Verschiebung nach rechts */
.arrow-hover-section:is(:hover, .hovered) .arrow-text-2 {
    opacity: 1; 
    transform: translateX(0%); 
}

.arrow-hover-section:is(:hover, .hovered) .arrow-text-3 {
    opacity: 1;
    transform: translateY(-30px); 
}

 /*#######################################################################
#######################################################################*/

/* Container */
.scroll-zoom-bg {
    overflow: hidden !important;
    position: relative;
    /* Verhindert horizontales Scrollen durch Skalierung */
    touch-action: pan-y; 
}

.scroll-zoom-bg > .kt-inside-inner-col {
    position: relative;
    background-color: transparent !important;
    background-blend-mode: normal;
}

/* Das zoomende Hintergrundbild */
.scroll-zoom-bg > .kt-inside-inner-col::before {
    content: "";
    position: absolute;
    /* Kleiner Puffer gegen Blitzer an den Rändern */
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    
    background-image: inherit; 
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    
    /* Die dynamische Variable vom JS */
    transform: scale(var(--zoom-scale, 1.1));
    
    /* Performance-Booster */
    will-change: transform;
    z-index: 0;
}

/* Inhalte stabil halten */
.scroll-zoom-bg > .kt-inside-inner-col > * {
    position: relative;
    z-index: 1;
}
 /*#######################################################################
#######################################################################*/

.site-branding {
    position: relative;
    display: inline-block;
    overflow: hidden;
    will-change: transform;
    transition: transform 0.3s ease;
  }
  
  .site-branding img {
    transition: opacity 0.8s ease;
    will-change: opacity;
    display: block;
    width: 100%;
    height: auto;
  }

  .limit-section{
    max-width: 2500px !important;
  }

/* Scaling immer */
  .site-branding:hover {
    transform: scale(1);
  }


/*
.current-menu-item {
    transform: scale(1); 
    font-weight: 700; 
    will-change: transform;
    transition: transform 0.3s ease, font-weight 0.3s ease;
}*/

.menu-item {
    will-change: transform;
    transition: transform 0.3s ease;
}

.menu-item:hover {
    transform: scale(1); /* Vergrößert das Element beim Hover */
}

.current-menu-item:hover {
    transform: scale(1); /* Damit es sich nicht verkleinert */
}


/* Ab Tablet-Größe (bis max. 1024px) kein Scaling oder Hover */
@media (max-width: 1024px) {
    .menu-item,
    .menu-item:hover,
    .current-menu-item,
    .current-menu-item:hover {
        transform: none;
        transition: none;
    }

    .current-menu-item {
        font-size: 19px;
        font-weight: 700;
    }
}

 /*#######################################################################
#######################################################################*/
.hyphination{
    hyphens: auto;
}

.hero-headline {
  /* Erlaubt die Trennung NUR an Stellen, an denen ein &shy; gesetzt wurde */
  -webkit-hyphens: manual;
  hyphens: manual;
  
  /* Falls das Wort trotz Trennung auf extrem kleinen Screens zu lang ist, 
     verhindert das hier ein unschönes Herausragen aus dem Container: */
  word-wrap: break-word; 
}
 /*#######################################################################
#######################################################################*/



 /*#######################################################################
#######################################################################*/

:root {
    --line-thickness-ehinger: 6px; 

    --line-len-ehinger-long-inner: 20px; 
    --line-len-ehinger-short-inner: 15px; 

    --line-len-ehinger-long-outer: 23px; 
    --line-len-ehinger-short-outer: 18px; 

    --pos-y-line-1-ehinger : 25%;
    --pos-y-line-2-ehinger  : 50%;
    --pos-y-line-3-ehinger : 75%;

    --pos-inner-line-ehinger :100%;
    --pos-outer-line-ehinger :97%;
}


/* TEXT nach vorne ziehen */
.kb-button .kt-btn-inner-text {
  position: relative;
  padding-left: 20px;
  padding-right: 20px;
  
  z-index: 3 !important;
  display: inline-block;
  transition: transform 0.5s ease;
  will-change: transform;
}


.kb-button:hover .kt-btn-inner-text,
.kb-button.is-active .kt-btn-inner-text{
  transform: scale(1.03);
}


/*  links nach rechts
.kb-button, .header-button {
    position: relative;
    display: inline-flex;
    z-index: 1;
    overflow: hidden; 
}

.kb-button::after, .header-button::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0; 
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;

    background-image: 
        linear-gradient(to right, #ffffff, #ffffff),
        linear-gradient(to right, #ffffff, #ffffff),
        linear-gradient(to right, #ffffff, #ffffff);
    
    background-repeat: no-repeat;
    background-size: 0% 11%;
    background-position: 92% 20%, 95% 50%, 92% 80%;
    transition: background-size 0.3s ease, background-position 0.3s ease;
}

/* 
.kb-button:hover::after, .header-button:hover::after {
    background-size: 8% 11%;
    background-position: 100% 20%, 103% 50%, 100% 80%;
}
*/

/* Beide Button-Typen auswählen */
.kb-button, .header-button {
    position: relative;
    display: inline-flex;
    z-index: 1;
    overflow: hidden; 
}

/* Gemeinsames ::after für die weißen Linien im Button */
.kb-button::after, .header-button::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0; 
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;

    background-image: 
        linear-gradient(to right, #ffffff 50%, #ffffff 50%),
        linear-gradient(to right, #ffffff 50%, #ffffff 50%),
        linear-gradient(to right, #ffffff 50%, #ffffff 50%);
    
    background-repeat: no-repeat;
    background-size: 0% var(--line-thickness-ehinger);
    background-position: var(--pos-inner-line-ehinger) var(--pos-y-line-1-ehinger) , var(--pos-inner-line-ehinger) var(--pos-y-line-2-ehinger), var(--pos-inner-line-ehinger) var(--pos-y-line-3-ehinger);
    transition: background-size 0.3s ease;
}

/* Hover-Zustand für beide (Länge basiert auf em -> Buttonhöhe) */
.kb-button:hover::after, .header-button:hover::after, .kb-button.is-active::after {
    background-size: var(--line-len-ehinger-long-inner) var(--line-thickness-ehinger), var(--line-len-ehinger-short-inner) var(--line-thickness-ehinger), var(--line-len-ehinger-long-inner) var(--line-thickness-ehinger);
}

/* --- EXTERNE ORANGENE LINIEN --- */

.kb-lines-outer {
    position: absolute;
    pointer-events: none;
    overflow: visible;
}

.kb-lines-outer::after {
    content: "";
    position: absolute;
    top: 0;
    left: var(--pos-outer-line-ehinger); 
    width: 100%;
    height: 100%;
    background-image: 
        linear-gradient(to right, #f59c00, #f59c00),
        linear-gradient(to right, #f59c00, #f59c00),
        linear-gradient(to right, #f59c00, #f59c00);
    background-repeat: no-repeat;
    background-position: 0% var(--pos-y-line-1-ehinger) , 0% var(--pos-y-line-2-ehinger), 0% var(--pos-y-line-3-ehinger);
    background-size: 0% var(--line-thickness-ehinger);
    transition: background-size 0.3s ease-out;
}

/* Wenn gehovered */
.kb-lines-outer.is-active:after {
        background-size: var(--line-len-ehinger-long-outer) var(--line-thickness-ehinger), var(--line-len-ehinger-short-outer) var(--line-thickness-ehinger), var(--line-len-ehinger-long-outer) var(--line-thickness-ehinger);

}



/* Button-Style Secondary - Basis-Setup */
.button-style-secondary {
    position: relative;
    display: inline-flex;
    z-index: 1;
    overflow: hidden; 
}

/* Orange Linien im Secondary-Button */
.button-style-secondary::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0; 
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;

    /* Farbe zu Orange gewechselt */
    background-image: 
        linear-gradient(to right, #f59c00, #f59c00),
        linear-gradient(to right, #f59c00, #f59c00),
        linear-gradient(to right, #f59c00, #f59c00);
    
    background-repeat: no-repeat;
    background-size: 0% var(--line-thickness-ehinger);
    /* Mathematische Kompensation für Wachstum nach rechts */
    background-position: var(--pos-inner-line-ehinger) var(--pos-y-line-1-ehinger), var(--pos-inner-line-ehinger) var(--pos-y-line-2-ehinger), var(--pos-inner-line-ehinger) var(--pos-y-line-3-ehinger);
    transition: background-size 0.3s ease, background-position 0.3s ease;
}

/* Hover-Zustand für Secondary-Button */
.button-style-secondary:hover::after, .button-style-secondary.is-active::after  {
   background-size: var(--line-len-ehinger-long-inner) var(--line-thickness-ehinger), var(--line-len-ehinger-short-inner) var(--line-thickness-ehinger), var(--line-len-ehinger-long-inner) var(--line-thickness-ehinger);
    background-position: var(--pos-inner-line-ehinger) var(--pos-y-line-1-ehinger), var(--pos-inner-line-ehinger) var(--pos-y-line-2-ehinger), var(--pos-inner-line-ehinger) var(--pos-y-line-3-ehinger);
}



/* --- EXTERNE WEISSE LINIEN (für Secondary) --- */

.kb-lines-outer-secondary {
    position: absolute;
    pointer-events: none;
    overflow: visible;
}

.kb-lines-outer-secondary::after {
    content: "";
    position: absolute;
    top: 0;
    left: var(--pos-outer-line-ehinger); 
    width: 100%;
    height: 100%;
    /* Farbe zu Weiß gewechselt */
    background-image: 
        linear-gradient(to right, #ffffff, #ffffff),
        linear-gradient(to right, #ffffff, #ffffff),
        linear-gradient(to right, #ffffff, #ffffff);
    background-repeat: no-repeat;
    background-position: 0% var(--pos-y-line-1-ehinger), 0% var(--pos-y-line-2-ehinger), 0% var(--pos-y-line-3-ehinger);
    background-size: 0% var(--line-thickness-ehinger);
    transition: background-size 0.3s ease-out;
}

/* Wenn gehovered (Klasse wird vermutlich via JS an den Container vergeben) */
.kb-lines-outer-secondary.is-active::after {
 background-size: var(--line-len-ehinger-long-outer) var(--line-thickness-ehinger), var(--line-len-ehinger-short-outer) var(--line-thickness-ehinger), var(--line-len-ehinger-long-outer) var(--line-thickness-ehinger);
}
 /*#######################################################################
#######################################################################*/
/* Background Muster */

.pattern-bg > .kt-inside-inner-col {
    position: relative;
    overflow: hidden;
    z-index: 5;
    /* Um zuu verhindern, dass  beim Hovern des svgs durch txt hindurchgeschienen wird, z-index erhöhen. evtl eigenen abschnitt mit hohem z-index */
  }
  
  .pattern-bg > .kt-inside-inner-col::before {
    content: '';
    position: absolute;
    inset: 0;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    pointer-events: none;
    z-index: 0;
    /* Masken-Eigenschaft */
    mask-image: var(--pattern-mask, radial-gradient(circle, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 0px));
    -webkit-mask-image: var(--pattern-mask, radial-gradient(circle, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 0px));
    transition: mask-image 0.5s linear;
    will-change: mask-image;
  }

/* pattern Varianten 1 bis 20 */
.pattern-bg.pattern-1  > .kt-inside-inner-col::before { background-image: url('https://zimmerei-rudolf.com/wp-content/uploads/2025/05/wood-pattern-1.svg'); }
.pattern-bg.pattern-2  > .kt-inside-inner-col::before { background-image: url('https://zimmerei-rudolf.com/wp-content/uploads/2025/05/wood-pattern-2.svg'); }




.logo-bg > .kt-inside-inner-col {
    position: relative;
    overflow: hidden;
  }
  
  .logo-bg > .kt-inside-inner-col::before {
    content: '';
    position: absolute;
    inset: 0;

    background-image: url('https://zimmerei-rudolf.com/wp-content/uploads/2025/05/icon-schwarz.svg');
    background-size: contain;
    background-position: 50% 50%;
    background-attachment: scroll;
    background-repeat: no-repeat;
    pointer-events: none;

      /* Masken-Eigenschaft */
    mask-image: var(--pattern-mask, radial-gradient(circle, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 0px));
    -webkit-mask-image: var(--pattern-mask, radial-gradient(circle, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 0px));
  
    transition: mask-image 0.5s linear;
    will-change: mask-image;
  }

 /*#######################################################################
#######################################################################*/

.icon-card {
    position: relative; /* Falls nötig, um inneres Target zu positionieren */
}

.icon-zoom {
    transition: transform 0.3s ease; /* Sanfte Übergangsanimation */
    display: inline-block; /* Kann angepasst werden je nach Layout */
    will-change: transform;
    overflow: hidden; /* Verhindert, dass das Bild über den Container hinaus wächst */
}

.icon-card:hover .icon-zoom,
.icon-card.hovered .icon-zoom {
    transform: scale(1.15) 
}
/*#######################################################################
#######################################################################*/
.zoom-container {
    transition: transform 0.3s ease; /* Sanfte Übergangsanimation */
    will-change: transform;
    overflow: hidden; /* Verhindert, dass das Bild über den Container hinaus wächst */
}

.zoom-container:hover
{
    transform: scale(1.075); /* Vergrößert den Container um 2% */
}


.zoom-container-block {
    display: block;
    transition: transform 0.3s ease; /* Sanfte Übergangsanimation */
    will-change: transform;
}

.zoom-container-block:hover
{
    transform: scale(1.075); /* Vergrößert den Container um 2% */
}

 /*#######################################################################
#######################################################################*/

.zoom-background {
    position: relative;
    overflow: hidden;
   /*  border-radius: 15px; Rundungen hier setzen */
}

.zoom-background > .kt-inside-inner-col {
    position: relative;
    z-index: 1;
    overflow: hidden;    /* verhindert dass Kinder außerhalb sichtbar sind */
}

/* Hintergrundbild */
.zoom-background > .kt-inside-inner-col::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-size: cover;
    background-position: center;
    background-image: inherit;
    transition: transform 0.3s ease;
    z-index: -2;
    /* KEIN border-radius hier */
}

/* Overlay */
.zoom-background > .kt-inside-inner-col::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.0);
    transition: background 0.5s ease;
    z-index: -1;
}

/* Hover-Effekt */
.zoom-background:hover > .kt-inside-inner-col::before,
.zoom-background.hovered > .kt-inside-inner-col::before {
    transform: scale(1.05);
    will-change: transform;
}

.zoom-background:hover > .kt-inside-inner-col::after,
.zoom-background.hovered > .kt-inside-inner-col::after {
    background: rgba(0, 0, 0, 0.0);
}


.zoom-background-text {
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none; /* Verhindert Interaktion wenn unsichtbar */
  z-index: 10;
}

.zoom-background:hover .zoom-background-text,
.zoom-background.hovered .zoom-background-text {
  opacity: 1;
  pointer-events: auto; /* Aktiviert Interaktion */
}


 /*#######################################################################
#######################################################################*/

/* Text, der sichtbar wird */
.text-visible {
  position: absolute;
   padding-top: 20px;
  padding-left: 5px;
   padding-right: 5px;
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

@media (max-width: 1025px) {
    .text-visible {
        /* Setzt die Position auf relative, damit das Element im normalen Flow liegt */
        /* Absolute Positionierung wird entfernt */
        position: relative; 
        opacity: 1; 
    
        /* Transition auf sehr schnell setzen oder ganz entfernen, da es immer aktiv ist */
        transition: none; 
        pointer-events: auto;
    }
    
 
}


 .text-visible.is-active {
  opacity: 1;
  transition: opacity 1s ease;
  pointer-events: auto;
}

.background-glow-up .kt-inside-inner-col::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Standard: Dunkles Overlay (40% Schwarz) */
    background-color: rgba(0, 0, 0, 0.2); 
    
    transition: background-color 0.4s ease;
    z-index: 2; 
}

.background-glow-up.is-active .kt-inside-inner-col::after {
    /* Overlay wird transparent und das Bild wird heller */
    background-color: rgba(0, 0, 0, 0); 
}



/* Alle direkten Kinder (Texte, Buttons etc.) nach vorne holen */
.background-darken-down .kt-inside-inner-col > * {
    position: relative;
    z-index: 3; /* Höher als das Overlay */
}

/* Basis-Zustand: Abdunklung nach unten */
.background-darken-down .kt-inside-inner-col::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Verlauf: Oben transparent, ab 30% beginnt die Verdunklung, unten 60% Schwarz */    
    transition: background-color 0.4s ease;
    z-index: 2; 
    pointer-events: none;
}

/* Hover-Zustand: Die Verdunklung verschwindet sanft */
.background-darken-down.is-active .kt-inside-inner-col::after{
    background: linear-gradient(to bottom, 
    rgba(0, 0, 0, 0) 0%, 
    rgba(0, 0, 0, 0.6) 100%); 

}

/* Wenn das übergeordnete Element gehoved wird, wird der Text sichtbar */
.card-visible-header {
  position: absolute;
  bottom: -15px; /* fixer Abstand vom Kartenboden, passe nach Wunsch an */
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.5s ease;
  hyphens: auto;
  min-height: 40px !important; 
  /* Damit der Text bei Bedarf getrennt wird */
}

.card-visible {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.2s ease, transform 0.5s ease;
  hyphens: auto;
  min-height: 60px !important; 
  /* Textumbruch mit Silbentrennung */
  position: relative; /* falls noch nicht gesetzt */
}

/* Hover auf Eltern-Element (z.B. .zoom-background) */
.card-visible-header.is-active,
.card-visible-header.is-active {
  transform: translateY(-70px); /* Fährt 100px nach oben */
}

.card-visible.is-active,
.card-visible.is-active {
  opacity: 1;
  transform: translateY(-20px); /* Fahrt ebenfalls nach oben, hier 50px als Beispiel */
}





 /*#######################################################################
#######################################################################*/

.animated-underline {
    position: relative;
    display: inline-block;
    padding-bottom: 12px;
  }
  
  .animated-underline::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 200px;
    height: 6px;
    background-color: var(--global-palette5, #000);
    transition: width 0.4s ease;
    will-change: width;
    display: block; /* wichtig für Fallbacks */
  }
  
/* animated underline bei Hover oder JS-Hover */
.animated-underline:hover::after,
.animated-underline.hovered::after,
.card-focused:hover .animated-underline::after {
  width: 275px;
}


/*#######################################################################
#######################################################################*/

/*glow lines for borders   glow line is drawn and can disappear */
   
.bar {
    position: absolute;
    height: var(--bar-thickness, 4px);
    background: linear-gradient(
        90deg,
        var(--bar-color-1, #d0f0dd), /* Fallback default */
        var(--bar-color-2, #d0f0dd)  /* Fallback default */
    );
    border-radius: 0px;
    animation-timing-function: cubic-bezier(0.3, 0.4, 0.3, 1);
    animation-duration: var(--bar-speed, 2s);
    animation-fill-mode: forwards;
    animation-iteration-count: var(--iteration-count, 1);
    opacity: 0; /* Initially hide the element */
    animation-play-state: paused; /* Initially pause the animation */
    will-change: transform, opacity;
    transform-origin: left; /* Set the origin for scaling */
    width: 100%;
    transform: scaleX(0); /* Start scaled down */
}

.top {
    top: 0;
    left: 0;
}

.bottom {
    bottom: 0;
    left: 0;
}

@keyframes top-animation {
    0%   { transform: scaleX(0); opacity: 1; }
    50%  { transform: scaleX(1); opacity: 1; }
    100% { transform: scaleX(0); opacity: 1; }
}

@keyframes bottom-animation {
    0%   { transform: scaleX(0); opacity: 1; }
    50%  { transform: scaleX(1); opacity: 1; }
    100% { transform: scaleX(0); opacity: 1; }
}

@keyframes expand {
    0%   { transform: scaleX(0); opacity: 1; }
    100% { transform: scaleX(1); opacity: 1; }
}



/*#######################################################################
#######################################################################*/
 
.bigger-z {
    position: relative;  /* Damit der z-index wirkt */
    z-index: 10;         /* Höherer z-index als das Hintergrund-SVG */
  }

/*#######################################################################
#######################################################################*/


 /*#######################################################################
#######################################################################*/

/* Container für das Bild mit rotem Rand */
.zoom-in-red-border {
    position: relative;
    will-change: transform;
    overflow: hidden;
    border-radius: 50px 0 50px 0;
    border: 20px solid #F2295B;
  }


  
  /* Container für das Bild mit grauem Rand */
  .zoom-in-grey-border {
    position: relative;
    will-change: transform;
    overflow: hidden;
    border-radius: 50px 0 50px 0;
    border: 20px solid #1E2633;
  }
  
  
  /* Auf Tablets und Mobilgeräten Randstärke halbieren */
  @media (max-width: 1024px) { /* Tablet und kleiner */
    .zoom-in-red-border,
    .zoom-in-grey-border {
      border-width: 10px;
    }
  }
  
  /* Container für das Bild ohne Rand */
  .zoom-in-no-border {
    position: relative;
	border-radius: 15px;
    will-change: transform;
    overflow: hidden;
    border: none;
    
    
    /* Um das Inline-Block-Element im Elternelement zu zentrieren */
  }

  /* Container für das Bild ohne Rand */
  .zoom-in {
    display: inline-block; 
    
    position: relative;
    will-change: transform;
    overflow: hidden;
    border: none;
    
    /* Um das Inline-Block-Element im Elternelement zu zentrieren */
  }
  
  /* Pseudo-Element für den Overlay */
  .zoom-in-red-border::before,
  .zoom-in-grey-border::before,
  .zoom-in-no-border::before {
    content: '';
    position: absolute;
	border-radius: 15px;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.10);
    transition: opacity 0.4s ease-in-out;
    z-index: 1;
  }

  /* Pseudo-Element für den Overlay */

.zoom-in::before
 {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    transition: opacity 0.4s ease-in-out;
    z-index: 1;
  }
  
  /* Bild-Styling */
  .zoom-in-red-border img,
  .zoom-in-grey-border img,
	.zoom-in img,
  .zoom-in-no-border img {
    width: 100%;
    height: 100%;
    transition: transform 0.4s ease-in-out;
    z-index: 0;
  }
  
/* Zoom-Effekt beim Hover oder JS-Hover */
.zoom-in-red-border:hover img,
.zoom-in-red-border.hovered img,
.zoom-in-grey-border:hover img,
.zoom-in-grey-border.hovered img,
.zoom-in:hover img,
.zoom-in.hovered img,
.zoom-in-no-border:hover img,
.zoom-in-no-border.hovered img,
.card-focused:hover .zoom-in-red-border img,
.card-focused:hover .zoom-in-grey-border img,
.card-focused:hover .zoom-in-no-border img {
  transform: scale(1.1);
}

/* Overlay entfernen bei Hover oder JS-Hover */
.zoom-in-red-border:hover::before,
.zoom-in-red-border.hovered::before,
.zoom-in-grey-border:hover::before,
.zoom-in-grey-border.hovered::before,
.zoom-in:hover::before,
.zoom-in.hovered::before,
.zoom-in-no-border:hover::before,
.zoom-in-no-border.hovered::before
{
  opacity: 0;
}

   /*#######################################################################
#######################################################################*/
  /* verändert ein square image, zu 2:1 in Mobil-Mode */
/* Verändert quadratische und landscape-Bilder zu 2:1 im Mobilmodus */
@media screen and (max-width: 1024px) {
    .wp-block-kadence-image.mobile-wide .kb-image-ratio-square,
    .wp-block-kadence-image.mobile-wide .kb-is-ratio-image,
    .wp-block-kadence-image.mobile-wide .kb-image-ratio-land43,
    .wp-block-kadence-image.mobile-wide .kb-image-ratio-land32 {
      padding-bottom: 50%; /* 2:1 Verhältnis */
    }
  }

@media screen and (min-width: 768px) and (max-width: 1024px) {
    /* * Die Klasse .tablet-high greift nur in diesem Breitenbereich.
     * Das Verhältnis 1:2 (200% padding-bottom) wird angewendet.
     */
    .wp-block-kadence-image.tablet-high .kb-image-ratio-square,
    .wp-block-kadence-image.tablet-high .kb-is-ratio-image,
    .wp-block-kadence-image.tablet-high .kb-image-ratio-land43,
    .wp-block-kadence-image.tablet-high .kb-image-ratio-land32,
    .wp-block-kadence-image.tablet-high .kb-image-ratio-port43,
    .wp-block-kadence-image.tablet-high .kb-image-ratio-port32 {
        /* Setzt das hohe Verhältnis auf 1:2 (200%) */
        padding-bottom: 200%; 
    }
}

  @media screen and (max-width: 1024px) {
    /* * Erzwingt das vertikale (hohe) Seitenverhältnis nur für Bilder mit der Klasse .mobile-high
     * Wir zielen auf alle Ratio-Klassen ab, um die Einstellung zu überschreiben.
     */
    .wp-block-kadence-image.mobile-high .kb-image-ratio-square,
    .wp-block-kadence-image.mobile-high .kb-is-ratio-image,
    .wp-block-kadence-image.mobile-high .kb-image-ratio-land43,
    .wp-block-kadence-image.mobile-high .kb-image-ratio-land32,
    .wp-block-kadence-image.mobile-high .kb-image-ratio-port43,
    .wp-block-kadence-image.mobile-high .kb-image-ratio-port32 {
        /* * Setzt das Verhältnis auf 1:2 (Breite:Höhe)
         * Berechnung: (Höhe / Breite) * 100 = (2 / 1) * 100 = 200%
         */
        padding-bottom: 200%; 
    }
}
  /*#######################################################################
#######################################################################*/
/* Link Styles*/

  .link-zoom {
    position: relative;
    align-items: center;
    text-decoration: none; /* Kein Unterstrich */
    will-change: transform;
    transition: transform 0.3s ease; /* Sanfte Zoom-Animation */
}

/* Entfernt die Unterstreichung auch für das <a>-Element im Inneren */
.link-zoom a {
    text-decoration: none;
}

/* Hover-Effekt mit Zoom und Verschiebung nach rechts */
.link-zoom:hover {
    transform: scale(1.03) translateX(7px); /* Vergrößerung um 3% und 5px nach rechts */
}


.link-no-underline a {
    text-decoration: none;
}


/* Basisstil für den Link */
.link-with-arrow {
    position: relative;
    display: inline;
    align-items: center;
    margin-left: auto;
    text-decoration: none;
    color: black;
}

/* Pfeil als SVG-Hintergrund */
.link-with-arrow::after {
    content: "";
    display: inline-block;
    width: 30px; /* Standardbreite */
    height: 30px; /* Standardhöhe */
	/* stroke und fillfarbe angeben bspw weiß: %23FFFFFF */
   background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="69" height="26" viewBox="0 0 69 26" fill="none"><path d="M55 14H5C4 14 3 13 3 12.5C3 12 4 11 5 11H55L48 4C47 3 47 2 48 1C49 0 50 0 51 1L61 11C61.5 11.5 62 12 62 12.5C62 13 61.5 13.5 61 14L51 24C50 25 49 25 48 24C47 23 47 22 48 21L55 14Z" fill="%23000000" stroke="%23000000" stroke-width="0"/></svg>');
    background-repeat: no-repeat;
    background-size: contain;
    margin-left: 10px; /* Weiter nach rechts */
    vertical-align: top;
	margin-top: 5px;
 
    transition: transform 0.3s ease-out, width 0.3s ease-out;
}

/* Hover-Effekt */
.link-with-arrow:hover::after {
    transform: translateX(20px);
}


/* Basisstil für den weißen Link */
.link-with-arrow.white {
    color: #fff; /* Weiß für den Text */
     
}


/* Weißer Pfeil als SVG-Hintergrund */
.link-with-arrow.white::after {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="69" height="26" viewBox="0 0 69 26" fill="none"><path d="M55 14H5C4 14 3 13 3 12.5C3 12 4 11 5 11H55L48 4C47 3 47 2 48 1C49 0 50 0 51 1L61 11C61.5 11.5 62 12 62 12.5C62 13 61.5 13.5 61 14L51 24C50 25 49 25 48 24C47 23 47 22 48 21L55 14Z" fill="%23FFFFFF" stroke="%23FFFFFF" stroke-width="3"/></svg>');
    margin-left: 10px; /* Weiter nach rechts */
    margin-top: 15px; /* Weiter nach unten */
}



/* Der Trigger-Container */
.hover-underline {
    cursor: pointer;
    text-decoration: none !important;
}

/* Ziel: .kb-adv-text-inner ODER der Advanced Heading Block (wenn kein Icon drin ist) */
.hover-underline .kb-adv-text-inner,
.hover-underline .wp-block-kadence-advancedheading:not(:has(.kb-svg-icon-wrap)) {
    position: relative;
    display: inline-block; /* Sorgt dafür, dass die Linie nur so lang wie der Text ist */
    color: inherit;
    text-decoration: none !important;
}

/* Die Linie für die validen Ziele */
.hover-underline .kb-adv-text-inner::after,
.hover-underline .wp-block-kadence-advancedheading:not(:has(.kb-svg-icon-wrap))::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 2px;
    bottom: -1px;
    left: 0;
    background-color: currentColor; /* Erbt die Textfarbe */
    
    /* Animation-Setup */
    transform: scaleX(0);
    transform-origin: bottom left;
    transition: transform 0.3s ease-out;
}

/* Trigger bei Hover über den Container */
.hover-underline:hover .kb-adv-text-inner::after,
.hover-underline:hover .wp-block-kadence-advancedheading:not(:has(.kb-svg-icon-wrap))::after {
    transform: scaleX(1);
}

/*menu gedöns*/
/* Subnavigation: Link wirklich nur so breit wie der Text */
.kb-navigation ul .kb-nav-link-content {
    width: fit-content !important;
    display: inline-block !important;
    flex: 0 0 auto !important;
}
/* Alle Kadence Navigationslinks */
.kb-navigation .kb-nav-link-content {
    text-decoration: none !important;

    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0 2px;

    transition: background-size 0.3s ease-out;
}

/* Hover */
.kb-navigation .kb-nav-link-content:hover {
    background-size: 100% 2px;
}

/* Subnavigation: nur Textbreite */
.kb-navigation ul .kb-nav-link-content {
    width: fit-content !important;
    display: inline-block !important;
    flex: 0 0 auto !important;
}
/* Hauptmenü: aktiven Bereich per JavaScript bestimmen */
.wp-block-kadence-navigation.is-horizontal
> nav > .menu-container
> .kb-navigation.menu-context-ready
> .menu-item
> .kb-link-wrap
> .kb-nav-link-content {
    background-size: 0% 2px !important;
}

/* Gewählter Bereich sowie Hover und Tastaturfokus */
.wp-block-kadence-navigation.is-horizontal
> nav > .menu-container
> .kb-navigation.menu-context-ready
> .menu-item
> .kb-link-wrap
> .kb-nav-link-content:is(:hover, :focus-visible),

.wp-block-kadence-navigation.is-horizontal
> nav > .menu-container
> .kb-navigation.menu-context-ready
> .menu-item.is-active-menu-context
> .kb-link-wrap
> .kb-nav-link-content {
    background-size: 100% 2px !important;
}

/*menu gedöns ende*/


/* Versteckt das Element auf Mobilgeräten und Tablets */
@media (max-width: 768px) {
    .mobil_invisible{
        display: none !important;
    }
}

 /*#######################################################################
 Row Layout Expand
#######################################################################*/

@media (min-width: 1024px) {

  /* --- 1. Container-Regeln --- */
  .kb-hover-flex-expand > .kt-row-column-wrap {
    display: flex !important;
    flex-wrap: wrap; 
    gap: var(--global-kb-gap-none, 0rem);
  }

  /* --- 2. Standard-Spalten-Regeln (NUR DIREKTE KINDER) --- */
  .kb-hover-flex-expand > .kt-row-column-wrap > .wp-block-kadence-column {
    flex: 1 1 0; /* Die normale, kleine Größe */
    transition: flex-grow 0.4s ease, transform 0.4s ease;
    will-change: flex-grow, transform;
    margin-left: -0.5px;
    margin-right: -0.5px;
    z-index: 0; 
  }

  /* --- 3. Aktiver/Vergrößerter Zustand (NUR DIREKTE KINDER) --- */
  /* Behält den Zustand (is-active) und sorgt für sofortige Reaktion beim Hover */
  .kb-hover-flex-expand > .kt-row-column-wrap > .wp-block-kadence-column.is-active,
  .kb-hover-flex-expand > .kt-row-column-wrap > .wp-block-kadence-column:hover {
    flex-grow: 3.5 !important; /* Erzwingt die Vergrößerung */
    z-index: 1 !important; /* Bringt die aktive Spalte nach vorne */
    margin-left: -0.5px;
    margin-right: -0.5px;
  }
}

 /*#######################################################################
#######################################################################*/



  /*#######################################################################################
    Gallery
  /*#######################################################################################*/
.kadence-blocks-gallery-item {
  overflow: hidden;
  position: relative;
  border-radius: 15px; /* <- Border-Radius auf den Container */
}

.kadence-blocks-gallery-item img {
  will-change: transform, filter, opacity;
  transition: transform 0.3s ease-in-out, filter 0.3s ease-in-out, opacity 0.3s ease-in-out;
  opacity: 1;
  filter: blur(0px);
  z-index: 1;
  border-radius: 0; /* <- Radius entfernen */
}

.kadence-blocks-gallery-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: scale(0.95);
  background-color: rgba(0, 0, 0, 0.0);
  transition: opacity 0.3s ease-in-out;
  pointer-events: none;
  z-index: 2;
  border-radius: inherit; /* <- übernimmt den Radius */
}

.kadence-blocks-gallery-item:hover img {
  transform: scale(1.00);
  opacity: 1;
  filter: blur(0px);
}

.kadence-blocks-gallery-item:hover::before {
  opacity: 0;
}

  /*#######################################################################################*/
/*#######################################################################################*/

.only-text-width{
       display: inline-block;
    width: auto !important;
    max-width: fit-content;
}


/* Den Kadence-Standard-Unterstrich der ersten Ebene aktiv halten, wenn ein Kind aktiv ist */
.wp-block-kadence-header-desktop .wp-block-kadence-navigation > nav > .menu-container > ul.menu > li.current-menu-ancestor > .kb-link-wrap > .kb-nav-link-content::after,
.wp-block-kadence-header-desktop .wp-block-kadence-navigation > nav > .menu-container > ul.menu > li.current-menu-parent > .kb-link-wrap > .kb-nav-link-content::after {
    opacity: 1 !important;
    visibility: visible !important;
    transform: scaleX(1) !important;
}

/* Globaler Fix: Textfarbe bei allen Tabellen-Zeilen auf Weiß setzen, wenn man darüber hovert */
.kb-table tr:hover td,
.kb-table tr:hover td p,
.kb-table tr:hover td strong {
    color: #ffffff !important;
}


.wp-block-kadence-header.header-desktop-sticky .item-is-stuck:not(.kb-header-row-layout-contained) {
 
    border-bottom: black 1px solid;
}


.block.iframe-storungsauskunft iframe {
    border: 0;
    width: 100%;
    height: 300px;
}


/*kein cooler button fürs menü - schaaaaade!*/
/* ==========================================================
   HEADER: Custom Button-Effekte deaktivieren
   ========================================================== */

/* Keine animierten Linien IM Button */
.wp-block-kadence-header :is(
    .kb-button,
    .header-button,
    .button-style-secondary
)::after {
    content: none !important;
    background-image: none !important;
}

/* Keine äußeren Linien */
.wp-block-kadence-header :is(
    .kb-lines-outer,
    .kb-lines-outer-secondary
) {
    display: none !important;
}

/* Kein Text-Zoom / keine zusätzliche Animation */
.wp-block-kadence-header :is(
    .kb-button,
    .header-button,
    .button-style-secondary
) .kt-btn-inner-text {
    transform: none !important;
    transition: none !important;

    /* deine globalen +20px wieder raus */
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Sicherheit für Hover / Active */
.wp-block-kadence-header :is(
    .kb-button:hover,
    .kb-button.is-active,
    .header-button:hover,
    .button-style-secondary:hover,
    .button-style-secondary.is-active
) .kt-btn-inner-text {
    transform: none !important;
}

/* ==========================================================
   TOPBAR: Underline-Effekt für die kleinen Header-Buttons
   ========================================================== */

.wp-block-kadence-header-row-top
.kb-button
.kt-btn-inner-text {
    display: inline-block;
	font-size: 16px !important;
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0 2px;

    transition: background-size 0.3s ease-out !important;
}


/* Hover */
.wp-block-kadence-header-row-top
.kb-button:hover
.kt-btn-inner-text {
    background-size: 100% 2px;
}


/* Tastatur-Fokus */
.wp-block-kadence-header-row-top
.kb-button:focus-visible
.kt-btn-inner-text {
    background-size: 100% 2px;
}

/* ==========================================================
   FOOTER – einheitlicher Underline Hover
   ========================================================== */

/* Alte hover-underline-Pseudolinie NUR im Footer deaktivieren */
.footer-underlines .hover-underline .kb-adv-text-inner::after,
.footer-underlines .hover-underline
.wp-block-kadence-advancedheading:not(:has(.kb-svg-icon-wrap))::after {
    content: none !important;
}


/* Navigation + Advanced Headings */
.footer-underlines .kb-navigation .kb-nav-link-content,
.footer-underlines .kb-advanced-heading-link .kb-adv-text-inner,
.footer-underlines
.kb-advanced-heading-link
.wp-block-kadence-advancedheading:not(:has(.kb-adv-text-inner)) {

    display: inline-block !important;
    width: fit-content !important;

    text-decoration: none !important;

    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0 2px;

    transition: background-size 0.3s ease-out;
}


/* Hover – Navigation */
.footer-underlines
.kb-navigation
.kb-nav-link-content:hover {
    background-size: 100% 2px;
}


/* Hover – Advanced Heading Links mit Icon */
.footer-underlines
.kb-advanced-heading-link:hover
.kb-adv-text-inner {
    background-size: 100% 2px;
}


/* Hover – Advanced Heading Links ohne Icon */
.footer-underlines
.kb-advanced-heading-link:hover
.wp-block-kadence-advancedheading:not(:has(.kb-adv-text-inner)) {
    background-size: 100% 2px;
}


/* Tastatur */
.footer-underlines
.kb-navigation
.kb-nav-link-content:focus-visible,

.footer-underlines
.kb-advanced-heading-link:focus-visible
.kb-adv-text-inner,

.footer-underlines
.kb-advanced-heading-link:focus-visible
.wp-block-kadence-advancedheading:not(:has(.kb-adv-text-inner)) {
    background-size: 100% 2px;
}



/* Aktiver Eintrag und Hover */
.kb-table-of-content-nav .active > .kb-table-of-contents__entry,
.kb-table-of-content-nav .kb-table-of-contents__entry:hover {
    text-decoration-line: underline !important;
}
/* FOOTER: spezielle Button-Effekte deaktivieren */
.footer :is(
    .kb-button,
    .header-button,
    .button-style-secondary
)::after {
    content: none !important;
    background-image: none !important;
}

.footer :is(
    .kb-lines-outer,
    .kb-lines-outer-secondary
) {
    display: none !important;
}

/* Button-Text: ohne Zoom, mit animiertem Unterstrich */
.footer :is(
    .kb-button,
    .header-button,
    .button-style-secondary
) .kt-btn-inner-text {
    display: inline-block;
    transform: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-decoration: none !important;

    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0 2px;

    transition: background-size 0.3s ease-out !important;
}

/* Zoom auch bei Hover und aktivem Button verhindern */
.footer :is(
    .kb-button,
    .header-button,
    .button-style-secondary
):is(:hover, :focus-visible, .is-active) .kt-btn-inner-text {
    transform: none !important;
}

/* Unterstrich bei Hover und Tastaturfokus */
.footer :is(
    .kb-button,
    .header-button,
    .button-style-secondary
):is(:hover, :focus-visible) .kt-btn-inner-text {
    background-size: 100% 2px !important;
}