/* global React, Icon, Button, Eyebrow, Droplets, Container */

// ─────────────────────────────────────────────
// Sub-brand tokens — Industria: Legal
// ─────────────────────────────────────────────
const LG = {
  deep:   '#1C1840',
  mid:    '#38318E',
  glow:   '#8D87D6',
  bg:     '#EEEDFB',
  bgDark: '#0B0920',
};
window.LG = LG;

// ============================================================
// HERO
// ============================================================
function LgHero({ onCta }) {
  return (
    <section id="top" style={{
      position: 'relative', overflow: 'hidden',
      background: `radial-gradient(80% 60% at 50% 0%, ${LG.bg} 0%, var(--ink-0) 70%)`,
    }}>
      <Droplets style={{ right: -60, top: 80 }} color={LG.glow} opacity={0.45} size={240} />
      <Droplets style={{ left: -100, bottom: -60 }} color={LG.glow} opacity={0.16} size={300} />
      <div aria-hidden style={{
        position: 'absolute', inset: 0,
        backgroundImage: 'radial-gradient(circle at 1px 1px, rgba(28,24,64,0.04) 1px, transparent 0)',
        backgroundSize: '32px 32px',
        maskImage: 'radial-gradient(ellipse 70% 60% at 50% 30%, #000, transparent)',
        WebkitMaskImage: 'radial-gradient(ellipse 70% 60% at 50% 30%, #000, transparent)',
      }} />

      <Container style={{ padding: '72px 32px 96px', position: 'relative' }}>

        {/* Breadcrumb */}
        <div style={{
          display: 'inline-flex', alignItems: 'center', gap: 8,
          fontFamily: 'var(--font-mono)', fontSize: 11.5,
          color: 'var(--fg3)', letterSpacing: '0.02em', marginBottom: 26,
        }}>
          <a href="FRSKO Homepage.html" style={{ color: 'var(--fg3)' }}>frsko.com</a>
          <span style={{ opacity: 0.5 }}>/</span>
          <a href="#" style={{ color: 'var(--fg3)' }}>industrias</a>
          <span style={{ opacity: 0.5 }}>/</span>
          <span style={{ color: LG.deep, fontWeight: 600 }}>legal</span>
        </div>

        <div style={{ display: 'grid', gridTemplateColumns: '1.15fr 1fr', gap: 56, alignItems: 'start' }}>

          {/* LEFT: copy */}
          <div>
            <div style={{ display: 'flex', alignItems: 'center', gap: 10, marginBottom: 22 }}>
              <div style={{
                display: 'inline-flex', alignItems: 'center', gap: 8,
                padding: '5px 14px', borderRadius: 999,
                background: '#fff', border: `1px solid ${LG.glow}`,
                fontSize: 11, fontWeight: 700, letterSpacing: '0.14em',
                textTransform: 'uppercase', color: LG.deep,
              }}>
                <Icon name="scale" size={12} />
                FRSKO · Industria Legal
              </div>
              <span style={{ fontSize: 11, fontWeight: 500, color: 'var(--fg3)' }}>MX · LATAM</span>
            </div>

            <h1 style={{
              fontFamily: 'var(--font-display)', fontWeight: 700,
              fontSize: 'clamp(38px, 5vw, 66px)',
              lineHeight: 1.03, letterSpacing: '-0.035em',
              margin: '0 0 24px', color: 'var(--fg1)',
            }}>
              Tu despacho tiene<br />
              el expertise. Nosotros<br />
              <span style={{ color: LG.deep, fontStyle: 'italic' }}>hacemos que te encuentren.</span>
            </h1>

            <p style={{
              fontSize: 'clamp(17px, 1.4vw, 20px)', lineHeight: 1.6,
              color: 'var(--fg2)', maxWidth: 540, margin: '0 0 32px',
            }}>
              SEO Pulse + NeuroCopy Lab, calibrados para despachos y servicios legales. Autoridad digital que posiciona tu firma ante quien ya busca un abogado — con el copy que convierte la visita en consulta.
            </p>

            <div style={{ display: 'flex', gap: 12, alignItems: 'center', flexWrap: 'wrap', marginBottom: 32 }}>
              <Button variant="cta" size="lg" icon="arrow-right" onClick={onCta}>
                Diagnóstico legal gratis
              </Button>
              <Button variant="ghost" size="lg" icon="arrow-right" onClick={() => {
                const el = document.getElementById('embudo');
                if (el) el.scrollIntoView({ behavior: 'smooth' });
              }}>
                Ver cómo funciona
              </Button>
            </div>

            <div style={{ display: 'flex', alignItems: 'center', gap: 20, flexWrap: 'wrap' }}>
              {['Confidencialidad garantizada', 'Copy no genérico', 'SEO por área de práctica', 'ES · EN'].map(t => (
                <div key={t} style={{ display: 'flex', alignItems: 'center', gap: 6, fontSize: 13, color: 'var(--fg3)' }}>
                  <Icon name="check" size={13} stroke={2.5} style={{ color: LG.deep }} />
                  {t}
                </div>
              ))}
            </div>
          </div>

          {/* RIGHT: dashboard */}
          <LgAuthorityPanel />
        </div>
      </Container>
    </section>
  );
}

function LgAuthorityPanel() {
  const keywords = [
    { query: 'abogado fiscal Ciudad de México',      pos: '#2',  leads: 24, trend: 'up'   },
    { query: 'consulta legal empresarial CDMX',      pos: '#1',  leads: 31, trend: 'up'   },
    { query: 'despacho laboral para empresas',        pos: '#4',  leads: 18, trend: 'up'   },
    { query: 'abogado corporativo startup México',   pos: '#3',  leads: 15, trend: 'flat' },
    { query: 'asesoría legal contratos mercantiles', pos: '#5',  leads: 11, trend: 'up'   },
  ];

  return (
    <div style={{
      background: '#fff', border: '1px solid var(--border)',
      borderRadius: 24, boxShadow: 'var(--shadow-lg)', overflow: 'hidden',
    }}>
      {/* Chrome */}
      <div style={{
        padding: '12px 16px', background: 'var(--ink-25)',
        borderBottom: '1px solid var(--border)',
        display: 'flex', alignItems: 'center', gap: 10,
      }}>
        <div style={{ display: 'flex', gap: 6 }}>
          {['#FF5F57','#FEBC2E','#27C840'].map(c => (
            <div key={c} style={{ width: 10, height: 10, borderRadius: 999, background: c }} />
          ))}
        </div>
        <div style={{ flex: 1, fontFamily: 'var(--font-mono)', fontSize: 11, color: 'var(--fg3)', textAlign: 'center' }}>
          app.frsko.com / legal-authority
        </div>
        <div style={{
          fontSize: 10, fontWeight: 600, letterSpacing: '0.08em', textTransform: 'uppercase',
          color: LG.deep, padding: '3px 8px', borderRadius: 999, background: LG.bg,
          display: 'inline-flex', alignItems: 'center', gap: 5,
        }}>
          <span style={{ width: 6, height: 6, borderRadius: 999, background: '#22A06B' }} />
          Live
        </div>
      </div>

      {/* KPIs */}
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', borderBottom: '1px solid var(--border)' }}>
        {[
          { v: '99',   l: 'Consultas este mes'  },
          { v: 'Top 3', l: 'Posición promedio'  },
          { v: '82%',  l: 'Leads calificados'   },
        ].map((k, i) => (
          <div key={k.l} style={{
            padding: '15px 18px',
            borderLeft: i > 0 ? '1px solid var(--border)' : 'none',
          }}>
            <div style={{
              fontFamily: 'var(--font-display)', fontWeight: 700,
              fontSize: 26, letterSpacing: '-0.025em', color: LG.deep, lineHeight: 1,
            }}>{k.v}</div>
            <div style={{ fontSize: 11, color: 'var(--fg3)', marginTop: 4 }}>{k.l}</div>
          </div>
        ))}
      </div>

      {/* Column header */}
      <div style={{
        padding: '10px 16px', borderBottom: '1px solid var(--border)',
        display: 'flex', justifyContent: 'space-between',
        fontSize: 10.5, fontWeight: 600, letterSpacing: '0.1em',
        textTransform: 'uppercase', color: 'var(--fg3)',
      }}>
        <span>Keywords posicionadas</span>
        <span style={{ color: LG.deep }}>Pos. · Consultas / mes</span>
      </div>

      {/* Keyword rows */}
      {keywords.map((k, i) => (
        <div key={k.query} style={{
          padding: '12px 16px',
          borderBottom: i < keywords.length - 1 ? '1px solid var(--border)' : 'none',
          display: 'flex', alignItems: 'center', gap: 12,
        }}>
          <div style={{
            width: 32, height: 32, borderRadius: 10,
            background: k.trend === 'up' ? LG.bg : 'var(--ink-50)',
            color: k.trend === 'up' ? LG.mid : 'var(--fg3)',
            display: 'grid', placeItems: 'center', flexShrink: 0,
          }}>
            <Icon name={k.trend === 'up' ? 'chart' : 'search'} size={14} />
          </div>
          <div style={{ flex: 1, minWidth: 0 }}>
            <div style={{
              fontSize: 12.5, fontWeight: 600, color: 'var(--fg1)',
              whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis',
            }}>{k.query}</div>
          </div>
          <div style={{ display: 'flex', alignItems: 'center', gap: 10, flexShrink: 0 }}>
            <div style={{
              fontFamily: 'var(--font-mono)', fontSize: 12, fontWeight: 700,
              color: LG.deep, background: LG.bg,
              padding: '2px 8px', borderRadius: 6,
            }}>{k.pos}</div>
            <div style={{ fontSize: 12, color: 'var(--fg3)', textAlign: 'right' }}>
              {k.leads} cons.
            </div>
          </div>
        </div>
      ))}

      {/* Footer */}
      <div style={{
        padding: '11px 16px', background: LG.bg,
        fontSize: 12, color: LG.deep,
        display: 'flex', alignItems: 'center', justifyContent: 'space-between',
      }}>
        <span style={{ display: 'flex', alignItems: 'center', gap: 6 }}>
          <Icon name="sparkles" size={13} />
          IA detectó 12 oportunidades de contenido legal esta semana
        </span>
        <span style={{ fontWeight: 600, cursor: 'pointer' }}>Ver reporte →</span>
      </div>
    </div>
  );
}

// ============================================================
// PROBLEMA
// ============================================================
function LgProblema() {
  const pains = [
    {
      icon: 'compass',
      title: 'Todos los despachos dicen lo mismo — el tuyo desaparece en el ruido',
      body: '"Amplia experiencia. Compromiso total. Resultados garantizados." Si tu web dice eso, eres invisible. Sin posicionamiento real y copy diferenciado, el prospecto no puede distinguirte de los demás.',
    },
    {
      icon: 'search',
      title: 'El cliente busca abogado en Google — y encuentra a tu competencia, no a ti',
      body: 'Más del 80% de las búsquedas legales comienzan en Google. Si no apareces en las primeras posiciones para las búsquedas específicas de tu área de práctica, no existes para ese cliente.',
    },
    {
      icon: 'message',
      title: 'El lenguaje legal aleja en lugar de atraer — el prospecto no entiende y no llama',
      body: 'El copy técnico y formal que funciona en un contrato destruye la conversión en una landing page. Los prospectos necesitan sentir que los entiendes antes de contratarte — y eso requiere otro idioma.',
    },
  ];

  return (
    <section style={{ background: '#fff', borderTop: '1px solid var(--border)' }}>
      <Container style={{ padding: '96px 32px' }}>
        <div style={{ maxWidth: 980, margin: '0 auto' }}>
          <Eyebrow color={LG.mid}>EL PROBLEMA</Eyebrow>
          <h2 style={{
            fontFamily: 'var(--font-display)', fontWeight: 700,
            fontSize: 'clamp(30px, 4vw, 54px)',
            lineHeight: 1.06, letterSpacing: '-0.03em',
            margin: '18px 0 48px', color: 'var(--fg1)', maxWidth: 820, textWrap: 'pretty',
          }}>
            El mejor despacho no siempre gana al cliente.{' '}
            <span style={{
              background: `linear-gradient(180deg, transparent 58%, ${LG.glow} 58%)`,
              padding: '0 4px', fontStyle: 'italic',
            }}>El que aparece primero</span>{' '}
            y convence más rápido, sí.
          </h2>

          <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 20 }}>
            {pains.map(p => (
              <div key={p.title} style={{
                background: 'var(--ink-25)', border: '1px solid var(--border)',
                borderRadius: 24, padding: '28px 28px 32px',
              }}>
                <div style={{
                  width: 48, height: 48, borderRadius: 14,
                  background: LG.bg, color: LG.deep,
                  display: 'grid', placeItems: 'center', marginBottom: 20,
                }}>
                  <Icon name={p.icon} size={22} />
                </div>
                <h3 style={{
                  fontFamily: 'var(--font-display)', fontSize: 18, fontWeight: 700,
                  letterSpacing: '-0.02em', lineHeight: 1.25, margin: '0 0 12px', color: 'var(--fg1)',
                }}>{p.title}</h3>
                <p style={{ fontSize: 14.5, lineHeight: 1.6, color: 'var(--fg2)', margin: 0 }}>{p.body}</p>
              </div>
            ))}
          </div>

          <div style={{
            marginTop: 36, padding: '26px 34px',
            background: `linear-gradient(135deg, ${LG.bg}, #e9e8f8)`,
            border: `1px solid ${LG.glow}`, borderRadius: 20,
            display: 'flex', alignItems: 'center', gap: 24,
          }}>
            <div style={{
              width: 52, height: 52, borderRadius: 14, flexShrink: 0,
              background: LG.mid, color: '#fff', display: 'grid', placeItems: 'center',
            }}>
              <Icon name="check" size={24} />
            </div>
            <div>
              <p style={{
                fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 20,
                letterSpacing: '-0.02em', color: LG.deep, margin: '0 0 6px', lineHeight: 1.2,
              }}>
                Autoridad digital no se impone. Se construye con SEO y copy inteligente.
              </p>
              <p style={{ fontSize: 15, lineHeight: 1.55, color: 'var(--fg2)', margin: 0 }}>
                Cuando apareces en el momento correcto con el mensaje correcto, el prospecto ya llegó convencido a la primera llamada. Tu equipo cierra más — sin invertir más tiempo en prospección.
              </p>
            </div>
          </div>
        </div>
      </Container>
    </section>
  );
}

// ============================================================
// SOLUCIONES
// ============================================================
function LgSoluciones() {
  const sols = [
    {
      tag: 'SEO PULSE',
      icon: 'search',
      title: 'Aparece cuando buscan exactamente lo que practicas.',
      body: 'Auditoría SEO por área de práctica + estrategia de contenido para búsquedas como "abogado fiscal CDMX", "despacho laboral empresas México" o "asesoría legal corporativa". También en ChatGPT y Perplexity.',
      bullets: [
        'Mapa de keywords por área de práctica y tipo de cliente',
        'Optimización de ficha de Google Business Profile',
        'AEO: aparece cuando recomiendan abogados en IA generativa',
      ],
      colors: { ink: 'var(--sub-academy-1)', soft: 'var(--sub-academy-bg)', drop: 'var(--sub-academy-2)' },
      href: 'FRSKO SEO Pulse.html',
    },
    {
      tag: 'NEUROCOPY LAB',
      icon: 'brain',
      title: 'Copy que convierte sin sonar a folleto legal.',
      body: 'Textos para landing pages, Google Ads y seguimiento que hablan el idioma del cliente — no del abogado. Mensajes que construyen confianza rápido, reducen la fricción de contactar y multiplican la tasa de conversión.',
      bullets: [
        'Auditoría y reescritura de landing pages por área de práctica',
        'Copy de anuncios de Google calibrado por intención de búsqueda',
        'Secuencias de seguimiento post-consulta para retener el interés',
      ],
      colors: { ink: 'var(--sub-neuro-1)', soft: 'var(--sub-neuro-bg)', drop: 'var(--sub-neuro-2)' },
      href: 'FRSKO NeuroCopy Lab.html',
    },
    {
      tag: 'CONTENT STUDIO AI',
      icon: 'sparkles',
      title: 'Artículos legales accesibles que posicionan tu autoridad.',
      body: 'Contenido editorial que explica temas legales complejos en el lenguaje del cliente: guías prácticas, artículos de blog y FAQs que atraen tráfico orgánico y demuestran tu expertise antes del primer contacto.',
      bullets: [
        'Artículos por área de práctica: fiscal, laboral, corporativo, mercantil',
        'Guías prácticas que responden las preguntas más buscadas',
        'Contenido pensado para AEO y featured snippets en Google',
      ],
      colors: { ink: 'var(--sub-leadgen-1)', soft: 'var(--sub-leadgen-bg)', drop: 'var(--sub-leadgen-2)' },
      href: 'FRSKO Content Studio AI.html',
    },
  ];

  return (
    <section id="soluciones" style={{ background: 'var(--ink-50)', position: 'relative', overflow: 'hidden' }}>
      <Droplets style={{ right: -80, top: 100 }} color={LG.glow} opacity={0.3} size={260} />
      <Container style={{ padding: '100px 32px', position: 'relative' }}>
        <div style={{ marginBottom: 52, maxWidth: 760 }}>
          <Eyebrow color={LG.mid}>SOLUCIONES PARA EL SECTOR LEGAL</Eyebrow>
          <h2 style={{
            fontFamily: 'var(--font-display)', fontSize: 'clamp(28px, 3.8vw, 50px)', fontWeight: 700,
            letterSpacing: '-0.03em', lineHeight: 1.05, margin: '16px 0 16px',
          }}>
            De la búsqueda de Google<br />a la firma del contrato.
          </h2>
          <p style={{ fontSize: 17, lineHeight: 1.6, color: 'var(--fg2)', maxWidth: 580 }}>
            Diseñados para despachos, abogados independientes y firmas legales en México — con sensibilidad para la confidencialidad y los estándares del sector.
          </p>
        </div>

        <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 20 }}>
          {sols.map(s => (
            <article key={s.tag} style={{
              background: '#fff', borderRadius: 28, border: '1px solid var(--border)',
              overflow: 'hidden', display: 'flex', flexDirection: 'column',
              transition: 'all var(--dur-base) var(--ease-out)', cursor: 'pointer',
            }}
              onMouseEnter={e => { e.currentTarget.style.boxShadow = 'var(--shadow-md)'; e.currentTarget.style.transform = 'translateY(-3px)'; }}
              onMouseLeave={e => { e.currentTarget.style.boxShadow = ''; e.currentTarget.style.transform = ''; }}>

              <div style={{
                position: 'relative', overflow: 'hidden',
                background: s.colors.soft, padding: '28px 28px 22px',
                borderBottom: '1px solid var(--border)',
              }}>
                <Droplets style={{ right: -30, top: -20 }} color={s.colors.drop} opacity={0.45} size={130} />
                <div style={{ position: 'relative', display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start' }}>
                  <div style={{
                    width: 48, height: 48, borderRadius: 14, background: '#fff',
                    color: s.colors.ink, display: 'grid', placeItems: 'center',
                    boxShadow: '0 4px 14px -6px rgba(20,47,50,0.18)',
                  }}>
                    <Icon name={s.icon} size={22} />
                  </div>
                  <span style={{
                    fontSize: 10, fontWeight: 700, letterSpacing: '0.14em', textTransform: 'uppercase',
                    color: s.colors.ink, background: '#fff', padding: '4px 10px', borderRadius: 999,
                  }}>{s.tag}</span>
                </div>
              </div>

              <div style={{ padding: '26px 28px 30px', display: 'flex', flexDirection: 'column', flex: 1 }}>
                <h3 style={{
                  fontFamily: 'var(--font-display)', fontSize: 20, fontWeight: 700,
                  letterSpacing: '-0.02em', lineHeight: 1.2, margin: '0 0 12px', color: 'var(--fg1)',
                }}>{s.title}</h3>
                <p style={{ fontSize: 14.5, lineHeight: 1.6, color: 'var(--fg2)', margin: '0 0 20px' }}>{s.body}</p>
                <ul style={{ listStyle: 'none', padding: 0, margin: '0 0 24px', display: 'flex', flexDirection: 'column', gap: 8 }}>
                  {s.bullets.map(b => (
                    <li key={b} style={{ display: 'flex', alignItems: 'flex-start', gap: 8, fontSize: 13.5, color: 'var(--fg2)' }}>
                      <Icon name="check" size={14} stroke={2.5} style={{ color: s.colors.ink, flexShrink: 0, marginTop: 2 }} />
                      {b}
                    </li>
                  ))}
                </ul>
                <div style={{ marginTop: 'auto' }}>
                  <a href={s.href} style={{
                    display: 'inline-flex', alignItems: 'center', gap: 6,
                    fontSize: 14, fontWeight: 600, color: s.colors.ink, cursor: 'pointer',
                  }}>
                    Ver solución completa <Icon name="arrow-right" size={14} />
                  </a>
                </div>
              </div>
            </article>
          ))}
        </div>
      </Container>
    </section>
  );
}

Object.assign(window, { LgHero, LgAuthorityPanel, LgProblema, LgSoluciones });
