/* Bloco: "O que vem por aí" — seção escura de contraste, com moldura
   arredondada e uma linha do tempo vertical em degradê conectando os
   cartões (inspirado no "circular vira reta" da referência: a moldura tem
   canto arredondado, e por dentro a linha desce reta, mudando de cor a
   cada item). */

.vem-por-ai {
  padding: var(--section-gap) 0;
  background: var(--color-midnight-violet);
  color: var(--color-pure-white);
}

.vem-por-ai-content {
  max-width: 640px;
  margin: 0 auto 56px;
  text-align: center;
}

.vem-por-ai-title {
  font-size: var(--size-heading-lg);
  color: var(--color-pure-white);
  margin-bottom: 20px;
}

.vem-por-ai-subtitle {
  font-size: var(--size-subheading);
  color: var(--color-lavender-mist);
  margin-bottom: 16px;
}

.vem-por-ai-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: var(--color-pure-white);
  font-size: var(--size-body-sm);
  font-weight: 500;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.vem-por-ai-cta:hover {
  border-color: var(--color-pure-white);
  background: rgba(255, 255, 255, 0.08);
}

.vem-por-ai-frame {
  max-width: 720px;
  margin: 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 48px;
  padding: 40px 40px 40px 48px;
}

.vem-por-ai-list-wrap {
  position: relative;
}

.vem-por-ai-list {
  list-style: none;
  margin: 0;
  padding: 0 0 0 28px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.vem-por-ai-rail {
  position: absolute;
  left: 9px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  border-radius: 1px;
  background: linear-gradient(
    180deg,
    #1b1463,
    var(--color-forest),
    var(--color-ember),
    var(--color-blossom),
    var(--color-regesta-destaque)
  );
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.1s ease 0.25s;
}

/* A régua só desenha depois que a moldura em volta dela já apareceu —
   observar a régua diretamente não funciona: com scaleY(0) sua altura
   visível é zero, e o observador de scroll nunca a considera "visível". */
.vem-por-ai-frame.is-visible .vem-por-ai-rail {
  transform: scaleY(1);
}

.vem-por-ai-card {
  position: relative;
  border-radius: var(--radius-card);
  padding: 24px 28px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.vem-por-ai-dot {
  position: absolute;
  left: -23px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: translateY(-50%);
  box-shadow: 0 0 0 4px var(--color-midnight-violet);
}

.vem-por-ai-card h3 {
  font-size: var(--size-heading-sm);
  line-height: 1.3;
  flex: 0 1 70%;
  min-width: 0;
  /* base.css fixa cor em todo h1-h4; aqui precisa herdar a cor do
     cartão (--color-pure-white ou --color-deep-ink conforme o fundo). */
  color: inherit;
}

.vem-por-ai-prazo {
  flex: 0 1 30%;
  min-width: 0;
  text-align: right;
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.35;
  font-weight: 500;
  color: inherit;
}

/* Roxo próprio deste card, fixo — não usa mais --color-primary-indigo,
   porque essa variável virou a mesma cor do card --destaque (§ tokens.css) e
   os dois ficariam idênticos. */
.vem-por-ai-card--indigo {
  background: #1b1463;
  color: var(--color-pure-white);
}

.vem-por-ai-card--indigo .vem-por-ai-dot {
  background: #1b1463;
}

.vem-por-ai-card--forest {
  background: var(--color-forest);
  color: var(--color-pure-white);
}

.vem-por-ai-card--forest .vem-por-ai-dot {
  background: var(--color-forest);
}

.vem-por-ai-card--ember {
  background: var(--color-ember);
  color: var(--color-deep-ink);
}

.vem-por-ai-card--ember .vem-por-ai-dot {
  background: var(--color-ember);
}

.vem-por-ai-card--blossom {
  background: var(--color-blossom);
  color: var(--color-deep-ink);
}

.vem-por-ai-card--blossom .vem-por-ai-dot {
  background: var(--color-blossom);
}

.vem-por-ai-card--destaque {
  background: var(--color-regesta-destaque);
  color: var(--color-pure-white);
}

.vem-por-ai-card--destaque .vem-por-ai-dot {
  background: var(--color-regesta-destaque);
}

@media (max-width: 720px) {
  .vem-por-ai-frame {
    padding: 32px 24px 32px 32px;
    border-radius: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vem-por-ai-rail {
    transition: none;
    transform: scaleY(1);
  }
}
