/*
 * Linha de listagem — formaliza `.candidate-card` (styles.css:32) como
 * componente reutilizável. Hierarquia editorial (foto, nome, atuação,
 * temas documentados), não cartão gamificado: sem selo, sem score, sem
 * borda colorida por partido/tema.
 */
.qv-card {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: 0 7px 24px rgba(17, 59, 86, 0.045);
  transition: border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease,
    transform var(--motion-fast) ease;
}

.qv-card:hover {
  transform: translateY(-2px);
  border-color: rgba(42, 117, 211, 0.22);
  box-shadow: 0 14px 34px rgba(17, 59, 86, 0.085);
}

.qv-card-photo {
  width: 104px;
  height: 104px;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: linear-gradient(145deg, var(--blue-soft), var(--pink-soft));
}

.qv-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.qv-card-kicker {
  margin: 0 0 6px;
  color: var(--blue-strong);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.09em;
}

.qv-card-body h3 {
  margin: 0;
  font-size: clamp(1.35rem, 2.3vw, 1.65rem);
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.qv-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 12px;
}

@media (max-width: 620px) {
  .qv-card {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 15px;
    padding: 16px;
    border-radius: 18px;
  }

  .qv-card-photo {
    width: 78px;
    height: 78px;
    border-radius: 18px;
  }
}
