/* Place the grain overlay on #portfolio_page so it covers sections/header/footer */
#portfolio_page,
#theme-visualiser #portfolio_page {
    position: relative;
}

#portfolio_page::after,
#theme-visualiser #portfolio_page::after {
    position: absolute;
    content: "";
    inset: 0;

    pointer-events: none;
    background-image: var(--portfolios-grain-img, url('../../../design/background/noise-white.png'));
    background-repeat: repeat;
    background-position: center;
}

/* Ensure header/footer keep highest stacking order above grain overlay */
#portfolio_page header, #portfolio_page footer,
#theme-visualiser #portfolio_page header, #theme-visualiser #portfolio_page footer {

}
/* poster elements inside grid items (absolute) must also be on top */
.horizontal-grid-item .poster, .square-grid-item .poster, .vertical-grid-item .poster,
#theme-visualiser .horizontal-grid-item .poster, #theme-visualiser .square-grid-item .poster, #theme-visualiser .vertical-grid-item .poster {
    position: absolute !important;
}

/* Ensure infos overlays (titles/gradients) appear above posters and overlays */
.horizontal-grid-item .horizontal-infos,
.square-grid-item .square-infos,
.vertical-grid-item .vertical-infos,
#theme-visualiser .horizontal-grid-item .horizontal-infos,
#theme-visualiser .square-grid-item .square-infos,
#theme-visualiser .vertical-grid-item .vertical-infos {
    position: absolute;

}