/* ============================================================
   Төрмен — Home screen
   ============================================================ */
const { useState:useStateH } = React;

function Hero({ go, openChat }){
  const { t } = useLang();
  return (
    <section className="relative px-5 pt-28 md:pt-36 pb-10 md:pb-20 max-w-7xl mx-auto">
      <div className="grid lg:grid-cols-[1.05fr_0.95fr] gap-10 lg:gap-12 items-center">
        <div>
          <Reveal><div className="eyebrow mb-5">{t('hero_eyebrow')}</div></Reveal>
          <Reveal delay={60}>
            <h1 className="display text-[40px] sm:text-[54px] lg:text-[62px] mb-6">
              <span style={{ color:'var(--ink)' }}>{t('hero_title_1')}</span><br/>
              <span className="grad-text">{t('hero_title_2')}</span>
            </h1>
          </Reveal>
          <Reveal delay={120}>
            <p className="text-[16px] md:text-[17px] leading-relaxed max-w-xl mb-8" style={{ color:'var(--ink-2)', fontWeight:300 }}>{t('hero_sub')}</p>
          </Reveal>
          <Reveal delay={180}>
            <div className="flex flex-wrap gap-3 mb-10">
              <button className="btn btn-primary" onClick={()=>go('catalog')}><span className="shine"></span>{t('hero_cta')}<Icon name="arrow-right" size={17} /></button>
              <button className="btn btn-ghost" onClick={openChat}><Icon name="sparkles" size={17} style={{ color:'var(--gold)' }} />{t('hero_cta2')}</button>
            </div>
          </Reveal>
          <Reveal delay={240}>
            <div className="flex gap-7 md:gap-10">
              <Stat n="24" l={t('stat_sets')} />
              <span className="w-px self-stretch" style={{ background:'var(--border)' }}></span>
              <Stat n="9 400+" l={t('stat_families')} />
              <span className="w-px self-stretch" style={{ background:'var(--border)' }}></span>
              <StoreRatingStat />
            </div>
          </Reveal>
        </div>

        {/* hero imagery collage */}
        <Reveal delay={120}>
          <div className="relative">
            <Ph type="cut" imgKey="hero" seed="hero-main" className="aspect-[4/5] w-full floaty" label={t('sec_picks_t')} />
            <div className="absolute -bottom-5 -left-4 w-40 md:w-48 rotate-[-4deg]">
              <Ph type="grill" imgKey="hero-grill" seed="hero-grill" className="aspect-square shadow-2xl" rounded="20px" />
            </div>
            <div className="glass glass-strong absolute -top-4 -right-3 md:-right-6 p-3 pr-4 flex items-center gap-3 pop" style={{ borderRadius:18 }}>
              <span className="grid place-items-center rounded-full" style={{ width:38, height:38, background:'var(--surface-2)' }}><Icon name="truck" size={18} style={{ color:'var(--gold)' }} /></span>
              <div>
                <div className="text-xs font-semibold">{t('how_3')}</div>
                <div className="text-[11px]" style={{ color:'var(--ink-3)' }}>{t('how_3d')}</div>
              </div>
            </div>
          </div>
        </Reveal>
      </div>
    </section>
  );
}
function Stat({ n, l, star }){
  return (
    <div>
      <div className="serif text-2xl md:text-3xl font-semibold flex items-center gap-1.5" style={{ color:'var(--ink)' }}>
        {n}{star && <Icon name="star" size={18} style={{ fill:'var(--gold)', color:'transparent' }} />}
      </div>
      <div className="text-xs mt-1" style={{ color:'var(--ink-3)' }}>{l}</div>
    </div>
  );
}

/* trust marquee */
function TrustStrip(){
  const { lang } = useLang();
  const items = lang==='kz'
    ? ['Салқындатылған, мұздатылмаған','Жеткізу күні бөлшектейміз','Салқын жеткізу','Вакуум қаптама','Үй қазысы мен жаясы','Әр жинақта рецепт']
    : ['Охлаждённое, не заморозка','Режем в день доставки','Охлаждённая доставка','Вакуумная упаковка','Домашние қазы и жая','Рецепты в каждом наборе'];
  const row = [...items, ...items];
  return (
    <div className="relative overflow-hidden py-4 my-2" style={{ borderTop:'1px solid var(--border-soft)', borderBottom:'1px solid var(--border-soft)' }}>
      <div className="flex gap-10 whitespace-nowrap" style={{ animation:'marquee 36s linear infinite', width:'max-content' }}>
        {row.map((x,i)=>(
          <span key={i} className="inline-flex items-center gap-2.5 text-sm" style={{ color:'var(--ink-2)' }}>
            <Icon name="flame" size={15} style={{ color:'var(--ember)' }} />{x}
          </span>
        ))}
      </div>
    </div>
  );
}

function HowItWorks(){
  const { t } = useLang();
  const steps=[['list-checks','how_1','how_1d'],['package','how_2','how_2d'],['truck','how_3','how_3d'],['utensils-crossed','how_4','how_4d']];
  const Node = ({ ic })=>(
    <span className="hiw-node relative z-10 grid place-items-center rounded-full shrink-0"
      style={{ width:48, height:48, background:'linear-gradient(var(--surface-2),var(--surface-2)), var(--surface-solid)', border:'1px solid var(--border)' }}>
      <Icon name={ic} size={21} style={{ color:'var(--gold)' }} />
    </span>
  );
  return (
    <section className="px-5 py-14 md:py-20 max-w-7xl mx-auto">
      <style>{`
        .hiw-node{transition:box-shadow .35s ease,border-color .35s ease}
        .hiw-step:hover .hiw-node{box-shadow:0 0 24px var(--glow-ember);border-color:color-mix(in srgb,var(--gold) 35%,var(--border))}
      `}</style>
      <Reveal><SectionHeader eyebrow={t('sec_how')} title={t('sec_how_t')} /></Reveal>

      {/* desktop — horizontal process rail: gradient line through 4 nodes */}
      <div className="relative hidden lg:block">
        <div aria-hidden="true" className="absolute left-0 right-0" style={{ top:55.5, height:1, opacity:.55,
          background:'linear-gradient(90deg, transparent, var(--gold) 14%, var(--ember) 86%, transparent)' }}></div>
        <div className="grid grid-cols-4 gap-8">
          {steps.map(([ic,tt,dd],i)=>(
            <Reveal key={tt} delay={i*90}>
              <div className="hiw-step relative pt-8">
                <span aria-hidden="true" className="display select-none pointer-events-none absolute"
                  style={{ top:0, left:30, fontSize:60, lineHeight:1, color:'var(--ink-4)' }}>0{i+1}</span>
                <Node ic={ic} />
                <div className="font-semibold text-lg mt-5 mb-1.5">{t(tt)}</div>
                <p className="text-sm leading-relaxed" style={{ color:'var(--ink-2)' }}>{t(dd)}</p>
              </div>
            </Reveal>
          ))}
        </div>
      </div>

      {/* mobile — vertical timeline: nodes on the left, content to the right */}
      <div className="relative lg:hidden">
        <div aria-hidden="true" className="absolute" style={{ left:23.5, top:24, bottom:24, width:1, opacity:.55,
          background:'linear-gradient(180deg, var(--gold), var(--ember) 70%, transparent)' }}></div>
        <div className="flex flex-col gap-8">
          {steps.map(([ic,tt,dd],i)=>(
            <Reveal key={tt} delay={i*70}>
              <div className="hiw-step relative flex items-start gap-5">
                <Node ic={ic} />
                <div className="min-w-0 pt-0.5">
                  <div className="font-semibold text-[17px] mb-1">{t(tt)}</div>
                  <p className="text-sm leading-relaxed" style={{ color:'var(--ink-2)' }}>{t(dd)}</p>
                </div>
                <span aria-hidden="true" className="display select-none pointer-events-none ml-auto shrink-0"
                  style={{ fontSize:40, lineHeight:1, color:'var(--ink-4)' }}>0{i+1}</span>
              </div>
            </Reveal>
          ))}
        </div>
      </div>
    </section>
  );
}

function AboutStrip({ go }){
  const { t, lang } = useLang();
  return (
    <section className="px-5 py-14 md:py-20 max-w-7xl mx-auto">
      <div className="glass glass-halo overflow-hidden grid lg:grid-cols-2">
        <Ph type="farm" imgKey="farm" seed="about-strip" className="min-h-[260px] lg:min-h-full" rounded="0" />
        <div className="p-8 md:p-12">
          <div className="eyebrow mb-4">{t('sec_about')}</div>
          <h2 className="serif-title text-3xl md:text-4xl mb-5">{lang==='kz'?'Дала. Отбасы. Дастархан.':'Степь. Семья. Дастархан.'}</h2>
          <p className="leading-relaxed mb-4" style={{ color:'var(--ink-2)' }}>
            {lang==='kz'
              ? 'Етіміз — өз шаруашылығымыздан және сенімді фермерлерден. Малды табиғи жайылымда бағамыз, етті дәстүрлі түрде бөлшектеп, әр жинақты қолмен жинаймыз.'
              : 'Наше мясо — со своего хозяйства и от проверенных фермеров. Скот пасётся на естественных пастбищах, мясо разделываем по традиции и собираем каждый набор вручную.'}
          </p>
          <p className="leading-relaxed mb-7" style={{ color:'var(--ink-2)' }}>
            {lang==='kz'
              ? 'Біз стейк сатпаймыз — біз дастарханды сатамыз: бешбармаққа, қазанға, мерекеге дайын ойластырылған жинақтар.'
              : 'Мы не продаём стейки — мы собираем стол: продуманные наборы для бешбармака, казана и большого праздника.'}
          </p>
          <button className="btn btn-ghost" onClick={()=>go('about')}>{t('details')}<Icon name="arrow-right" size={16} /></button>
        </div>
      </div>
    </section>
  );
}

function HomeScreen({ go, openChat }){
  const { t, tx, lang } = useLang();
  const { sets } = useCatalog();
  const L = (ru,kz)=> lang==='kz'?kz:ru;
  const popular = sets.filter(s=>s.best).concat(sets.filter(s=>!s.best)).slice(0,3);
  const featVideo = VIDEOS.find(v=>v.feat);
  const prods = window.PRODUCTS || [];
  const bestProds = prods.filter(p=>p.best);
  const shopPicks = (bestProds.length ? bestProds : prods).slice(0,4);
  return (
    <div>
      <Hero go={go} openChat={openChat} />
      <TrustStrip />

      {/* popular sets */}
      <section className="px-5 py-14 md:py-20 max-w-7xl mx-auto">
        <Reveal><SectionHeader eyebrow={t('sec_picks')} title={t('sec_picks_t')}
          action={<button className="btn btn-ghost hidden md:inline-flex" onClick={()=>go('catalog')}>{t('view_all')}<Icon name="arrow-right" size={16} /></button>} /></Reveal>
        <div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-5">
          {popular.map((s,i)=> <Reveal key={s.id} delay={i*80}><SetCard set={s} go={go} /></Reveal>)}
        </div>
        <div className="mt-7 md:hidden"><button className="btn btn-ghost w-full" onClick={()=>go('catalog')}>{t('view_all')}<Icon name="arrow-right" size={16} /></button></div>
      </section>

      {/* meat shop teaser */}
      {window.PRODUCTS && window.PRODUCT_CATS && shopPicks.length > 0 && (
        <section className="px-5 py-14 md:py-20 max-w-7xl mx-auto">
          <Reveal><SectionHeader eyebrow={L('МЯСНАЯ ЛАВКА','ЕТ ДҮКЕНІ')} title={L('Мясо и деликатесы','Ет және деликатестер')}
            action={<button className="btn btn-ghost hidden md:inline-flex" onClick={()=>go('catalog')}>{L('В каталог','Каталогқа')}<Icon name="arrow-right" size={16} /></button>} /></Reveal>
          <div className="grid grid-cols-2 lg:grid-cols-4 gap-4">
            {shopPicks.map((p,i)=>(
              <Reveal key={p.id} delay={i*70}>
                <div className="glass lift card-lift overflow-hidden cursor-pointer h-full" role="button" tabIndex={0}
                  onClick={()=>go('catalog')}
                  onKeyDown={(e)=>{ if(e.key==='Enter'||e.key===' '){ e.preventDefault(); go('catalog'); } }}>
                  <Ph type={p.ph} imgKey={p.id} className="aspect-square" rounded="0" />
                  <div className="p-3.5 md:p-4">
                    <div className="font-semibold text-sm leading-snug mb-1">{tx(p.name)}</div>
                    <div className="text-sm tnum">
                      <span style={{ color:'var(--gold)' }}>{fmtPrice(p.ppu)}</span>
                      <span style={{ color:'var(--ink-3)' }}>/{L('кг','кг')}</span>
                    </div>
                  </div>
                </div>
              </Reveal>
            ))}
          </div>
          <div className="mt-7 md:hidden"><button className="btn btn-ghost w-full" onClick={()=>go('catalog')}>{L('В каталог','Каталогқа')}<Icon name="arrow-right" size={16} /></button></div>
        </section>
      )}

      <HowItWorks />

      <StoreReviews />

      {/* broths teaser */}
      <section className="px-5 py-14 md:py-20 max-w-7xl mx-auto">
        <Reveal><SectionHeader eyebrow={t('sec_broths')} title={t('sec_broths_t')}
          action={<button className="btn btn-ghost hidden md:inline-flex" onClick={()=>go('broths')}>{t('view_all')}<Icon name="arrow-right" size={16} /></button>} /></Reveal>
        <div className="grid sm:grid-cols-2 lg:grid-cols-4 gap-4">
          {BROTHS.map((b,i)=> <Reveal key={b.id} delay={i*70}><BrothCard broth={b} /></Reveal>)}
        </div>
      </section>

      {/* video blog teaser */}
      <section className="px-5 py-14 md:py-20 max-w-7xl mx-auto">
        <Reveal><SectionHeader eyebrow={t('sec_blog')} title={t('sec_blog_t')}
          action={<button className="btn btn-ghost hidden md:inline-flex" onClick={()=>go('blog')}>{t('view_all')}<Icon name="arrow-right" size={16} /></button>} /></Reveal>
        <div className="grid lg:grid-cols-[1.4fr_1fr] gap-5">
          <Reveal><VideoCard video={featVideo} big /></Reveal>
          <div className="grid gap-4">
            {VIDEOS.filter(v=>!v.feat).slice(0,2).map((v,i)=> <Reveal key={v.id} delay={i*80}><VideoCard video={v} horizontal /></Reveal>)}
          </div>
        </div>
      </section>

      <AboutStrip go={go} />
      <Footer go={go} openChat={openChat} />
    </div>
  );
}

function Footer({ go, openChat }){
  const { t } = useLang();
  const links=[['nav_catalog','catalog'],['nav_broths','broths'],['nav_blog','blog'],['nav_about','about'],['nav_profile','profile']];
  return (
    <footer className="px-5 pt-16 pb-32 md:pb-16 mt-6" style={{ borderTop:'1px solid var(--border-soft)' }}>
      <div className="max-w-7xl mx-auto grid md:grid-cols-[1.4fr_1fr_1fr] gap-10">
        <div>
          <Logo size={24} emblemAlways />
          <p className="mt-4 max-w-xs text-sm" style={{ color:'var(--ink-2)' }}>{t('foot_tag')}. {t('serves_note')}.</p>
          <button className="btn btn-ghost mt-5" onClick={()=> window.openTelegram ? window.openTelegram() : openChat()} style={{ background:'#229ed9', color:'#fff', border:0 }}>
            <Icon name="send" size={16} />{t('write_tg')}
          </button>
        </div>
        <div>
          <div className="eyebrow mb-4">{t('nav_home')}</div>
          <div className="flex flex-col gap-2.5">
            {links.map(([k,r])=> <button key={r} onClick={()=>go(r)} className="text-sm text-left" style={{ color:'var(--ink-2)' }}>{t(k)}</button>)}
          </div>
        </div>
        <div>
          <div className="eyebrow mb-4">Контакты</div>
          <div className="flex flex-col gap-2.5 text-sm" style={{ color:'var(--ink-2)' }}>
            <span className="inline-flex items-center gap-2"><Icon name="map-pin" size={15} style={{ color:'var(--gold)' }} />Алматы, мкр. Самал-2</span>
            <span className="inline-flex items-center gap-2"><Icon name="phone" size={15} style={{ color:'var(--gold)' }} />{window.TORMEN_ENV?.app?.phone || '+7 700 700 70 70'}</span>
            <button type="button" onClick={()=>window.openTelegram?.()} className="inline-flex items-center gap-2 text-left" style={{ color:'var(--ink-2)', background:'none', border:0, cursor:'pointer', padding:0 }}>
              <Icon name="send" size={15} style={{ color:'var(--gold)' }} />{window.tgMention ? window.tgMention() : '@tormen_bot'}
            </button>
            <span className="inline-flex items-center gap-2"><Icon name="clock" size={15} style={{ color:'var(--gold)' }} />{window.TORMEN_ENV?.app?.workingHours || '09:00 — 21:00'}</span>
          </div>
        </div>
      </div>
      <div className="max-w-7xl mx-auto mt-12 pt-6 text-xs flex flex-col sm:flex-row justify-between gap-2" style={{ borderTop:'1px solid var(--border-soft)', color:'var(--ink-3)' }}>
        <span>{t('foot_made')}</span>
        <span>© 2026 Төрмен</span>
      </div>
    </footer>
  );
}

Object.assign(window, { HomeScreen, Footer });
