/**
 * Página de portfólio — complemento ao Tailwind (grade, abas e painéis).
 */

/* Não sobrescrever .hidden do Tailwind nos painéis das abas */
.portfolio .project.hidden {
  display: none !important;
}

.portfolio .project:not(.hidden) {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: 100%;
  width: 100%;
}

@media (min-width: 1024px) {
  .portfolio .project:not(.hidden) {
    gap: 3.5rem;
  }
}

/* Abas — scroll horizontal no mobile, centralizadas no desktop */
.portfolio .tabs {
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  scroll-snap-type: x proximity;
  width: 100%;
}

@media (max-width: 1023px) {
  .portfolio .tabs {
    overflow-x: auto;
    padding-bottom: 0.5rem;
    padding-inline: 1rem;
  }
}

.portfolio .tabs .btn {
  flex-shrink: 0;
  scroll-snap-align: start;
  white-space: nowrap;
}

@media (min-width: 1024px) {
  .portfolio .tabs {
    flex-wrap: wrap;
    justify-content: center;
    overflow: visible;
    scroll-snap-type: none;
  }
}

/* Escalonamento desktop (8 itens: 2 linhas de 4) */
@media (min-width: 1024px) {
  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 1),
  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 3) {
    padding-top: 2rem;
  }

  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 2),
  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 4) {
    padding-bottom: 2rem;
  }

  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 5),
  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 7) {
    padding-bottom: 2rem;
  }

  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 6),
  .portfolio-grid > .portfolio-grid-item:nth-child(8n + 8) {
    padding-top: 2rem;
  }
}

/* Grade — fallback se utilitários Tailwind não estiverem no build */
.portfolio-grid {
  box-sizing: border-box;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}

@media (min-width: 640px) {
  .portfolio-grid {
    gap: 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .portfolio-grid {
    gap: 1.5rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Proporção da imagem no mobile/tablet */
.portfolio-grid-item__media {
  aspect-ratio: 280 / 400;
  max-height: min(75vh, 28rem);
}

.portfolio-grid-item__media img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

@media (min-width: 1024px) {
  .portfolio-grid-item__media {
    aspect-ratio: unset;
    max-height: none;
  }
}
