Geramos crescimento com previsibilidade em Vendas

A mais completa Consultoria de Vendas para aumento da produtividade do Brasil

+ de 0 clientes

Melhoramos expressivamente os resultados de Vendas da sua empresa através do alinhamento de 6 Pilares

Estratégia

Estrutura

Processos

Gestão

Tecnologia

Pessoas

Nossos Produtos

Consultoria de Vendas

Atuamos com uma abordagem sistêmica para a correção dos fatores operacionais que impactam na produtividade de vendas. Implantamos uma metodologia de vendas integrada ao processo, estratégia e sistemas de gestão da empresa.

Palestras e Convenções

A partir do objetivo da empresa desenvolvemos conteúdos personalizados, por meio de metodologias práticas, vivenciais e inesquecíveis. Nossas Palestras e Workshops são técnicas e motivacionais, emocionam o público e geram insights de vendas e gestão.

Treinamento de Vendas

Entregamos soluções de aprendizagem impactantes que produzem resultados consistentes, pois nos dedicamos a entender com profundidade as demandas do cliente. Participamos desde o desenho das Trilhas de Aprendizagem até a execução

Capacitação de Líderes

A partir do objetivo da empresa desenvolvemos conteúdos personalizados, por meio de metodologias práticas, vivenciais e inesquecíveis. Nossas Palestras e Workshops são técnicas e motivacionais, emocionam o público e geram insights de vendas e gestão.

Educação Corporativa

Nossa abrangência deve-se a larga experiência prática que possuímos como executivos de vendas e como consultores em projetos de aumento de produtividade de vendas, com resultados comprovados nas maiores empresas do Brasil (500 maiores da revista Exame).

Soluções de IA para Vendas

A SalesMeet é a plataforma de IA  que gera inteligência de dados a partir da análise de todas as conversas do seu time de Vendas e CS: reuniões por vídeo, ligações, WhatsApp e interações presenciais. E preenche o CRM automaticamente.

Serviços

Consultoria de Vendas

Atuamos com uma abordagem sistêmica para a correção dos fatores operacionais que impactam na produtividade de vendas. Implantamos uma metodologia de vendas integrada ao processo, estratégia e sistemas de gestão da empresa.

Palestras e Convenções

A partir do objetivo da empresa desenvolvemos conteúdos personalizados, por meio de metodologias práticas, vivenciais e inesquecíveis. Nossas Palestras e Workshops são técnicas e motivacionais, emocionam o público e geram insights de vendas e gestão.

Treinamento de Vendas

Entregamos soluções de aprendizagem impactantes que produzem resultados consistentes, pois nos dedicamos a entender com profundidade as demandas do cliente. Participamos desde o desenho das Trilhas de Aprendizagem até a execução

Capacitação de Líderes

A partir do objetivo da empresa desenvolvemos conteúdos personalizados, por meio de metodologias práticas, vivenciais e inesquecíveis. Nossas Palestras e Workshops são técnicas e motivacionais, emocionam o público e geram insights de vendas e gestão.

Educação Corporativa

Nossa abrangência deve-se a larga experiência prática que possuímos como executivos de vendas e como consultores em projetos de aumento de produtividade de vendas, com resultados comprovados nas maiores empresas do Brasil (500 maiores da revista Exame).

Soluções de IA para Vendas

A SalesMeet é a plataforma de IA  que gera inteligência de dados a partir da análise de todas as conversas do seu time de Vendas e CS: reuniões por vídeo, ligações, WhatsApp e interações presenciais. E preenche o CRM automaticamente.

Metodologia

Diagnóstico de Vendas

Realizamos entrevistas, laboratórios de vendas, check-up comercial, imersão na operação, além de analisar as estatísticas e os processos para identificar oportunidades de melhoria

Alinhamento Estratégico

Após o diagnóstico alinhamos com o boarding da empresa as prioridades estratégicas de ação e os grupos de trabalho para implementação

Desenvolvimento das Soluções

Alinhamos os processos, desenvolvemos os Playbooks para as equipes comerciais e de gestão, construímos as trilhas, conteúdos e materiais complementares para otimizar a sua operação comercial

Implantação das Soluções

Aplicamos os novos processos e metodologias, parametrizamos as ferramentas tecnologicas (CRMs e outras) e preparamos a equipe de Vendas para executá-los com eficiência e atingir os resultados planejados

Capacitação da Equipe

Formamos líderes, profissionais de vendas e multiplicadores, para garantir uma execução que entregue os resultados planejados. Através de ferramentas de IA realizamos assessment de competências, PDIs e trilhas individualizadas.

Acompanhamento de Resultados

Garantimos a implementação das novas práticas por meio de um acompanhamento sistemático das execuções e indicadores. Com a SalesMeet você tem visão de todas as interações entre os vendedores e clientes.

Diferenciais

Nossos diferenciais reforçam e garantem a expertise que temos em desenvolver e estruturar diversos processos comerciais com resultados eficientes.

Nossos projetos de consultoria alinham elementos estratégicos como: objetivos, posicionamento, estrutura, critérios de R&S, remuneração à disciplina na execução, visando a excelência operacional.

Nossas ações de capacitação estão associadas a indicadores de desempenho no cliente. O desenvolvimento de competências leva os profissionais a ganhos de produtividade. Avaliamos objetivamente esses ganhos.

Somos especialistas em programas de educação para aumento das vendas. O nosso foco garante profundo entendimento das necessidades e objetivos dos clientes, desde o diagnóstico, passando pela aplicação das capacitações, até a análise de resultados.

Treinamentos com conteúdos de prateleira não geram resultados sustentáveis. Cada produto ou serviço tem uma abordagem específica de vendas, exigindo conteúdos e metodologias apropriados.

Criamos soluções para o aumento da produtividade de vendas considerando o seu impacto nas demais áreas da organização (e vice-versa), obtendo o máximo do resultado global para empresa.

Nossa experiência com líderes e times de vendas nos mostra que as ações de capacitação mais eficazes e que têm o maior impacto nos resultados são aquelas que reforçam as novas habilidades por meio do on the job training.

Para serem efetivas, as soluções de aprendizagem devem mesclar ferramentas tradicionais de sala de aula com intervenções baseadas na tecnologia. Chats, vídeo aulas e plataformas de e-learning são parte do processo de aprendizagem na DNA.

Apoiamos e acompanhamos no campo a implantação das ferramentas e metodologias trabalhadas nos Worshops e Programas de Educação Corporativa, dando sustentação ao aprendizado.

Capacitamos e instrumentalizamos líderes como os principais responsáveis por preparar uma equipe de vendas, por meio do on the job training que é uma das mais poderosas metodologias de capacitação de vendas.

Use a análise de todas as conversas para direcionar o desenvolvimento do seu time de Vendas e CS e tomar decisões baseadas na realidade.

Números que comprovam nosso método

Confira os resultados declarados de nossos clientes​

Veja alguns dos negócios que transformamos

/* --- ESTRUTURA GERAL --- */ .testimonial-wrapper { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; padding: 10px 0; overflow: hidden; font-family: 'Poppins', sans-serif; background: transparent; user-select: none; -webkit-user-select: none; } .carousel-stage { display: flex; justify-content: center; align-items: center; position: relative; height: 440px; perspective: 1000px; width: 100%; max-width: 1400px; margin: 0 auto; } /* --- SETAS DE NAVEGAÇÃO --- */ .carousel-nav-arrow { position: absolute; top: 220px; transform: translateY(-50%); width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 30; transition: transform 0.3s ease, opacity 0.3s ease; background: transparent !important; background-color: transparent !important; border: none !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; outline: none !important; border-radius: 0 !important; } .carousel-nav-arrow:hover { transform: translateY(-50%) scale(1.15); opacity: 0.7; } .carousel-nav-arrow:active { transform: translateY(-50%) scale(0.95); } .carousel-nav-arrow img { width: 28px; height: auto; object-fit: contain; display: block; } .left-arrow { left: max(2%, calc(50% - 650px)); } .left-arrow img { transform: scaleX(-1); } .right-arrow { right: max(2%, calc(50% - 650px)); } /* --- CARDS DOS VÍDEOS --- */ .video-card { position: absolute; width: 600px; max-width: 85vw; height: auto; transition: all 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); cursor: pointer; background: transparent; transform-style: preserve-3d; border-radius: 20px; left: 50%; margin-left: -300px; } .video-container { width: 100%; aspect-ratio: 16 / 9; position: relative; overflow: hidden; background: #000; border-radius: 20px; box-shadow: 0 10px 60px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.4) inset; transition: box-shadow 0.3s ease, transform 0.3s ease; border: 2px solid rgba(255, 255, 255, 0.5); } .video-click-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 5; background: transparent; touch-action: pan-y pinch-zoom; } .video-card[data-pos="1"] .video-container { box-shadow: 0 20px 80px rgba(255, 255, 255, 1), 0 0 30px rgba(255, 255, 255, 0.6) inset; border-color: #fff; } .video-container iframe { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: cover; pointer-events: none; } /* --- CONTROLES DOS VÍDEOS --- */ .controls-container { position: absolute; bottom: 20px; left: 20px; z-index: 20; display: flex; align-items: center; gap: 10px; opacity: 0; transition: opacity 0.3s; pointer-events: auto; } .video-card:hover .controls-container, .video-card[data-pos="1"] .controls-container { opacity: 1; } .control-btn { background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(5px); border: 1px solid rgba(255, 255, 255, 0.3); color: #fff; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; } .control-btn:hover { transform: scale(1.1); background: #ddbd8b; border-color: #ddbd8b; } .control-btn svg { width: 20px; height: 20px; display: block; } .content-container { display: none; } /* --- LOGOS: 2 LINHAS DE 4 NO DESKTOP --- */ .logo-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; justify-items: center; row-gap: 50px; column-gap: 40px; margin: 50px auto 0; padding: 0 40px; width: 100%; max-width: 1200px; } .nav-logo-wrapper { width: 100%; max-width: 120px; height: 40px; display: flex; justify-content: center; align-items: center; cursor: pointer; } .nav-logo { width: 100%; height: 100%; object-fit: contain; transition: all 0.3s ease; filter: grayscale(100%) opacity(0.5); } .nav-logo-wrapper.active .nav-logo { filter: grayscale(0%) opacity(1); transform: scale(1.2); } .nav-logo-wrapper:hover:not(.active) .nav-logo { filter: grayscale(50%) opacity(0.8); transform: scale(1.05); } /* --- POSIÇÕES DO CARROSSEL --- */ .video-card[data-pos="0"] { transform: translateX(-65%) scale(0.85); opacity: 0.7; z-index: 2; filter: grayscale(80%) brightness(0.8) blur(4px); } .video-card[data-pos="1"] { transform: translateX(0) scale(1); opacity: 1; z-index: 10; filter: grayscale(0%) blur(0px); } .video-card[data-pos="2"] { transform: translateX(65%) scale(0.85); opacity: 0.7; z-index: 2; filter: grayscale(80%) brightness(0.8) blur(4px); } .video-card:not([data-pos="0"]):not([data-pos="1"]):not([data-pos="2"]) { transform: translateX(0) scale(0.5); opacity: 0; z-index: -1; pointer-events: none; } /* --- RESPONSIVIDADE E ARRASTE NO MOBILE --- */ @media (max-width: 768px) { .carousel-stage { height: 290px; touch-action: pan-y pinch-zoom; } /* Os cards acompanham o dedo durante o arraste. */ .carousel-stage.is-swiping .video-card { transition: none; } .carousel-nav-arrow { top: 145px; width: 40px; height: 40px; } .left-arrow { left: 5px; } .right-arrow { right: 5px; } .video-card { width: 80vw; max-width: 400px; margin-left: -40vw; } .controls-container { bottom: 10px; left: 10px; } .video-card[data-pos="0"] { transform: translateX( calc(-55% + var(--swipe-x, 0px)) ) scale(0.8); } .video-card[data-pos="1"] { transform: translateX(var(--swipe-x, 0px)) scale(1); } .video-card[data-pos="2"] { transform: translateX( calc(55% + var(--swipe-x, 0px)) ) scale(0.8); } .video-container { box-shadow: 0 5px 30px rgba(255, 255, 255, 0.4); } .logo-nav { display: flex !important; flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding: 10px 20px 20px; gap: 30px; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; margin-top: 20px; } .logo-nav::-webkit-scrollbar { display: none; } .nav-logo-wrapper { flex-shrink: 0; width: 80px; height: 30px; } .nav-logo-wrapper.active .nav-logo { transform: scale(1.15); } }
// --- 8 DEPOIMENTOS EM VÍDEO --- const testimonials = [ { id: 0, youtubeId: 'tpMVh3FxkX8', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/11/Instituto-AS.webp' }, { id: 1, youtubeId: 'JziKIRv8mjw', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/10/ifood-AB.png' }, { id: 2, youtubeId: 'ysZWLvizZS4', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/10/natura-AB.png' }, { id: 3, youtubeId: '_boFP-fXcvc', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/10/SND-AB.png' }, { id: 4, youtubeId: 'Gqj45-Z3Tkw', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/10/nstech.webp' }, { id: 5, youtubeId: 'qUeGXC0HlLA', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/10/armac.webp' }, { id: 6, youtubeId: 'iMHDEJ9Xkl0', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/11/mundiale.webp' }, { id: 7, youtubeId: 'XRVYbneSHqc', logo: 'https://dnadevendas.com.br/wp-content/uploads/2026/10/hershey.webp' } ]; const stage = document.getElementById('carouselStage'); const logoNav = document.getElementById('logoNav'); let players = []; let youtubeApiReady = false; /* * A posição central é state[1]. * Começa pelo Instituto AS. */ let state = [ testimonials.length - 1, ...testimonials.slice(0, -1).map((_, index) => index) ]; const ICON_VOLUME_MUTE = ` `; const ICON_VOLUME_UP = ` `; const ICON_RESTART = ` `; function onYouTubeIframeAPIReady() { youtubeApiReady = true; init(); } function init() { if (!youtubeApiReady) return; stage.innerHTML = ''; logoNav.innerHTML = ''; players = new Array(testimonials.length).fill(null); testimonials.forEach((data, index) => { const card = document.createElement('div'); card.classList.add('video-card'); card.dataset.index = index; card.innerHTML = `
${ICON_VOLUME_MUTE}
${ICON_RESTART}
`; stage.appendChild(card); const navLogoWrapper = document.createElement('div'); navLogoWrapper.classList.add('nav-logo-wrapper'); navLogoWrapper.dataset.index = index; navLogoWrapper.onclick = () => jumpToVideo(index); const navLogo = document.createElement('img'); navLogo.src = data.logo; navLogo.classList.add('nav-logo'); navLogo.alt = `Ir para vídeo ${index + 1}`; navLogoWrapper.appendChild(navLogo); logoNav.appendChild(navLogoWrapper); players[index] = new YT.Player(`yt-player-${data.id}`, { videoId: data.youtubeId, playerVars: { autoplay: 0, controls: 0, rel: 0, showinfo: 0, modestbranding: 1, playsinline: 1, enablejsapi: 1, origin: window.location.origin }, events: { onReady: (event) => { event.target.mute(); if (index === state[1]) { event.target.playVideo(); } } } }); card.querySelector('.video-click-layer').onclick = (event) => { event.stopPropagation(); handleCardClick(index); }; card.querySelector('.sound-btn').onclick = (event) => { event.stopPropagation(); toggleSound(index); }; card.querySelector('.restart-btn').onclick = (event) => { event.stopPropagation(); restartVideo(index); }; }); initSwipeListeners(); updatePositions(); } window.moveCarousel = function (direction) { if (direction === 'prev') { handleCardClick(state[0]); } else { handleCardClick(state[2]); } }; function updatePositions() { const cards = document.querySelectorAll('.video-card'); cards.forEach(card => { const cardIndex = parseInt(card.dataset.index); const posIndex = state.indexOf(cardIndex); card.setAttribute('data-pos', posIndex); const player = players[cardIndex]; if ( player && typeof player.getPlayerState === 'function' ) { if (posIndex === 1) { if ( player.getPlayerState() !== YT.PlayerState.PLAYING ) { player.playVideo(); } } else { player.mute(); resetSoundIcon(cardIndex); if ( player.getPlayerState() === YT.PlayerState.PLAYING ) { player.pauseVideo(); } } } }); const navLogoWrappers = document.querySelectorAll( '.nav-logo-wrapper' ); navLogoWrappers.forEach(wrapper => { if (parseInt(wrapper.dataset.index) === state[1]) { wrapper.classList.add('active'); } else { wrapper.classList.remove('active'); } }); } function handleCardClick(clickedIndex) { const currentPos = state.indexOf(clickedIndex); if (currentPos === 1) { toggleSound(clickedIndex); } else if (currentPos === 0) { const last = state.pop(); state.unshift(last); updatePositions(); unmuteAfterTransition(clickedIndex); } else if (currentPos === 2) { const first = state.shift(); state.push(first); updatePositions(); unmuteAfterTransition(clickedIndex); } } function jumpToVideo(targetIndex) { if (!state.includes(targetIndex)) return; if (state[1] === targetIndex) { toggleSound(targetIndex); return; } let loopLimit = state.length; while ( state[1] !== targetIndex && loopLimit > 0 ) { state.push(state.shift()); loopLimit--; } updatePositions(); unmuteAfterTransition(targetIndex); } function toggleSound(index) { const player = players[index]; if ( !player || typeof player.isMuted !== 'function' ) { return; } const btn = document.querySelector( `.video-card[data-index="${index}"] .sound-btn` ); if (player.isMuted()) { player.unMute(); if (btn) { btn.innerHTML = ICON_VOLUME_UP; } } else { player.mute(); if (btn) { btn.innerHTML = ICON_VOLUME_MUTE; } } } function restartVideo(index) { const currentPos = state.indexOf(index); const player = players[index]; if ( !player || typeof player.seekTo !== 'function' ) { return; } if (currentPos !== 1) { jumpToVideo(index); setTimeout(() => { player.seekTo(0); player.playVideo(); player.unMute(); updateSoundIconToUnmuted(index); }, 700); } else { player.seekTo(0); player.playVideo(); player.unMute(); updateSoundIconToUnmuted(index); } } function updateSoundIconToUnmuted(index) { const btn = document.querySelector( `.video-card[data-index="${index}"] .sound-btn` ); if (btn) { btn.innerHTML = ICON_VOLUME_UP; } } function resetSoundIcon(index) { const btn = document.querySelector( `.video-card[data-index="${index}"] .sound-btn` ); if (btn) { btn.innerHTML = ICON_VOLUME_MUTE; } } function unmuteAfterTransition(index) { setTimeout(() => { const player = players[index]; if ( state[1] === index && player && typeof player.unMute === 'function' ) { player.unMute(); updateSoundIconToUnmuted(index); } }, 600); } /* --- ARRASTAR COM O DEDO NO MOBILE --- */ function initSwipeListeners() { if (stage.dataset.swipeInitialized === 'true') return; stage.dataset.swipeInitialized = 'true'; const mobileQuery = window.matchMedia('(max-width: 768px)'); let gesture = null; let ignoreClickUntil = 0; let swipeCooldownUntil = 0; function limparArraste() { const pointerId = gesture?.id; gesture = null; stage.classList.remove('is-swiping'); stage.style.removeProperty('--swipe-x'); if ( pointerId !== undefined && stage.hasPointerCapture(pointerId) ) { stage.releasePointerCapture(pointerId); } } /* Evita que o fim do deslize vire um clique no vídeo. */ stage.addEventListener('click', event => { if ( event.detail !== 0 && performance.now() { if ( event.pointerType !== 'touch' && event.pointerType !== 'pen' ) { return; } if (event.isPrimary === false) { limparArraste(); return; } if ( !mobileQuery.matches || performance.now() { if ( !gesture || gesture.id !== event.pointerId ) { return; } const dx = event.clientX - gesture.x; const dy = event.clientY - gesture.y; if (!gesture.horizontal) { if ( Math.max( Math.abs(dx), Math.abs(dy) ) < 8 ) { return; } /* Mantém a rolagem vertical normal da página. */ if (Math.abs(dx) { if ( !gesture || gesture.id !== event.pointerId ) { return; } const dx = event.clientX - gesture.x; const dy = event.clientY - gesture.y; const horizontal = gesture.horizontal; limparArraste(); if (!horizontal) return; ignoreClickUntil = performance.now() + 650; const distanciaMinima = Math.min( 70, Math.max(40, stage.clientWidth * 0.12) ); if ( Math.abs(dx) < distanciaMinima || Math.abs(dx) <= Math.abs(dy) * 1.2 ) { return; } /* Um vídeo por gesto. */ swipeCooldownUntil = performance.now() + 500; window.moveCarousel( dx { if (gesture?.id === event.pointerId) { limparArraste(); } }, { passive: true }); stage.addEventListener('lostpointercapture', event => { if ( event.target === stage && gesture?.id === event.pointerId ) { limparArraste(); } }); mobileQuery.addEventListener('change', limparArraste); window.addEventListener('blur', limparArraste); } setTimeout(() => { if ( !youtubeApiReady && window.YT && window.YT.Player ) { onYouTubeIframeAPIReady(); } }, 1000);

1.200.000

Profissionais de vendas impactados

2.200

Clientes

45

Segmentos de mercado atingidos

9.7

Média de satisfação dos participantes

/* --- ESTRUTURA GERAL --- */ .dna-video-section { width: 100%; max-width: 1400px; margin: 0 auto; padding: 60px 20px; box-sizing: border-box; font-family: 'Poppins', sans-serif; position: relative; overflow: hidden; background-color: transparent; touch-action: pan-y; } .dna-video-viewport { width: 100%; position: relative; padding-bottom: 25px; -webkit-mask-image: linear-gradient( to right, black 82%, transparent 100% ); mask-image: linear-gradient( to right, black 82%, transparent 100% ); } .dna-video-track { display: flex; gap: 24px; width: max-content; transition: transform 0.4s ease-in-out; will-change: transform; } /* --- CARDS --- */ .dna-video-card-container { display: flex; flex-direction: column; align-items: center; width: 270px; flex-shrink: 0; } .dna-video-card { width: 100%; height: 420px; border-radius: 20px; position: relative; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; z-index: 1; } .dna-video-card:hover { transform: translateY(-5px); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15); } .dna-card-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.5s ease; } .dna-video-card:hover .dna-card-bg { transform: scale(1.03); } /* --- LOGOS --- */ .dna-card-logo-wrap { height: 85px; display: flex; align-items: center; justify-content: center; margin-top: 15px; width: 100%; } .dna-card-logo { max-height: 60px; max-width: 180px; object-fit: contain; opacity: 1; transition: transform 0.3s ease; } .dna-video-card-container:hover .dna-card-logo { transform: scale(1.05); } /* --- SETAS CENTRALIZADAS --- */ .dna-video-controls { display: flex; align-items: center; justify-content: center; width: 100%; gap: 30px; margin-top: 30px; padding: 0; } .dna-nav-arrow { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; min-width: 0; cursor: pointer; background: transparent !important; border: none !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; border-radius: 0 !important; transition: transform 0.2s ease, opacity 0.2s ease; } .dna-nav-arrow:hover { transform: scale(1.15); opacity: 0.7; } .dna-nav-arrow:active { transform: scale(0.95); } .dna-nav-arrow:focus-visible { outline: 2px solid #171f38; outline-offset: 4px; } .dna-nav-arrow img { width: 30px; height: auto; object-fit: contain; display: block; } .dna-arrow-left img { transform: scaleX(-1); } /* --- MODAL DO VÍDEO --- */ .dna-video-modal { position: fixed; inset: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.85); z-index: 999999; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; } .dna-video-modal.active { opacity: 1; pointer-events: auto; } .dna-modal-content { position: relative; width: 90%; max-width: 450px; aspect-ratio: 9 / 16; background: #000; border-radius: 12px; overflow: hidden; } .dna-modal-content iframe { width: 100%; height: 100%; border: none; } .dna-modal-close { position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; background: none !important; border: none !important; color: #fff !important; padding: 0 !important; font-size: 32px; cursor: pointer; line-height: 1; z-index: 2; } /* --- AJUSTES EXCLUSIVOS PARA MOBILE --- */ @media (max-width: 768px) { .dna-video-section { touch-action: pan-y pinch-zoom; } .dna-video-card-container { width: 230px; } .dna-video-card { height: 360px; } /* Remove completamente o esfumado no celular. */ .dna-video-viewport { -webkit-mask-image: none; mask-image: none; touch-action: pan-y pinch-zoom; user-select: none; -webkit-user-select: none; } }
(() => { function iniciarCarrossel() { const track = document.getElementById('dnaVideoTrack'); const prevBtn = document.getElementById('dnaVideoPrev'); const nextBtn = document.getElementById('dnaVideoNext'); const modal = document.getElementById('dnaVideoModal'); const modalIframe = document.getElementById('dnaModalIframe'); const modalClose = document.getElementById('dnaModalClose'); const swipeArea = document.getElementById('dnaSwipeArea'); if ( !track || !prevBtn || !nextBtn || !modal || !modalIframe || !modalClose || !swipeArea ) { return; } if (track.dataset.initialized === 'true') return; track.dataset.initialized = 'true'; const viewport = swipeArea.querySelector('.dna-video-viewport'); const mobileQuery = window.matchMedia('(max-width: 768px)'); // Duração da animação ao navegar manualmente. const DURACAO_TRANSICAO = 400; const depoimentos = [ { empresa: "Sotheby's", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/BN-Sothebys.png", video: "https://player.vimeo.com/video/1233726754?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/BN-Sothebys-Thumb.webp" }, { empresa: "IBM", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/IBM.png", video: "https://player.vimeo.com/video/1233726753?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/IBM-thumb.webp" }, { empresa: "Ypê", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/11/ype.webp", video: "https://player.vimeo.com/video/1243445260?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/Ype-thumb.webp" }, { empresa: "Hydac", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/11/hydac.webp", video: "https://player.vimeo.com/video/1243445254?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/Hydac-thumb.webp" }, { empresa: "SESI", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/SESI.png", video: "https://player.vimeo.com/video/1233725481?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/Sesi-thumb.webp" }, { empresa: "Ciplan", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/11/ciplan.webp", video: "https://player.vimeo.com/video/1243445255?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/Ciplan-thumb.webp" }, { empresa: "Lider", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/LIDER.png", video: "https://player.vimeo.com/video/1233727304?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/lider-thumb.webp" }, { empresa: "Brasilata", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/Brasilata.png", video: "https://player.vimeo.com/video/1233726761?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/brasilata-thumb.webp" }, { empresa: "Zucchi", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/ZUCCHI.png", video: "https://player.vimeo.com/video/1233724291?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/zucchi-thumb.webp" }, { empresa: "Unimed", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/Unimed.png", video: "https://player.vimeo.com/video/1233724289?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/unimed-thumb.webp" }, { empresa: "FIEB", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/FiEB.png", video: "https://player.vimeo.com/video/1233726845?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/fieb-thumb.webp" }, { empresa: "Movecta", logo: "https://dnadevendas.com.br/wp-content/uploads/2026/10/Movecta.png", video: "https://player.vimeo.com/video/1233724292?badge=0&autopause=0&player_id=0&app_id=58479", thumb: "https://dnadevendas.com.br/wp-content/uploads/2026/11/movecta-thumb.webp" } ]; const repetidos = [ ...depoimentos, ...depoimentos, ...depoimentos ]; track.innerHTML = repetidos.map(item => `
Capa ${item.empresa}
`).join(''); let isAnimating = false; let inicioToque = null; let ignorarCliqueAte = 0; let ultimoFoco = null; function distanciaDoCard(card) { const gap = parseFloat(getComputedStyle(track).columnGap) || 0; return card.getBoundingClientRect().width + gap; } /* --- CONTROLE DA TRANSIÇÃO --- */ function animarTrilha(posicao, concluir) { const duracao = matchMedia( '(prefers-reduced-motion: reduce)' ).matches ? 0 : DURACAO_TRANSICAO; let finalizado = false; let timeout; function finalizar(event) { if ( event && ( event.target !== track || event.propertyName !== 'transform' ) ) { return; } if (finalizado) return; finalizado = true; clearTimeout(timeout); track.removeEventListener( 'transitionend', finalizar ); track.removeEventListener( 'transitioncancel', finalizar ); track.style.transition = 'none'; concluir(); void track.offsetWidth; isAnimating = false; } if (duracao === 0) { track.style.transition = 'none'; track.style.transform = `translateX(${posicao}px)`; finalizar(); return; } track.addEventListener( 'transitionend', finalizar ); track.addEventListener( 'transitioncancel', finalizar ); track.style.transition = `transform ${duracao}ms ease-in-out`; track.style.transform = `translateX(${posicao}px)`; timeout = setTimeout( finalizar, duracao + 100 ); } /* --- AVANÇAR CARDS --- */ function nextVideoSlide(quantidade = 1) { if (isAnimating) return; const cards = Array.from(track.children); const passos = Math.min(quantidade, cards.length - 1); if (passos { cards.slice(0, passos).forEach(card => { track.appendChild(card); }); track.style.transform = 'translateX(0)'; }); } /* --- VOLTAR CARDS --- */ function prevVideoSlide(deslocamentoInicial = 0, quantidade = 1) { if (isAnimating) return; const cards = Array.from(track.children); const passos = Math.min(quantidade, cards.length - 1); if (passos total + distanciaDoCard(card), 0 ); track.style.transition = 'none'; track.prepend(...anteriores); track.style.transform = `translateX(${-distancia + deslocamentoInicial}px)`; void track.offsetWidth; animarTrilha(0, () => { track.style.transform = 'translateX(0)'; }); } /* --- SETAS: DOIS CARDS POR CLIQUE --- */ nextBtn.addEventListener('click', () => { nextVideoSlide(2); }); prevBtn.addEventListener('click', () => { prevVideoSlide(0, 2); }); /* --- ABRIR VÍDEO --- */ track.addEventListener('click', event => { if (performance.now() { if (event.target === modal) { fecharModal(); } }); document.addEventListener('keydown', event => { if (event.key === 'Escape') { fecharModal(); } }); /* --- ARRASTE COM O DEDO: SOMENTE NO MOBILE --- */ function restaurarArraste() { const toque = inicioToque; if (!toque) return null; inicioToque = null; if (toque.cardAnterior) { track.appendChild(toque.cardAnterior); } if (toque.horizontal) { track.style.transition = 'none'; track.style.transform = 'translateX(' + toque.deslocamento + 'px)'; } if (viewport.hasPointerCapture(toque.id)) { viewport.releasePointerCapture(toque.id); } return toque; } function voltarAoInicio() { isAnimating = true; animarTrilha(0, () => { track.style.transform = 'translateX(0)'; }); } function cancelarArraste() { const toque = restaurarArraste(); if (!toque) return; if (toque.horizontal) { ignorarCliqueAte = performance.now() + 650; voltarAoInicio(); } } /* Evita abrir o vídeo ao terminar o arraste. */ viewport.addEventListener('click', event => { if ( event.detail !== 0 && performance.now() { if ( event.pointerType !== 'touch' && event.pointerType !== 'pen' ) { return; } if (event.isPrimary === false) { cancelarArraste(); return; } if ( !mobileQuery.matches || isAnimating || modal.classList.contains('active') ) { return; } inicioToque = { id: event.pointerId, x: event.clientX, y: event.clientY, horizontal: false, deslocamento: 0, cardAnterior: null }; }, { passive: true }); viewport.addEventListener('pointermove', event => { if ( !inicioToque || inicioToque.id !== event.pointerId ) { return; } const dx = event.clientX - inicioToque.x; const dy = event.clientY - inicioToque.y; if (!inicioToque.horizontal) { if ( Math.max( Math.abs(dx), Math.abs(dy) ) < 8 ) { return; } /* Mantém a rolagem vertical normal da página. */ if (Math.abs(dx) 0 && !inicioToque.cardAnterior) { inicioToque.cardAnterior = track.lastElementChild; track.prepend(inicioToque.cardAnterior); } else if (dx { if ( !inicioToque || inicioToque.id !== event.pointerId ) { return; } const dx = event.clientX - inicioToque.x; const dy = event.clientY - inicioToque.y; const toque = restaurarArraste(); if (toque.horizontal) { ignorarCliqueAte = performance.now() + 650; const distanciaMinima = Math.min( 70, Math.max(40, viewport.clientWidth * 0.12) ); if ( Math.abs(dx) >= distanciaMinima && Math.abs(dx) > Math.abs(dy) * 1.2 ) { if (dx { if (inicioToque?.id === event.pointerId) { cancelarArraste(); } }, { passive: true }); viewport.addEventListener('lostpointercapture', event => { if ( event.target === viewport && inicioToque?.id === event.pointerId ) { cancelarArraste(); } }); mobileQuery.addEventListener('change', () => { const toque = restaurarArraste(); if (toque?.horizontal) { track.style.transform = 'translateX(0)'; } }); window.addEventListener('blur', cancelarArraste); } if (document.readyState === 'loading') { document.addEventListener( 'DOMContentLoaded', iniciarCarrossel, { once: true } ); } else { iniciarCarrossel(); } })();