Basic and Responsive 3 Column Layout

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

Demo here…