Contratação institucional

Como nos contratar

Solicite ao Cebraspe uma proposta para concursos, seleções, avaliações, certificações e projetos educacionais conduzidos com segurança técnica e jurídica.

Como funciona

Da necessidade da sua instituição à proposta.

Envie as informações iniciais para que o Cebraspe compreenda o objeto, estime o escopo e indique os próximos passos.

Um primeiro contato preparado para compras públicas.

Dados da instituição, escopo, prazos e documentos ajudam a orientar a análise da demanda.

01 / Instituição

Dados do órgão

Identifique a instituição, o responsável e os canais de contato.

02 / Escopo

Escopo inicial

Informe o tipo de projeto, etapa atual, prazo e necessidades principais.

03 / Subsídios

Documentos de apoio

Anexe TR, Projeto Básico, edital anterior ou especificações disponíveis.

04 / Encaminhamento

Análise da solicitação

O Cebraspe avalia a demanda e orienta o caminho de contratação.

Segurança jurídica

Contratação com fundamento legal.

Informações essenciais para compras, áreas técnicas e procuradorias avaliarem a contratação do Cebraspe.

Lei 14.133/21
Art. 75, inciso XV

Hipótese de dispensa para contratação de instituição brasileira dedicada a ensino, pesquisa, extensão e desenvolvimento institucional.

Lei 13.303/2016
Art. 29, inciso VII

Previsão aplicável a empresas públicas e sociedades de economia mista, nas condições legais indicadas.

Natureza institucional
Sem fins lucrativos

Finalidade estatutária vinculada a ensino, pesquisa, avaliação, desenvolvimento institucional, científico e tecnológico.

Reputação técnica
Capacidade comprovada

Atestados, histórico operacional e reputação ético-profissional sustentam a análise da contratação.

Consulta jurídica

Consulte os dispositivos legais e o enquadramento institucional que podem fundamentar a contratação.

Art. 75. É dispensável a licitação:
(…)
XV – para contratação de instituição brasileira que tenha por finalidade estatutária apoiar, captar e executar atividades de ensino, pesquisa, extensão, desenvolvimento institucional, científico e tecnológico e estímulo à inovação, inclusive para gerir administrativa e financeiramente essas atividades, ou para contratação de instituição dedicada à recuperação social da pessoa presa, desde que o contratado tenha inquestionável reputação ética e profissional e não tenha fins lucrativos.

Art. 29. É dispensável a realização de licitação por empresas públicas e sociedades de economia mista:
(…)
VII – na contratação de instituição brasileira incumbida regimental ou estatutariamente da pesquisa, do ensino ou do desenvolvimento institucional ou de instituição dedicada à recuperação social do preso, desde que a contratada detenha inquestionável reputação ético-profissional e não tenha fins lucrativos.

O Cebraspe, por suas finalidades e objetivos estatutários, por ser associação sem fins lucrativos e pela reputação ético-profissional emanada de notório reconhecimento público e de conjunto probatório expressivo de atestados de capacidade técnica, atende à condição expressa pelo inciso XV do art. 75 da Lei nº 14.133/21 e pelo inciso VII do art. 29 da Lei nº 13.303/2016, o que constitui razão independente para o reconhecimento da dispensa de licitação.

Soluções contratáveis

O que pode ser contratado.

O Cebraspe atua em projetos que exigem planejamento técnico, metodologia de avaliação, logística segura e operação em escala.

Serviços para necessidades de seleção e avaliação.

Concursos, processos seletivos, avaliações, certificações, vestibulares, pesquisas e eventos institucionais.

Seleção

Concursos públicos

Planejamento, inscrição, provas, aplicação, correção, resultados e suporte ao órgão.

Avaliação

Avaliações educacionais

Avaliações para redes de ensino, políticas públicas e diagnósticos educacionais.

Certificação

Certificações profissionais

Validação de competências e proficiência com critérios técnicos auditáveis.

Eventos

Seleções e eventos

Vestibulares, seleções acadêmicas, provas específicas, pesquisas e eventos.

Por que contratar

Capacidade técnica para projetos de alta responsabilidade.

Estrutura técnica para apoiar órgãos públicos em processos sensíveis, auditáveis e de grande alcance.

Experiência aplicada a cada etapa do projeto.

Da concepção do edital à divulgação de resultados, a atuação é planejada para reduzir riscos operacionais.

Planejamento

Desenho do processo

Etapas, cronograma, regras de participação, competências e critérios de avaliação.

Editais
TR
Escopo
Operação

Aplicação em escala

Locais de prova, equipes, segurança, atendimento e execução simultânea.

Provas
Locais
Campo
Tecnologia

Inscrição e resultados

Inscrição, acompanhamento, recursos, processamento e divulgação de resultados.

Portal
Dados
Recursos
Pesquisa

Metodologia avaliativa

Instrumentos de avaliação, análise estatística, estudos técnicos e relatórios.

Psicometria
Relatórios
Por que contratar

Capacidade técnica para projetos de alta responsabilidade.

Estrutura técnica para apoiar órgãos públicos em processos sensíveis, auditáveis e de grande alcance.

Experiência aplicada a cada etapa do projeto.

Da concepção do edital à divulgação de resultados, a atuação é planejada para reduzir riscos operacionais.

Planejamento

Desenho do processo

Etapas, cronograma, regras de participação, competências e critérios de avaliação.

Editais
TR
Escopo
Operação

Aplicação em escala

Locais de prova, equipes, segurança, atendimento e execução simultânea.

Provas
Locais
Campo
Tecnologia

Inscrição e resultados

Inscrição, acompanhamento, recursos, processamento e divulgação de resultados.

Portal
Dados
Recursos
Pesquisa

Metodologia avaliativa

Instrumentos de avaliação, análise estatística, estudos técnicos e relatórios.

Psicometria
Relatórios
Documentação institucional

Informações para instrução do processo.

Documentos e referências que podem apoiar a fase de instrução, análise jurídica e contratação.

Subsídios para compras e áreas técnicas.

Regularidade fiscal, dados cadastrais e documentos institucionais podem ser reunidos para apoiar o processo.

Federal

Regularidade fiscal federal

Certidão conjunta de débitos relativos a tributos federais e dívida ativa da União.

FGTS

Regularidade do FGTS

Comprovante de regularidade perante o Fundo de Garantia do Tempo de Serviço.

Trabalhista

Débitos trabalhistas

Certidão negativa ou positiva com efeitos de negativa de débitos trabalhistas.

Distrital

Regularidade local

Certidões aplicáveis ao Distrito Federal e demais comprovantes cadastrais necessários.

Solicitação de proposta

Apresente a necessidade da sua instituição.

Envie as informações iniciais para que o Cebraspe avalie a demanda e oriente os próximos encaminhamentos.

E-mail institucional
Telefone institucional
Endereço

SAAN, Quadra 01, Lotes 1115 a 1145, Brasília-DF

1. Identifique a instituição

Informe órgão, responsável, contato e localização.

2. Descreva o projeto

Indique tipo de demanda, etapa atual, prazo e escopo.

3. Envie subsídios

TR, Projeto Básico ou edital anterior ajudam a análise.

Dados institucionais

Identificação

Localização do órgão

Preenchimento por CEP

Dados da demanda

Escopo inicial

Documentos de apoio

TR, Projeto Básico ou edital anterior

Campos marcados com * são obrigatórios. Use este canal para demandas institucionais de contratação.

Dúvidas frequentes

Antes de solicitar uma proposta.

Informações úteis para preparar o primeiro contato institucional com o Cebraspe.

Representantes de órgãos públicos ou instituições interessadas em contratar o Cebraspe para concursos, seleções, avaliações, certificações ou projetos correlatos.

Termo de Referência, Projeto Básico, edital anterior, estimativa de público, cronograma desejado e especificações técnicas disponíveis.

Não obrigatoriamente. Caso o TR ainda não exista, descreva a necessidade e informe que precisa de apoio para qualificar o escopo.

Não automaticamente. As informações subsidiam a análise inicial do Cebraspe e orientam os próximos encaminhamentos institucionais.

Não. Este canal é exclusivo para contratação institucional. Candidatos devem acessar a área de inscrições, o SAC ou a página do concurso correspondente.

if(document.querySelector(".xpbox-shared-header")){ // Site-wide shared native shell; published links never target draft page URLs. (() => { const init=()=>{ const header=document.querySelector('.xpbox-shared-header'); if(!header)return; const main=document.querySelector('#conteudo')||document.querySelector('main')||document.querySelector('#content'); if(main){if(!main.id)main.id='xpbox-main-content';header.querySelectorAll('.skip-link a,a.skip-link').forEach(link=>link.setAttribute('href','#'+main.id));} const base='https://cebraspe.xpbox.com.br/'; const normalize=path=>path.replace(//+$/,'')||'/'; const draftHome=document.body.classList.contains('page-id-26754'); const draftHiring=document.body.classList.contains('page-id-26763'); const currentPath=draftHome?'/':draftHiring?'/como-contratar':normalize(window.location.pathname); document.querySelectorAll('.xpbox-shell a[href]').forEach(link=>{ const url=new URL(link.getAttribute('href'),window.location.href); if(url.origin!==new URL(base).origin)return; if(normalize(url.pathname)==='/pagina-inicial-xpbox')url.pathname='/'; if(['/contrate-o-cebraspe-xpbox','/contrate-o-cebraspe'].includes(normalize(url.pathname)))url.pathname='/como-contratar/'; if(link.getAttribute('href')==='#solicitar-proposta')url.pathname='/como-contratar/'; link.setAttribute('href',url.href); }); header.querySelectorAll('#primary-menu a.nav-link').forEach(link=>{ const url=new URL(link.href,base); link.removeAttribute('aria-current'); if(url.origin===new URL(base).origin&&normalize(url.pathname)===currentPath)link.setAttribute('aria-current','page'); }); header.querySelectorAll('.language-nav a[lang="pt-BR"],.header-language-nav a[lang="pt-BR"]').forEach(link=>{ link.href=draftHome||draftHiring?window.location.href:base+window.location.pathname.replace(/^//,''); link.setAttribute('aria-current','page'); }); header.querySelectorAll('.utility-accessibility,.header-accessibility').forEach(widget=>{ const link=widget.matches('a')?widget:widget.querySelector('a'); if(link)link.setAttribute('href',draftHiring?'#acessibilidade-da-pagina':base+'avaliacoes/acessibilidade/'); }); const location=header.closest('.elementor-location-header'),utility=header.querySelector('.utility-bar'); if(location&&utility&&!location.dataset.xpboxUtilityMeasured){ location.dataset.xpboxUtilityMeasured='true'; const measure=()=>location.style.setProperty('--xpbox-utility-height',utility.offsetHeight+'px'); measure();if(window.ResizeObserver)new ResizeObserver(measure).observe(utility);else window.addEventListener('resize',measure,{passive:true}); } }; if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); })(); /* Behavior only. Content is rendered by native Elementor widgets. */ (() => { const init = () => { const page=document.querySelector('.xpbox-page'); document.querySelectorAll(':is(.xpbox-page,.xpbox-shell) :is(.menu-toggle,.nav-disclosure,[data-text-scale],[data-contrast-toggle],.carousel-button,[data-submit-button])').forEach(widget=>{ const button=widget.querySelector('.elementor-button'); if(!button||button.dataset.xpboxMirrored)return; button.dataset.xpboxMirrored='true'; button.addEventListener('click',e=>e.preventDefault()); button.setAttribute('role','button'); button.addEventListener('keydown',e=>{if(e.key===' '){e.preventDefault();button.click();}}); const mirror=()=>['aria-expanded','aria-pressed','aria-label','aria-disabled'].forEach(name=>{ if(widget.hasAttribute(name))button.setAttribute(name,widget.getAttribute(name)); }); mirror();new MutationObserver(mirror).observe(widget,{attributes:true,attributeFilter:['aria-expanded','aria-pressed','aria-label','aria-disabled']}); }); if(!page||page.dataset.xpboxReady)return; page.dataset.xpboxReady='true'; const form=page.querySelector('.xpbox-request-form'); if(!form)return; const profile=form.querySelector('.xpbox-profile-form form'); const fields=form.querySelector('.institution-fields'); const status=form.querySelector('#route-status'); const response=form.querySelector('#response-panel'); const errorSummary=form.querySelector('#error-summary'); const errorList=errorSummary.querySelector('.xpbox-tag-ul'); const live=form.querySelector('[data-form-live]'); const submit=form.querySelector('[data-submit-button]'); const submitAnchor=submit.querySelector('a'); const submitLabel=submit.querySelector('[data-submit-label]'); fields.hidden=true; form.querySelectorAll('.xpbox-field-form').forEach(widget=>{ const input=widget.querySelector('input:not([type=hidden]),select,textarea'); if(!input)return; const label=widget.parentElement.querySelector('.xpbox-tag-label'); if(label){label.id='xpbox-label-'+input.id;input.setAttribute('aria-labelledby',label.id);} for(const [key,value] of Object.entries(widget.dataset)){ if(!key.startsWith('input'))continue; const attr=key.slice(5).replace(/[A-Z]/g,c=>'-'+c.toLowerCase()).replace(/^-/,''); input.setAttribute(attr,value); } }); const setStatus=(target,text,href,label)=>{ target.replaceChildren(document.createTextNode(text)); if(href){const a=document.createElement('a');a.href=href;a.textContent=label;target.append(a);} target.hidden=false;target.setAttribute('role','status');target.tabIndex=-1;target.focus(); }; // No Elementor AJAX, email or file upload in the demonstration. form.addEventListener('submit',event=>{ event.preventDefault();event.stopImmediatePropagation(); if(event.target!==profile)return; const selected=profile.querySelector('input:checked')?.value; if(!selected){form.querySelector('#profile-error').textContent='Selecione um perfil antes de continuar.';return;} form.querySelector('#profile-error').textContent=''; form.classList.toggle('is-institution',selected==='instituicao'); fields.hidden=selected!=='instituicao'; if(selected==='instituicao'){ status.hidden=true; const heading=form.querySelector('#institution-form-title'); heading?.focus();heading?.scrollIntoView({behavior:'smooth',block:'center'}); }else if(selected==='candidato')setStatus(status,'Atendimento ao candidato. Consulte o ','/fale-conosco/','Fale com o Cebraspe ou a página da sua seleção.'); else if(selected==='aplicador')setStatus(status,'Atendimento ao aplicador. Acesse a área ','/colaborador/','Para o colaborador para orientações sobre atividades de campo.'); },true); let attempts=0,busy=false; const validate=()=>{ errorList.replaceChildren();errorSummary.hidden=true; form.querySelectorAll('.field-error').forEach(error=>error.textContent=''); const inputs=[...fields.querySelectorAll('.elementor-field:not([type=hidden])')]; const invalid=[]; for(const input of inputs){ input.setCustomValidity('');input.removeAttribute('aria-invalid'); if(input.id==='form-field-telefone'&&input.value&&!/^d{10,11}$/.test(input.value.replace(/D/g,'')))input.setCustomValidity('Informe DDD e número, com 10 ou 11 dígitos.'); if(input.id==='form-field-uf'&&input.value&&!/^[a-z]{2}$/i.test(input.value))input.setCustomValidity('Use a sigla da unidade federativa com duas letras.'); if(input.id==='form-field-descricao'&&input.value&&input.value.trim().length{e.preventDefault();input.focus();});item.append(link);errorList.append(item);invalid.push(input); } } if(invalid.length){errorSummary.hidden=false;errorSummary.focus();return false;} return true; }; const simulate=()=>{ if(busy||!validate())return; busy=true;response.hidden=true;form.setAttribute('aria-busy','true'); submitAnchor.setAttribute('aria-disabled','true');submitLabel.textContent='Enviando demonstração...'; live.textContent='Enviando demonstração. Nenhum dado será transmitido.'; attempts++; window.setTimeout(()=>{ const failed=attempts===1; response.classList.toggle('is-error',failed); response.querySelector('.xpbox-response-failure').hidden=!failed; response.querySelector('.xpbox-response-success').hidden=failed; response.querySelectorAll('[data-response-value]').forEach(widget=>{ const target=widget.querySelector('p')||widget.querySelector('.elementor-widget-container'); target.textContent=form.querySelector('#form-field-'+widget.dataset.responseValue)?.value||''; }); const email=form.querySelector('#form-field-email')?.value||''; const note=response.querySelector('[data-email-expectation]'); (note.querySelector('p')||note.querySelector('.elementor-widget-container')).textContent=`Na produção, uma confirmação automática com protocolo, resumo e prazo seria enviada para ${email}. Este protótipo não enviou e-mail.`; response.hidden=false;response.focus();busy=false;form.removeAttribute('aria-busy'); submitAnchor.setAttribute('aria-disabled','false');submitLabel.textContent='Solicitar proposta'; live.textContent=failed?'Falha demonstrativa. As informações foram preservadas e a solicitação pode ser tentada novamente.':'Simulação concluída. Protocolo fictício e resumo disponíveis.'; },800); }; submit.addEventListener('click',event=>{event.preventDefault();simulate();}); form.querySelector('[data-prototype-retry]')?.addEventListener('click',event=>{event.preventDefault();simulate();}); fields.addEventListener('input',event=>{ if(!event.target.matches('input,select,textarea'))return; event.target.setCustomValidity('');event.target.removeAttribute('aria-invalid'); const error=form.querySelector('#'+event.target.id.replace('form-field-','')+'-error');if(error)error.textContent=''; response.hidden=true;live.textContent=''; }); }; if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); })(); (() => { /* XPBOX editor-safe global search 20260916: editor canvas must remain editable. */ const isElementorEditor = document.body.classList.contains('elementor-editor-active') || Boolean(window.elementor?.isEditMode?.()); if (isElementorEditor) { const overlay = document.querySelector('.xpbox-shared-header #global-search'); if (overlay) { overlay.hidden = true; overlay.setAttribute('aria-hidden', 'true'); overlay.style.display = 'none'; } return; } const header = document.querySelector('.xpbox-shared-header .site-header'); const menuToggle = header?.querySelector('.menu-toggle'); const primaryMenu = header?.querySelector('#primary-menu'); if (!header || !menuToggle || !primaryMenu || header.dataset.globalHeaderReady === 'true') return; header.dataset.globalHeaderReady = 'true'; const megaItems = Array.from(primaryMenu.querySelectorAll('.nav-item')).filter((item) => item.querySelector('.submenu-panel')); const desktopMegaCapable = window.matchMedia('(min-width: 1280px) and (hover: hover) and (pointer: fine)'); const searchToggle = header.querySelector('.global-search-toggle'); const searchOverlay = document.querySelector('.xpbox-shared-header #global-search'); const searchClose = searchOverlay?.querySelector('.search-close'); const searchInput = searchOverlay?.querySelector('.elementor-search-form__input'); let closeMegaTimer; let pinnedMegaItem = null; let searchReturnFocus = null; document.querySelectorAll('.xpbox-shared-header [data-language-choice][aria-disabled="true"]').forEach((link) => { link.addEventListener('click', (event) => { event.preventDefault(); visualStatus.textContent = `${link.dataset.languageChoice}: tradução pendente de revisão humana e integração no WordPress.`; }); }); const textScaleButtons = Array.from(document.querySelectorAll('.xpbox-shared-header [data-text-scale]')); const contrastButtons = Array.from(document.querySelectorAll('.xpbox-shared-header [data-contrast-toggle]')); const visualStatus = document.createElement('span'); const allowedScales = [0.9, 1, 1.1]; let visualScale = 1; let highContrast = false; visualStatus.className = 'sr-only'; visualStatus.setAttribute('role', 'status'); visualStatus.setAttribute('aria-live', 'polite'); header.appendChild(visualStatus); try { const storedScale = Number(window.sessionStorage.getItem('cebraspe-text-scale')); if (allowedScales.includes(storedScale)) visualScale = storedScale; highContrast = window.sessionStorage.getItem('cebraspe-high-contrast') === 'true'; } catch { visualScale = 1; highContrast = false; } const syncVisualPreferences = (announcement = '') => { document.body.style.zoom = visualScale === 1 ? '' : String(visualScale); document.documentElement.toggleAttribute('data-high-contrast', highContrast); if (highContrast) document.documentElement.setAttribute('data-high-contrast', 'true'); textScaleButtons.forEach((button) => { const direction = button.dataset.textScale; button.disabled = direction === 'increase' ? visualScale === 1.1 : visualScale === 0.9; }); contrastButtons.forEach((button) => button.setAttribute('aria-pressed', String(highContrast))); if (announcement) visualStatus.textContent = announcement; }; textScaleButtons.forEach((button) => { button.addEventListener('click', () => { const currentIndex = allowedScales.indexOf(visualScale); const offset = button.dataset.textScale === 'increase' ? 1 : -1; visualScale = allowedScales[Math.max(0, Math.min(allowedScales.length - 1, currentIndex + offset))]; try { window.sessionStorage.setItem('cebraspe-text-scale', String(visualScale)); } catch {} syncVisualPreferences(`Tamanho do texto ajustado para ${Math.round(visualScale * 100)}%.`); }); }); contrastButtons.forEach((button) => { button.addEventListener('click', () => { highContrast = !highContrast; try { window.sessionStorage.setItem('cebraspe-high-contrast', String(highContrast)); } catch {} syncVisualPreferences(highContrast ? 'Contraste elevado ativado.' : 'Contraste padrão restaurado.'); }); }); syncVisualPreferences(); const setMenuOpen = (isOpen) => { menuToggle.setAttribute('aria-expanded', String(isOpen)); menuToggle.setAttribute('aria-label', isOpen ? 'Fechar menu' : 'Abrir menu'); header.classList.toggle('is-menu-open', isOpen); }; const setMegaOpen = (item, isOpen) => { item.classList.toggle('is-mega-open', isOpen); const disclosure = item.querySelector('.nav-disclosure'); const sectionName = item.querySelector('.nav-link')?.textContent.trim() || 'seção'; disclosure?.setAttribute('aria-expanded', String(isOpen)); disclosure?.setAttribute('aria-label', `${isOpen ? 'Fechar' : 'Abrir'} submenu ${sectionName}`); }; const closeAllMega = (exceptItem = null) => { window.clearTimeout(closeMegaTimer); megaItems.forEach((item) => { if (item !== exceptItem) setMegaOpen(item, false); }); if (!exceptItem || pinnedMegaItem !== exceptItem) pinnedMegaItem = null; }; const openMega = (item, pin = false) => { window.clearTimeout(closeMegaTimer); closeAllMega(item); setMegaOpen(item, true); if (pin) pinnedMegaItem = item; }; const closeMegaWithDelay = (item) => { window.clearTimeout(closeMegaTimer); closeMegaTimer = window.setTimeout(() => { if (!pinnedMegaItem) setMegaOpen(item, false); }, 260); }; const openSearch = () => { if (!searchOverlay || !searchToggle) return; searchReturnFocus = document.activeElement instanceof HTMLElement ? document.activeElement : searchToggle; closeAllMega(); setMenuOpen(false); searchOverlay.hidden = false; searchToggle.setAttribute('aria-expanded', 'true'); searchToggle.setAttribute('aria-label', 'Fechar busca'); document.body.style.overflow = 'hidden'; window.setTimeout(() => searchInput?.focus(), 0); }; const closeSearch = (returnFocus = false) => { if (!searchOverlay || !searchToggle) return; searchOverlay.hidden = true; searchToggle.setAttribute('aria-expanded', 'false'); searchToggle.setAttribute('aria-label', 'Abrir busca'); document.body.style.overflow = ''; if (returnFocus) searchReturnFocus?.focus(); searchReturnFocus = null; }; menuToggle.addEventListener('click', () => { const isOpen = menuToggle.getAttribute('aria-expanded') === 'true'; setMenuOpen(!isOpen); if (isOpen) { closeAllMega(); } else { window.setTimeout(() => primaryMenu.querySelector('a[href], button')?.focus(), 0); } }); megaItems.forEach((item) => { const trigger = item.querySelector('.nav-disclosure'); if (!trigger) return; trigger.addEventListener('click', () => { const isOpen = item.classList.contains('is-mega-open'); const isPinned = pinnedMegaItem === item; if (isOpen && isPinned) { closeAllMega(); return; } openMega(item, true); }); item.addEventListener('mouseenter', () => { if (desktopMegaCapable.matches && !pinnedMegaItem) openMega(item); }); item.addEventListener('mouseleave', () => { if (desktopMegaCapable.matches && !pinnedMegaItem) closeMegaWithDelay(item); }); }); primaryMenu.addEventListener('click', (event) => { if (event.target instanceof Element && event.target.closest('a') && !event.target.closest('.nav-disclosure')) { setMenuOpen(false); closeAllMega(); } }); document.addEventListener('click', (event) => { if (event.target instanceof Node && !primaryMenu.contains(event.target)) closeAllMega(); }); searchClose?.addEventListener('click', () => closeSearch(true)); searchOverlay?.addEventListener('click', (event) => { if (event.target === searchOverlay) closeSearch(true); if (event.target instanceof Element && event.target.closest('a')) closeSearch(); }); document.addEventListener('keydown', (event) => { if (event.key === 'Tab' && searchOverlay && !searchOverlay.hidden) { const focusable = Array.from(searchOverlay.querySelectorAll('a[href], button:not([disabled]), input:not([disabled])')); const first = focusable[0]; const last = focusable[focusable.length - 1]; if (!first || !last) { event.preventDefault(); return; } if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); } else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); } return; } if (event.key !== 'Escape') return; if (searchOverlay && !searchOverlay.hidden) { closeSearch(true); return; } const menuWasOpen = menuToggle.getAttribute('aria-expanded') === 'true'; const openItem = megaItems.find((item) => item.classList.contains('is-mega-open')); closeAllMega(); setMenuOpen(false); if (menuWasOpen) menuToggle.querySelector('a')?.focus(); else if (openItem) openItem.querySelector('.nav-disclosure a')?.focus(); }); })(); (() => { const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)'); const carousel = document.querySelector('.xpbox-page [data-carousel]'); if (carousel) { const track = carousel.querySelector('[data-carousel-track]'); const pages = Array.from(track.children); const previous = carousel.querySelector('[data-carousel-previous]'); const next = carousel.querySelector('[data-carousel-next]'); const toggle = carousel.querySelector('[data-carousel-toggle]'); const toggleLabel = carousel.querySelector('[data-carousel-toggle-label]') || document.createElement('span'); const controls = carousel.querySelector('.carousel-controls'); const position = carousel.querySelector('[data-carousel-position]'); const announcement = carousel.querySelector('[data-carousel-announcement]'); let current = 0; let timer = null; let explicitlyPaused = reducedMotion.matches; let pointerPaused = false; let focusPaused = false; let touchStartX = null; const desktopCarousel = window.matchMedia('(min-width: 641px)'); const itemsPerView = () => desktopCarousel.matches ? 5 : 1; const totalViews = () => Math.ceil(pages.length / itemsPerView()); const isPaused = () => explicitlyPaused || pointerPaused || focusPaused; const syncTimer = () => { window.clearInterval(timer); timer = null; if (!isPaused()) { timer = window.setInterval(() => showPage(current + 1, false), 9000); } toggle.dataset.state = explicitlyPaused ? 'paused' : 'playing'; toggleLabel.textContent = explicitlyPaused ? 'Reproduzir' : 'Pausar'; toggle.setAttribute('aria-label', explicitlyPaused ? 'Reproduzir carrossel' : 'Pausar carrossel'); }; const showPage = (nextIndex, manual) => { current = (nextIndex + totalViews()) % totalViews(); track.style.transform = `translateX(-${current * 100}%)`; pages.forEach((page, index) => { const firstVisible = current * itemsPerView(); const active = index >= firstVisible && index showPage(current - 1, true)); next.addEventListener('click', () => showPage(current + 1, true)); toggle.addEventListener('click', () => { explicitlyPaused = !explicitlyPaused; syncTimer(); announcement.textContent = explicitlyPaused ? 'Rotação automática pausada.' : 'Rotação automática reproduzindo.'; }); carousel.addEventListener('pointerenter', () => { pointerPaused = true; syncTimer(); }); carousel.addEventListener('pointerleave', () => { pointerPaused = false; syncTimer(); }); carousel.addEventListener('focusin', () => { focusPaused = true; syncTimer(); }); carousel.addEventListener('focusout', (event) => { if (event.relatedTarget instanceof Node && carousel.contains(event.relatedTarget)) return; focusPaused = false; syncTimer(); }); carousel.addEventListener('touchstart', (event) => { touchStartX = event.changedTouches[0]?.clientX ?? null; }, { passive: true }); carousel.addEventListener('touchend', (event) => { if (touchStartX === null) return; const distance = (event.changedTouches[0]?.clientX ?? touchStartX) - touchStartX; if (Math.abs(distance) > 48) showPage(current + (distance { if (reducedMotion.matches) explicitlyPaused = true; syncTimer(); }); desktopCarousel.addEventListener('change', () => { current = 0; showPage(0, false); syncTimer(); }); } })();} /* XPBOX immediate native popup opener 20260916 */ (function(){ function popupDocument(){ return window.elementorFrontend && window.elementorFrontend.documentsManager && window.elementorFrontend.documentsManager.documents[26830]; } function openWhenReady(event){ var tries = 0; (function open(){ var doc = popupDocument(); if (doc) { doc.showModal(null, event); return; } if (++tries < 30) requestAnimationFrame(open); })(); } document.addEventListener('click', function(event){ var opener = event.target.closest('.xpbox-shared-header .global-search-toggle .elementor-button'); var closer = event.target.closest('#elementor-popup-modal-26830 .search-close .elementor-button'); if (!opener && !closer) return; event.preventDefault(); event.stopImmediatePropagation(); if (opener) { openWhenReady(event); } else { var doc = popupDocument(); if (doc) doc.getModal().hide(); } }, true); })();