/* Galeria de fotos com ampliação (dados em assets/data/*.json) */
.gl:not(.is-ready){display:none}
.gl{background:var(--espresso);padding-block:clamp(56px,8vw,112px)}
.gl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.2vw,16px);margin:40px 0 0;padding:0;list-style:none}
@media(max-width:620px){.gl-grid{grid-template-columns:repeat(2,1fr)}}
.gl-th{all:unset;box-sizing:border-box;display:block;width:100%;cursor:zoom-in;aspect-ratio:4/5;overflow:hidden;background:var(--espresso-2,#1a0d0b);position:relative}
.gl-th:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.gl-th img{width:100%;height:100%;object-fit:cover;display:block}
@media(hover:hover) and (pointer:fine){.gl-th img{transition:transform 700ms var(--ease-out,ease)}.gl-th:hover img{transform:scale(1.05)}}
.gl-cap{display:block;margin-top:8px;font-size:.9rem;line-height:1.4;color:rgba(246,240,229,.78)}
dialog.gl-lb{padding:0;border:0;background:rgba(14,7,6,.96);color:var(--parchment);width:100vw;height:100dvh;max-width:none;max-height:none;margin:0}
dialog.gl-lb::backdrop{background:#0e0706}
.gl-btn{all:unset;box-sizing:border-box;cursor:pointer;display:grid;place-items:center;width:44px;height:44px;background:rgba(24,11,10,.72);border:1px solid var(--line-dark);color:var(--parchment)}
.gl-btn:hover{border-color:var(--gold);color:var(--gold)}
.gl-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.gl-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.gl-in{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:64px clamp(12px,6vw,88px) 56px;touch-action:pan-y}
.gl-fig{margin:0;display:grid;justify-items:center;gap:12px;max-width:100%}
.gl-fig img{max-width:100%;max-height:calc(100dvh - 150px);width:auto;height:auto;object-fit:contain}
.gl-fig figcaption{font-size:.9rem;color:rgba(246,240,229,.78);text-align:center;max-width:70ch}
.gl-close{position:absolute;top:12px;right:12px}
.gl-prev,.gl-next{position:absolute;top:50%;transform:translateY(-50%)}
.gl-prev{left:12px}.gl-next{right:12px}
.gl-count{position:absolute;left:0;right:0;bottom:14px;margin:0;text-align:center;font-size:.8rem;letter-spacing:.16em;color:rgba(246,240,229,.7)}
@media(hover:none) and (pointer:coarse){.gl-prev,.gl-next{display:none}.gl-in{padding-inline:12px}}
