/* =================== Hero ================= */

/* ===== Left ===== */
.hero-section .hero-section-text-left .elementor-heading-title {
    background-color: #fff;
    height: calc(100vh - 80px); /* Fallback für ältere Browser */
    height: calc(100svh - 80px);
    width: 100vw; /* Fallback für ältere Browser */
    width: 100svw;
    padding: 80px 20px;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    position: relative;
    z-index: 2;
    opacity: 0;
    will-change: clip-path, opacity;
}

/* ===== Styles für den dynamisch generierten rechten Text ===== */
.hero-section .hero-section-text-right-generated-outer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw; /* Fallback für ältere Browser */
    width: 100svw;
    height: calc(100vh - 80px); /* Fallback für ältere Browser */
    height: calc(100svh - 80px);
    pointer-events: none;
    z-index: 1;
}

.hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
    color: transparent !important;
    position: relative;
    width: 100%;
    height: 100%;
    padding: 80px 20px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-color: transparent;
    -webkit-clip-path: polygon(100% 0%, 100% 0, 100% 100%, 100% 100%);
    clip-path: polygon(100% 0%, 100% 0, 100% 100%, 100% 100%);
    opacity: 0;
    will-change: clip-path, opacity;
}

/* Pseudo-Element, das den kopierten Text anzeigt */
.hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner::before {
    content: var(--synced-hero-text, "");
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: inherit;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    color: rgba(255, 255, 255, 1); /* Weiße Textfarbe für rechts */
    font-family: var(--e-global-typography-1e5512b-font-family), Sans-serif;
    font-size: var(--e-global-typography-1e5512b-font-size);
    font-weight: var(--e-global-typography-1e5512b-font-weight);
    text-transform: var(--e-global-typography-1e5512b-text-transform);
    line-height: var(--e-global-typography-1e5512b-line-height);
    white-space: pre-wrap;
    display: block;
}

/* ===== Responsive Anpassungen für Hero Section ===== */

/* Tablet 768-1024px */
@media (min-width: 768px) {
    .hero-section .hero-section-text-left .elementor-heading-title,
    .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
        padding: 120px 40px;
    }
}

/* Laptop 1025-1366px */
@media (min-width: 1025px) {
    .hero-section .hero-section-text-left .elementor-heading-title,
    .hero-section .hero-section-text-right-generated-outer {
        height: calc(100vh - 140px); /* Fallback für ältere Browser */
        height: calc(100svh - 140px);
    }
    .hero-section .hero-section-text-left .elementor-heading-title,
    .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
        padding: 80px 80px;
    }
}

/* Desktop ab 1367px */
@media (min-width: 1367px) {
    .hero-section .hero-section-text-left .elementor-heading-title,
    .hero-section .hero-section-text-right-generated-outer {
    }
    .hero-section .hero-section-text-left .elementor-heading-title,
    .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
        padding: 80px 120px;
    }
}

/* ===== Hero - Elementor Editor Specific Styles (Fallback) ===== */

/* Diese Regeln gelten nur, wenn der Body die Klasse .elementor-editor-active hat */
body.elementor-editor-active .hero-section .hero-section-text-left .elementor-heading-title,
body.elementor-editor-active .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
    opacity: 1 !important; /* Überschreibt das opacity: 0 aus dem Standard-Styling */
}

/* Default (Desktop) Elementor Editor Fallback Clip-Paths - Zustand nach Ladeanimation */
/* Diese Werte müssen mit denen aus getLoadAnimationEndClipPaths in custom.js übereinstimmen */
body.elementor-editor-active .hero-section .hero-section-text-left .elementor-heading-title {
    -webkit-clip-path: polygon(0% 0%, 40% 0%, 40% 100%, 0% 100%) !important;
    clip-path: polygon(0% 0%, 40% 0%, 40% 100%, 0% 100%) !important;
}
body.elementor-editor-active .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
    -webkit-clip-path: polygon(40% 0%, 100% 0, 100% 100%, 40% 100%) !important;
    clip-path: polygon(40% 0%, 100% 0, 100% 100%, 40% 100%) !important;
}

/* Tablet Elementor Editor Fallback Clip-Paths - Zustand nach Ladeanimation */
@media (min-width: 768px) and (max-width: 1024px) {
    body.elementor-editor-active .hero-section .hero-section-text-left .elementor-heading-title {
        -webkit-clip-path: polygon(0% 0%, 30% 0%, 30% 100%, 0% 100%) !important;
        clip-path: polygon(0% 0%, 30% 0%, 30% 100%, 0% 100%) !important;
    }
    body.elementor-editor-active .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
        -webkit-clip-path: polygon(30% 0%, 100% 0, 100% 100%, 30% 100%) !important;
        clip-path: polygon(30% 0%, 100% 0, 100% 100%, 30% 100%) !important;
    }
}

/* Mobile Elementor Editor Fallback Clip-Paths - Zustand nach Ladeanimation */
@media (max-width: 767px) {
    body.elementor-editor-active .hero-section .hero-section-text-left .elementor-heading-title {
        -webkit-clip-path: polygon(0% 0%, 25% 0%, 25% 100%, 0% 100%) !important;
        clip-path: polygon(0% 0%, 25% 0%, 25% 100%, 0% 100%) !important;
    }
    body.elementor-editor-active .hero-section .hero-section-text-right-generated-outer .hero-section-text-right-generated-inner {
        -webkit-clip-path: polygon(25% 0%, 100% 0, 100% 100%, 25% 100%) !important;
        clip-path: polygon(25% 0%, 100% 0, 100% 100%, 25% 100%) !important;
    }
}