:root{
  --navy: #184d8b;
  --navy-deep: #001f5f;
  --teal: #258c9f;
  --danger: #c4494a;
  --paper: #f6f4ef;
  --line: rgba(246,244,239,0.14);
  --muted: rgba(246,244,239,0.62);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background: #eef0ef;
  font-family: 'Open Sans', system-ui, -apple-system, sans-serif;
  min-height:100vh;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding: 44px 20px;
  position:relative;
  overflow-x:hidden;
}
.label{
  font-family: 'Open Sans', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

/* ---- fundo cenográfico: manchas dos três eixos + trama de rede ---- */
.bg-scene{ position:fixed; inset:0; width:100%; height:100%; z-index:-1; overflow:hidden; }
.bg-scene svg{ width:100%; height:100%; }

/* ---- moldura tipo "cartão flutuante" no desktop, tela cheia no mobile ---- */
.frame{
  width:100%;
  max-width: 430px;
  background: radial-gradient(120% 140% at 50% -10%, var(--navy) 0%, #0d3a72 42%, var(--navy-deep) 100%);
  color: var(--paper);
  border-radius: 34px;
  box-shadow: 0 30px 60px -20px rgba(0,20,50,0.45), 0 0 0 1px rgba(255,255,255,0.06);
  padding: 44px 26px 34px;
  position:relative;
}
.frame::before{
  content:"";
  position:absolute;
  top:14px; left:50%; transform:translateX(-50%);
  width:52px; height:5px;
  border-radius:3px;
  background: rgba(246,244,239,0.18);
}
@media (max-width: 480px){
  body{ padding:0; background: var(--navy-deep); }
  .frame{ border-radius:0; box-shadow:none; padding-top:56px; min-height:100vh; }
  .bg-scene{ display:none; }
}

/* ---- barra superior (@handle) ---- */
.topbar{ display:flex; align-items:center; gap:10px; padding-bottom:14px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.topbar .handle{ color: var(--teal); }

/* ---- identidade ---- */
.identity{ display:flex; flex-direction:column; align-items:center; text-align:center; margin-bottom: 32px; }
.mark{
  width:64px; height:64px; border-radius:50%; background: var(--paper);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18); padding: 10px;
}
.mark img{ width:100%; height:100%; object-fit:contain; }
.eyebrow.label{ color: var(--teal); margin-bottom:8px; }
h1{ font-family: 'Open Sans', sans-serif; font-size: 22px; font-weight:600; line-height:1.3; margin:0 0 10px; }
.headline-italic{
  font-family:'Open Sans',sans-serif; font-size:21px; font-weight:700;
  font-style:italic; text-transform:uppercase; letter-spacing:0.01em;
  line-height:1.35; margin:0 0 10px;
}
.tagline{ font-size:13px; font-weight:300; color: var(--muted); line-height:1.6; max-width: 300px; margin:0 auto; }

/* ---- links principais (formato editorial, sem botão sólido) ---- */
.primary-links{ margin-bottom: 26px; }
.plink{
  display:flex; align-items:center; gap:14px; padding: 15px 4px;
  text-decoration:none; color: var(--paper); border-bottom: 1px solid var(--line);
  transition: padding-left 0.18s cubic-bezier(0.16,1,0.3,1), color 0.18s cubic-bezier(0.16,1,0.3,1);
}
.primary-links .plink:first-child{ padding-top:2px; }
.plink:hover{ padding-left:8px; color: var(--teal); }
.plink .icon{
  flex-shrink:0; width:34px; height:34px; border-radius:50%; border:1.4px solid var(--paper);
  display:flex; align-items:center; justify-content:center;
}
.plink .icon svg{ width:16px; height:16px; }
.plink .text{ flex:1; min-width:0; }
.plink .name{ font-size:14px; font-weight:600; display:block; }
.plink .desc{ font-size:11px; font-style:italic; color: var(--muted); font-weight:400; margin-top:1px; display:block; }
.plink .arrow-box{
  flex-shrink:0; width:26px; height:26px; border:1.4px solid var(--line);
  border-radius:5px; display:flex; align-items:center; justify-content:center;
  opacity:.7; transition: opacity .18s ease, border-color .18s ease;
}
.plink .arrow-box svg{ width:12px; height:12px; }
.plink:hover .arrow-box{ opacity:1; border-color: var(--teal); }

/* ---- chips secundários ---- */
.chips{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-bottom: 36px; }
.chip{
  padding: 13px 15px; background: rgba(246,244,239,0.05); border:1px solid var(--line);
  color: var(--paper); text-decoration:none; border-radius:10px;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.chip:hover{ background: rgba(246,244,239,0.09); border-color: rgba(246,244,239,0.28); }
.chip .name{ font-size:12.5px; font-weight:600; display:block; }
.chip .desc{ font-size:10.5px; font-style:italic; color: var(--muted); font-weight:400; margin-top:2px; display:block; }

/* ---- divisor de seção ---- */
.divider{ display:flex; align-items:center; gap:12px; margin: 0 0 16px; }
.divider span{ color: var(--muted); white-space:nowrap; }
.divider::after{ content:""; flex:1; height:1px; background: var(--line); }

/* ---- notícia destacada ---- */
.featured{
  display:block; text-decoration:none; color: var(--paper); border-radius: 14px; overflow:hidden;
  background: rgba(246,244,239,0.05); border: 1px solid rgba(37,140,159,0.4); margin-bottom: 28px;
  transition: transform 0.18s cubic-bezier(0.16,1,0.3,1), border-color 0.18s cubic-bezier(0.16,1,0.3,1);
}
.featured:hover{ transform: translateY(-2px); border-color: var(--teal); }
.featured .media{
  width:100%; height:110px; position:relative; overflow:hidden;
  background-size:cover; background-position:center;
}
.featured .tag{
  position:absolute; top:12px; left:12px; background: var(--teal); color: var(--paper);
  padding: 4px 10px; border-radius: 5px; font-family:'Open Sans',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
}
.featured.layout-evento .tag{ background: var(--danger); }
.featured .content{ padding: 14px 16px 16px; }
.featured .content .title{ font-size:15px; font-weight:600; line-height:1.35; margin-bottom:5px; }
.featured .content .desc{ font-size:11.5px; font-style:italic; color: var(--muted); font-weight:400; line-height:1.5; }

/* ---- featured: layout vaga (marca-d'água de porta/seta) ---- */
.featured .watermark{
  position:absolute; bottom:10px; right:10px; width:32px; height:32px;
  opacity:0.18; pointer-events:none;
}
.featured .watermark svg{ width:100%; height:100%; }

/* ---- featured: layout evento (selo de data sobreposto) ---- */
.featured .date-seal{
  position:absolute; top:10px; right:10px; background:rgba(0,31,95,0.78);
  border-radius:6px; padding:5px 8px 4px; text-align:center; line-height:1;
  backdrop-filter:blur(2px); pointer-events:none;
}
.featured .date-seal .day{
  display:block; font-family:'Open Sans',sans-serif; font-size:18px; font-weight:700;
  color:var(--paper); line-height:1;
}
.featured .date-seal .month{
  display:block; font-family:'Open Sans',sans-serif; font-size:8px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.08em; color:var(--paper); opacity:0.85; margin-top:2px;
}

/* ---- featured: layout relatorio (selo capa do relatório anual) ---- */
.featured .report-seal{
  position:absolute; top:10px; left:10px; background:var(--navy-deep);
  border-radius:8px; padding:8px 12px 7px; text-align:center; line-height:1;
  pointer-events:none;
}
.featured .report-seal .report-label{
  display:block; font-family:'Open Sans',sans-serif; font-size:8px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.1em; color:var(--paper); opacity:0.8;
}
.featured .report-seal .report-year{
  display:block; font-family:'Open Sans',sans-serif; font-size:22px; font-weight:700;
  color:var(--paper); line-height:1; margin-top:3px;
}

/* ---- featured: linhas de meta (deadline, local) ---- */
.featured .meta-line{
  display:flex; align-items:center; gap:5px; margin-top:8px;
  font-size:11px; font-weight:600; color:var(--teal);
}
.featured .meta-line svg{ width:13px; height:13px; flex-shrink:0; }

/* ---- lista de posts (compartilhada entre home e acervo) ---- */
.posts{ display:flex; flex-direction:column; margin-bottom: 30px; }
.post{
  display:flex; align-items:center; gap:13px; padding: 10px 6px; border-radius: 10px;
  text-decoration:none; color:var(--paper);
  transition: background 0.18s cubic-bezier(0.16,1,0.3,1);
}
.post:hover{ background: rgba(246,244,239,0.06); }
.thumb{
  flex-shrink:0; width:46px; height:46px; border-radius:8px; position:relative; overflow:hidden;
  background-size:cover; background-position:center;
  background-color: rgba(246,244,239,0.08); border:1px solid var(--line);
}
.post .body{ min-width:0; }
.post .date{
  display:inline; font-family:'Open Sans',sans-serif; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.05em; color: var(--teal);
}
.cats{ display:inline-flex; flex-wrap:wrap; gap:3px; margin-left:6px; vertical-align:middle; }
.cat-badge{
  font-family:'Open Sans',sans-serif; font-size:8px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.05em;
  background:var(--cat-color); color:var(--paper);
  padding:1.5px 5px; border-radius:3px; line-height:1.3;
}
.post .title{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-size:13px; font-weight:500; line-height:1.4; color: rgba(246,244,239,0.92);
}
.post:hover .title{ color: var(--teal); }

.see-all{
  display:inline-flex; align-items:center; justify-content:space-between; gap:14px;
  margin: 4px 0 0 0; padding: 9px 12px 9px 14px;
  border:1.2px solid var(--line); border-radius:6px;
  font-size:11.5px; font-weight:600; color: var(--muted); text-decoration:none;
  transition: color .18s ease, border-color .18s ease;
}
.see-all .arrow-box{
  width:26px; height:18px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.see-all .arrow-box svg{ width:16px; height:16px; }
.see-all:hover{ color: var(--paper); border-color: var(--teal); }
.load-more{ display:block; margin:24px auto 0; width:fit-content; }

/* ---- redes ---- */
.socials-section{ margin-top: 40px; }
.socials{ display:flex; justify-content:center; gap:22px; margin-bottom: 34px; flex-wrap:wrap; }
.socials a{
  color: var(--muted); text-decoration:none; font-size:12px; font-weight:600;
  border-bottom:1px solid transparent; padding-bottom:2px;
  transition: color 0.18s cubic-bezier(0.16,1,0.3,1), border-color 0.18s cubic-bezier(0.16,1,0.3,1);
}
.socials a:hover{ color: var(--paper); border-color: var(--teal); }

footer{ text-align:center; font-size:11px; font-weight:500; color: rgba(246,244,239,0.35); }
footer a{ color: rgba(246,244,239,0.5); text-decoration:none; }

/* ---- acervo: cabeçalho com voltar + busca ---- */
.top{ display:flex; align-items:center; gap:12px; margin-bottom: 22px; }
.back{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:var(--paper);
  text-decoration:none; flex-shrink:0;
}
.back svg{ width:16px; height:16px; }
.top h1{ font-size:17px; font-weight:700; margin:0; }
.top p{ font-size:11.5px; color:var(--muted); margin:2px 0 0; font-weight:500; }
.search{
  display:flex; align-items:center; gap:8px; background: rgba(246,244,239,0.06);
  border:1px solid var(--line); border-radius:10px; padding:9px 12px; margin-bottom:28px;
}
.search svg{ width:15px; height:15px; opacity:.5; flex-shrink:0; }
.search input{
  background:none; border:none; outline:none; color:var(--paper);
  font-family:'Open Sans',sans-serif; font-size:12.5px; width:100%;
}
.search input::placeholder{ color: var(--muted); }
.group{ margin-bottom: 26px; }
.group:last-child{ margin-bottom: 0; }
.group-label{ color: var(--teal); margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.empty-state{ text-align:center; color:var(--muted); font-size:13px; padding: 30px 10px; }
