from base import *
import dados as D

SERVICOS_PJ = [
    ("empresas/suporte-de-ti/", "Suporte de TI para empresas",
     "Computadores, notebooks, PDVs, impressoras comuns e fiscais funcionando, com atendimento remoto e presencial.",
     ["PDV", "Impressora fiscal", "Remoto"]),
    ("empresas/redes-e-servidores/", "Redes, servidores e backup",
     "Cabeamento, racks, Wi-Fi, servidores de arquivos e rotina de backup para os dados da empresa.",
     ["Rack", "Wi-Fi", "Backup"]),
    ("empresas/seguranca/", "Segurança, firewall e CFTV",
     "Firewall para proteger a rede, câmeras com acesso remoto e alarmes para o espaço físico.",
     ["Firewall", "CFTV", "Alarme"]),
    ("empresas/telefonia-voip/", "Telefonia VoIP",
     "Sistemas VoIP, revisão das contas telefônicas e ferramentas de comunicação entre as equipes.",
     ["VoIP", "Ramais", "Contas"]),
    ("empresas/erp-e-sistemas/", "ERP e ferramentas sob medida",
     "Ajuda para escolher e implantar o ERP e desenvolvimento de ferramentas para a rotina da empresa.",
     ["ERP", "Implantação", "Sob medida"]),
    ("loja/", "Equipamentos para empresas",
     "Computadores, notebooks, impressoras, racks e servidores de procedência, com orientação na escolha.",
     ["Servidor", "Rack", "Notebook"]),
]

def card_servico(c, caminho, nome, texto, chips, h="h3"):
    ch = "".join(f'<span class="chip">{esc(x)}</span>' for x in chips)
    return (f'<a class="card" href="{c.u(caminho)}">{no_hex()}<{h}>{esc(nome)}</{h}><p>{esc(texto)}</p>'
            f'<div class="card__chips">{ch}</div><span class="card__mais">Conhecer o serviço →</span></a>')

# ------------------------------------------------------------------ início
def esquema(c):
    placas = [
        ("empresas/suporte-de-ti/", "Suporte de TI", "PDV · IMPRESSORAS", 20, 30),
        ("empresas/redes-e-servidores/", "Redes e servidores", "RACK · BACKUP", 340, 30),
        ("empresas/seguranca/", "Segurança e CFTV", "FIREWALL · CÂMERAS", 0, 198),
        ("empresas/telefonia-voip/", "Telefonia VoIP", "RAMAIS · CONTAS", 360, 198),
        ("empresas/erp-e-sistemas/", "ERP e sistemas", "IMPLANTAÇÃO", 20, 366),
        ("loja/", "Equipamentos", "COMPRA ORIENTADA", 340, 366),
    ]
    tr = [
        ("M220 62 H252 V186", False), ("M340 62 H308 V186", True), ("M200 230 H228", False),
        ("M360 230 H332", False), ("M220 398 H252 V274", True), ("M340 398 H308 V274", False),
    ]
    nos = [(220, 62), (252, 186), (340, 62), (308, 186), (200, 230), (228, 230), (360, 230), (332, 230),
           (220, 398), (252, 274), (340, 398), (308, 274)]
    s = ['<svg viewBox="0 0 560 460" role="img" aria-labelledby="esq-t"><title id="esq-t">Esquema dos serviços para empresas da Besides ligados à sua empresa</title>']
    for d, v in tr:
        s.append(f'<path class="tr{" tr--v" if v else ""}" d="{d}"/>')
    s.append('<path class="pulso" d="M220 62 H252 V186"/><path class="pulso" d="M360 230 H332" style="animation-delay:1.1s"/><path class="pulso" d="M340 398 H308 V274" style="animation-delay:2.2s"/>')
    s.append('<path class="centro" d="M280 170 L332 200 L332 260 L280 290 L228 260 L228 200 Z"/>')
    s.append('<text class="centro-rot" x="280" y="226" text-anchor="middle">Sua</text><text class="centro-rot" x="280" y="248" text-anchor="middle">empresa</text>')
    for x, y in nos:
        s.append(f'<circle class="no" cx="{x}" cy="{y}" r="4.5"/>')
    for p, rot, sub, x, y in placas:
        s.append(f'<a href="{c.u(p)}" aria-label="{esc(rot)}"><rect class="placa" x="{x}" y="{y}" width="200" height="64" rx="8"/>'
                 f'<text class="rot" x="{x+16}" y="{y+28}">{esc(rot)}</text><text class="sub" x="{x+16}" y="{y+48}">{esc(sub)}</text></a>')
    s.append("</svg>")
    return "".join(s)

def pg_inicio(c):
    cards = "".join(card_servico(c, *s) for s in SERVICOS_PJ)
    clientes = "".join(f"<li>{esc(n)}</li>" for n in D.CLIENTES)
    perguntas = [
        ("Onde fica a Besides Informática?",
         f"<p>Na {esc(D.RUA)}, em Criciúma (SC), CEP {D.CEP}. <a href=\"{D.MAPS_URL}\" target=\"_blank\" rel=\"noopener\">Abrir no Google Maps</a>.</p>"),
        ("Vocês atendem só empresas?",
         f"<p>Não. Além do suporte para empresas, consertamos computadores e notebooks de quem traz o equipamento à loja, vendemos produtos e suprimentos de informática e fazemos impressões e cópias. Veja <a href=\"{c.u('assistencia-tecnica/')}\">assistência técnica</a> e <a href=\"{c.u('loja/')}\">loja e impressões</a>.</p>"),
        ("Como funciona o suporte remoto?",
         f"<p>Quando o problema pode ser resolvido a distância, o técnico pede que você abra o AnyDesk e informe o código de acesso. Ele vê a tela e resolve com você acompanhando. As instruções estão em <a href=\"{c.u('suporte-remoto/')}\">suporte remoto e chamados</a>.</p>"),
        ("Vocês imprimem documentos do Detran e da Casan?",
         f"<p>Sim. Fazemos impressões de documentos como os do Detran, da Casan e da habitação, além de cópias em preto e branco, na loja. Detalhes em <a href=\"{c.u('loja/')}#impressoes\">impressões e cópias</a>.</p>"),
    ]
    corpo = f'''<section class="hero" aria-labelledby="h1"><div class="caixa">
  <div class="hero__texto">
    <span class="etiqueta">Criciúma · SC · desde {D.FUNDACAO}</span>
    <h1 id="h1">TI que mantém <em>sua empresa</em> funcionando</h1>
    <div class="traco" aria-hidden="true"><span></span></div>
    <p class="hero__lead">Suporte técnico, redes, servidores, segurança e telefonia para empresas de Criciúma. E assistência técnica e loja de informática para quem precisa resolver o computador de casa.</p>
    <div class="botoes">
      <a class="btn btn--primario" href="{wa("Olá, Besides! Vim pelo site e gostaria de um orçamento de TI para minha empresa.")}" target="_blank" rel="noopener" data-evento="clique_orcamento" data-origem="hero">Pedir orçamento para empresa</a>
      <a class="btn btn--secundario" href="{c.u("assistencia-tecnica/")}">Consertar meu computador</a>
    </div>
    <ul class="hero__fatos"><li>Atendimento remoto, na loja e no local</li><li>Redes, PDVs e impressoras fiscais</li><li>Loja física em Criciúma</li></ul>
  </div>
  <div class="esquema">{esquema(c)}</div>
</div></section>

<section class="secao secao--tinta" id="empresas" aria-labelledby="t-empresas"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Para empresas</span><h2 id="t-empresas">Tudo o que a TI da sua empresa precisa, com um só fornecedor</h2>
  <p>Do caixa que não imprime cupom ao servidor que guarda os arquivos da equipe. Cuidamos da infraestrutura para você cuidar do negócio.</p></div>
  <div class="grade">{cards}</div>
  <p style="margin-top:var(--esp-6)"><a href="{c.u("empresas/")}">Ver todas as soluções para empresas →</a></p>
</div></section>

<section class="secao" id="voce" aria-labelledby="t-voce"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Para você</span><h2 id="t-voce">Computador com problema? Traga na loja</h2>
  <p>Consertamos computadores e notebooks, vendemos equipamentos e suprimentos e imprimimos seus documentos.</p></div>
  <div class="grade grade--2">
    <a class="card card--pf" href="{c.u("assistencia-tecnica/")}">{no_hex("var(--verde-sinal)")}<div><h3>Assistência técnica</h3><p>Manutenção de computadores e notebooks, formatação, configuração e backup dos seus arquivos.</p><span class="card__mais">Ver assistência técnica →</span></div></a>
    <a class="card card--pf" href="{c.u("loja/")}">{no_hex("var(--verde-sinal)")}<div><h3>Loja, suprimentos e impressões</h3><p>Computadores, notebooks, impressoras, cartuchos e toners, acessórios, cópias e impressão de documentos.</p><span class="card__mais">Ver loja e impressões →</span></div></a>
  </div>
</div></section>

<section class="secao secao--noite" aria-labelledby="t-como"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Como funciona</span><h2 id="t-como">Do primeiro contato ao problema resolvido</h2></div>
  <ol class="passos">
    <li><h3>Você conta o que está acontecendo</h3><p>Pelo WhatsApp, telefone ou e-mail. Clientes com suporte também podem abrir chamado pelo sistema.</p></li>
    <li><h3>Fazemos o diagnóstico</h3><p>A distância pelo AnyDesk, na sua empresa ou na bancada da loja, conforme o problema.</p></li>
    <li><h3>Você aprova o que será feito</h3><p>Explicamos a causa e o que precisa ser feito antes de executar.</p></li>
    <li><h3>Resolvemos e orientamos</h3><p>Entregamos funcionando e dizemos como evitar que o problema volte.</p></li>
  </ol>
</div></section>

<section class="secao" aria-labelledby="t-clientes"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Clientes</span><h2 id="t-clientes">Empresas da região que já contaram com a Besides</h2></div>
  <ul class="clientes">{clientes}</ul>
</div></section>

<section class="secao secao--tinta" aria-labelledby="t-conteudos"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Conteúdos</span><h2 id="t-conteudos">Para decidir melhor sobre a TI da empresa</h2></div>
  <div class="grade grade--2">
    <a class="card" href="{c.u("conteudos/backup-para-pequenas-empresas/")}"><span class="etiqueta">Guia · Backup</span><h3>Como organizar o backup de uma pequena empresa</h3><p>O que copiar, para onde, com que frequência e como testar se a cópia funciona.</p><span class="card__mais">Ler o guia →</span></a>
    <a class="card" href="{c.u("conteudos/backup-ou-sincronizacao/")}"><span class="etiqueta">Explicação · Arquivos</span><h3>Backup e sincronização não são a mesma coisa</h3><p>Por que uma pasta sincronizada na nuvem não protege contra exclusão acidental ou vírus.</p><span class="card__mais">Ler a explicação →</span></a>
  </div>
</div></section>

<section class="secao" aria-labelledby="t-faq"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Perguntas frequentes</span><h2 id="t-faq">Antes de chamar a gente</h2></div>
  {faq(perguntas)}
</div></section>
''' + faixa_contato(c, "Sua empresa precisa de suporte de TI?", "Conte o que está acontecendo e quantos computadores a empresa tem. A gente responde com o próximo passo.",
                    "Olá, Besides! Vim pelo site e gostaria de um orçamento de TI para minha empresa.", origem="faixa_inicio")
    return dict(caminho="", classe="inicio",
                titulo="Suporte de TI e assistência técnica em Criciúma | Besides",
                descricao="Suporte de TI, redes, servidores, segurança e VoIP para empresas em Criciúma (SC). Assistência técnica, loja de informática e impressões desde 2004.",
                trilha=[("Início", "")], corpo=corpo)

# ------------------------------------------------------------------ página de serviço (modelo)
def pg_servico(c, caminho, nome_curto, titulo, descricao, h1, lead, secoes, perguntas, tipo_servico,
               chamada, msg, relacionados, trilha_pai=("Para empresas", "empresas/"), etiqueta="Para empresas"):
    trilha_itens = [("Início", ""), trilha_pai, (nome_curto, caminho)] if trilha_pai else [("Início", ""), (nome_curto, caminho)]
    rel = "".join(f'<li><a href="{c.u(p)}">{esc(n)}</a></li>' for p, n in relacionados)
    lateral = f'''<aside class="lateral" aria-label="Contato rápido">
  <div class="card"><h2>Fale com um técnico</h2>
    <ul class="lista-dados">
      <li>{ICONES["whatsapp"]}<a href="{wa(msg)}" target="_blank" rel="noopener" data-evento="clique_whatsapp" data-origem="lateral">WhatsApp {D.WHATSAPP}</a></li>
      <li>{ICONES["telefone"]}<a href="tel:{D.TELEFONE_E164}" data-evento="clique_telefone" data-origem="lateral">{D.TELEFONE}</a></li>
      <li>{ICONES["email"]}<a href="mailto:{D.EMAIL}" data-evento="clique_email" data-origem="lateral">{D.EMAIL}</a></li>
      <li>{ICONES["local"]}<span>{esc(D.RUA)}, {D.CIDADE}/{D.UF}</span></li>
      <li>{ICONES["relogio"]}<span>{horario_html()}</span></li>
    </ul>
    <a class="btn btn--primario" href="{wa(msg)}" target="_blank" rel="noopener" data-evento="clique_orcamento" data-origem="lateral">Pedir orçamento</a>
  </div>
  <div class="card"><h2>Veja também</h2><ul class="lista-links">{rel}</ul></div>
</aside>'''
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, trilha_itens)}
  <span class="etiqueta">{esc(etiqueta)}</span>
  <h1>{esc(h1)}</h1>
  <div class="traco" aria-hidden="true"><span></span></div>
  <p class="cab__lead">{lead}</p>
  <div class="botoes"><a class="btn btn--primario" href="{wa(msg)}" target="_blank" rel="noopener" data-evento="clique_orcamento" data-origem="cabecalho_pagina">Pedir orçamento pelo WhatsApp</a>
  <a class="btn btn--secundario" href="tel:{D.TELEFONE_E164}" data-evento="clique_telefone" data-origem="cabecalho_pagina">Ligar {D.TELEFONE}</a></div>
</div></section>
<section class="secao"><div class="caixa leitura">
  <div class="prosa">{secoes}
  <h2 id="perguntas">Perguntas frequentes</h2>
  {faq(perguntas)}
  </div>
  {lateral}
</div></section>
''' + faixa_contato(c, chamada[0], chamada[1], msg, origem="faixa_" + caminho.strip("/").replace("/", "_"))
    return dict(caminho=caminho, titulo=titulo, descricao=descricao, trilha=trilha_itens, corpo=corpo,
                schema=[service_schema(caminho, h1, descricao, tipo_servico)])

ONDE = (f"<h2>Onde atendemos</h2><p>Atendemos empresas de {D.CIDADE} na própria empresa, a distância e na loja da {esc(D.RUA)}. "
        "Para empresas de outras cidades, consulte a disponibilidade pelo WhatsApp. " + pend("confirmar cidades atendidas além de Criciúma") + "</p>")

def pg_suporte(c):
    s = f'''<h2>O que é</h2>
<p>É o suporte técnico que cuida dos equipamentos que a sua empresa usa todos os dias: computadores, notebooks, PDVs, impressoras comuns e fiscais e a rede que liga tudo. Em vez de chamar alguém diferente a cada problema, você tem uma equipe que conhece o seu ambiente.</p>
<h2>Para quem é</h2>
<p>Comércios, escritórios, indústrias e prestadores de serviço de Criciúma que dependem da informática para vender, emitir notas e atender clientes, e que não têm uma equipe de TI própria ou têm uma pessoa sobrecarregada com isso.</p>
<h2>Problemas que resolvemos</h2>
<ul>
<li>Computador lento, travando ou reiniciando sozinho.</li>
<li>PDV ou impressora fiscal parada no caixa.</li>
<li>Impressora que não aparece na rede ou não imprime.</li>
<li>Rede ou Wi-Fi caindo, lento ou sem alcance em parte da empresa.</li>
<li>Computador novo que precisa ser configurado com os programas e as pastas da empresa.</li>
<li>Pastas compartilhadas e programas que pararam de abrir depois de uma atualização.</li>
</ul>
<h2>O que está incluído</h2>
<ul>
<li>Manutenção, formatação e configuração de computadores e notebooks.</li>
<li>Instalação e configuração de PDVs, impressoras comuns e fiscais e periféricos.</li>
<li>Configuração de rede e Wi-Fi, compartilhamento de pastas e impressoras.</li>
<li>Atendimento a distância pelo AnyDesk quando o problema permite.</li>
<li>Orientação na compra de computadores e equipamentos para a empresa.</li>
</ul>
<h2>O que depende de terceiros</h2>
<p>Problemas dentro de sistemas de outros fornecedores, como ERP ou emissor de notas, são resolvidos pelo fornecedor do sistema. Nós cuidamos do computador, da rede e da impressora e, quando necessário, ajudamos a acionar o fornecedor. Peças e equipamentos novos são orçados à parte.</p>
<p class="nota">Modalidades de contratação (por chamado ou contrato mensal): {pend("confirmar com a Besides")}</p>
<h2>Como funciona o atendimento</h2>
<ol>
<li>Você abre um chamado pelo <a href="{c.u("suporte-remoto/")}">sistema de chamados</a> ou chama no WhatsApp.</li>
<li>Se der para resolver a distância, o técnico acessa o computador pelo AnyDesk com a sua autorização.</li>
<li>Se precisar de presença, combinamos a visita. Se precisar de bancada, o equipamento vem para a loja.</li>
<li>Antes de qualquer custo extra, como troca de peça, você recebe o orçamento para aprovar.</li>
</ol>
{ONDE}'''
    p = [
        ("Como abro um chamado?", f"<p>Pelo <a href=\"{D.CHAMADOS_URL}\">sistema de chamados</a>, com o login da sua empresa, ou pelo WhatsApp {D.WHATSAPP}. Descreva o problema, em qual computador acontece e desde quando.</p>"),
        ("Vocês atendem PDV e impressora fiscal?", "<p>Sim. PDVs, impressoras fiscais e impressoras comuns fazem parte do suporte. Problemas no sistema de vendas em si são tratados com o fornecedor do sistema.</p>"),
        ("O atendimento pode ser feito a distância?", f"<p>Sim, quando o problema não exige mexer no equipamento. Usamos o AnyDesk; veja como em <a href=\"{c.u("suporte-remoto/")}\">suporte remoto</a>.</p>"),
        ("Vocês atendem empresas fora de Criciúma?", "<p>O foco do atendimento presencial é Criciúma. Para outras cidades, pergunte pelo WhatsApp; o atendimento a distância pode ser uma opção.</p>"),
    ]
    return pg_servico(c, "empresas/suporte-de-ti/", "Suporte de TI",
        "Suporte de TI para empresas em Criciúma | Besides Informática",
        "Suporte técnico para computadores, PDVs, impressoras fiscais e rede da sua empresa em Criciúma. Atendimento remoto, no local e na loja.",
        "Suporte de TI para empresas em Criciúma",
        "Computadores, PDVs, impressoras e rede funcionando, com uma equipe que conhece o seu ambiente. Atendimento remoto, na sua empresa ou na loja.",
        s, p, "Suporte técnico de informática",
        ("Algum equipamento parado agora?", "Chame no WhatsApp e diga qual equipamento e o que aparece na tela."),
        "Olá, Besides! Vim pelo site e preciso de suporte de TI para minha empresa.",
        [("empresas/redes-e-servidores/", "Redes, servidores e backup"), ("empresas/seguranca/", "Segurança e CFTV"), ("suporte-remoto/", "Suporte remoto e chamados")])

def pg_redes(c):
    s = f'''<h2>O que é</h2>
<p>É o projeto, a instalação e a manutenção da estrutura que liga os computadores da empresa e guarda os seus dados: cabeamento, rack, switches, Wi-Fi, servidor de arquivos e a rotina de backup.</p>
<h2>Para quem é</h2>
<p>Empresas que vão montar ou reformar um escritório, que cresceram e a rede não acompanhou, ou que guardam arquivos importantes em um único computador sem cópia.</p>
<h2>Problemas que resolvemos</h2>
<ul>
<li>Internet boa no roteador, mas lenta nos computadores.</li>
<li>Wi-Fi que não chega em todas as salas ou derruba as conexões.</li>
<li>Cabos sem identificação e rack desorganizado, que tornam qualquer manutenção demorada.</li>
<li>Arquivos da equipe espalhados em vários computadores, sem controle de acesso.</li>
<li>Nenhuma cópia dos dados, ou cópias que nunca foram testadas.</li>
</ul>
<h2>O que está incluído</h2>
<ul>
<li>Levantamento da rede atual e indicação do que precisa mudar.</li>
<li>Instalação e organização de cabeamento, rack e switches.</li>
<li>Wi-Fi corporativo com cobertura para os ambientes da empresa.</li>
<li>Instalação e configuração de servidores, com pastas e permissões por setor.</li>
<li>Rotina de backup dos dados da empresa e verificação das cópias.</li>
<li>Venda dos equipamentos necessários, de racks a servidores.</li>
</ul>
<h2>Limites</h2>
<p>A qualidade do link de internet depende da operadora contratada. Podemos ajudar a comparar planos e a falar com a operadora, mas não controlamos a conexão que chega até a empresa. Obras civis, como passagem de eletrodutos, são combinadas caso a caso.</p>
<h2>Como funciona</h2>
<ol>
<li>Visitamos a empresa para entender o espaço, os equipamentos e quem usa o quê.</li>
<li>Apresentamos a proposta com equipamentos e serviços.</li>
<li>Executamos a instalação e deixamos a rede documentada.</li>
<li>Seguimos com manutenção e backup, se fizer sentido para a empresa.</li>
</ol>
<p>Para entender como montar a rotina de cópias, leia <a href="{c.u("conteudos/backup-para-pequenas-empresas/")}">como organizar o backup de uma pequena empresa</a>.</p>
{ONDE}'''
    p = [
        ("Minha empresa precisa de um servidor?", "<p>Depende de quantas pessoas compartilham arquivos, de quais sistemas a empresa usa e de como os dados precisam ser protegidos. Em alguns casos um serviço em nuvem resolve; em outros, um servidor local é mais adequado. Avaliamos o caso antes de indicar.</p>"),
        ("Backup na nuvem é suficiente?", f"<p>Pode fazer parte da solução, mas o importante é ter mais de uma cópia, em lugares diferentes, e testar a restauração. Explicamos em <a href=\"{c.u("conteudos/backup-ou-sincronizacao/")}\">backup e sincronização não são a mesma coisa</a>.</p>"),
        ("Vocês vendem os equipamentos?", f"<p>Sim. Fornecemos racks, switches, servidores e computadores. Veja <a href=\"{c.u("loja/")}\">equipamentos</a>.</p>"),
    ]
    return pg_servico(c, "empresas/redes-e-servidores/", "Redes, servidores e backup",
        "Redes, servidores e backup para empresas em Criciúma | Besides",
        "Cabeamento, racks, Wi-Fi corporativo, servidores de arquivos e backup para empresas em Criciúma (SC), do projeto à manutenção.",
        "Redes, servidores e backup para empresas",
        "Cabeamento, rack, Wi-Fi, servidor de arquivos e cópias dos seus dados, do projeto à manutenção.",
        s, p, "Infraestrutura de redes e servidores",
        ("Vai montar ou reorganizar a rede?", "Conte quantos computadores e ambientes a empresa tem. Marcamos uma visita para avaliar."),
        "Olá, Besides! Vim pelo site e quero falar sobre rede, servidor ou backup da minha empresa.",
        [("empresas/seguranca/", "Segurança e firewall"), ("empresas/suporte-de-ti/", "Suporte de TI"), ("conteudos/backup-para-pequenas-empresas/", "Guia de backup")])

def pg_seguranca(c):
    s = f'''<h2>O que é</h2>
<p>São as camadas que protegem a empresa: o firewall controla o que entra e sai da rede, as câmeras e alarmes cuidam do espaço físico e o backup garante que os dados possam ser recuperados.</p>
<h2>Para quem é</h2>
<p>Empresas que querem saber quem acessa a rede, controlar o uso da internet, acompanhar o movimento pelas câmeras a distância ou proteger o estabelecimento fora do horário.</p>
<h2>Problemas que resolvemos</h2>
<ul>
<li>Rede sem controle: qualquer dispositivo se conecta e acessa tudo.</li>
<li>Internet da empresa usada para fins que atrapalham o trabalho.</li>
<li>Câmeras que gravam, mas não podem ser vistas pelo celular.</li>
<li>Ausência de alarme ou de cópia dos dados em caso de incidente.</li>
</ul>
<h2>O que está incluído</h2>
<ul>
<li><strong>Firewall:</strong> instalação e configuração, separação de redes (por exemplo, Wi-Fi de visitantes) e regras de acesso.</li>
<li><strong>Circuito fechado de TV (CFTV):</strong> instalação de câmeras e gravador com acesso remoto pelo celular.</li>
<li><strong>Alarmes:</strong> instalação de sistema de alarme.</li>
<li><strong>Backup de dados:</strong> rotina de cópias da empresa, descrita em <a href="{c.u("empresas/redes-e-servidores/")}">redes, servidores e backup</a>.</li>
</ul>
<h2>Limites</h2>
<p>Nenhuma solução elimina todos os riscos. A segurança depende também de senhas fortes, atualizações em dia e cuidado da equipe com e-mails e links suspeitos, e orientamos sobre isso no atendimento. Monitoramento de alarme 24 horas por central não faz parte deste serviço. {pend("confirmar se há monitoramento")}</p>
<h2>Como funciona</h2>
<ol>
<li>Avaliamos a rede e o espaço físico da empresa.</li>
<li>Indicamos equipamentos e configuração adequados ao tamanho do negócio.</li>
<li>Instalamos, configuramos e mostramos como acessar as câmeras e usar o alarme.</li>
</ol>
<p class="nota">Por segurança, não publicamos detalhes de instalações feitas em clientes.</p>
{ONDE}'''
    p = [
        ("Consigo ver as câmeras pelo celular?", "<p>Sim. O CFTV que instalamos é configurado com acesso remoto, e mostramos como acessar no seu celular.</p>"),
        ("O roteador da operadora já não é um firewall?", "<p>O roteador da operadora tem proteções básicas. Um firewall dedicado permite separar redes, controlar acessos e registrar o que acontece, o que o roteador comum normalmente não faz de forma completa.</p>"),
        ("Vocês fazem backup dos dados da empresa?", f"<p>Sim. Veja como funciona em <a href=\"{c.u("empresas/redes-e-servidores/")}\">redes, servidores e backup</a>.</p>"),
    ]
    return pg_servico(c, "empresas/seguranca/", "Segurança e CFTV",
        "Firewall, câmeras e alarmes para empresas em Criciúma | Besides",
        "Firewall, CFTV com acesso remoto pelo celular, alarmes e backup de dados para empresas em Criciúma (SC).",
        "Segurança de rede, câmeras e alarmes para empresas",
        "Firewall para proteger a rede, câmeras que você acompanha pelo celular e alarme para o estabelecimento.",
        s, p, "Segurança da informação e segurança eletrônica",
        ("Quer proteger a rede ou o espaço da empresa?", "Diga o que você quer proteger e o tamanho do local. Indicamos a solução."),
        "Olá, Besides! Vim pelo site e quero falar sobre segurança (firewall, câmeras ou alarme).",
        [("empresas/redes-e-servidores/", "Redes, servidores e backup"), ("empresas/suporte-de-ti/", "Suporte de TI"), ("conteudos/backup-ou-sincronizacao/", "Backup ou sincronização?")])

def pg_voip(c):
    s = f'''<h2>O que é</h2>
<p>Telefonia VoIP usa a internet para fazer e receber ligações, com ramais entre setores, transferência de chamadas e atendimento em mais de um aparelho. Junto com isso, revisamos as contas telefônicas da empresa e implantamos ferramentas de comunicação entre as equipes.</p>
<h2>Para quem é</h2>
<p>Empresas com mais de um setor ou unidade que precisam transferir ligações, que pagam caro em contas de telefone ou que querem organizar a comunicação interna da equipe.</p>
<h2>Problemas que resolvemos</h2>
<ul>
<li>Ligações que não podem ser transferidas entre setores.</li>
<li>Contas de telefone altas ou com serviços que a empresa não usa.</li>
<li>Equipe que se comunica por canais misturados, sem organização.</li>
</ul>
<h2>O que está incluído</h2>
<ul>
<li>Implantação de sistema VoIP com ramais.</li>
<li>Apoio na contratação e na otimização das contas telefônicas.</li>
<li>Implantação de ferramentas de comunicação interna entre equipes.</li>
</ul>
<h2>Antes de implantar</h2>
<p>A qualidade das ligações por VoIP depende da internet e da rede interna. Por isso, avaliamos a conexão e a rede antes de propor a troca. Se for preciso ajustar a rede, isso entra na proposta.</p>
<h2>Limites</h2>
<p>Linhas, números e planos são contratados com a operadora de telefonia. Ajudamos a escolher e a negociar, e a portabilidade de números segue as regras da operadora.</p>
{ONDE}'''
    p = [
        ("Posso manter o número atual da empresa?", "<p>Em muitos casos, sim, por portabilidade. A viabilidade depende da operadora e do tipo de linha; verificamos no atendimento.</p>"),
        ("Preciso trocar a internet para usar VoIP?", "<p>Nem sempre. Avaliamos a conexão atual e a rede interna antes de indicar qualquer mudança.</p>"),
    ]
    return pg_servico(c, "empresas/telefonia-voip/", "Telefonia VoIP",
        "Telefonia VoIP para empresas em Criciúma | Besides Informática",
        "Implantação de telefonia VoIP com ramais, otimização de contas telefônicas e comunicação interna para empresas em Criciúma (SC).",
        "Telefonia VoIP para empresas",
        "Ramais, transferência de ligações e contas telefônicas revisadas, com a rede preparada para a voz.",
        s, p, "Telefonia VoIP",
        ("Quer rever a telefonia da empresa?", "Conte quantos ramais você precisa e qual operadora usa hoje."),
        "Olá, Besides! Vim pelo site e quero falar sobre telefonia VoIP para minha empresa.",
        [("empresas/redes-e-servidores/", "Redes e servidores"), ("empresas/suporte-de-ti/", "Suporte de TI")])

def pg_erp(c):
    s = f'''<h2>O que é</h2>
<p>Ajudamos a empresa a escolher, validar e implantar um ERP, o sistema de gestão que concentra vendas, estoque, financeiro e notas fiscais. Quando a rotina pede algo que o sistema não faz, desenvolvemos ferramentas sob medida para aproveitar melhor os recursos da empresa.</p>
<h2>Para quem é</h2>
<p>Empresas que vão trocar ou contratar o primeiro ERP, que já têm um sistema mas não aproveitam as funções, ou que fazem à mão tarefas repetitivas que poderiam ser automatizadas.</p>
<h2>O que está incluído</h2>
<ul>
<li><strong>Validação de ERP:</strong> levantamento das necessidades da empresa e comparação com o que o sistema oferece.</li>
<li><strong>Acompanhamento da implantação:</strong> apoio entre a empresa e o fornecedor do sistema até a operação estar funcionando.</li>
<li><strong>Ferramentas personalizadas:</strong> desenvolvimento de soluções para tarefas específicas da empresa.</li>
<li><strong>Infraestrutura:</strong> computadores, rede e servidor preparados para o sistema.</li>
</ul>
<h2>Limites</h2>
<p>A Besides não é revendedora exclusiva de nenhum ERP {pend("confirmar")}. O licenciamento, as atualizações e o suporte do sistema em si são do fornecedor escolhido.</p>
<h2>Como funciona</h2>
<ol>
<li>Conversamos com quem usa o sistema no dia a dia para mapear as necessidades.</li>
<li>Apresentamos o que o sistema atual ou os candidatos atendem e o que falta.</li>
<li>Acompanhamos a implantação ou desenvolvemos a ferramenta combinada.</li>
</ol>
{ONDE}'''
    p = [
        ("Vocês vendem algum ERP específico?", "<p>Nosso papel é ajudar a validar e implantar o sistema escolhido pela empresa e preparar a infraestrutura para ele. Pergunte pelo WhatsApp sobre o seu caso.</p>"),
        ("Que tipo de ferramenta vocês desenvolvem?", "<p>Soluções para tarefas específicas da rotina da empresa, que o sistema principal não cobre. O escopo é definido em conversa, caso a caso.</p>"),
    ]
    return pg_servico(c, "empresas/erp-e-sistemas/", "ERP e sistemas",
        "Consultoria de ERP e ferramentas sob medida em Criciúma | Besides",
        "Validação e acompanhamento da implantação de ERP e desenvolvimento de ferramentas personalizadas para empresas em Criciúma (SC).",
        "Consultoria de ERP e ferramentas sob medida",
        "Escolher e implantar o sistema de gestão certo e criar o que falta para a rotina da sua empresa.",
        s, p, "Consultoria em sistemas de gestão (ERP)",
        ("Vai trocar ou implantar um ERP?", "Conte qual sistema você usa hoje e o que não está funcionando bem."),
        "Olá, Besides! Vim pelo site e quero falar sobre ERP ou uma ferramenta sob medida.",
        [("empresas/suporte-de-ti/", "Suporte de TI"), ("empresas/redes-e-servidores/", "Redes e servidores")])

def pg_assistencia(c):
    s = f'''<h2>O que fazemos</h2>
<ul>
<li>Manutenção de computadores e notebooks.</li>
<li>Formatação e reinstalação do sistema, com configuração dos programas que você usa.</li>
<li>Backup dos seus arquivos antes de formatar ou trocar de equipamento.</li>
<li>Configuração de computador novo, impressora e acessórios.</li>
<li>Avaliação para decidir entre consertar ou trocar o equipamento.</li>
</ul>
<h2>Sinais de que é hora de trazer</h2>
<ul>
<li>Demora muito para ligar ou para abrir programas.</li>
<li>Desliga sozinho, esquenta ou faz barulho diferente.</li>
<li>Mensagens de erro, janelas estranhas ou suspeita de vírus.</li>
<li>Você precisa passar os arquivos para um computador novo.</li>
</ul>
<h2>Como funciona</h2>
<ol>
<li>Traga o computador ou notebook na loja, na {esc(D.RUA)}, com o carregador.</li>
<li>Avaliamos o equipamento e explicamos o problema.</li>
<li>Você aprova o serviço antes de executarmos.</li>
<li>Avisamos quando estiver pronto para retirada.</li>
</ol>
<p>O prazo depende do diagnóstico e, quando há troca de peça, da disponibilidade dela. Informamos no atendimento.</p>
<h2>Seus arquivos</h2>
<p>Antes de formatar, combinamos com você o que precisa ser salvo: documentos, fotos, e-mails e senhas salvas no navegador. Se tiver arquivos importantes, avise na entrega do equipamento.</p>
<h2>Para empresas</h2>
<p>Se o computador é da sua empresa e o problema se repete, talvez valha um <a href="{c.u("empresas/suporte-de-ti/")}">suporte de TI recorrente</a>.</p>'''
    p = [
        ("Vocês consertam notebook de qualquer marca?", "<p>Atendemos notebooks e computadores de diversas marcas. A Besides não é assistência autorizada de fabricante; para reparos em garantia de fábrica, procure a rede autorizada da marca.</p>"),
        ("Perco meus arquivos se formatar?", "<p>A formatação apaga o disco. Por isso, fazemos o backup do que você precisa antes, conforme combinado na entrega do equipamento.</p>"),
        ("Vale a pena consertar ou é melhor comprar outro?", "<p>Depende da idade do equipamento, do custo do reparo e do uso que você faz. Depois do diagnóstico, explicamos as duas opções para você decidir.</p>"),
        ("Quanto tempo demora?", "<p>Depende do problema e da necessidade de peças. Informamos uma previsão depois da avaliação.</p>"),
    ]
    return pg_servico(c, "assistencia-tecnica/", "Assistência técnica",
        "Conserto de computador e notebook em Criciúma | Besides Informática",
        "Manutenção de computadores e notebooks, formatação, configuração e backup de arquivos na loja da Besides Informática em Criciúma (SC).",
        "Manutenção de computadores e notebooks em Criciúma",
        "Formatação, manutenção, configuração e backup dos seus arquivos, com diagnóstico explicado antes de qualquer serviço.",
        s, p, "Assistência técnica de computadores e notebooks",
        ("Computador com problema?", "Mande uma mensagem dizendo o que está acontecendo ou traga na loja."),
        "Olá, Besides! Vim pelo site e meu computador/notebook está com problema.",
        [("loja/", "Loja e suprimentos"), ("suporte-remoto/", "Suporte remoto"), ("empresas/suporte-de-ti/", "Suporte para empresas")],
        trilha_pai=None, etiqueta="Para você · na loja")

def pg_loja(c):
    s = f'''<h2>Produtos de informática</h2>
<p>Computadores, notebooks e impressoras para casa e para empresas. Trabalhamos com equipamentos testados, de marcas reconhecidas e de procedência, e ajudamos a escolher o modelo certo para o uso.</p>
<h2>Acessórios e suprimentos</h2>
<ul>
<li>Cartuchos e toners.</li>
<li>Mouses, teclados e fontes.</li>
<li>Outros suprimentos de informática.</li>
</ul>
<h2>Equipamentos para empresas</h2>
<p>De racks a servidores, fornecemos os equipamentos para a infraestrutura de TI da empresa, com orientação técnica na escolha e instalação feita pela nossa equipe. Veja <a href="{c.u("empresas/redes-e-servidores/")}">redes, servidores e backup</a>.</p>
<h2 id="impressoes">Impressões e cópias</h2>
<p>Na loja, imprimimos documentos como os do Detran, da Casan e da habitação e fazemos cópias em preto e branco.</p>
<p class="nota">Disponibilidade de produtos e preços: consulte pelo WhatsApp ou na loja. Não publicamos preços no site porque o estoque muda com frequência.</p>
<h2>Onde fica</h2>
<p>{esc(endereco_txt())}. <a href="{D.MAPS_URL}" target="_blank" rel="noopener" data-evento="clique_mapa" data-origem="loja">Como chegar</a>.</p>
<p>Horário: {horario_html()}</p>'''
    p = [
        ("Vocês têm o cartucho da minha impressora?", "<p>Mande o modelo da impressora ou do cartucho pelo WhatsApp e confirmamos a disponibilidade.</p>"),
        ("Posso mandar o documento para imprimir pelo WhatsApp?", f"<p>{pend('confirmar se aceitam arquivos pelo WhatsApp ou e-mail')}</p>"),
    ]
    return pg_servico(c, "loja/", "Loja e impressões",
        "Loja de informática, suprimentos e impressões em Criciúma | Besides",
        "Computadores, notebooks, impressoras, cartuchos e toners, acessórios, equipamentos para empresas e impressão de documentos em Criciúma (SC).",
        "Loja de informática, suprimentos e impressões",
        "Equipamentos, cartuchos, toners e acessórios, e impressão de documentos do Detran, da Casan e da habitação.",
        s, p, "Venda de equipamentos e suprimentos de informática",
        ("Procurando um produto?", "Mande o modelo ou o que você precisa e confirmamos se temos."),
        "Olá, Besides! Vim pelo site e queria saber se vocês têm um produto.",
        [("assistencia-tecnica/", "Assistência técnica"), ("empresas/", "Soluções para empresas")],
        trilha_pai=None, etiqueta="Para você e para empresas")

def pg_empresas(c):
    cards = "".join(card_servico(c, *s, h="h2") for s in SERVICOS_PJ)
    perguntas = [
        ("Quando vale a pena ter suporte de TI recorrente?", "<p>Quando a empresa depende dos computadores para vender, emitir notas ou atender, e uma parada custa caro. Também quando os problemas se repetem e ninguém conhece o histórico dos equipamentos. Um suporte que acompanha o ambiente costuma resolver mais rápido e evitar a repetição.</p>"),
        ("Vocês atendem só empresas grandes?", "<p>Não. Atendemos desde comércios com um caixa até empresas com vários setores.</p>"),
        ("Já sou cliente. Como peço atendimento?", f"<p>Abra um chamado pelo <a href=\"{D.CHAMADOS_URL}\">sistema de chamados</a> ou fale pelo WhatsApp {D.WHATSAPP}. Veja <a href=\"{c.u("suporte-remoto/")}\">suporte remoto e chamados</a>.</p>"),
    ]
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Para empresas", "empresas/")])}
  <span class="etiqueta">Para empresas</span>
  <h1>Soluções de TI para empresas em Criciúma</h1>
  <div class="traco" aria-hidden="true"><span></span></div>
  <p class="cab__lead">Suporte, infraestrutura, segurança, telefonia e sistemas de gestão com um único fornecedor, que conhece a sua empresa e atende em Criciúma desde {D.FUNDACAO}.</p>
  <div class="botoes"><a class="btn btn--primario" href="{wa("Olá, Besides! Vim pelo site e gostaria de um orçamento de TI para minha empresa.")}" target="_blank" rel="noopener" data-evento="clique_orcamento" data-origem="empresas">Pedir orçamento pelo WhatsApp</a>
  <a class="btn btn--secundario" href="{c.u("suporte-remoto/")}">Já sou cliente</a></div>
</div></section>
<section class="secao secao--tinta"><div class="caixa"><div class="grade">{cards}</div></div></section>
<section class="secao"><div class="caixa">
  <div class="secao__topo"><span class="etiqueta">Perguntas frequentes</span><h2>Sobre o atendimento a empresas</h2></div>
  {faq(perguntas)}
</div></section>''' + faixa_contato(c, "Vamos conversar sobre a TI da sua empresa?", "Conte quantos computadores e setores a empresa tem e qual é o problema principal hoje.",
                    "Olá, Besides! Vim pelo site e gostaria de um orçamento de TI para minha empresa.", origem="faixa_empresas")
    return dict(caminho="empresas/", titulo="Soluções de TI para empresas em Criciúma | Besides Informática",
                descricao="Suporte de TI, redes, servidores, backup, firewall, CFTV, telefonia VoIP e consultoria de ERP para empresas em Criciúma (SC).",
                trilha=[("Início", ""), ("Para empresas", "empresas/")], corpo=corpo, tipo_pagina="CollectionPage")

def pg_sobre(c):
    clientes = "".join(f"<li>{esc(n)}</li>" for n in D.CLIENTES)
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Sobre", "sobre/")])}
  <span class="etiqueta">Desde {D.FUNDACAO}</span>
  <h1>Sobre a Besides Informática</h1>
  <div class="traco" aria-hidden="true"><span></span></div>
  <p class="cab__lead">Uma empresa de informática de Criciúma que começou com equipamentos, suprimentos e assistência técnica e hoje cuida também da TI de empresas da região.</p>
</div></section>
<section class="secao"><div class="caixa leitura"><div class="prosa">
<h2>Nossa história</h2>
<p>A Besides Informática foi fundada em {D.FUNDACAO}, em Criciúma (SC), especializada em equipamentos, suprimentos de informática e assistência técnica. Com o tempo, passamos a atender empresas em suporte de TI, redes, servidores, segurança, telefonia e sistemas de gestão.</p>
<p>A loja continua aberta na {esc(D.RUA)}, onde atendemos quem precisa consertar o computador, comprar um equipamento ou imprimir um documento.</p>
<p class="nota">História, marcos e fotos da loja e da equipe: {pend("enviar material")}</p>
<h2>Como trabalhamos</h2>
<ul>
<li>Explicamos o problema e o que será feito antes de executar.</li>
<li>Trabalhamos com equipamentos testados, de marcas reconhecidas e de procedência.</li>
<li>Resolvemos a distância quando dá, e vamos até a empresa quando precisa.</li>
</ul>
<h2>Equipe</h2>
<p>{pend("nomes, funções e qualificações da equipe, se a empresa quiser publicar")}</p>
<h2>Empresas que já contaram com a Besides</h2>
<ul class="clientes">{clientes}</ul>
</div>
<aside class="lateral"><div class="card"><h2>Dados da empresa</h2><ul class="lista-dados">
<li>{ICONES["chamado"]}<span>{esc(D.RAZAO_SOCIAL)}<br>CNPJ {D.CNPJ or pend()}</span></li>
<li>{ICONES["local"]}<span>{esc(endereco_txt())}</span></li>
<li>{ICONES["telefone"]}<a href="tel:{D.TELEFONE_E164}">{D.TELEFONE}</a></li>
<li>{ICONES["email"]}<a href="mailto:{D.EMAIL}">{D.EMAIL}</a></li>
</ul></div></aside>
</div></section>''' + faixa_contato(c, "Quer falar com a gente?", "Chame no WhatsApp ou passe na loja.", "Olá, Besides! Vim pelo site.", rotulo="Falar no WhatsApp", origem="faixa_sobre")
    return dict(caminho="sobre/", titulo="Sobre a Besides Informática | Informática em Criciúma desde 2004",
                descricao="Conheça a Besides Informática, empresa de Criciúma (SC) fundada em 2004: suporte de TI para empresas, assistência técnica e loja de informática.",
                trilha=[("Início", ""), ("Sobre", "sobre/")], corpo=corpo, tipo_pagina="AboutPage")

def pg_contato(c):
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Contato", "contato/")])}
  <h1>Contato</h1>
  <div class="traco" aria-hidden="true"><span></span></div>
  <p class="cab__lead">Escolha o caminho certo para o seu pedido. Clientes com suporte usam o sistema de chamados; para orçamento e dúvidas, fale pelo WhatsApp.</p>
</div></section>
<section class="secao"><div class="caixa" style="display:grid;gap:var(--esp-7)">
  <div class="caminhos">
    <div class="card"><span class="etiqueta">Orçamento e dúvidas</span><h2 style="font-size:21px">Quero contratar ou comprar</h2><p>Suporte para empresa, conserto, produtos ou impressões.</p>
      <a class="btn btn--whatsapp" href="{wa("Olá, Besides! Vim pelo site e gostaria de um orçamento.")}" target="_blank" rel="noopener" data-evento="clique_whatsapp" data-origem="contato_orcamento">{ICONES["whatsapp"]}WhatsApp {D.WHATSAPP}</a></div>
    <div class="card"><span class="etiqueta">Já sou cliente</span><h2 style="font-size:21px">Preciso de suporte</h2><p>Abra um chamado com o login da sua empresa. Se for urgente, ligue também.</p>
      <a class="btn btn--primario" href="{D.CHAMADOS_URL}" data-evento="clique_chamado" data-origem="contato">{ICONES["chamado"]}Abrir chamado</a></div>
    <div class="card"><span class="etiqueta">Loja</span><h2 style="font-size:21px">Vou até a loja</h2><p>{esc(endereco_txt())}<br>{horario_html()}</p>
      <a class="btn btn--secundario" href="{D.MAPS_URL}" target="_blank" rel="noopener" data-evento="clique_mapa" data-origem="contato">{ICONES["local"]}Como chegar</a></div>
  </div>
  <div class="leitura">
    <div class="card" style="max-width:640px"><h2 style="font-size:24px">Mande sua mensagem pelo WhatsApp</h2>
      <p>Preencha e toque em enviar: o WhatsApp abre com a mensagem pronta. Nada fica salvo no site.</p>
      <form id="form-whatsapp" class="form" data-numero="{D.WHATSAPP_NUM}">
        <div class="campo"><label for="f-nome">Seu nome</label><input id="f-nome" name="nome" autocomplete="name"></div>
        <div class="campo"><label for="f-empresa">Empresa <small>(opcional)</small></label><input id="f-empresa" name="empresa" autocomplete="organization"></div>
        <div class="campo"><label for="f-assunto">Assunto</label><select id="f-assunto" name="assunto">
          <option>Suporte de TI para empresa</option><option>Redes, servidores ou backup</option><option>Segurança, câmeras ou alarme</option>
          <option>Telefonia VoIP</option><option>ERP ou sistema sob medida</option><option>Conserto de computador ou notebook</option>
          <option>Produtos e suprimentos</option><option>Impressões e cópias</option><option>Outro assunto</option></select></div>
        <div class="campo"><label for="f-mensagem">Mensagem</label><textarea id="f-mensagem" name="mensagem" placeholder="Conte o que está acontecendo"></textarea></div>
        <button class="btn btn--whatsapp" type="submit">{ICONES["whatsapp"]}Abrir no WhatsApp</button>
      </form></div>
    <aside class="lateral"><div class="card"><h2>Todos os contatos</h2><ul class="lista-dados">
      <li>{ICONES["telefone"]}<a href="tel:{D.TELEFONE_E164}" data-evento="clique_telefone" data-origem="contato">{D.TELEFONE}</a></li>
      <li>{ICONES["whatsapp"]}<a href="{wa("Olá, Besides! Vim pelo site.")}" target="_blank" rel="noopener" data-evento="clique_whatsapp" data-origem="contato_lista">{D.WHATSAPP}</a></li>
      <li>{ICONES["email"]}<a href="mailto:{D.EMAIL}" data-evento="clique_email" data-origem="contato">{D.EMAIL}</a></li>
      <li>{ICONES["local"]}<span>{esc(endereco_txt())}</span></li>
      <li>{ICONES["relogio"]}<span>{horario_html()}</span></li>
    </ul></div></aside>
  </div>
</div></section>'''
    return dict(caminho="contato/", titulo="Contato | Besides Informática em Criciúma",
                descricao=f"Fale com a Besides Informática: WhatsApp {D.WHATSAPP}, telefone {D.TELEFONE}, e-mail e endereço da loja em Criciúma (SC).",
                trilha=[("Início", ""), ("Contato", "contato/")], corpo=corpo, tipo_pagina="ContactPage")

def pg_suporte_remoto(c):
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Suporte remoto e chamados", "suporte-remoto/")])}
  <span class="etiqueta">Área do cliente</span>
  <h1>Suporte remoto e chamados</h1>
  <div class="traco" aria-hidden="true"><span></span></div>
  <p class="cab__lead">Para clientes da Besides: abra um chamado ou prepare o computador para o técnico acessar a distância.</p>
  <div class="botoes"><a class="btn btn--primario" href="{D.CHAMADOS_URL}" data-evento="clique_chamado" data-origem="suporte_remoto">Abrir chamado</a>
  <a class="btn btn--secundario" href="{D.ANYDESK_URL}" target="_blank" rel="noopener" data-evento="clique_anydesk" data-origem="suporte_remoto">Baixar o AnyDesk no site oficial</a></div>
</div></section>
<section class="secao"><div class="caixa leitura"><div class="prosa">
<h2>Abrir um chamado</h2>
<p>Entre no <a href="{D.CHAMADOS_URL}">sistema de chamados</a> com o login da sua empresa e descreva o problema: o que acontece, em qual computador e desde quando. Se não tiver login, peça pelo WhatsApp {D.WHATSAPP}.</p>
<h2>Acesso remoto pelo AnyDesk</h2>
<ol>
<li>Baixe o AnyDesk no <a href="{D.ANYDESK_URL}" target="_blank" rel="noopener">site oficial do AnyDesk</a>.</li>
<li>Abra o programa. Não é preciso instalar para um atendimento pontual.</li>
<li>Quando o técnico da Besides pedir, informe o número que aparece em "Seu endereço".</li>
<li>Aceite a conexão. Você acompanha tudo na tela e pode encerrar quando quiser.</li>
</ol>
<h2>Cuidado com golpes</h2>
<p><strong>A Besides só pede acesso remoto quando você abriu um chamado ou falou com a gente.</strong> Nunca passe o código do AnyDesk ou de outro programa de acesso remoto para alguém que ligou ou mandou mensagem oferecendo ajuda sem você ter pedido. Na dúvida, desligue e ligue para {D.TELEFONE}.</p>
</div></div></section>'''
    return dict(caminho="suporte-remoto/", titulo="Suporte remoto e chamados | Besides Informática",
                descricao="Área do cliente Besides: abra um chamado de suporte e veja como permitir o acesso remoto pelo AnyDesk com segurança.",
                trilha=[("Início", ""), ("Suporte remoto e chamados", "suporte-remoto/")], corpo=corpo, indexar=False)

def pg_privacidade(c):
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Privacidade", "privacidade/")])}
  <h1>Privacidade</h1>
  <p class="cab__lead">Como este site trata informações pessoais.</p>
</div></section>
<section class="secao"><div class="caixa"><div class="prosa">
<h2>O que coletamos</h2>
<p>Este site não tem cadastro e não grava as mensagens digitadas no formulário de contato: ele apenas monta o texto e abre o WhatsApp, onde você decide se envia. As conversas pelo WhatsApp, telefone e e-mail são usadas para responder ao seu pedido.</p>
<h2>Serviços de terceiros</h2>
<p>As fontes do site são carregadas do Google Fonts, e os botões de WhatsApp levam ao serviço da Meta. Esses serviços têm políticas de privacidade próprias. {pend("se instalar Google Analytics ou outra ferramenta de medição, descrever aqui e avaliar aviso de cookies")}</p>
<h2>Seus direitos</h2>
<p>Você pode pedir informações, correção ou exclusão dos seus dados pelo e-mail <a href="mailto:{D.EMAIL}">{D.EMAIL}</a>, conforme a Lei Geral de Proteção de Dados (Lei 13.709/2018).</p>
<p class="nota">Revisar este texto com o responsável jurídico ou contábil da empresa antes de publicar.</p>
</div></div></section>'''
    return dict(caminho="privacidade/", titulo="Privacidade | Besides Informática",
                descricao="Como o site da Besides Informática trata informações pessoais e como exercer seus direitos pela LGPD.",
                trilha=[("Início", ""), ("Privacidade", "privacidade/")], corpo=corpo)

# ------------------------------------------------------------------ conteúdos
ARTIGOS = []

def pg_artigo(c, caminho, titulo_seo, descricao, h1, lead, etiqueta, corpo_html, relacionados):
    rel = "".join(f'<li><a href="{c.u(p)}">{esc(n)}</a></li>' for p, n in relacionados)
    autor = "Equipe técnica da Besides Informática"
    data = D.DATA_PUBLICACAO
    data_br = "/".join(reversed(data.split("-")))
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Conteúdos", "conteudos/"), (h1, caminho)])}
  <span class="etiqueta">{esc(etiqueta)}</span>
  <h1>{esc(h1)}</h1>
  <p class="cab__lead">{lead}</p>
  <p class="meta-artigo"><span>Por {autor}</span><span>Publicado em <time datetime="{data}">{data_br}</time></span><span>Revisado em <time datetime="{data}">{data_br}</time></span></p>
</div></section>
<section class="secao"><div class="caixa leitura"><article class="prosa">{corpo_html}</article>
<aside class="lateral"><div class="card"><h2>Precisa de ajuda com isso?</h2><p>A Besides monta e acompanha a rotina de backup de empresas em Criciúma.</p>
<a class="btn btn--primario" href="{wa("Olá, Besides! Li o conteúdo sobre backup no site e quero ajuda.")}" target="_blank" rel="noopener" data-evento="clique_orcamento" data-origem="artigo">Falar com um técnico</a></div>
<div class="card"><h2>Leia também</h2><ul class="lista-links">{rel}</ul></div></aside>
</div></section>'''
    art = {"@type": "Article", "@id": D.SITE + "/" + caminho + "#artigo", "headline": h1, "description": descricao,
           "datePublished": data, "dateModified": data, "inLanguage": "pt-BR",
           "author": {"@type": "Organization", "name": autor, "url": D.SITE + "/sobre/"},
           "publisher": {"@id": D.SITE + "/#empresa"}, "mainEntityOfPage": {"@id": D.SITE + "/" + caminho + "#pagina"},
           "image": D.SITE + "/assets/img/og-besides.png"}
    return dict(caminho=caminho, titulo=titulo_seo, descricao=descricao, og_tipo="article",
                trilha=[("Início", ""), ("Conteúdos", "conteudos/"), (h1, caminho)], corpo=corpo, schema=[art],
                artigo_meta=f'<meta property="article:published_time" content="{data}">\n<meta property="article:modified_time" content="{data}">')

def pg_backup(c):
    h = f'''<p><strong>Resposta curta:</strong> mantenha pelo menos três cópias dos dados importantes, em dois tipos de armazenamento diferentes, com uma delas fora da empresa. Automatize as cópias e teste a restauração de tempos em tempos. Backup que nunca foi restaurado é uma suposição.</p>
<h2>1. Liste o que não pode ser perdido</h2>
<p>Comece pelos dados, não pelos equipamentos. Em uma pequena empresa, normalmente são:</p>
<ul>
<li>Banco de dados do sistema de gestão (ERP) e do sistema de vendas.</li>
<li>Arquivos fiscais e contábeis (XML de notas, por exemplo).</li>
<li>Pastas compartilhadas da equipe: contratos, planilhas, projetos.</li>
<li>E-mails e contatos, quando ficam só no computador.</li>
</ul>
<p>Pergunte a cada setor: "se este computador sumisse hoje, o que faria falta amanhã?".</p>
<h2>2. Aplique a regra 3-2-1</h2>
<p>É uma regra prática muito usada por profissionais de TI:</p>
<div class="tabela"><table><thead><tr><th>Número</th><th>O que significa</th><th>Exemplo</th></tr></thead><tbody>
<tr><td>3 cópias</td><td>O dado original e mais duas cópias</td><td>Servidor + disco externo + nuvem</td></tr>
<tr><td>2 tipos de mídia</td><td>As cópias não ficam no mesmo tipo de armazenamento</td><td>Disco local e serviço em nuvem</td></tr>
<tr><td>1 fora da empresa</td><td>Uma cópia sobrevive a incêndio, furto ou vírus na rede</td><td>Nuvem ou disco guardado em outro endereço</td></tr>
</tbody></table></div>
<h2>3. Defina a frequência pelo prejuízo</h2>
<p>A pergunta é: quanto trabalho a empresa aceita refazer? Se a resposta é "no máximo um dia", o backup precisa ser pelo menos diário. Sistemas com muito movimento podem precisar de cópias várias vezes ao dia.</p>
<h2>4. Mantenha versões antigas</h2>
<p>Se um arquivo é corrompido ou criptografado por um vírus e o backup copia a versão estragada por cima da boa, a cópia não serve. Guarde versões de dias e semanas anteriores para poder voltar a um ponto em que tudo estava bem.</p>
<h2>5. Automatize e monitore</h2>
<p>Backup que depende de alguém lembrar de plugar o disco falha nas semanas mais corridas. Use rotinas automáticas e confira os avisos de falha. Alguém precisa ser responsável por olhar esses avisos.</p>
<h2>6. Teste a restauração</h2>
<p>Periodicamente, restaure um arquivo ou uma pasta a partir do backup e confira se abre. Para o banco de dados do sistema de gestão, peça ao fornecedor do sistema orientação sobre como validar a cópia.</p>
<h2>Erros comuns</h2>
<ul>
<li>Disco externo sempre conectado ao computador: um vírus que atinge o computador atinge também a cópia.</li>
<li>Considerar a pasta sincronizada na nuvem como backup. Veja <a href="{c.u("conteudos/backup-ou-sincronizacao/")}">por que não é a mesma coisa</a>.</li>
<li>Nunca ter testado a restauração.</li>
</ul>'''
    return pg_artigo(c, "conteudos/backup-para-pequenas-empresas/",
        "Como organizar o backup de uma pequena empresa | Besides Informática",
        "Guia prático de backup para pequenas empresas: o que copiar, a regra 3-2-1, frequência, versões e como testar a restauração.",
        "Como organizar o backup de uma pequena empresa", "O que copiar, para onde, com que frequência e como saber se a cópia funciona.",
        "Guia · Backup", h,
        [("conteudos/backup-ou-sincronizacao/", "Backup e sincronização não são a mesma coisa"), ("empresas/redes-e-servidores/", "Redes, servidores e backup")])

def pg_sync(c):
    h = f'''<p><strong>Resposta curta:</strong> a sincronização mantém a mesma versão de um arquivo em vários lugares. Se o arquivo é apagado ou estragado, a sincronização leva o problema para todos eles. O backup guarda cópias separadas e versões antigas, para que você possa voltar atrás.</p>
<h2>Como a sincronização funciona</h2>
<p>Serviços de pasta na nuvem mantêm a pasta igual no computador, no celular e na nuvem. É ótimo para trabalhar de qualquer lugar e para compartilhar arquivos com a equipe. Mas, por definição, uma mudança feita em um lugar aparece em todos.</p>
<h2>Onde a sincronização falha como proteção</h2>
<ul>
<li><strong>Exclusão acidental:</strong> alguém apaga uma pasta no computador e ela some também da nuvem e dos outros aparelhos.</li>
<li><strong>Vírus de sequestro de dados (ransomware):</strong> os arquivos criptografados no computador são sincronizados por cima das versões boas.</li>
<li><strong>Arquivo salvo por cima:</strong> uma planilha sobrescrita com dados errados substitui a versão correta em todo lugar.</li>
</ul>
<p>Alguns serviços guardam histórico de versões e lixeira por um período limitado, o que ajuda, mas o prazo e o alcance variam conforme o serviço e o plano. Confira as regras do serviço que a empresa usa.</p>
<h2>O que o backup faz diferente</h2>
<div class="tabela"><table><thead><tr><th></th><th>Sincronização</th><th>Backup</th></tr></thead><tbody>
<tr><td>Objetivo</td><td>Mesmo arquivo em vários lugares</td><td>Recuperar dados perdidos ou estragados</td></tr>
<tr><td>Exclusão</td><td>Replicada em todos os lugares</td><td>A cópia continua guardada</td></tr>
<tr><td>Versões antigas</td><td>Limitadas, conforme o serviço</td><td>Definidas pela rotina de backup</td></tr>
<tr><td>Melhor uso</td><td>Colaboração e acesso remoto</td><td>Proteção e continuidade do negócio</td></tr>
</tbody></table></div>
<h2>O que fazer na prática</h2>
<p>Use a sincronização para trabalhar e tenha, além dela, um backup independente, com versões e com uma cópia fora da empresa. O passo a passo está em <a href="{c.u("conteudos/backup-para-pequenas-empresas/")}">como organizar o backup de uma pequena empresa</a>.</p>'''
    return pg_artigo(c, "conteudos/backup-ou-sincronizacao/",
        "Backup ou sincronização de arquivos: qual a diferença? | Besides",
        "Entenda por que uma pasta sincronizada na nuvem não substitui o backup e como proteger os arquivos da empresa contra exclusão e vírus.",
        "Backup e sincronização não são a mesma coisa", "Por que a pasta na nuvem não protege sozinha contra exclusão acidental e vírus.",
        "Explicação · Arquivos", h,
        [("conteudos/backup-para-pequenas-empresas/", "Como organizar o backup de uma pequena empresa"), ("empresas/seguranca/", "Segurança, firewall e CFTV")])

def pg_conteudos(c):
    corpo = f'''<section class="cab"><div class="caixa">
  {trilha(c, [("Início", ""), ("Conteúdos", "conteudos/")])}
  <h1>Conteúdos sobre TI para empresas</h1>
  <div class="traco" aria-hidden="true"><span></span></div>
  <p class="cab__lead">Guias diretos, escritos pela equipe da Besides, para ajudar a decidir sobre backup, redes e equipamentos.</p>
</div></section>
<section class="secao"><div class="caixa"><div class="grade grade--2">
  <a class="card" href="{c.u("conteudos/backup-para-pequenas-empresas/")}"><span class="etiqueta">Guia · Backup</span><h2 style="font-size:21px;line-height:28px">Como organizar o backup de uma pequena empresa</h2><p>O que copiar, para onde, com que frequência e como testar se a cópia funciona.</p><span class="card__mais">Ler o guia →</span></a>
  <a class="card" href="{c.u("conteudos/backup-ou-sincronizacao/")}"><span class="etiqueta">Explicação · Arquivos</span><h2 style="font-size:21px;line-height:28px">Backup e sincronização não são a mesma coisa</h2><p>Por que uma pasta sincronizada na nuvem não protege contra exclusão acidental ou vírus.</p><span class="card__mais">Ler a explicação →</span></a>
</div></div></section>'''
    return dict(caminho="conteudos/", titulo="Conteúdos sobre TI para empresas | Besides Informática",
                descricao="Guias da Besides Informática sobre backup, redes, segurança e equipamentos para pequenas empresas.",
                trilha=[("Início", ""), ("Conteúdos", "conteudos/")], corpo=corpo, tipo_pagina="CollectionPage")

def pg_404(c):
    corpo = f'''<section class="secao"><div class="caixa erro404">
<span class="etiqueta">Erro 404</span>
<h1>Página não encontrada</h1>
<p style="font-size:18px;line-height:29px;color:var(--tinta-suave)">O endereço pode ter mudado com o site novo. Tente um destes caminhos:</p>
<div class="botoes"><a class="btn btn--primario" href="{c.u("")}">Ir para o início</a><a class="btn btn--secundario" href="{c.u("empresas/")}">Soluções para empresas</a><a class="btn btn--secundario" href="{c.u("contato/")}">Contato</a></div>
</div></section>'''
    return dict(caminho="404.html", titulo="Página não encontrada | Besides Informática",
                descricao="A página que você procurou não existe ou mudou de endereço.", trilha=[], corpo=corpo, indexar=False)

PAGINAS = [pg_inicio, pg_empresas, pg_suporte, pg_redes, pg_seguranca, pg_voip, pg_erp, pg_assistencia,
           pg_loja, pg_sobre, pg_contato, pg_suporte_remoto, pg_conteudos, pg_backup, pg_sync, pg_privacidade, pg_404]
