/* Shared data & components used by both variants */

const CONTENT = {
  brand: 'Kern',
  tagline: 'Agencia de publicidad digital',
  heroLine1: 'Publicidad',
  heroLine2: 'que convierte.',
  heroLine3: 'Sin promesas, con resultados.',
  heroSub: 'Gestionamos Google Ads y Meta Ads con foco 100% en ventas reales. Campañas, creatividades y optimización diaria para ecommerce, servicios y B2B en Chile.',
  whatsapp: '+56 9 7376 9649',
  whatsappLink: 'https://wa.me/56973769649?text=Hola%2C%20quiero%20m%C3%A1s%20informaci%C3%B3n%20sobre%20publicidad%20digital',
  callLink: 'https://wa.me/56973769649?text=Hola%2C%20quiero%20agendar%20una%20evaluaci%C3%B3n%20gratuita',

  // What we are NOT (vs what we ARE)
  difference: {
    notUs: [
      'Subir anuncios y esperar',
      'Reportes con métricas vacías',
      'Creativos genéricos sin testing',
      'Optimizar una vez al mes',
      'Hablar de "alcance" e "impresiones"',
      'Tratarte como un cliente más',
    ],
    us: [
      'Operamos como tu equipo de performance',
      'Decisiones basadas en datos reales',
      'Creativos producidos para tu marca, testing semanal',
      'Optimización diaria sobre conversiones reales',
      'Solo hablamos de ROAS, CPA y ventas',
      'Account manager dedicado, somos partners',
    ],
  },

  // Requirements to work together — filters & elevates
  requirements: [
    { icon: '01', title: 'Negocio en marcha', desc: 'Tu empresa ya factura de manera consistente. No trabajamos con proyectos en idea — necesitamos data real para optimizar.' },
    { icon: '02', title: 'Inversión publicitaria mínima', desc: 'Presupuesto mensual desde $500.000 CLP en pauta (aparte de la fee de gestión). Sin inversión suficiente, los resultados no escalan.' },
    { icon: '03', title: 'Margen sano', desc: 'Margen de contribución mínimo del 30%. Necesario para que la matemática del crecimiento con publicidad cierre.' },
    { icon: '04', title: 'Capacidad operativa', desc: 'Que puedas atender un aumento de leads/ventas sin que se caiga el servicio. Vender más exige operar más.' },
    { icon: '05', title: 'Acceso a tus números', desc: 'Compartes tus métricas reales: ventas, costos, márgenes y CRM. Sin transparencia no hay estrategia.' },
    { icon: '06', title: 'Mentalidad de partner', desc: 'Buscas un socio estratégico de largo plazo, no un proveedor de tareas. Trabajamos con compromiso mínimo de 3 meses.' },
  ],

  // What's included — the full system
  system: [
    'Auditoría profunda de tu ecosistema digital',
    'Reestructuración total de campañas existentes',
    'Estrategia omnicanal (Google + Meta + TikTok)',
    'Producción de creativos gráficos mensuales',
    'Grabación de videos y UGC en tu locación',
    'Testing acelerado de anuncios cada semana',
    'Tracking server-side: GA4 + CAPI + Pixel',
    'Optimización de landing y tasa de conversión',
    'Email marketing y flujos de retención',
    'Estrategias de Growth para aumentar LTV',
    'Reportes simples y reuniones quincenales',
    'Account manager y equipo dedicado',
  ],

  // FAQ to close objections
  faq: [
    { q: '¿Cuánto demora ver resultados?', a: 'Las primeras campañas optimizadas salen a producción en 7–14 días. Resultados medibles consistentes los esperamos en el mes 2. La maduración del sistema toma 90 días.' },
    { q: '¿Trabajan con presupuestos pequeños?', a: 'Necesitamos un mínimo de $500.000 CLP/mes en inversión publicitaria (aparte de nuestra fee). Bajo eso, el costo de testing se come la rentabilidad.' },
    { q: '¿Puedo cancelar cuando quiera?', a: 'Pedimos un compromiso mínimo de 3 meses. Es el tiempo real que demora estructurar tracking, levantar creativos, testear y empezar a escalar lo que funciona.' },
    { q: '¿Qué incluye exactamente la fee mensual?', a: 'Estrategia, gestión de campañas, optimización diaria, creativos gráficos, video y reportes. La inversión en anuncios se paga aparte directamente a Google/Meta.' },
    { q: '¿Trabajan con servicios o solo ecommerce?', a: 'Ambos. Tenemos casos en ecommerce, B2B, servicios profesionales y lead generation. Lo importante es que el modelo de negocio cierre con publicidad pagada.' },
    { q: '¿Qué pasa con los assets si dejamos de trabajar juntos?', a: 'Todas las cuentas (Google Ads, Meta, GA4, Pixel) son tuyas. Te dejamos todo documentado, con tracking funcionando y campañas auditables.' },
  ],

  services: [
    { id: 'google', name: 'Google Ads', desc: 'Search, Performance Max, Shopping y YouTube. Campañas con intención de compra, puestas a punto cada semana.', points: ['Search + PMax', 'Shopping Ads', 'Remarketing', 'YouTube Ads'] },
    { id: 'meta', name: 'Meta Ads', desc: 'Facebook e Instagram. Creatividades pensadas para el feed, testing constante y audiencias que convierten.', points: ['Feed + Reels', 'Advantage+ Shopping', 'Retargeting', 'Lookalikes'] },
    { id: 'creative', name: 'Creativos', desc: 'Piezas gráficas y video publicitario optimizados para captar atención en los primeros 3 segundos.', points: ['Video ads', 'Static + Carrusel', 'UGC creative', 'Copy que vende'] },
    { id: 'tracking', name: 'Tracking & Data', desc: 'Medimos lo que importa. GA4, CAPI, Pixel y eventos servidor-a-servidor para optimizar sobre datos reales.', points: ['GA4 + Looker', 'Conversions API', 'Pixel avanzado', 'Reportes claros'] },
  ],

  plans: [
    { tier: 'COTIZACIÓN PERSONALIZADA', popular: true,
      features: ['Cantidad de campañas según tu negocio', 'Auditoría inicial completa', 'Estudio de competencia', 'Tracking server-to-server', 'Gestión y optimización diaria', 'Creativos gráficos y video', 'Account manager dedicado', 'Reportes claros cada mes'] },
  ],

  pricingFactors: [
    { k: 'Industria y competencia', d: 'Sectores muy competitivos requieren más testing y mayor inversión creativa.' },
    { k: 'Plataformas activas', d: 'Google, Meta, TikTok — cada plataforma agrega operación, creativos y optimización.' },
    { k: 'Volumen de campañas', d: 'A más campañas activas, más complejidad de estructura y management.' },
    { k: 'Necesidad creativa', d: 'Producción de video, UGC y assets gráficos según tu marca y volumen.' },
  ],

  cases: [
    { name: 'CALVAC', tag: 'E-commerce industrial', metric: '$700M+', unit: 'mensuales', delta: '+∞', copy: 'De 0 ecommerce a cientos de millones mensuales. Construimos la tienda online y escalamos con Google + Meta.' },
    { name: 'ENUSS', tag: 'Lifestyle / Retail', metric: '$70M', unit: 'mensuales', delta: '×70', copy: 'De emprendimiento sin estrategia a más de $70M mensuales con una operación digital sólida.' },
    { name: 'REDDOT', tag: 'B2B — Apiladores', metric: '$300M', unit: 'mensuales', delta: '0 → 300M', copy: 'De marca inexistente a líder del mercado. Logo, web, campañas y escalamiento continuo.' },
    { name: 'BIOMA COFFEE', tag: 'Café especialidad', metric: '$9M', unit: 'mensuales', delta: '×12', copy: 'De $700.000 a $9M mensuales en solo 3 meses. Reestructura de funnel + campañas de intención.' },
    { name: 'ASIA VENDING', tag: 'Vending — CL & PE', metric: 'Líder', unit: 'del rubro', delta: 'Expansión', copy: 'De operación local a empresa líder con presencia en Chile y Perú.' },
    { name: 'AGUA PURA', tag: 'USA — California', metric: 'Rentable', unit: 'en USA', delta: '350M TAM', copy: 'Rebranding, sitio y campañas en uno de los mercados más caros del mundo. Operación rentable.' },
  ],

  process: [
    { n: '01', title: 'Auditoría y descubrimiento', desc: 'Entendemos tu negocio, tus números y tu mercado. Detectamos oportunidades y cuellos de botella.' },
    { n: '02', title: 'Estrategia y setup', desc: 'Diseñamos estructura de cuenta, tracking server-to-server y plan creativo por plataforma.' },
    { n: '03', title: 'Lanzamiento', desc: 'Puesta en marcha con fases controladas. Aprendemos rápido con inversión inteligente.' },
    { n: '04', title: 'Optimización continua', desc: 'Ajustes diarios/semanales según performance real. Escalamos lo que funciona.' },
    { n: '05', title: 'Reportes y escalamiento', desc: 'Reportes claros cada mes. Planificamos el siguiente salto de facturación contigo.' },
  ],

  stats: [
    { k: 'Clientes activos', v: 47, suffix: '+' },
    { k: 'Ventas gestionadas', v: 240, suffix: 'B+', prefix: '$', note: 'CLP · últimos 8 años' },
    { k: 'ROAS promedio', v: 4.8, decimals: 1, suffix: '×' },
    { k: 'Años operando', v: 8, suffix: '' },
  ],

  testimonials: [
    { q: 'Pasamos de vender poco a vender todos los días. Lo más importante: entienden el negocio, no solo la pauta.', who: 'Hermanos Facuse', role: 'Fundadores, Enuss' },
    { q: 'La diferencia es la optimización real. No son reportes bonitos, son decisiones de plata que mueven la aguja cada semana.', who: 'Bruno A.', role: 'Dirección, Calvac' },
    { q: 'En 3 meses multiplicamos x12 las ventas. Cambió la forma en que entendemos nuestro propio negocio.', who: 'Jorge González', role: 'CEO, Bioma Coffee' },
    { q: 'Arrancamos de cero y hoy facturamos más de $300 millones mensuales. Kern es parte del equipo, no un proveedor.', who: 'Marcelo Requena', role: 'Dirección, Reddot Chile' },
  ],

  logos: [
    // Fila 1: marcas más reconocibles / cortas
    'CALVAC', 'ASIA VENDING', 'ENUSS', 'REDDOT', 'BIOMA COFFEE', 'KALDI COFFEE',
    'SETRA', 'PIAMONTE', 'CHEZ POLLO', 'BTC', 'PUNTO MARINO', 'CENTRAL NAVARRO',
    'ORIGEN MODULAR', 'ALL THE SENSES', 'ARABICO',
    // Fila 2 (la que se invierte): el resto
    'SAGEPRES', 'WILDPRO', 'PETERS GOURMET', 'ZAPATILLAS VICTORIA', 'LA MESERIA',
    'CLAN CAPITAL', 'CAS', 'CREAUDITORES', 'FAMILIA EN RED', 'RESONANCE',
    'ACROSSMOVE', 'PRIMERA CLASE VIAJES', 'ARQA', 'CAMBER PLAST',
    'NOW COMUNICACIONES', 'GRÚAS EL TRANSPORTADOR',
  ],
};

// Custom cursor
function CustomCursor({ accent = '#ff3d00', mode = 'monolith' }) {
  const isTouch = typeof window !== 'undefined' && (
    window.matchMedia('(pointer: coarse)').matches || 'ontouchstart' in window
  );
  if (isTouch) return null;
  const m = useMouse();
  const [hovering, setHovering] = useState(false);
  const [label, setLabel] = useState('');
  const ringRef = useRef(null);
  const pos = useRef({ x: 0, y: 0 });

  useEffect(() => {
    document.body.classList.add('has-cursor');
    return () => document.body.classList.remove('has-cursor');
  }, []);

  useEffect(() => {
    let raf;
    const animate = () => {
      pos.current.x = lerp(pos.current.x, m.x, 0.18);
      pos.current.y = lerp(pos.current.y, m.y, 0.18);
      if (ringRef.current) {
        ringRef.current.style.transform = `translate(${pos.current.x}px, ${pos.current.y}px) translate(-50%,-50%)`;
      }
      raf = requestAnimationFrame(animate);
    };
    raf = requestAnimationFrame(animate);
    return () => cancelAnimationFrame(raf);
  }, [m.x, m.y]);

  useEffect(() => {
    const onOver = (e) => {
      const el = e.target.closest('[data-cursor]');
      if (el) {
        setHovering(true);
        setLabel(el.dataset.cursor || '');
      } else {
        const interactive = e.target.closest('a,button');
        setHovering(!!interactive);
        setLabel(interactive ? '' : '');
      }
    };
    document.addEventListener('mouseover', onOver);
    return () => document.removeEventListener('mouseover', onOver);
  }, []);

  return (
    <>
      <div style={{position:'fixed',top:0,left:0,width:6,height:6,background:'#fff',borderRadius:'50%',zIndex:10000,pointerEvents:'none',transform:`translate(${m.x}px,${m.y}px) translate(-50%,-50%)`,mixBlendMode:mode==='nebula'?'normal':'difference'}}/>
      <div ref={ringRef} style={{
        position:'fixed',top:0,left:0,
        width:hovering?72:36,height:hovering?72:36,
        border:`1.5px solid ${hovering?accent:'rgba(255,255,255,.5)'}`,
        borderRadius:'50%',zIndex:9999,pointerEvents:'none',
        transition:'width .25s, height .25s, border-color .25s, background .25s',
        background: hovering && label ? accent : 'transparent',
        display:'grid',placeItems:'center',
        fontFamily:'JetBrains Mono,monospace',fontSize:10,letterSpacing:'.1em',
        color:'#0a0a0a',fontWeight:700,textTransform:'uppercase'
      }}>
        {hovering && label ? label : ''}
      </div>
    </>
  );
}

// Animated marquee
function Marquee({ children, speed = 40, reverse = false, className, style }) {
  return (
    <div className={className} style={{overflow:'hidden',whiteSpace:'nowrap',...style}}>
      <div style={{display:'inline-flex',animation:`kern-marquee ${speed}s linear infinite ${reverse?'reverse':''}`}}>
        <span style={{display:'inline-flex'}}>{children}</span>
        <span style={{display:'inline-flex'}} aria-hidden="true">{children}</span>
      </div>
    </div>
  );
}

// Number format
const fmtCLP = (n) => '$' + n.toLocaleString('es-CL');

Object.assign(window, { CONTENT, CustomCursor, Marquee, fmtCLP });
