/* sections-proof.jsx — Comparison + theoretical pillars */

const CMP_OTHERS = {
  tag: "Os outros caminhos",
  h: "Apps, escolas e imersões",
  feats: [
    "Material genérico, mesmo conteúdo pra todo aluno",
    "Professor sem experiência de mercado executivo",
    "Aula em grupo ou conversação solta com nativo",
    'Prazo elástico: "fluência em 2 anos"',
    "Imersão dá confiança que dura 30 dias",
    "Vocabulário sim, palco global não",
  ],
};

const CMP_FLY = {
  tag: "CEO Fluente",
  h: "Acompanhamento 1:1 para C-level",
  feats: [
    "Pesquisa do seu setor antes de cada aula",
    "Instrutor com cases reais de palco global (Bruno · Equifax)",
    "1:1 100% online, agenda calibrada à sua rotina",
    "Prazo declarado: 6 meses até apresentar em inglês",
    "Resultado sustentado — sem efeito Cinderela",
    "Reunião com matriz, board, negociação internacional",
  ],
};

function CompareSlider() {
  const [pos, setPos] = React.useState(50);
  const [drag, setDrag] = React.useState(false);
  const ref = React.useRef(null);

  const move = React.useCallback((clientX) => {
    if (!ref.current) return;
    const r = ref.current.getBoundingClientRect();
    const p = Math.max(0, Math.min(100, ((clientX - r.left) / r.width) * 100));
    setPos(p);
  }, []);

  React.useEffect(() => {
    if (!drag) return;
    const onMove = (e) => move(e.clientX);
    const onTouch = (e) => move(e.touches[0].clientX);
    const stop = () => setDrag(false);
    window.addEventListener("mousemove", onMove);
    window.addEventListener("mouseup", stop);
    window.addEventListener("touchmove", onTouch, { passive: true });
    window.addEventListener("touchend", stop);
    return () => {
      window.removeEventListener("mousemove", onMove);
      window.removeEventListener("mouseup", stop);
      window.removeEventListener("touchmove", onTouch);
      window.removeEventListener("touchend", stop);
    };
  }, [drag, move]);

  const onTrackClick = (e) => {
    if (drag) return;
    move(e.clientX);
  };

  return (
    <div className="cmp-slider" ref={ref} onClick={onTrackClick}>
      <div className="cmp-pane cmp-pane--others">
        <div className="cmp-pane__inner">
          <span className="cmp-tag cmp-tag--others">{CMP_OTHERS.tag}</span>
          <h3>{CMP_OTHERS.h}</h3>
          <ul>
            {CMP_OTHERS.feats.map((f, i) => (
              <li key={i}><Icon name="x" /> {f}</li>
            ))}
          </ul>
        </div>
      </div>

      <div className="cmp-pane cmp-pane--us" style={{ clipPath: `inset(0 0 0 ${pos}%)` }}>
        <div className="cmp-pane__inner">
          <span className="cmp-tag cmp-tag--us">{CMP_FLY.tag}</span>
          <h3>{CMP_FLY.h}</h3>
          <ul>
            {CMP_FLY.feats.map((f, i) => (
              <li key={i}><Icon name="check" /> {f}</li>
            ))}
          </ul>
        </div>
      </div>

      <div
        className={"cmp-handle" + (drag ? " is-dragging" : "")}
        style={{ left: `calc(${pos}% - 1px)` }}
        onMouseDown={(e) => { e.preventDefault(); setDrag(true); }}
        onTouchStart={() => setDrag(true)}
        role="slider"
        aria-valuenow={Math.round(pos)}
        aria-valuemin={0}
        aria-valuemax={100}
        aria-label="Arraste para comparar"
        tabIndex={0}
        onKeyDown={(e) => {
          if (e.key === "ArrowLeft") setPos((p) => Math.max(0, p - 4));
          if (e.key === "ArrowRight") setPos((p) => Math.min(100, p + 4));
        }}
      >
        <div className="cmp-handle__line" />
        <div className="cmp-handle__knob">
          <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <polyline points="15 18 9 12 15 6" />
            <polyline points="9 18 15 12 9 6" transform="translate(8 0)" />
          </svg>
        </div>
      </div>
    </div>
  );
}

function Comparison() {
  return (
    <section className="section section-paper2">
      <div className="container">
        <div className="section-head reveal" style={{ textAlign: "center", margin: "0 auto" }}>
          <span className="eyebrow">Comparativo honesto</span>
          <h2 className="section-title">Arraste e veja a diferença.</h2>
          <p className="section-lede">À esquerda, o que o mercado entrega. À direita, o que entregamos.</p>
        </div>
        <div className="reveal" style={{ marginTop: 36 }}>
          <CompareSlider />
        </div>
      </div>
    </section>
  );
}

function Pillars() {
  const p1 = PILLARS[0], p2 = PILLARS[1], p3 = PILLARS[2], p4 = PILLARS[3];
  return (
    <section className="section section-pillars" id="pilares">
      <div className="container">
        <div className="section-head reveal" style={{ textAlign: "center", margin: "0 auto" }}>
          <span className="eyebrow">Como eu ensino</span>
          <h2 className="section-title">Quatro fundamentos pedagógicos. Zero achismo.</h2>
          <p className="section-lede">Os seis pilares acima são <b>o que</b> você trabalha. Estes quatro são <b>como</b>. Cada decisão de aula vem de métodos pedagógicos consagrados.</p>
        </div>

        <div className="pgrid reveal">
          {/* PILLAR 01 — big number badge */}
          <article className="pcard pcard--num">
            <div className="pcard__inner">
              <div className="pbadge">
                <svg className="pbadge__ring" viewBox="0 0 254 104" fill="none" aria-hidden="true">
                  <path d="M112.891 97.7022C140.366 97.0802 171.004 94.6715 201.087 87.5116C210.43 85.2881 219.615 82.6412 228.284 78.2473C232.198 76.3179 235.905 73.9942 239.348 71.3124C241.85 69.2557 243.954 66.7571 245.555 63.9408C249.34 57.3235 248.281 50.5341 242.498 45.6109C239.033 42.7237 235.228 40.2703 231.169 38.3054C219.443 32.7209 207.141 28.4382 194.482 25.534C184.013 23.1927 173.358 21.7755 162.64 21.2989C161.376 21.3512 160.113 21.181 158.908 20.796C158.034 20.399 156.857 19.1682 156.962 18.4535C157.115 17.8927 157.381 17.3689 157.743 16.9139C158.104 16.4588 158.555 16.0821 159.067 15.8066C160.14 15.4683 161.274 15.3733 162.389 15.5286C179.805 15.3566 196.626 18.8373 212.998 24.462C220.978 27.2494 228.798 30.4747 236.423 34.1232C240.476 36.1159 244.202 38.7131 247.474 41.8258C254.342 48.2578 255.745 56.9397 251.841 65.4892C249.793 69.8582 246.736 73.6777 242.921 76.6327C236.224 82.0192 228.522 85.4602 220.502 88.2924C205.017 93.7847 188.964 96.9081 172.738 99.2109C153.442 101.949 133.993 103.478 114.506 103.79C91.1468 104.161 67.9334 102.97 45.1169 97.5831C36.0094 95.5616 27.2626 92.1655 19.1771 87.5116C13.839 84.5746 9.1557 80.5802 5.41318 75.7725C-0.54238 67.7259 -1.13794 59.1763 3.25594 50.2827C5.82447 45.3918 9.29572 41.0315 13.4863 37.4319C24.2989 27.5721 37.0438 20.9681 50.5431 15.7272C68.1451 8.8849 86.4883 5.1395 105.175 2.83669C129.045 0.0992292 153.151 0.134761 177.013 2.94256C197.672 5.23215 218.04 9.01724 237.588 16.3889C240.089 17.3418 242.498 18.5197 244.933 19.6446C246.627 20.4387 247.725 21.6695 246.997 23.615C246.455 25.1105 244.814 25.5605 242.63 24.5811C230.322 18.9961 217.233 16.1904 204.117 13.4376C188.761 10.3438 173.2 8.36665 157.558 7.52174C129.914 5.70776 102.154 8.06792 75.2124 14.5228C60.6177 17.8788 46.5758 23.2977 33.5102 30.6161C26.6595 34.3329 20.4123 39.0673 14.9818 44.658C12.9433 46.8071 11.1336 49.1622 9.58207 51.6855C4.87056 59.5336 5.61172 67.2494 11.9246 73.7608C15.2064 77.0494 18.8775 79.925 22.8564 82.3236C31.6176 87.7101 41.3848 90.5291 51.3902 92.5804C70.6068 96.5773 90.0219 97.7419 112.891 97.7022Z" fill="currentColor" />
                </svg>
                <span className="pbadge__num">{p1.n}</span>
              </div>
              <h3>{p1.t}</h3>
              <p>{p1.p}</p>
            </div>
          </article>

          {/* PILLAR 02 — concentric circles with icon */}
          <article className="pcard pcard--ring">
            <div className="pcard__inner">
              <div className="pring">
                <div className="pring__halo" />
                <div className="pring__core"><Icon name={p2.icon} /></div>
              </div>
              <h3>{p2.t}</h3>
              <p>{p2.p}</p>
            </div>
          </article>

          {/* PILLAR 03 — sparkline level chart */}
          <article className="pcard pcard--chart">
            <div className="pcard__inner">
              <svg className="pspark" viewBox="0 0 200 90" preserveAspectRatio="none" aria-hidden="true">
                <defs>
                  <linearGradient id="psparkFill" x1="0" y1="0" x2="0" y2="1">
                    <stop offset="0" stopColor="var(--gold)" stopOpacity="0.35" />
                    <stop offset="1" stopColor="var(--gold)" stopOpacity="0" />
                  </linearGradient>
                </defs>
                <path d="M0 70 L20 65 L40 60 L60 50 L80 52 L100 38 L120 30 L140 22 L160 18 L180 12 L200 8 L200 90 L0 90 Z" fill="url(#psparkFill)" />
                <path d="M0 70 L20 65 L40 60 L60 50 L80 52 L100 38 L120 30 L140 22 L160 18 L180 12 L200 8" fill="none" stroke="var(--gold-bright)" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round" />
                <circle cx="200" cy="8" r="4" fill="var(--gold-bright)" />
              </svg>
              <h3>{p3.t}</h3>
              <p>{p3.p}</p>
            </div>
          </article>

          {/* PILLAR 04 — wide feedback panel */}
          <article className="pcard pcard--wide">
            <div className="pcard__inner pcard__inner--split">
              <div className="pwide-copy">
                <div className="pwide-icon"><Icon name={p4.icon} /></div>
                <h3>{p4.t}</h3>
                <p>{p4.p}</p>
              </div>
              <div className="pfeedback" aria-hidden="true">
                <div className="pfb">
                  <span className="pfb__dot" />
                  <span className="pfb__label">"Conditional 3 — usou had + past participle. ✓"</span>
                </div>
                <div className="pfb pfb--ok">
                  <span className="pfb__dot pfb__dot--ok" />
                  <span className="pfb__label">"Pronunciou <i>scheme</i> como /skiːm/. ✓"</span>
                </div>
                <div className="pfb pfb--warn">
                  <span className="pfb__dot pfb__dot--warn" />
                  <span className="pfb__label">"Travou em <i>"de quem é a responsabilidade"</i> — drill na próxima."</span>
                </div>
                <div className="pfb">
                  <span className="pfb__dot" />
                  <span className="pfb__label">"Recuperou bem após erro de tense. Ganho real."</span>
                </div>
                <div className="pfb__after">
                  <span className="pfb__avatar">R</span>
                  <span className="pfb__sent">Feedback escrito enviado · 18:42</span>
                </div>
              </div>
            </div>
          </article>
        </div>
      </div>
    </section>
  );
}

Object.assign(window, { Comparison, Pillars });
