body {
    background: limegreen;
}
article {
    box-shadow: 6px 6px 6px black;
    aspect-ratio: 210/297;
    height: 80vh;
    background: white;
    display: grid;
    grid-template-columns: repeat(8,1fr);
    grid-template-rows: repeat(5, 1fr);
}
figure {
    margin: 0;
}
img {
    width: 100%;
    height: 100%;
    object-fit: contain
}

.p1 {
    img { grid-column: 3 / span 5;}
    p { grid-row: 5;}
}
.p2 {
    figure { 
        grid-column: 1 / span 8; 
        grid-row: 1 / span 2; 
    }
    img {
        width: 100%;
        height: 100%;
        object-fit: cover
    }
    p {
        grid-column: 4 / span 4;
        grid-row: 3;
     }
}