/* ===== Quiz de abertura — "Aqui te conectamos direto à fábrica" ===== */
.vq-back {
  position: fixed; inset: 0; z-index: 100050;
  background: rgba(20,18,15,.55);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center;
  padding: 18px;
  opacity: 0; visibility: hidden; transition: opacity .28s ease;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
}
.vq-back.open { opacity: 1; visibility: visible; }
.vq-modal {
  width: 100%; max-width: 384px; max-height: 92vh;
  background: #fffefb;
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45);
  overflow: hidden;
  display: flex; flex-direction: column;
  transform: translateY(18px) scale(.97);
  transition: transform .32s cubic-bezier(.22,1,.36,1);
}
.vq-back.open .vq-modal { transform: none; }

/* header: progresso + fechar */
.vq-head { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-bottom: 1px solid #eee8e0; flex: none; }
.vq-progress { flex: 1; display: flex; gap: 6px; }
.vq-dot { height: 5px; flex: 1; border-radius: 99px; background: #eee8e0; transition: background .3s ease; }
.vq-dot.on { background: #e22028; }
.vq-close {
  width: 30px; height: 30px; flex: none; border: none; cursor: pointer;
  background: rgba(0,0,0,.05); border-radius: 50%;
  font-size: 19px; line-height: 1; color: #5b544a;
  display: flex; align-items: center; justify-content: center;
}
.vq-close:hover { background: rgba(0,0,0,.1); }

/* corpo / passos */
.vq-body { padding: 22px 20px 24px; overflow-y: auto; }
.vq-step { display: none; }
.vq-step.active { display: block; animation: vqIn .35s ease; }
@keyframes vqIn { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }

.vq-kicker { font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #e22028; margin-bottom: 10px; }
.vq-q { font-size: 1.375rem; font-weight: 800; line-height: 1.25; letter-spacing: -.015em; color: #211c15; margin: 0 0 18px; }
.vq-q b { color: #e22028; }

/* opções do quiz */
.vq-opts { display: flex; flex-direction: column; gap: 10px; }
.vq-opt {
  width: 100%; text-align: left; cursor: pointer;
  border: 1.5px solid #eee8e0; border-radius: 14px;
  background: #fffefb; padding: 13px 14px;
  font-family: inherit; font-size: 14.5px; font-weight: 600; color: #211c15;
  display: flex; align-items: center; gap: 12px;
  transition: border-color .15s, background .15s, opacity .2s;
}
.vq-opt:hover { border-color: #968d7e; }
.vq-letter { width: 26px; height: 26px; flex: none; border-radius: 8px; background: rgba(0,0,0,.05); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; color: #5b544a; transition: all .15s; }
.vq-opt.correct { border-color: #15a349; background: rgba(21,163,73,.06); }
.vq-opt.correct .vq-letter { background: #15a349; color: #fff; }
.vq-opt.wrong { border-color: #e22028; background: rgba(226,32,40,.05); }
.vq-opt.wrong .vq-letter { background: #e22028; color: #fff; }
.vq-opt.sel { border-color: #15a349; background: rgba(21,163,73,.06); }
.vq-opt.sel .vq-letter { background: #15a349; color: #fff; }
.vq-choice .vq-letter { font-size: 16px; background: rgba(0,0,0,.04); }
.vq-opt.dim { opacity: .45; }
.vq-opt[disabled] { cursor: default; }

.vq-feedback { display: none; margin-top: 14px; font-size: 14px; line-height: 1.5; color: #5b544a; background: rgba(0,0,0,.03); border-radius: 12px; padding: 12px 14px; }
.vq-feedback b { color: #211c15; }

/* botões de navegação / cta */
.vq-next, .vq-cta {
  width: 100%; border: none; cursor: pointer; margin-top: 18px;
  border-radius: 14px; padding: 14px; font-family: inherit; font-weight: 800; font-size: 15.5px; color: #fff;
}
.vq-next { background: #211c15; }
.vq-next-dark { background: #e22028; }
.vq-cta { background: #15a349; box-shadow: 0 10px 24px rgba(21,163,73,.32); }
.vq-skip { display: block; width: 100%; margin-top: 12px; background: none; border: none; cursor: pointer; color: #968d7e; font-family: inherit; font-size: 13px; font-weight: 600; }

/* passo 2: cadeia compacta */
.vq-chain { display: flex; flex-direction: column; gap: 2px; }
.vq-chain-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid #f6f2eb; }
.vq-chain-row:last-child { border-bottom: none; }
.vq-chain-l { display: flex; align-items: center; gap: 9px; }
.vq-chain-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.vq-chain-nm { font-size: 14.5px; font-weight: 700; color: #211c15; }
.vq-chain-tag { font-size: 11.5px; color: #968d7e; font-weight: 600; }
.vq-chain-v { display: inline-block; font-size: 15px; font-weight: 900; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.vq-chain-v.vq-bump { animation: vqBump .24s ease; }
@keyframes vqBump { 0% { transform: scale(1); } 45% { transform: scale(1.22); } 100% { transform: scale(1); } }
.vq-bignote { margin-top: 16px; text-align: center; font-size: 15px; color: #5b544a; background: rgba(226,32,40,.06); border: 1px solid rgba(226,32,40,.18); border-radius: 12px; padding: 12px; }
.vq-bignote b { color: #e22028; font-weight: 800; }

/* passo 3: como conectamos */
.vq-flow { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 4px 0 16px; }
.vq-node { font-size: 13px; font-weight: 800; color: #fff; border-radius: 10px; padding: 9px 12px; white-space: nowrap; }
.vq-node-on { background: #15a349; }
.vq-node-you { background: #211c15; }
.vq-arrow { font-size: 12px; font-weight: 800; color: #15a349; white-space: nowrap; }
.vq-cross { text-align: center; margin: 0 0 16px; font-size: 13px; color: #968d7e; }
.vq-cross s { margin: 0 4px; text-decoration-color: #e22028; text-decoration-thickness: 2px; }
.vq-sub { font-size: 14px; line-height: 1.55; color: #5b544a; margin: 0 0 16px; }
.vq-diff { display: flex; align-items: flex-start; gap: 12px; text-align: left; background: rgba(21,163,73,.06); border: 1px solid rgba(21,163,73,.22); border-radius: 14px; padding: 13px 14px; margin: 0 0 16px; }
.vq-diff-ic { flex: none; line-height: 0; margin-top: 1px; }
.vq-diff p { margin: 0; font-size: 13.5px; line-height: 1.5; color: #5b544a; }
.vq-diff b { color: #211c15; font-weight: 800; }
.vq-pricebox { display: flex; align-items: center; justify-content: space-between; background: rgba(21,163,73,.07); border: 1px solid rgba(21,163,73,.25); border-radius: 14px; padding: 12px 16px; }
.vq-pricebox span { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #15a349; }
.vq-pricebox b { font-size: 26px; font-weight: 900; letter-spacing: -.02em; color: #15a349; }
.vq-pricebox small { font-size: 13px; font-weight: 700; }
