.grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: auto;
}

/*----------------------------------------------------------------------------------------------*/

.grid > .painting {
	display: grid;
	grid-template-areas:
		'thumbnail thumbnail'
		'info tag';
	grid-template-rows: 1fr auto;
	grid-template-columns: 1fr auto;
	align-items: center;
	row-gap: 35px;
	column-gap: 25px;
	padding: 50px;
	
	background-color: #F4F4F4;
	background-image: linear-gradient(to top left, rgba(0,0,0,.05), transparent);
	
	isolation: isolate;
}
.grid > .painting > .thumbnail {
	grid-area: thumbnail;
	position: relative;
	padding-top: 100%;
}
.grid > .painting > .thumbnail > .media-element {
	position: absolute; top: 0; left: 0;
	overflow: hidden;
	border-radius: 5px;
	filter: drop-shadow(10px 10px 5px rgba(0,0,0,.3));
}
.grid > .painting > .thumbnail > .media-element > img {
	object-fit: contain;
}
.grid > .painting > .info {
	grid-area: info;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	row-gap: 5px;
}
.grid > .painting > .info > .title {
	font-size: 16px;
	font-weight: 400; 
}
.grid > .painting > .info > .price {
	font-size: 13px;
	color: #818181;
}
.grid > .painting > .tag {
	grid-area: tag;
	padding: 0 20px;
	
	border: solid 1px;
	border-radius: 25px;
	
	line-height: 36px;
	font-size: 12px;
}

/*----------------------------------------------------------------------------------------------*/

.grid > .painting:nth-child(18n + 5),
.grid > .painting:nth-child(18n + 12) {
	grid-column: span 2;
    grid-row: span 2;
	display: block;
	padding: 0;
}
.grid > .painting:nth-child(18n + 5) > .thumbnail,
.grid > .painting:nth-child(18n + 12) > .thumbnail {
	height: 100%; width: 100%;
	padding: 0;
}
.grid > .painting:nth-child(18n + 5) > .thumbnail > .media-element,
.grid > .painting:nth-child(18n + 12) > .thumbnail > .media-element {
	border-radius: 0;
	filter: none;
}
.grid > .painting:nth-child(18n + 5) > .thumbnail > .media-element > img,
.grid > .painting:nth-child(18n + 12) > .thumbnail > .media-element > img {
	object-fit: cover;
}
.grid > .painting:nth-child(18n + 5) > .thumbnail ~ div,
.grid > .painting:nth-child(18n + 12) > .thumbnail ~ div { display: none; }