
const POSTS=[
  ['post-1','Conservação têxtil','Quanto tempo dura uma alcatifa comercial? Depende de três decisões.','A vida útil de uma alcatifa varia entre 5 e 15 anos. A diferença raramente está no material — está na manutenção.','assets/cleanepel-mattress-washer.JPG'],
  ['post-2','Manutenção contratual','Manutenção reativa vs. preventiva: o custo real de esperar pelo problema.','Intervir quando o desgaste já é visível custa, em média, o dobro de um plano preventivo. As contas, com exemplos.','assets/cleanepel-mattress-setup.JPG'],
  ['post-3','Setores','Higienização têxtil em ambientes de saúde: o que muda em relação a um escritório.','Requisitos, produtos, documentação e planeamento por alas — as diferenças que importam a um diretor de operações.','assets/cleanepel-outside-van.JPG'],
  ['post-4','Conservação têxtil','Impermeabilização técnica: quando faz sentido e quando é dinheiro perdido.','Nem todos os têxteis beneficiam de impermeabilização. Critérios objetivos para decidir.','assets/Cleanepel-Marcelo-speaking-phone.png'],
  ['post-5','Bastidores','Como se higieniza um auditório de 800 lugares em duas noites.','Faseamento, dimensionamento de equipa e controlo de qualidade numa operação contra o relógio.','assets/cleanepel-mattress-washer-2.JPG'],
  ['post-6','Manutenção contratual','O que deve constar num contrato de manutenção têxtil — checklist para facility managers.','Âmbito, calendário, prazos de resposta, reporte e condições de revisão: os pontos a exigir por escrito.','assets/cleanepel-mattress-washer.JPG']];
function PostCard([id,cat,title,excerpt,imgSrc]){
  return <a key={id} href="#" style={{textDecoration:'none',color:'inherit'}} onClick={e=>e.preventDefault()}>
    <article style={{background:'#fff',border:'1px solid var(--border-subtle)',boxShadow:'var(--shadow-1)',height:'100%',display:'flex',flexDirection:'column'}}>
      <div style={{height:200}}>
        <img src={imgSrc} alt={'Fotografia — '+cat.toLowerCase()} style={{width:'100%',height:'100%',objectFit:'cover',display:'block'}} />
      </div>
      <div style={{padding:'22px 24px 26px',flex:1}}>
        <div className="eyebrow" style={{fontSize:11,marginBottom:10}}>{cat}</div>
        <h3 style={{fontSize:18,fontWeight:600,margin:'0 0 8px',lineHeight:1.35}}>{title}</h3>
        <p style={{fontSize:14,margin:0,color:'var(--text-muted)'}}>{excerpt}</p>
      </div>
    </article>
  </a>;
}
function Blog(){
  return <div>
    <PageHero crumb="Blog" eyebrow="Conhecimento" title="Conservação têxtil, explicada a quem gere instalações." lead="Artigos técnicos e práticos para facility managers, diretores de hotel e gestores de operações. Sem promoção — apenas conhecimento útil."/>
    <section className="section" data-screen-label="Artigos"><div className="wrap">
      <div style={{display:'flex',gap:12,marginBottom:44,flexWrap:'wrap'}}>
        {['Todos','Conservação têxtil','Manutenção contratual','Setores','Bastidores'].map((c,i)=><span key={c} style={{fontFamily:'var(--font-display)',fontWeight:500,fontSize:13,padding:'8px 16px',border:'1px solid '+(i===0?'var(--navy-800)':'var(--border-subtle)'),color:i===0?'#fff':'var(--navy-800)',background:i===0?'var(--navy-800)':'#fff',cursor:'pointer'}}>{c}</span>)}
      </div>
      <div className="grid3" style={{gap:'32px 24px'}}>{POSTS.map(PostCard)}</div>
      <p className="muted" style={{fontSize:14,marginTop:44,textAlign:'center'}}>Artigos de exemplo — a estrutura está preparada para o crescimento editorial futuro.</p>
    </div></section>
    <CTABand title="Prefere respostas diretas sobre a sua instalação?" lead="A visita técnica responde melhor do que qualquer artigo." secondary="Falar com a equipa comercial"/>
  </div>;
}
registerPage('blog', Blog);
