// Section 05 — Products, formats, prices
// Three layout variants: cards | table | minimal
function SectionProducts({ layout = 'cards' }) {
  const products = window.MINDME_PRODUCTS;

  return (
    <section className="section section--alt" data-screen-label="06 Products">
      <SectionMeta num="06" label="Продукти, формати, ціни" />
      <div className="shell">

        <Reveal>
          <div style={{ display: 'grid', gridTemplateColumns: 'minmax(0, 1fr) minmax(0, 1.2fr) auto', gap: 'var(--gap-wide)', alignItems: 'end', marginBottom: 'clamp(16px, 2vw, 28px)' }}>
            <h2 className="display h-3" style={{ letterSpacing: '-0.02em', lineHeight: 1.05, maxWidth: '14ch' }}>
              Готова <span style={{ fontFamily: 'var(--font-serif)', fontStyle: 'italic', fontWeight: 400 }}>лінійка</span> з різними форматами.
            </h2>
            <p style={{ fontSize: 14, lineHeight: 1.5, color: 'var(--ink-soft)', maxWidth: '54ch' }}>
              Від ранкової енергії й фокусу до вечірнього ритуалу, краси та щоденної підтримки. Один бренд — багато сценаріїв.
            </p>
            <div style={{ fontFamily: 'var(--font-display)', fontSize: 'clamp(40px, 4vw, 64px)', fontWeight: 800, letterSpacing: '-0.04em', lineHeight: 0.85, color: 'var(--accent)' }}>
              {products.length}<span style={{ fontSize: '0.4em', color: 'var(--ink-mute)', marginLeft: 6, fontWeight: 500, letterSpacing: 0 }}>продуктів</span>
            </div>
          </div>
        </Reveal>

        {layout === 'cards' && <ProductGridCards products={products} />}
        {layout === 'table' && <ProductTable products={products} />}
        {layout === 'minimal' && <ProductListMinimal products={products} />}

      </div>
    </section>
  );
}

function ProductGridCards({ products }) {
  return (
    <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(180px, 1fr))', gap: 'var(--gap-tight)' }}>
      {products.map((p, i) => (
        <Reveal key={p.id} delay={i * 30}>
          <div style={{
            background: 'var(--bg)',
            border: '1px solid var(--line)',
            display: 'grid',
            gridTemplateRows: '8px 1fr auto',
            minHeight: 240,
            transition: 'transform var(--t-fast)',
          }}
          onMouseEnter={e => e.currentTarget.style.transform = 'translateY(-3px)'}
          onMouseLeave={e => e.currentTarget.style.transform = 'translateY(0)'}>
            <div style={{ background: p.color }} />
            <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '10px 8px', background: '#FFFFFF', overflow: 'hidden' }}>
              <img src={p.image} alt={p.name} data-zoomable="true" style={{ maxHeight: 140, width: 'auto', objectFit: 'contain', filter: 'drop-shadow(0 8px 16px rgba(10,10,10,0.12))' }} />
            </div>
            <div style={{ padding: '10px 12px 12px', background: 'rgba(10,10,10,0.92)', color: '#F5F1EA' }}>
              <div style={{ fontFamily: 'var(--font-display)', fontSize: 14, fontWeight: 700, lineHeight: 1.1, letterSpacing: '-0.01em' }}>{p.name}</div>
              <div style={{ marginTop: 6, display: 'flex', justifyContent: 'space-between', alignItems: 'baseline', fontSize: 11 }}>
                <span style={{ opacity: 0.65 }}>{p.format}</span>
                <span style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 13 }}>
                  {p.priceMax ? `${p.price}–${p.priceMax}` : p.price}<span style={{ fontSize: 9, marginLeft: 2, opacity: 0.65 }}>грн</span>
                </span>
              </div>
            </div>
          </div>
        </Reveal>
      ))}
    </div>
  );
}

function ProductTable({ products }) {
  return (
    <Reveal>
      <div style={{ overflowX: 'auto', borderTop: '1px solid var(--ink)' }}>
        <table style={{ width: '100%', borderCollapse: 'collapse', fontFamily: 'var(--font-body)' }}>
          <thead>
            <tr style={{ borderBottom: '1px solid var(--ink)', textAlign: 'left' }}>
              {['Продукт', 'Формат', 'Пакування', 'Інгр.', 'Напрям', 'Коли', 'Ціна'].map(h => (
                <th key={h} style={{ padding: '14px 16px', fontSize: 11, fontWeight: 600, letterSpacing: '0.08em', textTransform: 'uppercase', color: 'var(--ink-soft)' }}>{h}</th>
              ))}
            </tr>
          </thead>
          <tbody>
            {products.map(p => (
              <tr key={p.id} style={{ borderBottom: '1px solid var(--line)' }}>
                <td style={{ padding: '18px 16px' }}>
                  <div style={{ display: 'flex', alignItems: 'center', gap: 14 }}>
                    <div style={{ width: 6, height: 36, background: p.color, flexShrink: 0 }} />
                    <div>
                      <div style={{ fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 18, letterSpacing: '-0.01em' }}>{p.name}</div>
                      <div style={{ fontSize: 12, color: 'var(--ink-mute)', marginTop: 2 }}>{p.nameUa}</div>
                    </div>
                  </div>
                </td>
                <td style={{ padding: '18px 16px', fontSize: 14 }}>{p.format}<br/><span style={{ color: 'var(--ink-mute)', fontSize: 12 }}>{p.portions}</span></td>
                <td style={{ padding: '18px 16px', fontSize: 14 }}>{p.pack}</td>
                <td style={{ padding: '18px 16px', fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 22 }}>{p.ingredientCount}</td>
                <td style={{ padding: '18px 16px', fontSize: 14 }}>{p.role}</td>
                <td style={{ padding: '18px 16px', fontSize: 13, color: 'var(--ink-soft)' }}>{p.timeLabel}</td>
                <td style={{ padding: '18px 16px', fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 18, whiteSpace: 'nowrap' }}>
                  {p.priceMax ? `${p.price}–${p.priceMax}` : p.price} <span style={{ fontSize: 11, color: 'var(--ink-mute)' }}>грн</span>
                </td>
              </tr>
            ))}
          </tbody>
        </table>
      </div>
    </Reveal>
  );
}

function ProductListMinimal({ products }) {
  return (
    <Reveal>
      <div>
        {products.map(p => <ProductCard key={p.id} p={p} layout="minimal" />)}
      </div>
    </Reveal>
  );
}

window.SectionProducts = SectionProducts;
