// Home page — vibrant, compact, gets to products fast.
// Flow: Hero (full-bleed image + welcome) → Category strip (above fold) →
//       Featured products → Lookbook → Story → Testimonials → Instagram

const { useI18n, fmtPrice, fmtNum } = window.RBI18n;
const { Reveal, useParallax, useCountUp, Marquee } = window.RBAnim;
const { ProductImg, CategoryImg, HeroImg, Swatch } = window.RBImg;
const { IconArrowR, IconArrowL, IconStar, IconHeart, IconBag, IconSparkle,
        IconTruck, IconReturn, IconShield, IconGift, IconInsta, IconChevR, IconChevL } = window.RBIcons;

/* ====================================================================== */
/* Product card                                                           */
/* ====================================================================== */
const BADGE_KEY = { new:'new_badge', sale:'sale_badge', limited:'limited', exclusive:'exclusive', best:'best' };
const ProductCard = ({ p }) => {
  const { lang, t } = useI18n();
  const name = p[lang];
  const badge = p.badge ? t(`shop.${BADGE_KEY[p.badge] || p.badge}`) : null;
  return (
    <a href="#" onClick={(e) => { e.preventDefault(); window.RBNav.go('product', { id: p.id }); }}
       className="pcard group block">
      <div className="relative ar-portrait overflow-hidden bg-paper-warm">
        <ProductImg p={p} variant="a" className="absolute inset-0 w-full h-full"/>
        <div className="absolute inset-0 pimg-b">
          <ProductImg p={p} variant="b" className="w-full h-full"/>
        </div>

        <div className="absolute top-3 start-3 flex flex-col gap-1.5 items-start z-10">
          {badge && (
            <span className={`text-[10px] tracking-[0.25em] uppercase px-2.5 py-1
                              ${p.badge==='sale' ? 'bg-rose-500 text-white' :
                                p.badge==='new'  ? 'bg-ink text-paper' :
                                'bg-paper text-ink border hairline'}`}>
              {badge}
            </span>
          )}
          {p.old && p.badge !== 'sale' && (
            <span className="text-[10px] bg-paper border hairline px-2 py-0.5">
              −{Math.round((1 - p.price / p.old) * 100)}٪
            </span>
          )}
        </div>

        {/* Wishlist — always visible (mobile + desktop) */}
        <button onClick={(e) => { e.preventDefault(); e.stopPropagation(); }} aria-label="wishlist"
                className="absolute top-3 end-3 z-10 p-2 bg-paper/95 backdrop-blur-sm rounded-full
                           hover:bg-rose-500 hover:text-white transition-colors shadow-sm">
          <IconHeart size={14}/>
        </button>

        {/* Quick add — visible on mobile, hover-slide on desktop */}
        <div className="absolute bottom-0 inset-x-0 z-10 md:quick">
          <button onClick={(e) => { e.preventDefault(); window.RBCart.add(p); }}
                  className="w-full bg-ink/95 backdrop-blur text-paper text-[10px] md:text-[11px] tracking-[0.25em] md:tracking-[0.3em] uppercase py-2.5 md:py-3.5 hover:bg-rose-500 transition-colors flex items-center justify-center gap-2">
            <IconBag size={12}/> {t('shop.add')}
          </button>
        </div>
      </div>

      <div className="pt-3 px-0.5">
        <h3 className="text-[12px] md:text-sm text-ink leading-snug ff-body font-medium line-clamp-1">{name}</h3>
        <div className="mt-1 flex items-center gap-2">
          <span className="text-ink text-sm ltr-nums">{fmtPrice(p.price, lang)}</span>
          {p.old && <span className="text-ink-mute line-through text-xs ltr-nums">{fmtPrice(p.old, lang)}</span>}
        </div>
        <div className="mt-1.5 flex items-center gap-1">
          <Swatch hex="#f79ab5" size={8}/>
          <Swatch hex="#efe4d3" size={8}/>
          <Swatch hex="#161214" size={8}/>
          <span className="text-[10px] text-ink-mute ms-1 ltr-nums">+{fmtNum(2, lang)}</span>
        </div>
      </div>
    </a>
  );
};

/* ====================================================================== */
/* HERO — full-bleed welcome                                              */
/* ====================================================================== */
const Hero = () => {
  const { t, lang } = useI18n();
  const [idx, setIdx] = React.useState(0);
  const imgs = window.RB.HERO_IMGS;

  // auto-advance
  React.useEffect(() => {
    const id = setInterval(() => setIdx(i => (i + 1) % imgs.length), 6500);
    return () => clearInterval(id);
  }, [imgs.length]);

  return (
    <section className="relative h-[72vh] min-h-[480px] md:h-[82vh] md:min-h-[600px] overflow-hidden bg-paper-warm">
      {/* image carousel */}
      {imgs.map((src, i) => (
        <div key={i} className={`absolute inset-0 transition-opacity duration-[1400ms]
                                 ${i === idx ? 'opacity-100' : 'opacity-0'}`}>
          <HeroImg src={src} className="w-full h-full"/>
        </div>
      ))}

      {/* dark overlay */}
      <div className="absolute inset-0 bg-gradient-to-tr from-ink/55 via-ink/25 to-ink/10"/>

      {/* content */}
      <div className="relative h-full max-w-[1480px] mx-auto px-6 md:px-12 flex items-center">
        <div className="max-w-2xl text-paper">
          <Reveal>
            <p className="text-[11px] md:text-xs tracking-[0.5em] uppercase text-rose-200 mb-5">{t('hero.eyebrow')}</p>
          </Reveal>
          <Reveal delay={120}>
            <p dir={lang==='ar'?'rtl':'ltr'} className="ff-script text-5xl md:text-7xl text-rose-200 mb-2 leading-none">
              {lang === 'ar' ? 'أهلاً بكِ' : 'Welcome'}
            </p>
          </Reveal>
          <Reveal delay={200}>
            <h1 className="ff-serif text-6xl md:text-[120px] leading-[0.95] mb-5 md:mb-7">
              {t('hero.h1_a')} <em className="ff-script text-rose-300 italic text-7xl md:text-[140px]">{t('hero.h1_em')}</em>
            </h1>
          </Reveal>
          <Reveal delay={300}>
            <p className="text-base md:text-lg leading-relaxed max-w-lg mb-9 md:mb-11 text-paper/90">{t('hero.sub')}</p>
          </Reveal>
          <Reveal delay={400}>
            <div className="flex flex-wrap gap-3">
              <button onClick={() => window.RBNav.go('shop')}
                      className="bg-rose-500 text-white px-10 py-4 text-[11px] tracking-[0.35em] uppercase hover:bg-rose-600 transition-all duration-500 inline-flex items-center gap-3 group shadow-xl shadow-rose-500/30">
                {t('hero.cta1')}
                <span className="inline-block transition-transform duration-500 group-hover:translate-x-1 rtl:group-hover:-translate-x-1">→</span>
              </button>
              <button onClick={() => window.RBNav.go('lookbook')}
                      className="border border-paper/80 text-paper px-9 py-4 text-[11px] tracking-[0.35em] uppercase hover:bg-paper hover:text-ink transition-colors duration-500 backdrop-blur-sm">
                {t('hero.cta2')}
              </button>
            </div>
          </Reveal>
        </div>
      </div>

      {/* indicators */}
      <div className="absolute bottom-6 inset-x-0 flex items-center justify-center gap-3 z-10">
        {imgs.map((_, i) => (
          <button key={i} onClick={() => setIdx(i)} aria-label={`Slide ${i+1}`}
                  className="group p-1">
            <span className={`block h-[2px] transition-all duration-700
                              ${i === idx ? 'w-12 bg-paper' : 'w-6 bg-paper/40'}`}/>
          </button>
        ))}
      </div>

      {/* arrows */}
      <button onClick={() => setIdx((idx - 1 + imgs.length) % imgs.length)}
              className="hidden md:flex absolute start-5 top-1/2 -translate-y-1/2 z-10 w-12 h-12 items-center justify-center text-paper hover:bg-paper/10 backdrop-blur-sm transition rounded-full border border-paper/30">
        <IconChevL size={20}/>
      </button>
      <button onClick={() => setIdx((idx + 1) % imgs.length)}
              className="hidden md:flex absolute end-5 top-1/2 -translate-y-1/2 z-10 w-12 h-12 items-center justify-center text-paper hover:bg-paper/10 backdrop-blur-sm transition rounded-full border border-paper/30">
        <IconChevR size={20}/>
      </button>
    </section>
  );
};

/* ====================================================================== */
/* CATEGORY STRIP — circle thumbs, visible right after hero               */
/* ====================================================================== */
const CategoryStrip = () => {
  const { t, lang } = useI18n();
  return (
    <section className="bg-paper py-8 md:py-12 border-b hairline">
      <div className="max-w-[1480px] mx-auto px-3 md:px-10">
        <Reveal className="text-center mb-6 md:mb-8">
          <p className="ornament text-[10px] tracking-[0.4em] uppercase mb-2">{t('sec.cats_eye').replace(/—/g,'').trim()}</p>
          <h2 className="ff-serif text-3xl md:text-5xl text-ink">{t('sec.cats_h')}</h2>
        </Reveal>
        <div className="overflow-x-auto no-scrollbar -mx-3 px-3 md:mx-0 md:px-0">
          <div className="flex md:grid md:grid-cols-10 gap-3 md:gap-5 min-w-min">
            {window.RB.CATEGORIES.map((c, i) => (
              <Reveal key={c.id} delay={i*40} className="shrink-0 w-[88px] md:w-auto">
                <a href="#" onClick={(e) => { e.preventDefault(); window.RBNav.go('shop', { cat: c.id }); }}
                   className="group block text-center">
                  <div className="relative ar-square overflow-hidden rounded-full mb-3 ring-1 ring-ink/10 group-hover:ring-rose-400 group-hover:ring-2 transition-all">
                    <CategoryImg c={c} className="absolute inset-0 w-full h-full"/>
                  </div>
                  <span className="block text-[11px] md:text-xs text-ink-soft group-hover:text-rose-500 transition leading-tight">{c[lang]}</span>
                </a>
              </Reveal>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
};

/* ====================================================================== */
/* USP strip — slim                                                       */
/* ====================================================================== */
const USPs = () => {
  const { lang } = useI18n();
  const items = [
    { i:IconTruck,  ar:['شحن سريع','مجاني فوق ٢٥٠ ₪'],     en:['Fast shipping','Free over 250 ₪'] },
    { i:IconReturn, ar:['استبدال مجاني','خلال ١٤ يوم'],    en:['Free returns','Within 14 days'] },
    { i:IconShield, ar:['الدفع عند الاستلام','آمن ومضمون'], en:['Cash on delivery','Safe & secure'] },
    { i:IconGift,   ar:['تغليف هدية','مجاناً مع كل طلب'],  en:['Gift wrap','Free with every order'] }
  ];
  return (
    <div className="bg-paper-warm/50 border-b hairline">
      <div className="max-w-[1480px] mx-auto px-6 md:px-10 grid grid-cols-2 md:grid-cols-4 gap-y-5 py-6">
        {items.map((f, i) => (
          <Reveal key={i} delay={i*70} className="flex items-center gap-3.5 justify-center md:justify-start md:px-4">
            <f.i size={24} className="text-rose-500 shrink-0" strokeWidth={1.2}/>
            <div>
              <p className="text-sm font-medium text-ink leading-tight">{lang==='ar'?f.ar[0]:f.en[0]}</p>
              <p className="text-[11px] text-ink-mute">{lang==='ar'?f.ar[1]:f.en[1]}</p>
            </div>
          </Reveal>
        ))}
      </div>
    </div>
  );
};

/* ====================================================================== */
/* FEATURED — products grid + tabs                                        */
/* ====================================================================== */
const Featured = () => {
  const { t } = useI18n();
  const [tab, setTab] = React.useState('all');
  const tabs = [
    { id:'all',  l: t('sec.feat_all') },
    { id:'new',  l: t('sec.feat_new') },
    { id:'best', l: t('sec.feat_best') },
    { id:'sale', l: t('sec.feat_sale') }
  ];
  let list = window.RB.PRODUCTS;
  if (tab === 'new')  list = list.filter(p => p.badge === 'new');
  if (tab === 'best') list = list.filter(p => p.badge === 'best' || p.badge === 'exclusive');
  if (tab === 'sale') list = list.filter(p => p.badge === 'sale' || p.old);
  list = list.slice(0, 8);

  return (
    <section className="bg-paper py-14 md:py-20">
      <div className="max-w-[1480px] mx-auto px-5 md:px-10">
        <div className="flex flex-col md:flex-row md:items-end md:justify-between mb-8 md:mb-10 gap-4">
          <Reveal>
            <p className="ornament text-[10px] tracking-[0.45em] uppercase mb-2">{t('sec.feat_eye').replace(/—/g,'').trim()}</p>
            <h2 className="ff-serif text-3xl md:text-5xl text-ink leading-[1.0]">{t('sec.feat_h')}</h2>
          </Reveal>
          <Reveal delay={150} className="flex flex-wrap gap-1 border-b hairline">
            {tabs.map(tt => (
              <button key={tt.id} onClick={() => setTab(tt.id)}
                      className={`px-4 py-2.5 text-[12px] tracking-[0.2em] uppercase transition border-b-2 -mb-px
                                  ${tab === tt.id ? 'border-rose-500 text-rose-500' : 'border-transparent text-ink-mute hover:text-ink'}`}>
                {tt.l}
              </button>
            ))}
          </Reveal>
        </div>

        <div className="grid grid-cols-2 md:grid-cols-4 gap-x-3 gap-y-8 md:gap-x-5 md:gap-y-12">
          {list.map((p, i) => (
            <Reveal key={p.id} delay={(i%4)*60}>
              <ProductCard p={p}/>
            </Reveal>
          ))}
        </div>

        <Reveal className="text-center mt-10 md:mt-12">
          <button onClick={() => window.RBNav.go('shop')}
                  className="border border-ink text-ink px-10 py-3.5 text-[11px] tracking-[0.35em] uppercase hover:bg-ink hover:text-paper transition-colors duration-500">
            {t('nav.view_all')}
          </button>
        </Reveal>
      </div>
    </section>
  );
};

/* ====================================================================== */
/* EDITORIAL CATEGORY GRID — full visual mosaic                           */
/* ====================================================================== */
const CategoryMosaic = () => {
  const { t, lang } = useI18n();
  const cats = window.RB.CATEGORIES;
  return (
    <section className="bg-paper-warm/50 py-14 md:py-20">
      <div className="max-w-[1480px] mx-auto px-5 md:px-10">
        <Reveal className="text-center mb-9">
          <p className="ornament text-[10px] tracking-[0.45em] uppercase mb-2">{lang==='ar'?'استكشفي المجموعات':'Explore collections'}</p>
          <h2 className="ff-serif text-3xl md:text-5xl text-ink leading-[1.0]">{lang==='ar'?'لكل إطلالة قطعتها':'A piece for every moment'}</h2>
        </Reveal>

        {/* Row 1: big + 2 */}
        <div className="grid grid-cols-2 md:grid-cols-4 gap-3 md:gap-4 mb-3 md:mb-4">
          <CategoryCard c={cats[0]} className="col-span-2 md:col-span-2 md:row-span-2 aspect-[3/2] md:aspect-auto md:h-full" big/>
          <CategoryCard c={cats[1]} delay={100}/>
          <CategoryCard c={cats[2]} delay={200}/>
          <CategoryCard c={cats[3]} delay={300}/>
          <CategoryCard c={cats[4]} delay={400}/>
        </div>
        {/* Row 2: 5 columns */}
        <div className="grid grid-cols-2 md:grid-cols-5 gap-3 md:gap-4">
          {cats.slice(5).map((c, i) => (
            <CategoryCard key={c.id} c={c} delay={i*80}/>
          ))}
        </div>
      </div>
    </section>
  );
};

const CategoryCard = ({ c, className = '', big = false, delay = 0 }) => {
  const { lang } = useI18n();
  return (
    <Reveal delay={delay} className={`group block ${className}`}>
      <a href="#" onClick={(e) => { e.preventDefault(); window.RBNav.go('shop', { cat: c.id }); }}
         className={`relative block ar-portrait ${big ? 'md:h-full md:aspect-auto' : ''} overflow-hidden`}>
        <CategoryImg c={c} className="absolute inset-0 w-full h-full"/>
        <div className="absolute inset-0 bg-gradient-to-t from-ink/70 via-ink/15 to-transparent"/>
        <div className="absolute bottom-0 inset-x-0 p-4 md:p-6 text-paper">
          <p className={`text-[10px] tracking-[0.4em] uppercase mb-1.5 opacity-85 ltr-nums`}>{c.tag} · {c.count}</p>
          <h3 className={`ff-serif ${big ? 'text-4xl md:text-6xl' : 'text-2xl md:text-3xl'} leading-tight`}>{c[lang]}</h3>
          <span className="inline-block text-[10px] tracking-[0.3em] uppercase pb-0.5 mt-2 border-b border-paper/70 group-hover:border-rose-300 group-hover:text-rose-300 transition">
            {lang === 'ar' ? 'تسوّقي →' : 'Shop →'}
          </span>
        </div>
      </a>
    </Reveal>
  );
};

/* ====================================================================== */
/* OUR STORY — narrative section                                          */
/* ====================================================================== */
const OurStory = () => {
  const { t, lang } = useI18n();
  const chapters = lang === 'ar' ? [
    {
      eye: 'الفصل الأول',
      h: 'البداية',
      p: 'وُلد RARE من شغفنا بالأناقة الخالدة. بدأنا بفكرة بسيطة: أن نختار لكِ قطعاً نادرة لا تجدينها في كل مكان — قطع تحمل قصة، وحياكة دقيقة، وخامة تستحق.'
    },
    {
      eye: 'الفصل الثاني',
      h: 'الاختيار',
      p: 'نسافر بين أسواق إسطنبول ودبي والقاهرة لنختار بأنفسنا. لا نعتمد على الصور وحدها — نلمس الخامة، نفحص التفاصيل، ونعود فقط بما يستحق أن يحمل اسم RARE.'
    },
    {
      eye: 'الفصل الثالث',
      h: 'إليكِ',
      p: 'كل طلب يصلكِ هو نتيجة هذا الاهتمام — مغلّفاً بأناقة، جاهزاً ليكون جزءاً من إطلالتكِ المميزة. لأن كل امرأة تستحق أن تشعر بأنها استثنائية.'
    }
  ] : [
    {
      eye: 'Chapter One',
      h: 'The Beginning',
      p: 'RARE was born from a passion for timeless elegance. We started with a simple idea: to curate rare pieces you won\'t find everywhere — pieces with a story, fine tailoring, and fabric worthy of you.'
    },
    {
      eye: 'Chapter Two',
      h: 'The Curation',
      p: 'We travel between the markets of Istanbul, Dubai, and Cairo to choose ourselves. We don\'t rely on photos alone — we feel the fabric, examine the details, and only return with what deserves to carry the RARE name.'
    },
    {
      eye: 'Chapter Three',
      h: 'For You',
      p: 'Every order is the result of this care — wrapped elegantly, ready to become part of your signature look. Because every woman deserves to feel exceptional.'
    }
  ];

  const heroImg = window.RB.HERO_IMGS[0];

  return (
    <section id="story" className="bg-paper py-16 md:py-24">
      <div className="max-w-[1480px] mx-auto px-5 md:px-10">
        <Reveal className="text-center mb-10 md:mb-14">
          <p className="ornament text-[10px] tracking-[0.45em] uppercase mb-2">{t('sec.look_eye').replace(/—/g,'').trim()}</p>
          <h2 className="ff-serif text-3xl md:text-5xl text-ink leading-[1.05]">{t('sec.look_h')}</h2>
          <p className="text-ink-soft mt-3 text-sm max-w-md mx-auto">{t('sec.look_sub')}</p>
        </Reveal>

        <div className="grid md:grid-cols-2 gap-8 md:gap-14 items-center">
          {/* Big image */}
          <Reveal variant="zoom" className="relative h-[400px] md:h-[600px] overflow-hidden order-1">
            <img src={heroImg} alt="" loading="lazy" className="absolute inset-0 w-full h-full object-cover img-scale"/>
            <div className="absolute inset-0 bg-gradient-to-tr from-ink/30 via-transparent to-transparent"/>
            <div className="absolute bottom-6 start-6 end-6 text-paper">
              <p className="ff-script text-5xl md:text-7xl text-rose-200 leading-none">Rare</p>
              <p className="ff-italianno text-lg md:text-2xl text-paper/90 italic ms-12 md:ms-16 -mt-2">boutique</p>
            </div>
          </Reveal>

          {/* Chapters */}
          <div className="order-2 space-y-7 md:space-y-9">
            {chapters.map((c, i) => (
              <Reveal key={i} delay={i*150} className="relative ps-6 md:ps-8 border-s-2 border-rose-200">
                <div className="absolute -start-[6px] top-1.5 w-2.5 h-2.5 rounded-full bg-rose-400"/>
                <p className="text-[10px] tracking-[0.4em] uppercase text-rose-500 mb-1">{c.eye}</p>
                <h3 className="ff-serif text-2xl md:text-3xl text-ink mb-2">{c.h}</h3>
                <p className="text-ink-soft text-sm leading-relaxed">{c.p}</p>
              </Reveal>
            ))}
            <Reveal delay={500}>
              <button onClick={() => window.RBNav.go('about')}
                      className="text-[11px] tracking-[0.3em] uppercase text-rose-500 hover:text-ink underline-grow inline-block ps-8">
                {lang === 'ar' ? 'اقرأي القصة كاملة' : 'Read full story'} →
              </button>
            </Reveal>
          </div>
        </div>
      </div>
    </section>
  );
};

/* ====================================================================== */
/* BRAND STORY                                                            */
/* ====================================================================== */
const Counter = ({ end }) => {
  const { lang } = useI18n();
  const [ref, v] = useCountUp(end);
  return <span ref={ref} className="ltr-nums">{fmtNum(v, lang)}</span>;
};

const BrandStory = () => {
  const { t, lang } = useI18n();
  return (
    <section className="bg-ink text-paper py-16 md:py-24 relative overflow-hidden">
      {/* decorative script */}
      <div aria-hidden="true" className="absolute -top-8 -end-8 ff-script text-[200px] md:text-[260px] text-rose-500/10 leading-none select-none">Rare</div>
      <div className="max-w-[1100px] mx-auto px-6 md:px-10 text-center relative">
        <Reveal>
          <p className="ornament ornament-dark text-[10px] tracking-[0.45em] uppercase mb-4">{t('sec.story_eye').replace(/—/g,'').trim()}</p>
        </Reveal>
        <Reveal delay={100}>
          <h2 className="ff-serif text-4xl md:text-6xl mb-5 leading-[1.0]">
            {lang === 'ar' ? <>قصة <em className="ff-script text-rose-300">شغف</em> بالتفاصيل</> : <>A <em className="ff-script text-rose-300">passion</em> for detail</>}
          </h2>
        </Reveal>
        <Reveal delay={200}>
          <p className="text-paper/75 leading-loose text-sm md:text-base max-w-2xl mx-auto">{t('sec.story_p')}</p>
        </Reveal>

        <div className="grid grid-cols-3 gap-6 max-w-xl mx-auto mt-10 pt-8 border-t border-paper/15">
          <Reveal>
            <p className="ff-serif text-4xl md:text-5xl text-rose-300">+<Counter end={500}/></p>
            <p className="text-[10px] tracking-[0.25em] uppercase text-paper/65 mt-2">{t('sec.story_b1')}</p>
          </Reveal>
          <Reveal delay={120}>
            <p className="ff-serif text-4xl md:text-5xl text-rose-300">+<Counter end={2400}/></p>
            <p className="text-[10px] tracking-[0.25em] uppercase text-paper/65 mt-2">{t('sec.story_b2')}</p>
          </Reveal>
          <Reveal delay={240}>
            <p className="ff-serif text-4xl md:text-5xl text-rose-300">{lang==='ar'?'٤٫٩':'4.9'}<span className="text-2xl">/{lang==='ar'?'٥':'5'}</span></p>
            <p className="text-[10px] tracking-[0.25em] uppercase text-paper/65 mt-2">{t('sec.story_b3')}</p>
          </Reveal>
        </div>
      </div>
    </section>
  );
};

/* ====================================================================== */
/* TESTIMONIALS                                                           */
/* ====================================================================== */
const Testimonials = () => {
  const { t, lang } = useI18n();
  const items = lang === 'ar' ? [
    { name:'سارة م.', city:'رام الله', text:'أحببت كل تفاصيل الفستان — الخامة فوق التوقعات، والتغليف كان كأنه هدية ثمينة.' },
    { name:'ليلى ع.', city:'القدس',    text:'تجربة شراء سلسة، وخدمة العملاء استثنائية. أصبح RARE وجهتي الأولى للمناسبات.' },
    { name:'دانا ك.', city:'حيفا',     text:'القطع نادرة فعلاً — ما رح تشوفيها على كل واحدة. هاد اللي بميّز المتجر.' }
  ] : [
    { name:'Sarah M.', city:'Ramallah', text:'I loved every detail of the dress — the fabric exceeded expectations, and the packaging felt like a treasured gift.' },
    { name:'Layla A.', city:'Jerusalem', text:'A seamless shopping experience and exceptional customer care. RARE became my first stop for any occasion.' },
    { name:'Dana K.',  city:'Haifa',     text:'The pieces are truly rare — you won\'t see them on everyone. That\'s what sets this boutique apart.' }
  ];
  return (
    <section className="bg-rose-50/60 py-14 md:py-20">
      <div className="max-w-[1480px] mx-auto px-5 md:px-10">
        <Reveal className="text-center mb-9">
          <p className="ornament text-[10px] tracking-[0.45em] uppercase mb-2">{t('sec.test_eye').replace(/—/g,'').trim()}</p>
          <h2 className="ff-serif text-3xl md:text-5xl text-ink">{t('sec.test_h')}</h2>
        </Reveal>
        <div className="grid md:grid-cols-3 gap-4 md:gap-5">
          {items.map((tt, i) => (
            <Reveal key={i} delay={i*120} className="bg-paper p-7 md:p-9 border hairline">
              <div className="flex gap-1 mb-4">
                {[1,2,3,4,5].map(s => <IconStar key={s} size={13} className="text-rose-400 fill-current"/>)}
              </div>
              <p className="ff-serif text-lg md:text-xl text-ink leading-relaxed mb-5">"{tt.text}"</p>
              <div className="flex items-center justify-between text-sm pt-4 border-t hairline">
                <span className="font-medium text-ink">{tt.name}</span>
                <span className="text-ink-mute text-xs">{tt.city}</span>
              </div>
            </Reveal>
          ))}
        </div>
      </div>
    </section>
  );
};

/* ====================================================================== */
/* INSTAGRAM STRIP                                                        */
/* ====================================================================== */
const InstaStrip = () => {
  const { t } = useI18n();
  return (
    <section className="py-14 md:py-20">
      <Reveal className="max-w-[1480px] mx-auto px-5 md:px-10 text-center mb-8">
        <p className="ornament text-[10px] tracking-[0.45em] uppercase mb-2">{t('sec.insta_eye').replace(/—/g,'').trim()}</p>
        <a href="#" className="ff-serif text-3xl md:text-5xl text-ink underline-grow inline-block">{t('sec.insta_h')}</a>
      </Reveal>
      <div className="grid grid-cols-3 md:grid-cols-6 gap-1.5">
        {window.RB.PRODUCTS.slice(0, 6).map((p, i) => (
          <Reveal key={p.id} delay={i*60} className="relative ar-square overflow-hidden group">
            <a href="#">
              <ProductImg p={p} variant={i%2 ? 'b' : 'a'} className="absolute inset-0 w-full h-full"/>
              <div className="absolute inset-0 bg-ink/0 group-hover:bg-ink/40 transition-colors flex items-center justify-center">
                <IconInsta size={28} className="text-paper opacity-0 group-hover:opacity-100 transition-opacity"/>
              </div>
            </a>
          </Reveal>
        ))}
      </div>
    </section>
  );
};

/* ====================================================================== */
/* PAGE                                                                   */
/* ====================================================================== */
const HomePage = () => (
  <main className="page-fade">
    <Hero/>
    <USPs/>
    <CategoryStrip/>
    <Featured/>
    <CategoryMosaic/>
    <OurStory/>
    <BrandStory/>
    <Testimonials/>
    <InstaStrip/>
  </main>
);

window.RBHome = { HomePage, ProductCard };
