/* Stable masonry: image headers reserve each slot before photo downloads begin. */
#fotografia.portfolio-gallery{display:grid;grid-template-columns:repeat(var(--gallery-columns-desktop,4),minmax(0,1fr));grid-auto-rows:4px;grid-auto-flow:row;column-count:auto;column-gap:var(--gallery-gap-desktop,12px);row-gap:0;align-items:start;min-width:0}
#fotografia.portfolio-gallery .gallery-card{display:block;min-width:0;width:100%;margin:0;border:0;overflow:hidden;align-self:start;break-inside:auto;background:#111;content-visibility:auto;contain-intrinsic-size:auto 320px}
#fotografia.portfolio-gallery .photo-card{width:100%;height:100%;min-height:0;margin:0;aspect-ratio:auto;background:#101010;overflow:hidden}
#fotografia.portfolio-gallery .photo-card img{display:block;width:100%;height:100%;object-fit:contain;min-height:0;opacity:0;transition:opacity .22s ease,transform .4s ease}
#fotografia.portfolio-gallery [data-state=loaded] .photo-card img{opacity:1}
#fotografia .photo-open:disabled{cursor:progress}
#fotografia .photo-retry{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;min-height:48px;max-width:calc(100% - 20px);padding:10px 14px;border:1px solid #777;background:#111;color:#eee;border-radius:4px;font:500 14px/1.4 Montserrat,Arial,sans-serif;cursor:pointer}
#fotografia .photo-retry[hidden]{display:none}
#fotografia .is-error{outline:1px solid #333;outline-offset:-1px}
#fotografia .gallery-status{display:grid;grid-column:1/-1;grid-row-end:span 32;place-content:center;justify-items:center;gap:12px;min-height:128px;margin:0;padding:22px 16px;text-align:center;font-size:15px;color:#bcbcbc;line-height:1.6}
#fotografia .gallery-status p{margin:0;max-width:420px}
#fotografia .gallery-status button{min-height:46px;padding:10px 20px;border:1px solid #888;background:#111;color:#fff;border-radius:4px;font:inherit;cursor:pointer}
.lightbox{max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain}
.lightbox figure{max-height:calc(100dvh - 22px);grid-template-rows:minmax(0,1fr) auto auto;min-width:0}
.lightbox figure img{height:min(78dvh,calc(100dvh - 115px));max-width:100%;object-fit:contain;touch-action:pan-y pinch-zoom}
.lightbox .lightbox-reserve{flex-shrink:0;min-height:46px;margin:10px auto 14px;padding:11px 22px;max-width:calc(100% - 30px);font-size:15px}
.lightbox-close,.lightbox-arrow{min-width:44px;min-height:44px;touch-action:manipulation}
.lightbox .lightbox-image-status{margin:0;padding:8px 18px;font-size:14px;color:#ccc;text-align:center;max-width:100%}
.lightbox .lightbox-image-status:empty{display:none}
@media(max-width:1200px) and (min-width:1021px){#fotografia.portfolio-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1020px){#fotografia.portfolio-gallery{grid-template-columns:repeat(var(--gallery-columns-tablet,3),minmax(0,1fr));column-gap:var(--gallery-gap-mobile,7px)}.mobile-menu{max-height:calc(100dvh - 190px);overflow-y:auto;overscroll-behavior:contain}.mobile-access-clients{font-family:Montserrat,Arial,sans-serif}}
@media(max-width:680px){#fotografia.portfolio-gallery{grid-template-columns:repeat(var(--gallery-columns-mobile,2),minmax(0,1fr));column-gap:var(--gallery-gap-mobile,7px)}.mobile-menu{max-height:calc(100dvh - 166px)}.lightbox{width:100%;max-width:100vw;max-height:100dvh;border:0;margin:auto;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.lightbox figure{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:0}.lightbox figure img{height:calc(100dvh - 116px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:100%;max-width:100%;object-fit:contain}.lightbox .lightbox-reserve{font-size:15px;margin:10px auto 14px}.lightbox-close{top:max(8px,env(safe-area-inset-top));right:8px}.lightbox-previous{left:3px}.lightbox-next{right:3px}}
@media(hover:none){#fotografia.portfolio-gallery .gallery-card:hover .photo-card img{transform:none}}
@media(prefers-reduced-motion:reduce){#fotografia.portfolio-gallery .photo-card img{transition:none}}
