// -------------------------------------------------------------------------
// RECURSO EM DESTAQUE
//
// Destino: /lp/components/middle.jsx
// Protótipo: lab/protos/recurso-em-destaque.html · Ficha: refs/recurso-em-destaque/ficha.md
// GERADO por tools/portar.py — edite o protótipo e rode de novo.
//
// Ícones: use `II` (window.Icon), já aliasado no topo de middle.jsx.
// Tudo vive numa IIFE porque os arquivos de /lp/components/ dividem o
// mesmo escopo global — nomes soltos colidem entre si.
// -------------------------------------------------------------------------

(function () {
  // ---------------------------------------------------------------------------
  // Dados reais: loja UperClean (uperclean.com), checkout cartROI em
  // pagamento.uperclean.com. Preços e descontos vindos de /products.json.
  // ---------------------------------------------------------------------------
  const LOJA = {
    nome: 'UperClean',
    primaria: '#5148FF',   // roxo da marca (rgb(81,72,255))
    sucesso: '#18E889',    // verde da marca
    aviso: 'Pague com PIX e ganhe 5% de desconto!',
    freteGratisAcima: 200,
  };

  const SUBTOTAL = 89.70;
  const DESC_PIX = 0.05;

  const BUMPS = [
    { nome: 'Limpador Multiuso TUDO 500ml',   de: 25.90, por: 17.90,
      img: '/lp/assets/uperclean/multiuso.jpg' },
    { nome: 'Home Spray Casaflor Bamboo',     de: 39.90, por: 27.90,
      img: '/lp/assets/uperclean/homespray.jpg' },
    { nome: 'Pano de Chão Microfibra 50x90',  de: 25.90, por: 17.90,
      img: '/lp/assets/uperclean/pano.jpg' },
  ];

  const brl = (v) => v.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
  const pct = (de, por) => Math.round((1 - por / de) * 100);

  // ---------------------------------------------------------------------------
  // Timeline. Índice = etapa; valor = quanto ela dura.
  //  0 telas trocando · 1 cursor→PIX · 2 PIX selecionado · 3 valor+lista entram
  //  4,5,6 marca cada bump · 7 CTA confirma · 8 hold e reinicia
  // ---------------------------------------------------------------------------
  const DUR = [900, 1000, 900, 700, 1150, 1150, 1150, 1150, 1400];
  const ETAPA_FINAL = 7;

  // Quando o dedo desce, por etapa. Na 2 o cursor já está sobre o PIX (chegou na
  // etapa 1); nas 4-7 ele precisa viajar os 550ms da transição antes de apertar.
  const PRESSIONA_EM = { 2: 90, 4: 580, 5: 580, 6: 580, 7: 580 };
  const DUR_PRESS = 130;

  function useReduced() {
    const [r, setR] = React.useState(false);
    React.useEffect(() => {
      if (!window.matchMedia) return;
      const mq = window.matchMedia('(prefers-reduced-motion: reduce)');
      setR(mq.matches);
      const on = (e) => setR(e.matches);
      mq.addEventListener ? mq.addEventListener('change', on) : mq.addListener(on);
      return () => { mq.removeEventListener ? mq.removeEventListener('change', on) : mq.removeListener(on); };
    }, []);
    return r;
  }

  // Contador suave — mesma técnica dos AnimNum/DashNum que já existem no site.
  function useContador(alvo, ativo) {
    const [v, setV] = React.useState(alvo);
    const de = React.useRef(alvo);
    React.useEffect(() => {
      if (!ativo) { setV(alvo); de.current = alvo; return; }
      const inicio = de.current, delta = alvo - inicio, t0 = performance.now(), dur = 420;
      let raf;
      const tick = (t) => {
        const p = Math.min(1, (t - t0) / dur);
        const e = 1 - Math.pow(1 - p, 3);
        setV(inicio + delta * e);
        if (p < 1) raf = requestAnimationFrame(tick); else de.current = alvo;
      };
      raf = requestAnimationFrame(tick);
      return () => cancelAnimationFrame(raf);
    }, [alvo, ativo]);
    return v;
  }

  // Duas camadas: a de fora viaja (550ms), a de dentro aperta (160ms). Se fosse
  // um transform só, o aperto herdaria a lentidão da viagem.
  function Cursor({ x, y, visivel, clicando }) {
    return (
      <div
        className="absolute left-0 top-0 z-30 pointer-events-none will-change-transform"
        style={{
          transform: `translate(${x}px, ${y}px)`,
          opacity: visivel ? 1 : 0,
          transition: 'transform .55s cubic-bezier(.2,.7,.2,1), opacity .3s ease',
        }}
      >
        <div className="origin-top-left will-change-transform"
          style={{ transform: `scale(${clicando ? 0.8 : 1})`, transition: 'transform .16s cubic-bezier(.2,.7,.2,1)' }}>
          <svg width="22" height="26" viewBox="0 0 22 26" fill="none">
            <path d="M2 2l16 10.5-7 1.3L7.6 22 2 2z" fill="#0f0a1f" stroke="#fff" strokeWidth="1.6" strokeLinejoin="round"/>
          </svg>
          {/* Onda do clique */}
          <span className="absolute left-0 top-0 -z-10 block h-7 w-7 rounded-full"
            style={{
              background: 'radial-gradient(circle, rgba(15,10,31,.28), transparent 70%)',
              transform: `translate(-9px,-4px) scale(${clicando ? 1.35 : 0.4})`,
              opacity: clicando ? 1 : 0,
              transition: 'transform .3s cubic-bezier(.2,.7,.2,1), opacity .3s ease',
            }}></span>
        </div>
      </div>
    );
  }

  function Tela({ titulo, sub, feito, saindo }) {
    return (
      <div
        className="rounded-2xl bg-white/95 px-4 py-3.5 shadow-[0_18px_40px_-18px_rgba(0,0,0,.55)] will-change-transform"
        style={{
          transform: saindo ? 'translateY(-118%) scale(.94) rotate(-2.2deg)' : 'translateY(0) scale(1)',
          opacity: saindo ? 0 : 1,
          transition: 'transform .9s cubic-bezier(.2,.7,.2,1), opacity .9s cubic-bezier(.2,.7,.2,1)',
        }}
      >
        <div className="flex items-center gap-1.5">
          <span className="text-[17px] font-semibold tracking-[-0.02em] text-[#1a1233]">{titulo}</span>
          {feito && (
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke={LOJA.sucesso} strokeWidth="3" strokeLinecap="round" strokeLinejoin="round">
              <circle cx="12" cy="12" r="10" strokeWidth="2"/><polyline points="8 12.5 11 15.5 16 9.5"/>
            </svg>
          )}
        </div>
        <div className="mt-0.5 text-[11.5px] text-[#1a1233]/45">{sub}</div>
      </div>
    );
  }

  function RecursoEmDestaque() {
    const reduzido = useReduced();
    const [etapa, setEtapa] = React.useState(0);
    // `aplicado` anda atrás de `etapa`: o efeito visual só entra quando o dedo
    // solta, nunca antes de o cursor chegar.
    const [aplicado, setAplicado] = React.useState(0);
    const [pressionando, setPressionando] = React.useState(false);
    const [visivel, setVisivel] = React.useState(false);
    const [cursor, setCursor] = React.useState({ x: 250, y: 470 });
    const secaoRef = React.useRef(null);
    const telaRef = React.useRef(null);
    const alvos = React.useRef({});

    // Só roda com a seção na tela — é um loop de 9s, não pode queimar frame escondido.
    React.useEffect(() => {
      const el = secaoRef.current;
      if (!el) return;
      const io = new IntersectionObserver(([e]) => setVisivel(e.isIntersecting), { threshold: 0.35 });
      io.observe(el);
      return () => io.disconnect();
    }, []);

    React.useEffect(() => {
      if (reduzido) { setEtapa(ETAPA_FINAL); setAplicado(ETAPA_FINAL); return; }
      if (!visivel) return;
      const t = setTimeout(() => setEtapa((e) => (e + 1) % DUR.length), DUR[etapa]);
      return () => clearTimeout(t);
    }, [etapa, visivel, reduzido]);

    // Ciclo do clique: cursor chega → encolhe (dedo desce) → cresce de volta e,
    // nesse instante, o elemento muda de cor.
    React.useEffect(() => {
      if (reduzido || !visivel) return;
      const atraso = PRESSIONA_EM[etapa];
      if (atraso == null) { setAplicado(etapa); setPressionando(false); return; }
      const desce = setTimeout(() => setPressionando(true), atraso);
      const sobe = setTimeout(() => { setPressionando(false); setAplicado(etapa); }, atraso + DUR_PRESS);
      return () => { clearTimeout(desce); clearTimeout(sobe); };
    }, [etapa, visivel, reduzido]);

    // Alvo do cursor por etapa. Medimos o elemento real: funciona em qualquer
    // tamanho de tela e anima só transform.
    const alvoDaEtapa = { 1: 'pix', 2: 'pix', 3: 'pix', 4: 'bump0', 5: 'bump1', 6: 'bump2', 7: 'cta' };
    React.useLayoutEffect(() => {
      if (reduzido) return;
      const chave = alvoDaEtapa[etapa];
      const el = chave && alvos.current[chave];
      const tela = telaRef.current;
      if (!el || !tela) return;
      const a = el.getBoundingClientRect(), b = tela.getBoundingClientRect();
      setCursor({ x: a.left - b.left + 26, y: a.top - b.top + a.height / 2 - 2 });
    }, [etapa, reduzido]);

    const pixEscolhido = aplicado >= 2;
    const listaVisivel = aplicado >= 3;
    const marcados = Math.max(0, Math.min(3, aplicado - 3));
    const confirmado = aplicado >= ETAPA_FINAL;

    // Escala de quem está sendo apertado agora. Desce rápido, sobe junto com a cor.
    const apertado = (chave) => (pressionando && alvoDaEtapa[etapa] === chave ? 0.93 : 1);
    const TRANS_PRESS = 'transform .16s cubic-bezier(.2,.7,.2,1)';

    const somaBumps = BUMPS.slice(0, marcados).reduce((s, b) => s + b.por, 0);
    const totalPix = (SUBTOTAL + somaBumps) * (1 - DESC_PIX);
    const total = useContador(totalPix, !reduzido);
    const falta = Math.max(0, LOJA.freteGratisAcima - (SUBTOTAL + somaBumps));
    const progresso = Math.min(100, ((SUBTOTAL + somaBumps) / LOJA.freteGratisAcima) * 100);

    const reg = (k) => (el) => { if (el) alvos.current[k] = el; };

    return (
      <section ref={secaoRef} className="relative overflow-hidden py-20 lg:py-28">
        <style>{`
          /* Glow dot-matrix do topo — radial + máscara de pontos. Estático: nada de filter animado. */
          .dot-glow {
          background-image:
          radial-gradient(closest-side, rgba(167,139,250,.95), rgba(103,232,249,.35) 45%, transparent 75%);
          -webkit-mask-image: radial-gradient(#000 1.1px, transparent 1.2px);
          mask-image: radial-gradient(#000 1.1px, transparent 1.2px);
          -webkit-mask-size: 5px 5px; mask-size: 5px 5px;
          }
        `}</style>
        {/* Cena escura com o glow dot-matrix vazando por cima do aparelho */}
        <div className="absolute inset-0 -z-10">
          <div className="mesh-blob bg-violet-700/60 w-[520px] h-[520px] -top-40 left-1/2 -translate-x-1/2 animate-drift1"></div>
          <div className="mesh-blob bg-cyan-400/25 w-[380px] h-[380px] top-1/3 -right-24 animate-drift2"></div>
          <div className="absolute inset-0 bg-gradient-to-b from-transparent via-ink/60 to-ink"></div>
        </div>

        <div className="mx-auto grid max-w-6xl items-center gap-14 px-6 lg:grid-cols-[1fr_auto] lg:gap-20 lg:px-10">
          {/* Texto */}
          <div className="reveal order-2 lg:order-1">
            <div className="inline-flex items-center gap-2 rounded-full border border-violet-300/20 bg-violet-500/10 px-3 py-1.5 text-[12px] font-medium text-violet-200">
              <span className="h-1.5 w-1.5 rounded-full bg-cyan-400"></span>
              Recursos que já vêm ligados
            </div>
            <h2 className="mt-5 text-4xl font-semibold leading-[1.05] tracking-[-0.03em] sm:text-5xl">
              Order bump que <span className="grad-cyan">recalcula sozinho.</span>
            </h2>
            <p className="mt-6 max-w-lg text-lg leading-relaxed text-violet-100/70">
              O comprador escolhe PIX, ganha o desconto e vê ofertas complementares no mesmo
              passo — sem recarregar, sem sair do fluxo. O total, o desconto e a barra de frete
              grátis se atualizam no mesmo instante.
            </p>
            <div className="mt-7 flex flex-wrap gap-x-5 gap-y-2 text-[13px] text-violet-200/70">
              <span>Desconto por método de pagamento</span>
              <span className="text-violet-200/20">·</span>
              <span>Ofertas por regra de carrinho</span>
              <span className="text-violet-200/20">·</span>
              <span>Barra de frete grátis</span>
            </div>
            <p className="mt-8 font-mono text-[11.5px] leading-relaxed text-violet-200/40">
              Checkout real da <span className="text-violet-100/70">UperClean</span> · pagamento.uperclean.com<br />
              O checkout veste a marca da loja, não a nossa.
            </p>
          </div>

          {/* Aparelho — ilustração decorativa: o conteúdo textual está na coluna ao lado,
              então some do a11y tree em vez de narrar um checkout falso. */}
          <div className="order-1 flex justify-center lg:order-2" aria-hidden="true">
            <div className="relative">
              {/* Glow dot-matrix acima do aparelho */}
              <div className="dot-glow pointer-events-none absolute -top-16 left-1/2 h-40 w-[420px] -translate-x-1/2 opacity-70"></div>

              <div className="relative w-[318px] rounded-[42px] border border-white/10 bg-[#0b0718] p-2.5 shadow-[0_50px_120px_-40px_rgba(124,58,237,.65)]">
                <div className="absolute left-1/2 top-4 h-4 w-24 -translate-x-1/2 rounded-full bg-black/70"></div>

                <div ref={telaRef} className="relative h-[664px] overflow-hidden rounded-[34px] bg-[#f6f6f9]">
                  {/* Cabeçalho do checkout, com a marca da loja */}
                  <div className="flex items-center justify-between bg-white px-4 pb-2.5 pt-9">
                    <span className="text-[15px] font-bold tracking-[-0.02em]" style={{ color: LOJA.primaria }}>
                      {LOJA.nome}
                    </span>
                    <span className="flex items-center gap-1 text-[9.5px] text-[#1a1233]/50">
                      <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.4"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
                      Pagamento seguro
                    </span>
                  </div>
                  <div className="px-3 py-2 text-center text-[10.5px] font-medium text-white" style={{ background: LOJA.primaria }}>
                    {LOJA.aviso}
                  </div>

                  {/* Etapas do checkout real: Identificação · Endereço · Pagamento */}
                  <div className="flex items-center gap-1.5 px-4 py-3 text-[9.5px]">
                    {['Identificação', 'Endereço', 'Pagamento'].map((s, i) => (
                      <React.Fragment key={s}>
                        <span className="flex items-center gap-1" style={{ color: i === 2 ? LOJA.primaria : '#1a123366' }}>
                          <span className="grid h-3.5 w-3.5 place-items-center rounded-full text-[7.5px] font-bold text-white"
                                style={{ background: i === 2 ? LOJA.primaria : '#c9c9d4' }}>
                            {i < 2 ? '✓' : '3'}
                          </span>
                          {s}
                        </span>
                        {i < 2 && <span className="h-px flex-1 bg-[#1a1233]/12"></span>}
                      </React.Fragment>
                    ))}
                  </div>

                  {/* Pilha de telas: Entrega sai, Pagamento fica */}
                  <div className="relative px-3">
                    {!reduzido && (
                      <div className="absolute inset-x-3 top-0 z-10">
                        <Tela titulo="Entrega" sub="Cadastre ou selecione um endereço" feito saindo={etapa >= 1} />
                      </div>
                    )}

                    <div
                      className="relative rounded-2xl bg-white px-4 py-4 shadow-[0_18px_40px_-20px_rgba(0,0,0,.35)] will-change-transform"
                      style={{
                        transform: etapa === 0 ? 'translateY(46px)' : 'translateY(0)',
                        opacity: etapa === 0 ? 0.35 : 1,
                        transition: 'transform .9s cubic-bezier(.2,.7,.2,1), opacity .9s cubic-bezier(.2,.7,.2,1)',
                      }}
                    >
                      <div className="text-[17px] font-semibold tracking-[-0.02em] text-[#1a1233]">Pagamento</div>
                      <div className="mt-0.5 text-[11px] text-[#1a1233]/45">Escolha uma forma de pagamento</div>

                      {/* Cartão */}
                      <div className="mt-3 flex items-center gap-2.5 rounded-xl border border-[#1a1233]/10 bg-white px-3 py-2.5">
                        <span className="h-3.5 w-3.5 rounded-full border-2 border-[#1a1233]/20"></span>
                        <span className="text-[12.5px] text-[#1a1233]/80">Cartão de crédito</span>
                      </div>

                      {/* PIX */}
                      <div className="relative mt-2">
                        <div
                          className="pointer-events-none absolute -top-2.5 right-1 z-20 rounded-md bg-[#0f0a1f] px-2 py-1 text-[9px] font-medium text-white will-change-transform"
                          style={{
                            transform: etapa >= 1 ? 'translateY(0) scale(1)' : 'translateY(5px) scale(.9)',
                            opacity: etapa >= 1 ? 1 : 0,
                            transition: 'transform .26s cubic-bezier(.2,.7,.2,1), opacity .26s ease',
                          }}
                        >
                          5% de desconto hoje
                        </div>
                        <div
                          ref={reg('pix')}
                          className="flex items-center gap-2.5 rounded-xl px-3 py-2.5"
                          style={{
                            background: pixEscolhido ? LOJA.primaria : '#fff',
                            border: `1px solid ${pixEscolhido ? LOJA.primaria : 'rgba(26,18,51,.10)'}`,
                            transform: `scale(${apertado('pix')})`,
                            transition: `background .32s ease, border-color .32s ease, ${TRANS_PRESS}`,
                          }}
                        >
                          <span className="grid h-3.5 w-3.5 place-items-center rounded-full border-2"
                                style={{ borderColor: pixEscolhido ? '#fff' : 'rgba(26,18,51,.20)' }}>
                            <span className="h-1.5 w-1.5 rounded-full bg-white"
                                  style={{ opacity: pixEscolhido ? 1 : 0, transition: 'opacity .32s ease' }}></span>
                          </span>
                          <span className="text-[12.5px] font-medium" style={{ color: pixEscolhido ? '#fff' : 'rgba(26,18,51,.8)' }}>
                            PIX
                          </span>
                        </div>
                      </div>

                      {/* Valor + ofertas complementares */}
                      <div
                        className="overflow-hidden will-change-transform"
                        style={{
                          maxHeight: listaVisivel ? 320 : 0,
                          opacity: listaVisivel ? 1 : 0,
                          transition: 'max-height .7s cubic-bezier(.2,.7,.2,1), opacity .5s ease',
                        }}
                      >
                        <div className="mt-3 text-[13.5px] font-semibold tabular-nums" style={{ color: LOJA.sucesso }}>
                          Valor no PIX: R$ {brl(total)}
                        </div>
                        <div className="mt-0.5 text-[10px] text-[#1a1233]/45">Leve junto com desconto:</div>

                        <div className="mt-2 grid gap-1.5">
                          {BUMPS.map((b, i) => {
                            const on = i < marcados;
                            return (
                              <div key={b.nome}
                                className="flex min-w-0 items-center gap-2 rounded-xl border border-[#1a1233]/8 bg-white px-2 py-1.5"
                                style={{
                                  transform: `translateX(${listaVisivel ? 0 : -14}px) scale(${apertado('bump' + i)})`,
                                  opacity: listaVisivel ? 1 : 0,
                                  transition: pressionando || apertado('bump' + i) < 1
                                    ? TRANS_PRESS
                                    : `transform .5s cubic-bezier(.2,.7,.2,1) ${90 * i}ms, opacity .5s ease ${90 * i}ms`,
                                }}
                              >
                                <span ref={reg('bump' + i)}
                                  className="grid h-4 w-4 shrink-0 place-items-center rounded-[5px] border-2"
                                  style={{
                                    background: on ? LOJA.sucesso : '#fff',
                                    borderColor: on ? LOJA.sucesso : 'rgba(26,18,51,.18)',
                                    transition: 'background .25s ease, border-color .25s ease',
                                  }}>
                                  <svg width="9" height="9" viewBox="0 0 24 24" fill="none" stroke="#fff" strokeWidth="4"
                                       strokeLinecap="round" strokeLinejoin="round"
                                       style={{ opacity: on ? 1 : 0, transition: 'opacity .25s ease' }}>
                                    <polyline points="20 6 9 17 4 12"/>
                                  </svg>
                                </span>
                                <img src={b.img} alt="" className="h-7 w-7 shrink-0 rounded-md object-cover" />
                                <span className="min-w-0 flex-1 truncate text-[10px] leading-tight text-[#1a1233]/85">{b.nome}</span>
                                <span className="shrink-0 whitespace-nowrap text-right">
                                  <span className="block text-[8px] font-semibold text-rose-500">-{pct(b.de, b.por)}%</span>
                                  <span className="block text-[10.5px] font-bold tabular-nums" style={{ color: LOJA.sucesso }}>
                                    R$ {brl(b.por)}
                                  </span>
                                </span>
                              </div>
                            );
                          })}
                        </div>

                        {/* Barra de frete grátis — existe no checkout real */}
                        <div className="mt-2.5 rounded-lg bg-[#1a1233]/[0.04] px-2.5 py-2">
                          <div className="flex items-center justify-between text-[9.5px] text-[#1a1233]/60">
                            <span>{falta > 0 ? `Faltam R$ ${brl(falta)} para frete grátis` : 'Frete grátis liberado'}</span>
                            <span className="tabular-nums font-medium">{Math.round(progresso)}%</span>
                          </div>
                          <div className="mt-1 h-1 overflow-hidden rounded-full bg-[#1a1233]/10">
                            <div className="h-full origin-left rounded-full will-change-transform"
                                 style={{ background: LOJA.sucesso, width: '100%',
                                          transform: `scaleX(${progresso / 100})`,
                                          transition: 'transform .6s cubic-bezier(.2,.7,.2,1)' }}></div>
                          </div>
                        </div>
                      </div>

                      {/* CTA */}
                      <div ref={reg('cta')}
                        className="mt-3 grid h-10 place-items-center rounded-xl text-[12.5px] font-bold tracking-wide text-white"
                        style={{
                          background: confirmado ? LOJA.sucesso : LOJA.primaria,
                          transform: `scale(${apertado('cta')})`,
                          transition: `background .4s ease, ${TRANS_PRESS}`,
                        }}>
                        {confirmado ? (
                          <span className="flex items-center gap-1.5">
                            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#fff" strokeWidth="2.6" strokeLinecap="round" strokeLinejoin="round">
                              <circle cx="12" cy="12" r="10"/><polyline points="8 12.5 11 15.5 16 9"/>
                            </svg>
                            PEDIDO CONFIRMADO
                          </span>
                        ) : 'FINALIZAR PEDIDO'}
                      </div>
                    </div>
                  </div>

                  {/* Rodapé de meios de pagamento — existe no checkout real */}
                  <div className="absolute inset-x-0 bottom-0 flex flex-col items-center gap-1 pb-3 pt-2">
                    <div className="flex items-center gap-1">
                      {['PIX', 'Cartão', 'Boleto'].map((m) => (
                        <span key={m} className="rounded bg-[#1a1233]/[0.06] px-1.5 py-0.5 text-[7.5px] font-semibold text-[#1a1233]/55">{m}</span>
                      ))}
                      {['#1a1f71', '#eb001b', '#00a4e0'].map((c, i) => (
                        <span key={i} className="h-3 w-5 rounded-[3px] opacity-70" style={{ background: c }}></span>
                      ))}
                    </div>
                    <span className="text-[7.5px] text-[#1a1233]/35">Uper Clean · CNPJ 44.652.513/0001-52</span>
                  </div>

                  {!reduzido && (
                    <Cursor x={cursor.x} y={cursor.y} visivel={etapa >= 1} clicando={pressionando} />
                  )}
                </div>
              </div>
            </div>
          </div>
        </div>
      </section>
    );
  }

  setTimeout(() => window.__attachReveal && window.__attachReveal(), 50);

  Object.assign(window, { RecursoEmDestaque });
})();
