#partnerkarte{
    display: grid;
    grid-template-columns: 40% 50% 10%;
    grid-template-rows: 80px auto auto;
    font-size: var(--fs-body);

    position: relative;

    --navbar-height: 60px;

    #partnerkarte-object {
        transition: var(--transition);
        grid-row: 1 / span 3;
        grid-column: 1 / span 2;
        width: 100%;

        will-change: opacity;

        &.hidden {
            opacity: 0;
            pointer-events: none;
        }
    }

    #partnerkarte-overlay {
        grid-row: 1 / span 3;
        grid-column: 3 / span 1;
        transform: translateX(-100%);
        background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 55%, rgba(var(--light-blue-rgb), 1) 100%);
        pointer-events: none;
    }

    #partnerkarte-breadcrumb {
        height: var(--navbar-height);
        grid-row: 1 / span 1;
        grid-column: 1 / span 1;
        display: grid;
        grid-template-columns: max-content max-content;
        grid-template-rows: var(--navbar-height);
        gap: var(--dist-10);
        margin-top: var(--dist-30);
        padding-right: var(--dist-30);
        padding-left: var(--dist-30);
        align-items: center;
        justify-self: right;
        user-select: none;

        z-index: 100;

        #partnerkarte-breadcrumb-europe,
        #partnerkarte-breadcrumb-country {
            display: grid;
            grid-template-columns: repeat(2, auto);
            overflow: hidden;
            gap: var(--dist-10);
            cursor: pointer;
        }

        #partnerkarte-breadcrumb-europe-text,
        #partnerkarte-breadcrumb-country-text {
            text-decoration: underline;
        }
    }

    #partnerkarte-navigation {
        grid-row: 1 / span 1;
        grid-column: 2 / span 2;
        margin-top: var(--dist-30);
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--dist-30);
        height: 100%;

        padding-left: 180px;

        z-index: 101;

        #partnerkarte-navigation-search-container {
            position: relative;
            width: 100%;
            display: inline-block;

            i {
                position: absolute;
                right: 30px;
                top: calc(var(--navbar-height) / 2);
                transform: translateY(-50%);
                color: var(--blue);
            }

            .autocomplete-items {
                /* position: absolute; */
                position: relative;
                border: 1px solid var(--light-grey);
                border-bottom: none;
                border-top: none;
                z-index: 1;
                border-radius: var(--border-radius-l);

                background-color: #ffffff;
                overflow: hidden;
                /* filter: var(--shadow); */
                box-shadow: var(--box-shadow);
                /* top: 60px; */
                top: 0;
                left: 0;
                right: 0;

                z-index: 99;

                .autocomplete-item {
                    padding: var(--dist-10) var(--dist-20);
                    cursor: pointer;
                    background-color: #ffffff;
                    min-height: var(--dist-20);
                    display: grid;
                    grid-template-columns: auto;

                    &:not(:last-child) {
                        border-bottom: 1px solid var(--light-grey);
                    }

                    .autocomplete-title-country {
                        text-align: right;
                        font-weight: 200;
                    }

                    &:hover {
                        background-color: var(--light-grey);
                    }
                }
            }

            #partnerkarte-navigation-search {
                padding: var(--dist-10) var(--dist-40);
                height: var(--navbar-height);
                font-size: var(--fs-body-l);
                /* filter: var(--shadow); */
                box-shadow: var(--box-shadow);
                width: 100%;
                border: 0;
                border-radius: calc(var(--navbar-height) / 2);

                color: var(--blue);

                z-index: 100;

                &:focus {
                    outline: 0;
                }
            }
        }

        #partnerkarte-navigation-country-select {
            /* padding: var(--dist-10) var(--dist-40); */
            height: var(--navbar-height);
            font-size: var(--fs-body-l);
            /* filter: var(--shadow); */
            box-shadow: var(--box-shadow);
            width: 100%;
            border: 0;
            border-radius: calc(var(--navbar-height) / 2);

            color: var(--blue);

            &:focus {
                outline: 0;
            }
        }
    }

    #partnerkarte-partner-media {
        grid-row: 2 / span 2;
        grid-column: 1 / span 1;
        background: transparent;
        margin-top: 100px;
        margin-right: -100px;
        /* margin-left: -250px; */
        /* background-size: cover;
        background-repeat: no-repeat;
        background-position: center right; */
        pointer-events: none;
        opacity: 0;
        transform: translateX(-50px);
        transition: var(--transition-slow);

        height: 70%;
        

        &.visible {
            pointer-events: all;
            opacity: 1;
            transform: translateX(0);
            pointer-events: all;

        }

        .swiper{
            height: 100%;

            border-bottom-right-radius: var(--dist-64);
            border-top-left-radius: var(--dist-64);

            overflow: hidden;


            .partner-media {
                width: 100%;
                height: 100%;
                object-fit: cover;
            }

        }
        .partner-media-swiper-pagination {
            text-align: center;
            margin-top: var(--dist-15);

            .swiper-pagination-bullet {
                /* half-blue */
                background-color: #91A0AB;
                width: 8px;
                height: 8px;

                margin: 0 5px;

                transition: var(--transition);

                &.swiper-pagination-bullet-active {
                    background-color: var(--primary);
                    transform: scale(1.5);
                }
            }
        }
    }

    #partnerkarte-all-partners-button {
        position: absolute;
        bottom: 0;
        right: 0;

        pointer-events: all;
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        gap: var(--dist-30);

        justify-items: center;
        
        #partnerkarte-all-partners-button-button {
            width: 120px;
            height: 120px;

            background-color: var(--primary);
            color: #ffffff;
            text-align: center;
            border-radius: 999px;

            border: 0;

            transition: var(--transition);

            font-size: 40px;
        }

        #partnerkarte-all-partners-button-link {
        }

        &:hover #partnerkarte-all-partners-button-button{
            transform: scale(1.05);
        }

        &:hover #partnerkarte-all-partners-button-link {
            /* color: var(--darkest-blue); */
        }

        &.hidden {
            opacity: 0;
            pointer-events: none;
        }
    }

    #partnerkarte-all-partners {
        position: relative;
        grid-row: 2 / span 2;
        grid-column: 1 / span 3;

        min-height: 100%;

        pointer-events: all;
        padding: var(--dist-50) 0;
        border-radius: 999px;

        .partnerkarte-info-page {
            height: 100%;
            
            padding: var(--dist-64);
            box-shadow: var(--box-shadow);

            .partner-list {
                margin-top: var(--dist-30);
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                /* gap: 50px; */
                column-gap: 70px;
                row-gap: 30px;

                .partner-list-img-container {
                    aspect-ratio: 4 / 3;
                    width: 100%;
                    align-content: center;

                    img {
                        width: 100%;
                        filter: var(--shadow-0);
                        transition: var(--transition);
    
                        object-fit: contain;
                        max-height: 80px;
                        &:hover {
                            max-height: 83px;
                            cursor: pointer;
                            padding-bottom: 3px;
                            margin-top: -3px;
                            /* filter: var(--shadow-sm); */
                        }
                    }
                }

            }
        }


        .close-button {
            display: block;
            position: absolute;
            top: 108px;
            right: 64px;
            opacity: 0.5;
            z-index: 1;
            cursor: pointer;
            pointer-events: all;
            transition: var(--transition);
            user-select: none;

            font-size: 40px;

            &:hover {
                opacity: 1;
            }
        }
    }

    #partnerkarte-info {
        grid-row: 2 / span 1;
        grid-column: 2 / span 2;
        /* margin-top: var(--dist-4); */
        padding: var(--dist-50) 0;
        /* padding-right: 0; */

        /* padding-right: var(--dist-64); */
        pointer-events: none;

        position: relative;

        z-index: 100;

        .partnerkarte-info-page {
            padding: var(--dist-64);
            box-shadow: var(--box-shadow);
            pointer-events: all;
        }

        #partnerkarte-info-index {
            text-align: right;
            justify-self: right;
            width: max-content;
            padding-left: 0;
            padding-right: 0;
            padding-bottom: 0;
            filter: none;
            box-shadow: none;
            pointer-events: none;

            .info-headline {
                text-transform: uppercase;
                color: var(--primary);
                font-size: var(--fs-headline-xxl);
                margin-bottom: var(--dist-15);
            }

            .info-subheadline {
                text-transform: uppercase;
                font-size: var(--fs-headline-m);
            }
        }

        #partnerkarte-info-country {
            /* background-color: #ffffff; */
            display: grid;
            grid-template-areas: "country-headline"
                                "country-name"
                                "country-description"
                                "country-partner";

            .country-headline {
                text-transform: uppercase;
                font-size: var(--fs-headline-m);
                /* margin-bottom: var(--dist-1); */
                grid-area: country-headline;
                margin-bottom: 0;
            }

            .country-name {
                text-transform: uppercase;
                font-weight: 500;
                color: var(--primary);
                font-size: var(--fs-headline-xl);
                /* margin-bottom: var(--dist-30); */
                grid-area: country-name;
            }

            .country-description {
                margin-bottom: var(--dist-40);
                grid-area: country-description;
            }

            .country-partner {
                width: 100%;
                display: grid;
                grid-template-columns: 1fr 1fr;
                grid-auto-rows: auto;
                border-top: 1px solid var(--light);
                padding: var(--dist-30) 0;
                grid-area: country-partner;
                
                column-gap: 70px;
                row-gap: 30px;


                .country-partner-img-container {
                    aspect-ratio: 4 / 2;
                    width: 100%;
                    align-content: center;

                    img {
                        width: 100%;
                        filter: var(--shadow-0);
                        transition: var(--transition);

                        object-fit: contain;
                        max-height: 100px;
                        &:hover {
                            max-height: 103px;
                            cursor: pointer;
                            padding-bottom: 3px;
                            margin-top: -3px;
                            /* filter: var(--shadow-sm); */
                        }
                    }
                }
            }
        }

        #partnerkarte-info-country,
        #partnerkarte-info-partner {
            position: relative;

            .close-button {
                display: block;
                position: absolute;
                top: 58px;
                right: 64px;
                opacity: 0.5;
                z-index: 1;
                cursor: pointer;
                pointer-events: all;
                transition: var(--transition);
                user-select: none;

                font-size: 40px;

                &:hover {
                    opacity: 1;
                }
            }
        }

        #partnerkarte-info-partner {
            /* background-color: #ffffff; */
            display: grid;
            grid-template-columns: 100%;
            grid-auto-flow: row;
            gap: var(--dist-30);
            
            /*grid-template-areas: "partner-name partner-logo"
                                "country-name partner-logo"
                                "partner-description partner-description"
                                "partner-contact partner-contact"; */


            .partnerkarte-info-page {
                display: grid;
                grid-template-columns: 100%;
                grid-auto-flow: row;
                gap: var(--dist-30);

                .partner-logo {
                    width: 100%;
                    max-width: 300px;
                    /* grid-area: partner-logo; */
                }

                .partner-name {
                    font-size: 24px;

                    text-transform: uppercase;
                    /* margin-bottom: var(--dist-1); */
                    /* grid-area: partner-name; */

                    color: var(--primary);

                }
    
                .partner-information {
                    /* font-size: 30px; */
                    /* font-style: italic; */
                    /* grid-area: partner-information; */
                    display: grid;
                    grid-template-columns: max-content max-content auto;
                    gap: var(--dist-20);

                    .partner-information-keyfact {
                        font-size: var(--fs-body-l);
                        width: max-content;
                        padding: var(--dist-10, 10px) var(--dist-40, 40px);
                        background-color: #ffffff;
                        border-radius: 999px;
                        box-shadow: var(--box-shadow);
                    }
                }

            }


            .partner-description {
                padding-left: 150px;
                padding-right: 50px;

                pointer-events: all;
                /* grid-area: partner-description; */
            }

            .partner-website {
                width: max-content;
                text-transform: uppercase;
                text-decoration: none;

                padding: 20px 50px;
                border-radius: 999px;
                margin-left: 150px;

                background-color: var(--primary);
                color: #ffffff;

                pointer-events: all;

                transition: var(--transition);

                &:hover {
                    transform: scale(1.05);
                }
                /* grid-area: partner-description; */
            }
        }
    }
}

.d-none {
    display: none !important;
}

@media (max-width: 1100px) {

    #partnerkarte {
        grid-template-columns: 100%;
        grid-template-rows: auto auto auto auto auto;

        #partnerkarte-breadcrumb {
            grid-row: 1 / span 1;
            grid-column: 1 / span 1;

            margin-top: 0;
        }

        #partnerkarte-navigation {
            grid-row: 2 / span 1;
            grid-column: 1 / span 1;

            margin-top: 0;

            padding-left: 90px;
            
            #partnerkarte-navigation-search {
                padding-right: 60px !important;
            }
            #partnerkarte-navigation-country-select {
                .dropdown-selected {
                    padding-right: 60px !important;
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
            }
        }

        #partnerkarte-object {
            grid-row: 3 / span 1;
            grid-column: 1 / span 1;
        }

        #partnerkarte-overlay {
            grid-row: 3 / span 1;
            grid-column: 1 / span 1;
        }

        #partnerkarte-info {
            grid-row: 3 / span 1;
            grid-column: 1 / span 1;

            #partnerkarte-info-partner {
                .partner-description {
                    padding-left: 0;
                    padding-right: 0;
                }
            }
        }

        #partnerkarte-partner-media {
            display: none;
        }

        #partnerkarte-all-partners-button {
            bottom: -150px;
        }

        #partnerkarte-all-partners {
            grid-row: 3 / span 1;
            grid-column: 1 / span 1;

            padding-left: 0;
            padding-right: 0;

            .partner-list {
                grid-template-columns: repeat(3, 1fr) !important;
            }
        }
    }
}

@media (max-width: 768px) {
    #partnerkarte {
        #partnerkarte-navigation {
            padding-left: 0;

            grid-template-columns: 1fr;
            grid-auto-rows: auto;
            grid-auto-flow: row;
            gap: 20px;
        }

        #partnerkarte-object{
            margin-top: 20px;
        }

        #partnerkarte-all-partners {
            .close-button{
                top: 70px !important;
                right: 20px !important;
            }

            .partner-list{
                grid-template-columns: repeat(2, 1fr) !important;
            }
        }

        #partnerkarte-info{
            .close-button{
                top: 20px !important;
                right: 20px !important;
            }
            .partnerkarte-info-page{
                padding-left: var(--dist-30) !important;
                padding-right: var(--dist-30) !important;
            }

            #partnerkarte-info-index{

                max-width: 100%;
                padding: 0;


                .info-headline{
                    font-size: var(--fs-headline-xl);
                }
                .info-subheadline{
                    font-size: var(--fs-headline-m);
                }
            }

            #partnerkarte-info-country{
            }

            #partnerkarte-info-partner{
                .partner-information{
                    grid-template-columns: 1fr !important;
                }

                .partner-website{
                    margin-left: auto !important;
                }
            }
        }

        #partnerkarte-all-partners-button{
            gap: var(--dist-10);
            bottom: -100px;
            
            #partnerkarte-all-partners-button-button{
                font-size: 30px;
                width: 80px;
                height: 80px;

                justify-self: center;
                align-self: center;
            }
        }
    }
}

@media (max-width: 576px) {
    #partnerkarte {

        #partnerkarte-object {
            margin-top: 200px;
        }

        #partnerkarte-info{
            #partnerkarte-info-country{
                .country-partner{
                    column-gap: 30px;
                }
            }

            #partnerkarte-info-index{

                .info-subheadline{
                    font-size: var(--fs-body-l);
                }
            }
        }

        #partnerkarte-all-partners {
            .partnerkarte-info-page{
                .partner-list{
                    column-gap: 30px;
                }
            }
        }
    }
}

/* @media (max-width: 400px) {
    #partnerkarte {
        #partnerkarte-all-partners {
            .partner-list{
                grid-template-columns: repeat(1, 1fr) !important;
            }
        }
    }
} */