// ============================================================
// OBPC — Main content sections
// ============================================================

const { useState: useStateS, useEffect: useEffectS, useRef: useRefS } = React;

// ---------- Section: O que é a Obra ----------
const SectionObra = ({ palette }) => {
  return (
    <section id="obra" className="obpc-section obpc-section--obra" style={{ background: palette.surface, color: palette.fg }}>
      <div className="obpc-sec-head">
        <span className="obpc-sec-num" style={{ color: palette.accent }}>01 /</span>
        <span className="obpc-sec-kicker" style={{ color: palette.muted }}>O que é a Obra</span>
      </div>

      <Reveal>
        <h2 className="obpc-sec-title">
          Quando falamos <span style={{ color: palette.accent, fontStyle: "italic" }}>"a Obra"</span>,
          estamos falando de algo muito maior do que um prédio.
        </h2>
      </Reveal>

      <div className="obpc-obra-grid">
        <Reveal delay={80}>
          <div className="obpc-obra-col">
            <p className="obpc-body" style={{ color: palette.muted }}>
              Fundada em <strong style={{ color: palette.fg }}>1955</strong> pelo missionário
              <strong style={{ color: palette.fg }}> Manoel de Mello</strong>, a OBPC começou como
              um movimento itinerante de evangelismo, cura e libertação — e se tornou uma das maiores
              denominações evangélicas do país.
            </p>
            <p className="obpc-body" style={{ color: palette.muted }}>
              A Obra é o agir de Deus na vida das pessoas. Cada culto, cada oração, cada vida
              alcançada. A Obra acontece quando alguém é restaurado, encontra esperança,
              conhece Jesus de verdade.
            </p>
          </div>
        </Reveal>
        <Reveal delay={160}>
          <div className="obpc-obra-quote" style={{ borderColor: palette.accent }}>
            <span className="obpc-quote-mark" style={{ color: palette.accent }}>"</span>
            <p style={{ color: palette.fg }}>
              Mais do que participar, somos chamados a <em style={{ color: palette.accent }}>fazer parte</em> da Obra.
            </p>
          </div>
        </Reveal>
      </div>

      <Reveal delay={240}>
        <div className="obpc-obra-stats">
          {[
            ["1955", "Fundação"],
            ["70+", "Anos de missão"],
            ["5", "Ministérios"],
            ["∞", "Vidas transformadas"],
          ].map(([n, l], i) => (
            <div key={i} className="obpc-stat">
              <div className="obpc-stat-num" style={{ color: i === 0 ? palette.accent : palette.fg }}>{n}</div>
              <div className="obpc-stat-label" style={{ color: palette.muted }}>{l}</div>
            </div>
          ))}
        </div>
      </Reveal>
    </section>
  );
};

// ---------- Section: Fundamentos ----------
const FUNDAMENTOS = [
  {
    id: "salvacao",
    title: "Salvação em Jesus Cristo",
    desc: "O evangelho como centro. A cruz como caminho. A graça como fundamento de toda vida cristã.",
    verse: "João 14:6",
  },
  {
    id: "espirito",
    title: "Batismo com o Espírito Santo",
    desc: "Poder do alto para viver, servir e anunciar. A marca pentecostal que acompanha a Obra desde 1955.",
    verse: "Atos 1:8",
  },
  {
    id: "oracao",
    title: "Oração constante",
    desc: "Diálogo íntimo com o Pai. O primeiro movimento antes de qualquer obra, culto ou decisão.",
    verse: "1 Tessalonicenses 5:17",
  },
  {
    id: "palavra",
    title: "Ensino da Palavra",
    desc: "A Bíblia como autoridade. O ensino como prática. Discipulado como compromisso com o crescimento.",
    verse: "2 Timóteo 3:16",
  },
  {
    id: "amor",
    title: "Amor ao próximo",
    desc: "Fé que se manifesta em cuidado. Ações sociais, acolhimento, restauração de famílias e comunidades.",
    verse: "João 13:34",
  },
];

const SectionFundamentos = ({ palette }) => {
  const [active, setActive] = useStateS(0);
  return (
    <section id="fundamentos" className="obpc-section obpc-section--fund" style={{ background: palette.bg, color: palette.fg }}>
      <div className="obpc-sec-head">
        <span className="obpc-sec-num" style={{ color: palette.accent }}>02 /</span>
        <span className="obpc-sec-kicker" style={{ color: palette.muted }}>Fundamentos</span>
      </div>

      <Reveal>
        <h2 className="obpc-sec-title">
          Firmados em princípios bíblicos<br/>
          e na fé <span style={{ color: palette.accent, fontStyle: "italic" }}>pentecostal</span>.
        </h2>
      </Reveal>

      <div className="obpc-fund-wrap">
        <div className="obpc-fund-list">
          {FUNDAMENTOS.map((f, i) => (
            <button
              key={f.id}
              className={`obpc-fund-item ${active === i ? "is-active" : ""}`}
              onClick={() => setActive(i)}
              onMouseEnter={() => setActive(i)}
              style={{
                borderColor: active === i ? palette.accent : `${palette.fg}22`,
                color: active === i ? palette.fg : palette.muted,
              }}
            >
              <span className="obpc-fund-num" style={{ color: active === i ? palette.accent : palette.muted }}>
                {String(i + 1).padStart(2, "0")}
              </span>
              <span className="obpc-fund-title">{f.title}</span>
              <span className="obpc-fund-arrow" style={{ color: active === i ? palette.accent : `${palette.muted}88` }}>
                {active === i ? "●" : "○"}
              </span>
            </button>
          ))}
        </div>
        <div className="obpc-fund-detail" style={{ background: palette.surface, borderColor: `${palette.accent}33` }}>
          <div className="obpc-fund-detail-num" style={{ color: palette.accent }}>
            {String(active + 1).padStart(2, "0")}
          </div>
          <h3 className="obpc-fund-detail-title">{FUNDAMENTOS[active].title}</h3>
          <p className="obpc-fund-detail-desc" style={{ color: palette.muted }}>
            {FUNDAMENTOS[active].desc}
          </p>
          <div className="obpc-fund-verse" style={{ color: palette.accent, borderColor: `${palette.accent}44` }}>
            <span>Referência</span>
            <strong>{FUNDAMENTOS[active].verse}</strong>
          </div>
        </div>
      </div>
    </section>
  );
};

// ---------- Section: Ministérios ----------
const MINISTERIOS = [
  { sigla: "UFEBRAC", nome: "Mulheres", desc: "União Feminina Brasil para Cristo. Força, oração e cuidado.", idade: "adultas", tone: "fire" },
  { sigla: "UMASBRAC", nome: "Homens", desc: "União Masculina Brasil para Cristo. Liderança, integridade e serviço.", idade: "adultos", tone: "deep" },
  { sigla: "MENIBRAC", nome: "Crianças", desc: "Ministério infantil. Primeiros passos na fé através de brincadeira e ensino.", idade: "4–11 anos", tone: "warm" },
  { sigla: "ADOBRAC", nome: "Adolescentes", desc: "Ministério para adolescentes. Identidade, valores e descoberta espiritual.", idade: "12–14 anos", tone: "fire" },
  { sigla: "JUBRAC", nome: "Jovens", desc: "Juventude Unida O Brasil Para Cristo. A força que levanta gerações.", idade: "15–29 anos", tone: "deep", highlight: true },
];

const SectionMinisterios = ({ palette }) => {
  const [hover, setHover] = useStateS(null);
  return (
    <section id="ministerios" className="obpc-section obpc-section--min" style={{ background: palette.surface, color: palette.fg }}>
      <div className="obpc-sec-head">
        <span className="obpc-sec-num" style={{ color: palette.accent }}>03 /</span>
        <span className="obpc-sec-kicker" style={{ color: palette.muted }}>Ministérios</span>
      </div>

      <Reveal>
        <h2 className="obpc-sec-title">
          Cada membro faz parte da Obra,<br/>
          contribuindo com seus <span style={{ color: palette.accent, fontStyle: "italic" }}>dons e talentos</span>.
        </h2>
      </Reveal>

      <div className="obpc-min-grid">
        {MINISTERIOS.map((m, i) => (
          <Reveal key={m.sigla} delay={i * 60}>
            <article
              className={`obpc-min-card ${hover === i ? "is-hover" : ""} ${m.highlight ? "is-featured" : ""}`}
              onMouseEnter={() => setHover(i)}
              onMouseLeave={() => setHover(null)}
              style={{
                background: hover === i ? palette.accent : palette.bg,
                color: hover === i ? palette.bg : palette.fg,
                borderColor: m.highlight ? palette.accent : `${palette.fg}18`,
              }}
            >
              <div className="obpc-min-idx" style={{ color: hover === i ? palette.bg : palette.muted }}>
                {String(i + 1).padStart(2, "0")} / 05
              </div>
              <div className="obpc-min-sigla">{m.sigla}</div>
              <div className="obpc-min-nome" style={{ color: hover === i ? palette.bg : palette.accent, fontStyle: "italic" }}>
                {m.nome}
              </div>
              <p className="obpc-min-desc" style={{ color: hover === i ? palette.bg : palette.muted, opacity: hover === i ? 0.85 : 1 }}>
                {m.desc}
              </p>
              <div className="obpc-min-foot" style={{ borderColor: hover === i ? `${palette.bg}33` : `${palette.fg}18` }}>
                <span style={{ color: hover === i ? palette.bg : palette.muted }}>{m.idade}</span>
                <span className="obpc-min-arrow">→</span>
              </div>
            </article>
          </Reveal>
        ))}
      </div>

      <Reveal delay={200}>
        <div className="obpc-min-aux" style={{ borderColor: `${palette.fg}18`, color: palette.muted }}>
          <span className="obpc-min-aux-label">Além disso, ministérios locais:</span>
          <span className="obpc-min-aux-items">
            <em>Louvor</em> · <em>Intercessão</em> · <em>Evangelismo</em> · <em>Ensino</em>
          </span>
        </div>
      </Reveal>
    </section>
  );
};

// ---------- Section: JUBRAC ----------
const SectionJubrac = ({ palette }) => {
  const ref = useRefS(null);
  const [scroll, setScroll] = useStateS(0);
  useEffectS(() => {
    const onScroll = () => {
      if (!ref.current) return;
      const rect = ref.current.getBoundingClientRect();
      const prog = 1 - rect.top / window.innerHeight;
      setScroll(Math.max(0, Math.min(1, prog)));
    };
    window.addEventListener("scroll", onScroll, { passive: true });
    onScroll();
    return () => window.removeEventListener("scroll", onScroll);
  }, []);

  return (
    <section id="jubrac" ref={ref} className="obpc-section obpc-section--jub" style={{ background: palette.bg, color: palette.fg, overflow: "hidden" }}>
      {/* Parallax background word */}
      <div
        className="obpc-jub-bg"
        style={{
          transform: `translateY(${-scroll * 80}px)`,
          color: `${palette.accent}12`,
        }}
      >
        JUBRAC
      </div>

      <div className="obpc-sec-head">
        <span className="obpc-sec-num" style={{ color: palette.accent }}>04 /</span>
        <span className="obpc-sec-kicker" style={{ color: palette.muted }}>JUBRAC — a força dos jovens</span>
      </div>

      <Reveal>
        <h2 className="obpc-sec-title obpc-jub-title">
          Jovens que não apenas frequentam —<br/>
          <span style={{ color: palette.accent, fontStyle: "italic" }}>fazem parte</span> da Obra.
        </h2>
      </Reveal>

      <div className="obpc-jub-grid">
        <Reveal delay={100}>
          <div className="obpc-jub-copy">
            <p className="obpc-body" style={{ color: palette.muted }}>
              A <strong style={{ color: palette.fg }}>Juventude Unida O Brasil Para Cristo</strong> levanta
              jovens comprometidos com Deus, preparados para fazer a diferença na sociedade.
            </p>
            <ul className="obpc-jub-verbs">
              {["Adoram", "Aprendem", "Desenvolvem", "Evangelizam", "Vivem"].map((v, i) => (
                <li key={v} style={{
                  transform: `translateX(${scroll * (i + 1) * 8}px)`,
                  transition: "transform 600ms ease",
                }}>
                  <span className="obpc-jub-verb-num" style={{ color: palette.accent }}>
                    {String(i + 1).padStart(2, "0")}
                  </span>
                  <span className="obpc-jub-verb-word">{v}</span>
                  <span className="obpc-jub-verb-line" style={{ background: `${palette.accent}44` }}/>
                </li>
              ))}
            </ul>
          </div>
        </Reveal>

        <Reveal delay={180}>
          <div className="obpc-jub-visual">
            <img src={(window.__resources && window.__resources.jubLouvor1) || "/src/assets/jubrac/web/louvor-1.jpg"} alt="JUBRAC — Louvor" style={{ width: "100%", height: "100%", objectFit: "cover", display: "block", borderRadius: 4 }}/>
            <div className="obpc-jub-badge" style={{ background: palette.accent, color: palette.bg }}>
              <em>est.</em>
              <strong>JUBRAC</strong>
              <span>jovens · 15–29</span>
            </div>
          </div>
        </Reveal>
      </div>

      <Reveal delay={220}>
        <div className="obpc-jub-gallery">
          <div className="obpc-jub-gal-item obpc-jub-gal-tall">
            <img src={(window.__resources && window.__resources.jubLouvor2) || "/src/assets/jubrac/web/louvor-2.jpg"} alt="Adoração"/>
            <span className="obpc-jub-gal-cap">Na Tua Presença</span>
          </div>
          <div className="obpc-jub-gal-item">
            <img src={(window.__resources && window.__resources.jubBanda1) || "/src/assets/jubrac/web/banda-1.jpg"} alt="Banda"/>
            <span className="obpc-jub-gal-cap">Banda JUBRAC</span>
          </div>
          <div className="obpc-jub-gal-item">
            <img src={(window.__resources && window.__resources.jubPregacao1) || "/src/assets/jubrac/web/pregacao-1.jpg"} alt="Pregação"/>
            <span className="obpc-jub-gal-cap">Conexão JUBRAC</span>
          </div>
          <div className="obpc-jub-gal-item obpc-jub-gal-wide">
            <img src={(window.__resources && window.__resources.jubLouvor3) || "/src/assets/jubrac/web/louvor-3.jpg"} alt="Louvor"/>
            <span className="obpc-jub-gal-cap">Coração Queimou</span>
          </div>
          <div className="obpc-jub-gal-item">
            <img src={(window.__resources && window.__resources.jubJovens1) || "/src/assets/jubrac/web/jovens-1.jpg"} alt="Jovens"/>
            <span className="obpc-jub-gal-cap">Estudo da Palavra</span>
          </div>
          <div className="obpc-jub-gal-item">
            <img src={(window.__resources && window.__resources.jubPregacao2) || "/src/assets/jubrac/web/pregacao-2.jpg"} alt="Oração"/>
            <span className="obpc-jub-gal-cap">Tempo de oração</span>
          </div>
        </div>
      </Reveal>

      <Reveal delay={260}>
        <div className="obpc-jub-cta" style={{ borderColor: `${palette.accent}44` }}>
          <div>
            <div className="obpc-jub-cta-kicker" style={{ color: palette.muted }}>Nossa missão</div>
            <div className="obpc-jub-cta-line">
              <span>Ganhar almas</span>
              <span className="obpc-jub-cta-and" style={{ color: palette.accent }}>&</span>
              <span>cuidar de vidas.</span>
            </div>
          </div>
          <a className="obpc-btn obpc-btn--primary obpc-btn--lg" style={{ background: palette.accent, color: palette.bg }} href="#jubrac">
            Faça parte da Obra
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
          </a>
        </div>
      </Reveal>
    </section>
  );
};

Object.assign(window, { SectionObra, SectionFundamentos, SectionMinisterios, SectionJubrac });
