Grid Layout with Uneven Height

<div class="row">
	<div class="container">
		<div class="wrap-box d-flex-row">
			<div class="box pink col-1">1</div>
			<div class="box orange col-2">2</div>
			<div class="box yellow col-3">3</div>
			<div class="box gray col-4">4</div>
		</div>
	</div>
</div>
.container{
	width:1160px;
	max-width:90%;
	margin:20px auto
}
.d-flex-row{
	display:grid;
    grid-template-columns:repeat(3, 1fr);
	gap:10px;
	text-align:center
}
.box{
	padding:20px;
	font-size:20px;
	min-height:100px;
	box-sizing:border-box;
}
.pink{
	background:#f77171
}
.orange{
	background:#f89e52
}
.yellow{
	background:#f4d460
}
.gray{
	background:#d3d3d3
}
.box:nth-child(1){
    grid-column: span 2;
    order: 1;
}
.box:nth-child(2){
    order: 3;
}
.box:nth-child(3){
    order: 3;
}
.box:nth-child(4){
    grid-row: span 2;
    order: 2;
}
@media(max-width:680px){
	.d-flex-row{
		grid-template-columns:auto;
	}
	.wrap-box .box{
		grid-column:auto
	}
}

Demo here…