
/* Visual Language PRO clean portfolio grid v2.1.2 */
.vl21Portfolio {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

.vl21PortfolioHead {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin-bottom: 24px !important;
}

.vl21PortfolioHead h2 {
  font-size: clamp(56px, 8vw, 112px) !important;
  line-height: .78 !important;
  letter-spacing: -.1em !important;
  margin: 0 !important;
}

.vl21PortfolioHead .mono {
  max-width: 560px !important;
  text-align: right !important;
  color: var(--muted) !important;
}

#portfolio .vl21PortfolioGrid,
.vl21PortfolioGrid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: stretch !important;
  width: 100% !important;
}

#portfolio .vl21PortfolioCard,
.vl21PortfolioCard {
  display: block !important;
  position: relative !important;
  aspect-ratio: 3 / 4 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  background: #080808 !important;
  box-shadow: var(--shadow) !important;
  color: inherit !important;
  text-decoration: none !important;
}

#portfolio .vl21PortfolioCard img,
.vl21PortfolioCard img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
  filter: none !important;
  border: 0 !important;
}

#portfolio .vl21PortfolioCard:hover img {
  transform: scale(1.018) !important;
  transition: transform .55s ease !important;
}

#portfolio .vl21PortfolioCard .posterVisual,
#portfolio .vl21PortfolioCard .posterBottom,
#portfolio .vl21PortfolioCard .casePosterBody,
#portfolio .vl21PortfolioCard .casePosterFooter {
  display: none !important;
}

@media(max-width: 980px) {
  #portfolio .vl21PortfolioGrid,
  .vl21PortfolioGrid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .vl21PortfolioHead {
    display: block !important;
  }

  .vl21PortfolioHead .mono {
    display: block !important;
    text-align: left !important;
    margin-top: 10px !important;
  }

  #portfolio .vl21PortfolioCard,
  .vl21PortfolioCard {
    border-radius: 24px !important;
  }
}


/* v2.1.2 hard fix: real poster cards without white gaps */
#portfolio .vl21PortfolioGrid > *,
.vl21PortfolioGrid > * {
  margin: 0 !important;
  align-self: stretch !important;
}

#portfolio .vl21PortfolioCard,
.vl21PortfolioCard {
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  line-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  aspect-ratio: 670 / 886 !important;
}

#portfolio .vl21PortfolioCard::before,
.vl21PortfolioCard::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 28px;
  background-image: var(--vl-card-image) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  box-shadow: var(--shadow) !important;
}

#portfolio .vl21PortfolioCard .vl21PortfolioImage,
.vl21PortfolioCard .vl21PortfolioImage {
  display: none !important;
}

#portfolio .vl21PortfolioCard img,
.vl21PortfolioCard img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
