.preview-section {
  padding: var(--space-2xl) var(--space-xl);
}

.preview-title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  text-align: center;
  margin-bottom: var(--space-2xl);
}

.preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--space-xl);
  max-width: 1200px;
  margin: 0 auto;
}

.preview-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}

.preview-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.preview-card img {
  display: block;
  width: 100%;
  /* Enquadramento uniforme dos cards independente da proporcao do arquivo:
     a topologia e' um panorama mais largo e, sem isto, renderiza mais baixa
     que as demais. cover corta so a miniatura — o lightbox usa outro seletor
     e mostra a imagem inteira. */
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-bottom: 1px solid var(--glass-border);
  cursor: zoom-in;
  transition: transform var(--transition-normal);
}

.preview-card:hover img {
  transform: scale(1.05);
}

.preview-card figcaption {
  padding: var(--space-md);
  color: var(--color-tertiary);
  font-size: var(--font-size-base);
  text-align: center;
}

@media (max-width: 768px) {
  .preview-section {
    padding: var(--space-xl) var(--space-md);
  }

  .preview-title {
    font-size: var(--font-size-2xl);
  }
}
