/* ── Galerie ─────────────────────────────────────────────
   Rangées justifiées : chaque photo garde son format (portrait, carré,
   paysage, panoramique) et n'est jamais recadrée. La largeur d'une photo
   est proportionnelle à son ratio (--r = largeur / hauteur), donc toutes
   les photos d'une rangée ont la même hauteur. */
.gal-grid{--h:210px;display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0 0 2.2rem;padding:0}
.gal-grid::after{content:"";flex-grow:1000000}
.gal-item{flex-grow:calc(var(--r) * 100);flex-basis:calc(var(--r) * var(--h));max-width:100%;margin:0}
.gal-link{display:block;border-radius:var(--r-sm);overflow:hidden;background:var(--card2);outline-offset:3px}
.gal-link img{display:block;width:100%;height:auto;transition:var(--t-img)}
.gal-link:hover img{transform:scale(1.03)}
.gal-link:focus-visible{outline:2px solid var(--wood-l)}
@media (max-width:900px){.gal-grid{--h:160px;gap:8px}}
@media (max-width:680px){.gal-grid{--h:118px;gap:6px}}
@media (prefers-reduced-motion:reduce){.gal-link img{transition:none}.gal-link:hover img{transform:none}}

/* Visionneuse : photo entière (contain), jamais recadrée ni agrandie au-delà de sa taille. */
.gal-lb{border:0;padding:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:rgba(10,10,8,.96);color:var(--cream)}
.gal-lb::backdrop{background:rgba(10,10,8,.96)}
.gal-lb[open]{display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center}
.gal-lb figure{margin:0;display:contents}
.gal-lb img{max-width:calc(100vw - 2rem);max-height:calc(100dvh - 5.5rem);width:auto;height:auto;object-fit:contain;align-self:center;border-radius:4px;touch-action:pan-y pinch-zoom}
.gal-lb figcaption{padding:.8rem 4.5rem 1.2rem;font-size:.92rem;color:var(--muted);text-align:center;min-height:3.2rem}
.gal-lb figcaption b{color:var(--cream);font-weight:500}
.gal-lb button{position:fixed;border:1px solid var(--bd);background:rgba(21,20,16,.8);color:var(--cream);width:46px;height:46px;border-radius:50%;font-size:1.35rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.gal-lb button:hover,.gal-lb button:focus-visible{border-color:var(--wood-l);color:var(--wood-l)}
.gal-close{top:14px;right:14px}
.gal-prev{left:14px;top:50%;transform:translateY(-50%)}
.gal-next{right:14px;top:50%;transform:translateY(-50%)}
@media (max-width:680px){.gal-prev,.gal-next{top:auto;bottom:10px;transform:none}.gal-lb figcaption{padding:.8rem 3.8rem 1.2rem;font-size:.85rem}}
