.duvidas { padding-block: clamp(80px, 12vh, 140px); }
.faq { display: grid; gap: 4px; }
.item { position: relative; border-radius: 16px; transition: background-color .4s, box-shadow .4s; }
.item::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px;
  background: var(--borda); transition: opacity .4s;
}
.item.aberto {
  background: linear-gradient(90deg, var(--azul), rgba(47, 91, 255, 0) 55%) 0 0 / 100% 1px no-repeat, #0F0F11;
  box-shadow: inset 0 0 0 1px var(--borda);
}
.item.aberto::after, .item:has(+ .item.aberto)::after { opacity: 0; }
.item-cabeca {
  width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(20px, 3vw, 44px);
  padding: 26px clamp(18px, 2.2vw, 32px); background: none; border: 0; text-align: left; cursor: pointer;
}
.faq-num { min-width: 1.9em; font: 300 clamp(30px, 2.8vw, 42px)/1 var(--f-titulo); letter-spacing: -.01em; color: var(--suave); transition: color .4s; }
.faq-num i { font-style: normal; color: var(--azul-claro); }
.item.aberto .faq-num { color: var(--texto); }
.item-titulo { font: 400 clamp(18px, 1.45vw, 21px)/1.3 var(--f-titulo); letter-spacing: .02em; color: var(--suave); transition: color .4s; }
.item:hover .item-titulo, .item.aberto .item-titulo { color: var(--texto); }
.faq-icone { position: relative; width: 40px; height: 40px; flex: none; transition: transform .6s var(--ease), color .4s; }
.faq-icone::before, .faq-icone::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -.75px; background: currentColor; }
.faq-icone::after { transform: rotate(90deg); }
.item.aberto .faq-icone { transform: rotate(45deg); color: var(--azul-claro); }
.js .item-corpo { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--ease); }
.js .item.aberto .item-corpo { grid-template-rows: 1fr; }
.js .item-corpo > * { overflow: hidden; min-height: 0; }
.item-corpo p {
  margin: 0 clamp(18px, 2.2vw, 32px);
  font-size: 16.5px; line-height: 1.6; color: var(--suave);
}
.item-corpo p::before { content: ""; display: block; height: 22px; border-top: 1px solid var(--borda); }
.item-corpo p::after { content: ""; display: block; height: 28px; }
@media (max-width: 860px) {
  .item-cabeca { gap: 14px; padding: 20px 14px; }
  .faq-num { font-size: 26px; }
  .faq-icone { width: 26px; height: 26px; }
  .item-corpo p { margin: 0 14px; font-size: 16px; }
}
