.fpf-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  
}

.fpf-square {
  aspect-ratio: 1 / 1;
  //background: #eee;
  align-items: center;
  justify-content: center;
  border-radius: 2rem;
	background: rgba(0, 0, 0, 0.05);
	border: none !important;
  padding: 2rem;
  position: relative; /* creates positioning context */
  display: block;
}

.fpf-square img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}


/* badge overlay */
.fpf-square .badge {
  position: absolute;
  right: 1.2rem;
  bottom: 1.2rem;

  z-index: 2;

  /* optional styling */
  font-size: 0.75rem;
  padding: 0.3rem 0.5rem;
  background: #000;
  color: #fff;
  border-radius: 999px;
}

/* 3 per row */
@media (max-width: 992px) {
  .fpf-grid {
	grid-template-columns: repeat(3, 1fr);
  }
}

/* 2 per row */
@media (max-width: 576px) {
  .fpf-grid {
	grid-template-columns: repeat(2, 1fr);
  }
}