.carte {
    padding: 32px 0 0 0;
}

@media screen and (min-width: 768px) {
    .carte {
        padding: 64px 0 0 0;
    }
}

@media screen and (min-width: 768px) {
    .carte.reverse .carte--container {
        flex-direction: row-reverse;
    }
}

.carte--container {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 0 20px;
}

@media screen and (min-width: 768px) {
    .carte--container {
        align-items: center;
        flex-direction: row;
    }
}

@media screen and (min-width: 768px) {
    .carte .co-text {
        flex: 0 1 50%;
        padding: 40px;
    }
}

.carte--media {
    height: 360px;
    border-radius: 8px;
    overflow: hidden;
}

@media screen and (min-width: 768px) {
    .carte--media {
        flex: 0 1 50%;
    }
}

.carte--media img {
    object-fit: cover;
    height: 100%;
    width: 100%;
    filter: grayscale(100%);
}

.carte--media #map {
    object-fit: cover;
    height: 100%;
    width: 100%;
    filter: grayscale(100%);
}

.carte.full {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.carte.full .carte--container {
    justify-content: center;
}

@media screen and (min-width: 768px) {
    .carte.full .co-text {
        flex: unset;
        padding: 0;
        align-items: center;
    }
}

@media screen and (min-width: 768px) {
    .carte.full .co-text .uptitle {
        text-align: center;
    }
}

@media screen and (min-width: 768px) {
    .carte.full .co-text h2 {
        text-align: center;
    }
}

@media screen and (min-width: 768px) {
    .carte.full .co-text p:not(.uptitle) {
        text-align: center;
    }
}

@media screen and (min-width: 768px) {
    .carte.full .carte--media {
        flex: unset;
        height: 460px;
    }
}