/* ==========================================================================
   Para devs: componentes próprios da página.
   Usa os tokens e as classes de site.css; aqui só o que é desta página.
   ========================================================================== */

/* ---------- duas colunas: texto e ilustração ---------- */
.dv-api__grid,.dv-duas{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:64px;align-items:center}
.dv-lista{margin-top:28px}
.dv-lista li{font-size:17px;color:#3a3d45}
.eco .dv-lista li{color:#D7D6D0}
.dv-api__nota{margin:22px 0 0;max-width:34em}

/* ---------- exemplo de chamada à API ---------- */
.dv-code{margin:0;background:#111318;border:1px solid var(--grafite80);border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.dv-code__bar{display:flex;align-items:center;gap:12px;padding:11px 16px;font:500 12.5px var(--mono);color:#9A988F;border-bottom:1px solid #22252D}
.dv-code__pre + .dv-code__bar{border-top:1px solid #22252D}
.dv-code__dots{display:flex;gap:6px}
.dv-code__dots i{width:10px;height:10px;border-radius:50%;background:var(--grafite80)}
.eco__code.dv-code__pre{margin:0;border-radius:0;background:transparent;padding:18px 18px 20px;font-size:13.5px;line-height:1.65;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.dv-code__pre code{font:inherit}
.dv-code__pre:focus-visible{outline:3px solid var(--laranja);outline-offset:-3px;border-radius:0}
.dv-code__com{color:#8A877F}

/* ---------- editor de fluxos: desenho de um fluxo ---------- */
.dv-fluxo{margin:0;border:1px solid var(--linha);border-radius:20px;padding:30px 28px;background-color:var(--papel);background-image:radial-gradient(#E3E2DC 1px,transparent 1px);background-size:18px 18px;box-shadow:0 30px 60px -30px rgba(23,25,31,.25)}
.dv-fluxo__lista{list-style:none;margin:0;padding:0;display:grid;gap:30px;max-width:440px}
.dv-fluxo__no{position:relative;display:grid;gap:3px;padding:12px 16px 13px;background:var(--papel);border:1.5px solid var(--grafite);border-radius:12px}
.dv-fluxo__no:not(:last-child)::after{content:"";position:absolute;left:27px;bottom:-32px;width:2px;height:30px;background:#C9C8C2}
.dv-fluxo__tag{font:500 11px/1.2 var(--mono);color:var(--cinza-texto);letter-spacing:.04em}
.dv-fluxo__txt{font:600 15.5px/1.3 var(--display);color:var(--grafite)}
.dv-fluxo__no--dec{grid-template-columns:40px minmax(0,1fr) auto;column-gap:14px;row-gap:3px;align-items:center;padding:6px 0 6px 8px;background:transparent;border:0}
.dv-fluxo__los{grid-column:1;grid-row:1/3;justify-self:center;width:28px;height:28px;background:var(--laranja);transform:rotate(45deg);border-radius:3px}
.dv-fluxo__no--dec .dv-fluxo__tag,.dv-fluxo__no--dec .dv-fluxo__txt{grid-column:2}
.dv-fluxo__no--dec::after{left:27px}
.dv-fluxo__nao{grid-column:3;grid-row:1/3;font:500 12px/1.3 var(--mono);color:var(--laranja-texto);background:var(--laranja-tinta);border-radius:999px;padding:6px 11px;white-space:nowrap}
.dv-fluxo__no--fim{background:var(--laranja-tinta);border:2.5px solid var(--laranja)}
.dv-fluxo__sim{position:absolute;left:40px;top:-25px;font:500 12px var(--mono);color:var(--cinza-texto)}

/* ---------- blocos de código reaproveitados ---------- */
.dv-blocos{background:var(--off)}
.dv-reuso{margin:0;display:grid;gap:14px}
.dv-reuso__auto{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;background:var(--papel);border:1px solid var(--linha);border-radius:16px;padding:16px 18px}
.dv-reuso__nome{margin:0;min-width:118px;font:500 12.5px var(--mono);color:var(--cinza-texto)}
.dv-reuso__blocos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.dv-reuso__bloco{display:inline-flex;align-items:center;gap:8px;font:500 14.5px/1.2 var(--texto);border:1.5px solid var(--grafite);border-radius:10px;padding:8px 12px;background:var(--papel);color:var(--grafite)}
.dv-reuso__bloco::before{content:"";width:8px;height:8px;transform:rotate(45deg);border-radius:2px;background:var(--grafite)}
.dv-reuso__bloco--0{background:var(--laranja-tinta);border-color:var(--laranja)}
.dv-reuso__bloco--0::before{background:var(--laranja)}
.dv-reuso__bloco--2{background:var(--grafite);color:var(--off)}
.dv-reuso__bloco--2::before{background:var(--laranja)}

/* ---------- marketplace ---------- */
.dv-mkt__notas{margin-top:30px;max-width:50em}
.dv-mkt__notas li{font-size:16.5px;color:#3a3d45}
.dv-mkt__convite{margin-top:40px;display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap}
.dv-mkt__convite > p{margin:0;max-width:30em;font:600 19px/1.4 var(--display);letter-spacing:-.01em;color:var(--grafite)}
.dv-mkt__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:22px}

/* ---------- documentação, implantadores e comunidade ---------- */
.dv-docs{padding-top:0}
.dv-discord{padding-top:0}
.dv-discord__caixa{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.dv-discord__caixa > div{max-width:40em}
.dv-discord__caixa .eyebrow{margin-bottom:10px}

/* ---------- responsivo ---------- */
@media (max-width:1100px){
  .dv-api__grid,.dv-duas{grid-template-columns:minmax(0,1fr);gap:40px}
  .dv-fluxo__lista{max-width:none}
}
@media (max-width:560px){
  .dv-fluxo{padding:22px 16px}
  .dv-fluxo__no--dec{grid-template-columns:40px minmax(0,1fr)}
  .dv-fluxo__nao{grid-column:2;grid-row:auto;justify-self:start;white-space:normal;margin-top:6px}
  .dv-reuso__nome{min-width:0;width:100%}
  .eco__code.dv-code__pre{font-size:12.5px;padding:16px 14px 18px}
}
