/* A CSS grid (never flex) prevents narrow photo strips even if AJAX layout fails. */
#gallery-photo-grid{--photo-masonry-target:3;--photo-masonry-gap:1rem}
#realisations #studio-photo-grid{--photo-masonry-target:3;--photo-masonry-gap:.7rem}
@media(max-width:1150px){#gallery-photo-grid,#realisations #studio-photo-grid{--photo-masonry-target:2}}
@media(min-width:701px) and (max-width:950px){#gallery-photo-grid{--photo-masonry-target:3}}
@media(min-width:601px) and (max-width:850px){#realisations #studio-photo-grid{--photo-masonry-target:3}}
@media(max-width:700px){#gallery-photo-grid{--photo-masonry-target:2;--photo-masonry-gap:.65rem}}
@media(max-width:600px){#realisations #studio-photo-grid{--photo-masonry-target:2;--photo-masonry-gap:.65rem}}
html.photo-masonry-supported #gallery-photo-grid:not(.photo-masonry-ready):not(.photo-masonry-empty),
html.photo-masonry-supported #realisations #studio-photo-grid:not(.photo-masonry-ready):not(.photo-masonry-empty),
#gallery-photo-grid.photo-masonry-building,
#realisations #studio-photo-grid.photo-masonry-building{visibility:hidden}
#gallery-photo-grid.photo-masonry-ready,
#realisations #studio-photo-grid.photo-masonry-ready{
 display:grid;
 grid-template-columns:repeat(var(--photo-columns,3),minmax(0,1fr));
 align-items:start;
 column-gap:var(--photo-masonry-gap);
 columns:auto;
 position:relative;
}
#gallery-photo-grid[data-photo-columns="1"],#realisations #studio-photo-grid[data-photo-columns="1"]{--photo-columns:1}
#gallery-photo-grid[data-photo-columns="2"],#realisations #studio-photo-grid[data-photo-columns="2"]{--photo-columns:2}
#gallery-photo-grid[data-photo-columns="3"],#realisations #studio-photo-grid[data-photo-columns="3"]{--photo-columns:3}
#gallery-photo-grid.photo-masonry-building,#realisations #studio-photo-grid.photo-masonry-building{position:relative}
.photo-masonry-column{display:flex;flex-direction:column;min-width:0;gap:var(--photo-masonry-gap)}
.photo-masonry-probe{
 position:absolute;
 top:0;
 left:0;
 visibility:hidden;
 pointer-events:none;
 width:calc((100% - (var(--photo-columns,3) - 1) * var(--photo-masonry-gap)) / var(--photo-columns,3));
}
#gallery-photo-grid.photo-masonry-ready .photo-masonry-column>.tg-card,
#gallery-photo-grid.photo-masonry-ready>.tg-card,
#gallery-photo-grid .photo-masonry-probe>.tg-card,
#realisations #studio-photo-grid.photo-masonry-ready .photo-masonry-column>.platform-tile,
#realisations #studio-photo-grid.photo-masonry-ready>.platform-tile,
#realisations #studio-photo-grid .photo-masonry-probe>.platform-tile{
 display:block;
 width:100%;
 min-width:0;
 margin:0;
 break-inside:auto;
}
