.portfolio-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.portfolio-item {
  flex: 0 1 calc(33.333333% - 1rem);
  aspect-ratio: 1 / 1;
  position: relative;
}
.portfolio-item a {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.portfolio-item a .imgfit {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
}
.portfolio-item a .imgfit:before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(0, 0, 0, 0.8) 100%
  );
  z-index: 2;
}
.portfolio-item a .imgfit img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
  z-index: 1;
}
.portfolio-item a .imgfit .txt {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 3.5rem 4rem;
  z-index: 3;
}
.portfolio-item a .imgfit .txt span {
  opacity: 0.8;
  font-size: 1.5rem;
  font-weight: 500;
}
.portfolio-item a .imgfit .txt h3 {
  margin-top: 1rem;
  font-size: 2.1rem;
  font-weight: 700;
}
.portfolio-item a:hover .imgfit img {
  transform: scale(1.05);
}

@media (max-width: 1024px) {
  .portfolio-item {
    flex: 0 1 calc(50% - 1rem);
  }
}

@media (max-width: 768px) {
  .portfolio-item {
    flex: 1 1 calc(100% - 1rem);
  }
}
