body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
    height: 100%;
}

@keyframes pulse-white {
    0% {
        transform: scale(0.97);
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.3);
    }

    70% {
        transform: scale(1);
        box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);
    }

    100% {
        transform: scale(0.97);
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
}

.map-wrapper {
    width: 100%;
    height: 100%;
    background: #28292b;
    display: flex;
    justify-content: center;
    align-items: center;
}

.map {
    width: 100%;
    max-height: 900px;
    padding-top: 52%;
    background: url('../img/mapBackground.jpg') #34383b center center;
    background-size: cover;
    position: relative;
    display: block;
}

.map .lines {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: url('../img/lines.svg') 35.5% 45.5% no-repeat;
    z-index: 1;
    background-size: 32%;

    opacity: 1;
    -webkit-transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
    -o-transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
    transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
}

.map .slides {
    z-index: 1;
}

.map .slides .slide {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;

    opacity: 0;
    -webkit-transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
    -o-transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
    transition: opacity .3s cubic-bezier(.25, .46, .45, .94);
}

.map .slide.active-slide {
    opacity: 1;
}

.map .slides .slide:before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.map .map-pointer {
    position: absolute;
    z-index: 2;
    width: 3%;
    height: 5.5%;
    background: url('../img/circle.svg') center center no-repeat;
    border-radius: 100%;

    -webkit-transition: -webkit-transform .6s cubic-bezier(.19, 1, .22, 1);
    transition: -webkit-transform .6s cubic-bezier(.19, 1, .22, 1);
    -o-transition: transform .6s cubic-bezier(.19, 1, .22, 1);
    transition: transform .6s cubic-bezier(.19, 1, .22, 1);
    transition: transform .6s cubic-bezier(.19, 1, .22, 1), -webkit-transform .6s cubic-bezier(.19, 1, .22, 1);

    box-shadow: 0 0 0 0 rgba(255, 255, 255, 1);
    animation: pulse-white 2s infinite;
}

.map .map-pointer:hover {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
}

.map .pointer1 {
    left: 22.7%;
    top: 27%;
}

.map .pointer2 {
    left: 33.7%;
    bottom: 32%;
}

.map .pointer3 {
    left: 37.7%;
    bottom: 28%;
}

.map .pointer4 {
    left: 54.7%;
    bottom: 35%;
}

.map .slide:before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0.3;
    transition: all 1s;
    background-position: center;
    background-size: 110%;
}

.map .slide.active-slide:before {
    background-size: 100%;
}

.map .selected-part-of-map {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: 1%;
}

.map .slide1 .selected-part-of-map {
    background-image: url('../img/selectedPart1.png');
}

.map .slide1:before {
    background-image: url('../img/dot1.jpg');
}

.map .slide2 .selected-part-of-map {
    background-image: url('../img/selectedPart2.png');
}

.map .slide2:before {
    background-image: url('../img/dot2.jpg');
}

.map .slide3 .selected-part-of-map {
    background-image: url('../img/selectedPart3.png');
}

.map .slide3:before {
    background-image: url('../img/dot3.jpg');
}

.map .slide4 .selected-part-of-map {
    background-image: url('../img/selectedPart4.png');
}

.map .slide4:before {
    background-image: url('../img/dot4.jpg');
}

.map .slide-info {
    position: absolute;
    right: 5%;
    top: 9%;
    width: 29%;
    background: url('../img/slideTextBackground.png');
    padding: 2%;
    color: #ffffff;
    font-size: 1.3vw;
    z-index: 3;
}

.map .slide-info span {
    display: block;
    font-size: 2vw;
    margin-bottom: 1%;
    font-weight: bold;
}

.map .slide-info p {
    text-align: start;
    margin-bottom: 0;
}

@media only screen and (max-width: 600px) {
    .map .slide-info {
        width: 45%;
    }

    .map .slide-info {
        font-size: 1.6vw;
    }

    .map .slide-info span {
        font-size: 2.5vw;
    }
}

@media only screen and (max-width: 500px) {
    .map .slide-info {
        width: 29%;
    }
}