#cards {
    margin-top: 64px;
    margin-left: 198px;
    margin-right: 140px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    align-items: stretch;
}

.card {
    padding: 20px;
    display: flex;
    flex-direction: row;
    gap: 0;
    background-color: var(--color-light-grey);
    border-radius: 20px;
    box-shadow: 0 8px 6px rgba(0, 0, 0, .15), 0 4px 2px rgba(0, 0, 0, .3);
}

.card .text {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.card .text .heading {
    font-family: "Roboto";
    font-weight: 500;
    font-size: 20px;
    color: var(--color-near-black);
    margin: 0;
}

.card .text .description {
    font-family: "Roboto";
    font-weight: 400;
    font-size: 16px;
    color: var(--color-near-black);
    margin: 0;
    line-height: 1.36;
}

.card .tags {
    margin-top: auto;
    font-family: "Montserrat";
    font-weight: 400;
    font-size: 14px;
    color: var(--color-near-black);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.card .actions {
    display: flex;
    flex-direction: column;
    gap: 66px;
}

.card img {
    width: 217px;
    height: 156px;
    border-radius: 10px;
    object-fit: cover;
}

.card .actions div {
    display: flex;
    flex-direction: row;
    justify-content: end;
}

.card .actions .button {
    height: 40px;
    padding: 0px 20px;
    box-shadow: 0 16px 8px 0 rgba(12, 12, 13, .1), 0 4px 2px 0 rgba(12, 12, 13, .05);
    font-weight: 400;
}

#map {
    position: relative;
}

#map img.map {
    width: 100%;
}

#map .mark {
    position: absolute;
    transform: translate(-50%, -100%);
}

#map .mark .popup {
    position: absolute;
    transform: translate(0, -100%);
    background-color: #e4e4e4;
    padding: 10px 20px;
    border-radius: 12px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 13px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease;
}

#map .mark:hover .popup {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

#map .mark .popup .title {
    margin: 0;
    font-family: 'Montserrat';
    font-weight: 600;
    font-size: 16px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 5px;
    text-wrap-mode: nowrap;
}

#map .mark .popup .description {
    margin: 0;
    font-family: 'Roboto';
    font-weight: 400;
    font-size: 16px;
    line-height: 1.36;
    text-wrap-mode: nowrap;
}

#map .mark img {
    z-index: 1;
    position: absolute;
}

#map .mark60,
#map .mark60 img {
    width: 60px;
    height: 60px;
}

#map .mark40,
#map .mark40 img {
    width: 40px;
    height: 40px;
}

@media (max-width: 768px) {
    #cards {
        margin-left: 12px;
        margin-right: 12px;
        grid-template-columns: repeat(1, 1fr);
    }

    .card {
        flex-direction: column;
        gap: 16px;
        padding: 16px;
    }

    .card .tags {
        margin-top: 16px;
        font-family: 'Roboto';
        font-weight: 400;
        font-size: 16px;
        color: rgba(0, 0, 0, .5);
    }

    .card .actions {
        gap: 16px;
    }

    .card img {
        width: 100%;
    }

    .card .actions .button {
        width: 100%;
        font-family: 'Montserrat';
        font-family: 400;
        font-size: 16px;
        text-transform: uppercase;
    }

    #map {
        margin-top: 82px;
    }

    #map .mark .popup {
        display: none;
    }

    #map .mark60,
    #map .mark60 img {
        width: 15px;
        height: 15px;
    }

    #map .mark40,
    #map .mark40 img {
        width: 10px;
        height: 10px;
    }
}