/* Tarjetas de producto compartidas entre home y catálogo. */
ul.products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}
.card-producto { position: relative; }
.card-producto__enlace { display: block; }
.card-producto__imagen-envoltorio {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--color-piedra-oscura);
  border: 1px solid var(--color-piedra-oscura);
}
.card-producto__imagen-envoltorio img { width: 100%; height: 100%; object-fit: cover; transition: transform 280ms ease; }
.card-producto:hover .card-producto__imagen-envoltorio img { transform: scale(1.03); }
.card-producto__imagen--marcador {
  display: block;
  width: 100%; height: 100%;
  background: repeating-linear-gradient(135deg, var(--color-piedra-oscura) 0 2px, var(--color-piedra) 2px 14px);
}
.card-producto::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: var(--color-linea);
  z-index: 2;
}
.badge-proximamente {
  position: absolute;
  top: var(--space-1); left: var(--space-1);
  z-index: 2;
  background: var(--color-noche);
  color: var(--color-blanco);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.35em 0.7em;
  border-radius: var(--radius);
}
.card-producto__info { display: block; padding-top: var(--space-1); }
.card-producto__categoria {
  display: block;
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-noche-suave);
}
.card-producto__nombre { display: block; font-family: var(--font-ui); font-weight: 600; margin-block: 0.2em; }
.card-producto__precio, .precio-estimado { font-size: var(--text-sm); color: var(--color-noche-suave); }
.precio-estimado { font-style: italic; }
@media (max-width: 900px) { ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { ul.products { grid-template-columns: 1fr; } }
