/* ==========================================================================
   RODAPÉ
   ========================================================================== */
footer{padding:clamp(60px,8vw,92px) 0 30px;overflow:hidden}

/* linha tracejada animada + logo */
.ft-net{display:flex;align-items:center;gap:16px;padding-bottom:clamp(30px,4vw,44px);border-bottom:1px solid var(--border-dark)}
.ft-net svg{flex:1;min-width:0;height:20px;overflow:visible}
.ft-net path{stroke:var(--border-dark-2);stroke-width:1.15;fill:none;stroke-dasharray:var(--l);stroke-dashoffset:var(--l)}
.ft-net.is-in path{animation:draw 900ms var(--e-out) forwards}
.ft-net img{width:min(38vw,300px);height:auto;flex:none}

/* colunas */
.ft-c{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:30px;padding:clamp(28px,4vw,44px) 0}
.ft-c b{display:block;font-family:"IBM Plex Mono",monospace;font-size:var(--f-12);font-weight:600;color:var(--on-dark-3);margin-bottom:14px}
.ft-c li{margin-bottom:9px}
.ft-c a,.ft-c span{font-size:var(--f-14);color:var(--on-dark-2);transition:color var(--t-base)}
.ft-c a:hover{color:#fff}
.ft-c .lead p{color:var(--on-dark-2);font-size:var(--f-15);max-width:30ch;margin-bottom:16px}
.ft-c .lead .node-dot{margin-right:5px}

/* barra final */
.ft-b{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--border-dark);font-size:var(--f-12);color:var(--on-dark-3)}

/* ---------- responsivo ---------- */
@media (max-width:1024px){
  .ft-c{grid-template-columns:repeat(2,1fr)}
  .ft-net img{width:min(48vw,260px)}
}
@media (max-width:600px){
  .ft-c{grid-template-columns:1fr}
  .ft-net{flex-direction:column;align-items:flex-start;gap:14px}
  .ft-net svg{width:100%;flex:none}
}
@media (prefers-reduced-motion:reduce){
  .ft-net path{stroke-dashoffset:0!important}
}
