.media {
    gap: 3px;
    box-sizing: border-box;
    overflow: hidden;
}

.media .media-item {
    height: 100%;
    position: relative;
}

.media .media-content {
    min-height: 0;
    position: relative;
}

.media.gallery .media-content {
    border-radius: 15px;
    overflow: hidden;
}

.media .media-content > picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.media .media-content > video,
.media .media-content > iframe
{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    margin: 0;
    border: none;
}

.media .media-item .description {
    flex-shrink: 0;
}

.media.grid .media-item .description {
    min-width: 0;
    overflow: hidden;
}

.media .media-item .swipebox {
    position: absolute;
    inset: 0;
    z-index: 2;
}


.media.grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.media.grid .media-item {
    display: flex;
    flex-direction: column;
}

.media.grid .media-content {
    flex: 1;
}

/* Блоки описания и кнопки — не ячейки сетки, а отдельные строки на всю ширину */
.media.grid > .description,
.media.grid > .actions {
    grid-column: 1 / -1;
}

.media.grid.columns-2 {
    grid-template-columns: repeat(1, 1fr);
}

.media.grid.columns-2 {
    grid-template-columns: repeat(2, 1fr);
}
.media.grid.columns-3 {
    grid-template-columns: repeat(3, 1fr);
}
.media.grid.columns-4 {
    grid-template-columns: repeat(4, 1fr);
}
.media.grid.columns-5 {
    grid-template-columns: repeat(5, 1fr);
}
.media.grid.columns-6 {
    grid-template-columns: repeat(6, 1fr);
}

@media (min-width: 767px) {
    .media {
        padding: 0;
    }
}

@media (max-width: 767px) {
    section .block .media.grid {
        margin: 0 -16px;
        gap: 1px;
    }

    main {
        margin-bottom: 15px;
    }
}