/* ============================================================
   SIM Engenharia · WIREFRAME
   Etapa de estrutura. Sem identidade visual, sem cor de marca.
   Tons de cinza apenas. O visual entra na fase seguinte.
   CSS proprio e autocontido para abrir offline.
   ============================================================ */

:root{
  --tinta:#1c1c1c;
  --texto:#3a3a3a;
  --fraco:#767676;
  --linha:#c9c9c9;
  --linha-forte:#9a9a9a;
  --fundo:#ffffff;
  --caixa:#ededed;
  --caixa-escura:#dcdcdc;
  --max:1120px;
  --gap:24px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--fundo);
  color:var(--texto);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.6;
}
img{max-width:100%}
a{color:inherit}

.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}

/* ---------- aviso de etapa ---------- */
.aviso{
  background:var(--tinta);color:#fff;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;text-align:center;padding:8px 20px;
}

/* ---------- header ---------- */
.topo{border-bottom:1px solid var(--linha);background:#fff;position:sticky;top:0;z-index:10}
.topo .wrap{display:flex;align-items:center;gap:var(--gap);min-height:76px;flex-wrap:wrap}
.marca{
  border:1px dashed var(--linha-forte);background:var(--caixa);
  padding:10px 16px;font-size:12px;color:var(--fraco);white-space:nowrap;
}
.nav{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-left:auto;font-size:14px}
.nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent;white-space:nowrap;flex:none}
.nav a:hover{border-bottom-color:var(--linha-forte)}
.nav a[aria-current="page"]{border-bottom-color:var(--tinta);color:var(--tinta);font-weight:600}
.btn{
  display:inline-block;border:1px solid var(--tinta);color:var(--tinta);
  padding:10px 18px;font-size:14px;text-decoration:none;background:#fff;
  white-space:nowrap;flex:none;
}
.btn:hover{background:var(--tinta);color:#fff}
.btn-fraco{border-color:var(--linha-forte);color:var(--fraco)}
/* dentro do menu, .nav a tem especificidade maior que .btn.
   Esta regra devolve ao botao o padding e a borda completa. */
.nav a.btn{padding:10px 18px;border:1px solid var(--tinta)}
.nav a.btn:hover{background:var(--tinta);color:#fff;border-color:var(--tinta)}

/* ---------- secoes ---------- */
section{border-bottom:1px solid var(--linha);padding:56px 0}
.rotulo{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fraco);
  border:1px solid var(--linha);display:inline-block;padding:3px 8px;margin-bottom:22px;
}
h1,h2,h3{color:var(--tinta);font-weight:700;line-height:1.15;margin:0 0 16px}
h1{font-size:clamp(30px,5vw,50px)}
h2{font-size:clamp(23px,3.2vw,33px)}
h3{font-size:18px;margin-bottom:8px}
.apoio{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fraco);margin:0 0 12px}
.sub{font-size:clamp(16px,1.9vw,19px);max-width:62ch;margin:0 0 24px}
p{margin:0 0 16px;max-width:68ch}
.pequeno{font-size:14px;color:var(--fraco)}

/* ---------- placeholder de imagem ---------- */
.ph{
  border:1px dashed var(--linha-forte);
  background:repeating-linear-gradient(45deg,var(--caixa),var(--caixa) 10px,#f6f6f6 10px,#f6f6f6 20px);
  color:var(--fraco);font-size:13px;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;
  min-height:180px;
}
.ph-alto{min-height:320px}
.ph-largo{min-height:260px}
.ph-quadrado{aspect-ratio:1/1;min-height:0}

/* ---------- grades ---------- */
.g2,.g3,.g4{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;gap:40px;grid-template-columns:1fr 1fr;align-items:center}

/* ---------- cartoes ---------- */
.card{border:1px solid var(--linha);padding:22px;background:#fff}
.card h3{margin-top:0}
.meta{font-size:13px;color:var(--fraco);margin:0 0 10px}

/* ---------- numeros ---------- */
.num{border:1px solid var(--linha);padding:26px;text-align:left}
.num strong{display:block;font-size:clamp(30px,4.4vw,44px);color:var(--tinta);line-height:1}
.num span{font-size:14px;color:var(--fraco)}

/* ---------- pendencia ---------- */
.pendente{
  border:1px dashed #8a8a8a;background:#f4f4f4;padding:14px 16px;
  font-size:13px;color:#555;margin:0 0 16px;
}
.pendente::before{content:"PENDENTE · ";font-weight:700;letter-spacing:.06em}

/* ---------- filtros ---------- */
.filtros{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.filtro{border:1px solid var(--linha);padding:8px 16px;font-size:14px;color:var(--texto);background:#fff}
.filtro[data-ativo="sim"]{background:var(--tinta);color:#fff;border-color:var(--tinta)}

/* ---------- tabela/lista de obras ---------- */
.obra{display:grid;grid-template-columns:260px 1fr;gap:24px;border:1px solid var(--linha);padding:18px;margin-bottom:16px;align-items:start}
.obra .ph{min-height:150px}

/* ---------- formulario ---------- */
.form{display:grid;gap:16px;grid-template-columns:1fr 1fr}
.campo{display:flex;flex-direction:column;gap:6px}
.campo.largo{grid-column:1 / -1}
.campo label{font-size:13px;color:var(--fraco)}
.campo input,.campo select,.campo textarea{
  border:1px solid var(--linha);padding:11px 12px;font:inherit;font-size:15px;background:#fff;color:var(--texto);
}
.campo textarea{min-height:130px;resize:vertical}

/* ---------- rodape ---------- */
footer{background:#f4f4f4;padding:48px 0 28px;border-top:1px solid var(--linha)}
footer .g3{margin-bottom:32px}
footer h3{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--fraco)}
footer ul{list-style:none;margin:0;padding:0;font-size:15px}
footer li{margin-bottom:6px}
footer a{text-decoration:none}
footer a:hover{text-decoration:underline}
.creditos{border-top:1px solid var(--linha);padding-top:20px;font-size:13px;color:var(--fraco)}

/* ---------- responsivo ---------- */
@media (max-width:860px){
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .obra{grid-template-columns:1fr}
  .topo .wrap{min-height:0;padding-top:14px;padding-bottom:14px}
  .nav{margin-left:0;width:100%;gap:14px}
}
@media (max-width:560px){
  .g2,.g3,.g4{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  section{padding:40px 0}
}
