/* sora-100 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 100;
  src: url('../fonts/sora-v17-latin-100.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-200 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 200;
  src: url('../fonts/sora-v17-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/sora-v17-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/sora-v17-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/sora-v17-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/sora-v17-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/sora-v17-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* sora-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Sora';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/sora-v17-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root {
	--cnvs-body-font: "Sora", sans-serif;
	--cnvs-primary-font: "Sora", sans-serif;
	--cnvs-secondary-font: "Sora", serif;
	--bs-primary: #446e87;
    --bs-body-font-size: 1.125rem;
    --bs-body-line-height: 1.875rem;
    --cnvs-line-height-base: 1.3;
    --cnvs-headings-font-weight: 600;
    --cnvs-subheadings-font-weight: 300;
    --bs-card-title-spacer-y: 0;
    --bs-card-subtitle-font-size: 1.1rem;
    --cnvs-subheadings-spacer-y: 1rem;
    --bs-body-font-weight: 300;
	--cnvs-themecolor: var(--bs-primary);
	--cnvs-themecolor-rgb: var(--bs-primary-rgb);
    --cnvs-footer-bg: #262b35;
    --bs-emphasis-color: var(--bs-primary);
    --bs-emphasis-color-rgb: var(--bs-primary-rgb);
    --cnvs-section-margin: 0;
    --bs-border-radius: 0;
    --frame-link-color: var(--frame-color);
    --frame-link-hover-color: var(--frame-color);
    --frame-spacing: 6.25rem;
    --frame-spacing-small: 1.563rem;
    --frame-spacing-xs: 6.25rem;
    --frame-spacing-small-xs: 1.563rem;
    --frame-spacing-sm: 6.25rem;
    --frame-spacing-small-sm: 1.563rem;
    --frame-spacing-md: 6.25rem;
    --frame-spacing-small-md: 1.563rem;
    --frame-spacing-lg: 6.25rem;
    --frame-spacing-small-lg: 1.563rem;
    --frame-spacing-xl: 6.25rem;
    --frame-spacing-small-xl: 1.563rem;
    --frame-outer-spacing-before: 0;
    --frame-outer-spacing-after: 0;
    --frame-outer-spacing-variant-none: 0rem;
    --frame-outer-spacing-variant-extra-small: 1rem;
    --frame-outer-spacing-variant-small: 1.5rem;
    --frame-outer-spacing-variant-medium: 2rem;
    --frame-outer-spacing-variant-large: 2.5rem;
    --frame-outer-spacing-variant-extra-large: 3rem;
    scroll-behavior:smooth;
    scroll-padding-top: 150px;
    --cnvs-featured-box-icon: 4rem;
    --cnvs-featured-box-padding-x: 0.75rem;
    --carousel-control-width: 80px;
}




:root {
    --gallery-gap: 5rem;
}

.frame-background-primary,
.frame-background-tertiary,
.frame-background-light {
    --frame-color: #444444;
}




:focus {
  outline: none;
}

/* Zeigt den Rahmen nur, wenn Tastatur-Navigation erkannt wird */
:focus-visible {
  outline: 2px solid #005FCC !important;
  outline-offset: 2px !important;
}

a.page-skip-link {
    color: #000000;
}

p a:not(.button) {
    box-shadow: 0 -1px inset #212529;
    transition: box-shadow .25s;
    will-change: box-shadow;
    padding-bottom: 1px;
}

p a:not(.button):hover, p a:not(.button):active {
    box-shadow: 0 -2px inset var(--bs-primary);
    color: var(--frame-link-hover-color);
}

#header {
    --cnvs-primary-menu-font-size: 1.125rem;
    --cnvs-primary-menu-font-weight: 400;
    --cnvs-primary-menu-tt: none;
    --cnvs-primary-menu-ls: 0;
    --cnvs-primary-menu-hover-color: var(--bs-primary);
    height: 101px;
}

.is-expanded-menu.stretched .full-header #header-wrap > .container {
    width: 90%;
    padding: 0 20px;
}
.is-expanded-menu .full-header .primary-menu .menu-container {
    padding-right: 0;
    margin-right: 0;
}
#mainnavigation .menu-container > li:last-child .menu-link {
    padding-right: 0;
}

#top-bar {
    --cnvs-topbar-height: 40px;
    --cnvs-topbar-font-size: 0.75rem;
    --cnvs-topbar-font-weight: 400;
    --cnvs-topbar-font-transform: uppercase;
}

.button,
.form-navigation button {
    --cnvs-btn-padding-x: 1.375rem;
    --cnvs-btn-padding-y: 0.5rem;
    --cnvs-btn-fontsize: 1rem;
    --cnvs-btn-color: var(--cnvs-themecolor);
    --cnvs-btn-color-dark: #fff;
    --cnvs-btn-color-light: #111;
    --cnvs-btn-color-hover: #fff;
    --cnvs-btn-background-color: transparent;
    --cnvs-btn-lineheight: calc(var(--cnvs-btn-fontsize) * 1.6);
    --cnvs-btn-border-width: 1px;
    margin: 0;
    padding: var(--cnvs-btn-padding-y) var(--cnvs-btn-padding-x);
    font-size: var(--cnvs-btn-fontsize);
    line-height: var(--cnvs-btn-lineheight);
    background-color: var(--cnvs-btn-background-color);
    color: var(--cnvs-btn-color-light);
    font-weight: 500;
    border: var(--cnvs-btn-border-width) solid var(--cnvs-btn-color-light);
    transition: all 0.2s ease-in-out;
}

.button:hover,
.form-navigation button:hover {
    color: #fff !important;
    border-color: var(--cnvs-btn-color-light);
    background-color: var(--cnvs-btn-color-light);
}

.button.cta:hover {
    border-color: var(--cnvs-btn-color-light) !important;
}

.button.cta p a {
    color: var(--frame-color);
    box-shadow: none;
}

.button.cta p a:hover {
    color: #ffffff;
    box-shadow: none;
}

.button.cta p {
    margin-bottom: 0 !important;
}




.btn {
    --cnvs-btn-padding-x: 1.375rem;
    --cnvs-btn-padding-y: 0.5rem;
    --cnvs-btn-fontsize: 1rem;
    --cnvs-btn-color: var(--cnvs-themecolor);
    --cnvs-btn-color-dark: #fff;
    --cnvs-btn-color-light: #111;
    --cnvs-btn-color-hover: #fff;
    --cnvs-btn-background-color: transparent;
    --cnvs-btn-lineheight: calc(var(--cnvs-btn-fontsize) * 1.6);
    --cnvs-btn-border-width: 1px;
    margin: 0;
    padding: var(--cnvs-btn-padding-y) var(--cnvs-btn-padding-x);
    font-size: var(--cnvs-btn-fontsize);
    line-height: var(--cnvs-btn-lineheight);
    background-color: var(--cnvs-btn-background-color);
    color: var(--cnvs-btn-color-light);
    font-weight: 500;
    border: 1px solid #111;
    transition: all 0.2s ease-in-out;
}

.btn:hover {
    color: #fff;
    background-color: #111;
    border-color: #111;
}

.btn-outline-default {
    --bs-btn-color: var(--cnvs-btn-color-light);
    --bs-btn-border-color: var(--cnvs-btn-color-light);
    --bs-btn-hover-color: var(--cnvs-btn-color-dark);
    --bs-btn-hover-bg: var(--cnvs-btn-color-light);
    --bs-btn-hover-border-color: var(--cnvs-btn-color-light);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--cnvs-btn-color-dark);
    --bs-btn-active-bg: var(--cnvs-btn-color-light);
    --bs-btn-active-border-color: var(--cnvs-btn-color-light);
    --bs-btn-active-shadow: none;
    --bs-btn-disabled-color: var(--cnvs-btn-color-light);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--cnvs-btn-color-light);
    --bs-gradient: none;
    transition: all 0.2s ease-in-out;
  }

.stretched-link::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    pointer-events: auto;
    content: "";
    background-color: rgba(0, 0, 0, 0);
  }

.line,
.double-line {
  border-top: 1px solid rgba(var(--cnvs-contrast-rgb), 0.5);
}

.dark .button, .carousel-item-layout-dark .button {
    color: var(--cnvs-btn-border-color) !important;
    border: var(--cnvs-btn-border-width) solid #fff;
}

.form-control, .form-control:focus, .form-group input[type="file"] {
    --cnvs-input-focus-color: var(--frame-color);
    --cnvs-input-focus-bg: transparent;
    --cnvs-input-focus-border-color: transparent;
    font-size: var(--bs-body-font-size);
    font-family: var(--cnvs-body-font);
    font-weight: var(--bs-body-font-weight);
    line-height: var(--cnvs-line-height-base);
    color: var(--frame-color);
    background-color: transparent;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid #262b35;
    box-shadow: none;
}

.recaptcha {
    margin-bottom: 50px;
}

.dark {
    --cnvs-footer-bg: #019ffb;
}
h1 > span:not(.nocolor):not(.badge), .h1 > span:not(.nocolor):not(.badge), h2 > span:not(.nocolor):not(.badge), .h2 > span:not(.nocolor):not(.badge), h3 > span:not(.nocolor):not(.badge), .h3 > span:not(.nocolor):not(.badge), h4 > span:not(.nocolor):not(.badge), .h4 > span:not(.nocolor):not(.badge), h5 > span:not(.nocolor):not(.badge), .h5 > span:not(.nocolor):not(.badge), h6 > span:not(.nocolor):not(.badge), .h6 > span:not(.nocolor):not(.badge) {
    color: var(--frame-color);
}

.frame-background-light {
    --frame-background: #f7f7f7;
}

.frame-layout-no-space {
    --frame-spacing: 0;
}

figure {
    margin: 0 !important;
}

.toggle-header,
.accordion-header {
    font-size: 1.25rem;
    font-weight: var(--cnvs-subheadings-font-weight);
}

.toggle-icon, .accordion-icon {
    padding: 0 0.8rem;
}

.icongroup-iconposition-above .icongroup-item-text, .icongroup-iconposition-below .icongroup-item-text {
    text-align: center;
}
.icongroup .line {
    border-top: 1px solid var(--bs-primary);
    }

.fbox-content p {
    color: var(--frame-color);
}

.fbox-icon a, .fbox-icon i, .fbox-icon img {
position: static;
}

.feature-box {
--cnvs-featured-box-font-size: 1.5rem;
margin-left: auto;
margin-right: auto;
}

.feature-box .icongroup-item-icon {
    margin-right: 0;
}

.card {
    --bs-card-title-spacer-y: var(--bs-card-title-spacer-y);
    --bs-border-width: 0;
}

.card-group-style-06 .card-body,
.card-group-style-06 .card-footer {
    padding: 1.5rem;
}

.card-title {
    font-weight: var(--cnvs-headings-font-weight);
}

.card-group-element-style-02 .card-group-element-item {
    min-height: 300px;
}

.g-0 .card-group-element-item {
    width: calc(100% / var(--cardgroup-columns));
}
body:not(.device-touch):not(.device-sm):not(.device-xs) .card-group-element-item img {
    -webkit-transform: scale(1.02);
    transform: scale(1.02);
    -webkit-transition: all 1.5s ease;
    transition: all 1.5s ease;
    -webkit-transform-style: preserve-3d;
    -webkit-backface-visibility: hidden
}

body:not(.device-touch):not(.device-sm):not(.device-xs) .card-group-element-item:hover img {
    -webkit-transform: scale(1.1);
    transform: scale(1.1)
}

.material-teaser {
    gap: 80px;
    background-color: #f2f2f2;
    margin-top: -80px;
    padding-top: 40px;
}

/* Alle Spalten gleich breit & Inhalt linksbündig */
.material-teaser > div {
    width: 200px;        /* Festlegen einer einheitlichen Breite (anpassbar) */
    text-align: left;    /* Text innerhalb der Spalte linksbündig */
}

/* Auf Smartphones (Bildschirme kleiner als 768px) */
@media (max-width: 767.98px) {
    .material-teaser {
        flex-direction: column;
        align-items: center; /* Zentriert die 3 Blöcke als Ganzes auf dem Display */
        gap: 30px;
        margin-top: 0;
        padding-top: 20px;
    }

    .material-teaser > div {
        width: 100%;       /* Nutzt auf Mobilgeräten die volle Breite... */
        max-width: 280px;  /* ...aber nicht breiter als 280px für saubere Optik */
    }
}

body {
    line-height: var(--bs-body-line-height);
}

.icongroup-item {
    margin-top: 0;
}

.icongroup-item-icon {
    width: calc(var(--cnvs-featured-box-icon) + var(--cnvs-featured-box-padding-x) * 2);
    height: var(--cnvs-featured-box-icon);
    padding: 0 var(--cnvs-featured-box-padding-x);
}

.icongroup-item-icon svg:not(.frame-background-primary) {
    fill: var(--cnvs-themecolor) !important;
    color: var(--cnvs-themecolor) !important;
}


.textpic-centered .textpic-gallery {
    align-self: flex-start;
}

.carousel-item {
    background-color: var(--carousel-item-background);
    color: var(--carousel-item-color)
}

.carousel-item-layout-dark {
    --carousel-item-background: #252c3e;
    background-image: linear-gradient(to right,#252c3e,rgba(37,44,62,.66),rgba(37,44,62,.42),rgba(37,44,62,.1),rgba(37,44,62,0));
}
.carousel-item-layout-dark {
    --carousel-item-link-color: #ffffff;
    --carousel-item-link-hover-color: #EEEEEE;
}

.carousel .carousel-backgroundimage-fade {
    opacity: 0.7;
}
.carousel .carousel-content-inner {
    gap: 0;
}
.carousel .carousel-small .carousel-content-inner {
    align-items: self-end;
}

.owl-carousel .owl-nav [class*=owl-] {
    top: 35%;
}
.owl-carousel .owl-dots .owl-dot {
    border-radius: 0;
}

.carousel .carousel-item-type-call_to_action .carousel-content-inner {
    align-items: end;
}
.carousel-item-type-call_to_action .carousel-box {
    background-color: rgba(255, 255, 255, 0.9);
}

 .carousel .carousel-item h1, .carousel .carousel-item .h1 {
    font-size: 3rem;
    line-height: 3.5rem;
}

.carousel-fullscreen .item {
    height: calc(100dvh - 146px);
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  width: 4rem;
  height: 4rem;
}

.carousel .carousel-control {
    display: none;
}


@media (min-width: 768px) {
.carousel .carousel-control {
    display: block;
}
}

.carousel-text-inner {
    background-color: rgba(0, 0, 0, 0.01);
}

.carousel-indicators [data-bs-target] {
    background-color: rgba(0, 0, 0, 0.01);
}

.carousel-control-prev, .carousel-control-next {
    background-color: rgba(0, 0, 0, 0.01);
}

.timeline-item-inner {
    border: 0;
}

.timeline-item-date {
    font-size: 1.5rem;
    text-transform: none;
}

.timeline-item-header {
    margin: 15px 0;
}

.timeline-item-header-headline {
    font-size: 1.5rem;
    color: inherit;
}

.list-normal {
    list-style: none;
  }
  .list-normal li {
    margin-bottom: 10px;
    margin-left: 25px;
  }
  .list-normal li:first-child {
    margin-top: 0.6rem;
  }
  .list-normal li:before {
    margin-left: -25px;
    position: absolute;
    font-family: 'bootstrap-icons';
    content: "\F231";
    color: var(--cnvs-themecolor) !important;
  }
  .list-normal li ul li:before {
    font-family: 'bootstrap-icons';
    content: "\f26a";
    color: var(--cnvs-themecolor) !important;
    font-size: small;
  }

.card {
    border-radius: 0;
}

.flip-card-front {
    background-position: center top;
}

.flip-card-front .dark {
    text-shadow: 1px 1px 2px #000000;
}

.flip-card-front::after, .flip-card-back::after {
    opacity: 0.1;
    border-radius: 0;
}

.flip-card-front .flip-card-inner {
    top: 70%;
}

.card-subtitle {
    font-size: var(--bs-card-subtitle-font-size);
    font-weight: var(--cnvs-subheadings-font-weight);
    margin-bottom: var(--cnvs-subheadings-spacer-y);
}

.card-push {
    transition: all .3s ease-in-out;
   -moz-transition: all .3s ease-in-out;
   -webkit-transition: all .3s ease-in-out;
   -ms-transition: all .3s ease-in-out;
}
   
.card-push:hover {
   transform: translate3d(0,-5px,0);
   transition: all .3s ease-in-out;
   -moz-transition: all .3s ease-in-out;
   -webkit-transition: all .3s ease-in-out;
   -ms-transition: all .3s ease-in-out;
}

#header {
	--cnvs-primary-menu-tt: uppercase;
}

.top-links-container {
    justify-content: right;
  }
.is-expanded-menu.stretched #top-bar > .container {
    width: 100%;
    max-width: none;
    padding: 0 50px;
}

.section {
    background-color: transparent;
}

#header-wrap,
.is-expanded-menu .sticky-header.full-header #header-wrap {
    border-bottom: none;
}

.is-expanded-menu .full-header #logo,
.is-expanded-menu .full-header .primary-menu .menu-container {
    border-right: none;
}

#header-wrap #logo img {
    padding: 5px 0;
}

.is-expanded-menu #header.sticky-header-shrink #header-wrap #logo img {
    padding: 5px 0;
}

.menu-link.active  {
    color: var(--cnvs-primary-menu-active-color) !important;
}

.cnvs-hamburger {
    --cnvs-hamburger-size: 1.5rem;
    --cnvs-hamburger-width: 3px;
}

#footer {
    border-top: 0;
    background: linear-gradient(to right, #005788, #040411);
}

#footer img {
    max-width: 250px;
    display: unset;
}

#footer .bg-overlay {
    display: none;
}

.widget_links li {
    font-size: var(--cnvs-font-size-body);
    padding: 0;
    line-height: 1.7;
}

.bg-overlay-bg-light {
    --cnvs-bg-overlay-bg-opacity: 0.5;
    --cnvs-bg-overlay-bg: rgba(var(--cnvs-invert-contrast-rgb), var(--cnvs-bg-overlay-bg-opacity));
    background-color: #ffffff;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    margin: 0;
}

.element-header {
    font-weight: var(--cnvs-headings-font-weight);
}

.element-subheader {
    font-weight: var(--cnvs-subheadings-font-weight);
}

.copyright {
    font-size: 0.688rem;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    white-space: nowrap;
    -webkit-transform-origin: bottom;
    transform-origin: bottom;
    color: rgba(255, 255, 255, 0.7);
    text-shadow: 0 0 10px #444444;
    z-index: 1;
    background-color: rgba(0, 0, 0, 0.01);
}

#copyrights, .dark #copyrights, #copyrights.dark {
    background-color: transparent;
  }
.dark #copyrights a, .dark #copyrights, #copyrights.dark {
    color: rgba(255, 255, 255, 1);
}
.dark #copyrights a:hover {
    color: var(--cnvs-contrast-1000);
}

.grayscale,
.grayscale-out:hover {
  --cnvs-gray-filter: brightness(100%) grayscale(1);
}

.section-product {
    position: relative;
    width: 100%
}

.section-product .section-product-image {
    width: 100%
}

.section-product .section-product-content {
    max-width: 100%;
    position: relative;
    bottom: 0;
    right: 0;
    background-color: #fff;
    padding: 20px;
    z-index: 1
}

.section-product.alt .section-product-image,.section-product.alt .section-product-content {
    float: none
}

.cascading-images, .cascading-images-inner, .cascading-image {
    --cnvs-cascading-padding: 10%;
}

@media (max-width: 767px) {
    #header-wrap #logo img {
        height: var(--cnvs-header-height-md);
    }
}

@media (min-width: 768px) {
    .frame-header {
        margin-bottom: 3rem;
    }
    .gap-0 .textmedia-item,
    .gap-0 .textpic-item {
      width: 50%;
    }
    .textteaser-teaser {
        width:calc((100% / 12 * 6) - (40px / 2))
    }

    .textteaser-text {
        width: calc((100% / 12 * 6) - (40px / 2))
    }
}

@media(min-width: 1199px) {
    .section-product .section-product-image {
        position: relative;
        width: 85%;
        background: #fff
    }
    .section-product .section-product-content {
        max-width: 400px;
        position: absolute;
        bottom: 100px;
        right: 0;
        padding: 30px
    }
    .section-product.alt .section-product-image {
        float: right
    }
    .section-product.alt .section-product-content {
        left: 0;
        right: auto
    }
}

@media (min-width: 1400px) {
.frame-box-layout .frame-container-default {
    max-width: 90%;
}
}
@media (min-width: 1200px) {
.frame-box-layout .frame-container-default {
    max-width: 90%;
}
}
@media (min-width: 992px) {
.frame-box-layout .frame-container-default {
    max-width: 90%;
}
}
@media (min-width: 768px) {
.frame-box-layout .frame-container-default {
    max-width: 90%;
}
}

@media (min-width: 576px) {
.frame-box-layout .frame-container-default {
    max-width: 90%;
}
}

.sticky-top {
    top: 200px !important;
  }

.bg-light-yellow {
    background-color: #f9e4b4!important
}

.magnetic-hover {
    transition: all .3s linear
}

.magnetic-hover>span,.magnetic-hover>div {
    pointer-events: none;
    transition: all .1s linear
}

.ticker-wrap .ticker .ticker-item {
    color: #fff;
    font-size: 15vw;
    font-weight: 500;
    letter-spacing: -10px;
    font-size: max(9em,13vw)
}

.section-works .work-item .ticker-wrap {
    --cnvs-ticker-duration: 180s;
    opacity: 0
}

.section-works .work-item:hover .ticker-wrap {
    opacity: 1
}

.section-works .ticker-wrap .ticker-item {
    font-size: 7vw;
    font-weight: 500;
    letter-spacing: 0;
    font-size: max(5em,7vw)
}

.cnvs-cursor {
    --cnvs-cursor-bg: #FFF;
    --cnvs-cursor-action-bg: #FFF;
    --cnvs-cursor-opacity: 1;
    --cnvs-cursor-action-opacity: 1;
    --cnvs-cursor-size: .5rem;
    mix-blend-mode: difference
}

.text-fill-effect,
.text-warning {
    --cnvs-text-fill-placeholder: rgba(var(--cnvs-contrast-rgb), 0.1);
    --cnvs-text-fill-color: linear-gradient(to right, var(--cnvs-contrast-1000), var(--cnvs-contrast-1000));
    -webkit-text-fill-color: var(--cnvs-text-fill-placeholder);
    position: relative;
    background-image: var(--cnvs-text-fill-color);
    background-size: calc(var(--cnvs-scroll-start) * 100%) 100%;
    background-repeat: no-repeat
}

.text-splitter.scroll-detect span {
    opacity: calc(0.1 + (1 * var(--cnvs-scroll-percent)));
    transform: rotateX(20deg);
    transition: all .3s ease;
    transition-delay: 0s
}

.text-splitter.scroll-detect.scroll-detect-inview span {
    transform: rotateX(0);
    transition-delay: calc(.04s * var(--cnvs-split-index))
}

.d-grid {
    display: -ms-grid;
    display: grid;
    grid-auto-columns: 1fr;
    grid-column-gap: 30px;
    grid-row-gap: 30px;
    -ms-grid-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
    -ms-grid-rows: auto auto auto;
    grid-template-rows: auto auto auto
}

.d-grid .grid-item-1,.d-grid .grid-item-2,.d-grid .grid-item-3 {
    display: flex;
    position: relative;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden
}

.d-grid .grid-item-1 {
    height: 400px;
    grid-column-start: 1;
    -ms-grid-column: 1;
    grid-column-end: 6;
    -ms-grid-column-span: 3;
    grid-row-start: 1;
    -ms-grid-row: 1;
    grid-row-end: 4;
    -ms-grid-row-span: 3
}

.d-grid .grid-item-2 {
    height: 200px;
    grid-column-start: 5;
    -ms-grid-row: 2;
    grid-column-end: 9;
    -ms-grid-column-span: 3;
    -ms-grid-row-span: 1;
    grid-row-start: 2;
    -ms-grid-row-align: center;
    grid-row-end: 3;
    align-self: center;
    justify-self: center;
    -ms-grid-column-align: center
}

.d-grid .grid-item-3 {
    height: 200px;
    -ms-grid-row: 3;
    grid-row-start: 3;
    grid-column-start: 6;
    -ms-grid-column-span: 3;
    grid-column-end: 9;
    -ms-grid-row-span: 1;
    grid-row-end: 4;
    -ms-grid-row-align: start;
    align-self: start;
    -ms-grid-column-align: center
}

@media(min-width: 992px) {
    .section-bg {
        margin-top:-100px
    }

    .d-grid .grid-item-1 {
        height: auto;
        grid-column-end: 4
    }

    .d-grid .grid-item-2 {
        height: 300px;
        grid-column-start: 4;
        -ms-grid-row: 2;
        grid-column-end: 7
    }

    .d-grid .grid-item-3 {
        height: 200px
    }
}

.img-hover-block {
    z-index: 0
}

.hover-reveal {
    position: fixed;
    width: 240px;
    height: 160px;
    top: 0;
    left: 0;
    pointer-events: none;
    opacity: 0;
    z-index: 1
}

.hover-reveal__inner,.hover-reveal__img {
    width: 100%;
    height: 100%;
    position: relative
}

.hover-reveal__img {
    background-size: cover;
    background-position: 50% 50%
}

.device-up-lg .section-blogs-lists>li {
    counter-increment: step-counter
}

.device-up-lg .section-blogs-lists>li>a::before {
    content: "0" counter(step-counter)'.';
    position: absolute;
    left: -1.25rem;
    font-size: 1.25rem;
    font-weight: 700;
    font-family: var(--cnvs-primary-font);
    color: rgba(var(--cnvs-contrast-rgb),.2);
    line-height: 1
}

.device-up-lg .section-blogs-lists>li>a {
    padding-left: 10px
}

.device-up-lg .dark .section-blogs-lists>li>a:hover h3 {
    color: var(--bs-warning)
}

.device-down-lg .ls-n1,.device-down-lg .ls-n2,.device-down-lg .ls-n3,.device-down-lg .ls-n4 {
    letter-spacing: 0!important
}

.section-features ul {
    list-style: none
}

.section-features ul li::before {
    content: "\2022";
    position: relative;
    display: inline-block;
    width: 1.125rem;
    font-weight: 700;
    color: var(--bs-warning);
    top: -1px
}

.device-down-lg .cnvs-cursor {
    display: none
}
.modal-backdrop.show {
        opacity: 0 !important;
    }
.si-sticky.si-sidebar {
	--width: 254px;
	--height: 54px;
	--icon-size: var(--height); /* 54px */
	--text-width: calc(var(--width) - var(--height)); /* 230px - 54px */
	width: var(--icon-size);
	height: auto;
}

.si-sticky.si-sidebar:not(.si-sticky-right) { left: 0; }

.si-sticky.si-sidebar .social-icon {
	margin: 2px 0;
	margin-left: calc(-1 * var(--text-width));
	width: var(--width);
	height: var(--height);
	border: 0;
	border-radius: 0 4px 4px 0;
	display: inline-flex;
	align-items: center;
	transition: margin 0.2s ease-in-out;
}

.si-sticky.si-sidebar .social-icon i {
	position: absolute;
	left: auto;
	right: 0;
	width: var(--icon-size);
	height: var(--icon-size);
	line-height: var(--icon-size);
	text-align: center;
	transition: all 0.2s ease-in-out;
}

.si-sticky.si-sidebar .social-icon span {
	color: #FFF;
	font-size: 1rem;
	width: var(--text-width);
	text-align: center;
}

.si-sticky.si-sidebar .social-icon i:last-child {
	color: #FFF;
}

.social-icon {
	--cnvs-socialicon-size: 3.5rem;
}

.bg-pta, .h-bg-pta:hover {
	background-color: var(--bs-primary) !important;
}

.sociallinks {
	margin-top: 50px;
}

.sociallinks-link-icon {
	margin-right: 10px;
}

.si-sticky.si-sticky-right { right: 0; }

.si-sticky.si-sidebar.si-sticky-right .social-icon {
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
	margin-left: 0;
	border-radius: 0px 0 0 0px;
}

.si-sticky.si-sidebar.si-sticky-right .social-icon i {
	left: 0;
	right: auto;
}

@media (min-width: 992px) {
	.si-sticky.si-sidebar:not(.si-sticky-right) .social-icon:hover { margin-left: 0; }
	.si-sticky.si-sidebar:not(.si-sticky-right) .social-icon:hover i { right: calc(-1 * var(--text-width)); }

	.si-sticky.si-sidebar.si-sticky-right .social-icon:hover { margin-left: calc(-1 * var(--text-width)); }
	.si-sticky.si-sidebar.si-sticky-right .social-icon:hover i { left: calc(-1 * var(--text-width)); }


		#carousel-tabs.tabs,
		#carousel-tabs .tab-content {
			--cnvs-tab-padding-width: 0;
			--bs-nav-link-padding-y: .75rem;
			--bs-nav-link-font-size: .9125rem;
			--bs-nav-link-font-weight:	400;
			--bs-nav-tabs-border-width: 0;
			--bs-nav-link-color: var(--cnvs-contrast-1000);
			--bs-nav-link-hover-color: var(--cnvs-contrast-900);
			--bs-nav-tabs-link-active-bg: rgba(var(--bs-danger-rgb), 0.1);
			--bs-nav-tabs-link-active-color: var(--bs-danger);
			--cnvs-tabs-bg-color:rgba(var(--cnvs-contrast-rgb), 0.04);
		}

		.dark #carousel-tabs.tabs,
		.dark #carousel-tabs .tab-content {
			--bs-nav-tabs-link-active-bg: rgba(var(--bs-danger-rgb),1);
			--bs-nav-tabs-link-active-color: var(--bs-light);
		}

		#carousel-tabs .nav-link:not(.active) {
			background-color: rgba(var(--cnvs-contrast-rgb), 0.04);
		}

		#carousel-tabs .nav-link {
			border-radius: var(--bs-border-radius);
			font-weight: 500;
		}

		#carousel-tabs .nav-link.active {
			font-weight: 600;
		}

		.carousel-blur-left::before,
		.carousel-blur-right::after {
			--cnvs-carousel-blur-size: 70px;
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: auto;
			width: var(--cnvs-carousel-blur-size);
			height: 100%;
			z-index: 1;
			background: linear-gradient(to right, var(--cnvs-body-bg) 50%, transparent);
		}

		.carousel-blur-right::after {
			left: auto;
			right: 0;
			background: linear-gradient(to left, var(--cnvs-body-bg) 50%, transparent);
		}

}


.slide-box {
  color: #000000;
  text-align: center;
}

.slide-box {
  border-radius: 0 !important;
}

.slide-box .icon-wrapper {
  font-size: 2rem;
  margin-bottom: 8px;
}

.slide-box i {
  color: #000000;
}

.slide-box p {
  margin: 0;
  font-size: 1rem;
  color: #000000;
}

.slide-box a,
.slide-box a:visited,
.slide-box a:hover,
.slide-box a:active {
  color: #000000 !important;
  text-decoration: underline;
  font-weight: 500;
}

.flex-control-nav li a {
    color: #000;
}

hr {
    border: none;
    height: 2px;
    background-color: #DDDDDD;
    opacity: 1;
}

/* Container für die Positionierung */
.text-decoration-arrow-container {
    display: block;
    margin-bottom: 40px;
    text-align: left;
}

/* Das eigentliche SVG-Element */
.text-decoration-arrow-svg {
    display: inline-block;
    height: 100px; /* Deine gewünschte Höhe */
    width: 100px;  /* Breite ggf. an das Seitenverhältnis deines Pfeils anpassen */
    
    /* Hier wird die Farbe gesetzt */
    background-color: var(--bs-primary);
    
    /* Das SVG als Maske laden */
    -webkit-mask-image: url('../../images/arrow/thermobau-arrow-bottom.svg');
    mask-image: url('../../images/arrow/thermobau-arrow-bottom.svg');
    
    /* Masken-Eigenschaften für saubere Darstellung */
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: left center;
    mask-position: left center;
}

/* Mobile Anpassung */
@media (max-width: 767px) {
    .text-decoration-arrow-svg {
        height: 80px;
        width: 80px;
    }
}

/* --- Hero Section mit blauem Hintergrund und monochromem Fade --- */

.hero-blue-section {
    position: relative;
    background-color: #005788 !important; /* Dein Blauwert */
    padding: 80px;
    overflow: hidden;
    color: #ffffff; /* Text auf Blau weiß machen */
    height: 600px;
}

/* Das Hintergrundbild als Overlay */
.hero-blue-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: var(--hero-bg-image);
    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;
    
    /* Magie 1: Macht das Bild monochrom blau */
    background-blend-mode: luminosity;
    background-color: #005788;
    
    /* Magie 2: Weicher Verlauf von rechts nach links (Fade out) */
    -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 20%, rgba(0,0,0,0) 80%);
    mask-image: linear-gradient(to left, rgba(0,0,0,1) 20%, rgba(0,0,0,0) 80%);
    
    z-index: 1;
}

/* Inhalte über das Hintergrundbild heben */
.hero-content-left {
    position: relative;
    z-index: 2; /* Über das ::before Element */
}

/* Header-Farbe innerhalb des Hero-Elements erzwingen */
.hero-blue-section h1, 
.hero-blue-section h2, 
.hero-blue-section h3 {
    color: #ffffff !important;
}

/* Der Pfeil (wie zuvor definiert) */
.text-decoration-arrow-container {
    margin-bottom: 20px;
}

.text-decoration-arrow-svg {
    display: inline-block;
    height: 90px;
    width: 90px;
    background-color: #ffffff; /* Pfeil in Weiß auf Blauem Grund */
    -webkit-mask-image: url('../../images/arrow/thermobau-arrow-bottom.svg');
    mask-image: url('../../images/arrow/thermobau-arrow-bottom.svg');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* Mobile Optimierung */
@media (max-width: 991px) {
    .hero-blue-section {
        padding: 30px;
    }
    .hero-blue-section::before {
        opacity: 0.3; /* Bild auf Mobile dezenter, damit Text besser lesbar ist */
        mask-image: none; /* Auf kleinen Schirmen keinen Fade, da Text oft das ganze Bild überdeckt */
    }
}

/* --- CE Variante: Footer-Gradient & Kompakte Abstände --- */

.section-footer-gradient {
    /* Der exakte Verlauf aus deinem Footer */
    background: linear-gradient(to right, #005788, #040411) !important;
    color: #ffffff;
    position: relative;
    border: none;
}

/* Reduzierung der Abstände oben/unten */
.section-compact-padding {
    /* 20px oben/unten sorgt dafür, dass das Bild näher an den Rändern liegt 
       und der Abstand zum rechten Rand (durch den Container) stimmiger wirkt */
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

/* Header-Farben innerhalb dieses Elements */
.section-footer-gradient h1, 
.section-footer-gradient h2, 
.section-footer-gradient h3, 
.section-footer-gradient h4 {
    color: #ffffff !important;
}

/* Bild-Container: Kein Schatten, passt sich der Bildhöhe an */
.section-footer-gradient .hero-regular-image {
    width: 100%;
    height: auto;
    overflow: hidden;
    box-shadow: none !important;
}

.section-footer-gradient .hero-regular-image img {
    width: 100%;
    height: auto;
    display: block;
    /* Verhindert kleine Lücken unter dem Bild */
    margin-bottom: 0 !important;
}

/* Falls das Bild im Grid noch Standard-Margins von Canvas hat, entfernen wir diese */
.section-footer-gradient .portfolio-item,
.section-footer-gradient .grid-inner {
    margin-bottom: 0 !important;
}

/* ==========================================================================
   DER PFEIL-FIX: Kontextabhängige Farben
   ========================================================================== */

/* 1. ALLGEMEINE REGEL (Gilt überall) */
.text-decoration-arrow-svg {
    display: inline-block;
    height: 90px;
    width: 90px;
    -webkit-mask-image: url('../../images/arrow/thermobau-arrow-bottom.svg');
    mask-image: url('../../images/arrow/thermobau-arrow-bottom.svg');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;

    /* STANDARD-FARBE: Erscheint in normalen weißen CEs */
    background-color: var(--bs-primary); 
}

.text-decoration-arrow-svg.right {
    transform: rotate(-90deg);
    filter: grayscale(100%);
}

/* 2. SPEZIFISCHE REGEL FÜR DUNKLE CEs */
/* Der Pfeil wird NUR weiß, wenn er in einem dieser Container liegt */
.hero-blue-section .text-decoration-arrow-svg,
.section-gradient-wrapper .text-decoration-arrow-svg {
    background-color: #ffffff !important;
}

/* Optional: Abstandsanpassung für den Container */
.text-decoration-arrow-container {
    display: block;
    margin-bottom: 20px;
    text-align: left;
}

.text-decoration-arrow-container:has(.text-decoration-arrow-svg.right) {
    margin-bottom: 0;
}

/* Falls das Bild in dieser Variante AUCH quadratisch sein soll: */
.section-gradient-wrapper .hero-regular-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 4px; /* Optional für weichere Optik */
    box-shadow: 0 10px 30px rgba(0,0,0,0.3); /* Gibt dem Bild Tiefe vor dem Verlauf */
}

.section-gradient-wrapper .hero-regular-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Anpassung für den Textfluss */
.section-gradient-wrapper .content-text {
    font-size: 1.1rem;
    line-height: 1.6;
}

/* =============================================================
   Zentriertes Querformat (3:2) + Overlay-Rettung
   ============================================================= */

/* 1. Der äußere Rahmen definiert das Format */
.portfolio-image.custom-landscape-crop {
    width: 100% !important;
    aspect-ratio: 3 / 2 !important;
    overflow: hidden !important;
    position: relative !important;
    display: block !important;
}

/* 2. Nur die Container, die das BILD umschließen, auf 100% zwingen.
      WICHTIG: Wir nutzen :not() um Overlay und Copyright zu schützen! */
.custom-landscape-crop div:not(.bg-overlay):not(.bg-overlay-bg):not(.bg-overlay-content):not(.copyright),
.custom-landscape-crop figure,
.custom-landscape-crop a,
.custom-landscape-crop picture {
    height: 100% !important;
    width: 100% !important;
    display: block !important;
    position: relative !important; /* Anker für Overlay & Copyright */
    margin: 0 !important;
    padding: 0 !important;
}

/* 3. Das Bild perfekt zentrieren */
.custom-landscape-crop img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    max-width: none !important;
}

/* 4. OVERLAY WIEDERHERSTELLEN */
/* Das Overlay-Gefäß muss die gesamte Fläche abdecken */
.custom-landscape-crop .bg-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 5 !important;
    display: flex !important; /* Zum Zentrieren des Plus-Icons */
    align-items: center !important;
    justify-content: center !important;
    pointer-events: none;
    opacity: 1 !important; /* Grundsätzlich da, Inhalt steuert Sichtbarkeit */
}

/* Der weiße Hover-Effekt (Hintergrund) */
.custom-landscape-crop .bg-overlay-bg {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(255, 255, 255, 0.9) !important;
    opacity: 0 !important; /* Standardmäßig unsichtbar */
    transition: opacity 0.3s !important;
}

/* Sichtbarkeit beim Hover über das gesamte Item */
.portfolio-item:hover .custom-landscape-crop .bg-overlay-bg {
    opacity: 1 !important;
}

/* 5. PLUS-ICON ZENTRIEREN */
.custom-landscape-crop .bg-overlay-content {
    position: relative !important;
    z-index: 6 !important;
    opacity: 0 !important;
    transition: opacity 0.3s !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.portfolio-item:hover .custom-landscape-crop .bg-overlay-content {
    opacity: 1 !important;
}

.custom-landscape-crop .bg-overlay-content i {
    color: #333 !important; /* Plus in Dunkelgrau/Schwarz */
    font-size: 32px !important;
}

/* 6. COPYRIGHT UNTEN LINKS */
.custom-landscape-crop .copyright {
    position: absolute !important;
    bottom: 8px !important;
    left: 10px !important;
    z-index: 10 !important;
    height: auto !important;
    width: auto !important;
    background: transparent !important; /* Kein weißer Balken */
    color: #444 !important;
    font-size: 11px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bg-custom-blue {
            background: linear-gradient(to right, #005788, #040411);
        }