/* ----- section map contact ----- */
.section--pagefooter-contact {
    position: relative;
    z-index: 1;
}

/* ----- contact shape ----- */
.section--pagefooter-contact .shape-contact {
    top: -60px;
    left: -5%;
}

@media only screen and (max-width: 1440px) {
    .section--pagefooter-contact .shape-contact {
        top: -100px;
    }
}

@media only screen and (max-width: 1024px) {
    .section--pagefooter-contact .shape-contact {
        top: -60px;
        left: -10%;
    }
}

@media only screen and (max-width: 768px) {
    .section--pagefooter-contact .shape-contact {
        left: -20%;
    }
}

/* ----- contact map ----- */
.section--pagefooter-contact .container {
    position: relative;

    overflow: hidden;
}

.section--pagefooter-contact.section--pagefooter-contact-personal .container {
    overflow: visible;
}

.section--pagefooter-contact .shape-map {
    position: absolute;
    z-index: 1;
    top: 0;
    right: -5%;

    overflow: hidden;

    max-width: 100%;
    height: 100%;
    max-height: 100%;

    background: url("../../img/shapes/strokes/shape__map.svg") top right no-repeat;
    background-size: contain;
}

@media only screen and (max-width: 1440px) {
    .section--pagefooter-contact .shape-map {
        right: -10%;
    }
}

@media only screen and (max-width: 1280px) {
    .section--pagefooter-contact .shape-map {
        height: 90%;
    }
}

@media only screen and (max-width: 1024px) {
    .section--pagefooter-contact .shape-map {
        display: none;
    }
}

/* ----- container header ----- */
.container-map-contact {
    padding-top: 80px;
    padding-bottom: 100px;
}

@media only screen and (max-width: 1440px) {
    .container-map-contact {
        padding-bottom: 80px;
    }
}

@media only screen and (max-width: 1280px) {
    .container-map-contact {
        padding-top: 70px;
        padding-bottom: 70px;
    }
}

@media only screen and (max-width: 1024px) {
    .container-map-contact {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}

@media only screen and (max-width: 768px) {
    .container-map-contact {
        padding-top: 70px;
        padding-bottom: 70px;
    }
}

@media only screen and (max-width: 460px) {
    .container-map-contact {
        padding-top: 50px;
        padding-bottom: 50px;
    }
}

.container-map-contact-header h2 {
    margin-bottom: 85px;
}

@media only screen and (max-width: 1024px) {
    .container-map-contact-header h2 {
        margin-bottom: 35px;
    }
}

/* ----- contact map ----- */
.container-map-contact-info {
    position: relative;
    z-index: 1;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    height: 100%;
}

.container-map-contact-boxes {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.container-map-contact-box {
    flex: 0 1 20%;
}

@media only screen and (max-width: 1024px) {
    .container-map-contact-box {
        flex: 0 1 33%;

        margin-bottom: 40px;
    }
}

@media only screen and (max-width: 768px) {
    .container-map-contact-box {
        flex: 0 1 50%;
    }
}

@media only screen and (max-width: 460px) {
    .container-map-contact-box {
        display: flex;
        flex: 0 1 100%;
        flex-wrap: wrap;

        margin-bottom: 24px;
    }
}

.container-map-contact-box h3 {
    margin-bottom: 10px;

    text-transform: uppercase;

    font-size: var(--footer--font-size);
}

@media only screen and (max-width: 460px) {
    .container-map-contact-box h3 {
        flex: 0 0 calc(50% - 20px);

        margin-right: 20px;

        text-align: right;

        line-height: 18px;
    }
}

.container-map-contact-box .e-mail,
.container-map-contact-box .phone {
    font-weight: var(--font_weight--semibold);
    line-height: var(--line_hight--large);
}

@media only screen and (max-width: 460px) {
    .container-map-contact-box .e-mail,
    .container-map-contact-box .phone {
        flex: 0 0 50%;
    }
}

.container-map-contact-box .phone {
    margin-bottom: 20px;
}

@media only screen and (max-width: 460px) {
    .container-map-contact-box .phone {
        margin-left: 50%;
    }
}

@media only screen and (max-width: 460px) {
    .container-map-contact-box:nth-child(2) .phone,
    .container-map-contact-box:nth-child(3) .phone,
    .container-map-contact-box:nth-child(4) .phone,
    .container-map-contact-box:nth-child(5) .phone {
        display: none;
    }
}

.container-map-contact-box .address {
    font-weight: 300;
    line-height: var(--line_hight--large);
    padding-right: 10px;
}

@media only screen and (max-width: 460px) {
    .container-map-contact-box .address {
        flex: 0 0 50%;

        margin-left: 50%;
    }
}
