/* ProductLightbox — modal de detalle de producto. Se abre al hacer click en cualquier foto del portafolio. Cierra con ESC, click en el backdrop o botón X. Lee la ficha desde window.productData. */ const ProductLightbox = ({ src, onClose, t, lang }) => { const data = src ? window.productData?.[src] : null; const open = Boolean(data); // ESC para cerrar + bloquear scroll del body React.useEffect(() => { if (!open) return; const onKey = (e) => { if (e.key === 'Escape') onClose(); }; document.addEventListener('keydown', onKey); const prev = document.body.style.overflow; document.body.style.overflow = 'hidden'; return () => { document.removeEventListener('keydown', onKey); document.body.style.overflow = prev; }; }, [open, onClose]); if (!open) return null; const pick = (field) => { if (!field) return ''; if (typeof field === 'string') return field; return field[lang] || field.es || ''; }; return (
{pick(data.description)}