// Shared subpage primitives for QTG inner pages
// Provides: <SubpageHero>, <SubpageIndex>, <SubpageDeepCard>, <SubpageConnects>
// All pages reuse <Nav>, <CTASection>, <Footer>, <QtgTweaks>

const SubpageHero = ({ kicker, headline, sub, ctaLabel, ctaHref, meta, headlineStyle, hideSecondaryCta }) =>
<section className="hero" style={{ paddingBottom: 80 }}>
    <div className="hero-grid-bg" />
    <div className="hero-glow" />
    <div className="container hero-inner">
      <div className="hero-pill">
        <span className="tag">{kicker.split(' · ')[0]}</span>
        <span>{kicker.split(' · ').slice(1).join(' · ')}</span>
      </div>
      <h1 style={{ maxWidth: '18ch', fontSize: 'clamp(44px, 5.9vw, 80px)', ...(headlineStyle || {}) }} dangerouslySetInnerHTML={{ __html: headline }} />
      <p className="hero-sub">{sub}</p>
      <div className="hero-ctas">
        <a className="btn btn-primary" href={ctaHref || '#index'}>{ctaLabel || 'Explore'} <ArrowRight /></a>
        {!hideSecondaryCta && <a className="btn btn-ghost" href="contact">Contact QTG</a>}
      </div>
      {meta && meta.length > 0 && (
      <div className="hero-meta">
        {meta.map(([k, v], i) =>
      <div key={i} className="hero-meta-item"><span className="k">{k}</span><span className="v" dangerouslySetInnerHTML={{ __html: v }} /></div>
      )}
      </div>
      )}
    </div>
  </section>;


const SubpageIndex = ({ tag, items, anchorPrefix }) =>
<section className="section-pad-sm" style={{ borderBottom: '1px solid var(--line)' }}>
    <div className="container">
      <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'baseline', marginBottom: 24 }}>
        <div className="kicker">{tag} · INDEX</div>
      </div>
      <div style={{ display: 'grid', gridTemplateColumns: `repeat(${Math.min(3, items.length)}, 1fr)`, gap: 1, background: 'var(--line)', border: '1px solid var(--line)', borderRadius: 12, overflow: 'hidden' }}>
        {items.map((p, i) =>
      <a key={i} href={`#${p.slug}`} className="card" style={{
        borderRadius: 0, border: 'none', background: 'var(--surface)', padding: '24px 22px',
        display: 'flex', flexDirection: 'column', gap: 10, minHeight: 160
      }}>
            <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
              <span className="mono" style={{ fontSize: 10.5, color: 'var(--text-4)', letterSpacing: '0.12em' }}>{anchorPrefix}</span>
              {p.status && <span className={`pill ${p.status === 'LIVE' ? 'pill-accent' : ''}`} style={{ fontSize: 9.5 }}>{p.status}</span>}
            </div>
            <div style={{ fontFamily: 'var(--font-sans)', fontSize: 22, letterSpacing: '-0.02em', color: 'var(--text)' }}>{p.name}</div>
            <div style={{ fontSize: 13, color: 'var(--text-2)', lineHeight: 1.5 }}>{(p.desc || p.headline || '').split('.')[0]}.</div>
            <div style={{ marginTop: 'auto', paddingTop: 12, fontSize: 12, color: 'var(--text-3)', display: 'inline-flex', alignItems: 'center', gap: 6 }}>
              Jump to Section <ArrowRight />
            </div>
          </a>
      )}
      </div>
    </div>
  </section>;


const SubpageDeepCard = ({ p, idx, total, anchorPrefix, visual }) => {
  const reverse = idx % 2 === 1;
  return (
    <section id={p.slug} className="section-pad" style={{ borderBottom: '1px solid var(--line)' }}>
      <div className="container">
        <div style={{ display: 'grid', gridTemplateColumns: '200px 1fr', gap: 48, marginBottom: 40 }}>
          <div className="mono" style={{ fontSize: 11, color: 'var(--text-3)', letterSpacing: '0.14em' }}>
            
            <div style={{ marginTop: 6, color: 'var(--accent)' }}>{anchorPrefix}</div>
          </div>
          <div>
            <div style={{ display: 'flex', alignItems: 'center', gap: 14, marginBottom: 14, flexWrap: 'wrap' }}>
              <h2 style={{ fontSize: 'clamp(34px, 4.4vw, 56px)', fontWeight: 450, letterSpacing: '-0.028em' }}>{p.name}</h2>
              {p.status && <span className={`pill ${p.status === 'LIVE' ? 'pill-accent' : ''}`}>{p.status}</span>}
            </div>
            <p style={{ fontSize: 21, color: 'var(--text)', maxWidth: '34ch', letterSpacing: '-0.012em', lineHeight: 1.25 }}>
              {p.headline}
            </p>
          </div>
        </div>
        <div style={{
          display: 'grid',
          gridTemplateColumns: reverse ? '1.2fr 1fr' : '1fr 1.2fr',
          gap: 0, border: '1px solid var(--line)', borderRadius: 16, overflow: 'hidden',
          background: 'var(--surface)'
        }}>
          {!reverse &&
          <div style={{ padding: '36px 36px', borderRight: '1px solid var(--line)' }}>
              <SubpageBody p={p} />
            </div>
          }
          <div style={{
            padding: 24, background: 'linear-gradient(180deg, var(--bg-3) 0%, var(--bg-2) 100%)',
            display: 'flex', alignItems: 'center', justifyContent: 'center', minHeight: 380,
            borderRight: reverse ? '1px solid var(--line)' : 'none'
          }}>
            {visual}
          </div>
          {reverse &&
          <div style={{ padding: '36px 36px' }}>
              <SubpageBody p={p} />
            </div>
          }
        </div>
      </div>
    </section>);

};

const SubpageBody = ({ p }) =>
<>
    <p style={{ marginTop: 0, fontSize: 14.5, color: 'var(--text-2)', maxWidth: '46ch', lineHeight: 1.6 }}>{p.desc}</p>
    {p.chips &&
  <div style={{ display: 'flex', flexWrap: 'wrap', gap: 6, marginTop: 22 }}>
        {p.chips.map((c, i) => <span key={i} className="pill" style={{ fontSize: 10.5 }}>{c}</span>)}
      </div>
  }
    {p.stats &&
  <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 16, marginTop: 32, paddingTop: 24, borderTop: '1px solid var(--line)' }}>
        {p.stats.map(([k, v], i) =>
    <div key={i}>
            <div className="kicker" style={{ fontSize: 10 }}>{k}</div>
            <div style={{ fontFamily: 'var(--font-sans)', fontSize: 24, marginTop: 4, letterSpacing: '-0.02em' }}>{v}</div>
          </div>
    )}
      </div>
  }
    <div style={{ marginTop: 30, display: 'flex', gap: 14, alignItems: 'center' }}>
      <a className="btn btn-primary btn-sm" href="contact">Contact QTG <ArrowRight /></a>
      <a className="btn-link" href="#" style={{ fontSize: 13.5 }}>Read More <ArrowRight /></a>
    </div>
  </>;


// Generic "schematic" visual for subpages — diagram of capability nodes
const SchematicVisual = ({ title, status, nodes, footnote }) =>
<div className="dash" style={{ width: '100%', maxWidth: 540 }}>
    <div className="dash-chrome">
      <div className="traffic"><span /><span /><span /></div>
      <span className="mono" style={{ fontSize: 11, color: 'var(--text-3)' }}>{title}</span>
      <span className={`pill ${status === 'LIVE' ? 'pill-accent' : ''}`} style={{ fontSize: 9.5 }}>{status || 'LIVE'}</span>
    </div>
    <div style={{ padding: '22px 22px' }}>
      <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 10 }}>
        {nodes.map((n, i) =>
      <div key={i} style={{
        padding: '14px 14px', border: '1px solid var(--line)', borderRadius: 8,
        background: n.hot ? 'var(--accent-faint)' : 'rgba(255,255,255,0.018)',
        color: n.hot ? 'var(--accent)' : 'var(--text)',
        display: 'flex', flexDirection: 'column', gap: 6, minHeight: 78
      }}>
            <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
              <span className="mono" style={{ fontSize: 10, letterSpacing: '0.12em', color: n.hot ? 'var(--accent)' : 'var(--text-4)' }}>{n.tag}</span>
              {n.kpi && <span className="mono" style={{ fontSize: 11, color: n.hot ? 'var(--accent)' : 'var(--text-3)' }}>{n.kpi}</span>}
            </div>
            <div style={{ fontSize: 13.5, color: n.hot ? 'var(--accent)' : 'var(--text)', letterSpacing: '-0.005em' }}>{n.label}</div>
            {n.sub && <div className="mono" style={{ fontSize: 10.5, color: 'var(--text-3)', marginTop: 'auto' }}>{n.sub}</div>}
          </div>
      )}
      </div>
      {footnote &&
    <div style={{ marginTop: 14, padding: '10px 12px', border: '1px solid var(--line)', borderRadius: 6, background: 'rgba(255,255,255,0.015)' }}>
          <span className="mono" style={{ fontSize: 10.5, color: 'var(--text-3)', letterSpacing: '0.06em' }}>{footnote}</span>
        </div>
    }
    </div>
  </div>;


const SubpageConnects = ({ tag, headline, lead, columns, footerCells }) =>
<section className="section-pad" style={{ borderBottom: '1px solid var(--line)', background: 'var(--bg-2)' }}>
    <div className="container">
      <div className="section-head">
        <div>
          <div className="section-num">{tag}</div>
          <h2 className="mt-4">{headline}</h2>
        </div>
        <p className="lead">{lead}</p>
      </div>
      <div style={{ border: '1px solid var(--line)', borderRadius: 14, overflow: 'hidden', background: 'var(--surface)' }}>
        <div style={{ display: 'grid', gridTemplateColumns: `repeat(${columns.length}, 1fr)`, borderBottom: '1px solid var(--line)' }}>
          {columns.map((c, i) =>
        <div key={i} style={{ padding: '22px 18px', borderRight: i < columns.length - 1 ? '1px solid var(--line)' : 'none', textAlign: 'center' }}>
              <div className="mono" style={{ fontSize: 10, color: 'var(--text-4)', letterSpacing: '0.14em' }}>{c.tag}</div>
              <div style={{ marginTop: 8, fontSize: 14, color: 'var(--text)', letterSpacing: '-0.005em' }}>{c.name}</div>
            </div>
        )}
        </div>
        <div style={{ padding: '14px 18px', textAlign: 'center' }}>
          <span className="mono" style={{ fontSize: 10.5, color: 'var(--accent)', letterSpacing: '0.14em' }}>
            ↓ {footerCells.connector || 'NORMALIZED LAYER'} ↓
          </span>
        </div>
        <div style={{ display: 'grid', gridTemplateColumns: `repeat(${footerCells.cells.length}, 1fr)`, borderTop: '1px solid var(--line)', background: 'rgba(0,255,255,0.04)' }}>
          {footerCells.cells.map(([k, v], i) =>
        <div key={i} style={{ padding: '18px 20px', borderRight: i < footerCells.cells.length - 1 ? '1px solid var(--line)' : 'none' }}>
              <div className="kicker" style={{ fontSize: 10 }}>{k}</div>
              <div style={{ marginTop: 6, fontSize: 13, color: 'var(--text)' }}>{v}</div>
            </div>
        )}
        </div>
      </div>
    </div>
  </section>;


Object.assign(window, { SubpageHero, SubpageIndex, SubpageDeepCard, SubpageBody, SchematicVisual, SubpageConnects });