
.apertura__media img, .hero--photo .hero__bg img { cursor: zoom-in; }
.gal { position: fixed; inset: 0; z-index: 1000; background: rgba(12,12,9,.985); display: none;
       align-items: center; justify-content: center; touch-action: pan-y; }
.gal.aperta { display: flex; }
.gal img { max-width: 94vw; max-height: 86vh; object-fit: contain; user-select: none; -webkit-user-drag: none;
           box-shadow: 0 10px 40px rgba(0,0,0,.5); transition: opacity .18s; }
.gal button { position: absolute; background: rgba(245,242,236,.12); color: #f5f2ec; border: 0; cursor: pointer;
              width: 48px; height: 48px; border-radius: 50%; font-size: 26px; line-height: 48px; padding: 0; }
.gal button:hover, .gal button:focus-visible { background: rgba(245,242,236,.25); outline: none; }
.gal .gal-x { top: max(14px, env(safe-area-inset-top)); right: 14px; font-size: 30px; }
.gal .gal-p { left: 14px; top: 50%; transform: translateY(-50%); }
.gal .gal-n { right: 14px; top: 50%; transform: translateY(-50%); }
.gal .gal-c { position: absolute; bottom: max(16px, env(safe-area-inset-bottom)); left: 0; right: 0; text-align: center;
              color: rgba(245,242,236,.75); font: 13px/1.4 Inter, system-ui, sans-serif; letter-spacing: .08em; }
@media (max-width: 640px) { .gal .gal-p, .gal .gal-n { top: auto; bottom: max(8px, env(safe-area-inset-bottom)); transform: none; }
                            .gal img { max-width: 100vw; max-height: 78vh; } }
