/*
    Theme Name:   Tiburtius Immobilien (Hello Elementor Child Theme)
    Theme URI:    https://tiburtius.immo.odercode.de
    Description:  Ein individuelles Child-Theme für die Tiburtius Immobilien Website.
    Author:       Peter Müller | odercode web development
    Author URI:   https://odercode.de
    Template:     hello-elementor
    Version:      1.0.0
    Text Domain:  tiburtius-child
*/

:root {

    /* VARS */
    font-size: 16px;
    --tib-transition: all 400ms ease;
    --tib-text-shadow: 0 0.125rem 0.25rem rgb(from black r g b / 15%);
    --tib-drop-shadow: -0.5rem 0.75rem 1rem rgb(from black r g b / 15%);
    --tib-drop-shadow-large: -0.5rem 0.75rem 15rem rgb(from black r g b / 50%);
    --tib-container-box-shadow: 2rem 2rem 4rem -1.5rem rgb(from black r g b / 30%);
    --tib-global-spacing-h: 3rem;
        &:has(body[data-elementor-device-mode="tablet"]) {
            --tib-global-spacing-h: 2rem;
        }
        &:has(body[data-elementor-device-mode="mobile"]) {
            --tib-global-spacing-h: 1rem;
        }
    --tib-global-spacing-v: 2rem;
        &:has(body[data-elementor-device-mode="mobile"]) {
            --tib-global-spacing-v: 1rem;
        }
    --tib-header-spacing: 4rem;
        &:has(body[data-elementor-device-mode="mobile"],body[data-elementor-device-mode="tablet"]) {
            --tib-header-spacing: 2rem;
        }
    --tib-logo-maxwidth: 10rem;
        &:has(body.is-scrolled, body .wpr-mobile-mega-menu-wrap.is-open){
            --tib-logo-maxwidth: 5rem; 
        }
    --tib-header-height: calc(clamp(3rem, 8vw, var(--tib-logo-maxwidth)) + var(--tib-header-spacing));
    --tib-arrow-width: 2rem;
        &:has(body[data-elementor-device-mode="mobile"]) {
            --tib-arrow-width: 1rem;
        }
    --tib-footer-icon-height: clamp(3.5rem, 5vw, 5rem);
        &:has(body[data-elementor-device-mode="tablet"]) {
            --tib-footer-icon-height: 3rem;
        }
        &:has(body[data-elementor-device-mode="mobile"]) {
            --tib-footer-icon-height: 4rem;
        }
    /* GLOBAL */

    ::selection,
    ::-moz-selection {
        background-color: var(--e-global-color-5646cc51);
        color: var(--e-global-color-6f2775a);
    }

    body {
        margin: 0 2rem;
    }

    .cmplz-placeholder-element {
        box-shadow: none;
        background-image: url('/wp-content/uploads/2026/04/map-monochrome.webp') !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        height: 100% !important;
        display: flex;
        flex-direction: column;
        & > button {
            top: 33% !important;
        }
    }

    h1, h2, h3, h4, h5, h6 {
        text-shadow: var(--tib-text-shadow);
        margin-block-start: 0;
        margin-block-end: 0;
    }

    p {
        margin-block-start: 0;
        margin-block-end: 1em;
        &:last-child {
            margin-block-end: 0;
        }
    }

    :is(p, li, h1, h3, h4, h5, h6) {
        hyphens: auto;
    }

    .tib-drop-shadow {
        filter: drop-shadow(var(--tib-drop-shadow));
    }

    .tib-pointer-ignore, .tib-pointer-ignore > a {
        cursor: default;
    }

    /* Animations */
    .fadeInLeft {
        animation-name: tib-fadeInLeft;
    }
    .fadeInRight {
        animation-name: tib-fadeInRight;
    }
    .fadeInUp {
        animation-name: tib-fadeInUp;
    }
    .fadeInDown {
        animation-name: tib-fadeInDown;
    }

    /* XPro- und RA Template-Handling - unerwüschte Wrapper werden mit display:contents ignoriert */
    .elementor-widget-xpro-template, 
    .elementor-widget-xpro-template div:has(.tib-template),
    .elementor-widget-wpr-elementor-template,
    .elementor-widget-wpr-elementor-template div:has(.tib-template)
    {
        display: contents;
    }

    /* COMPONENTS */   

    .tib-hero {
        box-shadow: 2rem 8rem 8rem -1rem rgba(0,0,0,0.5);
        height: max(70vh, min(36rem, 90vh));
        .tib-heromap {
            height: calc(max(70vh,min(35rem,90vh)) - var(--tib-header-height));
            top: var(--tib-header-height);
            #immomakler-map-iframe {
                height: calc(max(70vh,min(35rem,90vh)) - var(--tib-header-height)) !important;
                max-height: calc(max(70vh,min(35rem,90vh)) - var(--tib-header-height)) !important;
            }
        }
        & ~ div {
            overflow: hidden;
        }
    }
    .tib-hero-heading {
        h1 {
            display: flex;
            flex-direction: column;
            gap: 1rem;
            width: min(100%,54rem);
            span {
                width: fit-content;
                background-color: var(--e-global-color-primary);
                padding: 0.5rem 0.5rem 0.25rem 0.5rem;
                font-family: var(--e-global-typography-0f011f6-font-family), Sans-serif;
                font-size: var(--e-global-typography-0f011f6-font-size);
                font-weight: var(--e-global-typography-0f011f6-font-weight);
                line-height: var(--e-global-typography-0f011f6-line-height);
            }
        }
    }

    .tib-timeline.tib-timeline.tib-timeline.tib-timeline.tib-timeline.tib-timeline {
        .wpr-wrapper {
            overflow: visible;
        }
        .wpr-timeline-entry {
            filter: drop-shadow(var(--tib-drop-shadow));
        }
        &:not(:last-child) {
            .wpr-middle-line {
                height: 100% !important;
            }
            .wpr-timeline-fill {
                transform: translateX(-50%) scaleY(1.35) !important;
                transform-origin: top center !important;
            }
        }
        &:not(:first-child) {
            .wpr-middle-line {
                top: 0 !important;
            }
            .wpr-timeline-fill {
                top: 0 !important;
            }
        }

    }

    .tib-testimonial {
        .slick-slide {
            display: flex;
            &>div {
                display: flex;
                flex-grow: 1;
            }
        }
        .wpr-testimonial-content-wrap {
            display: flex;
            flex-grow: 1;
            flex-direction: column;
        }
        .slick-active .wpr-testimonial-content-inner {
            filter: drop-shadow(var(--tib-drop-shadow));
        }
        .wpr-testimonial-content-inner {
            display: flex;
            flex-grow: 1;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        .wpr-testimonial-prev-arrow {
            left: 0;
            top: 44%;
        }
        .wpr-testimonial-next-arrow {
            right: 0;
            top: 44%;
        }
        .wpr-testimonial-icon {
            position: absolute;
            opacity: 1;
            top: -0.75rem;
            left: 2rem;
            z-index: -1;
        }
        .slick-dots {
            display: flex;
        }
        .wpr-testimonial-content {
            margin-block-end: 0 !important;
            p {
                margin-block-start: 0;
                margin-block-end: 1.25em;
                &:last-child {
                    margin-block-end: 0;
                }
                &:has(strong) {
                    margin-block-end: 0;
                }
            }
        }
    }

    .tib-map {
        height: var(--min-height, 30rem);
        .wpr-google-map.wpr-google-map.wpr-google-map {
            height: var(--min-height, 30rem);
        }
    }

    .tib-carousel {
        .swiper-wrapper {
            height: var(--min-height, 30rem);
            * {
                height: 100%;
            }
            .swiper-slide {
                filter: drop-shadow(var(--tib-drop-shadow));
            }
            .swiper-slide-image {
                object-fit: cover;
                height: 100%;
                width: 100%;
            }
        }
        .elementor-swiper-button-next {
            right: 0;
            & > svg {
                width: var(--tib-arrow-width, 4rem);
            }
        }
        .elementor-swiper-button-prev {
            left: 0;
            & > svg {
                width: var(--tib-arrow-width, 4rem);
            }
        }
    }

    :is(.elementor-widget-text-editor, #cmplz-document) {
        ul {
            list-style-type: none;
            margin-block-end: 1em;
            padding-left: 1.25rem;
            padding-right: 0;
            &:is(.tib-text &){
                padding-left: var(--tib-global-spacing-h);
                padding-right: var(--tib-global-spacing-h);
            };
        }

        ul li {
            position: relative; 
            margin-bottom: 4px; 
        }

        ul li::before {
            content: "\f0da"; 
            font-family: "Font Awesome 5 Free"; 
            font-weight: 900; 
            font-size: 1em;
            position: absolute;
            left: -1rem; 
            top: 0;
            color: var(--e-global-color-primary)
        }
        
        :is(h1, h2, h3, h4, h5, h6):not(.tib-hero *) {
            text-shadow: var(--tib-text-shadow);
            margin-block-start: 1em;
            margin-block-end: 0.5em;
        }
    }

    /* COMPLIANZ COOKIE DOCUMENT */
    #cmplz-document#cmplz-document {
        h2 {
            color: var(--e-global-color-primary);
            font-family: var(--e-global-typography-0e32dc8-font-family), Sans-serif;
            font-size: var(--e-global-typography-0e32dc8-font-size);
            font-weight: var(--e-global-typography-0e32dc8-font-weight);
            line-height: var(--e-global-typography-0e32dc8-line-height);
        }
        p.cmplz-subtitle {
            color: var(--e-global-color-accent);
            font-family: var(--e-global-typography-e8b03bb-font-family), Sans-serif;
            font-size: var(--e-global-typography-e8b03bb-font-size);
            font-weight: var(--e-global-typography-e8b03bb-font-weight);
            line-height: var(--e-global-typography-e8b03bb-line-height);
        }
        p, details * {
            color: var(--e-global-color-accent);
            font-family: var(--e-global-typography-primary-font-family), Sans-serif;
            font-size: var(--e-global-typography-primary-font-size);
            font-weight: var(--e-global-typography-primary-font-weight);
            line-height: var(--e-global-typography-primary-line-height);
            letter-spacing: var(--e-global-typography-primary-letter-spacing);
        }
        details {
            background-color: var(--e-global-color-f3b3e5a);
            margin-bottom: 0.5rem;
            summary {
                position: relative;
                h3, .cmplz-category-title {
                    font-weight: 600;
                    text-shadow: none;
                }
                &::after {
                    content: "";
                    position: absolute;
                    top: 50%;
                    right: 1rem;
                    z-index: 1;
                    width: 1rem;
                    height: 1rem;
                    transform: translateY(-55%);
                    background-color: currentColor;
                    -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3e%3cpath d='M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z'/%3e%3c/svg%3e");
                    mask-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3e%3cpath d='M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z'/%3e%3c/svg%3e");
                    -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
                    -webkit-mask-size: contain;
                    mask-size: contain;
                }
            }
            .cmplz-icon {
                display: none;
            }
            & > *:not(summary), .cmplz-description {
                padding: var(--tib-global-spacing-v) var(--tib-global-spacing-h);
                &.cookies-per-purpose {
                    gap: calc(var(--tib-global-spacing-h) * 0.25);
                    padding-bottom: var(--tib-global-spacing-v);
                }
                :is(h4, h5) {
                    padding: 0;
                    margin: 0 0 calc(var(--tib-global-spacing-h) * 0.25) 0;
                    font-weight: 600;
                    text-shadow: none;
                    &:is(h5) {
                        font-style: italic;
                        font-weight: 400;
                        margin: 0;
                    }
                }
                &:is(.cmplz-sharing-data, .cmplz-service-description) {
                    width: calc((100% - 5px) / 2);
                }
            }
            .cmplz-service-header, .cmplz-category-header {
                background-color: var(--e-global-color-440d04a);
                &.cmplz-service-header, &.cmplz-category-header {
                    padding: calc(var(--tib-global-spacing-v) * 0.5) 3rem calc(var(--tib-global-spacing-v) * 0.5) var(--tib-global-spacing-h);
                    margin: 0;
                    &.cmplz-service-header {
                        & > div {
                            grid-template-columns: minmax(8rem, 1fr) 1fr 0 1rem 0;
                            grid-gap: 1rem;
                            * {
                                margin: 0;
                            }   
                        }
                    }
                    &.cmplz-category-header {
                        grid-template-columns: minmax(8rem, 1fr) 1fr 0;
                        grid-gap: 1rem;
                    }
                }
            }
        }
    }

    .tib-scrollup {
        .wpr-stt-btn {
            box-shadow: none;
            filter: drop-shadow(var(--tib-drop-shadow));
        }
        * {
            transition: var(--tib-transition);
        }
    }

    .tib-accordion summary {
        transition: var(--tib-transition);
    }

    .tib-container-box-shadow {
        box-shadow: var(--tib-container-box-shadow);
    }

    /* NAVIGATION */
    #tib-main-nav {
        /* --tib-logo-maxwidth: 10rem; */
        width: 100vw;
        position: fixed;
        z-index: 150;
        top: 0;
        left: 0;
        min-height: unset;

        .e-con-inner {
            min-height: unset;
        }

        .menu-item > a {
            text-shadow: var(--tib-text-shadow);
            transition: var(--tib-transition);
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            .wpr-sub-icon {
                margin: 0 0 0 0.5rem;
            }

            &::after {
                flex-shrink: 0;
                transition: var(--tib-transition);
                align-self: flex-end;
                position: static;
                transform: translateY(0.25rem);
                width: 0;
            }

            &.wpr-active-menu-item::after {
                width: 100%;
            }

            &:hover::after {
                width: 100%;
            }
        }

        #tib-logo {
            flex-shrink: 1;
            width: clamp(3rem, 8vw, var(--tib-logo-maxwidth));
            transition: var(--tib-transition);
            transform-origin: top left;

            img {
                filter: brightness(0) invert(1);
            }

        }

        .wpr-sub-mega-menu {
            top: 0.5rem;
            border-top: 1.5rem solid transparent;
            overflow: visible;
            z-index: 100;

            .wpr-mobile-toggle-line {
                background-color: var(--e-global-color-primary);
            }

            .elementor-heading-title:has(a) {
                &::after {
                    content: "\f061"; 
                    font-family: "Font Awesome 5 Free";
                    font-weight: 900; 
                    font-size: 1rem;
                    margin-left: 1rem;
                    top: 0;
                    color: var(--e-global-color-primary)
                }
                a {
                    &:hover::before {
                        background-color: rgb(from var(--e-global-color-accent) r g b / 10%);
                    }
                    &::before {
                        transition: var(--tib-transition);
                        position: absolute;
                        content: ' ';
                        bottom: 0;
                        left: 0;
                        right: 0;
                        top: 0;
                    }
                }
            }
        }

    }

    /* SCROLLED NAVIGATION */

    body.is-scrolled #tib-main-nav, 
    #tib-main-nav:has(.wpr-mobile-mega-menu-wrap.is-open){

        /* --tib-logo-maxwidth: 5rem;     */
        backdrop-filter: blur(1rem);
        box-shadow: var(--tib-container-box-shadow);

        background-color: rgb(from var(--e-global-color-f3b3e5a) r g b / 75%);
        &:has(.wpr-mobile-mega-menu-wrap.is-open) {
                background-color: rgb(from var(--e-global-color-c5b2227) r g b / 98%);
        }
        
        .e-con-inner {
            padding-top: 0.75rem;
            padding-bottom: 0.75rem;
            transition: var(--tib-transition);
        }

        .menu-item > a {
            color: var(--e-global-color-accent);
        }

        :is(h2, h3, h4, h5, h6) {
            color: var(--e-global-color-primary);
            letter-spacing: 3%;
            word-spacing: 10%;
        }

        .wpr-mobile-toggle-line {
            background-color: var(--e-global-color-accent);
            transform-origin: center;
        }
        
        &:has(.wpr-mobile-mega-menu-wrap.is-open){
            .wpr-mobile-toggle-line:nth-child(1) {
                transform: rotate(45deg);
            }
            .wpr-mobile-toggle-line:nth-child(2) {
                opacity: 0;
            }
            .wpr-mobile-toggle-line:nth-child(3) {
                transform: rotate(-45deg);
            }
        }

        #tib-logo {
            img {
                filter: brightness(1) invert(0);
            }
        }
    }

    /* LINKS */
    :not(li) > a:not(.elementor-button),
    li > a.wpr-mobile-menu-item,
    #tib-footer a .elementor-icon-list-text,
    .cmplz-link.cmplz-link.cmplz-link,
    #cmplz-document a {
        transition: var(--tib-transition);
        text-decoration: underline;
        text-underline-offset: 0.35em;
        text-decoration-thickness: 0.25em;
        text-decoration-inset: 0;
        text-decoration-color: rgb(from currentColor r g b / 15%);
        &:hover, &.is-active {
            text-decoration-color: var(--e-global-color-primary);
            /* color: var(--e-global-color-primary); */
            color: currentColor;
        }
        &:hover {
            text-decoration-inset: 1rem -0.25rem;
        }
    }
    #tib-footer a .elementor-icon-list-text,
    #tib-footer a {
            &:hover, &.is-active {
            color: var(--e-global-color-text);
        }
    }

    
    /* FOOTER */
    #tib-footer {
        .tib-footer-logos {
            flex-wrap: wrap;
            img {
                filter: grayscale(100%) sepia(8%) brightness(95%);
                opacity: 0.75;
                object-fit: contain;
                width: auto;
                height: var(--tib-footer-icon-height, 5rem); 
                max-width: calc(var(--tib-footer-icon-height, 5rem) * 2);
            }
        }
    }

    /* COOKIE-BANNER */
    .cmplz-cookiebanner {
        --right: 4rem;
        --bottom: 2rem;
        --maxWidth: 52rem;
        --spacing-h: 3rem;
        --spacing-v: 2rem;
        body[data-elementor-device-mode="tablet"] & {
            --right: 1rem;
            --bottom: 1rem;
            --spacing-h: 2rem;
            --spacing-v: 2rem;
        }
        body[data-elementor-device-mode="mobile"] & {
            --right: 0.5rem;
            --bottom: 0.5rem;
            --spacing-h: 1rem;
            --spacing-v: 1rem;
        }
        gap: 1rem;
        top: unset !important;
        left: unset !important;
        bottom: var(--bottom) !important;
        right: var(--right);
        background-color: var(--e-global-color-440d04a);
        filter: drop-shadow(var(--tib-drop-shadow-large));
        padding: var(--spacing-v) var(--spacing-h);
        min-width: 0 !important;
        max-width: var(--maxWidth);
        width: clamp(20rem, 100vw - 2 * var(--right), var(--maxWidth));
    }
    .cmplz-header {
        grid-template-columns: 6rem 1fr !important;
    }
    .cmplz-title {
        font-size: 1.25em !important;
        white-space: nowrap;
        /* color: var(--e-global-color-primary) !important; */
        display: block !important;
        justify-self: start !important;
        padding-left: calc(var(--spacing-h) * 1) !important;
    }
    .cmplz-buttons {
        gap: calc(var(--spacing-h) * 0.5) !important;
        button {
            height: auto !important;
        }
    }
    .cmplz-links {
        margin-top: calc(var(--spacing-v) * 0.5) !important;
        ul {
            gap: calc(var(--spacing-h) * 1) !important;
        }
    }
    .cmplz-logo img {
        max-height: 6rem !important;
    }
    .cmplz-body * {
        width: unset !important;
    }

    /* BUTTONS */
    .elementor-button, button.wpcf7-submit[type="submit"], button.immomakler-submit, button#immomakler-searchagent-form-submit {
        --tib-btnColor: var(--e-global-color-secondary);
        --tib-btnTextColor: var(--e-global-color-text);

    }
    .cmplz-btn.cmplz-btn, button.cmplz-blocked-content-notice {
        --tib-btnColor: var(--e-global-color-primary);
        --tib-btnTextColor: var(--e-global-color-text);
        &:is(.cmplz-view-preferences, .cmplz-deny) {
            --tib-btnColor: var(--e-global-color-5646cc51);
            --tib-btnTextColor: var(--e-global-color-accent);
        }
    }
    :is(.elementor-button, button.wpcf7-submit[type="submit"], button.immomakler-submit, .cmplz-btn.cmplz-btn.cmplz-btn.cmplz-btn, button.cmplz-blocked-content-notice, button#immomakler-searchagent-form-submit) {
        color: var(--tib-btnTextColor);
        background-color: var(--tib-btnColor);
        font-family: var(--e-global-typography-accent-font-family), Sans-serif;
        font-size: var(--e-global-typography-accent-font-size);
        font-weight: var(--e-global-typography-accent-font-weight);
        line-height: var(--e-global-typography-accent-line-height);
        letter-spacing: var(--e-global-typography-accent-letter-spacing);
        border: none;
        border-radius: 0.5rem;
        padding: 1rem 2rem;
        margin: 0;
        position: relative;
        transition: var(--tib-transition);
        box-shadow: var(--tib-drop-shadow);
        overflow: hidden;
        z-index: 0;
        * {
            position: relative;
            z-index: 20;
        }
        .elementor-button-content-wrapper {
            gap:0.75em;
            flex-direction: row-reverse;
        }
        &::before {
            position: absolute;
            content: "";
            top: 0;
            right: 0;
            bottom: 0;
            z-index: -1;
            width: 33%;
            background-color: color-mix(in srgb, var(--tib-btnColor) 85%, black 15%);
            opacity: 0.9;
            clip-path: polygon(25% 0, 100% 0, 100% 100%, 0% 100%);
            transition: var(--tib-transition);
        }
        &:hover {
            text-decoration: none;
            background-color: color-mix(in srgb, var(--tib-btnColor) 90%, black 10%) !important;
            &::before {
                background-color: var(--tib-btnColor);
                clip-path: polygon(0 0, 100% 0, 100% 100%, 10% 100%);
            }
        }
    }

    /* CONTACT AND SEARCH AGENT FORM */
    #tib-contact {
        scroll-margin-top: 4rem;
        a {
            color: var(--e-global-color-accent);
        }
    }
    
    form.wpcf7-form {
        --tib-form-success-background-color: var(--e-global-color-440d04a);
        --tib-form-success-text-color: var(--e-global-color-secondary);
        &.sent {
            --tib-form-success-background-color: var(--e-global-color-primary);
            --tib-form-success-text-color: var(--e-global-color-f3b3e5a);
        }
    }
    
    .tib-contact-form, #tib-immo-search-agent {
        font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
        font-size: var( --e-global-typography-primary-font-size );
        font-weight: var( --e-global-typography-primary-font-weight );
        line-height: var( --e-global-typography-primary-line-height );
        letter-spacing: var( --e-global-typography-primary-letter-spacing );
        color: var(--e-global-color-primary);
        display: flex;
        flex-direction: column;
        gap: 2rem;

        .tib-row {
            display: flex;
            gap: 1rem;
            &:has(button[type="submit"]) {
                margin-bottom: 1rem;
                justify-content: flex-end;
            }
        }

        label {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            font-weight: normal;
        }
        &#tib-immo-search-agent {
            .row {
                display: flex;
                flex-direction: row;
                gap: 1rem;
                flex-wrap: wrap;
                margin-bottom: 1rem;
                &::before, &::after {
                    display: none;
                }
                &:has(button[type="submit"]) {
                    flex-direction: row-reverse;
                    flex-wrap: wrap;
                    row-gap: calc(var(--tib-global-spacing-v) * 2);
                    > div {
                        text-align: right;
                        padding: 0;
                        width: auto;
                        flex-grow: 1;
                        &:has(button[type="submit"]) {
                            flex-grow: 0;
                        }
                    }
                }
            }
            label {
                display: block;
                margin: 0;
            }
            input {
                margin: 0;
            }
            .form-group {
                display: flex;
                flex-direction: column;
                gap: 0.5rem;
                margin-bottom: 1rem;
                padding: 0;
                justify-content: space-between;
                flex-grow: 1;
                flex-basis: 10rem;
                &:has(.immomakler-search-taxonomy) {
                    flex-direction: row;
                    flex-wrap: wrap;
                    gap: 1rem;
                    .immomakler-search-taxonomy {
                        margin: 0 !important;
                        flex-grow: 1;
                        flex-basis: 10rem;
                    }
                }
                &:has(.radio-inline) {
                    flex-direction: row;
                    flex-wrap: nowrap;
                    flex-grow: 0;
                    gap: 1rem;
                    .radio-inline {
                        padding: 0;
                    }
                    input {
                        position: static;
                        margin-right: 0.5rem;
                        margin-left: 0rem;
                    }
                }
                &:has(input[type="checkbox"]) {
                    label {
                        color: var(--e-global-color-accent);
                        line-height: 1.5;
                    }
                    input {
                        margin-right: 0.5rem;
                    }
                }
                .bootstrap-select {
                    margin: 0;
                }
            }
            .form-group.has-error .form-control {
                background-color: var(--e-global-color-440d04a);
                border-color: var(--e-global-color-secondary);
            }
            .form-check.has-error label {
                background-color: var(--e-global-color-440d04a);
                padding: 1rem;
                border-width: 0 !important;
                border-radius: 4px;
            }
            p.alert {
                padding: 1rem;
                border-width: 0 !important;
                text-align: left;
                &.alert-danger {
                    background-color: var(--e-global-color-440d04a);
                    color: var(--e-global-color-secondary);
                }
                &.alert-success {
                    background-color: var(--e-global-color-primary);
                    color: var(--e-global-color-text);
                }
            }
        }

        input, textarea {
            font-family: var(--e-global-typography-c136e90-font-family), Sans-serif;
            font-size: var(--e-global-typography-c136e90-font-size);
            font-weight: var(--e-global-typography-c136e90-font-weight);
            line-height: var(--e-global-typography-c136e90-line-height);
            letter-spacing: var(--e-global-typography-c136e90-letter-spacing);
            color: rgb(from var(--e-global-color-accent) r g b / 80%);

            background-color: rgb(from var(--e-global-color-c5b2227) r g b / 40%);
            border: 1px solid var(--e-global-color-5646cc51);
            height: auto;
            padding: 0.75rem 1rem;
            border-radius: 4px;
            &:focus {
                outline: none;
                border-color: var(--e-global-color-primary);
                background-color: rgb(from var(--e-global-color-c5b2227) r g b / 80%);
            }
            &::placeholder {
                opacity: 0.5;
            }
            &[rows] {
                min-height: 10rem;
            }
        }
        .wpcf7-not-valid-tip {
            font-family: var( --e-global-typography-c136e90-font-family ), Sans-serif;
            font-size: var( --e-global-typography-c136e90-font-size );
            font-weight: var( --e-global-typography-c136e90-font-weight );
            line-height: var( --e-global-typography-c136e90-line-height );
            letter-spacing: var( --e-global-typography-c136e90-letter-spacing );
            color: var(--e-global-color-secondary);
            padding: 0 0 0 0.5rem;
            margin: 0.5rem 0 0 0;
            text-align: left;
            border-left: 0.5rem solid currentColor;
        }
        & ~ .wpcf7-response-output.wpcf7-response-output.wpcf7-response-output.wpcf7-response-output {
            background-color: var(--tib-form-success-background-color);
            color: var(--tib-form-success-text-color);
            border: none;
            margin: var(--tib-global-spacing-v) calc(var(--tib-global-spacing-h) * -1) calc(var(--tib-global-spacing-v) * -1) calc(var(--tib-global-spacing-h) * -1);
            padding: var(--tib-global-spacing-v) var(--tib-global-spacing-h);
        }
    }

    body[data-elementor-device-mode="mobile"] {

        .tib-contact-form {
            gap: 1rem;

            .tib-row {
                flex-wrap: wrap;
                gap: 1rem;

                label {
                    flex-basis: 100%;
                    flex-shrink: 0;
                }
            }

            .tib-row {
                &:has(button[type="submit"]) {
                    justify-content: center;
                    margin-top: 1rem;
                }
            }

        }

        .tib-timeline {
            .wpr-story-info-vertical::after {
                border-left-style: none;
            }
        }

        #tib-main-nav {
            .wpr-mobile-toggle-line {
                height: 2px;
            }
            
            .wpr-mobile-toggle {
                width: 1.5rem
            }
        }
    }

    body[data-elementor-device-mode="mobile"],
    body[data-elementor-device-mode="tablet"] {

        /* --header-left-padding: 5rem; */
        /* --header-right-padding: 3rem; */
        --toggle-icon-width: 1.75rem;
        --toggle-icon-height: 2rem;
        --line-distance: 9px;
        &:not([data-elementor-device-mode="tablet"]) {
            /* --header-left-padding: 2.5rem; */
            /* --header-right-padding: 1rem; */
            --toggle-icon-width: 1.5rem;
            --toggle-icon-height: 1.75rem;
            --line-distance: 7px;
        }
        margin: 0;

        #tib-main-nav {
            .wpr-mobile-toggle-wrap {
                cursor: pointer;
            }
            .wpr-mobile-toggle {
                pointer-events: none;
                position: relative;
                width: var(--toggle-icon-width);
                height: var(--toggle-icon-height);
                .wpr-mobile-toggle-line {
                    transition: var(--tib-transition);
                    top: 44%;
                    margin: 0;
                    position: absolute;
                    left: 0;
                    &:nth-child(1) {
                        transform: translateY(calc(var(--line-distance) * -1));
                    }
                    &:nth-child(3) {
                        transform: translateY(var(--line-distance));
                    }
                }
            }
            .wpr-mobile-menu-display-dropdown {
                position: static;
            }
            .wpr-mobile-mega-menu-wrap {
                top: 100% !important;
                left: 0 !important;
                width: 100vw !important;
                justify-content: center;
                /* padding: 10vh var(--header-right-padding) 2rem calc(clamp(3rem, 8vw, var(--tib-logo-maxwidth)) + var(--header-left-padding)) !important; */
                padding: 10vh 1rem 2rem 1rem !important;
                background-color: var(--e-global-color-f3b3e5a);
                visibility: visible !important;
                display: flex !important;
                opacity: 0 !important;
                pointer-events: none;
                &.is-open {
                    opacity: 0.98 !important;
                    pointer-events: all;
                }
                box-shadow: var(--tib-container-box-shadow);
                height: 100vh !important;
                transition: var(--tib-transition);

                .menu-item {
                    margin-bottom: 2rem;
                    &::after {
                        content: "\f061"; 
                        font-family: "Font Awesome 5 Free";
                        font-weight: 900; 
                        font-size: 1rem;
                        margin-left: 1rem;
                        top: 0;
                        color: var(--e-global-color-primary)
                    }
                    .wpr-mobile-menu-item {
                        display: inline-block;
                        padding: 0;
                        text-shadow: none;
                    }
                    &.current_page_item .wpr-mobile-menu-item{
                        text-decoration-color: var(--e-global-color-primary);
                    }
                }
            }
        }
    }
    
}

@keyframes tib-fadeInLeft {
    0% {
        opacity: 0;
        transform:translate3d(-100%, 0, 0);
    }
    30% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform:none;
    }
}

@keyframes tib-fadeInRight {
    0% {
        opacity: 0;
        transform:translate3d(100%, 0, 0);
    }
    30% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform:none;
    }
}

@keyframes tib-fadeInUp {
    0% {
        opacity: 0;
        transform:translate3d(0, 100%, 0);
    }
    30% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform:none;
    }
}

@keyframes tib-fadeInDown {
    0% {
        opacity: 0;
        transform:translate3d(0, -100%, 0);
    }
    30% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform:none;
    }
}