.parent { display: grid; grid-template-columns: repeat(5, 1fr); grid-template-rows: repeat(3, 1fr); grid-column-gap: 2px; grid-row-gap: 2px; max-height: 75vh; } .div1 { grid-area: 1 / 1 / 4 / 4; } .div2 { grid-area: 1 / 4 / 3 / 6; } .div3 { grid-area: 3 / 4 / 4 / 5; } .div4 { grid-area: 3 / 5 / 4 / 6; } img{ width: 100%; height: 100%; object-fit: cover; } .parent > div { position: relative; overflow: hidden; } .overlay { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 20px; background: linear-gradient( to top, rgba(0,0,0,0.75), rgba(0,0,0,0) ); opacity: 0; transition: opacity 0.3s ease; } .overlay p { color: white; margin: 0; font-size: 18px; transform: translateY(20px); transition: transform 0.3s ease; } .parent > div:hover .overlay { opacity: 1; } .parent > div:hover .overlay p { transform: translateY(0); }