/* ===== FAQ em acordeão generativo ===== */
.faq-gen { background: linear-gradient(180deg, #FFEDE5 0%, var(--white) 100%); }

.gen-acc {
  display: grid;
  gap: .75rem;
  width: 100%;
  max-width: 48rem;
  margin: 0 auto;
}

/* variante "card" */
.gen-acc__item {
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 1px 2px rgba(26, 26, 26, .04);
  transition: border-color .2s, box-shadow .2s;
}
.gen-acc__item[data-state="open"] {
  border-color: rgba(255, 107, 53, .45);
  box-shadow: 0 10px 30px -14px rgba(255, 107, 53, .35);
}

.gen-acc__heading { margin: 0; font: inherit; }

.gen-acc__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: 1.1rem 1.25rem;
  border: 0;
  background: none;
  color: var(--black);
  font-size: 1rem;
  font-weight: 600;
  text-align: left;
}
.gen-acc__trigger:hover .gen-acc__q-text { text-decoration: underline; text-underline-offset: 3px; }
.gen-acc__trigger:focus-visible { outline: 2px solid var(--orange); outline-offset: -2px; border-radius: var(--radius); }

.gen-acc__q { display: flex; align-items: center; gap: .65rem; }
.gen-acc__q svg,
.gen-acc__chevron {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.gen-acc__q svg { color: var(--orange); }
.gen-acc__chevron { color: var(--gray-500); transition: transform .2s; }
.gen-acc__item[data-state="open"] .gen-acc__chevron { transform: rotate(180deg); }

/* Painel: abre direto na altura do texto final */
.gen-acc__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .3s ease;
}
.gen-acc__item[data-state="open"] .gen-acc__panel { grid-template-rows: 1fr; }
.gen-acc__inner { overflow: hidden; }

.gen-acc__answer {
  position: relative;
  margin: 0;
  padding: 0 1.25rem 1.2rem 3.15rem;
  font-size: .95rem;
  line-height: 1.65;
  color: #4a4a4a;
}

/* Texto completo: invisível enquanto digita (reserva o espaço e é lido por leitores de tela) */
.gen-acc__full { opacity: 0; }
.gen-acc__item.is-done .gen-acc__full { opacity: 1; }

/* Camada que "digita" por cima */
.gen-acc__stream {
  position: absolute;
  inset: 0 1.25rem 1.2rem 3.15rem;
  pointer-events: none;
}
.gen-acc__item.is-done .gen-acc__stream { display: none; }

.gen-acc__caret {
  display: none;
  width: 2px;
  height: 1.05em;
  margin-left: 2px;
  vertical-align: -0.15em;
  background: var(--orange);
  animation: gen-caret 1s steps(1) infinite;
}
.gen-acc__item.is-streaming .gen-acc__caret { display: inline-block; }
@keyframes gen-caret { 50% { opacity: 0; } }

.faq-gen__cta { margin-top: 2.5rem; text-align: center; }

/* Sem JS: todas as respostas visíveis */
html:not(.js) .gen-acc__panel { grid-template-rows: 1fr; }
html:not(.js) .gen-acc__full { opacity: 1; }
