.fr-masonry-wrapper{width:100%}
.fr-masonry-grid{column-count:var(--fr-columns-desktop,3);column-gap:16px}
@media(max-width:767px){.fr-masonry-grid{column-count:var(--fr-columns-mobile,2)}}
.fr-masonry-item{break-inside:avoid;margin-bottom:16px}
.fr-masonry-item img{width:100%;height:auto;display:block}
.fr-masonry-caption{font-size:.85rem;color:#555;margin-top:4px}

/* Single-column layout: force 400px images & center */
.fr-masonry-wrapper[data-fr-columns-desktop="1"] .fr-masonry-grid{column-count:1!important}
.fr-masonry-wrapper[data-fr-columns-desktop="1"] .fr-masonry-item img{
  width:400px;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}

/* Column-count helpers */
.fr-masonry-wrapper[data-fr-columns-desktop="2"] .fr-masonry-grid{column-count:2}
.fr-masonry-wrapper[data-fr-columns-desktop="3"] .fr-masonry-grid{column-count:3}
.fr-masonry-wrapper[data-fr-columns-desktop="4"] .fr-masonry-grid{column-count:4}
.fr-masonry-wrapper[data-fr-columns-desktop="5"] .fr-masonry-grid{column-count:5}
.fr-masonry-wrapper[data-fr-columns-desktop="6"] .fr-masonry-grid{column-count:6}
.fr-masonry-wrapper[data-fr-columns-desktop="7"] .fr-masonry-grid{column-count:7}
.fr-masonry-wrapper[data-fr-columns-desktop="8"] .fr-masonry-grid{column-count:8}

/* Lightbox base */
.fr-masonry-lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.85);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:99999;
  padding:20px;
}
.fr-masonry-lightbox.is-active{display:flex}
.fr-masonry-lightbox-inner{
  text-align:center;
  max-width:100%;
  max-height:100%;
  position:relative;
}
.fr-masonry-lightbox-img{
  max-width:100%;
  max-height:calc(100vh - 120px);
  cursor:grab;
  -webkit-user-drag:none;
  user-drag:none;
}
.fr-masonry-lightbox-img:active{
  cursor:grabbing;
}
.fr-masonry-lightbox-caption{
  color:#fff;
  margin-top:10px;
}

/* Top bar */
.fr-masonry-lightbox-topbar{
  position:fixed;
  top:18px;
  right:20px;
  display:flex;
  align-items:center;
  gap:14px;
  z-index:100000;
}

/* SHARE button (match site buttons) */
.fr-masonry-lightbox-sharebtn{
  padding:10px 22px;
  border-radius:6px;
  border:1px solid #1e73be;
  background:#1e73be;
  color:#fff;
  font-size:14px;
  line-height:1.4;
  font-weight:500;
  letter-spacing:0.02em;
  text-transform:uppercase;
  cursor:pointer;
}
.fr-masonry-lightbox-sharebtn:hover{
  background:#14548a;
  border-color:#14548a;
}

/* Close icon */
.fr-masonry-lightbox-close{
  font-size:28px;
  color:#fff;
  cursor:pointer;
  position:relative;
  top:0;
}

/* Arrows – desktop */
.fr-masonry-lightbox-arrow{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  font-size:34px;
  color:rgba(255,255,255,0.6);
  text-shadow:0 0 4px rgba(0,0,0,0.4);
  background:none;
  padding:8px 10px;
  user-select:none;
  cursor:pointer;
  z-index:100000;
}
.fr-masonry-lightbox-arrow--prev{left:32px}
.fr-masonry-lightbox-arrow--next{right:32px}

/* Mobile tweaks */
@media(max-width:767px){
  .fr-masonry-lightbox-topbar{
    top:12px;
    right:10px;
    gap:10px;
  }
  .fr-masonry-lightbox-sharebtn{
    padding:6px 14px;
    font-size:11px;
  }
  .fr-masonry-lightbox-close{
    font-size:22px;
  }
  .fr-masonry-lightbox-img{
    max-height:calc(100vh - 140px);
  }
  .fr-masonry-lightbox-caption{
    font-size:.85rem;
  }
  .fr-masonry-lightbox-arrow{
    font-size:22px;
    padding:4px 5px;
    color:rgba(255,255,255,0.6);
    text-shadow:0 0 4px rgba(0,0,0,0.4);
    background:none;
  }
  .fr-masonry-lightbox-arrow--prev{left:20px}
  .fr-masonry-lightbox-arrow--next{right:20px}
}

/* Lock page scrolling when lightbox is open */
html.fr-masonry-lightbox-open,
body.fr-masonry-lightbox-open{
  overflow:hidden;
  touch-action:none;
}
