.photography-main {
    margin: 0;
}

.image-grid {
    --gap: 16px;
    --num-cols: 4;
    --row-height: 300px;

    box-sizing: border-box;
    padding: var(--gap);

    display: grid;
    grid-template-columns: repeat(var(--num-cols), 1fr);
    grid-auto-rows: var(--row-height);
    gap: var(--gap);
}

.image-grid > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-grid-col-2 {
    grid-column: span 2;
}
.image-grid-row-2 {
    grid-row: span 2;
}

@media screen and (max-width: 1024px) {
    .image-grid {
        --num-cols: 2;
        --row-height: 200px;
    }
}

@media screen and (max-width: 512px) {
    .image-grid {
        --num-cols: 1;
        --row-height: 200px;
    }
}