.oplixo-gallery {
    width: 100%;
}

.oplixo-gallery a {
    text-decoration: none;
}

.oplixo-gallery img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.oplixo-gallery-item {
    overflow: hidden;
    border-radius: 12px;
    display: block;
}

.oplixo-gallery-item:hover img {
    transform: scale(1.02);
    opacity: 0.96;
}

/* GRID */
.oplixo-gallery-grid {
    display: grid;
    gap: var(--oplixo-gap, 16px);
    grid-template-columns: repeat(var(--oplixo-grid-cols-desktop, 4), minmax(0, 1fr));
}

/* MASONRY fallback na CSS columns */
.oplixo-gallery-masonry {
    column-count: var(--oplixo-masonry-cols-desktop, 4);
    column-gap: var(--oplixo-gap, 16px);
}

.oplixo-gallery-masonry .oplixo-gallery-item {
    display: inline-block;
    width: 100%;
    margin: 0 0 var(--oplixo-gap, 16px);
}

.oplixo-gallery-masonry img {
    width: 100%;
    height: auto;
}

/* TABLET */
@media (max-width: 1024px) {
    .oplixo-gallery-grid {
        grid-template-columns: repeat(var(--oplixo-grid-cols-tablet, 2), minmax(0, 1fr));
    }

    .oplixo-gallery-masonry {
        column-count: var(--oplixo-masonry-cols-tablet, 2);
    }
}

/* MOBILE */
@media (max-width: 767px) {
    .oplixo-gallery-grid {
        grid-template-columns: repeat(var(--oplixo-grid-cols-mobile, 1), minmax(0, 1fr));
    }

    .oplixo-gallery-masonry {
        column-count: var(--oplixo-masonry-cols-mobile, 1);
    }

    .oplixo-gallery img,
    .oplixo-gallery-item {
        border-radius: 10px;
    }
}