/****** SVG ICON START *******/

.svg-icon a{
    display: inline-block;
}
.svg-icon.inline{
    display: inline-block;
    margin-right: 10px;
}
.svg-icon.align-center img{
    margin: 0 auto;
}
.svg-icon.align-right img{
    margin: 0 0 0 auto;
}
.icon-shadow .svg-icon img {
    -webkit-filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4));
    filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4));
}
.svg-icon.align-middle {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.svg-icon.align-middle img {
    max-width: 100%;
    height: auto;
}

/****** SVG ICON END *******/
/****** HEADING START *******/

.heading-wrapper{
    position: relative;
    margin-bottom: 30px;
}
.heading-wrapper .topline {
    font-family: 'Stack Sans Text', sans-serif;
    font-size: 1.1em;
    font-weight: 500;
    line-height: 1em;
    margin-bottom: 15px;
    display: block;
    text-transform: uppercase;
    color: var(--primary-color);
    margin-left: 3px;
}
.heading-wrapper .topline + .title {
    margin-top: 0;
}

.heading-wrapper h2 .secondary{
    color: var(--secondary-color);
}

.heading-wrapper:last-child,
.heading-wrapper:last-child .title{
    margin-bottom: 0;
}

.light .heading-wrapper .topline {
    color: #fff;
    border-color: #fff;
}

h1 span, h2 span, h3 span{
    line-height: 1em;
    position: relative;
}
.center .heading-wrapper .topline {
    margin-left: auto;
    margin-right: auto;
}

.heading-wrapper h2{
    margin-bottom: 0;
}


/****** HEADING END *******/
/****** ICONBOX START *******/

.iconbox{
    box-sizing: border-box;
    position: relative;
}
.iconbox.fullbox-link h3{
    font-size: 1.5em;
    -webkit-transition: 0.3s all ease-in-out;
    transition: 0.3s all ease-in-out;
}
.iconbox:last-child{
    margin-bottom: 0;
}

.iconbox.boxed,
.iconbox.primary,
.iconbox.gray,
.iconbox.bordered{
    padding: 30px;
    border-radius: 10px;
}
.iconbox.boxed {
    background-color: #fff;
}
.iconbox.primary {
    background-color: var(--primary-color);
}
.iconbox.gray {
    background-color: var(--light-gray);
}
.iconbox.dark {
    background-color: var(--body-text-color);
}
.iconbox.bordered {
    background-color: #fff;
    border: 2px solid var(--primary-color);
}

.vc_desktop .iconbox.boxed.dark.fullbox-link:hover{
    background-color: var(--primary-color);
}
.vc_desktop .iconbox.primary.fullbox-link:hover{
    background-color: var(--body-text-color);
}

.vc_desktop .iconbox.boxed.dark.fullbox-link:hover img{
    filter: brightness(0) invert(1) grayscale(1) contrast(10);
}
.iconbox.primary .iconbox-content *,
.iconbox.boxed.dark.fullbox-link .iconbox-content *{
    color: #fff;
}

.iconbox.boxed img{
    margin-bottom: 70px;
}

.iconbox.small {
    padding: 20px;
}
.iconbox.small h3 {
    font-size: 1.1em;
    margin-bottom: 5px;
}
.iconbox.small .subheadline {
    font-size: 0.85em;
}
.iconbox.align-center.small img, .iconbox.icon-top-center.small img {
    margin-bottom: 7px;
}

.vc_desktop .iconbox.bordered.fullbox-link:hover {
    border-color: var(--primary-color);
}
.vc_desktop .iconbox.bordered.fullbox-link:hover h3,
.vc_desktop .iconbox.gray.fullbox-link:hover h3{
    color: var(--primary-color);
}


.iconbox.show-btn {
    padding-bottom: 80px;
}
.iconbox.fullbox-link{
    cursor: pointer;
}
.iconbox.fullbox-link > a{
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
}
.vc_desktop .iconbox.fullbox-link:hover h3{
    color: var(--primary-color);
}
.vc_desktop .iconbox.fullbox-link:hover .text-link .button-icon {
    transform: translateX(4px);
}
.center .iconbox {
    margin-left: auto;
    margin-right: auto;
}
.iconbox .iconbox-content{
    padding: 0;
    margin-top: 3px;
}
.iconbox .iconbox-content span.text-link {
    font-size: 0.9em;
    line-height: 1.3em;
    position: absolute;
    bottom: 20px;
}
.vc_desktop .iconbox.fullbox-link:hover .iconbox-content span.text-link:after {
    width: 100%;
    left: 0;
}
.iconbox.align-center{
    text-align: center;
}
.iconbox.align-center img,
.iconbox.icon-top-center img{
    margin: 0 auto 20px;
}
.iconbox.icon-top-right img{
    margin: 0 0 20px auto;
}
.iconbox img{
    margin-bottom: 20px;
    height: auto;
    -webkit-transition: 0.3s all ease-in-out;
    transition: 0.3s all ease-in-out;
}

.iconbox p,
.iconbox li{
    font-size: 1em;
    line-height: 1.5em;
    -webkit-transition: 0.3s all ease-in-out;
    transition: 0.3s all ease-in-out;
}
.iconbox ul li + li {
    margin-top: 5px;
}
.li-more-mt.iconbox ul li + li {
    margin-top: 10px;
}
.iconbox h3 {
    font-size: 1.35em;
    line-height: 1.2em;
    margin-bottom: .7em;
}
.iconbox p:last-child {
    margin-bottom: 0;
}
.iconbox.no-img h3 {
    margin-top: 0;
}
.iconbox h4 {
    margin-top: 10px;
    font-size: 1.1em;
    line-height: 1.3em;
}
.iconbox h4 > a{
    color: var(--secondary-color);
    text-decoration: underline;
}
.vc_desktop .iconbox .iconbox-content a:hover{
    color: var(--primary-color);
    text-decoration: underline;
}
.vc_desktop .light .iconbox .iconbox-content a:hover {
    color: #fff;
    text-decoration: none;
}
.iconbox .subheadline {
    font-weight: 600;
    font-size: 1em;
    line-height: 1.4em;
    margin: 7px 0 20px;
}

.iconbox p + p{
    margin-top: 0;
}
.iconbox .button,
.iconbox .text-link{
    margin-top: 40px;
    font-size: 0.9em;
}
.iconbox.text-link-primary .text-link{
    color: var(--primary-color);
}
.iconbox .button:after {
    content: '';
    display: block;
    width: 0;
    height: 2px;
    background-color: var(--primary-color);
    -webkit-transition: 0.3s all ease-in-out !important;
    -o-transition: 0.3s all ease-in-out !important;
    transition: 0.3s all ease-in-out !important;
}
.vc_desktop .iconbox .button:hover:after {
    width: 100%;
}

.iconbox.icon-left{
    display: flex;
    align-items: flex-start;
    width: fit-content;
}
.iconbox.icon-left img {
    flex: none;
    margin-right: 20px;
    margin-bottom: 0;
}
.iconbox.icon-left.infobox img {
    margin-right: 15px;
}

.light .iconbox.boxed{
    background-color: #2c3952;
}
.light .iconbox h3{
    color: #fff;
}
.light .iconbox.check-list ul > li {
    color: #aaa;
}
.light .iconbox.check-list ul {
    margin-top: 20px;
}

.iconbox.contact {
    max-width: 650px;
    background: #CCB1A4;
    background: linear-gradient(to top, #AEBEAD 0%, #C3D7BC 100%);
    margin: 0 auto -6.5vw;
    border-radius: 16px;
    align-items: flex-end;
    z-index: 7;
}
.iconbox.contact img {
    margin: -40px 0 0 20px;
}
.iconbox.contact .iconbox-content {
    padding: 30px 40px 35px 20px;
    margin: 0;
}
.vc_desktop .iconbox.contact .iconbox-content a:hover {
    color: #fff;
    text-decoration: none;
}
.vc_desktop .iconbox.contact .iconbox-content a:hover i:before,
.vc_desktop .iconbox.contact .iconbox-content a:hover i:after,
.vc_desktop .iconbox.contact .iconbox-content a:hover:after {
    border-color: #fff;
}

.iconbox.flex-end .iconbox-content {
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
    height: 100%;
}
.iconbox.flex-end .iconbox-content ul{
    margin: 0;
}

/******* ICONBOX END *******/
/******* IMAGEBANNER START *******/

.imagebanner{
    position: relative;
}
.imagebanner > *{
    -webkit-transition: 0.3s all ease;
    transition: 0.3s all ease-in;
}
.imagebanner .image-holder{
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}

.imagebanner .image-holder img {
    height: 460px;
    width: 100%;
    object-fit: cover;
    z-index: 0;
    transition: transform .5s cubic-bezier(.33,1.14,.75,.97);
}
.imagebanner.has-link .image-holder:after{
    content: '';
    background: var(--body-text-color);
    position: absolute;
    top: 0;
    left: 0;
    opacity: .8;
    width: 100%;
    height: 100%;
    display: block;
}
.vc_desktop .imagebanner:hover .image-holder img {
    transform: scale(1.15);
    transition: transform 1.5s cubic-bezier(.33,1.14,.75,.97);
}

.imagebanner > a{
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 6;
}
.imagebanner .content {
    padding: 30px;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
}
.imagebanner .content *{
    color: #fff;
}
.imagebanner h3 {
    font-size: 1.5em;
    margin-bottom: .7em;
}
.imagebanner .content p{
    font-size: 1em;
    line-height: 1.4em;
}

.imagebanner .content img{
    width: 100px;
    height: auto;
    margin-bottom: auto;
}
.imagebanner .content .text-link{
    font-size: 0.9em;
    line-height: 1.3em;
    margin-top: 30px;
}

.vc_desktop .imagebanner:hover .text-link:after {
    width: 100%;
    left: 0;
}


/****** IMAGEBANNER END *******/
/******* LOGO CAROUSEL START *******/

.logo-carousel.divider-top{
    border-top: 2px solid var(--body-text-color);
    padding-top: 30px;
}

.logo-carousel img{
    height: auto;
    width: auto;
    max-width: 180px;
    max-height: 60px;
    object-fit: contain;
}
.logo-carousel-viewport {
    overflow: hidden;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
}
.logo-carousel-track {
    --logo-gap: 30px;
    display: flex;
    width: max-content;
    flex-wrap: nowrap;
    align-items: center;
    animation: logo-scroll var(--logo-scroll-duration, 40s) linear infinite;
    will-change: transform;
}
.logo-carousel-item {
    flex: none;
    margin-right: var(--logo-gap);
}
@keyframes logo-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(calc(-1 * var(--logo-set-width, 50%))); }
}

/******* LOGO CAROUSEL END *******/
/******* CTA BOX START *******/

.cta-box{
    padding: 50px;
    margin-bottom: 30px;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    border-radius: 10px;
    -webkit-transition: 0.3s background-color ease-in;
    transition: 0.3s background-color ease-in;
}
.vc_row-o-equal-height .cta-box{
    height: 100%;
    margin-bottom: 0;
}
.vc_row-o-equal-height .cta-box .cta-box-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: space-between;
}
.cta-box.fullbox-link > a{
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
}
.cta-box.btn-bottom .cta-box-content{
    margin-bottom: 20px;
}
.cta-box .cta-box-inner {
    position: relative;
    z-index: 2;
}
.cta-box.btn-right .cta-box-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.cta-box.btn-right .cta-box-content {
    width: 60%;
}
.cta-box h3 {
    font-size: 2em;
    line-height: 1.05em;
    margin-bottom: 20px;
}
.cta-box.large-hl h3{
    font-size: 2.8em;
}
.cta-box h3:last-child {
    margin-bottom: 0;
}
.cta-box.light .cta-box-content *{
    color: #fff;
}
.cta-box.btn-bottom p:last-child{
    margin-bottom: 50px;
}
.cta-box p a{
    text-decoration: underline;
}
.vc_desktop .cta-box.secondary-box p a:hover {
    color: var(--primary-color);
}
.cta-box.no-link h3 {
    max-width: 100%;
}
.cta-box.btn-right .button,
.cta-box.align-center .button{
    margin: 0 auto;
}
.cta-box .text-link{
    width: fit-content;
}
.cta-box.align-center{
    text-align: center;
}

.cta-box.dark-box,
.vc_desktop .cta-box.fullbox-link.lightblue-box:hover,
.vc_desktop .cta-box.fullbox-link.primary-box:hover{
    background-color: var(--body-text-color);
}
.cta-box.primary-box,
.vc_desktop .cta-box.fullbox-link.dark-box:hover,
.vc_desktop .cta-box.fullbox-link.lightred-box:hover{
    background-color: var(--primary-color);
}
.cta-box.gray-box{
    background-color: var(--light-gray);
}
.cta-box.lightblue-box{
    background-color: var(--light-blue);
    border: 2px solid var(--blue-4);
}
.cta-box.lightred-box{
    background-color: var(--light-red);
    border: 2px solid var(--red-4);
}

.vc_desktop .cta-box.fullbox-link.dark-box:hover .cta-box-content *,
.vc_desktop .cta-box.fullbox-link.lightblue-box:hover .cta-box-content *,
.vc_desktop .cta-box.fullbox-link.lightred-box:hover .cta-box-content *{
    color: #fff;
}
.vc_desktop .cta-box.fullbox-link.lightblue-box:hover .button{
    background-color: var(--primary-color);
}

.vc_desktop .cta-box.fullbox-link.gray-box:hover{
    background-color: #dedede;
}

.cta-box .cta-box-content *{
    -webkit-transition: 0.3s color ease-in-out;
    transition: 0.3s color ease-in-out;
}

#main > .vc_row[data-vc-full-width].vc_row-no-padding .cta-box {
    padding: 0;
}
#main > .vc_row[data-vc-full-width].vc_row-no-padding .cta-box .cta-box-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 100px 50px;
    box-sizing: border-box;
}
#main > .vc_row[data-vc-full-width].vc_row-no-padding .cta-box h3 {
    font-size: 3.4em;
    line-height: 1em;
}

.cta-box.medium{
    padding: 40px;
}
.cta-box.medium h3 {
    font-size: 1.6em;
    margin-bottom: 10px;
}
.cta-box.medium p {
    font-size: 0.95em;
    line-height: 1.5em;
}

.cta-box.small{
    padding: 30px;
}
.cta-box.small h3 {
    font-size: 1.4em;
    margin-bottom: 10px;
}
.cta-box.small p {
    font-size: 0.9em;
    line-height: 1.5em;
}
.cta-box.small p + p{
    margin-top: 10px;
}
.cta-box.small .button {
    padding: 13px 20px 14px;
    font-size: .85em;
}

/******* CTA BOX END *******/
/******* CONTENT SLIDER START *******/

.content-slider {
    position: relative;
}

/******* CONTENT SLIDER END *******/
/******* CONTENTBOX START *******/

.contentbox{
    padding: 40px;
    box-sizing: border-box;
    border-radius: 10px;
}
.contentbox.dark{
    background-color: var(--body-text-color);
}
.contentbox.white{
    background-color: #fff;
}
.contentbox.gray{
    background-color: var(--light-gray);
}
.contentbox.primary{
    background-color: var(--primary-color);
}

.light .contentbox.dark{
    background-color: rgba(0,0,0,.2);
}

/******* CONTENTBOX END *******/
/******* IMAGE CAROUSEL START *******/

.image-carousel {
    padding-top: 30px;
    padding-bottom: 30px;
    position: relative;
}
.image-carousel .swiper-slide {
    width: auto;
    align-self: center;
    height: 370px;
}
.image-carousel img {
    -webkit-user-select: none;
    user-select: none;
    border-radius: 10px;
}

/******* IMAGE CAROUSEL END *******/
/******* CONTACTBOX START ******/

.contact-box{
    border-radius: 4px;
    position: relative;
    background-color: var(--body-text-color);
    box-sizing: border-box;
    display: flex;
    align-items: stretch;
    min-height: 500px;
    overflow: hidden;
}
.contact-box h2,
.contact-box p{
    color: #fff;
    margin-bottom: 30px;
}
.contact-box .button-box{
    margin-top: 70px;
}
.contact-box .contact-box-image {
    width: 50%;
    position: relative;
}
.contact-box .contact-box-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.contact-box .contact-box-image .vibad-logo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100px;
    height: 100px;
    margin-left: -50px;
}
.contact-box .contact-box-content{
    width: 50%;
    padding: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
}

/******* CONTACTBOX END ******/
/******* TESTIMONIALS START *******/

.single-testimonial {
    display: flex;
    max-width: 437px;
    height: auto;
    border-radius: 4px;
}
.testimonial-content {
    width: 100%;
    background-color: #fff;
    border: 1px solid #ddd;
    padding: 30px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
}

.single-testimonial .testimonial-content img{
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 30px;
    margin-right: 10px;
}
.testimonial-content p{
    height: 100%;
    font-size: 1em;
    line-height: 1.3em;
    padding-bottom: 30px;
    font-weight: 300;
    box-sizing: border-box;
}
.single-testimonial .name {
    border-top: 0 solid #ddd;
    padding-top: 15px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
}
.testimonial-content .name h3{
    font-size: 1.1em;
    margin-bottom: 0;
}
.testimonial-content .name .pos {
    font-size: 0.9em;
    line-height: 1.3em;
    display: block;
    margin-top: 2px;
}

.testimonials-slider {
    position: relative;
    margin: 70px 0 0;
}

.testimonial-rating {
    display: block;
    margin-bottom: 20px;
    line-height: 1;
}

.testimonial-rating span {
    display: inline-block;
    color: var(--primary-color);
    font-size: 18px;
    font-weight: 0;
    letter-spacing: 3px;
}

/****** TESTIMONIALS END *******/
/****** ANBIETER VERGLEICH START *******/

.vergleich-wrapper {
    padding-left: 50px;
    padding-right: 50px;
}
.vergleich-wrapper .swiper-button-wrapper {
    position: absolute;
    top: 160px;
    left: 0;
    width: calc(100% + 2px);
    margin-right: -1px;
    margin-left: -1px;
    height: 100%;
    pointer-events: auto;
    display: flex;
    justify-content: space-between;
}
.vergleich-wrapper .swiper-button-wrapper .swiper-button-prev,
.vergleich-wrapper .swiper-button-wrapper .swiper-button-next {
    position: sticky;
    top: 160px;
    width: 25px;
    height: 50px;
    padding: 3px;
    opacity: 1;
    border-radius: 100%;
    background-color: #fff;
    border-color: #ddd;
    flex-shrink: 0;
}
.vergleich-wrapper .swiper-button-wrapper .swiper-button-prev {
    left: -1px;
    right: auto;
    border-radius: 0 100px 100px 0;
}
.vergleich-wrapper .swiper-button-wrapper .swiper-button-next {
    right: -1px;
    border-radius: 100px 0 0 100px;
}
.vergleich-wrapper .swiper-button-wrapper .swiper-button-prev.swiper-button-disabled,
.vergleich-wrapper .swiper-button-wrapper .swiper-button-next.swiper-button-disabled{
    opacity: .3;
}
.vergleich-filter {
    margin-bottom: 2em;
    padding: 0 0;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
.vergleich-controls {
    display: flex;
    justify-content: space-between;
}
#filter-area {
    display: flex;
    gap: 1em;
}
.filter-chip input[type="checkbox"] {
    display: none;
}

.filter-chip {
    display: inline-flex;
    align-items: baseline;
    font-size: 0.8em;
    font-weight: 600;
    padding: 0.5em 1em;
    margin: 0 0.5em 0.5em 0;
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #f5f5f5;
    cursor: pointer;
    position: relative;
}
.filter-chip::before {
    content: '';
    width: 14px;
    height: 14px;
    margin-right: 5px;
    background-color: #fff;
    border-radius: 10px;
    align-self: center;
    border: 1px solid #ddd;
}
.filter-chip:has(input:checked)::after {
    content: url('../img/icons/icon-check-green.svg');
    position: absolute;
    left: 16px;
    top: 6px;
    width: 10px;
    height: 10px;
    display: block;
    z-index: 1;
}
.filter-chip:has(input:checked) {
    background: #e8f5e9;
    border-color: #29ce4c;
}
.filter-chip:hover {
    color: var(--primary-color);
}

.filter-group-label {
    display: block;
    font-size: 0.8em;
    font-weight: 600;
    margin-bottom: 0.2em;
}

#sort-area select {
    display: inline-block;
    width: auto;
    min-width: 180px;
    height: 40px;
    font-size: 0.8em;
    font-weight: 600;
}

.anbieter-wrapper {
    display: flex;
    position: relative;
    margin: 20px 0;
    border: 1px solid #ddd;
    border-bottom: 0;
    overflow: clip;
}

.anbieter-loading-overlay {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 500;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    opacity: 1;
    transition: opacity 0.3s ease;
}
.anbieter-wrapper.is-loading .anbieter-loading-overlay {
    display: flex;
    /* Sicherheitsnetz: blendet sich rein per CSS nach 5s aus, falls das JS den
       is-loading-Zustand nicht entfernt (bfcache, gecachtes/fehlerhaftes JS,
       hängende Ressourcen). Verhindert die "ewige Ladeschleife" garantiert. */
    animation: anbieter-loading-safety 0.4s ease 5s forwards;
}
@keyframes anbieter-loading-safety {
    to {
        opacity: 0;
        visibility: hidden;
    }
}
.anbieter-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #ddd;
    border-top-color: #333;
    border-radius: 50%;
    animation: anbieter-spin 0.8s linear infinite;
}
@keyframes anbieter-spin {
    to { transform: rotate(360deg); }
}

.anbieter-label-col {
    flex-shrink: 0;
    width: 200px;
    position: sticky;
    left: 0;
    z-index: 10;
    background: #fff;
    border-right: 1px solid #ddd;
}

.anbieter-scroll-container {
    flex: 1;
    min-width: 0;
    overflow: clip;
    position: relative;
}
.anbieter-scroll-container::before,
.anbieter-scroll-container::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50px;
    z-index: 20;
    pointer-events: none;
    display: block;
}

.anbieter-header {
    padding: 16px;
    box-sizing: border-box;
    position: sticky;
    top: 0;
    background-color: #fff;
    border-bottom: 1px solid #ddd;
    z-index: 5;
}

.anbieter-item {
    min-width: 220px;
    width: 220px;
    border: 1px solid #eee;
    margin-right: -1px;
    background: #fff;
    display: flex;
    flex-direction: column;
}

.anbieter-item-header {
    padding: 0 0 10px;
    border-top: 4px solid transparent;
    text-align: center;
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    box-sizing: border-box;
    background-color: #fff;
    border-bottom: 1px solid #ddd;
}
.anbieter-item-header h4 {
    font-size: 1em;
    margin-top: 1em;
    margin-bottom: 1em;
}
.anbieter-logo img {
    height: 26px;
    width: auto;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
}
.anbieter-item-header .button {
    padding: 13px 20px 14px;
    font-size: 0.8em;
}

.anbieter-param-row {
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-bottom: 1px solid #ddd;
    text-align: center;
    box-sizing: border-box;
}

.anbieter-param-row.label-row {
    justify-content: flex-start;
    text-align: left;
    background: #fcfcfc;
    line-height: 1.1;
}
.anbieter-param-row.label-row .param-tooltip {
    text-decoration: underline;
    text-decoration-style: dotted;
    cursor: help;
    color: #0070fc;
}
.anbieter-param-row .param-value-inner {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
}
.anbieter-param-row.anbieter-usp {
    display: block;
    text-align: left;
    font-size: 0.8em;
    line-height: 1.4em;
}
.anbieter-param-row.anbieter-usp .param-value-inner {
    flex-direction: column;
}
.anbieter-param-row.anbieter-usp ul {
    margin: 0;
    padding-left: 12px;
}
.anbieter-param-row.anbieter-usp ul li {
    padding-left: 0px;
}
.anbieter-param-row .param-option {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.9em;
    margin: 0 4px;
}
.anbieter-param-row .param-option-yes,
.anbieter-param-row .param-option-no{
    vertical-align: middle;
    line-height: 0.7;
}
.anbieter-param-row .param-option-yes svg{
    color: #29ce4c;
}
.anbieter-param-row .param-option-no svg{
    color: #e53935;
}
.anbieter-param-row .param-extra {
    font-size: 0.75em;
    display: block;
    width: 100%;
}

.vc_mobile_label {
    display: none;
}

.anbieter-item.highlight-default .anbieter-item-header {
    border-top-color: #e5e5e5;
}
.anbieter-item.highlight-red{
    background-color: var(--light-red);
    border-color: var(--red-4);
    z-index: 2;
}
.anbieter-item.highlight-red .anbieter-item-header{
    border-top-color: var(--primary-color);
    background-color: var(--light-red);
}
.anbieter-item.highlight-blue {
    background-color: var(--light-blue);
    border-color: var(--blue-4);
    z-index: 2;
}
.anbieter-item.highlight-blue .anbieter-item-header{
    border-top-color: var(--blue-4);
    background-color: var(--light-blue);
}


.anbieter-bonus {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0.7em;
    line-height: 1.4em;
    font-weight: 600;
    padding: 4px 8px;
    margin-bottom: 1em;
    height: 100%;
    min-height: 40px;
    box-sizing: border-box;
}
.highlight-default .anbieter-bonus{
    background-color: #f3f3f3;
}
.highlight-blue .anbieter-bonus{
    background-color: #d8e7ff;
}
.highlight-red .anbieter-bonus{
    background-color: #ffddd9;
}

.param-tooltip {
    position: relative;
    cursor: default;
    color: var(--body-text-color);
    vertical-align: middle;
    opacity: .7;
    line-height: 1;
    margin-left: 3px;
}

.tooltip-popup {
    position: fixed;
    background: #182B45;
    color: #fff;
    font-size: 0.75em;
    font-weight: 400;
    line-height: 1.4;
    padding: 6px 10px;
    border-radius: 6px;
    white-space: normal;
    width: 200px;
    text-align: left;
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.tooltip-popup.is-visible {
    opacity: 1;
}

/****** ANBIETER VERGLEICH END *******/
/****** ANBIETER SINGLE / SLIDER START *******/

.anbieter-slider {
    position: relative;
    margin: 70px 0 0;
}

.single-anbieter.anbieter-item {
    border-radius: 8px;
    border-width: 2px;
    width: 360px;
    overflow: hidden;
    height: auto;
}
.single-anbieter .anbieter-item-header {
    min-height: 130px;
    padding: 0;
}
.single-anbieter .anbieter-content {
    display: flex;
    flex-wrap: wrap;
    padding: 10px 10px 0;
    gap: 10px;
    height: 100%;
    align-items: center;
}
.single-anbieter .anbieter-param-row {
    display: block;
    width: calc(50% - 5px);
    font-size: 0.9em;
    border: 0;
    box-sizing: border-box;
    background-color: var(--light-gray);
    border-radius: 8px;
    padding: 5px 0;
    align-self: stretch;
    align-content: center;
}
.single-anbieter .anbieter-param-row > span{
    font-size: .8em;
    font-weight: 600;
}
.single-anbieter .anbieter-param-row .param-value-inner {
    gap: 0;
}
.single-anbieter .anbieter-cta {
    margin-top: auto;
    padding: 10px;
    display: flex;
    justify-content: stretch;
}
.single-anbieter .anbieter-cta .button {
    width: 100%;
    text-align: center;
}

.single-anbieter.anbieter-item.highlight-red{
    border-color: var(--primary-color);
}
.single-anbieter.anbieter-item.highlight-blue{
    border-color: var(--blue-4);
}
.single-anbieter.anbieter-item.highlight-default .anbieter-item-header,
.single-anbieter.anbieter-item.highlight-red .anbieter-item-header,
.single-anbieter.anbieter-item.highlight-blue .anbieter-item-header{
    border-top-width: 0;
    padding: 0;
}

.single-anbieter.anbieter-item.highlight-red .anbieter-param-row ,
.single-anbieter.anbieter-item.highlight-blue .anbieter-param-row {
    background-color: #fff;
}
/****** ANBIETER SINGLE / SLIDER END *******/
/****** TEAM START *******/

.teammember img {
    border-radius: 10px;
    margin-bottom: 15px;
}
.teammember .social-icon{
    display: inline-block;
    width: 32px;
    height: 32px;
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
    text-align: center;
    margin: 15px 10px 0 0;
    border-radius: 8px;
    padding: 2px;
    background-color: var(--blue-2);
}
.teammember .social-icon svg {
    fill: #fff;
    z-index: 1;
    padding: 0;
    margin: 0;
    position: relative;
}
.vc_desktop .teammember .social-icon:hover {
    background-color: var(--primary-color);
}

/****** TEAM END *******/
/****** BANNER AD START *******/

.banner-ad{
    position: relative;
    margin: 50px 0 30px;
    padding-top: 18px;
}
.banner-ad:before {
    content: 'WERBUNG';
    position: absolute;
    top: 0;
    left: 0;
    font-size: 0.7em;
    line-height: 1em;
    padding: 3px 5px;
    background-color: #fafafa;
}
.banner-ad-link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 99;
}
.banner-ad-inner{
    position: relative;
}
.banner-ad-text .banner-ad-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    width: 728px;
    height: 90px;
    background-color: var(--light-gray);
    padding: 15px;
    box-sizing: border-box;
}
.banner-ad-rounded > .banner-ad-inner{ border-radius: 10px; overflow: hidden}
.banner-ad-bordered > .banner-ad-inner{ border: 1px solid #ddd; }

.banner-ad-text.banner-ad-bg-light-blue > .banner-ad-inner{ background-color: var(--light-blue); }
.banner-ad-text.banner-ad-bg-light-red  > .banner-ad-inner{ background-color: var(--light-red); }

.banner-ad-text.banner-ad-bg-light-blue.banner-ad-bordered > .banner-ad-inner{ border-color: #c5cedb }
.banner-ad-text.banner-ad-bg-light-red.banner-ad-bordered > .banner-ad-inner { border-color: #fdc6c4 }



.banner-ad-text h3 {
    font-size: 18px;
    margin-bottom: 0;
}
.banner-ad-text p {
    font-size: 12px;
    line-height: 1.4em;
}
.banner-ad .button {
    white-space: nowrap;
    min-width: fit-content;
    font-size: 0.8em;
    padding: 1em 1.5em;
}

.banner-ad-logo {
    flex-shrink: 0;
    width: auto;
    max-width: 100px;
}
.banner-ad-logo img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 60px;
    object-fit: contain;
    display: block;
}

.banner-ad-text.banner-ad-300x250 .banner-ad-inner {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 14px;
}
.banner-ad-text.banner-ad-300x250 .button {
    margin-top: auto;
}
.banner-ad-text.banner-ad-300x250 .banner-ad-logo {
    max-width: 100%;
    width: 100%;
}
.banner-ad-text.banner-ad-300x250 .banner-ad-logo img{
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 70px;
    object-fit: contain;
    object-position: center;
    display: block;
}
.banner-ad-text.banner-ad-300x250 h3 {
    font-size: 16px;
    margin-bottom: 8px;
}

.banner-ad-728x90,
.banner-ad-728x90 > .banner-ad-inner {
    width: 100%;
    max-width: 728px;
}
.banner-ad-300x250,
.banner-ad-300x250 > .banner-ad-inner {
    width: 300px;
    max-width: 100%;
    height: 250px;
}
.banner-ad-300x250.banner-ad-text > .banner-ad-inner {
    height: auto;
    min-height: 250px;
}
.banner-ad-300x250.banner-ad-image > .banner-ad-inner {
    height: auto;
}
.banner-ad-300x250.banner-ad-image img {
    display: block;
    width: 100%;
    height: auto;
}
.banner-ad-300x250.banner-ad-html > .banner-ad-inner {
    height: auto;
    aspect-ratio: 300 / 250;
}
.banner-ad-300x250.banner-ad-html iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.banner-ad-728x90.banner-ad-text > .banner-ad-inner {
    width: 100%;
    max-width: 728px;
    height: auto;
    min-height: 90px;
}

.banner-ad-728x90.banner-ad-image > .banner-ad-inner {
    height: auto;
}
.banner-ad-728x90.banner-ad-image img {
    display: block;
    width: 100%;
    height: auto;
}

.banner-ad-728x90.banner-ad-html > .banner-ad-inner {
    height: auto;
    aspect-ratio: 728 / 90;
}
.banner-ad-728x90.banner-ad-html iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
/****** BANNER AD END *******/
/****** WORKSHOP BOX START *******/

.workshop-box {
    display: flex;
    align-items: stretch;
    background-color: #fff;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #ddd;
    margin-bottom: 30px;
}
.workshop-box img {
    flex-shrink: 1;
    width: 30%;
    height: auto;
    object-fit: cover;
}
.workshop-box .workshopbox-content {
    padding: 30px;
    font-size: 0.95em;
}
.workshop-box .workshopbox-content h3{
    font-size: 1.8em;
}
.workshop-box .workshopbox-content p + ul {
    margin: 15px 0 30px;
}
.workshop-box .workshopbox-content .text-link {
    font-size: 1em;
}

.workshop-box.check-list ul li:before,
.workshop-box.arrow-list ul li:before {
    width: 12px;
}
.workshop-box.check-list ul > li,
.workshop-box.arrow-list ul > li {
    padding-left: 20px;
}

/****** WORKSHOP BOX END *******/
/******* LOGO GRID START *******/

.logo-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-column-gap: 30px;
    grid-row-gap: 8px;
    text-align: center;
}
.logo-grid .single-logo{
    width: 100%;
    height: 100%;
    padding: 20px 10px;
    box-sizing: border-box;
    border-radius: 5px;
    /*background-color: var(--light-gray);*/
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease-in-out;
}
.logo-grid .single-logo:first-child{
    padding-left: 0;
    margin-left: 0;
}
.logo-grid img {
    padding: 0;
    max-height: 70px;
    /* min-width: 230px; */
    width: 100%;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

/******* LOGO GRID END *******/