/* ── Entity PhotoSwipe Widget ─────────────────────────────────────────────── */
/* PhotoSwipe lightbox CSS loaded from /vendor/photoswipe/photoswipe.css */

.entity-photoswipe-widget { display: block; width: 100%; }
.entity-photoswipe-title  { margin-bottom: 12px; }
.entity-photoswipe-body   { display: block; width: 100%; }

.entity-photoswipe-grid {
    display: grid;
    grid-template-columns: repeat(var(--pswp-cols, 4), 1fr);
    gap: var(--pswp-gap, 8px);
    width: 100%;
}

.entity-photoswipe-thumb {
    display: block;
    overflow: hidden;
    cursor: pointer;
    border-radius: 3px;
    background: #f0f2f5;
}
.entity-photoswipe-thumb img {
    width: 100%;
    height: var(--pswp-thumb-h, 160px);
    object-fit: cover;
    display: block;
    transition: transform .2s ease;
}
.entity-photoswipe-thumb:hover img { transform: scale(1.04); }

/* Caption overlay on hover */
.entity-photoswipe-caption {
    font-size: 11px;
    color: #555;
    padding: 4px 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Design-mode skeleton */
.entity-photoswipe-skeleton-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}
.entity-photoswipe-skeleton {
    min-height: 140px;
    background: #f5f7fa;
    border: 1px dashed #c0cad8;
    border-radius: 3px;
    animation: pswp-shimmer 1.4s infinite;
}
.entity-photoswipe-skeleton:nth-child(even) { animation-delay: .2s; }
@keyframes pswp-shimmer { 0%,100%{opacity:1} 50%{opacity:.5} }

.entity-photoswipe-empty { padding: 20px; text-align: center; color: #6b7a8d; font-size: 13px; }
