/* Galerias públicas e autenticadas da comunidade BeatFellas. */
[v-cloak] { display: none; }

/* Protege as imagens da galeria contra menu de contexto (clique direito / long-press). */
.gallery-card img,
.gallery-lightbox-stage img {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

.gallery-masonry {
    column-count: 4;
    column-gap: 1rem;
}

.gallery-card {
    background: #111;
    border: 0;
    border-radius: .75rem;
    box-shadow: 0 .35rem 1rem rgba(0, 0, 0, .16);
    color: #fff;
    cursor: zoom-in;
    display: inline-block;
    margin: 0 0 1rem;
    overflow: hidden;
    padding: 0;
    position: relative;
    text-align: left;
    transition: transform .2s ease, box-shadow .2s ease;
    width: 100%;
}

.gallery-card:hover,
.gallery-card:focus-visible {
    box-shadow: 0 .65rem 1.4rem rgba(0, 0, 0, .25);
    outline: 3px solid var(--bs-primary);
    outline-offset: 2px;
    transform: translateY(-3px);
}

.gallery-card img { display: block; height: auto; width: 100%; }

.gallery-card-caption {
    background: linear-gradient(transparent, rgba(0, 0, 0, .9));
    bottom: 0;
    display: flex;
    flex-direction: column;
    left: 0;
    padding: 2.5rem .9rem .75rem;
    position: absolute;
    right: 0;
}

.gallery-card-caption small { color: rgba(255, 255, 255, .75); }

.gallery-lightbox-stage {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 300px;
    overflow: hidden;
    position: relative;
    touch-action: none;
    user-select: none;
}

.gallery-lightbox-stage img {
    display: block;
    max-height: 68vh;
    max-width: 100%;
    object-fit: contain;
}

.gallery-tag,
.gallery-selection {
    border: 2px solid #ffc107;
    pointer-events: none;
    position: absolute;
}

.gallery-tag > span {
    background: #ffc107;
    color: #111;
    font-size: .75rem;
    font-weight: 700;
    left: -2px;
    padding: .15rem .35rem;
    position: absolute;
    top: 100%;
    white-space: nowrap;
}

.gallery-selection { background: rgba(255, 193, 7, .18); border-style: dashed; }
.gallery-tag-list { max-height: 13rem; overflow-y: auto; }

.gallery-static-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.gallery-static-card {
    background: #111;
    border-radius: .65rem;
    box-shadow: 0 .25rem .8rem rgba(0, 0, 0, .14);
    display: block;
    min-height: 150px;
    overflow: hidden;
}

.gallery-static-card img {
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
    width: 100%;
}

.gallery-static-card:hover img,
.gallery-static-card:focus-visible img { transform: scale(1.035); }

/* Legenda de disclaimer exibida abaixo da imagem no modal de visualização. */
.disclaimer-caption {
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: .5rem;
    color: #664d03;
    font-size: .85rem;
    margin-top: .75rem;
    padding: .6rem .9rem;
}

@media (max-width: 1199.98px) { .gallery-masonry { column-count: 3; } }
@media (max-width: 767.98px) { .gallery-masonry { column-count: 2; } }
@media (max-width: 479.98px) { .gallery-masonry { column-count: 1; } }

@media (prefers-reduced-motion: reduce) {
    .gallery-card { transition: none; }
}
