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

// ─────────────────────────────────────────────
// Sub-brand tokens — Industria: Salud
// ─────────────────────────────────────────────
const SL = {
  deep:   '#0C3556',
  mid:    '#1468A0',
  glow:   '#72BFEC',
  bg:     '#E9F4FB',
  bgDark: '#051320',
};
window.SL = SL;

// ============================================================
// HERO
// ============================================================
function SlHero({ onCta }) {
  return (
    <section id="top" style={{
      position: 'relative', overflow: 'hidden',
      background: `radial-gradient(80% 60% at 50% 0%, ${SL.bg} 0%, var(--ink-0) 70%)`,
    }}>
      <Droplets style={{ right: -60, top: 80 }} color={SL.glow} opacity={0.45} size={240} />
      <Droplets style={{ left: -100, bottom: -60 }} color={SL.glow} opacity={0.16} size={300} />
      <div aria-hidden style={{
        position: 'absolute', inset: 0,
        backgroundImage: 'radial-gradient(circle at 1px 1px, rgba(12,53,86,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: SL.deep, fontWeight: 600 }}>salud</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 ${SL.glow}`,
                fontSize: 11, fontWeight: 700, letterSpacing: '0.14em',
                textTransform: 'uppercase', color: SL.deep,
              }}>
                <Icon name="heart" size={12} />
                FRSKO · Industria Salud
              </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 próximo paciente<br />
              ya está buscando.<br />
              <span style={{ color: SL.deep, fontStyle: 'italic' }}>¿Eres tú quien responde?</span>
            </h1>

            <p style={{
              fontSize: 'clamp(17px, 1.4vw, 20px)', lineHeight: 1.6,
              color: 'var(--fg2)', maxWidth: 540, margin: '0 0 32px',
            }}>
              Content Studio AI + SEO Pulse, calibrados para el sector salud. Contenido educativo que genera confianza, posicionamiento en búsquedas de intención médica y un pipeline de pacientes medible desde el primer mes.
            </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 en salud 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' }}>
              {['Contexto COFEPRIS', 'Contenido médico revisado', 'WhatsApp API', 'SEO & AEO'].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: SL.deep }} />
                  {t}
                </div>
              ))}
            </div>
          </div>

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

function SlContentPanel() {
  const posts = [
    { icon: 'chart',    title: '¿Qué esperar de tu primera consulta?',         tipo: 'Blog · Educativo',   reads: '1,840', leads: 22, hot: true  },
    { icon: 'search',   title: 'Señales de que necesitas ver un especialista',  tipo: 'Blog · Síntomas',    reads: '1,120', leads: 16, hot: false },
    { icon: 'chart',    title: 'Cómo elegir al especialista correcto en CDMX',  tipo: 'Guía · Decisión',    reads: '890',   leads: 19, hot: true  },
    { icon: 'clipboard',title: 'Preguntas frecuentes antes del procedimiento',  tipo: 'FAQ · Confianza',    reads: '640',   leads: 11, hot: false },
  ];

  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 / salud-contenido
        </div>
        <div style={{
          fontSize: 10, fontWeight: 600, letterSpacing: '0.08em', textTransform: 'uppercase',
          color: SL.deep, padding: '3px 8px', borderRadius: 999, background: SL.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: '4,280', l: 'Visitas orgánicas' },
          { v: '68',    l: 'Nuevas consultas' },
          { v: 'Top 3', l: 'Pos. promedio' },
        ].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: SL.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>Contenido activo</span>
        <span style={{ color: SL.deep }}>Lecturas · Consultas</span>
      </div>

      {/* Content rows */}
      {posts.map((p, i) => (
        <div key={p.title} style={{
          padding: '13px 16px',
          borderBottom: i < posts.length - 1 ? '1px solid var(--border)' : 'none',
          display: 'flex', alignItems: 'center', gap: 12,
        }}>
          <div style={{
            width: 32, height: 32, borderRadius: 10,
            background: p.hot ? SL.bg : 'var(--ink-50)',
            color: p.hot ? SL.deep : 'var(--fg3)',
            display: 'grid', placeItems: 'center', flexShrink: 0,
          }}>
            <Icon name={p.icon} size={14} />
          </div>
          <div style={{ flex: 1, minWidth: 0 }}>
            <div style={{
              fontSize: 13, fontWeight: 600, color: 'var(--fg1)',
              whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis',
            }}>{p.title}</div>
            <div style={{ fontSize: 11, color: 'var(--fg3)', marginTop: 1 }}>{p.tipo}</div>
          </div>
          <div style={{ textAlign: 'right', flexShrink: 0 }}>
            <div style={{ fontSize: 13, fontWeight: 700, color: SL.deep, lineHeight: 1 }}>{p.reads}</div>
            <div style={{ fontSize: 10, color: 'var(--fg3)', marginTop: 2 }}>{p.leads} consultas</div>
          </div>
        </div>
      ))}

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

// ============================================================
// PROBLEMA
// ============================================================
function SlProblema() {
  const pains = [
    {
      icon: 'search',
      title: 'El paciente investiga antes de llamar — y si no te encuentra, llama a otro',
      body: 'Más del 77% de los pacientes usa Google antes de elegir un proveedor de salud. Sin contenido educativo y sin posicionamiento en búsquedas clave, tu clínica no existe en su proceso de decisión.',
    },
    {
      icon: 'clipboard',
      title: 'La confianza en salud no se declara: se construye con contenido',
      body: 'Un paciente no elige médico por un anuncio. Elige al que le explicó su condición, respondió sus dudas antes de que las formulara, y le dio seguridad antes de la primera cita. Eso es contenido.',
    },
    {
      icon: 'chart',
      title: 'Sin métricas, no sabes qué contenido genera citas — y sigues invirtiendo a ciegas',
      body: 'Tener blog, redes y sitio web no es suficiente. Si no sabes qué pieza de contenido convirtió cada paciente, estás duplicando lo que no funciona y abandonando lo que sí.',
    },
  ];

  return (
    <section style={{ background: '#fff', borderTop: '1px solid var(--border)' }}>
      <Container style={{ padding: '96px 32px' }}>
        <div style={{ maxWidth: 980, margin: '0 auto' }}>
          <Eyebrow color={SL.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',
          }}>
            La captación de pacientes cambió.{' '}
            <span style={{
              background: `linear-gradient(180deg, transparent 58%, ${SL.glow} 58%)`,
              padding: '0 4px', fontStyle: 'italic',
            }}>El contenido educativo</span>{' '}
            es el nuevo consultorio de entrada.
          </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: SL.bg, color: SL.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, ${SL.bg}, #e5f0f9)`,
            border: `1px solid ${SL.glow}`, borderRadius: 20,
            display: 'flex', alignItems: 'center', gap: 24,
          }}>
            <div style={{
              width: 52, height: 52, borderRadius: 14, flexShrink: 0,
              background: SL.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: SL.deep, margin: '0 0 6px', lineHeight: 1.2,
              }}>
                El contenido que educa también convierte.
              </p>
              <p style={{ fontSize: 15, lineHeight: 1.55, color: 'var(--fg2)', margin: 0 }}>
                Cuando un paciente llega a tu clínica habiendo leído tu blog, visto tus guías y resuelto sus dudas, la conversión de llamada a cita confirmada se duplica — y la tasa de cancelación cae.
              </p>
            </div>
          </div>
        </div>
      </Container>
    </section>
  );
}

// ============================================================
// SOLUCIONES
// ============================================================
function SlSoluciones() {
  const sols = [
    {
      tag: 'CONTENT STUDIO AI',
      icon: 'sparkles',
      title: 'Contenido médico que educa y llena tu agenda.',
      body: 'Artículos, guías de síntomas, FAQs y comparativas de tratamientos generados con IA en el contexto médico mexicano. Contenido que responde lo que tu paciente ya está buscando — antes de que llegue a la competencia.',
      bullets: [
        'Calendario editorial de 30 piezas al mes por especialidad',
        'Artículos SEO para búsquedas de alta intención médica',
        'Guías de paciente, video-scripts y contenido de redes sociales',
      ],
      colors: { ink: 'var(--sub-leadgen-1)', soft: 'var(--sub-leadgen-bg)', drop: 'var(--sub-leadgen-2)' },
      href: 'FRSKO Content Studio AI.html',
    },
    {
      tag: 'SEO PULSE',
      icon: 'search',
      title: 'El primero en aparecer cuando buscan tu especialidad.',
      body: 'Auditoría SEO médica + optimización para búsquedas como "cardiólogo CDMX", "clínica dental sin dolor" o "psicólogo ansiedad México". Y para cuando ChatGPT recomienda especialistas.',
      bullets: [
        'Mapa de keywords por especialidad, síntoma y zona geográfica',
        'Fichas de Google Business Profile optimizadas y activas',
        'AEO: respuestas prioritarias en ChatGPT, Perplexity y Google AI',
      ],
      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: 'Mensajes que convierten la duda en cita agendada.',
      body: 'Textos para landing pages, WhatsApp y seguimiento post-contacto que respetan la sensibilidad del contexto médico y reducen la fricción de agendar. En salud, la confianza lo es todo — y el copy la construye.',
      bullets: [
        'Auditoría de copy en landing pages y fichas de Google',
        'Secuencias de WhatsApp: recordatorio, confirmación y retención',
        'A/B testing de mensajes adaptados por especialidad',
      ],
      colors: { ink: 'var(--sub-neuro-1)', soft: 'var(--sub-neuro-bg)', drop: 'var(--sub-neuro-2)' },
      href: 'FRSKO NeuroCopy Lab.html',
    },
  ];

  return (
    <section id="soluciones" style={{ background: 'var(--ink-50)', position: 'relative', overflow: 'hidden' }}>
      <Droplets style={{ right: -80, top: 100 }} color={SL.glow} opacity={0.3} size={260} />
      <Container style={{ padding: '100px 32px', position: 'relative' }}>
        <div style={{ marginBottom: 52, maxWidth: 760 }}>
          <Eyebrow color={SL.mid}>SOLUCIONES PARA EL SECTOR SALUD</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 del paciente<br />a la cita confirmada.
          </h2>
          <p style={{ fontSize: 17, lineHeight: 1.6, color: 'var(--fg2)', maxWidth: 580 }}>
            Diseñados para clínicas, consultorios, hospitales y redes de salud en México — con el contexto cultural y regulatorio 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, { SlHero, SlContentPanel, SlProblema, SlSoluciones });
