@import url('price.css');

html {
    width: 100.0%;
    scroll-behavior: smooth;
    scroll-padding-top: 3.00em;
}

body {
    width: 100.0%;
    min-width: 375px;
    --space: clamp(5.00em, 7.50vmin, 10.00em);
    --edge: clamp(1.50em, 2.50vw, 3.00em);
    --fixx: 1.50rem;
}

*, :before {
    margin: 0;
    padding: 0;
    border: 0;
    border-style: solid;
    box-sizing: border-box;
    transition: all 150ms ease-in-out 0ms;
}

hr {
    display: block;
    width: 100.0%;
    margin: calc(var(--fixx) * 2) 0;
    grid-column: 1/-1;
    border-top-width: 1px;
}

img, video {
    display: block;
    width: 100.0%;
}

.scroll {
    width: 100.0%;
    height: 100.0%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--sofa) transparent;
}

header, nav, article, #intro, footer {
    position: relative;
    width: 100.0%;
}

:is(header, nav, #intro, article, footer) > div {
    position: relative;
    width: 100.0%;
    max-width: 80.00em;
    padding-left: var(--edge);
    padding-right: var(--edge);
    margin: 0 auto;
}

main {
}

article {
    > div {
        padding-bottom: var(--space);

        > div {
            display: flex;
            gap: var(--fixx) calc(var(--edge) * 2);
            flex-flow: row wrap;
            justify-content: space-between;

            > * {
                flex: 1 1 40.00em;
                order: 2;
                position: relative;

                + * {
                    flex: 1 1 20.00em;
                }
            }
        }
    }
}

#intro {
    > div {
        position: relative;
        padding-top: calc(var(--space) / 2);
        padding-bottom: var(--space);
        display: flex;
        gap: 0 calc(var(--edge) * 4);
        flex-flow: row wrap;
        justify-content: space-between;

        > * {
            z-index: 2;
            flex: 1 1 10.0%;
            position: relative;
            display: flex;
            gap: var(--fixx) 0;
            flex-flow: row wrap;
            justify-content: space-between;

            + * {
                z-index: 1;
                max-width: 25.00em;
            }
        }

        .oem {
            position: relative;
            width: 100.0%;
            padding-top: var(--fixx);
            display: block;
            border-top-width: 2px;
            overflow: hidden;

            > div {
                display: flex;
                gap: 0 calc(var(--fixx) / 2);
                flex-flow: row wrap;
                justify-content: flex-start;
                align-items: center;

                > div {
                    filter: invert(1);

                    > img {
                        display: inline-block;
                        width: auto;
                        margin: 0.50em;
                    }

                    > img[src*="Logo_Ford.svg"] {
                        height: 1.50em;
                    }

                    > img[src*="Logo_Hyundai.svg"] {
                        height: 1.15em;
                    }

                    > img[src*="Logo_MG.svg"] {
                        height: 2.50em;
                    }

                    > img[src*="Logo_Subaru.svg"] {
                        height: 1.50em;
                    }

                    > img[src*="Logo_Volvo.svg"] {
                        height: 0.7em;
                    }
                }
            }
        }

        .move {
            z-index: 1;
            box-shadow: -10.00em 0.00em 15.00em -5.00em black;
            border-radius: 5em;

            > div {
                position: absolute;
                top: 2.00%;
                left: 5.00%;
                width: 90.00%;
                height: 96.00%;
                border-radius: 2.00em;
                overflow: hidden;
            }

            > img {
                position: relative;
                z-index: 2;
            }
        }
    }
}

#emo {
    aspect-ratio: 16/9;
    max-height: 35.00em;
    background-image: url('../img/emo.webp');
    background-position: center;
    background-size: cover;

    > div {
        padding-top: calc(var(--space) / 2);
        display: grid;
        place-items: start end;
    }
}

#faq {
    > div {
        padding-top: var(--space);
        padding-bottom: 0; /*> div  > div + div { order: 1; }*/
    }
}

article.reverse > div > div {
    flex-direction: row-reverse;
}

/* --- Header --- */

header {
    > div {
        min-height: 7.00em;
        display: flex;
        gap: 0;
        flex-flow: row wrap;
        justify-content: space-between;
        align-content: center;
        align-items: center;

        > a {
            flex: 0 0 15.00em;
            display: block;
            margin: 1.00em 0;
        }

        > div {
            flex: 1 1 auto;
            display: flex;
            gap: calc(var(--edge) / 2);
            flex-flow: row wrap;
            justify-content: flex-end;
            align-content: center;
            align-items: center;

            .btn, .btn.cta {
                height: 2.50em;
                margin: 0;
                font-size: 1.00em;
            }

            .hh {
                margin-left: var(--edge);

                &:before {
                    scale: 2.5;
                }
            }

            .lang {
                width: 5.50em;
                height: 2.50em;
                padding: 3px;
                border-radius: 3.00em;
                display: grid;
                grid-template-columns: 1fr 1fr;

                > label {
                    border-radius: 3.00em 0 0 3.00em;
                    display: grid;
                    place-items: center;
                }

                > label + label {
                    border-radius: 0 3.00em 3.00em 0;
                }
            }
        }
    }
}

/* --- Form + Go --- */

.page {
    position: relative;
    width: 100.0%;
    min-height: 100.0vh;
    padding: var(--space) var(--edge);
    display: grid;
    place-content: center;

    > .ico {
        position: absolute;
        top: var(--edge);
        right: var(--edge);
    }

    > div {
        width: 100.0%;
        max-width: 50.00em;
        overflow: hidden;

        > div {
            padding: 2.00em;
            border-radius: 1.00em;
            box-shadow: inset 0 0 100.00em #00000020;

            > * {
                position: relative;
                z-index: 2;
            }

            form {
                > span {
                    display: block;
                    margin-top: 1.00em;
                    opacity: 0.75;
                }
            }

            .btn {
                margin-top: 1.50em;
            }
        }
    }

    &.go > div {
        max-width: none;
        gap: var(--edge);
        display: flex;
        flex-flow: row wrap;
        justify-content: center;
        align-items: flex-end;

        > div {
            flex: 1 1 20.00em;
            order: 2;
            max-width: 25.00em;
            overflow: hidden;

            .steps {
                position: relative;
                width: 100.0%;
                margin-top: 1.00em;
                padding-top: 1.50em;
                overflow: hidden;

                > .indi {
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100.0%;
                    height: 0.25em;
                    display: grid;
                    gap: 0.25em;
                    grid-template-columns: 1fr 1fr 1fr 1fr;

                    > label {
                        background: #00000025;
                        border-radius: 0.25em;
                    }
                }

                > div {
                    width: 600.0%;
                    display: grid;
                    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;

                    > div {
                        width: 100.0%;
                        height: 100.0%;
                        display: grid;
                        place-content: space-between stretch;

                        > div {
                            width: 100.0%;
                            display: grid;
                            gap: 0.50em;
                            place-content: center;

                            > label {
                                padding: 1.00em;
                                border-radius: 0.50em;
                                display: grid;
                                grid-template-columns: 2.50em 1fr;
                                place-content: start start;
                                box-shadow: inset 0 0 0 5.00em #00000012;

                                &:before {
                                    content: 'circle';
                                    scale: 1.75;
                                    transform-origin: 0 0.625em;
                                    font-variation-settings: 'FILL' 0;
                                }

                                &:has(:checked):before {
                                    content: 'check';
                                }

                                &:has(:checked) {
                                    box-shadow: inset 0 0 0 5.00em #000000;
                                    color: white;
                                }
                            }
                        }

                        > :is(.btn, .link) {
                            place-self: end;
                        }
                    }
                }
            }

            &.important {
                padding-top: 12.50em;

                &:before {
                    content: 'support_agent';
                    display: block;
                    margin-top: -1.50em;
                    scale: 10;
                    transform-origin: 100.0% 100.0%;
                    float: right;
                    background: transparent;
                }
            }
        }
    }

    &.form {
    }

    &.video {
        display: block;

        > div {
            width: 100.0%;
            max-width: 1920px;
            margin: 0 auto;

            > div {
                margin-top: var(--edge);
                display: grid;
                gap: var(--edge);
                grid-template-columns: 20.00em 1fr;
            }
        }
    }
}

/* --- Nav + Footer --- */

nav {
    position: absolute;
    z-index: 3;
    height: auto;
    max-height: 0;
    display: grid;
    place-items: end;
    overflow: hidden;

    > div {
        padding-top: 0;
        padding-bottom: calc(var(--space) / 2);
        padding-right: calc((var(--edge) * 2) + 3.00em);
    }

    .ico {
        position: sticky;
        top: 1.00em;
        margin-right: var(--edge);
    }
}

.nav-on {
    position: fixed;
}

.nav-on nav {
    max-height: 100.0vh;
    box-shadow: 0 0 0 100.0vh #00000050;
}

footer {
    position: relative;
    z-index: 3;

    > div {
        padding-top: 0;
        padding: var(--space) 0;
    }
}

.sitemap {
    display: flex;
    gap: var(--edge);
    flex-flow: row wrap;
    justify-content: space-between;
    overflow: hidden;

    > div {
        flex: 1 1 50.00%;
        display: flex;
        gap: calc(var(--edge) * 2);
        flex-flow: row wrap;
        justify-content: flex-start;

        > div {
            flex: 0 0 auto;

            > a {
                position: relative;
                boder-bottom-width: 1px;
                display: block;
                padding: 0.50em 0;
                opacity: 0.80;

                &:hover {
                    opacity: 1.00;
                }

                &:after {
                    content: '';
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    width: 0;
                    height: 0.125em;
                    opacity: 0;
                    transition: all 600ms ease-in-out 0ms;
                }
            }

            > a:hover:after {
                width: 50.00%;
                opacity: 1;
            }
        }

        + div {
            flex: 0 0 auto;
            display: grid;
            place-content: end start;
        }
    }
}

.sm {
    display: flex;
    flex-flow: row wrap;
    gap: 1.00em;
    place-items: center start;

    > a {

        width: 100.0%;
        aspect-ratio: 1;
        background-size: cover;
        filter: invert(1);
        max-width: 24px;
    }

    .socials-facebook {
        background-image: url("../images/facbook_logo.svg");
    }

    .socials-instagram {
        background-image: url("../images/insta_logo.svg");
    }

    .socials-linkedin {
        background-image: url("../images/InBug-Black.webp");
    }

    .socials-tiktok {
        background-image: url("../images/TikTok_Icon_Black_Square.webp");
    }

}


/* --- Menu --- */

menu {
    position: fixed;
    z-index: 2;
    bottom: var(--fixx);
    left: 0;
    width: 100.0%;
    display: flex;
    place-content: center;

    > div {
        position: relative;
        display: flex;
        gap: 0.50em;
        margin: 0 auto;
        padding: 0.50em 0.625em;
        border-radius: 0.625em;
        overflow: hidden;

        a:not(:last-child) {
            position: relative;
            overflow: hidden;
            opacity: 0.80;

            &:hover {
                opacity: 1.00;
            }
        }

        &:before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            z-index: -1;
            width: 100.0%;
            height: 100.0%;
            opacity: 0.80;
        }

        a:not(.ico) {
            padding: 0 1.00em;
            display: grid;
            place-items: center;
            border-radius: 0.25em;
        }

        a:not(.ico, :last-child) {
            margin: 0.125em 0;
        }

        a:first-child:before {
            content: '';
            position: absolute;
            top: 0;
            right: 0;
            width: 100.0%;
            height: 100.0%;
            scale: 1;
            background: url(../images/Logo_ZN23_circle_inv.svg) no-repeat center;
            background-size: 72.00%;
        }
    }
}

/* --- Legal --- */

.legal header {
    > div {
        height: 3.00em;
        grid-template-columns: 10.00em 1fr 3.00em;
    }
}

.legal article {
    padding: var(--space) 0;

    > div {
        display: block;
        padding-bottom: 0;

        + div {
            padding-top: var(--space);
        }

        > * {
            max-width: none;
        }
    }
}

/*	=================================
        Function
    ================================= */


.page {
    > div {
        .steps:has(input#step-2:checked) > div {
            margin-left: -100.0%;
        }

        .steps:has(input#step-3:checked) > div {
            margin-left: -200.0%;
        }

        .steps:has(input#step-4:checked) > div {
            margin-left: -300.0%;
        }

        .steps:has(input#step-5:checked) > div {
            margin-left: -400.0%;
        }

        .steps:has(input#step-6:checked) > div {
            margin-left: -500.0%;
        }

        .steps:has(input#step-2:checked) > .indi > label:nth-child(-n+1),
        .steps:has(input#step-3:checked) > .indi > label:nth-child(-n+2),
        .steps:has(input#step-4:checked) > .indi > label:nth-child(-n+3),
        .steps:has(input#step-5:checked) > .indi > label:nth-child(-n+4),
        .steps:has(input#step-6:checked) > .indi > label:nth-child(-n+4) {
            background-color: var(--acc);
        }
    }
}

/*	=================================
        END
    ================================= */

#intro {
    .oem {
        .official-partner-logos {
            display: flex;
            justify-content: start;
            align-items: center;
            flex-wrap: wrap;
            flex-direction: row;
            gap: 3em;
            filter: invert(1);

            .partner-logo {
                width: 8em;
                height: 4em;
                object-fit: contain;
                object-position: center;
            }
        }
    }
}


.article-video {
    max-height: 50em;
    object-fit: cover;
}

.ico.hh.toggle-nav.transparent {
    background-color: transparent;
}

.page {
    &.video {
        display: block;

        > div {
            width: 100.0%;
            max-width: 1920px;
            margin: 0 auto;

            figure {
                aspect-ratio: 16/9;
            }

            > div {
                margin-top: var(--edge);
                display: grid;
                gap: var(--edge);
                grid-template-columns: 20.00em 1fr;
            }
        }
    }
}

@media only screen and (max-width: 23.75rem) {
    article {
        & > div {
            > .video-section {
                display: block;
                gap: var(--fixx) calc(var(--edge) * 2);
            }
        }
    }
}


#intro.no-phone {
    > div {
        position: relative;
        padding-top: calc(var(--space) / 2);
        padding-bottom: var(--space);
        display: flex;
        gap: 0 calc(var(--edge) * 2);
        flex-flow: row wrap;
        justify-content: space-between;

        > * {
            z-index: 2;
            flex: 1 1 10.0%;
            position: relative;
            display: flex;
            gap: var(--fixx) 0;
            flex-flow: row wrap;
            justify-content: space-between;
            align-items: start;

            + * {
                z-index: 1;
                max-width: none;
            }

            video {
                border-radius: 0.50em;
            }
        }

        .oem {
            position: relative;
            width: 100.0%;
            padding-top: var(--fixx);
            display: block;
            border-top-width: 2px;
            overflow: hidden;

            > div {
                display: flex;
                gap: 0 calc(var(--fixx) / 2);
                flex-flow: row wrap;
                justify-content: flex-start;
                align-items: center;

                > div {
                    filter: invert(1);

                    > img {
                        display: inline-block;
                        width: auto;
                        margin: 0.50em;
                    }

                    > img[src*="Logo_Ford.svg"] {
                        height: 1.50em;
                    }

                    > img[src*="Logo_Hyundai.svg"] {
                        height: 1.15em;
                    }

                    > img[src*="Logo_MG.svg"] {
                        height: 2.50em;
                    }

                    > img[src*="Logo_Subaru.svg"] {
                        height: 1.50em;
                    }

                    > img[src*="Logo_Volvo.svg"] {
                        height: 0.7em;
                    }
                }
            }
        }

        .move {
            z-index: 1;
            box-shadow: -10.00em 0.00em 15.00em -5.00em black;
            border-radius: 5em;

            > div {
                position: absolute;
                top: 2.00%;
                left: 5.00%;
                width: 90.00%;
                height: 96.00%;
                border-radius: 2.00em;
                overflow: hidden;
            }

            > img {
                position: relative;
                z-index: 2;
            }
        }
    }
}


#social-tree {
    padding-top: 10em;
    padding-bottom: var(--space);
    min-height: 100.0vh;

    > div {
        display: flex;
        flex-flow: row wrap;
        gap: var(--fixx) calc(var(--edge) * 2);
        place-items: start start;
    }

    .information {
        display: flex;
        flex-direction: column;
        flex: 1.5;
    }

    .introduction {
        display: block;
        flex: 1
    }

    .contact-box {
        background-color: black;
        border-radius: 1.00em;
        color: white;
        display: flex;
        flex-direction: column;
        gap: 1.00em;
        justify-content: space-between;
        margin-top: 2.00em;
        padding: 2.00em 2.00em 2.50em;

        .btn {
            margin-top: 0;
        }

        .btn.send {
            width: fit-content;

        }

        .contact-buttons {
            display: flex;
            flex-flow: row wrap;
            gap: 1em;
            justify-content: start;
        }
    }


    .social-media-container {

        flex: 1;

        ul {
            padding: 0;
            margin: 0;

            li {
                list-style: none;
                margin-bottom: 1em;

                a {
                    align-items: center;
                    border-radius: 1.00em;
                    background-color: white;
                    color: black;
                    cursor: pointer;
                    display: flex;
                    text-decoration: none;
                    padding: 1em 1em 1em 1.5em;

                    &:hover {
                        scale: 1.1;
                    }

                    p {
                        margin-top: 0;
                    }
                }

                .icon {
                    margin-right: 1.5em;
                }
            }

            li::before {
                content: " ";
            }

        }
    }

}

@media only screen and (max-width: 52em) {
    #social-tree {
        padding-top: 4em;


        .information {
            order: 2;
        }

        .social-media-container {
            order: 1;

            ul {
                li {
                    padding-left: 0;
                }
            }
        }
    }
}


#map {
    padding: 0 var(--edge) var(--space);

    div {
        padding-bottom: 0;
    }

    h2 {
        text-align: center;
        max-width: 100%;
        margin-bottom: 1.25em;
    }

    .map-container {
        align-items: start;
        background: white;
        border-radius: 1.00em;
        color: black;
        display: flex;
        flex-direction: row;
        overflow: hidden;
        padding: 0;

        .brand-container {
            flex-basis: 70%;
            padding-left: 3em;
            padding-top: 2em;
            padding-bottom: 2em;

            .brand-groups {
                display: grid;
                grid-template-columns: 1fr 1fr 1fr 1fr;
                gap: var(--edge);
                margin-top: 1em;
            }

            .brand-group {
                ul {
                    list-style: disc;
                    padding-left: 1em;
                    margin: 0;
                }

                li {
                    padding: 0.3em 0;
                }

                li::before {
                    content: "";
                }
            }
        }
    }

    .map-graphic {
        width: 100%;
        position: relative;
        img {
            object-fit: cover;
        }
    }
}

/* Responsive Anpassungen für mobile Geräte */
@media only screen and (max-width: 60em) {
    #map {
        .map-container {
            position: relative;
            background-image: url("../images/Map Frame.svg");
            background-repeat: no-repeat;
            background-position: top;
            /*background-size: 100%;*/
            background-size: cover;
            flex-direction: column;
            padding: 0;

            .brand-container {
                flex-basis: 100%;
                width: 100%;
                padding-left: 2em;
            }
        }

        .map-container::before {
            content: "";
            height: 100%;
            width: 100%;
            position: absolute;
            top: 0;
            left: 0;
            background: rgba(255, 255, 255, 0.85);
        }

        .map-graphic {
            display: none;
        }
    }

    #map .map-container .brand-container .brand-groups {
        grid-template-columns: repeat(auto-fit, minmax(6.5em, 1fr));

    }
}


/*Mann könnte das zweite Video absolut oben drüber legen und die width animieren*/
#video-hero {
    text-align: center;
    padding-top: calc(var(--space) / 2);
    padding-bottom: var(--space);

    p {
        font-size: 1.25em;
    }

    h2,p,button {
        margin: 0 auto;
        margin-bottom: 1.25em;
    }
    .swiper-container {
        overflow: hidden;
        position: relative;
        aspect-ratio: 16/9;
        border-radius: 1em;
        box-shadow: -10.00em 0.00em 15.00em -5.00em black;
    }

    video {
        height: 100%;
        width: 100%;
        object-fit: cover;
    }

    .swiper-slide {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%; /* Beide Videos haben volle Breite */
        height: 100%;
        transition: transform 500ms ease; /* Animation für Transform-Eigenschaft */
    }

    .tag {
        position: absolute;
        top: 0.5em;
        left: 0.5em;
        background: black;
        padding: 0.5em 1em;
        border-radius: 0.7em;
    }

    .swiper-slide[data-video-id="1"] {
        transform: translateX(0); /* Erstes Video ist standardmäßig sichtbar */
        z-index: 0;
    }

    .swiper-slide[data-video-id="2"] {
        transform: translateX(100%); /* Zweites Video ist außerhalb des Sichtfelds */
        z-index: 1;
    }

    /* Button-Stil */
    #video-toggle {
        margin-top: 3em;
    }
    #video-toggle:before {

        content: "play_arrow";
    }

}
