/* Reset and wrapper */
.cgw-wrapper {
  width: 100%;
  box-sizing: border-box;
  position: relative;
  z-index: 3;
}

/* Filters */
.cgw-filters {
  text-align: center;
  margin-bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.cgw-filters .cgw-filter {
  font-family: "Barlow", Sans-serif;
  font-size: 18px;
  line-height: 25px;
  font-weight: 600;
  text-transform: uppercase;
  display: inline-block;
  padding: 8px 16px;
  border:0px;
  border-radius: 4px;
  background: #EDAA4D;
  cursor: pointer;
  -webkit-transition: 1s ease;
  transition: 1s ease;
}

.cgw-filters .cgw-filter:hover,
.cgw-filters .cgw-filter.active {
  background: #fff;
}

/* Gallery container */
.cgw-gallery-container {
  width: 100%;
  margin: 0 auto;
  position: relative;
}

/* Grid wrapper - required for Masonry */
.cgw-grid {
  /* position: relative;
  width: 100%; */
  position: relative;
  width: 100%;
  --columns: 3;
  --gap: 10px;
  --columns-1024: var(--columns);
  --columns-768: var(--columns-1024);
  --columns-575: 1;
  --gap-1024: var(--gap);
  --gap-768: var(--gap);
  --gap-575: var(--gap);
}
.cgw-grid.cgw-style-grid {
  display: grid;
  grid-template-columns: repeat(var(--columns), 1fr);
  gap: var(--gap);
  width: 100%;
}
/* Grid Sizer and Item common styles (for Masonry) */
.cgw-grid-sizer,
.cgw-item {
  float: left;
  box-sizing: border-box;
}

/* Items */
.cgw-item {
  overflow: hidden;
  transition: all 0.3s ease;
}

.cgw-item a {
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: 6px;
}
.cgw-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform 0.28s ease;
}
.cgw-item:hover img {
  transform: scale(1.03);
}

/* Hidden during filtering */
.cgw-item.hidden {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.9);
  transition: opacity .25s ease, transform .25s ease;
}

/* ========== GRID ITEMS ========== */
.cgw-wrapper.cgw-style-grid .cgw-grid .cgw-item a{ height: 100%; }
.cgw-wrapper.cgw-style-grid .cgw-grid .cgw-item {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1; /* Ensures uniform square cells */
  border-radius: 6px;
}

/* ========== IMAGES INSIDE GRID ========== */
.cgw-wrapper.cgw-style-grid .cgw-grid .cgw-item img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Maintains aspect ratio, no stretching */
  display: block;
  transition: transform 0.3s ease;
}

/* Hover zoom effect (optional) */
.cgw-wrapper.cgw-style-grid .cgw-grid .cgw-item:hover img {
  transform: scale(1.05);
}

/* ---------- GRID STYLE (pure CSS grid) ---------- */
.cgw-style-grid .cgw-grid {
  display: grid;
  grid-template-columns: repeat(var(--columns, 3), 1fr);
  gap: var(--gap, 10px);
}
.cgw-style-grid .cgw-item {
  position: static; 
  width: auto !important; 
  float: none; 
  padding: 0;
}
.cgw-style-grid .cgw-grid-sizer {
  display: none;
}

/* ---------- MASONRY: JS handles layout (via Masonry Library) ---------- */
.cgw-style-masonry .cgw-item{
  position: absolute;
}


/* Responsive Overrides for CSS Grid */
@media (max-width: 1024px) {
  .cgw-style-grid .cgw-grid {
    grid-template-columns: repeat(var(--columns-1024, var(--columns)), 1fr);
    gap: var(--gap-1024, var(--gap));
  }
  .cgw-style-masonry .cgw-grid{
  }
}
@media (max-width: 768px) {
  .cgw-style-grid .cgw-grid {
    grid-template-columns: repeat(var(--columns-768, var(--columns-1024)), 1fr);
    gap: var(--gap-768, var(--gap-1024));
  }
  .cgw-filters { gap: 8px; }
  .cgw-filters .cgw-filter {
    font-size: 15px;
    line-height: 20px;
  }
}
@media (max-width: 575px) {
  .cgw-style-grid .cgw-grid {
    grid-template-columns: repeat(var(--columns-575, var(--columns-768)), 1fr);
    gap: var(--gap-575, var(--gap-768));
  }
}
.cgw-grid-sizer { width: 0; height: 0; display: block; visibility: hidden; }
@media (max-width: 480px) {
  
}