/* global React, ReactDOM, Icon, PageShell, PageHeader, FinalCta */

/* ──────────────────────────────────────────────
   Universal service detail page.
   The hosting HTML sets window.SVC_KEY before this script loads.
   ────────────────────────────────────────────── */
const SVC = {
  resposta: {
    eyebrow: "Serviço · SVC‑02",
    title: <>Resposta a <em>Incidentes</em>.</>,
    active: "servicos",
    lead: "Quando o incidente acontece, cada minuto custa. Operamos como o seu time de plantão — entramos no caso em até 15 minutos do gatilho, contemos o avanço e devolvemos o controle.",
    cta: "Acionar plantão",
    ctaHref: "https://wa.me/5561999949060?text=PLANT%C3%83O%20-%20suspeita%20de%20incidente",
    intro: "Atuamos durante todo o ciclo: contenção → erradicação → recuperação → forense → relatório executivo. Em 100% dos casos com cadeia de custódia formal, pronta para auditoria, regulador ou tribunal.",
    specs: [
      { i: <Icon.Bolt />,    s: "Acionamento em 15 minutos",   d: "Plantão 24/7 com canal direto via WhatsApp, telefone ou portal seguro." },
      { i: <Icon.Shield />,  s: "Contenção estruturada",       d: "Isolamento de hosts, revogação de credenciais e bloqueio de C2 em paralelo." },
      { i: <Icon.Search />,  s: "Forense com cadeia de custódia", d: "Coleta de imagens, dumps de memória e logs com hash e selo temporal." },
      { i: <Icon.Doc />,     s: "Relatório executivo e técnico", d: "Duas versões — uma para o conselho, outra para a sua equipe técnica." },
      { i: <Icon.Compass />, s: "Lessons learned obrigatório", d: "Reunião de fechamento com lista de melhorias prioritárias e plano de implementação." },
    ],
    steps: [
      { k: "T+0",   t: "Acionamento",          d: "Canal direto com plantão. Briefing inicial em 15 minutos." },
      { k: "T+1h",  t: "Contenção",            d: "Isolamento dos vetores ativos. Atacante perde acesso." },
      { k: "T+24h", t: "Erradicação",          d: "Limpeza completa do ambiente, validada por scans cruzados." },
      { k: "T+72h", t: "Relatório + revisão",  d: "Documento técnico e executivo. Roadmap de hardening." },
    ],
    badges: ["NIST IR", "ISO 27035", "RFC 2350", "Cadeia de custódia"],
    when: [
      "Suspeita de invasão em curso ou recente",
      "Ransomware com pedido de resgate identificado",
      "Vazamento de dados confirmado ou em investigação",
      "Necessidade de perícia técnica para fins jurídicos",
    ],
  },
  pentest: {
    eyebrow: "Serviço · SVC‑03",
    title: <>Pentest & <em>Red Team</em>.</>,
    active: "servicos",
    lead: "Simulamos adversários reais contra a sua superfície de ataque — aplicações, redes internas, engenharia social e cenários físicos. O objetivo é simples: encontrar antes do atacante.",
    cta: "Solicitar escopo",
    ctaHref: "contato.html",
    intro: "Trabalhamos em modos black‑box, gray‑box e white‑box. Cada engajamento termina com um relatório técnico (com prova de conceito) e um relatório executivo (com prioridades de remediação).",
    specs: [
      { i: <Icon.Crosshair />, s: "Pentest de aplicação",       d: "Web, mobile e APIs — metodologia OWASP, com cenário de negócio." },
      { i: <Icon.Globe />,     s: "Pentest de infraestrutura",  d: "Perímetro externo e rede interna, com modelagem de ataque realista." },
      { i: <Icon.User />,      s: "Engenharia social",          d: "Phishing direcionado, vishing e cenários físicos quando contratados." },
      { i: <Icon.Eye />,       s: "Red Team contínuo",          d: "Engajamentos de longa duração com objetivos de negócio — operação stealth." },
      { i: <Icon.Doc />,       s: "Relatório executável",       d: "PoC reprodutível, classificação por risco e plano de remediação." },
    ],
    steps: [
      { k: "S1", t: "Escopo & regras",   d: "Definição de alvo, janelas, fora‑de‑escopo e canal de emergência." },
      { k: "S2", t: "Reconhecimento",    d: "OSINT, mapeamento e enumeração — sem tocar nada ainda." },
      { k: "S3", t: "Exploração",        d: "Tentativas controladas, com gatilho de pausa se houver impacto." },
      { k: "S4", t: "Relatório & retest",d: "Documento final + retest gratuito após correções." },
    ],
    badges: ["OWASP", "PTES", "OSCP", "CREST"],
    when: [
      "Antes de um go‑live crítico",
      "Conformidade com PCI, LGPD ou requisitos contratuais",
      "Validação após mudanças arquiteturais significativas",
      "Resposta a perguntas do conselho ou de auditores",
    ],
  },
  treinamentos: {
    eyebrow: "Serviço · SVC‑04",
    title: <>Treinamentos & <em>Awareness</em>.</>,
    active: "servicos",
    lead: "A camada humana é frequentemente o vetor de maior ROI para um atacante — e o de melhor retorno em investimento defensivo. Capacitamos colaboradores e times técnicos com programas estruturados.",
    cta: "Solicitar trilha",
    ctaHref: "contato.html",
    intro: "Operamos duas frentes: conscientização contínua para todos os colaboradores (com gamificação e métricas), e capacitação técnica avançada para times de TI, SecOps e desenvolvimento.",
    specs: [
      { i: <Icon.Graduate />, s: "Awareness contínuo",     d: "Trilhas mensais, micro‑aulas, simulação de phishing e gamificação." },
      { i: <Icon.Mail2 />,    s: "Phishing simulado",      d: "Campanhas customizadas com métricas individuais e por departamento." },
      { i: <Icon.Cube />,     s: "Capacitação técnica",     d: "Trilhas avançadas para Dev, SecOps e SOC — com laboratório próprio." },
      { i: <Icon.User />,     s: "Workshop executivo",     d: "Sessões com diretoria e conselho — postura institucional e cenário de risco." },
      { i: <Icon.Doc />,      s: "Material em PT‑BR",      d: "Conteúdo produzido em português, com casos brasileiros — não traduzido." },
    ],
    steps: [
      { k: "M1", t: "Diagnóstico",           d: "Avaliação de baseline, mapeamento de perfis e métricas iniciais." },
      { k: "M2", t: "Trilha customizada",    d: "Conteúdo desenhado para o seu setor, com casos brasileiros." },
      { k: "M3", t: "Operação contínua",     d: "Campanhas mensais, simulações de phishing e relatórios mensais." },
      { k: "M4", t: "Indicadores",           d: "Métricas de risco humano por departamento, com tendência." },
    ],
    badges: ["NIST NICE", "Em PT‑BR", "Gamificação", "Métricas reais"],
    when: [
      "Programa de awareness inexistente ou desatualizado",
      "Exigência de treinamento periódico (LGPD, PCI, ISO)",
      "Time técnico interno precisando de qualificação avançada",
      "Conselho ou diretoria solicitando workshop específico",
    ],
  },
  consultoria: {
    eyebrow: "Serviço · SVC‑05",
    title: <>Consultoria <em>estratégica</em>.</>,
    active: "servicos",
    lead: "Para quem precisa de mais que ferramenta — precisa de método. Trabalhamos lado a lado com C‑levels e conselhos para traduzir risco técnico em decisão de negócio.",
    cta: "Conversar com a direção",
    ctaHref: "contato.html",
    intro: "Atuamos como CISO‑on‑Demand, assessor de comitê de segurança ou consultor especialista pontual — dependendo do estágio e necessidade da organização.",
    specs: [
      { i: <Icon.Compass />,  s: "Avaliação de maturidade",      d: "Diagnóstico contra frameworks NIST CSF, CIS v8 e ISO 27001." },
      { i: <Icon.Doc />,      s: "Roadmap de segurança",         d: "Plano plurianual com orçamento, marcos e indicadores defensáveis." },
      { i: <Icon.User />,     s: "CISO‑on‑Demand",               d: "Liderança técnica fracionada — para empresas em transição ou crescimento." },
      { i: <Icon.Shield2 />,  s: "Suporte a comitê e conselho",  d: "Materiais executivos, briefings periódicos e participação em comitês." },
      { i: <Icon.Cloud />,    s: "Adequação LGPD/ISO/PCI",        d: "Trilhas para certificação e conformidade, com revisão contínua." },
    ],
    steps: [
      { k: "F1", t: "Assessment",         d: "Entrevistas, análise documental e mapeamento do ambiente." },
      { k: "F2", t: "Diagnóstico",        d: "Relatório de maturidade com gaps priorizados por risco/esforço." },
      { k: "F3", t: "Roadmap",            d: "Plano de 12 a 36 meses, com orçamento e marcos defensáveis." },
      { k: "F4", t: "Acompanhamento",     d: "Encontros mensais, revisão trimestral e relato executivo." },
    ],
    badges: ["NIST CSF", "ISO 27001", "CIS v8", "LGPD"],
    when: [
      "Necessidade de CISO sem orçamento para um full‑time",
      "Roadmap de segurança para os próximos 12–36 meses",
      "Conselho exigindo postura formal de cibersegurança",
      "Trilha para certificações ou conformidade regulatória",
    ],
  },
};

function ServicePage() {
  const key = window.SVC_KEY || "resposta";
  const cfg = SVC[key] || SVC.resposta;
  return (
    <PageShell active={cfg.active}>
      <PageHeader eyebrow={cfg.eyebrow} title={cfg.title} lead={cfg.lead}>
        <a
          className="btn btn-primary"
          href={cfg.ctaHref}
          target={cfg.ctaHref.startsWith("http") ? "_blank" : undefined}
          rel={cfg.ctaHref.startsWith("http") ? "noreferrer" : undefined}
        >
          {cfg.ctaHref.startsWith("https://wa.me") ? <Icon.Wa /> : null}
          {cfg.cta}
          {!cfg.ctaHref.startsWith("https://wa.me") && <Icon.Arrow className="arr" />}
        </a>
        <a className="btn btn-ghost" href="servicos.html">Voltar a serviços</a>
      </PageHeader>

      <section className="section-pad">
        <div className="container two-col">
          <div>
            <span className="eyebrow">O que entregamos</span>
            <h2 className="h-section" style={{ marginTop: 16 }}>
              Escopo do<br />
              <span className="muted-em">engajamento.</span>
            </h2>
            <p className="lead" style={{ marginTop: 18 }}>{cfg.intro}</p>

            <div className="svc-card-tags" style={{ marginTop: 22, gap: 8 }}>
              {cfg.badges.map((b) => (
                <span key={b} style={{
                  fontFamily: "var(--font-mono)", fontSize: 11, letterSpacing: ".12em",
                  padding: "5px 10px", borderRadius: 999, border: "1px solid var(--line)",
                  color: "var(--fg-2)"
                }}>{b}</span>
              ))}
            </div>
          </div>

          <ul className="spec-list">
            {cfg.specs.map((sp) => (
              <li key={sp.s}>
                <span className="si-icon">{sp.i}</span>
                <span className="si-body">
                  <strong>{sp.s}</strong>
                  <span>{sp.d}</span>
                </span>
              </li>
            ))}
          </ul>
        </div>
      </section>

      <section className="section-pad" style={{ background: "var(--bg-1)", borderBlock: "1px solid var(--line)" }}>
        <div className="container">
          <header className="section-head">
            <span className="eyebrow">Cronograma típico</span>
            <h2 className="h-section">Do início ao relatório.</h2>
          </header>
          <ul className="steps-list">
            {cfg.steps.map((s) => (
              <li key={s.k}>
                <span className="step-k">{s.k}</span>
                <h3>{s.t}</h3>
                <p>{s.d}</p>
              </li>
            ))}
          </ul>
        </div>
      </section>

      <section className="section-pad">
        <div className="container two-col">
          <div>
            <span className="eyebrow">Quando faz sentido</span>
            <h2 className="h-section" style={{ marginTop: 16 }}>
              Cenários típicos<br />
              <span className="muted-em">de contratação.</span>
            </h2>
          </div>
          <ul className="spec-list">
            {cfg.when.map((w) => (
              <li key={w}>
                <span className="si-icon"><Icon.Check /></span>
                <span className="si-body"><strong style={{ fontWeight: 500 }}>{w}</strong></span>
              </li>
            ))}
          </ul>
        </div>
      </section>

      <FinalCta
        title="Vamos conversar sobre o seu caso?"
        body="Sem proposta automática. A primeira conversa é com um especialista — para entender contexto e prioridades."
        ctaText={cfg.cta}
        ctaHref={cfg.ctaHref.startsWith("http") ? "contato.html" : cfg.ctaHref}
      />
    </PageShell>
  );
}

ReactDOM.createRoot(document.getElementById("root")).render(<ServicePage />);
