lightbox with prev / // next, arrow keys, Esc and swipe; the repeated copies are hidden from assistive // tech and open the same photo. // Every format the admin upload accepts (functions_galerias.php), without the // .jxl.webp/.jpg fallbacks; a .jxl tile is (img_tag), the link goes to // the fallback and the lightbox shows whichever the tile picked (currentSrc). $files = img_list_dir($gallery_path); // Column span per tile, cycled: w = two columns, s = one. $gal_shapes = ['w', 's', 's', 's', 's', 'w', 's', 's', 's', 's', 's']; $gal_label = $gallery_h2 ?? 'Instalações'; ?>
Galeria

Espaço amplo, equipamento moderno e um ambiente feito para treinar.

= 4); $take = $grid ? 4 : 1; $units[] = ['grid' => $grid, 'idx' => range($i, $i + $take - 1)]; $i += $take; $k++; } // The strip is rendered four times: main.js keeps the scroll position inside // the middle copies and jumps by exactly one copy, so it loops without a seam. $copies = 4; ?>