/* Public Gallery: true editorial masonry using CSS columns so each photograph keeps its own shape. */
.sm-gl-grid {
    column-count: 4;
    column-gap: 20px;
    column-fill: balance;
}

.sm-gl-item {
    break-inside: avoid;
    display: inline-block;
    width: 100%;
    margin: 0 0 20px;
    vertical-align: top;
    isolation: isolate;
    animation: sm-gallery-tile-in .55s cubic-bezier(.2, .7, .2, 1) both;
    animation-delay: var(--sm-gallery-delay, 0ms);
}

.sm-gl-item .sm-progressive-image { display: block; width: 100%; height: auto; }
.sm-gl-item .sm-progressive-image__full { width: 100%; height: auto; min-height: 160px; object-fit: cover; }
.sm-gl-item:focus-visible { outline: 3px solid var(--bz-gold); outline-offset: 4px; }

@keyframes sm-gallery-tile-in {
    from { opacity: 0; transform: translateY(18px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1199px) {
    .sm-gl-grid { column-count: 3; }
}

@media (max-width: 767px) {
    .sm-gl-grid { column-count: 2; column-gap: 12px; }
    .sm-gl-item { margin-bottom: 12px; }
    .sm-gl-item .cap { opacity: 1; padding: 26px 10px 9px; }
    .sm-gl-item .cap strong { font-size: 14px; }
}

@media (max-width: 380px) {
    .sm-gl-grid { column-count: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .sm-gl-item { animation: none; }
}
