// chat-widget.jsx — Lasso, asistente SensStyle

const { useState: useChatState, useEffect: useChatEffect, useRef: useChatRef } = React;

// ── Bot avatar (real image) ────────────────────────────────────────────────────
function LassoAvatar({ size = 36 }) {
  return (
    <>
      <img 
        src="avatar/lasso-avatar.webp" 
        alt="Lasso - Asistente SensStyle"
        style={{ 
          width: size, 
          height: size, 
          borderRadius: '50%', 
          objectFit: 'cover',
          objectPosition: 'center 30%',
          border: '2px solid rgba(245,237,224,0.5)',
          boxShadow: '0 2px 8px rgba(0,0,0,0.3)',
          flexShrink: 0
        }}
        onError={(e) => {
          e.target.style.display = 'none';
          e.target.nextSibling.style.display = 'flex';
        }}
      />
      <div style={{ 
        width: size, 
        height: size, 
        background: 'var(--gold-600)', 
        borderRadius: '50%', 
        display: 'none', 
        alignItems: 'center', 
        justifyContent: 'center', 
        flexShrink: 0 
      }}>
        <svg width={size * 0.62} height={size * 0.62} viewBox="0 0 32 24" fill="none">
          <ellipse cx="16" cy="18" rx="15" ry="4" fill="rgba(245,237,224,0.9)"/>
          <path d="M8 18 C8 18 9 8 16 7 C23 8 24 18 24 18Z" fill="rgba(245,237,224,0.9)"/>
          <path d="M9.5 16.5 Q16 14.5 22.5 16.5" stroke="var(--gold-300)" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
          <path d="M13 8 Q16 6.5 19 8" stroke="rgba(27,18,10,0.25)" strokeWidth="1" fill="none" strokeLinecap="round"/>
        </svg>
      </div>
    </>
  );
}

// ── Knowledge base (ES / EN / FR) ────────────────────────────────────────────
const KB = {
  es: {
    botName: 'Lasso',
    welcome: '¡Hola! Soy **Lasso**, el asistente de SensStyle 🤠\n\n¿En qué te puedo ayudar hoy?',
    welcomeChips: ['Ver sombreros', 'Correas y hebillas', 'Ser distribuidor', 'Cuidado del cuero', 'Sobre SensStyle'],
    headerSub: 'Lasso responde al instante',
    inputPlaceholder: 'Escríbele a Lasso...',
    send: 'Enviar',
    waOptions: 'Hablar con una persona:',
    waBtn: 'WhatsApp →',
    typing: 'Lasso está escribiendo...',
    intents: {
      /* ── SOMBREROS ── */
      sombreros: {
        reply: 'Tenemos **5 estilos de sombrero** vaquero, todos disponibles en fieltro artesanal:\n• **8 Segundos** — copa alta, ala curvada. El más imponente.\n• **Rebelde** — ala ancha, perfil dramático.\n• **Llanero** — el clásico Cattleman, elegante y versátil.\n• **Randao** — pellizco frontal pronunciado, look atrevido.\n• **Frontier (Gus)** — copa ligeramente inclinada, muy llevable.\n\n¿Sobre cuál quieres saber más?',
        chips: ['Sombrero 8 Segundos', 'Sombrero Rebelde', 'Sombrero Llanero', '¿Qué material elijo?', '¿Cómo tomo mi talla?'],
      },
      estilo8s: {
        reply: 'El **8 Segundos** es nuestro sombrero estrella. Su nombre viene del tiempo mínimo en rodeo para una monta válida.\n\n✦ Copa: 4–5 pulgadas de altura\n✦ Ala: moderada con curva lateral pronunciada\n✦ Ideal para: rodeos, eventos, uso diario de impacto\n✦ Disponible en negro, café tabaco, gris y hueso\n\nEs la elección perfecta para quienes quieren presencia donde entren.',
        chips: ['¿Cómo elegir el color?', '¿Cómo tomo mi talla?', 'Cuidado del sombrero', 'Ver catálogo'],
      },
      estiloRebelde: {
        reply: 'El **Rebelde** es para quienes no pasan desapercibidos. De ala extra ancha y copa moderada, domina cualquier espacio.\n\n✦ Ala: 4.5–5.5 pulgadas\n✦ Silueta dramática y cinematográfica\n✦ Ideal para: eventos nocturnos, festivales, fotografía\n✦ Combina perfecto con botas de cuero y jeans oscuros\n\nEs el sombrero que la gente pregunta al verlo puesto.',
        chips: ['¿Cómo tomo mi talla?', '¿Qué material elijo?', 'Ver catálogo', 'Sombrero Llanero'],
      },
      estiloLlanero: {
        reply: 'El **Llanero (Cattleman)** es el sombrero vaquero más clásico y reconocible del mundo.\n\n✦ Copa: trilobulada, altura media\n✦ Ala: 3.5–4 pulgadas, ligeramente curvada\n✦ Versátil: funciona desde el rancho hasta una reunión de negocios\n✦ El favorito de distribuidores y compradores frecuentes\n\nSi es tu primer sombrero vaquero, el Llanero es el punto de partida ideal.',
        chips: ['Sombrero 8 Segundos', 'Sombrero Frontier', '¿Cómo tomo mi talla?', 'Ver catálogo'],
      },
      estiloFrontier: {
        reply: 'El **Frontier (Gus)** tiene una copa con inclinación frontal suave que le da un carácter propio, menos rígido que el Cattleman.\n\n✦ Copa: inclinada hacia adelante, altura moderada\n✦ Ala: 3.5–4 pulgadas\n✦ Ideal para: uso urbano, viajes, uso cotidiano\n✦ Muy popular en Alberta y Saskatchewan\n\nEs el sombrero que no se siente como un sombrero — se siente como parte de ti.',
        chips: ['Sombrero Rebelde', 'Sombrero Llanero', '¿Qué material elijo?', 'Ver catálogo'],
      },
      talla: {
        reply: 'Medir la talla es fácil. Necesitas una cinta métrica flexible:\n\n**1.** Rodea tu cabeza a la altura de la frente, unos 2 cm sobre las cejas\n**2.** Anota la medida en centímetros\n**3.** Usa esta guía:\n• 54–55 cm → Talla S\n• 56–57 cm → Talla M\n• 58–59 cm → Talla L\n• 60–61 cm → Talla XL\n• 62+ cm → Talla XXL\n\nSi estás entre dos tallas, elige **la mayor**. El fieltro se ajusta ligeramente con el uso.',
        chips: ['¿Qué estilo me recomiendas?', 'Tipos de sombreros', '¿Qué material elijo?'],
      },
      materialesSombrero: {
        reply: 'Los sombreros SensStyle se fabrican en:\n\n✦ **Fieltro de lana prensada** — El clásico. Cálido, moldeable con vapor, mantiene su forma. Para primavera, otoño e invierno.\n✦ **Paja natural tejida** — Más ventilado y ligero. Ideal para verano y climas cálidos.\n✦ **Cuero genuino** — El más duradero. Carácter urbano y rudo. Para quienes quieren algo diferente.\n\nEl más vendido entre distribuidores es el **fieltro de lana** por su versatilidad todo el año.',
        chips: ['¿Qué estilo me recomiendas?', 'Cuidado del sombrero', '¿Cómo tomo mi talla?'],
      },
      colores: {
        reply: 'Los colores disponibles varían por estilo, pero en general manejamos:\n\n✦ **Negro** — el más versátil y formal\n✦ **Café tabaco** — el clásico vaquero por excelencia\n✦ **Gris** — perfil contemporáneo y urbano\n✦ **Hueso / Crema** — elegante, ideal para eventos y temporadas cálidas\n✦ **Café claro** — natural, cálido, muy popular en ranchos\n\nLas correas y hebillas también van en tonos café, negro y cognac.',
        chips: ['Tipos de sombreros', '¿Cómo tomo mi talla?', 'Ver catálogo'],
      },
      /* ── CORREAS ── */
      correas: {
        reply: 'Nuestras **correas de cuero** son de distribución mayorista exclusiva. Tenemos dos líneas:\n\n✦ **Curtido vegetal** — proceso artesanal, más rígido al inicio, se ablanda con el uso. El más duradero.\n✦ **Curtido al cromo** — más suave desde el primer día, acabados más uniformes.\n\nAncho disponible: **3 cm, 4 cm y 5 cm**. A mayor ancho, más impacto visual vaquero.',
        chips: ['¿Qué ancho elegir?', 'Cómo combinar correa y hebilla', 'Cuidado de correas', 'Ser distribuidor'],
      },
      anchoCorrea: {
        reply: 'El **ancho de la correa** depende de tu estilo y complexión:\n\n✦ **3 cm** — perfil más urbano y discreto. Ideal para jeans ajustados o pantalones casuales.\n✦ **4 cm** — el equilibrio perfecto. Funciona en casi cualquier ocasión vaquera.\n✦ **5 cm** — presencia máxima. Para eventos, rodeos y quienes quieren que el cinturón hable primero.\n\nPara uso diario te recomendamos **4 cm**.',
        chips: ['Cómo combinar correa y hebilla', 'Cuidado de correas', 'Ser distribuidor'],
      },
      combinacion: {
        reply: 'La combinación perfecta de **correa y hebilla** sigue estas reglas básicas:\n\n✦ Cuero café / cognac → hebilla en latón o alpaca envejecida\n✦ Cuero negro → hebilla en plata o acero inoxidable\n✦ Cuero natural → hebilla en cualquier metal — van todos bien\n\nEn cuanto al tamaño: la hebilla debe ser proporcional al ancho de la correa. Una hebilla de 8 cm en una correa de 3 cm se ve desproporcionada.',
        chips: ['Tipos de hebillas', 'Ancho de correa', 'Ver catálogo'],
      },
      cuidadoCorrea: {
        reply: 'Para que tu correa de cuero dure décadas:\n\n**Limpieza:**\n• Usa un trapo suave seco para el polvo diario\n• Para suciedad mayor, saddle soap con esponja húmeda\n\n**Nutrición (cada 3–4 meses):**\n• Aceite de neatsfoot, lanolina o cera de abeja\n• Frota en círculos, deja reposar 30 min\n\n**Protección:**\n• Spray impermeabilizante a base de cera (no silicona)\n\n**Almacenamiento:**\n• Enrollada sin doblar, lugar fresco y ventilado',
        chips: ['Cuidado del sombrero', 'Cuidado de hebillas', 'Ser distribuidor'],
      },
      /* ── HEBILLAS ── */
      hebillas: {
        reply: 'Las **hebillas SensStyle** son piezas artesanales con grabados únicos. Disponibles en:\n\n✦ **Alpaca (metal blanco)** — aspecto similar a la plata, económica y elegante\n✦ **Latón bañado** — tono dorado cálido, muy tradicional en el estilo western\n✦ **Acero inoxidable** — la más resistente, ideal para uso en campo\n✦ **Plata esterlina** — línea premium, para coleccionistas y eventos especiales\n\nLos grabados incluyen: caballos, rosas, iniciales, escenas de rodeo y motivos florales.',
        chips: ['¿Cuál material elijo?', 'Cómo combinar correa y hebilla', 'Cuidado de hebillas', 'Ser distribuidor'],
      },
      materialHebilla: {
        reply: 'Para elegir el **material de la hebilla** considera esto:\n\n✦ **Uso diario en campo** → acero inoxidable (más resistente al golpe y la intemperie)\n✦ **Uso en eventos y reuniones** → alpaca o latón (mejor presentación)\n✦ **Colección o regalo especial** → plata esterlina (pieza que se hereda)\n✦ **Presupuesto equilibrado** → alpaca (excelente relación precio-calidad)\n\n¿Tienes una ocasión específica en mente?',
        chips: ['Es para uso diario', 'Es para un evento', 'Es de regalo', 'Ver catálogo'],
      },
      cuidadoHebilla: {
        reply: 'Para mantener tu **hebilla como nueva**:\n\n✦ Limpia con un trapo suave seco después de cada uso\n✦ Usa pulidor de metales específico para el material (alpaca, latón, plata)\n✦ Evita el contacto con agua salada o productos químicos\n✦ Si se opaca, un trapo con un poco de bicarbonato y agua tibia funciona para alpaca y acero\n✦ Guarda en paño de franela cuando no la uses — evita que se raye\n\nLas de plata esterlina se pulen igual que la joyería de plata.',
        chips: ['Cuidado de correas', 'Tipos de hebillas', 'Ver catálogo'],
      },
      /* ── CUERO & MATERIALES ── */
      cueroGenuino: {
        reply: '**Cuero genuino vs sintético** — la diferencia importa:\n\nEl cuero genuino:\n• Tiene variaciones naturales de textura y color\n• Desarrolla pátina con el tiempo (se vuelve más bonito)\n• Al doblarlo arruga y vuelve a la forma gradualmente\n• Absorbe agua lentamente\n• Huele orgánico, no a plástico\n• Dura décadas con cuidado básico\n\nEl sintético se descascara y agrieta en 2–3 años sin posibilidad de reparación.',
        chips: ['Tipos de curtido', 'Cómo cuidar el cuero', 'Ver catálogo'],
      },
      curtido: {
        reply: 'El **tipo de curtido** define la personalidad del cuero:\n\n✦ **Curtido vegetal** — proceso artesanal con taninos de plantas. El cuero más "vivo": respira, se moldea, mejora con el uso. Es el estándar de la marroquinería de calidad.\n✦ **Curtido al cromo** — proceso industrial, más rápido. Suave desde el inicio, uniforme. Menos "carácter" pero más consistente.\n✦ **Wet blue** — curtido al cromo sin acabado final. Base para otros procesos.\n\nNuestras correas premium son de **curtido vegetal** exclusivamente.',
        chips: ['Cuero genuino vs sintético', 'Cómo cuidar el cuero', 'Ser distribuidor'],
      },
      cuidado: {
        reply: 'El cuidado del cuero es simple si lo haces con regularidad:\n\n**Paso 1 — Limpieza** (mensual o cuando sea necesario)\nTrapo suave + saddle soap para suciedad. Nunca agua en exceso.\n\n**Paso 2 — Nutrición** (cada 3–6 meses)\nAceite de neatsfoot, lanolina o cera de abeja. Frota, deja reposar, pule.\n\n**Paso 3 — Protección** (tras nutrir)\nSpray impermeabilizante a base de cera.\n\n**Almacenamiento:** lugar seco, fresco, alejado del sol directo.\n\n¿Sobre qué pieza quieres más detalle?',
        chips: ['Cuidado del sombrero', 'Cuidado de correas', 'Cuidado de hebillas'],
      },
      cuidadoSombrero: {
        reply: 'El **sombrero de fieltro** merece atención especial:\n\n✦ **Cepillado diario:** cepillo de cerdas suaves en sentido antihorario (izquierda → derecha vista desde arriba). Retira polvo sin alterar las fibras.\n✦ **Manchas de grasa:** talco o maicena sobre la mancha, 8 horas, luego cepilla.\n✦ **Deformaciones:** vapor de olla o vaporizador de ropa a distancia segura. Moldea con manos mientras está cálido, deja enfriar en forma.\n✦ **Lluvia:** deja secar al aire naturalmente. Nunca con secadora.\n✦ **Almacenamiento:** siempre con el ala hacia arriba o sobre la copa, en su caja original.',
        chips: ['Cuidado de correas', 'Materiales del sombrero', 'Ver catálogo'],
      },
      /* ── DISTRIBUIDORES ── */
      distribuidor: {
        reply: '¡Excelente decisión! El **Programa Mayorista SensStyle** tiene todo para hacer crecer tu negocio:\n\n✦ Acceso a precios de distribuidor (30–45% bajo PVP)\n✦ Catálogo completo con nuevos modelos cada temporada\n✦ Mínimo por pedido: **12 unidades** (pueden ser estilos mixtos)\n✦ Tiempo de aprobación: **24–48 horas**\n✦ Portal digital exclusivo con historial de pedidos\n\n¿Quieres comenzar el proceso?',
        chips: ['Requisitos del programa', '¿Cómo aplico?', '¿Cuánto es el pedido mínimo?', 'Hablar con un asesor'],
      },
      requisitos: {
        reply: 'Para unirte al programa mayorista necesitas:\n\n**Documentos:**\n• Nombre de tu negocio o razón social\n• Correo electrónico corporativo\n• Número de registro fiscal (si aplica)\n• Provincia donde operas\n\n**Operativos:**\n• Pedido inicial mínimo de **12 unidades**\n• Capacidad de reorden trimestral\n\n**Proceso:**\n1. Envías tu solicitud por WhatsApp o correo\n2. Nuestro equipo la revisa (24–48 hrs)\n3. Accedes al portal con precios mayoristas\n4. Haces tu primer pedido\n\n¿Empezamos?',
        chips: ['Sí, quiero aplicar', 'Costos del programa', 'Hablar con un asesor'],
      },
      aplicar: {
        reply: 'Perfecto. El proceso más rápido es por **WhatsApp** — solo dinos:\n\n• Nombre de tu tienda / negocio\n• Provincia donde estás\n• Qué productos te interesan (sombreros, correas, hebillas o todo)\n• Tu email para el acceso al portal\n\nNuestro equipo te responde en menos de 24 horas con tu acceso y lista de precios. ¿Te paso al chat con un asesor?',
        chips: ['Sí, abrir WhatsApp', 'Tengo más preguntas'],
      },
      minimo: {
        reply: 'El **pedido mínimo** es de **12 unidades** por orden. Pueden ser artículos mixtos:\n• 6 sombreros + 4 correas + 2 sets de hebilla, por ejemplo.\n\nPara reordenes frecuentes el mínimo baja a **6 unidades** una vez que tu cuenta lleva 3 pedidos.\n\nNo hay contrato de exclusividad ni permanencia mínima.',
        chips: ['¿Cómo aplico?', 'Formas de pago', 'Tiempos de entrega'],
      },
      pago: {
        reply: 'Aceptamos las siguientes **formas de pago** para distribuidores:\n\n✦ **Transferencia bancaria** (el más común entre distribuidores)\n✦ **E-transfer** (para Canadá, sin cargo)\n✦ **Tarjeta de crédito/débito** (con cargo de procesamiento del 2.5%)\n✦ **Interac** (para distribuidores en Canadá)\n\nPara primeros pedidos requerimos **pago anticipado al 100%**. A partir del tercer pedido puedes acceder a crédito de 30 días.',
        chips: ['Tiempos de entrega', 'Pedido mínimo', '¿Cómo aplico?'],
      },
      envio: {
        reply: '**Tiempos de entrega por provincia:**\n\n✦ Alberta, BC → 2–4 días hábiles\n✦ Saskatchewan, Manitoba → 3–5 días\n✦ Ontario, Quebec → 4–7 días\n✦ Marítimas → 5–8 días\n✦ Territorios (NT, YK, NU) → 7–12 días\n\nEnviamos con **Canada Post Xpresspost** y **Purolator**. Número de rastreo incluido en todas las órdenes.\n\nEl costo de envío se calcula según el peso y la provincia.',
        chips: ['Pedido mínimo', 'Formas de pago', 'Ser distribuidor'],
      },
      garantia: {
        reply: 'Todos los productos SensStyle incluyen:\n\n✦ **Garantía de manufactura:** 6 meses contra defectos de fabricación\n✦ **Política de devolución:** 30 días para piezas en condición original y sin uso\n✦ **Cambio por talla:** sin costo adicional dentro de los primeros 15 días\n\nLos problemas derivados de uso incorrecto o falta de mantenimiento no están cubiertos por la garantía, pero nuestro equipo siempre busca soluciones.\n\n¿Hay algún problema específico con un producto?',
        chips: ['Hablar con un asesor', 'Cómo cuidar el cuero', 'Ser distribuidor'],
      },
      /* ── SOBRE LA MARCA ── */
      marca: {
        reply: '**SensStyle** nació como puente entre los mejores talleres curtidores del sur y los rancheros, tiendas y jinetes del norte canadiense.\n\nCada pieza pasa por cuatro manos antes de llegar al distribuidor:\n\n1. **El curtidor** — selecciona y prepara el cuero\n2. **El artesano** — corta, cose y moldea\n3. **El inspector** — revisa cada costuras y acabado\n4. **El empacador** — prepara con cuidado para el viaje\n\nDistribuimos en **todo Canadá** desde 2005, con más de 40 distribuidores activos.',
        chips: ['Ver catálogo', 'Ser distribuidor', '¿Dónde están ubicados?'],
      },
      ubicacion: {
        reply: 'Nuestra sede está en **Montreal, Quebec, Canadá**:\n\n📍 5420 Boulevard Lévis, Saint-Léonard, QC\n📧 info@sensstyle.com\n📞 +1 514 867 7519\n\n⏰ Lunes a viernes, 9:00–18:00 MST\n\nTenemos distribuidores en 11 provincias y 3 territorios. ¿Quieres saber si hay uno cerca de ti?',
        chips: ['Ver distribuidores', 'Hablar por WhatsApp', 'Ser distribuidor'],
      },
      distribuidores: {
        reply: 'Tenemos distribuidores autorizados en:\n\n🇨🇦 **Alberta** — Calgary, Edmonton\n🇨🇦 **BC** — Vancouver, Abbotsford\n🇨🇦 **Saskatchewan** — Regina, Saskatoon\n🇨🇦 **Manitoba** — Winnipeg\n🇨🇦 **Ontario** — Toronto, Ottawa\n🇨🇦 **Quebec** — Montréal, Québec City\n🇨🇦 **Nova Scotia** — Halifax\n\n¿Buscas uno en tu ciudad? Escríbenos por WhatsApp y te orientamos al más cercano.',
        chips: ['Hablar por WhatsApp', 'Ser distribuidor', 'Ver catálogo'],
      },
      ocasiones: {
        reply: '¿Qué sombrero para qué ocasión? Aquí va la guía:\n\n🤠 **Rodeo / Charreada** → 8 Segundos (presencia máxima)\n🎪 **Festival / Feria** → Rebelde o 8 Segundos\n🏙️ **Uso urbano diario** → Frontier (Gus) o Llanero\n👔 **Reunión / Evento formal** → Llanero en fieltro negro\n🌾 **Trabajo en rancho** → Llanero o Randao (más funcionales)\n🌞 **Verano / Calor** → cualquier estilo en paja natural\n📸 **Sesión fotográfica** → Rebelde (el más fotogénico)\n\n¿Tienes alguna ocasión específica?',
        chips: ['Sombrero 8 Segundos', 'Sombrero Rebelde', 'Sombrero Llanero', '¿Cómo tomo mi talla?'],
      },
      regalo: {
        reply: 'Los productos SensStyle son **regalos que impresionan** y duran décadas. Las opciones más populares:\n\n🎁 **Set correa + hebilla** — clásico, funcional, para cualquier vaquero\n🎁 **Sombrero Llanero** — el más universal y apreciado\n🎁 **Sombrero 8 Segundos** — para quienes les gusta destacar\n\nPara regalos corporativos o en cantidad, habla con nuestro equipo — podemos coordinar grabados personalizados en hebillas.\n\n¿Sabes el estilo y talla de la persona?',
        chips: ['¿Cómo tomo la talla?', 'Hablar con un asesor', 'Ver catálogo'],
      },
      personalizado: {
        reply: 'Sí, ofrecemos **pedidos personalizados** para distribuidores y clientes corporativos:\n\n✦ Grabados en hebillas (iniciales, logos, fechas)\n✦ Pedidos en colorways especiales\n✦ Etiquetado con la marca del distribuidor (private label)\n✦ Packaging premium para regalos corporativos\n\nEl mínimo para pedidos personalizados es **24 unidades** y el tiempo de producción es de **3–4 semanas**.\n\n¿Cuántas unidades necesitas?',
        chips: ['Hablar con un asesor', 'Ser distribuidor', 'Ver catálogo'],
      },
      instagram: {
        reply: 'Nos encuentras en redes con contenido sobre el mundo vaquero, nuevos lanzamientos y cómo usar nuestros productos:\n\n📸 **Instagram:** @sensstyle.ca\n📘 **Facebook:** SensStyle Leather Co.\n\nSi eres distribuidor y tienes tienda, etiquétanos en tus publicaciones — frecuentemente compartimos el contenido de nuestros partners.\n\n¿Quieres ser distribuidor?',
        chips: ['Ser distribuidor', 'Ver catálogo', 'Hablar con un asesor'],
      },
      horario: {
        reply: 'Nuestro horario de atención es:\n\n🕘 **Lunes a Viernes:** 9:00 — 18:00 MST\n📵 Sábado y domingo: sin atención\n\nPor **WhatsApp** respondemos más rápido durante el horario de oficina, generalmente en menos de **60 minutos**.\n\nFuera de horario puedes escribirnos y te respondemos el siguiente día hábil.',
        chips: ['Hablar por WhatsApp', 'Información de contacto', 'Ser distribuidor'],
      },
      contacto: {
        reply: 'Puedes encontrarnos por:\n\n📱 **WhatsApp** — más rápido (respuesta en menos de 1 hora)\n📧 **Email:** info@sensstyle.com\n📞 **Teléfono:** +1 514 867 7519\n📍 **Dirección:** 5420 Boulevard Lévis, Saint-Léonard, QC\n\n¿Prefieres que te conecte directamente con un asesor por WhatsApp?',
        chips: ['Sí, abrir WhatsApp', 'Horario de atención', 'Ser distribuidor'],
      },
      precio: {
        reply: 'Los **precios mayoristas** son exclusivos para distribuidores registrados y están en el portal privado.\n\nLo que sí puedo decirte es que los márgenes para distribuidores van del **30 al 45%** sobre el precio de venta al público, dependiendo del volumen de pedido.\n\nPara ver la lista completa de precios necesitas acceso al portal. El proceso toma 24–48 hrs.',
        chips: ['¿Cómo aplico?', 'Pedido mínimo', 'Hablar con un asesor'],
      },
      catalogo: {
        reply: 'El catálogo SensStyle incluye:\n\n🤠 **Sombreros** — 5 estilos × múltiples colores y materiales\n🪢 **Correas** — curtido vegetal y al cromo, 3 anchos\n🔶 **Hebillas** — grabados artesanales en 4 materiales\n📦 **Sets completos** — correa + hebilla coordinados\n\nPuedes explorar el catálogo visual en la sección **Colección** del menú. Para precios necesitas acceso de distribuidor.',
        chips: ['Ver sombreros', 'Ver correas y hebillas', 'Ser distribuidor'],
      },
      fieltroVsPaja: {
        reply: '**Fieltro vs Paja** — la comparativa honesta:\n\n**Fieltro de lana:**\n✦ Mejor para otoño, invierno y primavera\n✦ Se moldea con vapor, mantiene forma\n✦ Mayor durabilidad general\n✦ Más opciones de colores\n\n**Paja natural:**\n✦ Mejor para verano y climas cálidos\n✦ Más ventilado y ligero\n✦ Requiere más cuidado en lluvia\n✦ Aspecto más casual y artesanal\n\nSi vives en Alberta o Saskatchewan, el **fieltro** te servirá 9 meses del año.',
        chips: ['Tipos de sombreros', 'Cuidado del sombrero', 'Ver catálogo'],
      },
      uso: {
        reply: 'Para llevarlo bien en tu día a día:\n\n🤠 **Cómo ponérselo:** colócalo en la cabeza y ajústalo hasta que quede firme pero sin apretar — no debe moverse al sacudir la cabeza, pero tampoco dejar marca.\n\n🤠 **Cómo quitárselo:** siempre de la copa, nunca del ala. Tomar el ala deforma el sombrero con el tiempo.\n\n🤠 **Con quién:** en interiores formales (iglesia, reuniones) se retira. En exteriores y eventos vaqueros, siempre puesto.\n\n🤠 **Curl del ala:** nunca la dobles tú mismo — el vapor y un artesano son la única forma correcta.',
        chips: ['Cuidado del sombrero', 'Tipos de sombreros', '¿Cómo tomo mi talla?'],
      },
      gracias: {
        reply: '¡Con mucho gusto! 🤠 Si necesitas algo más no dudes en escribirme — estoy aquí todo el día.\n\nY si quieres ver el producto en persona, visita uno de nuestros distribuidores en Canadá. ¡Suerte en la elección!',
        chips: ['Ver sombreros', 'Ser distribuidor', 'Ver distribuidores'],
      },
      noEntiendo: {
        reply: '🤠 Mmm, no estoy seguro de entenderte bien. Te conecto con un asesor que puede ayudarte mejor — responde en menos de 60 minutos.',
        chips: ['Sí, hablar con asesor', 'Ver catálogo', 'Ver sombreros', 'Ser distribuidor'],
      },
      noTengoInfo: {
        reply: 'Para eso tengo a mi equipo humano — ellos tienen todos los detalles y responden en tiempo real. ¿Te conecto por WhatsApp?',
        chips: ['Sí, WhatsApp', 'Ver sombreros', 'Ser distribuidor', 'Sobre SensStyle'],
      },
      noEstoySeguro: {
        reply: 'Buena pregunta. Mis asesores tienen la respuesta exacta. ¿Quieres que te ponga en contacto con ellos por WhatsApp?',
        chips: ['Sí, abrir WhatsApp', 'Ver catálogo', 'Ver distribuidores', 'Cuidado del cuero'],
      },
      maybeAsesor: {
        reply: 'Hmm, eso requiere detalles específicos que mejor te da un asesor. Nosotros respondemos en menos de 60 min por WhatsApp. ¿Te conecto?',
        chips: ['Sí, WhatsApp ahora', 'Ver sombreros', 'Cómo ser distribuidor', 'Ver catálogo'],
      },
      fueraDeAlcance: {
        reply: '🤠 Esa es una pregunta para la que tengo a todo un equipo listo para responder. ¿Te redirigo con ellos por WhatsApp? Tardan menos de una hora.',
        chips: ['Conectar por WhatsApp', 'Ver productos', 'Ser distribuidor', 'Cuidado del cuero'],
      },
      conceptoVago: {
        reply: 'Para eso necesitas a alguien de mi equipo con todos los detalles. Por WhatsApp responden rápido. ¿Te conecto?',
        chips: ['Sí, WhatsApp', 'Ver catálogo', 'Ser distribuidor', 'Sobre SensStyle'],
      },
      navegar: {
        reply: 'Navegar por SensStyle es fácil. Usa el menú principal para explorar:\n\n✦ **Collection** — todos los productos\n✦ **Heritage** — nuestra línea premium\n✦ **Become a retailer** — aplicación mayorista\n✦ **About us** — historia y valores\n\n¿Hay algo específico que busques?',
        chips: ['Ver catálogo', 'Ser distribuidor', 'Historia de SensStyle', 'Colección Heritage'],
      },
      website: {
        reply: 'Bienvenido a SensStyle 🤠 Aquí puedes explorar:\n\n✦ **5 estilos de sombrero** vaquero en fieltro artesanal\n✦ **Correas de cuero** curtido vegetal y cromo\n✦ **Hebillas artesanales** en 4 materiales\n✦ **Programa mayorista** para distribuidores\n\n¿Sobre qué quieres saber más?',
        chips: ['Ver sombreros', 'Correas y hebillas', 'Ser distribuidor', 'Cuidado del cuero'],
      },
      menu: {
        reply: 'El menú tiene todo lo que necesitas:\n\n📦 **Collection** — productos completos\n💎 **Heritage** — línea premium\n🤝 **Become a retailer** — aplicar a distribuidor\n👥 **About us** — nuestra historia\n\n¿Qué sección te interesa?',
        chips: ['Ver colección', 'Línea Heritage', 'Aplicar a distribuidor', 'Historia'],
      },
      buscoAlgo: {
        reply: 'Dime qué estás buscando y te ayudo a encontrarlo 🤠\n\nPodemos hablar de:\n• Sombreros vaqueros (5 estilos)\n• Correas y hebillas de cuero\n• Cómo ser distribuidor\n• Cuidado de productos de cuero\n\n¿Qué necesitas?',
        chips: ['Sombreros', 'Correas', 'Ser distribuidor', 'Cuidado del cuero'],
      },
      noEncontrar: {
        reply: 'Si no encuentras lo que buscas, dime qué es. Puedo:\n• Explicarte dónde está en la página\n• Enviarte un enlace directo\n• Ponerte en WhatsApp con un asesor\n\n¿Cuál prefieres?',
        chips: ['Explica dónde', 'Enviarme enlace', 'WhatsApp con asesor', 'Ver catálogo'],
      },
      dondeEsta: {
        reply: '¿No encuentras algo en la página? 🤠 Puedo ayudarte:\n\n✦ Si buscas un producto → dime qué tipo\n✦ Si buscas una sección → dime su nombre\n✦ Si quieres comprar → te conecto con un asesor\n\n¿Qué necesitas?',
        chips: ['Buscar producto', 'Ir a sección', 'Hablar con asesor', 'Ver catálogo'],
      },
      oferta: {
        reply: 'Las ofertas y promociones van directamente a nuestros distribuidores registrados. Si eres distribuidor, ve al portal exclusivo.\n\n¿No tienes acceso? Puedes aplicar para ser distribuidor — mínimo 12 unidades, precios 30–45% bajo PVP.',
        chips: ['Aplicar a distribuidor', 'Ver catálogo', 'Hablar con asesor', 'Requisitos'],
      },
      descuento: {
        reply: 'Los descuentos son exclusivos para distribuidores registrados en nuestro programa mayorista.\n\n✦ Acceso a precios de distribución\n✦ Márgenes de 30–45% bajo precio de venta\n✦ Mínimo 12 unidades por pedido\n\n¿Aplicas para ser distribuidor?',
        chips: ['Aplicar ahora', 'Ver catálogo', 'Hablar con asesor', 'Requisitos'],
      },
      promo: {
        reply: 'Las promociones van al portal de distribuidores. Si no tienes acceso, puedes solicitarlo — el proceso toma 24–48 horas.\n\n¿Quieres que te ayude a aplicar como distribuidor?',
        chips: ['Aplicar a distribuidor', 'Ver catálogo', 'Requisitos', 'Hablar con asesor'],
      },
      precioMayorista: {
        reply: 'Como distribuidor SensStyle tienes precios exclusivos:\n\n✦ 30–45% bajo el precio de venta público\n✦ Depende del volumen de pedido\n✦ Acceso al portal digital con precios especiales\n\nMínimo: 12 unidades por pedido. ¿Quieres aplicar?',
        chips: ['Aplicar ahora', 'Ver catálogo', 'Requisitos', 'Hablar con asesor'],
      },
      comprar: {
        reply: 'Para comprar al por mayor necesitas ser distribuidor registrado. El proceso:\n\n1. Aplica por WhatsApp o correo\n2. Recibe aprobación en 24–48 horas\n3. Accede al portal con precios mayoristas\n4. Haz tu pedido (mínimo 12 unidades)\n\n¿Empezamos?',
        chips: ['Aplicar ahora', 'Ver catálogo', 'Hablar con asesor', 'Requisitos'],
      },
      vender: {
        reply: 'Si quieres vender productos SensStyle, aplica al programa de distribuidor:\n\n✦ Precios mayoristas (30–45% bajo PVP)\n✦ Catálogo completo\n✦ Mínimo 12 unidades por pedido\n\nEl proceso es simple: escribe a info@sensstyle.com o por WhatsApp.',
        chips: ['Aplicar a distribuidor', 'Ver catálogo', 'Historia de SensStyle', 'Hablar con asesor'],
      },
      cuantoCuesta: {
        reply: 'Los precios al público están en el catálogo. Pero si quieres precios de distribuidor (30–45% menos), aplica al programa mayorista — mínimo 12 unidades.',
        chips: ['Ver catálogo', 'Aplicar a distribuidor', 'Hablar con asesor', 'Requisitos'],
      },
      ventaCorporativa: {
        reply: 'Para pedidos corporativos o ventas B2B, tenemos un programa especial:\n\n✦ Cantidades desde 24 unidades\n✦ Personalización disponible (grabado, colores, etiquetas)\n✦ Embalaje premium para regalos corporativos\n\nUn asesor puede darte una cotización personalizada. ¿Te conecto?',
        chips: ['Sí, WhatsApp', 'Ver catálogo', 'Personalización', 'Ser distribuidor'],
      },
      nuevoProducto: {
        reply: 'Introducimos nuevas piezas cada temporada. Los distribuidores tienen acceso anticipado a través del portal.\n\n¿Eres distribuidor? Si no lo eres, puedes aplicar y tener acceso completo al catálogo seasonal.',
        chips: ['Aplicar a distribuidor', 'Ver catálogo', 'Nuevas colecciones', 'Hablar con asesor'],
      },
      verTodo: {
        reply: 'El catálogo SensStyle incluye:\n\n🤠 **5 estilos de sombrero** (8 Segundos, Rebelde, Llanero, Randao, Frontier)\n🪢 **Correas** (curtido vegetal y cromo, 3 anchos)\n🔶 **Hebillas** (alpaca, latón, acero, plata)\n📦 **Ensembles** (sets sombrero + correa + hebilla)\n\n¿Te interesa algo específico?',
        chips: ['Sombreros', 'Correas', 'Hebillas', 'Ensembles'],
      },
      tieneExistencia: {
        reply: 'La disponibilidad exacta la tiene el equipo con acceso al inventario en tiempo real. Para información precisa sobre stock, un asesor puede confirmarte al instante por WhatsApp.',
        chips: ['Hablar con asesor', 'Ver catálogo', 'Aplicar a distribuidor', 'Nuevo producto'],
      },
      agendarReunion: {
        reply: 'Si necesitas hablar en persona o agendar una llamada con nuestro equipo, puedo conectarte por WhatsApp para coordinar.\n\n¿Cuál es el mejor horario para ti? Tenemos de lunes a viernes, 9am–6pm hora de Calgary (MST).',
        chips: ['Conectar por WhatsApp', 'Ver catálogo', 'Ser distribuidor', 'Sobre SensStyle'],
      },
      quienesSomos: {
        reply: '**SensStyle** conecta las mejores tradiciones artesanales de Occidente con distribuidores modernos en Canadá.\n\nSomos importadores directos de productos vaqueros de alta calidad. Cada pieza pasa por manos expertas: desde las mejores tenerías hasta nuestros artesanos.\n\nDistribuimos en todo Canadá desde Montreal, Quebec.',
        chips: ['Ver catálogo', 'Ser distribuidor', 'Historia', 'Dónde estamos'],
      },
      calidad: {
        reply: 'La calidad SensStyle viene de cada paso:\n\n✦ **Tenerías seleccionadas** — curtido vegetal artesanal\n✦ **Artesanos expertos** — más de 10 años de experiencia\n✦ **Inspección 4 puntos** — cada pieza revisada antes de enviar\n✦ **Materiales premium** — desde fieltro de lana hasta plata esterlina\n\nEso es lo que hace la diferencia en una pieza que dura décadas.',
        chips: ['Ver catálogo', 'Cuidado del cuero', 'Ser distribuidor', 'Hebillas artesanales'],
      },
      diferencia: {
        reply: 'Lo que hace diferente a SensStyle:\n\n✦ **Origen artesano** — cada sombrero hecho con técnicas tradicionales\n✦ **Curtido vegetal** — el cuero más vivo y duradero\n✦ **Grabados únicos** — diseños que no encuentras en otros lados\n✦ **Distribución directa** — de Calgary a todo Canadá sin intermediarios\n✦ **Programa mayorista profesional** — precios que hacen rentable tu negocio\n\n¿Sobre qué quieres saber más?',
        chips: ['Ver catálogo', 'Ser distribuidor', 'Cuidado del cuero', 'Historia'],
      },
      holaCasual: {
        reply: '¡Hey! Qué tal 🤠 Soy Lasso, el asistente de SensStyle. Si tienes alguna pregunta sobre sombreros, correas, o cómo ser distribuidor, aquí estoy.',
        chips: ['Ver sombreros', 'Ser distribuidor', 'Cuidado del cuero', 'Sobre SensStyle'],
      },
      estoyBuscando: {
        reply: '¡Perfecto! Cuéntame qué estás buscando y te ayudo a encontrarlo.\n\nPuedo hablar de sombreros vaqueros, correas de cuero, hebillas artesanales, cómo aplicar a distribuidor, o el cuidado de tus productos.',
        chips: ['Sombreros', 'Correas', 'Ser distribuidor', 'Cuidado'],
      },
      soloNavegando: {
        reply: '¡Bienvenido! Quédate el tiempo que quieras 🤠 Aquí te dejo algunas ideas para explorar:\n\n• **Collection** — todo nuestro catálogo\n• **Heritage** — la línea premium\n• **Become a retailer** — para los que quieren ser distribuidores\n\n¿Te interesa algo en particular?',
        chips: ['Ver catálogo', 'Ser distribuidor', 'Historia', 'Cuidado del cuero'],
      },
      quieroAprender: {
        reply: '¡Me encanta esa actitud! Aquí hay cosas que puedo enseñarte:\n\n✦ Cómo elegir el sombrero vaquero perfecto para ti\n✦ Diferencias entre materiales de sombrero y cuero\n✦ Cómo cuidar tus productos para que duren décadas\n✦ El proceso para convertirte en distribuidor SensStyle\n\n¿Qué te interesa aprender?',
        chips: ['Sombreros', 'Cuidado del cuero', 'Ser distribuidor', 'Materiales'],
      },
      graciasCasual: {
        reply: '¡De nada! 🤠 Si necesitas algo más, aquí estoy. ¡Buena suerte con tu búsqueda!',
        chips: ['Ver sombreros', 'Ser distribuidor', 'Cuidado del cuero', 'Sobre SensStyle'],
      },
      redirectAsesor: {
        reply: '🤠 Sabes qué, para lo que necesitas, lo mejor es que hables directamente con uno de nuestros asesores. Tienen acceso a precios exactos, disponibilidad, y pueden responder cualquier pregunta.\n\n**Te conecto por WhatsApp** — responden en menos de 60 minutos durante horario de oficina (lun–vie, 9am–6pm MST). ¿Ok?',
        chips: ['Sí, conectar ahora', 'Ver catálogo primero', 'Cuáles son los horarios', 'Enviarme su info'],
      },
      necesitaHumano: {
        reply: 'Para eso mejor te conecta directamente con nuestro equipo. Tienen toda la información y pueden ayudarte paso a paso.\n\n**WhatsApp** es lo más rápido — les escribes y responden en menos de una hora. ¿Te conecto?',
        chips: ['Sí, WhatsApp', 'Cuánto tardan', 'Pueden ayudarme con', 'Ver catálogo'],
      },
      asesorEspecializado: {
        reply: '🤠 Mi asesor tiene información específica sobre lo que necesitas. Puede verificar disponibilidad, darte precios exactos, y ayudarte con cualquier duda.\n\nLo mejor: escríbeles por WhatsApp y responden al toque. ¿Te paso?',
        chips: ['Sí, pasarme', 'Qué pueden hacer', 'Horarios de atención', 'Más info'],
      },
      fallback: {
        reply: '🤠 Soy Lasso, el asistente de SensStyle. Puedo ayudarte con sombreros vaqueros, correas y hebillas de cuero, cómo aplicar para ser distribuidor, y el cuidado de productos de cuero.\n\nSi no encontré lo que buscabas, puedo conectarte con un asesor humano que responde en menos de 60 minutos por WhatsApp.',
        chips: ['Ver sombreros', 'Ser distribuidor', 'Cuidado del cuero', 'Hablar con asesor'],
      },
    },
    chips: {
      'Ver sombreros': 'sombreros',
      'Correas y hebillas': 'correas',
      'Ser distribuidor': 'distribuidor',
      'Cuidado del cuero': 'cuidado',
      'Sobre SensStyle': 'marca',
      'Sombrero 8 Segundos': 'estilo8s',
      'Sombrero Rebelde': 'estiloRebelde',
      'Sombrero Llanero': 'estiloLlanero',
      'Sombrero Frontier': 'estiloFrontier',
      '¿Cómo tomo mi talla?': 'talla',
      '¿Cómo elegir mi talla?': 'talla',
      '¿Qué material elijo?': 'materialesSombrero',
      'Materiales del sombrero': 'materialesSombrero',
      '¿Qué estilo me recomiendas?': 'ocasiones',
      'Tipos de sombreros': 'sombreros',
      'Cuidado del sombrero': 'cuidadoSombrero',
      'Cuidado de correas': 'cuidadoCorrea',
      'Cuidado de hebillas': 'cuidadoHebilla',
      'Tipos de hebillas': 'hebillas',
      '¿Cuál material elijo?': 'materialHebilla',
      'Es para uso diario': 'materialHebilla',
      'Es para un evento': 'materialHebilla',
      'Es de regalo': 'regalo',
      'Ver catálogo': 'catalogo',
      'Ver sombreros': 'sombreros',
      'Ver correas y hebillas': 'correas',
      '¿Cómo ser distribuidor?': 'distribuidor',
      'Requisitos del programa': 'requisitos',
      '¿Cómo aplico?': 'aplicar',
      'Sí, quiero aplicar': 'aplicar',
      'Costos del programa': 'precio',
      '¿Cuánto es el pedido mínimo?': 'minimo',
      'Pedido mínimo': 'minimo',
      'Formas de pago': 'pago',
      'Tiempos de entrega': 'envio',
      'Ancho de correa': 'anchoCorrea',
      '¿Qué ancho elegir?': 'anchoCorrea',
      'Cómo combinar correa y hebilla': 'combinacion',
      'Cuero genuino vs sintético': 'cueroGenuino',
      'Tipos de curtido': 'curtido',
      'Cómo cuidar el cuero': 'cuidado',
      '¿Dónde están ubicados?': 'ubicacion',
      'Información de contacto': 'contacto',
      'Ver distribuidores': 'distribuidores',
      'Fieltro vs Paja': 'fieltroVsPaja',
      'Sobre SensStyle': 'marca',
      '¿Cómo elegir el color?': 'colores',
      'Tengo más preguntas': 'sombreros',
      'Horario de atención': 'horario',
    },
    waChips: ['Hablar con un asesor', 'Sí, abrir WhatsApp', 'Hablar por WhatsApp', 'Sí, enviar por WhatsApp', 'Abrir WhatsApp'],
    navChips: { 'Ver sombreros': 'sombreros', 'Ver catálogo': 'sombreros', 'Ver distribuidores': 'distributors' },
  },

  en: {
    botName: 'Lasso',
    welcome: 'Hi there! I\'m **Lasso**, SensStyle\'s assistant 🤠\n\nHow can I help you today?',
    welcomeChips: ['Browse hats', 'Belts & buckles', 'Become a distributor', 'Leather care', 'About SensStyle'],
    headerSub: 'Lasso replies instantly',
    inputPlaceholder: 'Ask Lasso anything...',
    send: 'Send',
    waOptions: 'Talk to a person:',
    waBtn: 'WhatsApp →',
    typing: 'Lasso is typing...',
    intents: {
      sombreros: { reply: 'We carry **5 western hat styles** in artisanal felt:\n• **8 Seconds** — tall crown, curved brim. The boldest.\n• **Rebel** — wide brim, dramatic profile.\n• **Cattleman** — the classic, elegant and versatile.\n• **Randao** — pronounced front pinch, bold look.\n• **Frontier (Gus)** — slightly tilted crown, very wearable.\n\nWhich one would you like to know more about?', chips: ['8 Seconds hat', 'Rebel hat', 'Cattleman hat', 'What material to choose?', 'How do I measure my size?'] },
      estilo8s: { reply: 'The **8 Seconds** is our flagship hat. Named after the minimum time to complete a valid rodeo ride.\n\n✦ Crown: 4–5 inch height\n✦ Brim: moderate with pronounced lateral curve\n✦ Best for: rodeos, events, high-impact daily use\n✦ Available in black, tobacco brown, grey and bone\n\nThe perfect choice for those who want to be noticed.', chips: ['How to choose the colour?', 'How do I measure my size?', 'Hat care', 'Browse catalog'] },
      estiloRebelde: { reply: 'The **Rebel** is for those who refuse to go unnoticed. Extra-wide brim and moderate crown that commands any space.\n\n✦ Brim: 4.5–5.5 inches\n✦ Dramatic, cinematic silhouette\n✦ Best for: evening events, festivals, photography\n✦ Pairs perfectly with leather boots and dark jeans', chips: ['How do I measure my size?', 'What material to choose?', 'Browse catalog', 'Cattleman hat'] },
      estiloLlanero: { reply: 'The **Cattleman** is the most classic and recognisable western hat in the world.\n\n✦ Crown: three-crease, medium height\n✦ Brim: 3.5–4 inches, slightly curved\n✦ Versatile: works from the ranch to a business meeting\n✦ The top seller among distributors', chips: ['8 Seconds hat', 'Frontier hat', 'How do I measure my size?', 'Browse catalog'] },
      estiloFrontier: { reply: 'The **Frontier (Gus)** has a softly forward-tilted crown that gives it a distinct character, less rigid than the Cattleman.\n\n✦ Crown: forward tilt, moderate height\n✦ Brim: 3.5–4 inches\n✦ Best for: urban use, travel, everyday wear\n✦ Very popular in Alberta and Saskatchewan', chips: ['Rebel hat', 'Cattleman hat', 'What material to choose?', 'Browse catalog'] },
      talla: { reply: 'Measuring your size is easy. You need a flexible tape measure:\n\n**1.** Wrap it around your head at forehead level, about 2 cm above your brows\n**2.** Note the measurement in centimetres\n**3.** Use this guide:\n• 54–55 cm → Size S\n• 56–57 cm → Size M\n• 58–59 cm → Size L\n• 60–61 cm → Size XL\n• 62+ cm → Size XXL\n\nIf you\'re between sizes, choose **the larger one**. Felt adjusts slightly with use.', chips: ['What style do you recommend?', 'Hat styles', 'What material to choose?'] },
      materialesSombrero: { reply: 'SensStyle hats are made in:\n\n✦ **Pressed wool felt** — The classic. Warm, steam-mouldable, shape-retaining. For spring, fall and winter.\n✦ **Natural woven straw** — More ventilated and lightweight. Ideal for summer.\n✦ **Genuine leather** — The most durable. Urban, rugged character.\n\nThe best-seller among distributors is **wool felt** for its year-round versatility.', chips: ['What style do you recommend?', 'Hat care', 'How do I measure my size?'] },
      colores: { reply: 'Available colours vary by style, but generally we carry:\n\n✦ **Black** — the most versatile and formal\n✦ **Tobacco brown** — the quintessential cowboy classic\n✦ **Grey** — contemporary and urban\n✦ **Bone / Cream** — elegant, great for events and warm seasons\n✦ **Light brown** — natural, warm, popular on ranches', chips: ['Hat styles', 'How do I measure my size?', 'Browse catalog'] },
      correas: { reply: 'Our **leather belts** are exclusive wholesale distribution. Two lines:\n\n✦ **Vegetable-tanned** — artisanal process, stiffer at first, softens with use. Most durable.\n✦ **Chrome-tanned** — softer from day one, more uniform finish.\n\nWidths available: **3 cm, 4 cm and 5 cm**. The wider, the more western impact.', chips: ['What width to choose?', 'How to pair belt and buckle', 'Belt care', 'Become a distributor'] },
      anchoCorrea: { reply: 'Belt **width** depends on your style and build:\n\n✦ **3 cm** — more urban and discreet. Great with slim jeans or casual trousers.\n✦ **4 cm** — the perfect balance. Works in almost any western situation.\n✦ **5 cm** — maximum presence. For events, rodeos and those who want the belt to speak first.\n\nFor everyday use we recommend **4 cm**.', chips: ['How to pair belt and buckle', 'Belt care', 'Become a distributor'] },
      combinacion: { reply: 'The perfect **belt & buckle combination** follows these basic rules:\n\n✦ Tan / cognac leather → brass or aged alpaca buckle\n✦ Black leather → silver or stainless steel buckle\n✦ Natural leather → any metal works\n\nSize-wise: the buckle should be proportional to the belt width. An 8 cm buckle on a 3 cm belt looks off.', chips: ['Buckle types', 'Belt width', 'Browse catalog'] },
      cuidadoCorrea: { reply: 'To make your leather belt last decades:\n\n**Cleaning:**\n• Soft dry cloth for daily dust\n• Saddle soap with damp sponge for deeper dirt\n\n**Conditioning (every 3–4 months):**\n• Neatsfoot oil, lanolin or beeswax\n• Rub in circles, rest 30 min\n\n**Protection:**\n• Wax-based waterproofing spray (not silicone)\n\n**Storage:**\n• Rolled, never sharply folded, cool ventilated place', chips: ['Hat care', 'Buckle care', 'Become a distributor'] },
      hebillas: { reply: 'SensStyle **buckles** are artisanal pieces with unique engravings. Available in:\n\n✦ **Alpaca (white metal)** — silver-like look, economical and elegant\n✦ **Plated brass** — warm golden tone, very traditional western\n✦ **Stainless steel** — the most resistant, ideal for field use\n✦ **Sterling silver** — premium line, for collectors and special events\n\nEngravings include: horses, roses, initials, rodeo scenes and floral motifs.', chips: ['Which material?', 'How to pair belt and buckle', 'Buckle care', 'Become a distributor'] },
      materialHebilla: { reply: 'To choose the right **buckle material**:\n\n✦ **Daily field use** → stainless steel (most impact/weather resistant)\n✦ **Events and meetings** → alpaca or brass (best presentation)\n✦ **Collection or special gift** → sterling silver (heirloom piece)\n✦ **Balanced budget** → alpaca (excellent value)\n\nDo you have a specific occasion in mind?', chips: ['For daily use', 'For an event', 'As a gift', 'Browse catalog'] },
      cuidadoHebilla: { reply: 'To keep your **buckle like new**:\n\n✦ Wipe with a soft dry cloth after each use\n✦ Use the appropriate metal polish (alpaca, brass, silver)\n✦ Avoid contact with saltwater or chemicals\n✦ For alpaca and steel: a cloth with a little baking soda and warm water works\n✦ Store in flannel cloth when not in use — prevents scratching\n\nSterling silver buckles are polished the same way as silver jewellery.', chips: ['Belt care', 'Buckle types', 'Browse catalog'] },
      cueroGenuino: { reply: '**Genuine vs synthetic leather** — the difference matters:\n\nGenuine leather:\n• Natural texture variations — no two pieces are identical\n• Develops a beautiful patina over time\n• Wrinkles when folded and slowly returns to shape\n• Absorbs water slowly\n• Smells organic, not plastic\n• Lasts decades with basic care\n\nSynthetic starts peeling and cracking in 2–3 years with no repair possible.', chips: ['Tanning types', 'How to care for leather', 'Browse catalog'] },
      curtido: { reply: '**Tanning type** defines the leather\'s personality:\n\n✦ **Vegetable-tanned** — artisanal process with plant tannins. The most "alive" leather: it breathes, moulds, improves with use. The standard for quality leatherwork.\n✦ **Chrome-tanned** — industrial process, faster. Soft from the start, uniform. Less "character" but more consistent.\n\nOur premium belts are **vegetable-tanned** exclusively.', chips: ['Genuine vs synthetic', 'How to care for leather', 'Become a distributor'] },
      cuidado: { reply: 'Leather care is simple with regular routine:\n\n**Step 1 — Clean** (monthly or as needed)\nSoft cloth + saddle soap for dirt. Never excess water.\n\n**Step 2 — Condition** (every 3–6 months)\nNeatsfoot oil, lanolin or beeswax. Rub, rest, buff.\n\n**Step 3 — Protect** (after conditioning)\nWax-based waterproofing spray.\n\n**Storage:** dry, cool, away from direct sunlight.', chips: ['Hat care', 'Belt care', 'Buckle care'] },
      cuidadoSombrero: { reply: 'Your **felt hat** deserves special attention:\n\n✦ **Daily brushing:** soft-bristle brush counterclockwise. Removes dust without disrupting fibres.\n✦ **Grease stains:** talcum powder or cornstarch on the stain, 8 hours, then brush off.\n✦ **Deformations:** steam from a pot or garment steamer at a safe distance. Mould with hands while warm, let cool in shape.\n✦ **Rain:** let air-dry naturally. Never use a dryer.\n✦ **Storage:** always brim-up or on the crown, in its original box.', chips: ['Belt care', 'Hat materials', 'Browse catalog'] },
      distribuidor: { reply: 'Great choice! The **SensStyle Wholesale Program** has everything to grow your business:\n\n✦ Distributor pricing (30–45% below MSRP)\n✦ Full catalog with new models each season\n✦ Minimum per order: **12 units** (mixed styles allowed)\n✦ Approval time: **24–48 hours**\n✦ Exclusive digital portal with order history\n\nReady to start the process?', chips: ['Program requirements', 'How do I apply?', 'What\'s the minimum order?', 'Talk to an advisor'] },
      requisitos: { reply: 'To join the wholesale program you need:\n\n**Documents:**\n• Business name or legal entity\n• Corporate email address\n• Tax registration number (if applicable)\n• Province where you operate\n\n**Operational:**\n• Initial minimum order of **12 units**\n• Capacity for quarterly reorders\n\n**Process:**\n1. Submit your application via WhatsApp or email\n2. Our team reviews it (24–48 hrs)\n3. You access the portal with wholesale prices\n4. Place your first order', chips: ['Yes, I want to apply', 'Programme costs', 'Talk to an advisor'] },
      aplicar: { reply: 'Perfect. The fastest way is via **WhatsApp** — just tell us:\n\n• Your store / business name\n• Province you\'re in\n• Products you\'re interested in (hats, belts, buckles or all)\n• Your email for portal access\n\nOur team replies within 24 hours with your access credentials and price list.', chips: ['Yes, open WhatsApp', 'I have more questions'] },
      minimo: { reply: 'The **minimum order** is **12 units** per order. These can be mixed items:\n• 6 hats + 4 belts + 2 buckle sets, for example.\n\nFor frequent reorders the minimum drops to **6 units** once your account has 3 orders.\n\nNo exclusivity contract or minimum commitment period.', chips: ['How do I apply?', 'Payment methods', 'Delivery times'] },
      pago: { reply: 'We accept the following **payment methods** for distributors:\n\n✦ **Bank transfer** (most common among distributors)\n✦ **E-transfer** (Canada only, no fee)\n✦ **Credit/debit card** (2.5% processing fee)\n✦ **Interac** (for Canadian distributors)\n\nFirst orders require **100% upfront payment**. From the third order you can access 30-day credit terms.', chips: ['Delivery times', 'Minimum order', 'How do I apply?'] },
      envio: { reply: '**Delivery times by province:**\n\n✦ Alberta, BC → 2–4 business days\n✦ Saskatchewan, Manitoba → 3–5 days\n✦ Ontario, Quebec → 4–7 days\n✦ Maritimes → 5–8 days\n✦ Territories (NT, YK, NU) → 7–12 days\n\nWe ship with **Canada Post Xpresspost** and **Purolator**. Tracking number included in all orders.', chips: ['Minimum order', 'Payment methods', 'Become a distributor'] },
      garantia: { reply: 'All SensStyle products include:\n\n✦ **Manufacturing warranty:** 6 months against manufacturing defects\n✦ **Return policy:** 30 days for items in original unused condition\n✦ **Size exchange:** no extra cost within the first 15 days\n\nIssues from incorrect use or lack of maintenance are not covered, but our team always looks for solutions.', chips: ['Talk to an advisor', 'How to care for leather', 'Become a distributor'] },
      marca: { reply: '**SensStyle** was built as a bridge between the finest southern tanneries and the ranchers, shops and riders of northern Canada.\n\nEvery piece passes through four hands before reaching the distributor:\n\n1. **The tanner** — selects and prepares the leather\n2. **The craftsperson** — cuts, stitches and moulds\n3. **The inspector** — checks every seam and finish\n4. **The packager** — carefully prepares for the journey\n\nDistributing across **all of Canada** since 2005, with 40+ active distributors.', chips: ['Browse catalog', 'Become a distributor', 'Where are you located?'] },
      ubicacion: { reply: 'Our headquarters are in **Montreal, Quebec, Canada**:\n\n📍 5420 Boulevard Lévis, Saint-Léonard, QC\n📧 info@sensstyle.com\n📞 +1 514 867 7519\n\n⏰ Monday to Friday, 9:00 am–6:00 pm MST\n\nWe have distributors in 11 provinces and 3 territories.', chips: ['See distributors', 'Talk on WhatsApp', 'Become a distributor'] },
      distribuidores: { reply: 'We have authorised distributors in:\n\n🇨🇦 **Alberta** — Calgary, Edmonton\n🇨🇦 **BC** — Vancouver, Abbotsford\n🇨🇦 **Saskatchewan** — Regina, Saskatoon\n🇨🇦 **Manitoba** — Winnipeg\n🇨🇦 **Ontario** — Toronto, Ottawa\n🇨🇦 **Quebec** — Montréal, Québec City\n🇨🇦 **Nova Scotia** — Halifax\n\nLooking for one in your city? Write to us on WhatsApp.', chips: ['Talk on WhatsApp', 'Become a distributor', 'Browse catalog'] },
      ocasiones: { reply: 'Which hat for which occasion:\n\n🤠 **Rodeo / Charreada** → 8 Seconds (maximum presence)\n🎪 **Festival / Fair** → Rebel or 8 Seconds\n🏙️ **Urban daily** → Frontier (Gus) or Cattleman\n👔 **Formal event** → Cattleman in black felt\n🌾 **Ranch work** → Cattleman or Randao\n🌞 **Summer / Heat** → any style in natural straw\n📸 **Photography session** → Rebel (the most photogenic)', chips: ['8 Seconds hat', 'Rebel hat', 'Cattleman hat', 'How do I measure my size?'] },
      regalo: { reply: 'SensStyle products are **gifts that impress** and last decades. Most popular options:\n\n🎁 **Belt + buckle set** — classic, functional, for any cowboy\n🎁 **Cattleman hat** — the most universal and appreciated\n🎁 **8 Seconds hat** — for those who like to stand out\n\nFor corporate gifts or bulk quantities, talk to our team — we can coordinate custom engravings on buckles.', chips: ['How do I measure?', 'Talk to an advisor', 'Browse catalog'] },
      personalizado: { reply: 'Yes, we offer **custom orders** for distributors and corporate clients:\n\n✦ Buckle engravings (initials, logos, dates)\n✦ Orders in special colourways\n✦ Distributor-branded labelling (private label)\n✦ Premium packaging for corporate gifts\n\nMinimum for custom orders is **24 units**, production time **3–4 weeks**.', chips: ['Talk to an advisor', 'Become a distributor', 'Browse catalog'] },
      instagram: { reply: 'Find us on social media for western world content, new releases and styling tips:\n\n📸 **Instagram:** @sensstyle.ca\n📘 **Facebook:** SensStyle Leather Co.\n\nIf you\'re a distributor with a store, tag us in your posts — we frequently share our partners\' content.', chips: ['Become a distributor', 'Browse catalog', 'Talk to an advisor'] },
      horario: { reply: 'Our business hours are:\n\n🕘 **Monday to Friday:** 9:00 am — 6:00 pm MST\n📵 Saturday and Sunday: closed\n\nVia **WhatsApp** we usually reply in under **60 minutes** during office hours.\n\nOutside hours, write to us and we\'ll reply the next business day.', chips: ['Talk on WhatsApp', 'Contact info', 'Become a distributor'] },
      contacto: { reply: 'You can reach us via:\n\n📱 **WhatsApp** — fastest (reply in under 1 hour)\n📧 **Email:** info@sensstyle.com\n📞 **Phone:** +1 514 867 7519\n📍 **Address:** 5420 Boulevard Lévis, Saint-Léonard, QC', chips: ['Yes, open WhatsApp', 'Business hours', 'Become a distributor'] },
      precio: { reply: '**Wholesale prices** are exclusive to registered distributors and available in the private portal.\n\nDistributor margins range from **30 to 45%** over public retail price, depending on order volume.\n\nTo see the full price list you need portal access — the process takes 24–48 hrs.', chips: ['How do I apply?', 'Minimum order', 'Talk to an advisor'] },
      catalogo: { reply: 'The SensStyle catalog includes:\n\n🤠 **Hats** — 5 styles × multiple colours and materials\n🪢 **Belts** — vegetable and chrome-tanned, 3 widths\n🔶 **Buckles** — artisanal engravings in 4 materials\n📦 **Complete sets** — coordinated belt + buckle\n\nBrowse the visual catalog in the **Collection** section. Wholesale pricing requires distributor access.', chips: ['Browse hats', 'Belts & buckles', 'Become a distributor'] },
      fieltroVsPaja: { reply: '**Felt vs Straw** — the honest comparison:\n\n**Wool felt:**\n✦ Best for fall, winter and spring\n✦ Steam-mouldable, shape-retaining\n✦ More durable overall\n✦ More colour options\n\n**Natural straw:**\n✦ Best for summer and warm climates\n✦ More ventilated and lightweight\n✦ Needs more care in rain\n✦ More casual, artisanal look\n\nIn Alberta or Saskatchewan? **Felt** serves you 9 months of the year.', chips: ['Hat styles', 'Hat care', 'Browse catalog'] },
      uso: { reply: 'How to wear it right:\n\n🤠 **Putting it on:** place on head and adjust until firm but not tight — it shouldn\'t move when you shake your head, but shouldn\'t leave a mark either.\n\n🤠 **Taking it off:** always by the crown, never the brim. Grabbing the brim deforms the hat over time.\n\n🤠 **Indoors:** remove in formal indoor settings. Outdoors and at western events, keep it on.\n\n🤠 **Brim curl:** never curl it yourself — steam and a craftsperson are the only correct way.', chips: ['Hat care', 'Hat styles', 'How do I measure my size?'] },
      gracias: { reply: 'Happy to help! 🤠 Don\'t hesitate to reach out if you need anything else.\n\nAnd if you\'d like to see the product in person, visit one of our Canadian distributors. Good luck with your choice!', chips: ['Browse hats', 'Become a distributor', 'See distributors'] },
      holaCasual: { reply: 'Hey there! 🤠 I\'m Lasso, SensStyle\'s assistant. If you have any questions about hats, belts, or becoming a distributor, I\'m here to help.', chips: ['Browse hats', 'Become a distributor', 'Leather care', 'About SensStyle'] },
      estoyBuscando: { reply: 'Great! Tell me what you\'re looking for and I\'ll help you find it.\n\nI can talk about western hats, leather belts, artisanal buckles, how to become a distributor, or caring for your leather products.', chips: ['Hats', 'Belts', 'Become a distributor', 'Leather care'] },
      soloNavegando: { reply: 'Welcome! Take your time looking around 🤠 Here are some ideas to explore:\n\n• **Collection** — our full catalog\n• **Heritage** — the premium line\n• **Become a retailer** — for those who want to distribute\n\nAnything specific catch your eye?', chips: ['Browse catalog', 'Become a distributor', 'About SensStyle', 'Leather care'] },
      quieroAprender: { reply: 'Love that attitude! Here are things I can teach you about:\n\n✦ How to choose the perfect western hat for you\n✦ Differences between hat and leather materials\n✦ How to care for your products so they last decades\n✦ The process to become a SensStyle distributor\n\nWhat interests you?', chips: ['Hats', 'Leather care', 'Become a distributor', 'Materials'] },
      graciasCasual: { reply: 'You\'re welcome! 🤠 If you need anything else, I\'m right here. Good luck with your search!', chips: ['Browse hats', 'Become a distributor', 'Leather care', 'About SensStyle'] },
      redirectAsesor: { reply: '🤠 You know what, for what you need, it\'d be best to talk directly with one of our advisors. They have exact prices, availability, and can answer any question.\n\n**I\'ll connect you via WhatsApp** — they reply in under 60 minutes during office hours (Mon–Fri, 9am–6pm MST). Sound good?', chips: ['Yes, connect now', 'Browse catalog first', 'What are the hours?', 'Send me info'] },
      necesitaHumano: { reply: 'For that, I\'d recommend connecting directly with our team. They have all the information and can help you step by step.\n\n**WhatsApp** is the fastest — write to them and they reply in under an hour. Shall I connect you?', chips: ['Yes, WhatsApp', 'How long do they take?', 'Browse catalog', 'About SensStyle'] },
      asesorEspecializado: { reply: '🤠 My advisor has specific information about what you need. They can check availability, give you exact prices, and help with any questions.\n\nBest part: write to them on WhatsApp and they reply right away. Want me to connect you?', chips: ['Yes, connect me', 'What can they help with?', 'Business hours', 'More info'] },
      noEntiendo: { reply: '🤠 Hmm, I\'m not sure I understood that correctly. Let me connect you with an advisor who can help you better — they reply in under 60 minutes.', chips: ['Yes, talk to advisor', 'Browse catalog', 'Browse hats', 'Become a distributor'] },
      noTengoInfo: { reply: 'For that, I\'ll need my human team — they have all the details and can respond in real time. Want me to connect you via WhatsApp?', chips: ['Yes, WhatsApp', 'Browse hats', 'Become a distributor', 'About SensStyle'] },
      noEstoySeguro: { reply: 'Good question. My advisors have the exact answer. Want me to connect you with them on WhatsApp?', chips: ['Yes, open WhatsApp', 'Browse catalog', 'See distributors', 'Leather care'] },
      maybeAsesor: { reply: 'Hmm, that requires specific details that an advisor can give you better. We reply in under 60 min on WhatsApp. Want me to connect you?', chips: ['Yes, WhatsApp now', 'Browse hats', 'How to become a distributor', 'Browse catalog'] },
      fueraDeAlcance: { reply: '🤠 That\'s a question where I have a whole team ready to help. Want me to redirect you via WhatsApp? They reply in under an hour.', chips: ['Connect via WhatsApp', 'Browse products', 'Become a distributor', 'Leather care'] },
      conceptoVago: { reply: 'For that you need someone from my team with all the details. On WhatsApp they reply fast. Want me to connect you?', chips: ['Yes, WhatsApp', 'Browse catalog', 'Become a distributor', 'About SensStyle'] },
      navegar: { reply: 'Navigating SensStyle is easy. Use the main menu to explore:\n\n✦ **Collection** — all products\n✦ **Heritage** — our premium line\n✦ **Become a retailer** — distributor application\n✦ **About us** — history and values\n\nLooking for something specific?', chips: ['Browse catalog', 'Become a distributor', 'About SensStyle', 'Heritage line'] },
      website: { reply: 'Welcome to SensStyle 🤠 Here you can explore:\n\n✦ **5 western hat styles** in artisanal felt\n✦ **Leather belts** — vegetable and chrome-tanned\n✦ **Artisanal buckles** in 4 materials\n✦ **Wholesale program** for distributors\n\nWhat would you like to know more about?', chips: ['Browse hats', 'Belts & buckles', 'Become a distributor', 'Leather care'] },
      menu: { reply: 'The menu has everything you need:\n\n📦 **Collection** — full products\n💎 **Heritage** — premium line\n🤝 **Become a retailer** — apply as distributor\n👥 **About us** — our story\n\nWhich section interests you?', chips: ['Browse collection', 'Heritage line', 'Apply as distributor', 'Our story'] },
      buscoAlgo: { reply: 'Tell me what you\'re looking for and I\'ll help you find it 🤠\n\nWe can talk about:\n• Western hats (5 styles)\n• Leather belts and buckles\n• How to become a distributor\n• Caring for leather products\n\nWhat do you need?', chips: ['Hats', 'Belts', 'Become a distributor', 'Leather care'] },
      noEncontrar: { reply: 'If you can\'t find what you\'re looking for, tell me what it is. I can:\n• Explain where it is on the page\n• Send you a direct link\n• Connect you with an advisor on WhatsApp\n\nWhich do you prefer?', chips: ['Explain where', 'Send me a link', 'WhatsApp advisor', 'Browse catalog'] },
      dondeEsta: { reply: 'Can\'t find something on the page? 🤠 I can help:\n\n✦ Looking for a product → tell me what type\n✦ Looking for a section → tell me the name\n✦ Want to buy → I\'ll connect you with an advisor\n\nWhat do you need?', chips: ['Find product', 'Go to section', 'Talk to advisor', 'Browse catalog'] },
      oferta: { reply: 'Offers and promotions go directly to our registered distributors. If you\'re a distributor, check the exclusive portal.\n\nDon\'t have access? You can apply to become a distributor — minimum 12 units, 30–45% below MSRP.', chips: ['Apply as distributor', 'Browse catalog', 'Talk to advisor', 'Requirements'] },
      descuento: { reply: 'Discounts are exclusive to registered distributors in our wholesale program.\n\n✦ Access to distribution pricing\n✦ Margins of 30–45% below retail\n✦ Minimum 12 units per order\n\nWant to apply as a distributor?', chips: ['Apply now', 'Browse catalog', 'Talk to advisor', 'Requirements'] },
      promo: { reply: 'Promotions are sent to distributors through the portal. If you don\'t have access yet, you can request it — the process takes 24–48 hours.\n\nWant me to help you apply as a distributor?', chips: ['Apply as distributor', 'Browse catalog', 'Requirements', 'Talk to advisor'] },
      precioMayorista: { reply: 'As a SensStyle distributor you get exclusive pricing:\n\n✦ 30–45% below public retail price\n✦ Depends on order volume\n✦ Access to the digital portal with special prices\n\nMinimum: 12 units per order. Want to apply?', chips: ['Apply now', 'Browse catalog', 'Requirements', 'Talk to advisor'] },
      comprar: { reply: 'To buy wholesale you need to be a registered distributor. The process:\n\n1. Apply via WhatsApp or email\n2. Get approved in 24–48 hours\n3. Access the portal with wholesale prices\n4. Place your order (minimum 12 units)\n\nReady to start?', chips: ['Apply now', 'Browse catalog', 'Talk to advisor', 'Requirements'] },
      vender: { reply: 'If you want to sell SensStyle products, apply to the distributor program:\n\n✦ Wholesale prices (30–45% below MSRP)\n✦ Full catalog\n✦ Minimum 12 units per order\n\nThe process is simple: write to info@sensstyle.com or via WhatsApp.', chips: ['Apply as distributor', 'Browse catalog', 'About SensStyle', 'Talk to advisor'] },
      cuantoCuesta: { reply: 'Public prices are in the catalog. But if you want distributor prices (30–45% less), apply to the wholesale program — minimum 12 units.', chips: ['Browse catalog', 'Apply as distributor', 'Talk to advisor', 'Requirements'] },
      ventaCorporativa: { reply: 'For corporate orders or B2B sales, we have a special program:\n\n✦ Orders from 24 units\n✦ Customization available (engraving, colours, labels)\n✦ Premium packaging for corporate gifts\n\nAn advisor can give you a personalized quote. Want me to connect you?', chips: ['Yes, WhatsApp', 'Browse catalog', 'Customization', 'Become a distributor'] },
      nuevoProducto: { reply: 'We introduce new pieces every season. Distributors get early access through the portal.\n\nAre you a distributor? If not, you can apply and get full access to the seasonal catalog.', chips: ['Apply as distributor', 'Browse catalog', 'New collections', 'Talk to advisor'] },
      verTodo: { reply: 'The SensStyle catalog includes:\n\n🤠 **5 hat styles** (8 Seconds, Rebel, Cattleman, Randao, Frontier)\n🪢 **Belts** (vegetable and chrome-tanned, 3 widths)\n🔶 **Buckles** (alpaca, brass, steel, silver)\n📦 **Ensembles** (coordinated hat + belt + buckle sets)\n\nInterested in something specific?', chips: ['Hats', 'Belts', 'Buckles', 'Ensembles'] },
      tieneExistencia: { reply: 'Exact availability is with the team who has real-time inventory access. For precise stock information, an advisor can confirm instantly on WhatsApp.', chips: ['Talk to advisor', 'Browse catalog', 'Apply as distributor', 'New product'] },
      agendarReunion: { reply: 'If you need to speak in person or schedule a call with our team, I can connect you on WhatsApp to coordinate.\n\nWhat time works best for you? We\'re available Monday to Friday, 9am–6pm MST.', chips: ['Connect via WhatsApp', 'Browse catalog', 'Become a distributor', 'About SensStyle'] },
      quienesSomos: { reply: '**SensStyle** connects the finest artisanal traditions of the West with modern distributors across Canada.\n\nWe\'re direct importers of high-quality western products. Every piece passes through expert hands: from the best tanneries to our artisans.\n\nWe distribute across all of Canada from Montreal, Quebec.', chips: ['Browse catalog', 'Become a distributor', 'Our story', 'Where we are'] },
      calidad: { reply: 'SensStyle quality comes from every step:\n\n✦ **Selected tanneries** — artisanal vegetable tanning\n✦ **Expert artisans** — 10+ years of experience\n✦ **4-point inspection** — every piece checked before shipping\n✦ **Premium materials** — from wool felt to sterling silver\n\nThat\'s what makes the difference in a piece that lasts decades.', chips: ['Browse catalog', 'Leather care', 'Become a distributor', 'Artisanal buckles'] },
      diferencia: { reply: 'What makes SensStyle different:\n\n✦ **Artisan origin** — every hat made with traditional techniques\n✦ **Vegetable tanning** — the most alive and durable leather\n✦ **Unique engravings** — designs you won\'t find elsewhere\n✦ **Direct distribution** — from Calgary to all of Canada without intermediaries\n✦ **Professional wholesale program** — prices that make your business profitable\n\nWhat would you like to know more about?', chips: ['Browse catalog', 'Become a distributor', 'Leather care', 'Our story'] },
      fallback: { reply: 'Hmm, I\'m not sure I have the exact answer for that. 🤠 But our human team can help.\n\nWould you like me to connect you with an advisor via WhatsApp? We reply in under 60 minutes during office hours.', chips: ['Yes, open WhatsApp', 'Browse hats', 'Become a distributor', 'About SensStyle'] },
    },
    chips: { 'Browse hats': 'sombreros', 'Belts & buckles': 'correas', 'Become a distributor': 'distribuidor', 'Leather care': 'cuidado', 'About SensStyle': 'marca', '8 Seconds hat': 'estilo8s', 'Rebel hat': 'estiloRebelde', 'Cattleman hat': 'estiloLlanero', 'Frontier hat': 'estiloFrontier', 'How do I measure my size?': 'talla', 'What material to choose?': 'materialesSombrero', 'Hat materials': 'materialesSombrero', 'What style do you recommend?': 'ocasiones', 'Hat styles': 'sombreros', 'Hat care': 'cuidadoSombrero', 'Belt care': 'cuidadoCorrea', 'Buckle care': 'cuidadoHebilla', 'Buckle types': 'hebillas', 'Which material?': 'materialHebilla', 'For daily use': 'materialHebilla', 'For an event': 'materialHebilla', 'As a gift': 'regalo', 'Browse catalog': 'catalogo', 'How to pair belt and buckle': 'combinacion', 'What width to choose?': 'anchoCorrea', 'Belt width': 'anchoCorrea', 'Genuine vs synthetic': 'cueroGenuino', 'Tanning types': 'curtido', 'How to care for leather': 'cuidado', 'Where are you located?': 'ubicacion', 'Contact info': 'contacto', 'See distributors': 'distribuidores', 'Felt vs Straw': 'fieltroVsPaja', 'Program requirements': 'requisitos', 'How do I apply?': 'aplicar', 'Yes, I want to apply': 'aplicar', 'Programme costs': 'precio', 'What\'s the minimum order?': 'minimo', 'Minimum order': 'minimo', 'Payment methods': 'pago', 'Delivery times': 'envio', 'I have more questions': 'sombreros', 'Business hours': 'horario', 'How to choose the colour?': 'colores', 'Yes, connect now': 'contacto', 'What are the hours?': 'horario', 'Send me info': 'contacto', 'How long do they take?': 'horario', 'Yes, WhatsApp': 'contacto', 'Yes, connect me': 'contacto', 'What can they help with?': 'contacto', 'More info': 'contacto', 'Yes, talk to advisor': 'contacto', 'Hats': 'sombreros', 'Belts': 'correas', 'Materials': 'materialesSombrero', 'Heritage line': 'marca', 'Browse collection': 'catalogo', 'Apply as distributor': 'distribuidor', 'Our story': 'marca', 'Find product': 'sombreros', 'Go to section': 'navegar', 'Talk to advisor': 'contacto', 'WhatsApp advisor': 'contacto', 'Requirements': 'requisitos', 'Apply now': 'aplicar', 'New collections': 'nuevoProducto', 'New product': 'nuevoProducto', 'Customization': 'personalizado', 'Where we are': 'ubicacion', 'Artisanal buckles': 'hebillas', 'Explain where': 'navegar', 'Send me a link': 'contacto', 'Heritage': 'marca' },
    waChips: ['Talk to an advisor', 'Yes, open WhatsApp', 'Talk on WhatsApp'],
    navChips: { 'Browse hats': 'sombreros', 'Browse catalog': 'sombreros', 'See distributors': 'distributors' },
  },

  fr: {
    botName: 'Lasso',
    welcome: 'Bonjour ! Je suis **Lasso**, l\'assistant SensStyle 🤠\n\nComment puis-je vous aider ?',
    welcomeChips: ['Voir les chapeaux', 'Ceintures et boucles', 'Devenir distributeur', 'Soin du cuir', 'À propos de SensStyle'],
    headerSub: 'Lasso répond à l\'instant',
    inputPlaceholder: 'Posez une question à Lasso...',
    send: 'Envoyer',
    waOptions: 'Parler à une personne :',
    waBtn: 'WhatsApp →',
    typing: 'Lasso est en train d\'écrire...',
    intents: {
      sombreros: { reply: 'Nous proposons **5 styles de chapeau western** en feutre artisanal :\n• **8 Secondes** — coiffe haute, bord courbé. Le plus imposant.\n• **Rebelle** — bords larges, profil dramatique.\n• **Llanero** — le Cattleman classique, élégant et polyvalent.\n• **Randao** — pincement frontal prononcé, look audacieux.\n• **Frontier (Gus)** — coiffe légèrement inclinée, très portable.\n\nSur lequel voulez-vous en savoir plus ?', chips: ['Chapeau 8 Secondes', 'Chapeau Rebelle', 'Chapeau Llanero', 'Quel matériau choisir ?', 'Comment prendre ma taille ?'] },
      estilo8s: { reply: 'Le **8 Secondes** est notre chapeau phare. Son nom vient du temps minimum pour réussir un rodéo.\n\n✦ Coiffe : 4–5 pouces de hauteur\n✦ Bords : modérés avec courbe latérale prononcée\n✦ Idéal pour : rodéos, événements, usage quotidien avec impact\n✦ Disponible en noir, brun tabac, gris et ivoire', chips: ['Comment choisir la couleur ?', 'Comment prendre ma taille ?', 'Soin du chapeau', 'Voir le catalogue'] },
      estiloRebelde: { reply: 'Le **Rebelle** est pour ceux qui refusent de passer inaperçus. Bords extra-larges et coiffe modérée qui domine tout espace.\n\n✦ Bords : 4,5–5,5 pouces\n✦ Silhouette dramatique et cinématographique\n✦ Idéal pour : soirées, festivals, photographie', chips: ['Comment prendre ma taille ?', 'Quel matériau choisir ?', 'Voir le catalogue', 'Chapeau Llanero'] },
      estiloLlanero: { reply: 'Le **Llanero (Cattleman)** est le chapeau western le plus classique et reconnaissable au monde.\n\n✦ Coiffe : trois crêtes, hauteur moyenne\n✦ Bords : 3,5–4 pouces, légèrement courbés\n✦ Polyvalent : du ranch à la réunion d\'affaires\n✦ Le best-seller parmi les distributeurs', chips: ['Chapeau 8 Secondes', 'Chapeau Frontier', 'Comment prendre ma taille ?', 'Voir le catalogue'] },
      estiloFrontier: { reply: 'Le **Frontier (Gus)** a une coiffe légèrement inclinée vers l\'avant qui lui confère un caractère distinct.\n\n✦ Coiffe : inclinaison frontale, hauteur modérée\n✦ Bords : 3,5–4 pouces\n✦ Idéal pour : usage urbain, voyages, quotidien', chips: ['Chapeau Rebelle', 'Chapeau Llanero', 'Quel matériau choisir ?', 'Voir le catalogue'] },
      talla: { reply: 'Mesurer sa taille est facile. Vous avez besoin d\'un mètre ruban souple :\n\n**1.** Entourez votre tête au niveau du front, environ 2 cm au-dessus des sourcils\n**2.** Notez la mesure en centimètres\n**3.** Utilisez ce guide :\n• 54–55 cm → Taille S\n• 56–57 cm → Taille M\n• 58–59 cm → Taille L\n• 60–61 cm → Taille XL\n• 62+ cm → Taille XXL\n\nEntre deux tailles, choisissez **la plus grande**.', chips: ['Quel style recommandez-vous ?', 'Types de chapeaux', 'Quel matériau choisir ?'] },
      materialesSombrero: { reply: 'Les chapeaux SensStyle sont fabriqués en :\n\n✦ **Feutre de laine pressée** — Le classique. Chaud, modelable à la vapeur. Pour printemps, automne et hiver.\n✦ **Paille naturelle tressée** — Plus ventilé et léger. Idéal pour l\'été.\n✦ **Cuir véritable** — Le plus durable. Caractère urbain et robuste.', chips: ['Quel style recommandez-vous ?', 'Soin du chapeau', 'Comment prendre ma taille ?'] },
      colores: { reply: 'Les couleurs disponibles :\n\n✦ **Noir** — le plus polyvalent et formel\n✦ **Brun tabac** — le classique cowboy par excellence\n✦ **Gris** — contemporain et urbain\n✦ **Ivoire / Crème** — élégant, idéal pour les événements\n✦ **Brun clair** — naturel, chaleureux, populaire dans les ranchs', chips: ['Types de chapeaux', 'Comment prendre ma taille ?', 'Voir le catalogue'] },
      correas: { reply: 'Nos **ceintures en cuir** sont en distribution grossiste exclusive. Deux gammes :\n\n✦ **Tanné végétal** — processus artisanal, plus rigide au départ, s\'assouplit à l\'usage. Le plus durable.\n✦ **Tanné au chrome** — plus souple dès le premier jour, finitions plus uniformes.\n\nLargeurs : **3 cm, 4 cm et 5 cm**.', chips: ['Quelle largeur choisir ?', 'Associer ceinture et boucle', 'Soin des ceintures', 'Devenir distributeur'] },
      anchoCorrea: { reply: 'La **largeur** dépend de votre style :\n\n✦ **3 cm** — profil plus urbain et discret\n✦ **4 cm** — l\'équilibre parfait pour presque toutes les occasions\n✦ **5 cm** — présence maximale. Pour les événements et rodéos\n\nPour un usage quotidien, nous recommandons **4 cm**.', chips: ['Associer ceinture et boucle', 'Soin des ceintures', 'Devenir distributeur'] },
      combinacion: { reply: 'La combinaison parfaite **ceinture + boucle** :\n\n✦ Cuir brun / cognac → boucle en laiton ou alpaga vieilli\n✦ Cuir noir → boucle en argent ou acier inoxydable\n✦ Cuir naturel → tous les métaux conviennent\n\nEn taille : la boucle doit être proportionnelle à la largeur de la ceinture.', chips: ['Types de boucles', 'Largeur de ceinture', 'Voir le catalogue'] },
      cuidadoCorrea: { reply: 'Pour que votre ceinture dure des décennies :\n\n**Nettoyage :** chiffon doux sec + savon sellerie pour les salissures\n\n**Conditionnement (tous les 3–4 mois) :** huile de pied de bœuf, lanoline ou cire d\'abeille\n\n**Protection :** spray imperméabilisant à base de cire\n\n**Rangement :** enroulée, sans pliures, lieu frais et ventilé', chips: ['Soin du chapeau', 'Soin des boucles', 'Devenir distributeur'] },
      hebillas: { reply: 'Les **boucles SensStyle** sont des pièces artisanales avec des gravures uniques :\n\n✦ **Alpaga (métal blanc)** — aspect similaire à l\'argent, économique\n✦ **Laiton plaqué** — ton doré chaud, très traditionnel\n✦ **Acier inoxydable** — le plus résistant\n✦ **Argent sterling** — ligne premium, pour collectionneurs', chips: ['Quel matériau ?', 'Associer ceinture et boucle', 'Soin des boucles', 'Devenir distributeur'] },
      materialHebilla: { reply: 'Pour choisir le **matériau de boucle** :\n\n✦ **Usage quotidien terrain** → acier inoxydable\n✦ **Événements et réunions** → alpaga ou laiton\n✦ **Collection ou cadeau spécial** → argent sterling\n✦ **Budget équilibré** → alpaga (excellent rapport qualité-prix)', chips: ['Usage quotidien', 'Pour un événement', 'Cadeau', 'Voir le catalogue'] },
      cuidadoHebilla: { reply: 'Pour garder votre **boucle comme neuve** :\n\n✦ Essuyez avec un chiffon doux sec après chaque utilisation\n✦ Utilisez le polish approprié pour le métal\n✦ Évitez l\'eau salée et les produits chimiques\n✦ Rangez dans un chiffon de flanelle pour éviter les rayures', chips: ['Soin des ceintures', 'Types de boucles', 'Voir le catalogue'] },
      cueroGenuino: { reply: '**Cuir véritable vs synthétique** :\n\nCuir véritable :\n• Variations naturelles de texture\n• Développe une belle patine avec le temps\n• Se froisse et retrouve sa forme graduellement\n• Dure des décennies avec un entretien de base\n\nLe synthétique commence à s\'écailler en 2–3 ans.', chips: ['Types de tannage', 'Comment entretenir le cuir', 'Voir le catalogue'] },
      curtido: { reply: '**Le type de tannage** définit la personnalité du cuir :\n\n✦ **Tanné végétal** — processus artisanal avec des tannins végétaux. Le plus "vivant" : respire, se modèle, s\'améliore à l\'usage.\n✦ **Tanné au chrome** — plus rapide, plus uniforme. Moins de caractère.\n\nNos ceintures premium sont **tannées végétal** exclusivement.', chips: ['Cuir véritable vs synthétique', 'Comment entretenir le cuir', 'Devenir distributeur'] },
      cuidado: { reply: 'L\'entretien du cuir est simple avec une routine régulière :\n\n**Étape 1 — Nettoyage** (mensuel)\nChiffon doux + savon sellerie. Jamais trop d\'eau.\n\n**Étape 2 — Conditionnement** (tous les 3–6 mois)\nHuile de pied de bœuf, lanoline ou cire d\'abeille.\n\n**Étape 3 — Protection**\nSpray imperméabilisant à base de cire.', chips: ['Soin du chapeau', 'Soin des ceintures', 'Soin des boucles'] },
      cuidadoSombrero: { reply: 'Votre **chapeau en feutre** mérite une attention particulière :\n\n✦ **Brossage quotidien :** brosse à poils doux dans le sens antihoraire\n✦ **Taches de graisse :** talc ou fécule de maïs, 8 heures, puis brosser\n✦ **Déformations :** vapeur d\'une casserole à distance prudente, mouler à la main\n✦ **Pluie :** laisser sécher à l\'air, jamais au sèche-cheveux\n✦ **Rangement :** toujours bord vers le haut ou sur la coiffe', chips: ['Soin des ceintures', 'Matériaux du chapeau', 'Voir le catalogue'] },
      distribuidor: { reply: 'Excellent choix ! Le **Programme Grossiste SensStyle** a tout pour faire croître votre entreprise :\n\n✦ Prix distributeur (30–45% sous le PDSF)\n✦ Catalogue complet avec nouveaux modèles chaque saison\n✦ Minimum par commande : **12 unités**\n✦ Délai d\'approbation : **24–48 heures**\n✦ Portail numérique exclusif', chips: ['Exigences du programme', 'Comment postuler ?', 'Commande minimale', 'Parler à un conseiller'] },
      requisitos: { reply: 'Pour rejoindre le programme grossiste :\n\n**Documents :**\n• Nom de votre entreprise\n• Courriel professionnel\n• Numéro de TVA (si applicable)\n• Province d\'opération\n\n**Opérationnel :**\n• Commande initiale minimale de **12 unités**\n\n**Processus :**\n1. Soumettez votre demande via WhatsApp\n2. Notre équipe l\'examine (24–48 h)\n3. Accès au portail avec prix grossiste\n4. Première commande', chips: ['Oui, je veux postuler', 'Coûts du programme', 'Parler à un conseiller'] },
      aplicar: { reply: 'Parfait. La façon la plus rapide est via **WhatsApp** — dites-nous simplement :\n\n• Nom de votre boutique\n• Province\n• Produits qui vous intéressent\n• Votre courriel pour l\'accès au portail\n\nNotre équipe répond dans les 24 heures.', chips: ['Oui, ouvrir WhatsApp', 'J\'ai d\'autres questions'] },
      minimo: { reply: 'La **commande minimale** est de **12 unités** par commande. Articles mixtes acceptés.\n\nPour les réapprovisionnements fréquents, le minimum descend à **6 unités** après 3 commandes.\n\nAucun contrat d\'exclusivité ni engagement minimum.', chips: ['Comment postuler ?', 'Modes de paiement', 'Délais de livraison'] },
      pago: { reply: 'Nous acceptons ces **modes de paiement** :\n\n✦ **Virement bancaire** (le plus courant)\n✦ **Virement électronique** (Canada, sans frais)\n✦ **Carte crédit/débit** (frais de 2,5%)\n✦ **Interac** (distributeurs canadiens)\n\nPremières commandes : **paiement 100% à l\'avance**. Crédit 30 jours à partir de la 3e commande.', chips: ['Délais de livraison', 'Commande minimale', 'Comment postuler ?'] },
      envio: { reply: '**Délais de livraison par province :**\n\n✦ Alberta, CB → 2–4 jours ouvrables\n✦ Saskatchewan, Manitoba → 3–5 jours\n✦ Ontario, Québec → 4–7 jours\n✦ Maritimes → 5–8 jours\n✦ Territoires → 7–12 jours\n\nExpédition avec **Canada Post Xpresspost** et **Purolator**. Numéro de suivi inclus.', chips: ['Commande minimale', 'Modes de paiement', 'Devenir distributeur'] },
      garantia: { reply: 'Tous les produits SensStyle incluent :\n\n✦ **Garantie fabrication :** 6 mois contre les défauts\n✦ **Politique de retour :** 30 jours pour articles en état original\n✦ **Échange de taille :** sans frais dans les 15 premiers jours', chips: ['Parler à un conseiller', 'Comment entretenir le cuir', 'Devenir distributeur'] },
      marca: { reply: '**SensStyle** est né comme pont entre les meilleures tanneries du sud et les rancheros, boutiques et cavaliers du Canada.\n\nChaque pièce passe par quatre mains avant d\'atteindre le distributeur :\n\n1. **Le tanneur** — sélectionne et prépare\n2. **L\'artisan** — coupe, coud et moule\n3. **L\'inspecteur** — vérifie chaque couture\n4. **L\'emballeur** — prépare avec soin\n\nDistribution dans **tout le Canada** depuis 2005.', chips: ['Voir le catalogue', 'Devenir distributeur', 'Où êtes-vous situés ?'] },
      ubicacion: { reply: 'Notre siège est à **Montreal, Quebec, Canada** :\n\n📍 5420 Boulevard Lévis, Saint-Léonard, QC\n📧 info@sensstyle.com\n📞 +1 514 867 7519\n\n⏰ Lundi au vendredi, 9 h–18 h HNR', chips: ['Voir les distributeurs', 'Parler sur WhatsApp', 'Devenir distributeur'] },
      distribuidores: { reply: 'Nos distributeurs autorisés :\n\n🇨🇦 **Alberta** — Calgary, Edmonton\n🇨🇦 **CB** — Vancouver, Abbotsford\n🇨🇦 **Saskatchewan** — Regina, Saskatoon\n🇨🇦 **Manitoba** — Winnipeg\n🇨🇦 **Ontario** — Toronto, Ottawa\n🇨🇦 **Québec** — Montréal, Québec\n🇨🇦 **Nouvelle-Écosse** — Halifax', chips: ['Parler sur WhatsApp', 'Devenir distributeur', 'Voir le catalogue'] },
      ocasiones: { reply: 'Quel chapeau pour quelle occasion :\n\n🤠 **Rodéo** → 8 Secondes\n🎪 **Festival** → Rebelle ou 8 Secondes\n🏙️ **Usage urbain** → Frontier ou Llanero\n👔 **Événement formel** → Llanero en feutre noir\n🌾 **Travail au ranch** → Llanero ou Randao\n📸 **Séance photo** → Rebelle', chips: ['Chapeau 8 Secondes', 'Chapeau Rebelle', 'Chapeau Llanero', 'Comment prendre ma taille ?'] },
      regalo: { reply: 'Les produits SensStyle sont des **cadeaux qui impressionnent** et durent des décennies :\n\n🎁 **Ensemble ceinture + boucle** — classique et fonctionnel\n🎁 **Chapeau Llanero** — le plus universel\n🎁 **Chapeau 8 Secondes** — pour ceux qui aiment se démarquer', chips: ['Comment prendre ma taille ?', 'Parler à un conseiller', 'Voir le catalogue'] },
      personalizado: { reply: 'Oui, nous offrons des **commandes personnalisées** :\n\n✦ Gravures sur boucles (initiales, logos, dates)\n✦ Couleurs spéciales\n✦ Étiquetage sous marque distributeur\n✦ Emballage premium cadeau\n\nMinimum : **24 unités**, délai de production : **3–4 semaines**.', chips: ['Parler à un conseiller', 'Devenir distributeur', 'Voir le catalogue'] },
      instagram: { reply: 'Retrouvez-nous sur les réseaux :\n\n📸 **Instagram :** @sensstyle.ca\n📘 **Facebook :** SensStyle Leather Co.\n\nSi vous êtes distributeur, taguez-nous dans vos publications !', chips: ['Devenir distributeur', 'Voir le catalogue', 'Parler à un conseiller'] },
      horario: { reply: 'Nos heures d\'affaires :\n\n🕘 **Lundi au vendredi :** 9 h — 18 h HNR\n📵 Samedi et dimanche : fermé\n\nVia **WhatsApp** : réponse en moins de **60 minutes** pendant les heures de bureau.', chips: ['Parler sur WhatsApp', 'Coordonnées', 'Devenir distributeur'] },
      contacto: { reply: 'Vous pouvez nous joindre par :\n\n📱 **WhatsApp** — le plus rapide\n📧 **Courriel :** info@sensstyle.com\n📞 **Téléphone :** +1 514 867 7519\n📍 **Adresse :** 5420 Boulevard Lévis, Saint-Léonard, QC', chips: ['Oui, ouvrir WhatsApp', 'Heures d\'affaires', 'Devenir distributeur'] },
      precio: { reply: 'Les **prix grossiste** sont exclusifs aux distributeurs enregistrés.\n\nLes marges pour les distributeurs vont de **30 à 45%** sous le prix de vente public, selon le volume.\n\nAccès complet après approbation du programme (24–48 h).', chips: ['Comment postuler ?', 'Commande minimale', 'Parler à un conseiller'] },
      catalogo: { reply: 'Le catalogue SensStyle comprend :\n\n🤠 **Chapeaux** — 5 styles × multiples couleurs\n🪢 **Ceintures** — tanné végétal et chrome, 3 largeurs\n🔶 **Boucles** — gravures artisanales en 4 matériaux\n📦 **Ensembles complets**\n\nParcourez le catalogue visuel dans la section **Collection** du menu.', chips: ['Voir les chapeaux', 'Ceintures et boucles', 'Devenir distributeur'] },
      fieltroVsPaja: { reply: '**Feutre vs Paille** :\n\n**Feutre de laine :**\n✦ Idéal pour automne, hiver, printemps\n✦ Modelable à la vapeur\n✦ Plus durable\n\n**Paille naturelle :**\n✦ Idéale pour l\'été\n✦ Plus ventilée et légère\n✦ Nécessite plus de précautions sous la pluie\n\nEn Alberta ou Saskatchewan ? Le **feutre** vous sert 9 mois par an.', chips: ['Types de chapeaux', 'Soin du chapeau', 'Voir le catalogue'] },
      uso: { reply: 'Comment le porter correctement :\n\n🤠 **Mise en tête :** ajustez jusqu\'à ce qu\'il soit ferme sans serrer\n🤠 **Retrait :** toujours par la coiffe, jamais par les bords\n🤠 **En intérieur formel :** retirez-le\n🤠 **Bord du chapeau :** ne jamais le courber soi-même — vapeur et artisan seulement', chips: ['Soin du chapeau', 'Types de chapeaux', 'Comment prendre ma taille ?'] },
      gracias: { reply: 'Avec plaisir ! 🤠 N\'hésitez pas si vous avez d\'autres questions.\n\nBonne chance dans votre choix !', chips: ['Voir les chapeaux', 'Devenir distributeur', 'Voir les distributeurs'] },
      holaCasual: { reply: 'Bonjour ! 🤠 Je suis Lasso, l\'assistant SensStyle. Si vous avez des questions sur les chapeaux, les ceintures, ou comment devenir distributeur, je suis là pour vous aider.', chips: ['Voir les chapeaux', 'Devenir distributeur', 'Soin du cuir', 'À propos de SensStyle'] },
      estoyBuscando: { reply: 'Parfait ! Dites-moi ce que vous cherchez et je vous aiderai à le trouver.\n\nJe peux vous parler de chapeaux western, ceintures en cuir, boucles artisanales, comment devenir distributeur, ou l\'entretien de vos produits.', chips: ['Chapeaux', 'Ceintures', 'Devenir distributeur', 'Soin du cuir'] },
      soloNavegando: { reply: 'Bienvenue ! Prenez votre temps pour regarder 🤠 Voici quelques suggestions :\n\n• **Collection** — notre catalogue complet\n• **Heritage** — la ligne premium\n• **Devenir distributeur** — pour ceux qui veulent distribuer\n\nQuelque chose vous intéresse ?', chips: ['Voir le catalogue', 'Devenir distributeur', 'À propos de SensStyle', 'Soin du cuir'] },
      quieroAprender: { reply: 'J\'adore cette attitude ! Voici ce que je peux vous apprendre :\n\n✦ Comment choisir le chapeau western parfait\n✦ Différences entre les matériaux de chapeau et de cuir\n✦ Comment entretenir vos produits pour qu\'ils durent des décennies\n✦ Le processus pour devenir distributeur SensStyle\n\nQu\'est-ce qui vous intéresse ?', chips: ['Chapeaux', 'Soin du cuir', 'Devenir distributeur', 'Matériaux'] },
      graciasCasual: { reply: 'Je vous en prie ! 🤠 N\'hésitez pas si vous avez besoin d\'autre chose. Bonne recherche !', chips: ['Voir les chapeaux', 'Devenir distributeur', 'Soin du cuir', 'À propos de SensStyle'] },
      redirectAsesor: { reply: '🤠 Pour ce dont vous avez besoin, il serait préférable de parler directement avec un de nos conseillers. Ils ont les prix exacts, la disponibilité et peuvent répondre à toute question.\n\n**Je vous connecte via WhatsApp** — ils répondent en moins de 60 minutes pendant les heures de bureau (lun–ven, 9h–18h HNR). Ça vous convient ?', chips: ['Oui, connecter maintenant', 'Voir le catalogue d\'abord', 'Quelles sont les heures ?', 'Envoyez-moi les infos'] },
      necesitaHumano: { reply: 'Pour cela, je recommande de contacter directement notre équipe. Ils ont toute l\'information et peuvent vous aider étape par étape.\n\n**WhatsApp** est le plus rapide — écrivez-leur et ils répondent en moins d\'une heure. Je vous connecte ?', chips: ['Oui, WhatsApp', 'Combien de temps ?', 'Voir le catalogue', 'À propos de SensStyle'] },
      asesorEspecializado: { reply: '🤠 Mon conseiller a l\'information spécifique dont vous avez besoin. Il peut vérifier la disponibilité, vous donner les prix exacts et répondre à toute question.\n\nLe mieux : écrivez-leur sur WhatsApp et ils répondent immédiatement. Je vous connecte ?', chips: ['Oui, connectez-moi', 'Que peuvent-ils faire ?', 'Heures d\'affaires', 'Plus d\'infos'] },
      noEntiendo: { reply: '🤠 Hmm, je ne suis pas sûr d\'avoir bien compris. Je vous connecte avec un conseiller qui peut vous aider mieux — ils répondent en moins de 60 minutes.', chips: ['Oui, parler au conseiller', 'Voir le catalogue', 'Voir les chapeaux', 'Devenir distributeur'] },
      noTengoInfo: { reply: 'Pour ça, j\'ai besoin de mon équipe humaine — ils ont tous les détails et peuvent répondre en temps réel. Voulez-vous que je vous connecte via WhatsApp ?', chips: ['Oui, WhatsApp', 'Voir les chapeaux', 'Devenir distributeur', 'À propos de SensStyle'] },
      noEstoySeguro: { reply: 'Bonne question. Mes conseillers ont la réponse exacte. Voulez-vous que je vous mette en contact avec eux par WhatsApp ?', chips: ['Oui, ouvrir WhatsApp', 'Voir le catalogue', 'Voir les distributeurs', 'Soin du cuir'] },
      maybeAsesor: { reply: 'Hmm, ça demande des détails spécifiques qu\'un conseiller peut mieux vous donner. Sur WhatsApp on répond en moins de 60 min. Je vous connecte ?', chips: ['Oui, WhatsApp maintenant', 'Voir les chapeaux', 'Comment devenir distributeur', 'Voir le catalogue'] },
      fueraDeAlcance: { reply: '🤠 C\'est une question où j\'ai toute une équipe prête à vous aider. Voulez-vous que je vous redirige vers WhatsApp ? Ils répondent en moins d\'une heure.', chips: ['Connecter via WhatsApp', 'Voir les produits', 'Devenir distributeur', 'Soin du cuir'] },
      conceptoVago: { reply: 'Pour ça, vous avez besoin de quelqu\'un de mon équipe avec tous les détails. Sur WhatsApp ils répondent vite. Je vous connecte ?', chips: ['Oui, WhatsApp', 'Voir le catalogue', 'Devenir distributeur', 'À propos de SensStyle'] },
      navegar: { reply: 'Naviguer sur SensStyle est facile. Utilisez le menu principal pour explorer :\n\n✦ **Collection** — tous les produits\n✦ **Heritage** — notre ligne premium\n✦ **Devenir distributeur** — candidature distributeur\n✦ **À propos** — histoire et valeurs\n\nVous cherchez quelque chose de spécifique ?', chips: ['Voir le catalogue', 'Devenir distributeur', 'À propos de SensStyle', 'Ligne Heritage'] },
      website: { reply: 'Bienvenue sur SensStyle 🤠 Ici vous pouvez explorer :\n\n✦ **5 styles de chapeau** western en feutre artisanal\n✦ **Ceintures de cuir** — tannage végétal et chrome\n✦ **Boucles artisanales** en 4 matériaux\n✦ **Programme grossiste** pour distributeurs\n\nSur quoi voulez-vous en savoir plus ?', chips: ['Voir les chapeaux', 'Ceintures et boucles', 'Devenir distributeur', 'Soin du cuir'] },
      menu: { reply: 'Le menu a tout ce dont vous avez besoin :\n\n📦 **Collection** — produits complets\n💎 **Heritage** — ligne premium\n🤝 **Devenir distributeur** — postuler comme distributeur\n👥 **À propos** — notre histoire\n\nQuelle section vous intéresse ?', chips: ['Voir la collection', 'Ligne Heritage', 'Postuler comme distributeur', 'Notre histoire'] },
      buscoAlgo: { reply: 'Dites-moi ce que vous cherchez et je vous aiderai à le trouver 🤠\n\nOn peut parler de :\n• Chapeaux western (5 styles)\n• Ceintures et boucles en cuir\n• Comment devenir distributeur\n• L\'entretien des produits en cuir\n\nDe quoi avez-vous besoin ?', chips: ['Chapeaux', 'Ceintures', 'Devenir distributeur', 'Soin du cuir'] },
      noEncontrar: { reply: 'Si vous ne trouvez pas ce que vous cherchez, dites-moi quoi. Je peux :\n• Vous expliquer où c\'est sur la page\n• Vous envoyer un lien direct\n• Vous connecter avec un conseiller sur WhatsApp\n\nQue préférez-vous ?', chips: ['Expliquez où', 'Envoyez-moi un lien', 'Conseiller WhatsApp', 'Voir le catalogue'] },
      dondeEsta: { reply: 'Vous ne trouvez pas quelque chose sur la page ? 🤠 Je peux vous aider :\n\n✦ Vous cherchez un produit → dites-moi quel type\n✦ Vous cherchez une section → dites-moi son nom\n✦ Vous voulez acheter → je vous connecte avec un conseiller\n\nDe quoi avez-vous besoin ?', chips: ['Trouver un produit', 'Aller à une section', 'Parler au conseiller', 'Voir le catalogue'] },
      oferta: { reply: 'Les offres et promotions vont directement à nos distributeurs enregistrés. Si vous êtes distributeur, consultez le portail exclusif.\n\nPas encore d\'accès ? Vous pouvez postuler comme distributeur — minimum 12 unités, 30–45% sous le PDSF.', chips: ['Postuler comme distributeur', 'Voir le catalogue', 'Parler à un conseiller', 'Exigences'] },
      descuento: { reply: 'Les réductions sont exclusives aux distributeurs enregistrés dans notre programme grossiste.\n\n✦ Accès aux prix de distribution\n✦ Marges de 30–45% sous le prix de vente public\n✦ Minimum 12 unités par commande\n\nVous voulez postuler comme distributeur ?', chips: ['Postuler maintenant', 'Voir le catalogue', 'Parler à un conseiller', 'Exigences'] },
      promo: { reply: 'Les promotions sont envoyées aux distributeurs via le portail. Si vous n\'avez pas encore accès, vous pouvez le demander — le processus prend 24–48 heures.\n\nVoulez-vous que je vous aide à postuler comme distributeur ?', chips: ['Postuler comme distributeur', 'Voir le catalogue', 'Exigences', 'Parler à un conseiller'] },
      precioMayorista: { reply: 'Comme distributeur SensStyle vous avez des prix exclusifs :\n\n✦ 30–45% sous le prix de vente public\n✦ Dépend du volume de commande\n✦ Accès au portail numérique avec prix spéciaux\n\nMinimum : 12 unités par commande. Vous voulez postuler ?', chips: ['Postuler maintenant', 'Voir le catalogue', 'Exigences', 'Parler à un conseiller'] },
      comprar: { reply: 'Pour acheter en gros vous devez être distributeur enregistré. Le processus :\n\n1. Postulez via WhatsApp ou courriel\n2. Obtenez l\'approbation en 24–48 heures\n3. Accédez au portail avec les prix grossistes\n4. Passez votre commande (minimum 12 unités)\n\nPrêt à commencer ?', chips: ['Postuler maintenant', 'Voir le catalogue', 'Parler à un conseiller', 'Exigences'] },
      vender: { reply: 'Si vous voulez vendre les produits SensStyle, postulez au programme de distributeur :\n\n✦ Prix grossistes (30–45% sous le PDSF)\n✦ Catalogue complet\n✦ Minimum 12 unités par commande\n\nLe processus est simple : écrivez à info@sensstyle.com ou via WhatsApp.', chips: ['Postuler comme distributeur', 'Voir le catalogue', 'À propos de SensStyle', 'Parler à un conseiller'] },
      cuantoCuesta: { reply: 'Les prix publics sont dans le catalogue. Mais si vous voulez les prix distributeur (30–45% moins), postulez au programme grossiste — minimum 12 unités.', chips: ['Voir le catalogue', 'Postuler comme distributeur', 'Parler à un conseiller', 'Exigences'] },
      ventaCorporativa: { reply: 'Pour les commandes corporatives ou ventes B2B, nous avons un programme spécial :\n\n✦ Quantités dès 24 unités\n✦ Personnalisation disponible (gravure, couleurs, étiquettes)\n✦ Emballage premium pour cadeaux corporatifs\n\nUn conseiller peut vous donner une cotisation personnalisée. Je vous connecte ?', chips: ['Oui, WhatsApp', 'Voir le catalogue', 'Personnalisation', 'Devenir distributeur'] },
      nuevoProducto: { reply: 'Nous introduisons de nouvelles pièces chaque saison. Les distributeurs ont un accès anticipé via le portail.\n\nÊtes-vous distributeur ? Si non, vous pouvez postuler et avoir accès complet au catalogue saisonnier.', chips: ['Postuler comme distributeur', 'Voir le catalogue', 'Nouvelles collections', 'Parler à un conseiller'] },
      verTodo: { reply: 'Le catalogue SensStyle comprend :\n\n🤠 **5 styles de chapeau** (8 Secondes, Rebelle, Llanero, Randao, Frontier)\n🪢 **Ceintures** (tannage végétal et chrome, 3 largeurs)\n🔶 **Boucles** (alpaga, laiton, acier, argent)\n📦 **Ensembles** (ensembles coordonnés chapeau + ceinture + boucle)\n\nQuelque chose vous intéresse spécifiquement ?', chips: ['Chapeaux', 'Ceintures', 'Boucles', 'Ensembles'] },
      tieneExistencia: { reply: 'La disponibilité exacte se trouve auprès de l\'équipe qui a accès à l\'inventaire en temps réel. Pour une information précise sur le stock, un conseiller peut vous confirmer instantanément sur WhatsApp.', chips: ['Parler à un conseiller', 'Voir le catalogue', 'Postuler comme distributeur', 'Nouveau produit'] },
      agendarReunion: { reply: 'Si vous avez besoin de parler en personne ou de planifier un appel avec notre équipe, je peux vous connecter sur WhatsApp pour coordonner.\n\nQuel horaire vous convient le mieux ? Nous sommes disponibles du lundi au vendredi, 9h–18h HNR.', chips: ['Connecter via WhatsApp', 'Voir le catalogue', 'Devenir distributeur', 'À propos de SensStyle'] },
      quienesSomos: { reply: '**SensStyle** relie les meilleures traditions artisanales de l\'Ouest aux distributeurs modernes au Canada.\n\nNous sommes importateurs directs de produits western de haute qualité. Chaque pièce passe par des mains expertes : des meilleures tanneries à nos artisans.\n\nNous distribuons dans tout le Canada depuis Montréal, Québec.', chips: ['Voir le catalogue', 'Devenir distributeur', 'Notre histoire', 'Où sommes-nous'] },
      calidad: { reply: 'La qualité SensStyle vient de chaque étape :\n\n✦ **Tanneries sélectionnées** — tannage végétal artisanal\n✦ **Artisans experts** — plus de 10 ans d\'expérience\n✦ **Inspection en 4 points** — chaque pièce vérifiée avant l\'envoi\n✦ **Matériaux premium** — du feutre de laine à l\'argent sterling\n\nC\'est ce qui fait la différence dans une pièce qui dure des décennies.', chips: ['Voir le catalogue', 'Soin du cuir', 'Devenir distributeur', 'Boucles artisanales'] },
      diferencia: { reply: 'Ce qui différencie SensStyle :\n\n✦ **Origine artisanale** — chaque chapeau fait avec des techniques traditionnelles\n✦ **Tannage végétal** — le cuir le plus vivant et durable\n✦ **Gravures uniques** — des designs qu\'on ne trouve pas ailleurs\n✦ **Distribution directe** — de Calgary à tout le Canada sans intermédiaires\n✦ **Programme grossiste professionnel** — des prix qui rendent votre entreprise rentable\n\nSur quoi voulez-vous en savoir plus ?', chips: ['Voir le catalogue', 'Devenir distributeur', 'Soin du cuir', 'Notre histoire'] },
      fallback: { reply: 'Hmm, je ne suis pas sûr d\'avoir la réponse exacte. 🤠 Mais notre équipe humaine peut vous aider.\n\nVoulez-vous que je vous connecte à un conseiller via WhatsApp ?', chips: ['Oui, ouvrir WhatsApp', 'Voir les chapeaux', 'Devenir distributeur', 'À propos de SensStyle'] },
    },
    chips: { 'Voir les chapeaux': 'sombreros', 'Ceintures et boucles': 'correas', 'Devenir distributeur': 'distribuidor', 'Soin du cuir': 'cuidado', 'À propos de SensStyle': 'marca', 'Chapeau 8 Secondes': 'estilo8s', 'Chapeau Rebelle': 'estiloRebelde', 'Chapeau Llanero': 'estiloLlanero', 'Chapeau Frontier': 'estiloFrontier', 'Comment prendre ma taille ?': 'talla', 'Quel matériau choisir ?': 'materialesSombrero', 'Matériaux du chapeau': 'materialesSombrero', 'Quel style recommandez-vous ?': 'ocasiones', 'Types de chapeaux': 'sombreros', 'Soin du chapeau': 'cuidadoSombrero', 'Soin des ceintures': 'cuidadoCorrea', 'Soin des boucles': 'cuidadoHebilla', 'Types de boucles': 'hebillas', 'Quel matériau ?': 'materialHebilla', 'Usage quotidien': 'materialHebilla', 'Pour un événement': 'materialHebilla', 'Cadeau': 'regalo', 'Voir le catalogue': 'catalogo', 'Associer ceinture et boucle': 'combinacion', 'Quelle largeur choisir ?': 'anchoCorrea', 'Largeur de ceinture': 'anchoCorrea', 'Cuir véritable vs synthétique': 'cueroGenuino', 'Types de tannage': 'curtido', 'Comment entretenir le cuir': 'cuidado', 'Où êtes-vous situés ?': 'ubicacion', 'Coordonnées': 'contacto', 'Voir les distributeurs': 'distribuidores', 'Feutre vs Paille': 'fieltroVsPaja', 'Exigences du programme': 'requisitos', 'Comment postuler ?': 'aplicar', 'Oui, je veux postuler': 'aplicar', 'Coûts du programme': 'precio', 'Commande minimale': 'minimo', 'Modes de paiement': 'pago', 'Délais de livraison': 'envio', 'J\'ai d\'autres questions': 'sombreros', 'Heures d\'affaires': 'horario', 'Comment choisir la couleur ?': 'colores', 'Oui, connecter maintenant': 'contacto', 'Quelles sont les heures ?': 'horario', 'Envoyez-moi les infos': 'contacto', 'Combien de temps ?': 'horario', 'Oui, WhatsApp': 'contacto', 'Oui, connectez-moi': 'contacto', 'Que peuvent-ils faire ?': 'contacto', 'Plus d\'infos': 'contacto', 'Oui, parler au conseiller': 'contacto', 'Chapeaux': 'sombreros', 'Ceintures': 'correas', 'Matériaux': 'materialesSombrero', 'Ligne Heritage': 'marca', 'Voir la collection': 'catalogo', 'Postuler comme distributeur': 'distribuidor', 'Notre histoire': 'marca', 'Trouver un produit': 'sombreros', 'Aller à une section': 'navegar', 'Parler au conseiller': 'contacto', 'Conseiller WhatsApp': 'contacto', 'Exigences': 'requisitos', 'Postuler maintenant': 'aplicar', 'Nouvelles collections': 'nuevoProducto', 'Nouveau produit': 'nuevoProducto', 'Personnalisation': 'personalizado', 'Où sommes-nous': 'ubicacion', 'Boucles artisanales': 'hebillas', 'Expliquez où': 'navegar', 'Envoyez-moi un lien': 'contacto', 'Ensembles': 'catalogo' },
    waChips: ['Parler à un conseiller', 'Oui, ouvrir WhatsApp', 'Parler sur WhatsApp'],
    navChips: { 'Voir les chapeaux': 'sombreros', 'Voir le catalogue': 'sombreros', 'Voir les distributeurs': 'distributors' },
  },
};

// ── Intent matcher (weighted scoring) ──────────────────────────────────────────
function matchIntent(text, lang) {
  const n = text.toLowerCase().normalize('NFD').replace(/[̀-ͯ]/g, '');
  const words = n.split(/\s+/);

  // ── SENTIMENT & URGENCY (immediate redirect) ──────────────────────────────
  const sentimentRules = [
    { id: 'contacto', kw: ['enojado','enojada','enojo','furioso','furiosa','molesto','molesta','bronca','rabia','ira','mierd','caraj','jod','put','malparid','verga','pesimo','terrible','horrible','desastre','fraude','estafa','timo','robo','ladron','basura','asqueroso','repugnante','inutil','no sirve','no funciona','defectuoso','danado','roto','harto','cansado','fastidiado','angry','furious','upset','mad','pissed','sucks','awful','worst','scam','ripoff','trash','garbage','disgusting','useless','broken','fed up','frustrated','furieux','colere','degoutant','nul','arnaque','vole','pourri','inutile','casse','decepcionado','decepcionada','decepcion','odio','detesto','nunca mas','no vuelvo','no recomiendo','mal experiencia','mala experiencia','bad experience','decevant','decu','triste','pena'] },
    { id: 'contacto', kw: ['urgente','urgencia','prisa','rapido','vite','fast','quick','inmediato','ya','ahora','asap','hoy mismo','lo antes posible','cuanto antes','necesito ya','para hoy','para manana','emergency','urgence','emergencia','urgent','right away','immediately','desesperado','desesperada'] },
    { id: 'garantia', kw: ['cancelar','cancelacion','reembolso','reembolsar','devolver','devolucion','retornar','anular','anulacion','baja','darme de baja','cancelar pedido','cancelar cuenta','refund','cancel','return','annuler','remboursement','rembourser','retourner','annulation'] },
  ];
  for (const s of sentimentRules) {
    if (s.kw.some(k => n.includes(k))) return s.id;
  }

  // ── WEIGHTED KEYWORD RULES ─────────────────────────────────────────────────
  // w=3 = specific phrase (high confidence), w=2 = strong keyword, w=1 = broad word
  const rules = [
    // ── SOMBREROS - estilos ──
    { id: 'estilo8s', w: 3, kw: ['8 segundo','ocho segundo','ochosegundos','8s ','segundos 8','8 second','eight second','huit seconde','8 secondes','8 segundos','8segundos','sombrero 8','hat 8','chapeau 8'] },
    { id: 'estilo8s', w: 2, kw: ['8s','ocho segundos'] },
    { id: 'estiloRebelde', w: 3, kw: ['sombrero rebelde','rebel hat','chapeau rebelle'] },
    { id: 'estiloRebelde', w: 2, kw: ['rebelde','rebel','rebeld','rebell'] },
    { id: 'estiloLlanero', w: 3, kw: ['sombrero llanero','cattleman hat','chapeau llanero','chapeau cattleman'] },
    { id: 'estiloLlanero', w: 2, kw: ['llanero','cattleman','catleman','cattle man'] },
    { id: 'estiloFrontier', w: 3, kw: ['sombrero frontier','frontier hat','chapeau frontier'] },
    { id: 'estiloFrontier', w: 2, kw: ['frontier','gus frontier','frontera','fronterizo'] },

    // ── Tallas y medidas ──
    { id: 'talla', w: 3, kw: ['como tomar talla','how to measure size','comment prendre taille','medir cabeza','medir talla','talla sombrero','hat size','taille chapeau','guia de tallas','size guide','guide des tailles','size chart','tabla de tallas'] },
    { id: 'talla', w: 2, kw: ['talla','size','taille','medida','medir','mide','tamano','talle','mesure','measure'] },
    { id: 'talla', w: 1, kw: ['centimetro','pulgada','inch','grand','pequen','chico','grande','cabeza'] },

    // ── Materiales ──
    { id: 'fieltroVsPaja', w: 3, kw: ['fieltro vs paja','felt vs straw','feutre vs paille','fieltro o paja','felt or straw','feutre ou paille','sombrero de paja','straw hat','chapeau de paille'] },
    { id: 'fieltroVsPaja', w: 2, kw: ['fieltro','paja','felt','straw','feutre','paille','lana','wool','laine'] },
    { id: 'materialesSombrero', w: 3, kw: ['material sombrero','hat material','materiau chapeau','de que esta hecho','what is it made','en quoi est fait','que material','what material','quel materiau','fabricado con','made of','fait de'] },
    { id: 'materialesSombrero', w: 1, kw: ['prensado','tejido','tissue','trenzado','composition'] },

    // ── Colores ──
    { id: 'colores', w: 3, kw: ['que colores','what colors','quelles couleurs','color disponible','available color','couleur disponible','elegir color','choose color','choisir couleur'] },
    { id: 'colores', w: 2, kw: ['color','colour','couleur','colores','colors','couleurs'] },
    { id: 'colores', w: 1, kw: ['negro','cafe','gris','hueso','black','brown','grey','gray','blanco','white','blanc','crema','cream','tabaco','tobacco','cognac','chocolate','beige','maron','marron','ocre','camel','arena','sand'] },

    // ── Uso y ocasiones ──
    { id: 'ocasiones', w: 3, kw: ['para que ocasion','for what occasion','pour quelle occasion','cuando usar','when to wear','quand porter','que sombrero usar','which hat to wear','quel chapeau porter','sombrero para','hat for','chapeau pour','recomendar sombrero','recommend hat','recommander chapeau','mejor sombrero para','best hat for'] },
    { id: 'uso', w: 3, kw: ['como usar sombrero','how to wear hat','comment porter chapeau','como llevar','como ponerse','how to put on','comment mettre'] },
    { id: 'uso', w: 2, kw: ['usar sombrero','wear hat','porter chapeau','ocasion','evento','fiesta','rodeo','trabajo','ranch','urbano','ciudad','formal','casual','diario','daily','quotidien'] },

    // ── Correas ──
    { id: 'anchoCorrea', w: 3, kw: ['ancho de correa','belt width','largeur ceinture','que ancho','what width','quelle largeur','3cm','4cm','5cm','3 cm','4 cm','5 cm'] },
    { id: 'anchoCorrea', w: 2, kw: ['ancho','width','largeur','delgada','gruesa','estrecha','amplia','narrow','wide','etroit','large'] },
    { id: 'combinacion', w: 3, kw: ['combinar correa y hebilla','pair belt buckle','associer ceinture boucle','que hebilla con correa','which buckle with belt','quelle boucle avec ceinture'] },
    { id: 'combinacion', w: 2, kw: ['combinar','combine','associer','conjunto','match','juego','set','pair','pairing','maridar','combinacion'] },
    { id: 'correas', w: 3, kw: ['correa de cuero','leather belt','ceinture cuir','cinturon de cuero'] },
    { id: 'correas', w: 2, kw: ['correa','belt','ceinture','cinturon','cintur','correas','belts','ceintures','cinturones'] },

    // ── Cuidado ──
    { id: 'cuidadoSombrero', w: 3, kw: ['cuidado sombrero','hat care','soin chapeau','limpiar sombrero','clean hat','nettoyer chapeau','mantener sombrero','maintain hat','entretenir chapeau','lavar sombrero','cepillar sombrero','brush hat','brosser chapeau','mancha sombrero','hat stain','tache chapeau'] },
    { id: 'cuidadoCorrea', w: 3, kw: ['cuidado correa','belt care','soin ceinture','limpiar correa','clean belt','nettoyer ceinture','mantener correa','aceite correa','oil belt','huile ceinture','nutrir correa','condition belt','conditionner ceinture','hidratar correa'] },
    { id: 'cuidadoHebilla', w: 3, kw: ['cuidado hebilla','buckle care','soin boucle','limpiar hebilla','clean buckle','nettoyer boucle','pulir hebilla','polish buckle','brillar hebilla','shine buckle','opaca hebilla','tarnish buckle','ternir boucle'] },
    { id: 'cuidado', w: 3, kw: ['cuidado del cuero','leather care','entretien cuir','cuidar cuero','care for leather','entretenir cuir','limpiar cuero','clean leather','nettoyer cuir','mantener cuero','preserve leather','preservar cuero','proteger cuero','protect leather'] },
    { id: 'cuidado', w: 2, kw: ['cuidado','care','entretien','limpiar','clean','nettoyer','conservar','preservar','proteger','durar','vida util','vida util','durability'] },

    // ── Productos principales ──
    { id: 'sombreros', w: 3, kw: ['tipos de sombrero','hat styles','types de chapeau','ver sombreros','see hats','voir chapeaux','catalogo sombreros','hat catalog','catalogue chapeaux','estilos de sombrero'] },
    { id: 'sombreros', w: 2, kw: ['sombrero','hat','chapeau','vaquero','cowboy','western','oeste','rancho','ranch','fieltro','felt','feutre','ala','brim','bord','copa','crown','coiffe'] },
    { id: 'hebillas', w: 3, kw: ['tipos de hebilla','buckle types','types de boucle','ver hebillas','see buckles','voir boucles'] },
    { id: 'hebillas', w: 2, kw: ['hebilla','buckle','boucle','broche','clasp','fermoir','hebillas','buckles','boucles'] },
    { id: 'materialHebilla', w: 3, kw: ['material hebilla','buckle material','materiau boucle','que hebilla elegir','which buckle','quelle boucle choisir','acero inoxidable','stainless steel','acier inoxydable','alpaca hebilla','alpaca buckle','boucle alpaca','plata esterlina','sterling silver','argent sterling','laton banado','plated brass','laiton'] },
    { id: 'materialHebilla', w: 1, kw: ['acero','alpaca','plata','silver','argent','laton','bronze','oro','gold','or','metal'] },

    // ── Cuero ──
    { id: 'curtido', w: 3, kw: ['tipo de curtido','tanning type','type de tannage','curtido vegetal','vegetable tanned','tannage vegetal','curtido al cromo','chrome tanned','tannage chrome'] },
    { id: 'curtido', w: 2, kw: ['curtido','tanning','tannage','curtir','tanner','vegetal','cromo','chrome'] },
    { id: 'cueroGenuino', w: 3, kw: ['cuero genuino vs sintetico','genuine vs synthetic leather','cuir vrai vs synthetique','cuero genuino','genuine leather','cuir veritable','cuero real','real leather','vrai cuir','cuero sintetico','synthetic leather','cuir synthetique','cuero falso','fake leather','faux cuir','piel natural','natural hide'] },
    { id: 'cueroGenuino', w: 2, kw: ['genuino','genuine','sintetico','synthetic','synthetique','artificial','fake','faux','verdadero','verdadero cuero'] },

    // ── Distribuidor ──
    { id: 'distribuidor', w: 3, kw: ['ser distribuidor','become distributor','devenir distributeur','programa mayorista','wholesale program','programme grossiste','quiero ser distribuidor','i want to be distributor','je veux etre distributeur','aplicar distribuidor','apply distributor','postuler distributeur','vender sensstyle','sell sensstyle','distribuir sensstyle'] },
    { id: 'distribuidor', w: 2, kw: ['distribuidor','mayorista','wholesale','grossiste','distributor','distributeur','programa','program','programme'] },
    { id: 'requisitos', w: 3, kw: ['requisitos distribuidor','distributor requirements','exigences distributeur','que necesito','what do i need','que faut-il','documentos necesarios','required documents','documents necessaires','como aplicar','how to apply','comment postuler','proceso de aplicacion','application process'] },
    { id: 'requisitos', w: 2, kw: ['requisito','requirement','exigen','condicion','necesito','necesario','papeles','documentos','document','registro','tax','iva','business','negocio','empresa'] },
    { id: 'aplicar', w: 3, kw: ['quiero aplicar','i want to apply','je veux postuler','aplicar como distribuidor','apply as distributor','postuler comme distributeur','como me inscribo','how do i sign up','comment m inscrire','registrarme','sign up','s inscrire','empezar proceso','start process'] },
    { id: 'aplicar', w: 2, kw: ['aplica','apply','postul','inscrib','registr','quiero ser','hacerme distribuidor','unirme','join','adherer','comenzar','start','commencer'] },
    { id: 'minimo', w: 3, kw: ['pedido minimo','minimum order','commande minimale','minimo de orden','cual es el minimo','what is the minimum','quel est le minimum','cuantas unidades','how many units','combien unites','cantidad minima','minimum quantity'] },
    { id: 'minimo', w: 2, kw: ['minimo','minimum','minima','cuantas','how many','combien','cantidad','quantity','unidades','units','ordenes','orden'] },
    { id: 'distribuidores', w: 3, kw: ['donde comprar','where to buy','ou acheter','distribuidores cerca','distributors near','distributeurs pres','tiendas distribuidoras','distributor stores','boutiques distributrices','punto de venta','point of sale','point de vente'] },
    { id: 'distribuidores', w: 2, kw: ['distribuidores','distributors','distributeurs','tienda','store','boutique','shop','magasin','cerca','near','pres','encuentra','find','trouver'] },

    // ── Pagos y envios ──
    { id: 'pago', w: 3, kw: ['formas de pago','payment methods','modes de paiement','como pagar','how to pay','comment payer','metodos de pago','aceptan tarjeta','do you accept cards','acceptez-vous cartes','transferencia bancaria','bank transfer','virement bancaire','e-transfer','interac'] },
    { id: 'pago', w: 2, kw: ['pago','payment','paiement','pagar','pay','payer','tarjeta','card','carte','transferencia','virement','efectivo','cash','especes','cheque','paypal','stripe'] },
    { id: 'envio', w: 3, kw: ['tiempo de envio','shipping time','delai livraison','cuanto tarda envio','how long shipping','combien temps livraison','costo de envio','shipping cost','frais de livraison','envio a mi provincia','shipping to my province','livraison province'] },
    { id: 'envio', w: 2, kw: ['envio','enviar','shipping','livraison','deliver','delivery','entrega','tracking','rastreo','seguimiento','suivi','correo','post','courrier','purolator','canada post','fedex','ups','dhl'] },
    { id: 'garantia', w: 3, kw: ['politica de garantia','warranty policy','politique garantie','politica de devolucion','return policy','politique retour','devolver producto','return product','retourner produit','cambio de talla','size exchange','echange taille','producto defectuoso','defective product','produit defectueux'] },
    { id: 'garantia', w: 2, kw: ['garantia','warranty','garantie','devolu','return','retour','reembolso','refund','remboursement','cambio','exchange','echange','defecto','defect','defaut','danado','damaged','endommage','roto','broken','casse'] },

    // ── Catalogo y productos ──
    { id: 'catalogo', w: 3, kw: ['ver catalogo','see catalog','voir catalogue','mostrar productos','show products','montrer produits','catalogo completo','full catalog','catalogue complet','ver coleccion','see collection','voir collection'] },
    { id: 'catalogo', w: 2, kw: ['catalogo','catalog','catalogue','coleccion','collection','productos','products','produits','lista','list','inventario','inventory','inventaire','disponible','available','stock'] },
    { id: 'precio', w: 3, kw: ['lista de precios','price list','liste des prix','cuanto cuesta','how much does it cost','combien ca coute','precio de','price of','prix de'] },
    { id: 'precio', w: 2, kw: ['precio','price','prix','costo','cost','cout','tarifa','tarif','cuanto','how much','combien','valor','caro','expensive','cher','barato','cheap'] },
    { id: 'regalo', w: 3, kw: ['regalo para','gift for','cadeau pour','regalar sombrero','gift a hat','offrir chapeau','idea de regalo','gift idea','idee cadeau','mejor regalo','best gift','meilleur cadeau','cumpleanos','birthday','anniversaire','navidad','christmas','noel','dia del padre','father day','fete des peres','dia de la madre','mother day','fete des meres'] },
    { id: 'regalo', w: 2, kw: ['regalo','gift','cadeau','regalar','obsequi','present','don'] },
    { id: 'personalizado', w: 3, kw: ['grabado personalizado','custom engraving','gravure personnalisee','hebilla con nombre','buckle with name','boucle avec nom','sombrero personalizado','custom hat','chapeau personnalise','pedido especial','special order','commande speciale','private label','marca propia'] },
    { id: 'personalizado', w: 2, kw: ['personaliz','custom','personnalis','grabado','engraving','gravure','logo','inicial','monograma','monogram','unico','unique','exclusivo','exclusive','exclusif'] },
    { id: 'nuevoProducto', w: 3, kw: ['nuevo modelo','new model','nouveau modele','nuevos productos','new products','nouveaux produits','novedades','new arrivals','nouveautes','ultima coleccion','latest collection','derniere collection'] },
    { id: 'nuevoProducto', w: 2, kw: ['nuevo','new','nouveau','novedad','latest','reciente','recent'] },
    { id: 'verTodo', w: 3, kw: ['ver todo','see all','voir tout','catalogo completo','full catalog','catalogue complet','todos los productos','all products','tous les produits','mostrar todo','show everything','montrer tout'] },
    { id: 'tieneExistencia', w: 3, kw: ['tienen en stock','in stock','en stock','hay disponibilidad','is it available','est-ce disponible','lo tienen','do you have it','avez-vous','queda','still available','toujours disponible'] },
    { id: 'tieneExistencia', w: 2, kw: ['disponible','available','existencia','stock','inventario','inventory'] },

    // ── Compra / Venta ──
    { id: 'comprar', w: 3, kw: ['quiero comprar','i want to buy','je veux acheter','como comprar','how to buy','comment acheter','donde comprar','where to buy','ou acheter','comprar online','buy online','acheter en ligne'] },
    { id: 'comprar', w: 2, kw: ['comprar','buy','acheter','adquirir','purchase','achat','ordenar','order','commander'] },
    { id: 'vender', w: 3, kw: ['quiero vender','i want to sell','je veux vendre','vender sus productos','sell your products','vendre vos produits','ser revendedor','become reseller','devenir revendeur'] },
    { id: 'vender', w: 2, kw: ['vender','sell','vendre','revender','resell','comercializar','market','distribuir','distribute'] },
    { id: 'ventaCorporativa', w: 3, kw: ['venta corporativa','corporate sale','vente entreprise','pedidos grandes','bulk order','commande en gros','regalos corporativos','corporate gifts','cadeaux entreprise','venta por volumen','volume sale','vente volume'] },
    { id: 'ventaCorporativa', w: 2, kw: ['corporativo','corporate','entreprise','empresas','companies','b2b','mayoreo'] },

    // ── Marketing / Promociones ──
    { id: 'oferta', w: 3, kw: ['hay ofertas','any offers','y a-t-il des offres','oferta especial','special offer','offre speciale','oferta del dia','deal of the day','offre du jour'] },
    { id: 'oferta', w: 2, kw: ['oferta','offer','offre','promocion','promotion','promo'] },
    { id: 'descuento', w: 3, kw: ['descuento para distribuidor','distributor discount','rabais distributeur','codigo de descuento','discount code','code de reduction','cupon de descuento','discount coupon','coupon reduction'] },
    { id: 'descuento', w: 2, kw: ['descuento','discount','rabais','rebaja','sale','solde','ahorro','saving'] },
    { id: 'promo', w: 3, kw: ['codigo promocional','promo code','code promo','cupon promocional','promotional coupon','coupon promotionnel'] },
    { id: 'precioMayorista', w: 3, kw: ['precio mayorista','wholesale price','prix grossiste','margen de ganancia','profit margin','marge beneficiaire','precio de distribuidor','distributor price','prix distributeur'] },
    { id: 'precioMayorista', w: 2, kw: ['margen','margin','marge'] },

    // ── Contacto y ubicacion ──
    { id: 'contacto', w: 3, kw: ['hablar con asesor','talk to advisor','parler conseiller','contactar sensstyle','contact sensstyle','contacter sensstyle','numero de telefono','phone number','numero telephone','correo electronico','email address','adresse courriel','whatsapp sensstyle','need to talk','besoin de parler','hablar con alguien','talk to someone','parler a quelqu un','persona real','real person','vraie personne'] },
    { id: 'contacto', w: 2, kw: ['contacto','contact','whatsapp','correo','email','courriel','telefono','phone','telephone','celular','cell','cellulaire','llamar','call','appeler','hablar','talk','parler','asesor','advisor','conseiller','humano','human','humain','representante','representative','representant','atencion','servicio al cliente','customer service','service client'] },
    { id: 'ubicacion', w: 3, kw: ['donde estan ubicados','where are you located','ou etes-vous situes','direccion de la empresa','company address','adresse entreprise','oficina principal','main office','bureau principal','sensstyle ubicacion','sensstyle location','localisation sensstyle'] },
    { id: 'ubicacion', w: 2, kw: ['ubicacion','location','localisation','direccion','address','adresse','donde','where','ou','oficina','office','bureau','sede','headquarters','siege','montreal','calgary','quebec','canada','alberta'] },
    { id: 'horario', w: 3, kw: ['horario de atencion','business hours','heures ouverture','a que hora abren','what time open','quelle heure ouvrez','cuando atienden','when are you open','quand etes-vous ouvert'] },
    { id: 'horario', w: 2, kw: ['horario','hora','hour','heure','abierto','open','ouvert','cuando','when','quand','horaire','dias','days','jours','semana','week','semaine'] },
    { id: 'instagram', w: 3, kw: ['redes sociales sensstyle','sensstyle social media','reseaux sociaux sensstyle','instagram sensstyle','facebook sensstyle','seguir sensstyle','follow sensstyle','suivre sensstyle'] },
    { id: 'instagram', w: 2, kw: ['instagram','facebook','red social','social media','reseau','twitter','tiktok','youtube','pinterest','linkedin','follow','seguir','suivre','like','redes'] },
    { id: 'marca', w: 3, kw: ['quienes son sensstyle','who is sensstyle','qui est sensstyle','historia de sensstyle','history of sensstyle','histoire de sensstyle','sobre sensstyle','about sensstyle','a propos de sensstyle','que es sensstyle','what is sensstyle','qu est-ce que sensstyle'] },
    { id: 'marca', w: 2, kw: ['sobre','about','apropos','historia','history','histoire','empresa','company','compagnie','equipo','team','equipe','fundador','founder','fondateur','mision','mission','vision','valores','values','valeurs'] },

    // ── Calidad y diferencia ──
    { id: 'calidad', w: 3, kw: ['calidad del producto','product quality','qualite du produit','por que sensstyle','why sensstyle','pourquoi sensstyle','alta calidad','high quality','haute qualite','son buenos','are they good','sont-ils bons'] },
    { id: 'calidad', w: 2, kw: ['calidad','quality','qualite','premium','excelencia','excellence'] },
    { id: 'diferencia', w: 3, kw: ['que los hace diferentes','what makes you different','qu est-ce qui vous differencie','por que elegir sensstyle','why choose sensstyle','pourquoi choisir sensstyle','diferencia entre marcas','difference between brands','difference entre marques'] },
    { id: 'diferencia', w: 2, kw: ['diferencia','difference','diferent','different','unique','exclusivo','exclusive','exclusif'] },

    // ── Navegacion / Website ──
    { id: 'navegar', w: 2, kw: ['navegar','browse','navegacion','navigation','secciones','sections','sitio','site','web','website'] },
    { id: 'website', w: 3, kw: ['bienvenido a sensstyle','welcome to sensstyle','bienvenue a sensstyle','acabo de llegar','just arrived','je viens d arriver'] },
    { id: 'website', w: 2, kw: ['bienvenido','welcome','bonjour site','pagina principal','homepage','inicio','start'] },
    { id: 'menu', w: 3, kw: ['que hay en el menu','what is on the menu','qu y a-t-il au menu','que puedo ver','what can i see','que puis-je voir','opciones del menu','menu options','options du menu'] },
    { id: 'menu', w: 2, kw: ['menu','opciones','options'] },
    { id: 'buscoAlgo', w: 3, kw: ['estoy buscando','i am looking for','je cherche','busco algo','looking for something','cherche quelque chose','necesito encontrar','need to find','besoin de trouver','me interesa','i am interested','je suis interesse'] },
    { id: 'noEncontrar', w: 3, kw: ['no encuentro','cannot find','ne trouve pas','no veo','don t see','je ne vois pas','no aparece','not showing','n apparait pas','no esta aqui','not here','pas ici'] },
    { id: 'dondeEsta', w: 3, kw: ['donde esta la seccion','where is the section','ou est la section','donde encuentro','where do i find','ou puis-je trouver','donde veo','where can i see','ou puis-je voir'] },
    { id: 'agendarReunion', w: 3, kw: ['agendar reunion','schedule meeting','prendre rendez-vous','agendar llamada','schedule call','planifier appel','hablar en persona','talk in person','parler en personne','cita con asesor','appointment with advisor','rendez-vous conseiller'] },

    // ── Conversacionales ──
    { id: 'holaCasual', w: 3, kw: ['hola que tal','hello how are you','bonjour comment allez','buenos dias','good morning','buenas tardes','good afternoon','hey que onda','what s up','salut'] },
    { id: 'holaCasual', w: 2, kw: ['hola','hello','hi','saludos','greetings','hey','buen dia'] },
    { id: 'estoyBuscando', w: 2, kw: ['estoy buscando','i am looking','je cherche','quisiera','i would like','j aimerais','me interesa','interested in'] },
    { id: 'soloNavegando', w: 3, kw: ['solo navegando','just browsing','juste regarder','solo mirando','just looking','explorando','exploring','explorer','sin prisa','no rush','pas presse'] },
    { id: 'quieroAprender', w: 3, kw: ['quiero aprender','i want to learn','je veux apprendre','ensenar','teach me','apprendre','como elegir','how to choose','comment choisir','guiame','guide me','guidez-moi'] },

    // ── Agradecimiento ──
    { id: 'gracias', w: 3, kw: ['muchas gracias','thank you very much','merci beaucoup','gracias por todo','thanks for everything','merci pour tout','te agradezco','i appreciate','je vous remercie'] },
    { id: 'gracias', w: 2, kw: ['gracias','thanks','thank','merci','perfecto','genial','excelente','ok','okay','bien','listo','entendido','compris','vale','sure','bien sur','of course','por supuesto'] },

    // ── Redireccion a asesor ──
    { id: 'redirectAsesor', w: 3, kw: ['hablar con alguien','talk to someone','parler a quelqu un','persona real','real person','vraie personne','hablar con humano','talk to human','parler a humain','necesito asesor','need advisor','besoin conseiller','quiero asesor','want advisor','je veux conseiller'] },
    { id: 'necesitasHumano', w: 3, kw: ['necesito ayuda humana','need human help','besoin aide humaine','hablar con persona','talk to person','parler a personne','soporte humano','human support','support humain','atencion personal','personal attention','attention personnelle'] },
    { id: 'asesorEspecializado', w: 3, kw: ['asesor especializado','specialist advisor','conseiller specialise','hablar con experto','talk to expert','parler a expert','alguien que sepa','someone who knows','quelqu un qui sait'] },
  ];

  // ── SCORING: sum weights for matching keywords ─────────────────────────────
  const scores = {};
  for (const r of rules) {
    const matched = r.kw.some(k => {
      if (k.includes(' ')) return n.includes(k); // multi-word: substring match
      return n.includes(k) || words.includes(k);   // single word: check both
    });
    if (matched) {
      scores[r.id] = (scores[r.id] || 0) + r.w;
    }
  }

  // Find best match (highest score wins)
  const sorted = Object.entries(scores).sort((a, b) => b[1] - a[1]);
  if (sorted.length > 0) return sorted[0][0];
  return 'fallback';
}// ── Markdown-lite renderer ────────────────────────────────────────────────────
function renderText(text) {
  return text.split('\n').map((line, li) => {
    const parts = line.split(/(\*\*[^*]+\*\*)/g).map((p, i) =>
      p.startsWith('**') && p.endsWith('**')
        ? <strong key={i}>{p.slice(2, -2)}</strong>
        : p
    );
    return <span key={li}>{parts}{li < text.split('\n').length - 1 && <br />}</span>;
  });
}

// ── Chat Widget ───────────────────────────────────────────────────────────────
function ChatWidget({ lang, navigate }) {
  const ui = KB[lang] || KB.es;
  const [open, setOpen] = useChatState(false);
  const [messages, setMessages] = useChatState([]);
  const [input, setInput] = useChatState('');
  const [typing, setTyping] = useChatState(false);
  const [initialized, setInitialized] = useChatState(false);
  const [isMobile, setIsMobile] = useChatState(() => window.innerWidth <= 640);
  const bodyRef = useChatRef(null);
  const inputRef = useChatRef(null);

  useChatEffect(() => {
    const onResize = () => setIsMobile(window.innerWidth <= 640);
    window.addEventListener('resize', onResize);
    return () => window.removeEventListener('resize', onResize);
  }, []);

  useChatEffect(() => {
    if (bodyRef.current) bodyRef.current.scrollTop = bodyRef.current.scrollHeight;
  }, [messages, typing]);

  useChatEffect(() => {
    if (open && !initialized) {
      setInitialized(true);
      setTyping(true);
      setTimeout(() => {
        setTyping(false);
        setMessages([{ from: 'bot', text: ui.welcome, chips: ui.welcomeChips, id: Date.now() }]);
      }, 700);
    }
  }, [open]);

  useChatEffect(() => {
    if (open && inputRef.current) setTimeout(() => inputRef.current?.focus(), 300);
  }, [open]);

  function botReply(intentId) {
    const data = ui.intents[intentId] || ui.intents.fallback;
    setTyping(true);
    setTimeout(() => {
      setTyping(false);
      setMessages(prev => [...prev, { from: 'bot', text: data.reply, chips: data.chips || [], id: Date.now() }]);
    }, 800 + Math.random() * 500);
  }

  function sendMessage(text) {
    if (!text.trim()) return;
    setMessages(prev => [...prev, { from: 'user', text: text.trim(), id: Date.now() }]);
    setInput('');

    // WhatsApp redirect chips
    if (ui.waChips.includes(text.trim())) {
      const waMsg = lang === 'fr' ? 'Bonjour SensStyle !' : lang === 'en' ? 'Hi SensStyle!' : '¡Hola SensStyle!';
      setTyping(true);
      setTimeout(() => {
        setTyping(false);
        setMessages(prev => [...prev, { from: 'bot', text: lang === 'fr' ? 'Parfait ! Je vous redirige vers WhatsApp.' : lang === 'en' ? 'Perfect! Redirecting you to WhatsApp.' : 'Perfecto. Te llevo a WhatsApp ahora.', chips: [], id: Date.now() }]);
        setTimeout(() => {
          const url = `https://wa.me/${WA_NUMBER}?text=${encodeURIComponent(waMsg)}`;
          const a = document.createElement('a');
          a.href = url;
          a.target = '_blank';
          a.rel = 'noopener';
          document.body.appendChild(a);
          a.click();
          document.body.removeChild(a);
        }, 500);
      }, 600);
      return;
    }

    // Navigation chips
    const navPage = ui.navChips[text.trim()];
    if (navPage && navigate) navigate({ page: navPage });

    // Chip intent map
    const chipIntent = ui.chips[text.trim()];
    botReply(chipIntent || matchIntent(text, lang));
  }

  function onKey(e) {
    if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); sendMessage(input); }
  }

  return (
    <div style={{ position: 'fixed', right: isMobile ? 16 : 24, bottom: isMobile ? 16 : 24, zIndex: 9000, display: 'flex', flexDirection: 'column', alignItems: 'flex-end', gap: 10 }}>

      {/* ── CHAT WINDOW ── */}
      {open && (
        <div className="chat-window" style={{ animation: 'chatIn 240ms var(--ease)' }}>

          {/* Header */}
          <div style={{ background: 'var(--ink)', padding: '14px 16px', display: 'flex', alignItems: 'center', gap: 10, flexShrink: 0 }}>
            <LassoAvatar size={44} />
            <div style={{ flex: 1 }}>
              <div style={{ fontFamily: 'var(--font-mono)', fontSize: 12, letterSpacing: '0.18em', textTransform: 'uppercase', color: 'var(--cream)', fontWeight: 500 }}>
                {ui.botName} · SensStyle
              </div>
              <div style={{ display: 'flex', alignItems: 'center', gap: 6, marginTop: 2 }}>
                <span style={{ width: 6, height: 6, borderRadius: '50%', background: '#4ade80' }} />
                <span style={{ fontFamily: 'var(--font-mono)', fontSize: 9, letterSpacing: '0.12em', color: 'rgba(245,237,224,0.45)', textTransform: 'uppercase' }}>{ui.headerSub}</span>
              </div>
            </div>
            <button onClick={() => setOpen(false)} style={{ background: 'none', border: 'none', color: 'rgba(245,237,224,0.4)', cursor: 'pointer', fontSize: 18, lineHeight: 1, padding: 4 }}>✕</button>
          </div>

          {/* Messages */}
          <div ref={bodyRef} style={{ flex: 1, overflowY: 'auto', padding: '14px 12px', display: 'flex', flexDirection: 'column', gap: 12, background: 'var(--parchment)' }}>
            {messages.map((msg) => (
              <div key={msg.id} style={{ display: 'flex', flexDirection: 'column', alignItems: msg.from === 'user' ? 'flex-end' : 'flex-start', gap: 8 }}>
                {msg.from === 'bot' && (
                  <div style={{ display: 'flex', alignItems: 'flex-end', gap: 7 }}>
                    <LassoAvatar size={26} />
                    <div style={{ maxWidth: '80%', padding: '10px 13px', background: '#fff', borderRadius: '12px 12px 12px 3px', fontSize: 13, lineHeight: 1.55, color: 'var(--ink)', boxShadow: '0 1px 3px rgba(27,18,10,0.09)' }}>
                      {renderText(msg.text)}
                    </div>
                  </div>
                )}
                {msg.from === 'user' && (
                  <div style={{ maxWidth: '80%', padding: '10px 13px', background: 'var(--ink)', borderRadius: '12px 12px 3px 12px', fontSize: 13, lineHeight: 1.55, color: 'var(--cream)' }}>
                    {msg.text}
                  </div>
                )}
                {msg.chips && msg.chips.length > 0 && (
                  <div style={{ display: 'flex', flexWrap: 'wrap', gap: 5, paddingLeft: msg.from === 'bot' ? 33 : 0, justifyContent: msg.from === 'user' ? 'flex-end' : 'flex-start' }}>
                    {msg.chips.map(chip => (
                      <button key={chip} onClick={() => sendMessage(chip)} style={{ fontFamily: 'var(--font-mono)', fontSize: 9, letterSpacing: '0.1em', textTransform: 'uppercase', padding: '5px 11px', background: 'none', border: '1px solid rgba(27,18,10,0.18)', cursor: 'pointer', color: 'var(--ink)', borderRadius: 20, transition: 'all 150ms', whiteSpace: 'nowrap' }}
                        onMouseEnter={e => { e.currentTarget.style.background = 'var(--ink)'; e.currentTarget.style.color = 'var(--cream)'; e.currentTarget.style.borderColor = 'var(--ink)'; }}
                        onMouseLeave={e => { e.currentTarget.style.background = 'none'; e.currentTarget.style.color = 'var(--ink)'; e.currentTarget.style.borderColor = 'rgba(27,18,10,0.18)'; }}>
                        {chip}
                      </button>
                    ))}
                  </div>
                )}
              </div>
            ))}

            {typing && (
              <div style={{ display: 'flex', alignItems: 'flex-end', gap: 7 }}>
                <LassoAvatar size={26} />
                <div style={{ padding: '10px 14px', background: '#fff', borderRadius: '12px 12px 12px 3px', boxShadow: '0 1px 3px rgba(27,18,10,0.09)', display: 'flex', gap: 4, alignItems: 'center' }}>
                  {[0, 1, 2].map(i => <span key={i} style={{ width: 6, height: 6, borderRadius: '50%', background: 'var(--muted)', animation: `typingDot 1.2s ${i * 0.2}s ease-in-out infinite` }} />)}
                </div>
              </div>
            )}
          </div>

          {/* WhatsApp strip */}
          <div style={{ padding: '8px 12px', background: '#f9f9f9', borderTop: '1px solid rgba(27,18,10,0.07)', display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 8, flexShrink: 0 }}>
            <span style={{ fontFamily: 'var(--font-mono)', fontSize: 8.5, letterSpacing: '0.12em', textTransform: 'uppercase', color: 'var(--muted)', flex: 1 }}>{ui.waOptions}</span>
            <button onClick={() => sendMessage(lang === 'fr' ? 'Parler à un conseiller' : lang === 'en' ? 'Talk to an advisor' : 'Hablar con un asesor')}
              style={{ display: 'flex', alignItems: 'center', gap: 6, background: '#25D366', color: '#fff', border: 'none', padding: '5px 12px', cursor: 'pointer', fontFamily: 'var(--font-mono)', fontSize: 9, letterSpacing: '0.12em', textTransform: 'uppercase', borderRadius: 4, flexShrink: 0 }}>
              <WaIcon size={12} color="#fff" />
              {ui.waBtn}
            </button>
          </div>

          {/* Input */}
          <div style={{ padding: '10px 12px', background: '#fff', borderTop: '1px solid rgba(27,18,10,0.08)', display: 'flex', gap: 7, flexShrink: 0 }}>
            <input ref={inputRef} value={input} onChange={e => setInput(e.target.value)} onKeyDown={onKey} placeholder={ui.inputPlaceholder}
              style={{ flex: 1, border: '1px solid rgba(27,18,10,0.12)', padding: '8px 12px', fontFamily: 'var(--font-body)', fontSize: 13, color: 'var(--ink)', background: 'var(--parchment)', outline: 'none', borderRadius: 8 }} />
            <button onClick={() => sendMessage(input)} disabled={!input.trim()}
              style={{ background: input.trim() ? 'var(--ink)' : 'rgba(27,18,10,0.1)', color: input.trim() ? 'var(--cream)' : 'var(--muted)', border: 'none', width: 38, height: 38, cursor: input.trim() ? 'pointer' : 'default', display: 'flex', alignItems: 'center', justifyContent: 'center', borderRadius: 8, transition: 'background 150ms', flexShrink: 0 }}>
              <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
                <line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/>
              </svg>
            </button>
          </div>
        </div>
      )}

      {/* ── TRIGGER ── */}
      <button onClick={() => setOpen(v => !v)}
        style={{ width: 64, height: 64, background: open ? 'var(--ink)' : 'var(--gold-600)', color: open ? 'var(--gold-300)' : 'var(--cream)', border: 'none', borderRadius: '50%', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', boxShadow: open ? '0 8px 32px rgba(0,0,0,0.4)' : '0 8px 28px rgba(169,123,44,0.5)', transition: 'all 260ms var(--ease)', position: 'relative' }}>
        {open
          ? <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
          : <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.9" strokeLinecap="round" strokeLinejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
        }
        {!open && messages.length > 0 && (
          <span style={{ position: 'absolute', top: 2, right: 2, width: 12, height: 12, borderRadius: '50%', background: '#4ade80', border: '2px solid white' }} />
        )}
      </button>
    </div>
  );
}

Object.assign(window, { ChatWidget });
