/* ── Sub-service icons — Jandl-inspired: compound paths, fill+stroke mix ── */ function IcoBriefing({ s=44, c='#1D1D1B' }) { /* Document with folded corner + diagonal pen + filled nib */ return ( {/* Document body */} {/* Title + text lines */} {/* Diagonal pen shaft */} {/* Filled nib */} ); } function IcoCampanha({ s=44, c='#1D1D1B' }) { /* Megaphone + wave arcs + filled dot at bell */ return ( {/* Interior body fill */} {/* Wave arcs */} {/* Stand legs */} {/* Filled accent at horn tip */} ); } function IcoBranding({ s=44, c='#1D1D1B' }) { /* Circle seal + dashed inner ring + cross + pen nib touching circle */ return ( {/* Outer circle */} {/* Inner dashed ring */} {/* Cross inside */} {/* Pen nib at upper right */} ); } function IcoWorkshop({ s=44, c='#1D1D1B' }) { /* Lightbulb + connecting arc inside + glow rays + filled center dot */ return ( {/* Bulb body */} {/* Base rings */} {/* People connection arc inside */} {/* Glow rays */} {/* Filled center dot */} ); } function IcoHuntPersonal({ s=44, c='#1D1D1B' }) { /* Eye lens + crosshair + filled person head at center + magnifier handle */ return ( {/* Eye almond */} {/* Crosshair */} {/* Person head — filled circle */} {/* Shoulder arc */} {/* Magnifier handle */} {/* Outer ring (faint second arc) */} ); } function IcoSquads({ s=44, c='#1D1D1B' }) { /* Three profiles + shoulder arcs + filled head dots + connection arcs */ return ( {/* Center head */} {/* Left head */} {/* Right head */} {/* Connecting arcs */} ); } function IcoEstrutura({ s=44, c='#1D1D1B' }) { /* Org chart: top box (semi-filled) + stem + 3 boxes below + small accent dots */ return ( {/* Top box */} {/* Stem */} {/* Horizontal bar */} {/* Drops to boxes */} {/* Three bottom boxes */} {/* Filled accent dot in top box */} {/* Small dots in bottom boxes */} ); } function IcoAssets({ s=44, c='#1D1D1B' }) { /* Two overlapping image frames + landscape + sun + sparkle */ return ( {/* Back frame */} {/* Landscape */} {/* Sun outer */} {/* Sun filled iris */} {/* Front frame offset */} {/* Sparkle cross upper-right */} ); } function IcoCamera({ s=44, c='#1D1D1B' }) { /* Camera body + concentric lens rings + filled iris + AI cross */ return ( {/* Body */} {/* Shutter notch */} {/* Outer lens ring */} {/* Middle ring */} {/* Filled iris */} {/* AI cross accent */} ); } function IcoRetrato({ s=44, c='#1D1D1B' }) { /* Portrait rectangle + face oval + filled eyes + shoulder arc + tick marks */ return ( {/* Frame */} {/* Face oval */} {/* Face fill */} {/* Filled eyes */} {/* Shoulder arc */} {/* Top tick marks */} {/* Bottom tick marks */} ); } function IcoDiagnostico({ s=44, c='#1D1D1B' }) { /* Gear ring (outer + inner circles + 8 teeth) + magnifier + checkmark */ return ( {/* Outer gear circle */} {/* Inner ring */} {/* Cardinal teeth */} {/* Diagonal teeth */} {/* Filled centre */} {/* Magnifier circle */} {/* Handle */} {/* Checkmark */} ); } function IcoAgente({ s=44, c='#1D1D1B' }) { /* Chat bubble with tail + three filled circuit nodes + T-bar legs + lightning bolt */ return ( {/* Bubble body */} {/* Three filled nodes */} {/* Node connections */} {/* Circuit legs */} {/* Lightning bolt top-right */} ); } function IcoClone({ s=44, c='#1D1D1B' }) { /* Video frame + two overlapping profiles (original + clone) + filled play button + sparkle */ return ( {/* Video frame */} {/* Back head (clone, dashed) */} {/* Front head (original) */} {/* Filled pupil */} {/* Filled play button bottom-right */} {/* Sparkle top-right */} ); } /* Map icons to sub-items by service index + item index */ const subIcons = [ [IcoAssets, IcoCamera, IcoRetrato, IcoClone, IcoDiagnostico, IcoAgente], [IcoHuntPersonal, IcoSquads, IcoEstrutura], [IcoBriefing, IcoCampanha, IcoBranding, IcoWorkshop], ]; /* Main category icons for the row header */ function IcoAsterisk({ s=36, c='#1D1D1B' }) { /* Six-arm asterisk + filled centre dot */ return ( ); } function IcoPerson({ s=36, c='#1D1D1B' }) { /* Eye-lens containing a person head + filled pupil + shoulder arc */ return ( {/* Eye almond */} {/* Head circle */} {/* Filled pupil */} {/* Shoulder arc */} ); } function IcoSpark({ s=36, c='#1D1D1B' }) { /* Neural triangle: three filled corner nodes + edge lines + filled centre node */ return ( {/* Corner nodes — filled */} {/* Edge lines */} {/* Centre node — filled */} {/* Spokes to centre */} ); } const serviceIcons = [IcoSpark, IcoPerson, IcoAsterisk]; const servicesData = [ { num: '01', title: 'AI Solutions', sub: T('Escala & Inovação', 'Scale & Innovation'), desc: T('Conectar a potência da inteligência artificial à realidade prática e estética do mercado publicitário e corporativo. O foco é ganho de escala e inovação, sem perder o critério visual e técnico.', 'Connecting the power of artificial intelligence to the practical and aesthetic reality of the advertising and corporate market. The focus is scale and innovation, without losing visual and technical rigor.'), items: [ { title: T('Assets & Campanhas', 'Assets & Campaigns'), desc: T('Criação de imagens, ilustrações e vídeos proprietários gerados por IA para campanhas publicitárias e mídias sociais.', 'Proprietary AI-generated images, illustrations and videos for advertising campaigns and social media.') }, { title: 'AI Photoshoots', desc: T('Produção de fotos conceituais e cenários hiper-realistas sob medida, reduzindo custos logísticos de grandes produções fotográficas.', 'Tailor-made conceptual photos and hyper-realistic scenes, cutting the logistics costs of big photo productions.') }, { title: T('Retrato Profissional', 'Professional Headshot'), desc: T('Transformo sua foto em uma foto profissional para releases, LinkedIn ou currículo.', 'I turn your photo into a professional headshot for press releases, LinkedIn or your résumé.') }, { title: T('Clone Digital', 'Digital Clone'), desc: T('Criação do seu clone digital com IA para gravação de vídeos em escala, sem necessidade de estúdio ou novas captações.', 'AI-powered digital clone creation for recording videos at scale, with no studio or new shoots required.') }, { title: T('Diagnóstico & Otimização', 'Diagnosis & Optimization'), desc: T('Workshop para identificar tarefas que podem ser otimizadas com inteligência artificial.', 'A workshop to identify tasks that can be optimized with artificial intelligence.') }, { title: T('Agentes Criativos Customizados', 'Custom Creative Agents'), desc: T('Desenvolvimento e treinamento de LLMs configurados com o tom de voz da marca, guias de design e regras do negócio para auxiliar no dia a dia da empresa.', "Development and training of LLMs configured with the brand's tone of voice, design guides and business rules to support day-to-day work.") }, ], }, { num: '02', title: 'Talent Hunting', sub: T('Times & Squads', 'Teams & Squads'), desc: T('Montar times de alta performance exige entender que um grande portfólio não garante resultado se os perfis não forem complementares. Uso minha experiência e rede de contatos para montar a equipe criativa que seu projeto precisa.', "Building high-performance teams means understanding that a great portfolio doesn't guarantee results if the profiles aren't complementary. I use my experience and network to assemble the creative team your project needs."), items: [ { title: T('Talent Hunting Personalizado', 'Custom Talent Hunting'), desc: T('Mapeamento e filtragem de profissionais criativos (designers, copywriters, ilustradores, motion designers) alinhados à cultura e aos desafios da empresa.', "Mapping and screening creative professionals (designers, copywriters, illustrators, motion designers) aligned with the company's culture and challenges.") }, { title: 'Squads On-Demand', desc: T('Curadoria de equipes de freelancers seniores para projetos de curto ou médio prazo.', 'Curated teams of senior freelancers for short- or mid-term projects.') }, { title: T('Desenho de Estrutura', 'Org Structure Design'), desc: T('Consultoria para diagnosticar gargalos internos e reestruturar o organograma criativo da sua empresa ou agência.', "Consulting to diagnose internal bottlenecks and restructure your company's or agency's creative org chart.") }, ], }, { num: '03', title: 'Creative Marketing', sub: T('Estratégia & Conceito', 'Strategy & Concept'), desc: T('Consultoria de marketing estratégico para agências, marcas e startups de todos os tamanhos. Atuação flexível e sob demanda, cobrindo desde o briefing criativo até a entrega final.', 'Strategic marketing consulting for agencies, brands and startups of all sizes. Flexible, on-demand engagement — from the creative brief to final delivery.'), items: [ { title: 'Briefing Master', desc: T('Ajudo a criar o modelo de briefing ideal para extrair o melhor do seu time criativo ou agência.', 'I help you build the ideal briefing model to get the best out of your creative team or agency.') }, { title: T('Campanhas & Direção Criativa', 'Campaigns & Creative Direction'), desc: T('Desenvolvimento e execução de campanhas, do conceito até a execução.', 'Campaign development and execution, from concept to delivery.') }, { title: 'Design & Branding', desc: T('Projetos de identidade visual e branding sob medida.', 'Tailor-made visual identity and branding projects.') }, { title: 'Workshops & Brainstorms', desc: T('Sessões imersivas com equipes internas para destravar ideias, desenhar estratégias e acelerar processos criativos.', 'Immersive sessions with in-house teams to unlock ideas, shape strategies and speed up creative processes.') }, ], }, ]; function Services() { const { isMobile } = useViewport(); return (
{/* Header */}
{T('Serviços', 'Services')} e.currentTarget.style.color='#1D1D1B'} onMouseLeave={e=>e.currentTarget.style.color='#9A9A97'} >{T('Fale Conosco', 'Get in Touch')} →
{/* Service blocks — always visible */}
{servicesData.map((s, i) => { const Icon = serviceIcons[i]; return (
{/* Service header row */}
{s.num}
{!isMobile && }

{s.title}

{s.desc}

{/* Sub-items */}
3 ? 'repeat(4, 1fr)' : 'repeat(3, 1fr)'), gap: isMobile ? '20px 16px' : '32px 40px', }}> {s.items.map((item, j) => { const SubIcon = subIcons[i][j]; return (
{SubIcon &&
}

{item.title}

{!isMobile &&

{item.desc}

}
); })}
{/* Divider */}
); })}
); } Object.assign(window, { Services });