.fdg-grid {
    --fdg-gap: 8px;
    display: grid;
    gap: var(--fdg-gap);
    width: 100%;
}
.fdg-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.fdg-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fdg-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fdg-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fdg-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.fdg-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.fdg-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.fdg-cols-8 { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.fdg-item { margin: 0; min-width: 0; overflow: hidden; }
.fdg-link { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.fdg-image { display: block; width: 100%; height: auto; max-width: 100%; }
.fdg-ratio-1-1 .fdg-item,
.fdg-ratio-4-3 .fdg-item,
.fdg-ratio-3-2 .fdg-item,
.fdg-ratio-4-5 .fdg-item,
.fdg-ratio-16-9 .fdg-item { position: relative; }
.fdg-ratio-1-1 .fdg-item { aspect-ratio: 1 / 1; }
.fdg-ratio-4-3 .fdg-item { aspect-ratio: 4 / 3; }
.fdg-ratio-3-2 .fdg-item { aspect-ratio: 3 / 2; }
.fdg-ratio-4-5 .fdg-item { aspect-ratio: 4 / 5; }
.fdg-ratio-16-9 .fdg-item { aspect-ratio: 16 / 9; }
.fdg-ratio-1-1 .fdg-image,
.fdg-ratio-4-3 .fdg-image,
.fdg-ratio-3-2 .fdg-image,
.fdg-ratio-4-5 .fdg-image,
.fdg-ratio-16-9 .fdg-image { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 980px) {
    .fdg-cols-4, .fdg-cols-5, .fdg-cols-6, .fdg-cols-7, .fdg-cols-8 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .fdg-cols-3, .fdg-cols-4, .fdg-cols-5, .fdg-cols-6, .fdg-cols-7, .fdg-cols-8 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
    .fdg-cols-1 { grid-template-columns: 1fr; }
}

.fdg-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background: rgba(0,0,0,.94);
}
.fdg-lightbox.is-open { display: flex; }
.fdg-lightbox__stage { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.fdg-lightbox__image { display: block; max-width: min(94vw, 1800px); max-height: 88vh; width: auto; height: auto; object-fit: contain; }
.fdg-lightbox__caption { position: absolute; left: 50%; bottom: 6px; transform: translateX(-50%); max-width: 80vw; color: #fff; font-size: 14px; line-height: 1.45; text-align: center; }
.fdg-lightbox__close,
.fdg-lightbox__prev,
.fdg-lightbox__next {
    position: absolute;
    z-index: 2;
    border: 0;
    background: rgba(0,0,0,.36);
    color: #fff;
    cursor: pointer;
    line-height: 1;
    border-radius: 999px;
}
.fdg-lightbox__close { top: 18px; right: 18px; width: 44px; height: 44px; font-size: 32px; }
.fdg-lightbox__prev, .fdg-lightbox__next { top: 50%; transform: translateY(-50%); width: 48px; height: 64px; font-size: 36px; }
.fdg-lightbox__prev { left: 18px; }
.fdg-lightbox__next { right: 18px; }
body.fdg-lightbox-open { overflow: hidden; }
.fdg-warning { padding: 12px 14px; border-left: 4px solid #dba617; background: #fff8df; color: #3c434a; }
/* Griglia compatta 0.2.0: prevale sui CSS dei temi e dei vecchi plugin. */
.fdg-grid { display:grid!important; align-items:start; gap:var(--fdg-gap,4px)!important; }
.fdg-grid .fdg-item { padding:0!important; margin:0!important; border:0!important; width:auto!important; min-height:0; }
.fdg-grid .fdg-item .fdg-link { display:block!important; height:100%!important; width:100%!important; }
.fdg-grid:not(.fdg-ratio-original) .fdg-item { overflow:hidden; }
.fdg-grid:not(.fdg-ratio-original) .fdg-image { display:block!important; width:100%!important; height:100%!important; max-height:none!important; object-fit:cover!important; margin:0!important; }
