/* ============================================================
   Site de documentação — Localizador de Sepulturas
   Mesma família visual do protótipo: pedra e verde profundo.
   ============================================================ */
:root{
  --verde-900:#1E3A2F; --verde-700:#2F5C49; --verde-500:#4A7C64; --verde-050:#E8F0EB;
  --pedra-000:#FFFFFF; --pedra-050:#F7F5F2; --pedra-100:#EDEAE4;
  --pedra-200:#DDD8CF; --pedra-300:#C4BDB1;
  --tinta-900:#1B1C19; --tinta-700:#3D3F3A; --tinta-500:#6B6E66;
  --conf-medida:#2F5C49; --conf-interp:#8A5A16; --conf-divisao:#4A5A6B;
  --raio:14px;
  --fonte:"Segoe UI",Inter,system-ui,-apple-system,sans-serif;
  --mono:"Cascadia Code",Consolas,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--fonte);font-size:17px;line-height:1.65;
  color:var(--tinta-900);background:var(--pedra-050)}

a{color:var(--verde-700)}
a:hover{color:var(--verde-900)}

/* ---------- cabeçalho ---------- */
.topo{background:var(--verde-900);color:#fff;padding:0}
.topo .barra{max-width:1080px;margin:0 auto;padding:16px 24px;display:flex;
  align-items:center;gap:18px;flex-wrap:wrap}
.topo .marca{font-weight:600;font-size:18px;color:#fff;text-decoration:none}
.topo nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.topo nav a{color:#B9CEC3;text-decoration:none;font-size:15px;padding:8px 12px;border-radius:8px}
.topo nav a:hover,.topo nav a[aria-current="page"]{background:#2A4A3B;color:#fff}

.hero{background:var(--verde-900);color:#fff;
  background-image:radial-gradient(900px 320px at 18% -10%,#2F5C49,transparent)}
.hero .in{max-width:1080px;margin:0 auto;padding:44px 24px 52px}
.hero h1{font-size:38px;line-height:1.2;margin:0 0 14px;font-weight:600;max-width:20ch}
.hero p{font-size:19px;color:#CFE0D6;margin:0;max-width:66ch}
.hero .selos{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.selo{display:inline-flex;align-items:center;gap:8px;background:#2A4A3B;color:#CFE0D6;
  font-size:14px;padding:7px 13px;border-radius:999px;border:1px solid #3A5B4B}
.selo b{color:#8FBFA6;font-weight:600}

/* ---------- conteúdo ---------- */
main{max-width:1080px;margin:0 auto;padding:40px 24px 80px}
h2.secao{font-size:14px;letter-spacing:.09em;text-transform:uppercase;color:var(--tinta-500);
  margin:44px 0 6px;font-weight:600}
h2.secao:first-child{margin-top:0}
p.intro{color:var(--tinta-700);margin:0 0 22px;max-width:74ch}

.grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.cartao{display:flex;flex-direction:column;background:#fff;border:1px solid var(--pedra-200);
  border-radius:var(--raio);padding:22px;text-decoration:none;color:inherit;
  transition:border-color .12s,transform .12s}
.cartao:hover{border-color:var(--verde-500);transform:translateY(-2px)}
.cartao .eyebrow{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--tinta-500)}
.cartao h3{font-size:21px;margin:8px 0 10px;font-weight:600;line-height:1.3;color:var(--verde-900)}
.cartao p{margin:0;font-size:15px;color:var(--tinta-700);line-height:1.6;flex:1}
.cartao .rodape{margin-top:16px;font-size:14px;font-weight:600;color:var(--verde-700);
  display:flex;align-items:center;gap:8px}
.cartao.destaque{background:var(--verde-900);border-color:var(--verde-900);color:#fff}
.cartao.destaque h3{color:#fff}
.cartao.destaque .eyebrow{color:#8FBFA6}
.cartao.destaque p{color:#CFE0D6}
.cartao.destaque .rodape{color:#8FBFA6}

.aviso{display:flex;gap:14px;background:#F6EEDF;border:1px solid #E2CFA8;border-radius:var(--raio);
  padding:18px 20px;color:#5C4413;font-size:15px;line-height:1.6;margin:0 0 26px}
.aviso b{color:#4A3610}

table.tab{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--pedra-200);
  border-radius:var(--raio);overflow:hidden;font-size:15px}
table.tab th,table.tab td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--pedra-200)}
table.tab th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--tinta-500);
  background:var(--pedra-050)}
table.tab tr:last-child td{border-bottom:0}

.pastilha{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;
  padding:5px 10px;border-radius:999px;background:var(--pedra-100);color:var(--tinta-700)}
.pastilha i{width:9px;height:9px;border-radius:50%;background:currentColor}
.pastilha.medida{background:#E6EFEA;color:var(--conf-medida)}
.pastilha.interp{background:#F6EEDF;color:var(--conf-interp)}
.pastilha.divisao{background:#E9EDF1;color:var(--conf-divisao)}

footer{border-top:1px solid var(--pedra-200);background:#fff}
footer .in{max-width:1080px;margin:0 auto;padding:28px 24px 44px;font-size:14px;color:var(--tinta-500)}
footer a{color:var(--tinta-700)}

/* ---------- visualizador de documento ---------- */
.doc{display:grid;grid-template-columns:262px 1fr;gap:40px;align-items:start}
.sumario{position:sticky;top:20px;font-size:14px;max-height:calc(100vh - 60px);overflow:auto}
.sumario p{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--tinta-500);
  margin:0 0 10px;font-weight:600}
.sumario a{display:block;padding:5px 10px;color:var(--tinta-700);text-decoration:none;
  border-left:2px solid var(--pedra-200);line-height:1.4}
.sumario a:hover{color:var(--verde-900);border-left-color:var(--verde-500);background:var(--pedra-100)}
.sumario a.n3{padding-left:22px;font-size:13px;color:var(--tinta-500)}

article{background:#fff;border:1px solid var(--pedra-200);border-radius:var(--raio);
  padding:34px 40px 48px;min-width:0}
article h1{font-size:33px;line-height:1.25;margin:0 0 22px;font-weight:600;color:var(--verde-900)}
article h2{font-size:25px;margin:38px 0 12px;font-weight:600;color:var(--verde-900);
  padding-top:14px;border-top:1px solid var(--pedra-100)}
article h3{font-size:20px;margin:28px 0 10px;font-weight:600}
article h4{font-size:17px;margin:22px 0 8px;font-weight:600;color:var(--tinta-700)}
article p{margin:0 0 14px}
article ul,article ol{margin:0 0 16px;padding-left:24px}
article li{margin:5px 0}
article li>ul,article li>ol{margin:6px 0 4px}
article hr{border:0;border-top:1px solid var(--pedra-200);margin:34px 0}
article blockquote{margin:0 0 16px;padding:12px 18px;background:var(--verde-050);
  border-left:3px solid var(--verde-500);border-radius:0 8px 8px 0}
article blockquote p:last-child{margin:0}
article code{font-family:var(--mono);font-size:14px;background:var(--pedra-100);
  padding:2px 6px;border-radius:5px;color:#5C4413}
article pre{background:#22241F;color:#E4E1DA;border-radius:10px;padding:18px 20px;
  overflow:auto;margin:0 0 18px;font-size:14px;line-height:1.55}
article pre code{background:transparent;padding:0;color:inherit;font-size:14px}
article table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:15px;
  border:1px solid var(--pedra-200);border-radius:8px;overflow:hidden;display:table}
article th,article td{text-align:left;padding:10px 13px;border-bottom:1px solid var(--pedra-200);
  vertical-align:top}
article th{background:var(--pedra-050);font-size:12px;text-transform:uppercase;
  letter-spacing:.05em;color:var(--tinta-500)}
article tr:last-child td{border-bottom:0}
article .tarefa{list-style:none}
article ul.tarefas{padding-left:0}
article ul.tarefas ul{padding-left:26px}
article .caixa{display:inline-block;width:15px;height:15px;border:1.6px solid var(--pedra-300);
  border-radius:4px;margin-right:9px;vertical-align:-2px}
article .diagrama{background:#22241F;color:#B9CEC3;border-radius:10px;padding:16px 20px;
  margin:0 0 18px;overflow:auto}
article .diagrama .rot{display:block;font-family:var(--fonte);font-size:12px;
  text-transform:uppercase;letter-spacing:.07em;color:#8FBFA6;margin-bottom:10px}
article .diagrama pre.mermaid{background:transparent;color:#B9CEC3;padding:0;margin:0;
  font-family:var(--mono);font-size:13px;line-height:1.5;border-radius:0}
article .diagrama pre.mermaid[data-processed]{text-align:center}
article .diagrama svg{max-width:100%;height:auto}

.docbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:24px}
.docbar a.voltar{font-size:15px;text-decoration:none;color:var(--tinta-700)}
.docbar .fonte{margin-left:auto;font-size:14px;color:var(--tinta-500);font-family:var(--mono)}
.carregando{color:var(--tinta-500);padding:40px 0}
.erro{background:#F6EEDF;border:1px solid #E2CFA8;border-radius:var(--raio);
  padding:20px;color:#5C4413;line-height:1.6}

@media (max-width:880px){
  .doc{grid-template-columns:1fr;gap:22px}
  .sumario{position:static;max-height:none}
  article{padding:24px 20px 32px}
  .hero h1{font-size:30px}
}
