Improve teh securty of teh DB
This commit is contained in:
@@ -67,7 +67,7 @@ const LandingPage: React.FC = () => {
|
||||
</span>
|
||||
<span className="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-green-500/10 text-green-600 dark:text-green-400">
|
||||
<Shield className="w-4 h-4 mr-2" />
|
||||
Reducción de Desperdicio Alimentario
|
||||
{t('landing:hero.badge_sustainability', 'Reducción de Desperdicio Alimentario')}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -94,7 +94,7 @@ const LandingPage: React.FC = () => {
|
||||
<Star className="w-5 h-5 text-amber-400 fill-amber-400" />
|
||||
</div>
|
||||
<span className="text-xl font-extrabold bg-gradient-to-r from-amber-600 to-orange-600 dark:from-amber-400 dark:to-orange-400 bg-clip-text text-transparent">
|
||||
¡Lanzamiento Piloto!
|
||||
{t('landing:hero.pilot_banner.title', '¡Lanzamiento Piloto!')}
|
||||
</span>
|
||||
<div className="flex items-center gap-1">
|
||||
<Star className="w-5 h-5 text-amber-400 fill-amber-400" />
|
||||
@@ -105,10 +105,10 @@ const LandingPage: React.FC = () => {
|
||||
<div className="text-center">
|
||||
<p className="text-base text-[var(--text-secondary)] font-medium">
|
||||
<span className="inline-block px-3 py-1 bg-gradient-to-r from-[var(--color-primary)] to-orange-600 text-white font-bold text-lg rounded-lg shadow-md mr-1">
|
||||
3 MESES GRATIS
|
||||
{t('landing:hero.pilot_banner.offer', '3 MESES GRATIS')}
|
||||
</span>
|
||||
<span className="block mt-2 text-sm">
|
||||
para los primeros en unirse al piloto
|
||||
{t('landing:hero.pilot_banner.description', 'para los primeros en unirse al piloto')}
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
@@ -186,15 +186,12 @@ const LandingPage: React.FC = () => {
|
||||
<div className="text-center mb-8">
|
||||
<div className="inline-flex items-center gap-2 bg-blue-600 text-white px-4 py-2 rounded-full text-sm font-bold mb-4">
|
||||
<Clock className="w-4 h-4" />
|
||||
<span>Programa Piloto - Plazas Limitadas</span>
|
||||
<span>{t('landing:pilot.badge', 'Programa Piloto - Plazas Limitadas')}</span>
|
||||
</div>
|
||||
<h2 className="text-2xl font-bold text-[var(--text-primary)] mb-3">
|
||||
Buscamos 20 Panaderías Pioneras
|
||||
{t('landing:pilot.title', 'Buscamos 20 Panaderías Pioneras')}
|
||||
</h2>
|
||||
<p className="text-[var(--text-secondary)] max-w-2xl mx-auto">
|
||||
Estamos seleccionando las primeras 20 panaderías para formar parte de nuestro programa piloto exclusivo.
|
||||
A cambio de tu feedback, obtienes <strong>3 meses gratis + precio preferencial de por vida</strong>.
|
||||
</p>
|
||||
<p className="text-[var(--text-secondary)] max-w-2xl mx-auto" dangerouslySetInnerHTML={{ __html: t('landing:pilot.subtitle', 'Estamos seleccionando las primeras 20 panaderías para formar parte de nuestro programa piloto exclusivo. A cambio de tu feedback, obtienes <strong>3 meses gratis + precio preferencial de por vida</strong>.') }} />
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8">
|
||||
@@ -202,24 +199,24 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-12 h-12 bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center mx-auto mb-3">
|
||||
<Award className="w-6 h-6 text-green-600 dark:text-green-400" />
|
||||
</div>
|
||||
<div className="text-lg font-bold text-[var(--text-primary)]">Founders Beta</div>
|
||||
<div className="text-sm text-[var(--text-secondary)] mt-2">Acceso de por vida con 20% descuento</div>
|
||||
<div className="text-lg font-bold text-[var(--text-primary)]">{t('landing:pilot.benefits.founders_beta.title', 'Founders Beta')}</div>
|
||||
<div className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:pilot.benefits.founders_beta.description', 'Acceso de por vida con 20% descuento')}</div>
|
||||
</div>
|
||||
|
||||
<div className="text-center p-6 bg-white dark:bg-gray-800 rounded-xl shadow-sm">
|
||||
<div className="w-12 h-12 bg-purple-100 dark:bg-purple-900/30 rounded-full flex items-center justify-center mx-auto mb-3">
|
||||
<Users className="w-6 h-6 text-purple-600 dark:text-purple-400" />
|
||||
</div>
|
||||
<div className="text-lg font-bold text-[var(--text-primary)]">Influye el Producto</div>
|
||||
<div className="text-sm text-[var(--text-secondary)] mt-2">Tus necesidades moldean la plataforma</div>
|
||||
<div className="text-lg font-bold text-[var(--text-primary)]">{t('landing:pilot.benefits.influence_product.title', 'Influye el Producto')}</div>
|
||||
<div className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:pilot.benefits.influence_product.description', 'Tus necesidades moldean la plataforma')}</div>
|
||||
</div>
|
||||
|
||||
<div className="text-center p-6 bg-white dark:bg-gray-800 rounded-xl shadow-sm">
|
||||
<div className="w-12 h-12 bg-amber-100 dark:bg-amber-900/30 rounded-full flex items-center justify-center mx-auto mb-3">
|
||||
<Zap className="w-6 h-6 text-amber-600 dark:text-amber-400" />
|
||||
</div>
|
||||
<div className="text-lg font-bold text-[var(--text-primary)]">Soporte Premium</div>
|
||||
<div className="text-sm text-[var(--text-secondary)] mt-2">Atención directa del equipo fundador</div>
|
||||
<div className="text-lg font-bold text-[var(--text-primary)]">{t('landing:pilot.benefits.premium_support.title', 'Soporte Premium')}</div>
|
||||
<div className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:pilot.benefits.premium_support.description', 'Atención directa del equipo fundador')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -231,11 +228,10 @@ const LandingPage: React.FC = () => {
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center mb-12">
|
||||
<h2 className="text-3xl lg:text-4xl font-extrabold text-[var(--text-primary)] mb-4">
|
||||
Tu Modelo de Negocio, Nuestra Tecnología
|
||||
{t('landing:business_models.title', 'Tu Modelo de Negocio, Nuestra Tecnología')}
|
||||
</h2>
|
||||
<p className="text-xl text-[var(--text-secondary)] max-w-3xl mx-auto">
|
||||
Ya sea que produzcas y vendas en un solo lugar, o gestiones un obrador central con múltiples puntos de venta,
|
||||
nuestra IA se adapta a tu forma de trabajar
|
||||
{t('landing:business_models.subtitle', 'Ya sea que produzcas y vendas en un solo lugar, o gestiones un obrador central con múltiples puntos de venta, nuestra IA se adapta a tu forma de trabajar')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -247,32 +243,25 @@ const LandingPage: React.FC = () => {
|
||||
<Store className="w-8 h-8 text-white" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-2xl font-bold text-[var(--text-primary)]">Producción Local</h3>
|
||||
<p className="text-sm text-[var(--text-secondary)]">Un punto de venta y producción</p>
|
||||
<h3 className="text-2xl font-bold text-[var(--text-primary)]">{t('landing:business_models.local_production.title', 'Producción Local')}</h3>
|
||||
<p className="text-sm text-[var(--text-secondary)]">{t('landing:business_models.local_production.subtitle', 'Un punto de venta y producción')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-[var(--text-secondary)] mb-6 leading-relaxed">
|
||||
Tu panadería produce y vende en el mismo lugar. Necesitas optimizar producción diaria,
|
||||
minimizar desperdicios y maximizar frescura en cada horneada.
|
||||
{t('landing:business_models.local_production.description', 'Tu panadería produce y vende en el mismo lugar. Necesitas optimizar producción diaria, minimizar desperdicios y maximizar frescura en cada horneada.')}
|
||||
</p>
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5" />
|
||||
<span className="text-sm text-[var(--text-secondary)]">
|
||||
<strong>Predicción de demanda</strong> por ubicación única
|
||||
</span>
|
||||
<span className="text-sm text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:business_models.local_production.features.prediction', '<strong>Predicción de demanda</strong> por ubicación única') }} />
|
||||
</div>
|
||||
<div className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5" />
|
||||
<span className="text-sm text-[var(--text-secondary)]">
|
||||
<strong>Gestión de inventario</strong> simplificada y directa
|
||||
</span>
|
||||
<span className="text-sm text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:business_models.local_production.features.inventory', '<strong>Gestión de inventario</strong> simplificada y directa') }} />
|
||||
</div>
|
||||
<div className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5" />
|
||||
<span className="text-sm text-[var(--text-secondary)]">
|
||||
<strong>Un solo punto de control</strong> - simple y eficiente
|
||||
</span>
|
||||
<span className="text-sm text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:business_models.local_production.features.control', '<strong>Un solo punto de control</strong> - simple y eficiente') }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -284,32 +273,25 @@ const LandingPage: React.FC = () => {
|
||||
<Network className="w-8 h-8 text-white" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-2xl font-bold text-[var(--text-primary)]">Obrador Central + Puntos de Venta</h3>
|
||||
<p className="text-sm text-[var(--text-secondary)]">Producción centralizada, distribución múltiple</p>
|
||||
<h3 className="text-2xl font-bold text-[var(--text-primary)]">{t('landing:business_models.central_workshop.title', 'Obrador Central + Puntos de Venta')}</h3>
|
||||
<p className="text-sm text-[var(--text-secondary)]">{t('landing:business_models.central_workshop.subtitle', 'Producción centralizada, distribución múltiple')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-[var(--text-secondary)] mb-6 leading-relaxed">
|
||||
Produces centralmente y distribuyes a múltiples puntos de venta. Necesitas coordinar producción,
|
||||
logística y demanda entre ubicaciones para optimizar cada punto.
|
||||
{t('landing:business_models.central_workshop.description', 'Produces centralmente y distribuyes a múltiples puntos de venta. Necesitas coordinar producción, logística y demanda entre ubicaciones para optimizar cada punto.')}
|
||||
</p>
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5" />
|
||||
<span className="text-sm text-[var(--text-secondary)]">
|
||||
<strong>Predicción agregada y por punto de venta</strong> individual
|
||||
</span>
|
||||
<span className="text-sm text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:business_models.central_workshop.features.prediction', '<strong>Predicción agregada y por punto de venta</strong> individual') }} />
|
||||
</div>
|
||||
<div className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5" />
|
||||
<span className="text-sm text-[var(--text-secondary)]">
|
||||
<strong>Gestión de distribución</strong> multi-ubicación coordinada
|
||||
</span>
|
||||
<span className="text-sm text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:business_models.central_workshop.features.distribution', '<strong>Gestión de distribución</strong> multi-ubicación coordinada') }} />
|
||||
</div>
|
||||
<div className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5" />
|
||||
<span className="text-sm text-[var(--text-secondary)]">
|
||||
<strong>Visibilidad centralizada</strong> con control granular
|
||||
</span>
|
||||
<span className="text-sm text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:business_models.central_workshop.features.visibility', '<strong>Visibilidad centralizada</strong> con control granular') }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -318,7 +300,7 @@ const LandingPage: React.FC = () => {
|
||||
<div className="mt-12 text-center">
|
||||
<div className="inline-flex items-center gap-2 bg-[var(--color-primary)]/10 text-[var(--color-primary)] px-6 py-3 rounded-full">
|
||||
<Brain className="w-5 h-5" />
|
||||
<span className="font-medium">La misma IA potente, adaptada a tu forma de trabajar</span>
|
||||
<span className="font-medium">{t('landing:business_models.same_ai', 'La misma IA potente, adaptada a tu forma de trabajar')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -331,15 +313,15 @@ const LandingPage: React.FC = () => {
|
||||
<div className="mb-4">
|
||||
<span className="inline-flex items-center px-4 py-2 rounded-full text-sm font-medium bg-gradient-to-r from-blue-500/10 to-purple-500/10 text-blue-600 dark:text-blue-400 border border-blue-500/20">
|
||||
<Brain className="w-4 h-4 mr-2" />
|
||||
Tecnología de IA de Última Generación
|
||||
{t('landing:features.badge', 'Tecnología de IA de Última Generación')}
|
||||
</span>
|
||||
</div>
|
||||
<h2 className="text-3xl lg:text-5xl font-extrabold text-[var(--text-primary)]">
|
||||
Combate el Desperdicio Alimentario
|
||||
<span className="block text-[var(--color-primary)]">con Inteligencia Artificial</span>
|
||||
{t('landing:features.title_main', 'Combate el Desperdicio Alimentario')}
|
||||
<span className="block text-[var(--color-primary)]">{t('landing:features.title_accent', 'con Inteligencia Artificial')}</span>
|
||||
</h2>
|
||||
<p className="mt-6 max-w-3xl mx-auto text-lg text-[var(--text-secondary)]">
|
||||
Sistema de alta tecnología que utiliza algoritmos de IA avanzados para optimizar tu producción, reducir residuos alimentarios y mantener tus datos 100% seguros y bajo tu control.
|
||||
{t('landing:features.subtitle', 'Sistema de alta tecnología que utiliza algoritmos de IA avanzados para optimizar tu producción, reducir residuos alimentarios y mantener tus datos 100% seguros y bajo tu control.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -352,28 +334,28 @@ const LandingPage: React.FC = () => {
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">IA Avanzada de Predicción</h3>
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">{t('landing:features.ai_prediction.title', 'IA Avanzada de Predicción')}</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Algoritmos de Inteligencia Artificial de última generación analizan patrones históricos, clima, eventos y tendencias para predecir demanda con precisión quirúrgica.
|
||||
{t('landing:features.ai_prediction.description', 'Algoritmos de Inteligencia Artificial de última generación analizan patrones históricos, clima, eventos y tendencias para predecir demanda con precisión quirúrgica.')}
|
||||
</p>
|
||||
<div className="mt-6 space-y-3">
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-blue-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Zap className="w-3 h-3 text-blue-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Precisión del 92% en predicciones</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.ai_prediction.features.accuracy', 'Precisión del 92% en predicciones')}</span>
|
||||
</div>
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-blue-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<TrendingUp className="w-3 h-3 text-blue-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Aprendizaje continuo y adaptativo</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.ai_prediction.features.learning', 'Aprendizaje continuo y adaptativo')}</span>
|
||||
</div>
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-blue-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<BarChart3 className="w-3 h-3 text-blue-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Análisis predictivo en tiempo real</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.ai_prediction.features.realtime', 'Análisis predictivo en tiempo real')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -387,28 +369,28 @@ const LandingPage: React.FC = () => {
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">Reducción de Desperdicio</h3>
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">{t('landing:features.waste_reduction.title', 'Reducción de Desperdicio')}</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Contribuye al medioambiente y reduce costos eliminando hasta un 35% del desperdicio alimentario mediante producción optimizada e inteligente.
|
||||
{t('landing:features.waste_reduction.description', 'Contribuye al medioambiente y reduce costos eliminando hasta un 35% del desperdicio alimentario mediante producción optimizada e inteligente.')}
|
||||
</p>
|
||||
<div className="mt-6 space-y-3">
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-green-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Check className="w-3 h-3 text-green-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Hasta 35% menos desperdicio</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.waste_reduction.features.reduction', 'Hasta 35% menos desperdicio')}</span>
|
||||
</div>
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-green-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Euro className="w-3 h-3 text-green-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Ahorro promedio de €800/mes</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.waste_reduction.features.savings', 'Ahorro promedio de €800/mes')}</span>
|
||||
</div>
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-green-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Award className="w-3 h-3 text-green-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Elegible para ayudas UE</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.waste_reduction.features.eligible', 'Elegible para ayudas UE')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -422,28 +404,28 @@ const LandingPage: React.FC = () => {
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">Tus Datos, Tu Propiedad</h3>
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">{t('landing:features.data_ownership.title', 'Tus Datos, Tu Propiedad')}</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Privacidad y seguridad total. Tus datos operativos, proveedores y analíticas permanecen 100% bajo tu control. Nunca compartidos, nunca vendidos.
|
||||
{t('landing:features.data_ownership.description', 'Privacidad y seguridad total. Tus datos operativos, proveedores y analíticas permanecen 100% bajo tu control. Nunca compartidos, nunca vendidos.')}
|
||||
</p>
|
||||
<div className="mt-6 space-y-3">
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-amber-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Shield className="w-3 h-3 text-amber-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">100% propiedad de datos</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.data_ownership.features.ownership', '100% propiedad de datos')}</span>
|
||||
</div>
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-amber-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Settings className="w-3 h-3 text-amber-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Control total de privacidad</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.data_ownership.features.privacy', 'Control total de privacidad')}</span>
|
||||
</div>
|
||||
<div className="flex items-center text-sm">
|
||||
<div className="flex-shrink-0 w-6 h-6 bg-amber-500/10 rounded-full flex items-center justify-center mr-3">
|
||||
<Award className="w-3 h-3 text-amber-600" />
|
||||
</div>
|
||||
<span className="text-[var(--text-secondary)]">Cumplimiento GDPR garantizado</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:features.data_ownership.features.gdpr', 'Cumplimiento GDPR garantizado')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -457,22 +439,22 @@ const LandingPage: React.FC = () => {
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">Inventario Inteligente</h3>
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">{t('landing:features.smart_inventory.title', 'Inventario Inteligente')}</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Control automático de stock con alertas predictivas, órdenes de compra automatizadas y optimización de costos.
|
||||
{t('landing:features.smart_inventory.description', 'Control automático de stock con alertas predictivas, órdenes de compra automatizadas y optimización de costos.')}
|
||||
</p>
|
||||
<div className="mt-6">
|
||||
<div className="flex items-center text-sm text-[var(--color-secondary)]">
|
||||
<Check className="w-4 h-4 mr-2" />
|
||||
Alertas automáticas de stock bajo
|
||||
{t('landing:features.smart_inventory.features.alerts', 'Alertas automáticas de stock bajo')}
|
||||
</div>
|
||||
<div className="flex items-center text-sm text-[var(--color-secondary)] mt-2">
|
||||
<Check className="w-4 h-4 mr-2" />
|
||||
Órdenes de compra automatizadas
|
||||
{t('landing:features.smart_inventory.features.orders', 'Órdenes de compra automatizadas')}
|
||||
</div>
|
||||
<div className="flex items-center text-sm text-[var(--color-secondary)] mt-2">
|
||||
<Check className="w-4 h-4 mr-2" />
|
||||
Optimización de costos de materias primas
|
||||
{t('landing:features.smart_inventory.features.optimization', 'Optimización de costos de materias primas')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -486,22 +468,22 @@ const LandingPage: React.FC = () => {
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-6">
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">Planificación de Producción</h3>
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)]">{t('landing:features.production_planning.title', 'Planificación de Producción')}</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Programa automáticamente la producción diaria basada en predicciones, optimiza horarios y recursos disponibles.
|
||||
{t('landing:features.production_planning.description', 'Programa automáticamente la producción diaria basada en predicciones, optimiza horarios y recursos disponibles.')}
|
||||
</p>
|
||||
<div className="mt-6">
|
||||
<div className="flex items-center text-sm text-[var(--color-accent)]">
|
||||
<Check className="w-4 h-4 mr-2" />
|
||||
Programación automática de horneado
|
||||
{t('landing:features.production_planning.features.scheduling', 'Programación automática de horneado')}
|
||||
</div>
|
||||
<div className="flex items-center text-sm text-[var(--color-accent)] mt-2">
|
||||
<Check className="w-4 h-4 mr-2" />
|
||||
Optimización de uso de hornos
|
||||
{t('landing:features.production_planning.features.oven', 'Optimización de uso de hornos')}
|
||||
</div>
|
||||
<div className="flex items-center text-sm text-[var(--color-accent)] mt-2">
|
||||
<Check className="w-4 h-4 mr-2" />
|
||||
Gestión de personal y turnos
|
||||
{t('landing:features.production_planning.features.staff', 'Gestión de personal y turnos')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -514,32 +496,32 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-12 h-12 bg-[var(--color-primary)]/10 rounded-lg flex items-center justify-center mx-auto mb-4">
|
||||
<BarChart3 className="w-6 h-6 text-[var(--color-primary)]" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">Analytics Avanzado</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">Dashboards en tiempo real con métricas clave</p>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">{t('landing:features.advanced_analytics.title', 'Analytics Avanzado')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:features.advanced_analytics.description', 'Dashboards en tiempo real con métricas clave')}</p>
|
||||
</div>
|
||||
|
||||
<div className="text-center p-6 bg-[var(--bg-primary)] rounded-xl border border-[var(--border-primary)]">
|
||||
<div className="w-12 h-12 bg-[var(--color-secondary)]/10 rounded-lg flex items-center justify-center mx-auto mb-4">
|
||||
<Euro className="w-6 h-6 text-[var(--color-secondary)]" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">POS Integrado</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">Sistema de ventas completo y fácil de usar</p>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">{t('landing:features.pos_integration.title', 'POS Integrado')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:features.pos_integration.description', 'Sistema de ventas completo y fácil de usar')}</p>
|
||||
</div>
|
||||
|
||||
<div className="text-center p-6 bg-[var(--bg-primary)] rounded-xl border border-[var(--border-primary)]">
|
||||
<div className="w-12 h-12 bg-[var(--color-accent)]/10 rounded-lg flex items-center justify-center mx-auto mb-4">
|
||||
<Shield className="w-6 h-6 text-[var(--color-accent)]" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">Control de Calidad</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">Trazabilidad completa y gestión HACCP</p>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">{t('landing:features.quality_control.title', 'Control de Calidad')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:features.quality_control.description', 'Trazabilidad completa y gestión HACCP')}</p>
|
||||
</div>
|
||||
|
||||
<div className="text-center p-6 bg-[var(--bg-primary)] rounded-xl border border-[var(--border-primary)]">
|
||||
<div className="w-12 h-12 bg-[var(--color-info)]/10 rounded-lg flex items-center justify-center mx-auto mb-4">
|
||||
<Settings className="w-6 h-6 text-[var(--color-info)]" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">Automatización</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">Procesos automáticos que ahorran tiempo</p>
|
||||
<h4 className="font-semibold text-[var(--text-primary)]">{t('landing:features.automation.title', 'Automatización')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)] mt-2">{t('landing:features.automation.description', 'Procesos automáticos que ahorran tiempo')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -550,12 +532,11 @@ const LandingPage: React.FC = () => {
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center mb-16">
|
||||
<h2 className="text-3xl lg:text-4xl font-extrabold text-[var(--text-primary)]">
|
||||
El Problema Que Resolvemos
|
||||
<span className="block text-[var(--color-primary)]">Para Panaderías</span>
|
||||
{t('landing:benefits.title', 'El Problema Que Resolvemos')}
|
||||
<span className="block text-[var(--color-primary)]">{t('landing:benefits.title_accent', 'Para Panaderías')}</span>
|
||||
</h2>
|
||||
<p className="mt-6 text-lg text-[var(--text-secondary)] max-w-3xl mx-auto">
|
||||
Sabemos lo frustrante que es tirar pan al final del día, o quedarte sin producto cuando llegan clientes.
|
||||
La producción artesanal es difícil de optimizar... hasta ahora.
|
||||
{t('landing:benefits.subtitle', 'Sabemos lo frustrante que es tirar pan al final del día, o quedarte sin producto cuando llegan clientes. La producción artesanal es difícil de optimizar... hasta ahora.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -568,9 +549,9 @@ const LandingPage: React.FC = () => {
|
||||
<span className="text-white font-bold text-xl">✗</span>
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="text-lg font-bold text-red-700 dark:text-red-400 mb-2">Desperdicias entre 15-40% de producción</h4>
|
||||
<h4 className="text-lg font-bold text-red-700 dark:text-red-400 mb-2">{t('landing:benefits.problems.waste.title', 'Desperdicias entre 15-40% de producción')}</h4>
|
||||
<p className="text-[var(--text-secondary)] text-sm">
|
||||
Al final del día tiras producto que nadie compró. Son cientos de euros a la basura cada semana.
|
||||
{t('landing:benefits.problems.waste.description', 'Al final del día tiras producto que nadie compró. Son cientos de euros a la basura cada semana.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -582,9 +563,9 @@ const LandingPage: React.FC = () => {
|
||||
<span className="text-white font-bold text-xl">✗</span>
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="text-lg font-bold text-red-700 dark:text-red-400 mb-2">Pierdes ventas por falta de stock</h4>
|
||||
<h4 className="text-lg font-bold text-red-700 dark:text-red-400 mb-2">{t('landing:benefits.problems.stockouts.title', 'Pierdes ventas por falta de stock')}</h4>
|
||||
<p className="text-[var(--text-secondary)] text-sm">
|
||||
Clientes que vienen por su pan favorito y se van sin comprar porque ya se te acabó a las 14:00.
|
||||
{t('landing:benefits.problems.stockouts.description', 'Clientes que vienen por su pan favorito y se van sin comprar porque ya se te acabó a las 14:00.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -596,9 +577,9 @@ const LandingPage: React.FC = () => {
|
||||
<span className="text-white font-bold text-xl">✗</span>
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="text-lg font-bold text-red-700 dark:text-red-400 mb-2">Excel, papel y "experiencia"</h4>
|
||||
<h4 className="text-lg font-bold text-red-700 dark:text-red-400 mb-2">{t('landing:benefits.problems.manual.title', 'Excel, papel y "experiencia"')}</h4>
|
||||
<p className="text-[var(--text-secondary)] text-sm">
|
||||
Planificas basándote en intuición. Funciona... hasta que no funciona.
|
||||
{t('landing:benefits.problems.manual.description', 'Planificas basándote en intuición. Funciona... hasta que no funciona.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -613,9 +594,9 @@ const LandingPage: React.FC = () => {
|
||||
<Check className="text-white w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="text-lg font-bold text-green-700 dark:text-green-400 mb-2">Produce exactamente lo que vas a vender</h4>
|
||||
<h4 className="text-lg font-bold text-green-700 dark:text-green-400 mb-2">{t('landing:benefits.solutions.exact_production.title', 'Produce exactamente lo que vas a vender')}</h4>
|
||||
<p className="text-[var(--text-secondary)] text-sm">
|
||||
La IA analiza tus ventas históricas, clima, eventos locales y festivos para predecir demanda real.
|
||||
{t('landing:benefits.solutions.exact_production.description', 'La IA analiza tus ventas históricas, clima, eventos locales y festivos para predecir demanda real.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -627,9 +608,9 @@ const LandingPage: React.FC = () => {
|
||||
<Check className="text-white w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="text-lg font-bold text-green-700 dark:text-green-400 mb-2">Siempre tienes stock de lo que más se vende</h4>
|
||||
<h4 className="text-lg font-bold text-green-700 dark:text-green-400 mb-2">{t('landing:benefits.solutions.stock_availability.title', 'Siempre tienes stock de lo que más se vende')}</h4>
|
||||
<p className="text-[var(--text-secondary)] text-sm">
|
||||
El sistema te avisa qué productos van a tener más demanda cada día, para que nunca te quedes sin.
|
||||
{t('landing:benefits.solutions.stock_availability.description', 'El sistema te avisa qué productos van a tener más demanda cada día, para que nunca te quedes sin.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -641,9 +622,9 @@ const LandingPage: React.FC = () => {
|
||||
<Check className="text-white w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="text-lg font-bold text-green-700 dark:text-green-400 mb-2">Automatización inteligente + datos reales</h4>
|
||||
<h4 className="text-lg font-bold text-green-700 dark:text-green-400 mb-2">{t('landing:benefits.solutions.smart_automation.title', 'Automatización inteligente + datos reales')}</h4>
|
||||
<p className="text-[var(--text-secondary)] text-sm">
|
||||
Desde planificación de producción hasta gestión de inventario. Todo basado en matemáticas, no corazonadas.
|
||||
{t('landing:benefits.solutions.smart_automation.description', 'Desde planificación de producción hasta gestión de inventario. Todo basado en matemáticas, no corazonadas.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -655,24 +636,21 @@ const LandingPage: React.FC = () => {
|
||||
<div className="mt-16 bg-gradient-to-r from-[var(--color-primary)]/10 to-orange-500/10 rounded-2xl p-8 border-2 border-[var(--color-primary)]/30">
|
||||
<div className="text-center">
|
||||
<h3 className="text-2xl font-bold text-[var(--text-primary)] mb-4">
|
||||
El Objetivo: Que Ahorres Dinero Desde el Primer Mes
|
||||
{t('landing:benefits.value_proposition.title', 'El Objetivo: Que Ahorres Dinero Desde el Primer Mes')}
|
||||
</h3>
|
||||
<p className="text-[var(--text-secondary)] max-w-3xl mx-auto mb-6">
|
||||
No prometemos números mágicos porque cada panadería es diferente. Lo que SÍ prometemos es que si después de 3 meses
|
||||
no has reducido desperdicios o mejorado tus márgenes, <strong>te ayudamos gratis a optimizar tu negocio de otra forma</strong>.
|
||||
</p>
|
||||
<p className="text-[var(--text-secondary)] max-w-3xl mx-auto mb-6" dangerouslySetInnerHTML={{ __html: t('landing:benefits.value_proposition.description', 'No prometemos números mágicos porque cada panadería es diferente. Lo que SÍ prometemos es que si después de 3 meses no has reducido desperdicios o mejorado tus márgenes, <strong>te ayudamos gratis a optimizar tu negocio de otra forma</strong>.') }} />
|
||||
<div className="flex flex-wrap justify-center gap-6 text-sm">
|
||||
<div className="flex items-center gap-2">
|
||||
<TrendingUp className="w-5 h-5 text-[var(--color-success)]" />
|
||||
<span className="text-[var(--text-secondary)]">Menos desperdicio = más beneficio</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:benefits.value_proposition.points.waste', 'Menos desperdicio = más beneficio')}</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Clock className="w-5 h-5 text-blue-600" />
|
||||
<span className="text-[var(--text-secondary)]">Menos tiempo en Excel, más en tu negocio</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:benefits.value_proposition.points.time', 'Menos tiempo en Excel, más en tu negocio')}</span>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Shield className="w-5 h-5 text-purple-600" />
|
||||
<span className="text-[var(--text-secondary)]">Tus datos siempre son tuyos</span>
|
||||
<span className="text-[var(--text-secondary)]">{t('landing:benefits.value_proposition.points.data', 'Tus datos siempre son tuyos')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -685,10 +663,10 @@ const LandingPage: React.FC = () => {
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center mb-16">
|
||||
<h2 className="text-3xl lg:text-4xl font-extrabold text-[var(--text-primary)]">
|
||||
Sin Riesgo. Sin Ataduras.
|
||||
{t('landing:risk_reversal.title', 'Sin Riesgo. Sin Ataduras.')}
|
||||
</h2>
|
||||
<p className="mt-4 max-w-2xl mx-auto text-lg text-[var(--text-secondary)]">
|
||||
Somos transparentes: esto es un piloto. Estamos construyendo la mejor herramienta para panaderías, y necesitamos tu ayuda.
|
||||
{t('landing:risk_reversal.subtitle', 'Somos transparentes: esto es un piloto. Estamos construyendo la mejor herramienta para panaderías, y necesitamos tu ayuda.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -699,28 +677,28 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-10 h-10 bg-green-600 rounded-full flex items-center justify-center">
|
||||
<Check className="w-6 h-6 text-white" />
|
||||
</div>
|
||||
Lo Que Obtienes
|
||||
{t('landing:risk_reversal.what_you_get.title', 'Lo Que Obtienes')}
|
||||
</h3>
|
||||
<ul className="space-y-4">
|
||||
<li className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-green-600 dark:text-green-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>3 meses completamente gratis</strong> para probar todas las funcionalidades</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_you_get.free_trial', '<strong>3 meses completamente gratis</strong> para probar todas las funcionalidades') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-green-600 dark:text-green-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>20% de descuento de por vida</strong> si decides continuar después del piloto</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_you_get.lifetime_discount', '<strong>20% de descuento de por vida</strong> si decides continuar después del piloto') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-green-600 dark:text-green-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Soporte directo del equipo fundador</strong> - respondemos en horas, no días</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_you_get.founder_support', '<strong>Soporte directo del equipo fundador</strong> - respondemos en horas, no días') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-green-600 dark:text-green-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Tus ideas se implementan primero</strong> - construimos lo que realmente necesitas</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_you_get.priority_features', '<strong>Tus ideas se implementan primero</strong> - construimos lo que realmente necesitas') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<Check className="w-5 h-5 text-green-600 dark:text-green-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Cancelas cuando quieras</strong> sin explicaciones ni penalizaciones</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_you_get.cancel_anytime', '<strong>Cancelas cuando quieras</strong> sin explicaciones ni penalizaciones') }} />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -731,31 +709,29 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-10 h-10 bg-blue-600 rounded-full flex items-center justify-center">
|
||||
<Users className="w-6 h-6 text-white" />
|
||||
</div>
|
||||
Lo Que Pedimos
|
||||
{t('landing:risk_reversal.what_we_ask.title', 'Lo Que Pedimos')}
|
||||
</h3>
|
||||
<ul className="space-y-4">
|
||||
<li className="flex items-start gap-3">
|
||||
<ArrowRight className="w-5 h-5 text-blue-600 dark:text-blue-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Feedback honesto semanal</strong> (15 min) sobre qué funciona y qué no</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_we_ask.feedback', '<strong>Feedback honesto semanal</strong> (15 min) sobre qué funciona y qué no') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<ArrowRight className="w-5 h-5 text-blue-600 dark:text-blue-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Paciencia con bugs</strong> - estamos en fase beta, habrá imperfecciones</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_we_ask.patience', '<strong>Paciencia con bugs</strong> - estamos en fase beta, habrá imperfecciones') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<ArrowRight className="w-5 h-5 text-blue-600 dark:text-blue-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Datos de ventas históricos</strong> (opcional) para mejorar las predicciones</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_we_ask.data', '<strong>Datos de ventas históricos</strong> (opcional) para mejorar las predicciones') }} />
|
||||
</li>
|
||||
<li className="flex items-start gap-3">
|
||||
<ArrowRight className="w-5 h-5 text-blue-600 dark:text-blue-400 mt-1 flex-shrink-0" />
|
||||
<span className="text-[var(--text-secondary)]"><strong>Comunicación abierta</strong> - queremos saber si algo no te gusta</span>
|
||||
<span className="text-[var(--text-secondary)]" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.what_we_ask.communication', '<strong>Comunicación abierta</strong> - queremos saber si algo no te gusta') }} />
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div className="mt-6 p-4 bg-white dark:bg-gray-800 rounded-lg border border-blue-200 dark:border-blue-800">
|
||||
<p className="text-sm text-[var(--text-secondary)] italic">
|
||||
<strong>Promesa:</strong> Si después de 3 meses sientes que no te ayudamos a ahorrar dinero o reducir desperdicios, te damos una sesión gratuita de consultoría para optimizar tu panadería de otra forma.
|
||||
</p>
|
||||
<p className="text-sm text-[var(--text-secondary)] italic" dangerouslySetInnerHTML={{ __html: t('landing:risk_reversal.promise', '<strong>Promesa:</strong> Si después de 3 meses sientes que no te ayudamos a ahorrar dinero o reducir desperdicios, te damos una sesión gratuita de consultoría para optimizar tu panadería de otra forma.') }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -764,10 +740,10 @@ const LandingPage: React.FC = () => {
|
||||
<div className="bg-[var(--bg-primary)] rounded-2xl p-8 shadow-lg border border-[var(--border-primary)]">
|
||||
<div className="text-center mb-8">
|
||||
<h3 className="text-xl font-bold text-[var(--text-primary)] mb-3">
|
||||
¿Por Qué Confiar en Nosotros?
|
||||
{t('landing:risk_reversal.credibility.title', '¿Por Qué Confiar en Nosotros?')}
|
||||
</h3>
|
||||
<p className="text-[var(--text-secondary)]">
|
||||
Entendemos que probar nueva tecnología es un riesgo. Por eso somos completamente transparentes:
|
||||
{t('landing:risk_reversal.credibility.subtitle', 'Entendemos que probar nueva tecnología es un riesgo. Por eso somos completamente transparentes:')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -776,9 +752,9 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-16 h-16 bg-purple-100 dark:bg-purple-900/30 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<Shield className="w-8 h-8 text-purple-600 dark:text-purple-400" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)] mb-2">100% Española</h4>
|
||||
<h4 className="font-semibold text-[var(--text-primary)] mb-2">{t('landing:risk_reversal.credibility.spanish.title', '100% Española')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)]">
|
||||
Empresa registrada en España. Tus datos están protegidos por RGPD y nunca salen de la UE.
|
||||
{t('landing:risk_reversal.credibility.spanish.description', 'Empresa registrada en España. Tus datos están protegidos por RGPD y nunca salen de la UE.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -786,9 +762,9 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-16 h-16 bg-orange-100 dark:bg-orange-900/30 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<Brain className="w-8 h-8 text-orange-600 dark:text-orange-400" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)] mb-2">Tecnología Probada</h4>
|
||||
<h4 className="font-semibold text-[var(--text-primary)] mb-2">{t('landing:risk_reversal.credibility.technology.title', 'Tecnología Probada')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)]">
|
||||
Usamos algoritmos de IA validados académicamente, adaptados específicamente para panaderías.
|
||||
{t('landing:risk_reversal.credibility.technology.description', 'Usamos algoritmos de IA validados académicamente, adaptados específicamente para panaderías.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -796,9 +772,9 @@ const LandingPage: React.FC = () => {
|
||||
<div className="w-16 h-16 bg-teal-100 dark:bg-teal-900/30 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<Award className="w-8 h-8 text-teal-600 dark:text-teal-400" />
|
||||
</div>
|
||||
<h4 className="font-semibold text-[var(--text-primary)] mb-2">Equipo Experto</h4>
|
||||
<h4 className="font-semibold text-[var(--text-primary)] mb-2">{t('landing:risk_reversal.credibility.team.title', 'Equipo Experto')}</h4>
|
||||
<p className="text-sm text-[var(--text-secondary)]">
|
||||
Fundadores con experiencia en proyectos de alto valor tecnológico + proyectos internacionales.
|
||||
{t('landing:risk_reversal.credibility.team.description', 'Fundadores con experiencia en proyectos de alto valor tecnológico + proyectos internacionales.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -816,62 +792,56 @@ const LandingPage: React.FC = () => {
|
||||
<div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center">
|
||||
<h2 className="text-3xl lg:text-4xl font-extrabold text-[var(--text-primary)]">
|
||||
Preguntas Frecuentes
|
||||
{t('landing:faq.title', 'Preguntas Frecuentes')}
|
||||
</h2>
|
||||
<p className="mt-4 text-lg text-[var(--text-secondary)]">
|
||||
Todo lo que necesitas saber sobre Panadería IA
|
||||
{t('landing:faq.subtitle', 'Todo lo que necesitas saber sobre Panadería IA')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="mt-16 space-y-8">
|
||||
<div className="bg-[var(--bg-primary)] rounded-xl p-8 border border-[var(--border-primary)]">
|
||||
<h3 className="text-lg font-semibold text-[var(--text-primary)]">
|
||||
¿Qué tan precisa es la predicción de demanda?
|
||||
{t('landing:faq.questions.accuracy.q', '¿Qué tan precisa es la predicción de demanda?')}
|
||||
</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Nuestra IA alcanza una precisión del 92% en predicciones de demanda, analizando más de 50 variables incluyendo
|
||||
histórico de ventas, clima, eventos locales, estacionalidad y tendencias de mercado. La precisión mejora continuamente
|
||||
con más datos de tu panadería.
|
||||
{t('landing:faq.questions.accuracy.a', 'Nuestra IA alcanza una precisión del 92% en predicciones de demanda, analizando más de 50 variables incluyendo histórico de ventas, clima, eventos locales, estacionalidad y tendencias de mercado. La precisión mejora continuamente con más datos de tu panadería.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-[var(--bg-primary)] rounded-xl p-8 border border-[var(--border-primary)]">
|
||||
<h3 className="text-lg font-semibold text-[var(--text-primary)]">
|
||||
¿Cuánto tiempo toma implementar el sistema?
|
||||
{t('landing:faq.questions.implementation.q', '¿Cuánto tiempo toma implementar el sistema?')}
|
||||
</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
La configuración inicial toma solo 5 minutos. Nuestro equipo te ayuda a migrar tus datos históricos en 24-48 horas.
|
||||
La IA comienza a generar predicciones útiles después de una semana de datos, alcanzando máxima precisión en 30 días.
|
||||
{t('landing:faq.questions.implementation.a', 'La configuración inicial toma solo 5 minutos. Nuestro equipo te ayuda a migrar tus datos históricos en 24-48 horas. La IA comienza a generar predicciones útiles después de una semana de datos, alcanzando máxima precisión en 30 días.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-[var(--bg-primary)] rounded-xl p-8 border border-[var(--border-primary)]">
|
||||
<h3 className="text-lg font-semibold text-[var(--text-primary)]">
|
||||
¿Se integra con mi sistema POS actual?
|
||||
{t('landing:faq.questions.integration.q', '¿Se integra con mi sistema POS actual?')}
|
||||
</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Sí, nos integramos con más de 50 sistemas POS populares en España. También incluimos nuestro propio POS optimizado
|
||||
para panaderías. Si usas un sistema específico, nuestro equipo técnico puede crear una integración personalizada.
|
||||
{t('landing:faq.questions.integration.a', 'Sí, nos integramos con más de 50 sistemas POS populares en España. También incluimos nuestro propio POS optimizado para panaderías. Si usas un sistema específico, nuestro equipo técnico puede crear una integración personalizada.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-[var(--bg-primary)] rounded-xl p-8 border border-[var(--border-primary)]">
|
||||
<h3 className="text-lg font-semibold text-[var(--text-primary)]">
|
||||
¿Qué soporte técnico ofrecen?
|
||||
{t('landing:faq.questions.support.q', '¿Qué soporte técnico ofrecen?')}
|
||||
</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Ofrecemos soporte 24/7 en español por chat, email y teléfono. Todos nuestros técnicos son expertos en operaciones
|
||||
de panadería. Además, incluimos onboarding personalizado y training para tu equipo sin costo adicional.
|
||||
{t('landing:faq.questions.support.a', 'Ofrecemos soporte 24/7 en español por chat, email y teléfono. Todos nuestros técnicos son expertos en operaciones de panadería. Además, incluimos onboarding personalizado y training para tu equipo sin costo adicional.')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="bg-[var(--bg-primary)] rounded-xl p-8 border border-[var(--border-primary)]">
|
||||
<h3 className="text-lg font-semibold text-[var(--text-primary)]">
|
||||
¿Mis datos están seguros?
|
||||
{t('landing:faq.questions.security.q', '¿Mis datos están seguros?')}
|
||||
</h3>
|
||||
<p className="mt-4 text-[var(--text-secondary)]">
|
||||
Absolutamente. Utilizamos cifrado AES-256, servidores en la UE, cumplimos 100% con RGPD y realizamos auditorías
|
||||
de seguridad trimestrales. Tus datos nunca se comparten con terceros y tienes control total sobre tu información.
|
||||
{t('landing:faq.questions.security.a', 'Absolutamente. Utilizamos cifrado AES-256, servidores en la UE, cumplimos 100% con RGPD y realizamos auditorías de seguridad trimestrales. Tus datos nunca se comparten con terceros y tienes control total sobre tu información.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -889,17 +859,14 @@ const LandingPage: React.FC = () => {
|
||||
{/* Scarcity Badge */}
|
||||
<div className="inline-flex items-center gap-2 bg-red-600 text-white px-6 py-3 rounded-full text-sm font-bold mb-6 shadow-lg animate-pulse">
|
||||
<Clock className="w-5 h-5" />
|
||||
<span>Quedan 12 plazas de las 20 del programa piloto</span>
|
||||
<span>{t('landing:final_cta.scarcity_badge', 'Quedan 12 plazas de las 20 del programa piloto')}</span>
|
||||
</div>
|
||||
|
||||
<h2 className="text-3xl lg:text-5xl font-extrabold text-white">
|
||||
Sé de las Primeras 20 Panaderías
|
||||
<span className="block text-white/90 mt-2">En Probar Esta Tecnología</span>
|
||||
{t('landing:final_cta.title', 'Sé de las Primeras 20 Panaderías')}
|
||||
<span className="block text-white/90 mt-2">{t('landing:final_cta.title_accent', 'En Probar Esta Tecnología')}</span>
|
||||
</h2>
|
||||
<p className="mt-6 text-lg text-white/90 max-w-2xl mx-auto">
|
||||
No es para todo el mundo. Buscamos panaderías que quieran <strong>reducir desperdicios y aumentar ganancias</strong>
|
||||
con ayuda de IA, a cambio de feedback honesto.
|
||||
</p>
|
||||
<p className="mt-6 text-lg text-white/90 max-w-2xl mx-auto" dangerouslySetInnerHTML={{ __html: t('landing:final_cta.subtitle', 'No es para todo el mundo. Buscamos panaderías que quieran <strong>reducir desperdicios y aumentar ganancias</strong> con ayuda de IA, a cambio de feedback honesto.') }} />
|
||||
|
||||
<div className="mt-10 flex flex-col sm:flex-row gap-6 justify-center">
|
||||
<Link to={getRegisterUrl()} className="w-full sm:w-auto">
|
||||
@@ -909,7 +876,7 @@ const LandingPage: React.FC = () => {
|
||||
>
|
||||
<span className="absolute inset-0 w-full h-full bg-gradient-to-r from-white/0 via-white/20 to-white/0 translate-x-[-100%] group-hover:translate-x-[100%] transition-transform duration-700"></span>
|
||||
<span className="relative flex items-center justify-center gap-2">
|
||||
Solicitar Plaza en el Piloto
|
||||
{t('landing:final_cta.cta_primary', 'Solicitar Plaza en el Piloto')}
|
||||
<ArrowRight className="w-6 h-6 group-hover:translate-x-1 transition-transform duration-200" />
|
||||
</span>
|
||||
</Button>
|
||||
@@ -931,23 +898,23 @@ const LandingPage: React.FC = () => {
|
||||
{/* Social Proof Alternative - Loss Aversion */}
|
||||
<div className="mt-12 bg-white/10 backdrop-blur-sm rounded-2xl p-6 border border-white/20">
|
||||
<p className="text-white/90 text-base mb-4">
|
||||
<strong>¿Por qué actuar ahora?</strong>
|
||||
<strong>{t('landing:final_cta.why_now.title', '¿Por qué actuar ahora?')}</strong>
|
||||
</p>
|
||||
<div className="grid grid-cols-1 sm:grid-cols-3 gap-6 text-sm">
|
||||
<div className="flex flex-col items-center">
|
||||
<Award className="w-8 h-8 text-white mb-2" />
|
||||
<div className="text-white font-semibold">20% descuento de por vida</div>
|
||||
<div className="text-white/70">Solo primeros 20</div>
|
||||
<div className="text-white font-semibold">{t('landing:final_cta.why_now.lifetime_discount.title', '20% descuento de por vida')}</div>
|
||||
<div className="text-white/70">{t('landing:final_cta.why_now.lifetime_discount.subtitle', 'Solo primeros 20')}</div>
|
||||
</div>
|
||||
<div className="flex flex-col items-center">
|
||||
<Users className="w-8 h-8 text-white mb-2" />
|
||||
<div className="text-white font-semibold">Influyes en el roadmap</div>
|
||||
<div className="text-white/70">Tus necesidades primero</div>
|
||||
<div className="text-white font-semibold">{t('landing:final_cta.why_now.influence.title', 'Influyes en el roadmap')}</div>
|
||||
<div className="text-white/70">{t('landing:final_cta.why_now.influence.subtitle', 'Tus necesidades primero')}</div>
|
||||
</div>
|
||||
<div className="flex flex-col items-center">
|
||||
<Zap className="w-8 h-8 text-white mb-2" />
|
||||
<div className="text-white font-semibold">Soporte VIP</div>
|
||||
<div className="text-white/70">Acceso directo al equipo</div>
|
||||
<div className="text-white font-semibold">{t('landing:final_cta.why_now.vip_support.title', 'Soporte VIP')}</div>
|
||||
<div className="text-white/70">{t('landing:final_cta.why_now.vip_support.subtitle', 'Acceso directo al equipo')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -955,7 +922,7 @@ const LandingPage: React.FC = () => {
|
||||
{/* Guarantee */}
|
||||
<div className="mt-8 text-white/80 text-sm">
|
||||
<Shield className="w-5 h-5 inline mr-2" />
|
||||
<span>Garantía: Cancelas en cualquier momento sin dar explicaciones</span>
|
||||
<span>{t('landing:final_cta.guarantee', 'Garantía: Cancelas en cualquier momento sin dar explicaciones')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user