/* global React, ReactDOM, NOBBYO_ICONS, PageHeader, PageTopBar, PageFooter */
const { useState: cuS, useEffect: cuE } = React;
const CI = window.NOBBYO_ICONS;

// ============================================================
// COMPANY DATA — bKash
// ============================================================
const COMPANY = {
  name: 'bKash',
  name_bn: 'বিকাশ',
  logo: 'b',
  logoColor: '#E2126B',
  tagline_bn: 'বাংলাদেশের লিডিং মোবাইল ফাইন্যান্সিয়াল সার্ভিস · "Fintech for the next billion"',
  tagline_en: 'Bangladesh\'s leading mobile financial service · "Fintech for the next billion"',
  founded: 2011,
  hq_bn: 'গুলশান, ঢাকা',
  hq_en: 'Gulshan, Dhaka',
  size_bn: '২,৮০০+ জন',
  size_en: '2,800+ employees',
  industry_bn: 'মোবাইল ফাইন্যান্সিয়াল সার্ভিস',
  industry_en: 'Mobile Financial Services',
  website: 'bkash.com',
};

const ABOUT_BN = [
  'bKash বাংলাদেশের সর্ববৃহৎ Mobile Financial Service (MFS) প্রোভাইডার, যা ৭ কোটি+ গ্রাহককে দৈনিক payments, savings, ঋণ ও remittance সেবা দিয়ে আসছে। আমরা শুধু একটি কোম্পানি না — আমরা একটি **ফাইন্যান্সিয়াল ইনক্লুশন আন্দোলন।**',
  'গ্রাম থেকে শহর — চা-দোকানদার থেকে গার্মেন্টস কর্মী, রিকশাচালক থেকে ফ্রিল্যান্সার — সবার পকেটে ব্যাংক পৌঁছে দিচ্ছি। আমাদের লক্ষ্য ২০৩০ সালের মধ্যে বাংলাদেশের প্রতিটি digitally-enabled পরিবারের আর্থিক জীবনের কেন্দ্রবিন্দু হওয়া।',
];

const ABOUT_EN = [
  'bKash is Bangladesh\'s largest Mobile Financial Service (MFS) provider, serving **70M+ customers** with daily payments, savings, credit, and remittance. We\'re not just a company — we\'re a **financial inclusion movement.**',
  'From villages to cities — tea-stall owners to garment workers, rickshaw pullers to freelancers — we put a bank in everyone\'s pocket. Our goal: by 2030, be the financial heartbeat of every digitally-enabled household in Bangladesh.',
];

const PULL_BN = '"একটি দেশ গড়তে গেলে প্রথমে তার মানুষকে আর্থিকভাবে যুক্ত করতে হয়।"';
const PULL_EN = '"To build a nation, first connect its people financially."';

const STATS = [
  { num_bn: '৭০M+', num_en: '70M+', label_bn: 'গ্রাহক', label_en: 'Customers', trend: '+12% YoY' },
  { num_bn: '২,৮০০+', num_en: '2,800+', label_bn: 'কর্মী', label_en: 'Employees', trend: '+340 in 2025' },
  { num_bn: '৪.৬', num_en: '4.6', suffix: '/5', label_bn: 'এমপ্লয়ি রেটিং', label_en: 'Employee Rating', trend: 'Top 5%' },
  { num_bn: '১২', num_en: '12', label_bn: 'খোলা পদ', label_en: 'Open Roles', trend: '+4 this week' },
  { num_bn: '১৪', num_en: '14', label_bn: 'বছর', label_en: 'Years Active', trend: 'Since 2011' },
];

const VALUES_BN = [
  { i: 'shield', t: 'বিশ্বস্ততা সর্বাগ্রে', d: '৭ কোটি গ্রাহকের টাকা — তাই প্রতিটি decision-এ trust ও security প্রথম।' },
  { i: 'heart', t: 'মানুষ-প্রথম প্রোডাক্ট', d: 'Designs শুরু হয় গ্রাম থেকে — feature phone থেকে smartphone পর্যন্ত সবার জন্য।' },
  { i: 'zap', t: 'দ্রুত শিখি, দ্রুত গড়ি', d: 'Failure is feedback. Quarterly OKR cycles, weekly demos, monthly retros।' },
  { i: 'globe', t: 'গর্বিতভাবে বাংলাদেশি', d: 'Local context, local language, local insights — সব কিছুর কেন্দ্রে।' },
];
const VALUES_EN = [
  { i: 'shield', t: 'Trust above all', d: '70M customers\' money — every decision starts with trust and security.' },
  { i: 'heart', t: 'People-first products', d: 'Design starts from the village — feature phone to smartphone, all included.' },
  { i: 'zap', t: 'Learn fast, build fast', d: 'Failure is feedback. Quarterly OKRs, weekly demos, monthly retros.' },
  { i: 'globe', t: 'Proudly Bangladeshi', d: 'Local context, local language, local insight — at the heart of everything.' },
];

const VALUE_ICONS = {
  shield: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M12 2L4 6v6c0 5 3.5 9.5 8 10 4.5-.5 8-5 8-10V6l-8-4z"/></svg>,
  heart: <svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>,
  zap: <svg viewBox="0 0 24 24" fill="currentColor"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>,
  globe: <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>,
};

const PERKS_BN = [
  { e: '🏥', n: 'স্বাস্থ্য বীমা পরিবার সহ' },
  { e: '🏖️', n: '২৫ দিন বার্ষিক ছুটি' },
  { e: '👶', n: 'ম্যাটারনিটি ৬ মাস + পিতৃত্ব ১৫ দিন' },
  { e: '🏠', n: 'হাইব্রিড ওয়ার্ক' },
  { e: '📚', n: 'বছরে $২,০০০ লার্নিং বাজেট' },
  { e: '🎽', n: 'ESOP ও পারফরম্যান্স বোনাস' },
  { e: '🧘', n: 'মেন্টাল হেলথ সাপোর্ট' },
  { e: '☕', n: 'ফ্রি লাঞ্চ ও স্ন্যাকস' },
];
const PERKS_EN = [
  { e: '🏥', n: 'Health insurance for family' },
  { e: '🏖️', n: '25 days paid leave' },
  { e: '👶', n: '6mo maternity, 15 days paternity' },
  { e: '🏠', n: 'Hybrid work model' },
  { e: '📚', n: '$2,000 annual learning budget' },
  { e: '🎽', n: 'ESOP & performance bonus' },
  { e: '🧘', n: 'Mental health support' },
  { e: '☕', n: 'Free lunch & snacks' },
];

const ROLES = [
  { dept: 'Design', title_bn: 'সিনিয়র প্রোডাক্ট ডিজাইনার', title_en: 'Senior Product Designer', loc: 'Gulshan', type_bn: 'হাইব্রিড', type_en: 'Hybrid', salary_bn: '১,২০K – ১,৮০K', salary_en: '120K – 180K', applicants: 142, isNew: true, href: 'job-detail.html' },
  { dept: 'Engineering', title_bn: 'স্টাফ ব্যাকএন্ড ইঞ্জিনিয়ার', title_en: 'Staff Backend Engineer', loc: 'Gulshan', type_bn: 'হাইব্রিড', type_en: 'Hybrid', salary_bn: '২,৫০K – ৩,৫০K', salary_en: '250K – 350K', applicants: 86, isNew: true, href: '#' },
  { dept: 'Product', title_bn: 'প্রোডাক্ট ম্যানেজার, পেমেন্টস', title_en: 'Product Manager, Payments', loc: 'Gulshan', type_bn: 'অন-সাইট', type_en: 'On-site', salary_bn: '১,৮০K – ২,৪০K', salary_en: '180K – 240K', applicants: 198, href: '#' },
  { dept: 'Data', title_bn: 'সিনিয়র ডেটা সায়েন্টিস্ট', title_en: 'Senior Data Scientist', loc: 'Gulshan', type_bn: 'রিমোট', type_en: 'Remote', salary_bn: '২,০০K – ২,৮০K', salary_en: '200K – 280K', applicants: 67, href: '#' },
  { dept: 'Marketing', title_bn: 'গ্রোথ মার্কেটিং লিড', title_en: 'Growth Marketing Lead', loc: 'Gulshan', type_bn: 'হাইব্রিড', type_en: 'Hybrid', salary_bn: '১,৫০K – ২,২০K', salary_en: '150K – 220K', applicants: 124, href: '#' },
  { dept: 'Engineering', title_bn: 'iOS ডেভেলপার (মিড)', title_en: 'iOS Developer (Mid)', loc: 'Gulshan', type_bn: 'হাইব্রিড', type_en: 'Hybrid', salary_bn: '১,১০K – ১,৬০K', salary_en: '110K – 160K', applicants: 91, isNew: true, href: '#' },
];

const VOICES_BN = [
  {
    text: 'bKash-এ আমি প্রথম অনুভব করলাম যে design সরাসরি ১০ লাখ মানুষের জীবন পরিবর্তন করতে পারে। প্রতিটি screen-এ একটি গ্রামের গল্প থাকে।',
    name: 'নুসরাত জাহান',
    role: 'Lead Product Designer',
    tenure: '৩ বছর',
    rating: 5,
    avatar: 'N',
    color: '#E2126B',
  },
  {
    text: 'Engineering culture-টা অসাধারণ — আমরা production-এ প্রতি সপ্তাহে ship করি, কিন্তু কোনো compromise security-তে না। Senior leadership সরাসরি accessible।',
    name: 'রাকিবুল ইসলাম',
    role: 'Staff Backend Engineer',
    tenure: '৫ বছর',
    rating: 5,
    avatar: 'R',
    color: '#2A3656',
  },
  {
    text: 'Maternity leave-এর পর আমাকে part-time return-এর সুযোগ দিয়েছে। Bangladesh-এ এমন employer খুঁজে পাওয়া কঠিন।',
    name: 'ফাহিমা আক্তার',
    role: 'Product Manager',
    tenure: '৪ বছর',
    rating: 4,
    avatar: 'F',
    color: '#52A22E',
  },
  {
    text: 'Scale-এ কাজ করার যে thrill — ৭ কোটি users — সেটা অন্য কোথাও পাবেন না। শিখছি প্রতিদিন।',
    name: 'তাহসিন ইসলাম',
    role: 'Data Scientist',
    tenure: '২ বছর',
    rating: 5,
    avatar: 'T',
    color: '#F58220',
  },
];
const VOICES_EN = [
  {
    text: 'At bKash, I first realized design can directly change the lives of millions. Every screen carries a story from a village.',
    name: 'Nusrat Jahan', role: 'Lead Product Designer', tenure: '3 yrs', rating: 5, avatar: 'N', color: '#E2126B',
  },
  {
    text: 'The engineering culture is remarkable — we ship to production weekly without compromising on security. Senior leadership is directly accessible.',
    name: 'Rakibul Islam', role: 'Staff Backend Engineer', tenure: '5 yrs', rating: 5, avatar: 'R', color: '#2A3656',
  },
  {
    text: 'After maternity leave, I was offered a part-time return option. That kind of employer is rare in Bangladesh.',
    name: 'Fahima Akter', role: 'Product Manager', tenure: '4 yrs', rating: 4, avatar: 'F', color: '#52A22E',
  },
  {
    text: 'The thrill of working at scale — 70M users — you won\'t find anywhere else. I learn every single day.',
    name: 'Tahsin Islam', role: 'Data Scientist', tenure: '2 yrs', rating: 5, avatar: 'T', color: '#F58220',
  },
];

const TIMELINE_BN = [
  { y: 2011, e: '<strong>bKash যাত্রা শুরু</strong> — BRAC Bank ও Money in Motion LLC এর JV হিসেবে।' },
  { y: 2014, e: '<strong>১ কোটি গ্রাহক</strong> পার করে — দেশের দ্রুততম MFS গ্রোথ।' },
  { y: 2018, e: '<strong>Ant Financial বিনিয়োগ</strong> পায় — international fintech recognition।' },
  { y: 2021, e: '<strong>bKash Pay Later</strong> চালু — Bangladesh-এর প্রথম digital credit at scale।' },
  { y: 2023, e: '<strong>৫ কোটি গ্রাহক ও ২,০০০ কর্মী</strong> — দেশে No.1 fintech employer।' },
  { y: 2025, e: '<strong>৭ কোটি গ্রাহক</strong> ও AI-driven personalized banking চালু।' },
];
const TIMELINE_EN = [
  { y: 2011, e: '<strong>bKash launches</strong> — JV between BRAC Bank and Money in Motion LLC.' },
  { y: 2014, e: '<strong>10M customers</strong> — fastest MFS growth in the country.' },
  { y: 2018, e: '<strong>Ant Financial invests</strong> — international fintech recognition.' },
  { y: 2021, e: '<strong>bKash Pay Later launches</strong> — first digital credit at scale in Bangladesh.' },
  { y: 2023, e: '<strong>50M customers, 2,000+ employees</strong> — #1 fintech employer in the country.' },
  { y: 2025, e: '<strong>70M customers</strong> and AI-driven personalized banking.' },
];

const ACTIVITY_BN = [
  { t: '<strong>২ জন</strong> hire হলো এই সপ্তাহে', m: '২ ঘণ্টা আগে' },
  { t: '<strong>iOS ডেভেলপার</strong> পদ post হলো', m: '৬ ঘণ্টা আগে' },
  { t: 'Design টিম-এ <strong>৩ জন interview</strong>', m: 'গতকাল' },
  { t: '<strong>Q4 ২০২৫</strong> hiring update প্রকাশ', m: '২ দিন আগে' },
];
const ACTIVITY_EN = [
  { t: '<strong>2 hires</strong> made this week', m: '2 hrs ago' },
  { t: '<strong>iOS Developer</strong> role posted', m: '6 hrs ago' },
  { t: 'Design team holding <strong>3 interviews</strong>', m: 'Yesterday' },
  { t: '<strong>Q4 2025</strong> hiring update published', m: '2 days ago' },
];

const LOCATIONS = [
  { city_bn: 'গুলশান', city_en: 'Gulshan', addr_bn: 'গুলশান এভিনিউ, ঢাকা ১২১২', addr_en: 'Gulshan Avenue, Dhaka 1212', isHQ: true, jobs: 9 },
  { city_bn: 'ধানমন্ডি', city_en: 'Dhanmondi', addr_bn: 'ধানমন্ডি ৩২, ঢাকা', addr_en: 'Dhanmondi 32, Dhaka', jobs: 2 },
  { city_bn: 'চট্টগ্রাম', city_en: 'Chittagong', addr_bn: 'আগ্রাবাদ, চট্টগ্রাম', addr_en: 'Agrabad, Chittagong', jobs: 1 },
];

const TECH_STACK = ['React', 'TypeScript', 'Java', 'Kotlin', 'Swift', 'Node.js', 'Python', 'PostgreSQL', 'Kafka', 'Kubernetes', 'AWS', 'Figma'];

const TABS_BN = [
  { id: 'about', label: 'সম্পর্কে', icon: 'i' },
  { id: 'jobs', label: 'খোলা পদ', icon: 'briefcase', count: 12 },
  { id: 'people', label: 'কর্মীদের কণ্ঠ', icon: 'people' },
  { id: 'gallery', label: 'গ্যালারি', icon: 'image' },
  { id: 'journey', label: 'জার্নি', icon: 'clock' },
];
const TABS_EN = [
  { id: 'about', label: 'About', icon: 'i' },
  { id: 'jobs', label: 'Open Jobs', icon: 'briefcase', count: 12 },
  { id: 'people', label: 'Voices', icon: 'people' },
  { id: 'gallery', label: 'Gallery', icon: 'image' },
  { id: 'journey', label: 'Journey', icon: 'clock' },
];

// ============================================================
// COVER + IDENTITY
// ============================================================
function CoverAndId({ lang, following, setFollowing }) {
  return (
    <>
      <div className="cp-cover">
        <div className="cp-cover-grid" />
        <div className="cp-cover-tag">{lang === 'bn' ? 'এমপ্লয়ার লাইভ' : 'Employer Live'}</div>
        <div className="cp-cover-mark">{lang === 'bn' ? 'বিকাশ' : 'bKash'}</div>
      </div>

      <div className="container">
        <div className="cp-id-bar">
          <div className="cp-id-card">
            <div className="cp-id-logo">{COMPANY.logo}</div>
            <div className="cp-id-text">
              <div className="cp-id-pretitle">
                <span>{lang === 'bn' ? 'এমপ্লয়ার প্রোফাইল' : 'Employer Profile'}</span>
                <span className="cp-verified">
                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><polyline points="20 6 9 17 4 12"/></svg>
                  {lang === 'bn' ? 'যাচাইকৃত' : 'Verified'}
                </span>
              </div>
              <h1 className="cp-id-name">{lang === 'bn' ? COMPANY.name_bn : COMPANY.name}</h1>
              <p className="cp-id-mission">{lang === 'bn' ? COMPANY.tagline_bn : COMPANY.tagline_en}</p>
              <div className="cp-id-meta">
                <span className="cp-id-meta-pill">📍 {lang === 'bn' ? COMPANY.hq_bn : COMPANY.hq_en}</span>
                <span className="cp-id-meta-pill">👥 {lang === 'bn' ? COMPANY.size_bn : COMPANY.size_en}</span>
                <span className="cp-id-meta-pill">💼 {lang === 'bn' ? COMPANY.industry_bn : COMPANY.industry_en}</span>
                <span className="cp-id-meta-pill">📅 {lang === 'bn' ? `${COMPANY.founded} সাল থেকে` : `Since ${COMPANY.founded}`}</span>
              </div>
            </div>
            <div className="cp-id-actions">
              <button className={`btn ${following ? 'btn-ghost' : 'btn-orange'}`} onClick={() => setFollowing(!following)}>
                {following ? (lang === 'bn' ? '✓ ফলোইং' : '✓ Following') : (lang === 'bn' ? '+ ফলো করুন' : '+ Follow')}
              </button>
              <a href="#jobs" className="btn btn-ink">{lang === 'bn' ? '১২টি খোলা পদ দেখুন' : 'View 12 open roles'}</a>
              <div className="cp-id-actions-row">
                <button className="cp-share-btn">{lang === 'bn' ? '🔗 শেয়ার' : '🔗 Share'}</button>
                <button className="btn-icon-circle" title="Bookmark">🔖</button>
                <button className="btn-icon-circle" title="More">⋯</button>
              </div>
            </div>
          </div>

          <div className="cp-stats">
            {STATS.map((s, i) => (
              <div key={i} className="cp-stat-cell">
                <div className="cp-stat-num">
                  {lang === 'bn' ? s.num_bn : s.num_en}
                  {s.suffix && <span className="cp-stat-suffix">{s.suffix}</span>}
                </div>
                <div className="cp-stat-label">{lang === 'bn' ? s.label_bn : s.label_en}</div>
                <div className="cp-stat-trend">{s.trend}</div>
              </div>
            ))}
          </div>
        </div>
      </div>
    </>
  );
}

// ============================================================
// TABS
// ============================================================
function CompanyTabs({ tab, setTab, lang }) {
  const items = lang === 'bn' ? TABS_BN : TABS_EN;
  return (
    <div className="cp-tabs">
      {items.map(t => (
        <button key={t.id} className={`cp-tab ${tab === t.id ? 'is-on' : ''}`} onClick={() => setTab(t.id)}>
          {t.label}
          {t.count != null && <span className="cp-tab-count">{lang === 'bn' ? t.count.toString().replace(/\d/g, d => '০১২৩৪৫৬৭৮৯'[d]) : t.count}</span>}
        </button>
      ))}
    </div>
  );
}

// ============================================================
// ABOUT SECTION
// ============================================================
function AboutSection({ lang }) {
  const paragraphs = lang === 'bn' ? ABOUT_BN : ABOUT_EN;
  return (
    <div className="cp-section">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'আমরা কারা' : 'Who We Are'}</div>
        <h2>{lang === 'bn' ? 'বাংলাদেশকে আর্থিকভাবে সংযুক্ত করছি' : 'Banking Bangladesh, one phone at a time'}</h2>
      </div>
      <div className="cp-about">
        {paragraphs.map((p, i) => (
          <p key={i} dangerouslySetInnerHTML={{ __html: p.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>') }} />
        ))}
        <div className="cp-about-pull">{lang === 'bn' ? PULL_BN : PULL_EN}</div>
        <div className="cp-about-keys">
          <div className="cp-about-key">
            <div className="cp-about-key-num">{lang === 'bn' ? '৭ কোটি' : '70M'}+</div>
            <div className="cp-about-key-label">{lang === 'bn' ? 'গ্রাহক যারা bKash ব্যবহার করেন' : 'Customers using bKash'}</div>
          </div>
          <div className="cp-about-key">
            <div className="cp-about-key-num">{lang === 'bn' ? '২৫ কোটি+' : '$2.5B+'}</div>
            <div className="cp-about-key-label">{lang === 'bn' ? 'মাসিক transaction value (USD)' : 'Monthly transaction value'}</div>
          </div>
          <div className="cp-about-key">
            <div className="cp-about-key-num">{lang === 'bn' ? '৬৪' : '64'}</div>
            <div className="cp-about-key-label">{lang === 'bn' ? 'জেলায় bKash এজেন্ট' : 'Districts with bKash agents'}</div>
          </div>
        </div>
      </div>
    </div>
  );
}

function ValuesSection({ lang }) {
  const values = lang === 'bn' ? VALUES_BN : VALUES_EN;
  return (
    <div className="cp-section">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'আমাদের মূল্যবোধ' : 'Our Values'}</div>
        <h2>{lang === 'bn' ? 'যা আমাদের চালায়' : 'What drives us'}</h2>
      </div>
      <div className="cp-values">
        {values.map((v, i) => (
          <div key={i} className="cp-value">
            <div className="cp-value-no">{String(i + 1).padStart(2, '0')}</div>
            <div className="cp-value-icon">{VALUE_ICONS[v.i]}</div>
            <div className="cp-value-title">{v.t}</div>
            <div className="cp-value-desc">{v.d}</div>
          </div>
        ))}
      </div>
    </div>
  );
}

function PerksSection({ lang }) {
  const perks = lang === 'bn' ? PERKS_BN : PERKS_EN;
  return (
    <div className="cp-section">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'সুবিধাসমূহ' : 'Perks & Benefits'}</div>
        <h2>{lang === 'bn' ? 'কর্মীদের যত্ন নিই' : 'We take care of our people'}</h2>
      </div>
      <div className="cp-perks">
        {perks.map((p, i) => (
          <div key={i} className="cp-perk">
            <div className="cp-perk-glyph">{p.e}</div>
            <div className="cp-perk-name">{p.n}</div>
          </div>
        ))}
      </div>
    </div>
  );
}

// ============================================================
// JOBS SECTION
// ============================================================
function JobsSection({ lang }) {
  const [filter, setFilter] = cuS('all');
  const depts = ['all', 'Design', 'Engineering', 'Product', 'Data', 'Marketing'];
  const filtered = filter === 'all' ? ROLES : ROLES.filter(r => r.dept === filter);
  return (
    <div className="cp-section" id="jobs">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'এখনই হায়ারিং' : 'Hiring Now'}</div>
        <h2>{lang === 'bn' ? '১২টি খোলা পদ' : '12 open roles'}</h2>
        <p>{lang === 'bn' ? 'বিভাগ অনুযায়ী filter করুন বা সব দেখুন' : 'Filter by department or browse all'}</p>
      </div>
      <div className="cp-roles-bar">
        {depts.map(d => (
          <button key={d} className={`cp-roles-chip ${filter === d ? 'is-on' : ''}`} onClick={() => setFilter(d)}>
            {d === 'all' ? (lang === 'bn' ? 'সব বিভাগ' : 'All') : d}
          </button>
        ))}
      </div>
      {filtered.map((r, i) => (
        <a key={i} href={r.href} className="cp-role">
          <div className="cp-role-text">
            <div className="cp-role-title">{lang === 'bn' ? r.title_bn : r.title_en}</div>
            <div className="cp-role-meta">
              <span>{r.dept}</span>
              <span>📍 {r.loc}</span>
              <span>{lang === 'bn' ? r.type_bn : r.type_en}</span>
              {r.isNew && <span className="cp-role-new">{lang === 'bn' ? 'নতুন' : 'New'}</span>}
            </div>
          </div>
          <div className="cp-role-right">
            <div className="cp-role-salary">৳{lang === 'bn' ? r.salary_bn : r.salary_en}</div>
            <div className="cp-role-applicants">{lang === 'bn' ? `${r.applicants.toString().replace(/\d/g, d => '০১২৩৪৫৬৭৮৯'[d])} জন আবেদন` : `${r.applicants} applied`}</div>
          </div>
        </a>
      ))}
      <a href="job-search.html" className="cp-roles-cta">
        {lang === 'bn' ? `→ সব ${ROLES.length}+ পদ দেখুন` : `→ View all ${ROLES.length}+ roles`}
      </a>
    </div>
  );
}

// ============================================================
// PEOPLE SECTION
// ============================================================
function PeopleSection({ lang }) {
  const voices = lang === 'bn' ? VOICES_BN : VOICES_EN;
  return (
    <div className="cp-section">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'কর্মীদের কণ্ঠ' : 'Voices'}</div>
        <h2>{lang === 'bn' ? 'বর্তমান কর্মীরা যা বলেন' : 'What current employees say'}</h2>
        <p>{lang === 'bn' ? 'যাচাইকৃত NOBBYO প্রোফাইল থেকে অনন্য রিভিউ · ৪.৬/৫ গড় রেটিং' : 'Verified reviews from NOBBYO profiles · 4.6/5 average rating'}</p>
      </div>
      <div className="cp-voices">
        {voices.map((v, i) => (
          <div key={i} className="cp-voice">
            <div className="cp-voice-quote">&rdquo;</div>
            <div className="cp-voice-rating">
              {[1,2,3,4,5].map(n => (
                <span key={n} className={`cp-voice-star ${n > v.rating ? 'is-empty' : ''}`}>★</span>
              ))}
            </div>
            <div className="cp-voice-text">{v.text}</div>
            <div className="cp-voice-author">
              <div className="cp-voice-avatar" style={{ background: v.color }}>{v.avatar}</div>
              <div>
                <div className="cp-voice-name">{v.name}</div>
                <div className="cp-voice-role">{v.role}</div>
              </div>
              <div className="cp-voice-tenure">{v.tenure}</div>
            </div>
          </div>
        ))}
      </div>
    </div>
  );
}

// ============================================================
// GALLERY SECTION
// ============================================================
function GallerySection({ lang }) {
  const cells = [
    { cls: 'cp-art-office', mod: 'is-tall', label_bn: 'গুলশান অফিস', label_en: 'Gulshan Office' },
    { cls: 'cp-art-team', label_bn: 'প্রোডাক্ট টিম', label_en: 'Product Team' },
    { cls: 'cp-art-event', label_bn: 'টাউন হল ২০২৫', label_en: 'Town Hall 2025' },
    { cls: 'cp-art-product', label_bn: 'অ্যাপ ল্যাব', label_en: 'App Lab' },
    { cls: 'cp-art-csr', mod: 'is-wide', label_bn: 'CSR · ফ্লাড রিলিফ', label_en: 'CSR · Flood Relief' },
    { cls: 'cp-art-lobby', label_bn: 'লবি', label_en: 'Lobby' },
  ];
  return (
    <div className="cp-section">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'কর্মস্থল' : 'Workplace'}</div>
        <h2>{lang === 'bn' ? 'একনজরে কেমন bKash-এ কাজ করা' : 'A glimpse of life at bKash'}</h2>
      </div>
      <div className="cp-gallery">
        {cells.map((c, i) => (
          <div key={i} className={`cp-gallery-cell ${c.mod || ''}`}>
            <div className={`cp-gallery-cell-art ${c.cls}`} />
            <div className="cp-gallery-cell-label">{lang === 'bn' ? c.label_bn : c.label_en}</div>
          </div>
        ))}
      </div>
    </div>
  );
}

// ============================================================
// JOURNEY SECTION
// ============================================================
function JourneySection({ lang }) {
  const events = lang === 'bn' ? TIMELINE_BN : TIMELINE_EN;
  return (
    <div className="cp-section">
      <div className="cp-section-head">
        <div className="cp-section-tag">{lang === 'bn' ? 'যাত্রাপথ' : 'Journey'}</div>
        <h2>{lang === 'bn' ? '১৪ বছরের গল্প' : '14 years in the making'}</h2>
      </div>
      <div className="cp-timeline">
        {events.map((t, i) => (
          <div key={i} className="cp-tl-item">
            <div className="cp-tl-year">{t.y}</div>
            <div className="cp-tl-event" dangerouslySetInnerHTML={{ __html: t.e }} />
          </div>
        ))}
      </div>
    </div>
  );
}

// ============================================================
// SIDEBAR
// ============================================================
function Sidebar({ lang }) {
  const activity = lang === 'bn' ? ACTIVITY_BN : ACTIVITY_EN;
  return (
    <aside className="cp-side">
      <div className="cp-ai-insight">
        <div className="cp-ai-insight-tag">{lang === 'bn' ? 'NOBBYO AI ইনসাইট' : 'NOBBYO AI Insight'}</div>
        <div className="cp-ai-insight-text">
          {lang === 'bn'
            ? <>আপনার profile-এর সাথে bKash-এর <strong>৩টি পদের ৯০%+ match</strong>। দ্রুত apply করলে চান্স বেশি — গড় shortlist time ৫ দিন।</>
            : <>Your profile has a <strong>90%+ match for 3 roles</strong> at bKash. Apply early — average shortlist time is 5 days.</>}
        </div>
        <a href="#jobs" className="cp-ai-insight-cta">
          {lang === 'bn' ? 'ম্যাচ পদ দেখুন' : 'View matched roles'} →
        </a>
      </div>

      <div className="cp-side-card">
        <h4>{lang === 'bn' ? 'হায়ারিং অ্যাক্টিভিটি' : 'Hiring Activity'}</h4>
        {activity.map((a, i) => (
          <div key={i} className="cp-activity-row">
            <div className="cp-activity-dot" />
            <span dangerouslySetInnerHTML={{ __html: a.t }} />
            <span className="cp-activity-time">{a.m}</span>
          </div>
        ))}
      </div>

      <div className="cp-side-card">
        <h4>{lang === 'bn' ? 'অফিস লোকেশন' : 'Office Locations'}</h4>
        {LOCATIONS.map((l, i) => (
          <div key={i} className="cp-loc">
            <div className="cp-loc-city">
              {lang === 'bn' ? l.city_bn : l.city_en}
              {l.isHQ && <span className="cp-loc-pill">{lang === 'bn' ? 'এইচকিউ' : 'HQ'}</span>}
            </div>
            <div className="cp-loc-addr">{lang === 'bn' ? l.addr_bn : l.addr_en}</div>
            <div className="cp-loc-jobs">{lang === 'bn' ? `${l.jobs.toString().replace(/\d/g, d => '০১২৩৪৫৬৭৮৯'[d])} টি খোলা পদ` : `${l.jobs} open roles`}</div>
          </div>
        ))}
      </div>

      <div className="cp-side-card">
        <h4>{lang === 'bn' ? 'টেক স্ট্যাক' : 'Tech Stack'}</h4>
        <div className="cp-tech">
          {TECH_STACK.map(t => <span key={t} className="cp-tech-pill">{t}</span>)}
        </div>
      </div>

      <div className="cp-side-card">
        <h4>{lang === 'bn' ? 'অনলাইন পাবেন' : 'Find Online'}</h4>
        <a href="https://bkash.com" target="_blank" rel="noopener noreferrer" className="cp-side-link">
          🌐 <strong>bkash.com</strong>
          <span className="cp-side-link-meta">↗</span>
        </a>
        <a href="https://linkedin.com/company/bkash" target="_blank" rel="noopener noreferrer" className="cp-side-link">
          💼 <strong>LinkedIn</strong>
          <span className="cp-side-link-meta">285K</span>
        </a>
        <a href="https://facebook.com/bkashlimited" target="_blank" rel="noopener noreferrer" className="cp-side-link">
          📘 <strong>Facebook</strong>
          <span className="cp-side-link-meta">12M</span>
        </a>
        <a href="https://instagram.com/bkash_official" target="_blank" rel="noopener noreferrer" className="cp-side-link">
          📷 <strong>Instagram</strong>
          <span className="cp-side-link-meta">1.4M</span>
        </a>
        <a href="https://youtube.com/@bkash" target="_blank" rel="noopener noreferrer" className="cp-side-link">
          ▶ <strong>YouTube</strong>
          <span className="cp-side-link-meta">680K</span>
        </a>
      </div>
    </aside>
  );
}

// ============================================================
// APP
// ============================================================
function CompanyProfileApp() {
  const [lang, setLang] = cuS('bn');
  const [tab, setTab] = cuS('about');
  const [following, setFollowing] = cuS(false);

  cuE(() => {
    document.body.classList.toggle('lang-bn', lang === 'bn');
    document.body.classList.toggle('lang-en', lang === 'en');
  }, [lang]);

  return (
    <>
      <PageTopBar lang={lang} setLang={setLang} />
      <PageHeader active="companies" />
      <main className="cp-shell">
        <CoverAndId lang={lang} following={following} setFollowing={setFollowing} />
        <div className="container">
          <CompanyTabs tab={tab} setTab={setTab} lang={lang} />
          <div className="cp-grid">
            <div>
              {tab === 'about' && (
                <>
                  <AboutSection lang={lang} />
                  <ValuesSection lang={lang} />
                  <PerksSection lang={lang} />
                </>
              )}
              {tab === 'jobs' && <JobsSection lang={lang} />}
              {tab === 'people' && <PeopleSection lang={lang} />}
              {tab === 'gallery' && <GallerySection lang={lang} />}
              {tab === 'journey' && <JourneySection lang={lang} />}
            </div>
            <Sidebar lang={lang} />
          </div>
        </div>

        <div className="cp-mobile-cta">
          <button className={`btn ${following ? 'btn-ghost' : 'btn-orange'}`} onClick={() => setFollowing(!following)}>
            {following ? '✓' : '+'} {lang === 'bn' ? 'ফলো' : 'Follow'}
          </button>
          <a href="#jobs" className="btn btn-ink">{lang === 'bn' ? '১২ পদ দেখুন' : 'View 12 jobs'}</a>
        </div>
      </main>
      <PageFooter lang={lang} />
    </>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<CompanyProfileApp />);
