/* global React, useMedia */

/* ─── LaunchBanner ───────────────────────────────────────────────────────────── */
function LaunchBanner() {
  const isMobile = useMedia("(max-width: 767px)");
  return (
    <div
      style={{
        background: "rgba(199,255,110,0.08)",
        borderBottom: "1px solid rgba(199,255,110,0.18)",
        padding: isMobile ? "10px 16px" : "10px 20px",
        textAlign: "center",
        color: "#C9D6C0",
        fontSize: isMobile ? 12 : 13,
        lineHeight: 1.45,
      }}
    >
      🚀{" "}
      <strong style={{ color: "#C7FF6E", fontWeight: 700 }}>
        Em fase de testes
      </strong>{" "}
      as vagas começam por São Paulo — mas você já pode se cadastrar de qualquer
      lugar do Brasil 🇧🇷
    </div>
  );
}

/* ─── Hero ─────────────────────────────────────────────────────────────────── */
function Hero() {
  const isMobile = useMedia("(max-width: 767px)");

  return (
    <section
      style={{
        position: "relative",
        padding: isMobile ? "48px 20px 0" : "80px 32px 64px",
        overflow: "hidden",
      }}
    >
      <div
        style={{
          position: "absolute",
          inset: 0,
          background:
            "radial-gradient(ellipse at 80% 30%, rgba(199,255,110,0.12), transparent 60%)",
          pointerEvents: "none",
        }}
      ></div>

      {!isMobile && (
        <div
          style={{
            position: "absolute",
            width: 560,
            height: 560,
            right: "max(0px, calc((100% - 1200px) / 2 + 40px))",
            bottom: 0,
            transform: "translateY(20%)",
            background:
              "radial-gradient(circle, rgba(199,255,110,0.2), transparent 65%)",
            filter: "blur(28px)",
            pointerEvents: "none",
          }}
        ></div>
      )}
      {!isMobile && (
        <img
          src="assets/vaguinho-character.png"
          alt=""
          style={{
            position: "absolute",
            height: 720,
            right: "max(-20px, calc((100% - 1200px) / 2 - 20px))",
            bottom: 0,
            zIndex: 1,
            pointerEvents: "none",
          }}
        />
      )}

      <div
        style={{
          maxWidth: 1200,
          margin: "0 auto",
          display: "grid",
          gridTemplateColumns: isMobile ? "1fr" : "1.1fr 1fr",
          gap: 48,
          alignItems: "center",
          position: "relative",
          zIndex: 2,
        }}
      >
        <div>
          <div
            style={{
              display: "inline-flex",
              alignItems: "center",
              gap: 8,
              background: "rgba(199,255,110,0.1)",
              border: "1px solid rgba(199,255,110,0.3)",
              color: "#C7FF6E",
              padding: "6px 14px",
              borderRadius: 999,
              fontSize: 12,
              fontWeight: 600,
              marginBottom: 24,
            }}
          >
            <span
              style={{
                width: 6,
                height: 6,
                borderRadius: 999,
                background: "#C7FF6E",
              }}
            ></span>
            Grátis · sem mensalidade, sem pegadinha
          </div>
          <h1
            style={{
              fontFamily: "Bricolage Grotesque",
              fontWeight: 800,
              fontSize: isMobile ? 48 : 84,
              lineHeight: isMobile ? 1.0 : 0.95,
              letterSpacing: "-0.04em",
              margin: 0,
              color: "#F4FBE9",
            }}
          >
            Quer encontrar uma <span style={{ color: "#C7FF6E" }}>vaga?</span>
            <br />
            Fale com o <span style={{ color: "#C7FF6E" }}>Vaguinho.</span>
          </h1>
          <p
            style={{
              color: "#C9D6C0",
              fontSize: isMobile ? 16 : 19,
              lineHeight: 1.55,
              margin: "20px 0 28px",
              maxWidth: 540,
            }}
          >
            Grave um vídeo curtinho se apresentando e veja as vagas que combinam
            com você nos{" "}
            <strong style={{ color: "#F4FBE9" }}>
              bares, restaurantes e hotéis
            </strong>{" "}
            da sua região. Se candidate nas que curtir e, se o dono gostar do
            seu vídeo, ele te chama direto no WhatsApp.
          </p>
          <div
            style={{
              display: "flex",
              gap: 12,
              alignItems: "center",
              flexWrap: "wrap",
            }}
          >
            <a
              href="#"
              onClick={(e) => {
                e.preventDefault();
                window.openCTA("hero-candidato");
              }}
              style={{
                background: "#C7FF6E",
                color: "#0B201A",
                padding: isMobile ? "16px 28px" : "18px 32px",
                borderRadius: 999,
                fontWeight: 700,
                fontSize: isMobile ? 16 : 17,
                textDecoration: "none",
                display: "inline-flex",
                alignItems: "center",
                gap: 10,
                boxShadow:
                  "0 0 0 4px rgba(199,255,110,0.18), 0 12px 36px rgba(199,255,110,0.22)",
                cursor: "pointer",
              }}
            >
              Bora me cadastrar →
            </a>
            {!isMobile && (
              <a
                href="#how"
                style={{
                  color: "#F4FBE9",
                  fontSize: 15,
                  fontWeight: 600,
                  padding: "18px 16px",
                  textDecoration: "none",
                }}
              >
                Como funciona
              </a>
            )}
          </div>
          <div
            style={{
              display: "flex",
              alignItems: "center",
              gap: 12,
              marginTop: 28,
              color: "#8FA597",
              fontSize: 13,
            }}
          >
            <div style={{ display: "flex" }}>
              {["#8B5A3C", "#235742", "#5C3A24", "#4A8F73"].map((c, i) => (
                <div
                  key={i}
                  style={{
                    width: 30,
                    height: 30,
                    borderRadius: 999,
                    background: c,
                    border: "2px solid #0B201A",
                    marginLeft: i ? -9 : 0,
                  }}
                ></div>
              ))}
            </div>
            <span>
              <strong style={{ color: "#F4FBE9" }}>4.300 jovens</strong>{" "}
              chamados pra entrevista esse mês
            </span>
          </div>
        </div>
        {!isMobile && <div></div>}
      </div>

      {/* Personagem in-flow no mobile, centralizado abaixo do conteúdo */}
      {isMobile && (
        <div
          style={{
            position: "relative",
            display: "flex",
            justifyContent: "center",
            marginTop: 40,
          }}
        >
          <div
            style={{
              position: "absolute",
              width: 300,
              height: 300,
              top: "50%",
              left: "50%",
              transform: "translate(-50%, -30%)",
              background:
                "radial-gradient(circle, rgba(199,255,110,0.22), transparent 65%)",
              filter: "blur(20px)",
            }}
          ></div>
          <img
            src="assets/vaguinho-character.png"
            alt=""
            style={{ height: 300, position: "relative", zIndex: 1 }}
          />
        </div>
      )}
    </section>
  );
}

/* ─── Stats ─────────────────────────────────────────────────────────────────── */
function Stats() {
  const isMobile = useMedia("(max-width: 767px)");
  const items = [
    { v: "R$ 0", l: "de custo pra candidatos" },
    { v: "48h", l: "média de resposta às candidaturas" },
    { v: "60s", l: "é só o que o vídeo precisa" },
    { v: "100%", l: "das vagas você escolhe" },
  ];
  return (
    <section
      style={{
        padding: isMobile ? "48px 20px" : "64px 32px",
        background: "#123328",
      }}
    >
      <div
        style={{
          maxWidth: 1200,
          margin: "0 auto",
          display: "grid",
          gridTemplateColumns: isMobile ? "repeat(2, 1fr)" : "repeat(4, 1fr)",
          gap: isMobile ? "32px 24px" : 32,
        }}
      >
        {items.map((s, i) => (
          <div key={i}>
            <div
              style={{
                fontFamily: "Bricolage Grotesque",
                fontWeight: 800,
                fontSize: isMobile ? 48 : 64,
                lineHeight: 1,
                letterSpacing: "-0.04em",
                color: "#C7FF6E",
              }}
            >
              {s.v}
            </div>
            <div
              style={{
                color: "#C9D6C0",
                fontSize: 13,
                marginTop: 6,
                lineHeight: 1.4,
              }}
            >
              {s.l}
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

/* ─── HowItWorks ─────────────────────────────────────────────────────────────── */
function HowItWorks() {
  const isMobile = useMedia("(max-width: 767px)");
  const steps = [
    {
      n: "01",
      icon: "video",
      title: "Grave seu vídeo",
      desc: "Um vídeo curtinho (30 a 60 segundos) se apresentando. Conte seu nome, o que você sabe fazer, e o que tá procurando. Sem CV, sem foto profissional.",
    },
    {
      n: "02",
      icon: "search",
      title: "Veja as vagas que combinam",
      desc: "Com o vídeo aprovado, o Vaguinho te mostra só as vagas que combinam com você — por região, horário e o que você curte fazer. Vaga que não tem a ver, nem aparece.",
    },
    {
      n: "03",
      icon: "bell",
      title: "Candidate-se e seja chamado",
      desc: "Se candidate nas vagas que curtir. O estabelecimento vê seu vídeo e, se aprovar, te chama direto no WhatsApp pra combinar.",
    },
  ];
  const icons = {
    video: (
      <path d="M23 7l-7 5 7 5V7zM14 5H3a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z" />
    ),
    search: (
      <>
        <circle cx="11" cy="11" r="8" />
        <line x1="21" y1="21" x2="16.65" y2="16.65" />
      </>
    ),
    bell: (
      <>
        <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0" />
      </>
    ),
  };
  return (
    <section
      id="how"
      style={{
        padding: isMobile ? "56px 20px" : "96px 32px",
        background: "#0E2620",
        borderTop: "1px solid rgba(244,251,233,0.05)",
      }}
    >
      <div style={{ maxWidth: 1200, margin: "0 auto" }}>
        <div
          style={{
            fontSize: 11,
            textTransform: "uppercase",
            letterSpacing: "0.14em",
            color: "#C7FF6E",
            fontWeight: 700,
            marginBottom: 12,
          }}
        >
          Como funciona pra você
        </div>
        <h2
          style={{
            fontFamily: "Bricolage Grotesque",
            fontSize: isMobile ? 34 : 56,
            fontWeight: 700,
            letterSpacing: "-0.035em",
            margin: 0,
            color: "#F4FBE9",
            maxWidth: 800,
            lineHeight: 1.05,
          }}
        >
          Três passos. Nenhum currículo. Zero ranço.
        </h2>
        <div
          style={{
            display: "grid",
            gridTemplateColumns: isMobile ? "1fr" : "repeat(3, 1fr)",
            gap: isMobile ? 12 : 20,
            marginTop: isMobile ? 36 : 56,
          }}
        >
          {steps.map((s) => (
            <div
              key={s.n}
              style={{
                background: "#1A4534",
                border: "1px solid rgba(244,251,233,0.08)",
                borderRadius: 20,
                padding: isMobile ? 24 : 32,
                boxShadow:
                  "0 4px 14px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04)",
              }}
            >
              <div
                style={{
                  display: "flex",
                  alignItems: "center",
                  justifyContent: "space-between",
                  marginBottom: 20,
                }}
              >
                <div
                  style={{
                    fontFamily: "JetBrains Mono",
                    color: "#C7FF6E",
                    fontSize: 13,
                    fontWeight: 600,
                  }}
                >
                  {s.n}
                </div>
                <div
                  style={{
                    width: 40,
                    height: 40,
                    borderRadius: 12,
                    background: "rgba(199,255,110,0.12)",
                    color: "#C7FF6E",
                    display: "flex",
                    alignItems: "center",
                    justifyContent: "center",
                  }}
                >
                  <svg
                    width="20"
                    height="20"
                    viewBox="0 0 24 24"
                    fill="none"
                    stroke="currentColor"
                    strokeWidth="1.75"
                    strokeLinecap="round"
                    strokeLinejoin="round"
                  >
                    {icons[s.icon]}
                  </svg>
                </div>
              </div>
              <h3
                style={{
                  fontFamily: "Bricolage Grotesque",
                  fontSize: isMobile ? 22 : 28,
                  fontWeight: 700,
                  letterSpacing: "-0.02em",
                  color: "#F4FBE9",
                  margin: "0 0 10px",
                }}
              >
                {s.title}
              </h3>
              <p
                style={{
                  color: "#C9D6C0",
                  fontSize: 14,
                  lineHeight: 1.6,
                  margin: 0,
                }}
              >
                {s.desc}
              </p>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

/* ─── WhyMatch ───────────────────────────────────────────────────────────────── */
function WhyMatch() {
  const isMobile = useMedia("(max-width: 767px)");
  const cards = [
    {
      t: "Combina com a sua vida",
      d: "Só vaga com horário e distância que cabem na sua rotina.",
    },
    {
      t: "Combina com o que você quer",
      d: "Função e ambiente que têm a ver com você, não qualquer vaga.",
    },
    {
      t: "Mais chance de dar certo",
      d: "Quando os dois lados se encaixam, você é chamado mais rápido e fica feliz onde for.",
    },
  ];
  return (
    <section
      style={{
        padding: isMobile ? "56px 20px" : "96px 32px",
        background: "#123328",
        borderTop: "1px solid rgba(244,251,233,0.05)",
      }}
    >
      <div style={{ maxWidth: 1200, margin: "0 auto" }}>
        <div style={{ maxWidth: 760 }}>
          <div
            style={{
              fontSize: 11,
              textTransform: "uppercase",
              letterSpacing: "0.14em",
              color: "#C7FF6E",
              fontWeight: 700,
              marginBottom: 12,
            }}
          >
            Feito pra você (e pro lugar certo)
          </div>
          <h2
            style={{
              fontFamily: "Bricolage Grotesque",
              fontSize: isMobile ? 34 : 56,
              fontWeight: 700,
              letterSpacing: "-0.035em",
              margin: 0,
              color: "#F4FBE9",
              lineHeight: 1.05,
            }}
          >
            A gente não te mostra vaga que{" "}
            <span style={{ color: "#C7FF6E" }}>não tem a ver com você.</span>
          </h2>
          <p
            style={{
              color: "#C9D6C0",
              fontSize: isMobile ? 15 : 18,
              lineHeight: 1.65,
              marginTop: 18,
              maxWidth: 640,
            }}
          >
            O Vaguinho aprende o que você procura — horário, região, o tipo de
            rolê que você curte fazer — e cruza com o que cada bar, restaurante
            ou hotel precisa. Vaga que não combina nem aparece. Você não perde
            tempo, se candidata no que faz sentido e tem muito mais chance de ser
            chamado.
          </p>
        </div>
        <div
          style={{
            display: "grid",
            gridTemplateColumns: isMobile ? "1fr" : "repeat(3, 1fr)",
            gap: isMobile ? 12 : 16,
            marginTop: isMobile ? 32 : 48,
          }}
        >
          {cards.map((c, i) => (
            <div
              key={i}
              style={{
                background: "#1A4534",
                border: "1px solid rgba(244,251,233,0.08)",
                borderRadius: 18,
                padding: isMobile ? "20px 22px" : "26px 28px",
                boxShadow: "0 4px 14px rgba(0,0,0,0.25)",
              }}
            >
              <div
                style={{
                  display: "flex",
                  alignItems: "center",
                  gap: 10,
                  marginBottom: 10,
                }}
              >
                <span
                  style={{
                    flexShrink: 0,
                    width: 24,
                    height: 24,
                    borderRadius: 999,
                    background: "rgba(199,255,110,0.15)",
                    color: "#C7FF6E",
                    display: "flex",
                    alignItems: "center",
                    justifyContent: "center",
                  }}
                >
                  <svg
                    width="14"
                    height="14"
                    viewBox="0 0 24 24"
                    fill="none"
                    stroke="currentColor"
                    strokeWidth="3"
                    strokeLinecap="round"
                    strokeLinejoin="round"
                  >
                    <polyline points="20 6 9 17 4 12" />
                  </svg>
                </span>
                <h3
                  style={{
                    fontFamily: "Bricolage Grotesque",
                    fontSize: isMobile ? 17 : 19,
                    fontWeight: 700,
                    letterSpacing: "-0.015em",
                    color: "#F4FBE9",
                    margin: 0,
                    lineHeight: 1.2,
                  }}
                >
                  {c.t}
                </h3>
              </div>
              <p
                style={{
                  color: "#C9D6C0",
                  fontSize: 14,
                  lineHeight: 1.6,
                  margin: 0,
                }}
              >
                {c.d}
              </p>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

/* ─── VideoShowcase ──────────────────────────────────────────────────────────── */
function VideoShowcase() {
  const isMobile = useMedia("(max-width: 767px)");
  const phoneW = isMobile ? 240 : 320;
  const phoneH = isMobile ? 420 : 560;

  return (
    <section style={{ padding: isMobile ? "56px 20px" : "96px 32px" }}>
      <div
        style={{
          maxWidth: 1200,
          margin: "0 auto",
          display: "grid",
          gridTemplateColumns: isMobile ? "1fr" : "1fr 1fr",
          gap: isMobile ? 40 : 64,
          alignItems: "center",
        }}
      >
        <div>
          <div
            style={{
              fontSize: 11,
              textTransform: "uppercase",
              letterSpacing: "0.14em",
              color: "#C7FF6E",
              fontWeight: 700,
              marginBottom: 12,
            }}
          >
            O vídeo é a parada
          </div>
          <h2
            style={{
              fontFamily: "Bricolage Grotesque",
              fontSize: isMobile ? 34 : 56,
              fontWeight: 700,
              letterSpacing: "-0.035em",
              margin: 0,
              color: "#F4FBE9",
              lineHeight: 1.05,
            }}
          >
            Esquece currículo. Mostra{" "}
            <span style={{ color: "#C7FF6E" }}>quem você é.</span>
          </h2>
          <p
            style={{
              color: "#C9D6C0",
              fontSize: isMobile ? 15 : 17,
              lineHeight: 1.6,
              marginTop: 16,
              maxWidth: 460,
            }}
          >
            Em 30 a 60 segundos você se apresenta, fala da sua experiência
            (mesmo que seja pouca), e os estabelecimentos veem você como pessoa,
            não como uma folha de papel.
          </p>
          <ul
            style={{
              listStyle: "none",
              padding: 0,
              margin: "24px 0 0",
              display: "flex",
              flexDirection: "column",
              gap: 12,
            }}
          >
            {[
              "Grave direto pelo celular",
              "Sem precisar de iluminação ou edição",
              "Pode regravar quantas vezes quiser",
              "Funciona até sem experiência prévia",
            ].map((t) => (
              <li
                key={t}
                style={{
                  display: "flex",
                  alignItems: "center",
                  gap: 12,
                  color: "#F4FBE9",
                  fontSize: 14,
                }}
              >
                <span
                  style={{
                    flexShrink: 0,
                    width: 22,
                    height: 22,
                    borderRadius: 999,
                    background: "rgba(199,255,110,0.15)",
                    color: "#C7FF6E",
                    display: "flex",
                    alignItems: "center",
                    justifyContent: "center",
                  }}
                >
                  <svg
                    width="13"
                    height="13"
                    viewBox="0 0 24 24"
                    fill="none"
                    stroke="currentColor"
                    strokeWidth="3"
                    strokeLinecap="round"
                    strokeLinejoin="round"
                  >
                    <polyline points="20 6 9 17 4 12" />
                  </svg>
                </span>
                {t}
              </li>
            ))}
          </ul>
        </div>

        <div style={{ display: "flex", justifyContent: "center" }}>
          <div
            style={{
              width: phoneW,
              height: phoneH,
              background: "#0B1410",
              borderRadius: 36,
              padding: 6,
              border: "8px solid #1A1A1A",
              boxShadow: "0 40px 80px rgba(0,0,0,0.6)",
              overflow: "hidden",
              position: "relative",
            }}
          >
            <div
              style={{
                position: "relative",
                width: "100%",
                height: "100%",
                borderRadius: 28,
                overflow: "hidden",
                background: "#1A4534",
              }}
            >
              <div
                style={{
                  position: "absolute",
                  inset: 0,
                  display: "flex",
                  alignItems: "center",
                  justifyContent: "center",
                }}
              >
                <img
                  src="assets/vaguinho-face.png"
                  style={{
                    width: "90%",
                    height: "90%",
                    objectFit: "cover",
                    objectPosition: "50% 25%",
                    borderRadius: 24,
                    opacity: 0.85,
                  }}
                />
              </div>
              <div
                style={{
                  position: "absolute",
                  top: 14,
                  left: 14,
                  right: 14,
                  display: "flex",
                  alignItems: "center",
                  justifyContent: "space-between",
                }}
              >
                <div
                  style={{
                    display: "inline-flex",
                    alignItems: "center",
                    gap: 5,
                    background: "#FF3B3B",
                    color: "#fff",
                    fontSize: 10,
                    fontWeight: 700,
                    padding: "3px 8px",
                    borderRadius: 999,
                  }}
                >
                  <span
                    style={{
                      width: 5,
                      height: 5,
                      borderRadius: 999,
                      background: "#fff",
                    }}
                  ></span>
                  GRAVANDO
                </div>
                <div
                  style={{
                    background: "rgba(0,0,0,0.5)",
                    backdropFilter: "blur(8px)",
                    color: "#fff",
                    fontSize: 11,
                    fontFamily: "JetBrains Mono",
                    padding: "3px 8px",
                    borderRadius: 999,
                  }}
                >
                  0:42 / 1:00
                </div>
              </div>
              <div
                style={{
                  position: "absolute",
                  bottom: 20,
                  left: 0,
                  right: 0,
                  display: "flex",
                  justifyContent: "center",
                }}
              >
                <div
                  style={{
                    width: 56,
                    height: 56,
                    borderRadius: 999,
                    background: "#fff",
                    border: "4px solid rgba(255,255,255,0.4)",
                    display: "flex",
                    alignItems: "center",
                    justifyContent: "center",
                  }}
                >
                  <div
                    style={{
                      width: 20,
                      height: 20,
                      borderRadius: 5,
                      background: "#FF3B3B",
                    }}
                  ></div>
                </div>
              </div>
              <div
                style={{
                  position: "absolute",
                  bottom: 90,
                  left: 14,
                  right: 14,
                  background: "rgba(0,0,0,0.55)",
                  backdropFilter: "blur(10px)",
                  borderRadius: 12,
                  padding: "8px 12px",
                }}
              >
                <div
                  style={{
                    color: "#C7FF6E",
                    fontSize: 10,
                    fontWeight: 700,
                    textTransform: "uppercase",
                    letterSpacing: "0.1em",
                    marginBottom: 3,
                  }}
                >
                  Dica do Vaguinho
                </div>
                <div
                  style={{ color: "#F4FBE9", fontSize: 12, lineHeight: 1.4 }}
                >
                  Fale seu nome, idade e o que você sabe fazer 🤙
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

/* ─── MatchFlow ──────────────────────────────────────────────────────────────── */
function MatchFlow() {
  const isMobile = useMedia("(max-width: 767px)");
  const steps = [
    {
      t: "Você se candidata",
      d: "Acha a vaga, manda seu vídeo de apresentação",
    },
    {
      t: "O estabelecimento vê",
      d: "Recebe sua candidatura e assiste seu vídeo quantas vezes quiser",
    },
    {
      t: "Se curtir, aprova",
      d: "Gostou do seu perfil? Libera o contato com você",
    },
    { t: "WhatsApp toca", d: "Ele te chama direto e vocês combinam o resto" },
  ];
  return (
    <section
      style={{
        padding: isMobile ? "56px 20px" : "96px 32px",
        background: "#0E2620",
      }}
    >
      <div style={{ maxWidth: 1200, margin: "0 auto", textAlign: "center" }}>
        <div
          style={{
            fontSize: 11,
            textTransform: "uppercase",
            letterSpacing: "0.14em",
            color: "#C7FF6E",
            fontWeight: 700,
            marginBottom: 12,
          }}
        >
          Quando dá match
        </div>
        <h2
          style={{
            fontFamily: "Bricolage Grotesque",
            fontSize: isMobile ? 34 : 56,
            fontWeight: 700,
            letterSpacing: "-0.035em",
            margin: isMobile ? "0 auto 32px" : "0 auto 56px",
            color: "#F4FBE9",
            maxWidth: 760,
            lineHeight: 1.05,
          }}
        >
          O dono te chama. Você combina. Bora trampar.
        </h2>
        <div
          style={{
            display: "grid",
            gridTemplateColumns: isMobile ? "repeat(2, 1fr)" : "repeat(4, 1fr)",
            gap: isMobile ? 12 : 16,
            alignItems: "stretch",
          }}
        >
          {steps.map((s, i) => (
            <div
              key={i}
              style={{
                background: "rgba(26,69,52,0.6)",
                border: "1px solid rgba(244,251,233,0.08)",
                borderRadius: 18,
                padding: isMobile ? 20 : 24,
                textAlign: "left",
              }}
            >
              <div
                style={{
                  width: 30,
                  height: 30,
                  borderRadius: 999,
                  background: "#C7FF6E",
                  color: "#0B201A",
                  display: "flex",
                  alignItems: "center",
                  justifyContent: "center",
                  fontFamily: "Bricolage Grotesque",
                  fontWeight: 800,
                  fontSize: 13,
                  marginBottom: 14,
                }}
              >
                {i + 1}
              </div>
              <div
                style={{
                  fontFamily: "Bricolage Grotesque",
                  fontWeight: 700,
                  fontSize: isMobile ? 16 : 18,
                  color: "#F4FBE9",
                  marginBottom: 6,
                  letterSpacing: "-0.01em",
                }}
              >
                {s.t}
              </div>
              <div style={{ color: "#C9D6C0", fontSize: 13, lineHeight: 1.5 }}>
                {s.d}
              </div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

/* ─── FAQ ────────────────────────────────────────────────────────────────────── */
function FAQ() {
  const isMobile = useMedia("(max-width: 767px)");
  const items = [
    {
      q: "É grátis mesmo?",
      a: "É. Pra você, candidato, é tudo de graça: cadastro, vídeo, buscar vagas e se candidatar, tudo. Quem paga pra anunciar vagas é o estabelecimento.",
    },
    {
      q: "Preciso ter experiência?",
      a: "Não. Muitas vagas são pra primeiro emprego ou troca de área. No vídeo, fale honestamente o que você já fez ou quer fazer (mesmo que seja pouco), o dono prefere autenticidade.",
    },
    {
      q: "Como eu encontro as vagas?",
      a: "Com o vídeo aprovado, o Vaguinho te mostra as vagas que combinam com o seu perfil e você se candidata nas que curtir. O estabelecimento recebe sua candidatura, assiste seu vídeo e, se aprovar, te chama no WhatsApp.",
    },
    {
      q: "Por que algumas vagas não aparecem pra mim?",
      a: "Porque o Vaguinho mostra só as que combinam com o seu perfil — horário, região e o que você procura. Em vez de te entupir de vaga que não tem a ver, ele te poupa tempo e aumenta sua chance de ser chamado.",
    },
    {
      q: "Em quais cidades tem vaga?",
      a: "Na fase de testes as vagas estão concentradas em São Paulo. Mas você já pode se cadastrar e gravar seu vídeo de qualquer lugar do Brasil — assim que chegarmos na sua cidade, é só se candidatar.",
    },
    {
      q: "E se eu não gostar do vídeo?",
      a: "Grave outro e envie. Um novo vídeo sobrepõe o anterior. Você pode enviar até 3 vídeos dentro de um mês.",
    },
    {
      q: "Vou ser chamado em quanto tempo?",
      a: "Depende de quantas vagas você se candidata e da região. A média é 48h pra um estabelecimento responder. Quanto mais vagas você aplica, mais rápido rola.",
    },
    {
      q: "O que não pode ter no vídeo?",
      a: "Não pode ter seus contatos, email, telefone, redes sociais, ou qualquer coisa que identifique o estabelecimento onde você trabalha atualmente (uniforme, logo, etc). Se algo assim for identificado, o vídeo será rejeitado e sua conta pode ser bloqueada.",
    },
  ];
  return (
    <section style={{ padding: isMobile ? "56px 20px" : "96px 32px" }}>
      <div style={{ maxWidth: 760, margin: "0 auto" }}>
        <div
          style={{
            fontSize: 11,
            textTransform: "uppercase",
            letterSpacing: "0.14em",
            color: "#C7FF6E",
            fontWeight: 700,
            marginBottom: 12,
          }}
        >
          Perguntas que sempre rolam
        </div>
        <h2
          style={{
            fontFamily: "Bricolage Grotesque",
            fontSize: isMobile ? 32 : 48,
            fontWeight: 700,
            letterSpacing: "-0.035em",
            margin: "0 0 28px",
            color: "#F4FBE9",
            lineHeight: 1.05,
          }}
        >
          Tira as dúvidas
        </h2>
        <div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
          {items.map((it, i) => (
            <details
              key={i}
              style={{
                background: "#1A4534",
                border: "1px solid rgba(244,251,233,0.06)",
                borderRadius: 14,
                padding: isMobile ? "16px 18px" : "18px 22px",
              }}
            >
              <summary
                style={{
                  fontFamily: "Bricolage Grotesque",
                  fontSize: isMobile ? 16 : 18,
                  fontWeight: 600,
                  color: "#F4FBE9",
                  cursor: "pointer",
                  listStyle: "none",
                  display: "flex",
                  justifyContent: "space-between",
                  alignItems: "center",
                  letterSpacing: "-0.01em",
                  gap: 12,
                }}
              >
                {it.q}
                <span style={{ color: "#C7FF6E", fontSize: 22, flexShrink: 0 }}>
                  +
                </span>
              </summary>
              <div
                style={{
                  color: "#C9D6C0",
                  fontSize: 14,
                  lineHeight: 1.6,
                  marginTop: 10,
                }}
              >
                {it.a}
              </div>
            </details>
          ))}
        </div>
      </div>
    </section>
  );
}

/* ─── FinalCTA ───────────────────────────────────────────────────────────────── */
function FinalCTA() {
  const isMobile = useMedia("(max-width: 767px)");
  return (
    <section
      id="cta"
      style={{
        padding: isMobile ? "64px 20px" : "96px 32px",
        background: "linear-gradient(180deg, #123328 0%, #0B201A 100%)",
      }}
    >
      <div style={{ maxWidth: 880, margin: "0 auto", textAlign: "center" }}>
        <h2
          style={{
            fontFamily: "Bricolage Grotesque",
            fontSize: isMobile ? 48 : 80,
            fontWeight: 800,
            letterSpacing: "-0.045em",
            lineHeight: isMobile ? 1.0 : 0.95,
            margin: 0,
            color: "#F4FBE9",
          }}
        >
          Bora achar sua <span style={{ color: "#C7FF6E" }}>vaga?</span>
        </h2>
        <p
          style={{
            color: "#C9D6C0",
            fontSize: isMobile ? 16 : 19,
            lineHeight: 1.5,
            marginTop: 16,
          }}
        >
          Cadastre-se, grave um vídeo e se candidate nas vagas que curtir. É
          grátis e leva 5 minutos 🤙
        </p>
        <a
          href="#"
          onClick={(e) => {
            e.preventDefault();
            window.openCTA("finalcta-candidato");
          }}
          style={{
            marginTop: 32,
            display: "inline-flex",
            alignItems: "center",
            gap: 12,
            background: "#C7FF6E",
            color: "#0B201A",
            padding: isMobile ? "18px 32px" : "20px 36px",
            borderRadius: 999,
            fontWeight: 700,
            fontSize: isMobile ? 16 : 18,
            textDecoration: "none",
            boxShadow:
              "0 0 0 6px rgba(199,255,110,0.16), 0 16px 48px rgba(199,255,110,0.28)",
            cursor: "pointer",
          }}
        >
          <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
            <path d="M19.1 4.9C17.2 3 14.7 2 12.1 2 6.7 2 2.4 6.4 2.4 11.7c0 1.7.4 3.4 1.3 4.9L2.3 22l5.6-1.5c1.4.8 3 1.2 4.6 1.2h.1c5.3 0 9.7-4.4 9.7-9.7 0-2.6-1-5.1-2.9-7zm-7.1 14.9h-.1c-1.5 0-2.9-.4-4.1-1.2l-.3-.2-3.3.9.9-3.2-.2-.3c-.9-1.4-1.3-2.9-1.3-4.5 0-4.5 3.6-8.1 8.1-8.1 2.2 0 4.2.8 5.7 2.4 1.5 1.5 2.4 3.6 2.4 5.7 0 4.5-3.6 8.1-8 8.1z" />
          </svg>
          Quero me cadastrar
        </a>
        {!isMobile && (
          <div style={{ marginTop: 20, color: "#8FA597", fontSize: 13 }}>
            É dono de bar, restaurante ou hotel?{" "}
            <a
              href="empresas.html"
              style={{
                color: "#C7FF6E",
                textDecoration: "none",
                fontWeight: 600,
              }}
            >
              Veja o plano para empresas →
            </a>
          </div>
        )}
      </div>
    </section>
  );
}

/* ─── Footer ─────────────────────────────────────────────────────────────────── */
function Footer() {
  const isMobile = useMedia("(max-width: 767px)");
  return (
    <footer
      style={{
        padding: isMobile ? "36px 20px" : "48px 32px",
        background: "#0B201A",
        borderTop: "1px solid rgba(244,251,233,0.05)",
      }}
    >
      <div
        style={{
          maxWidth: 1200,
          margin: "0 auto",
          display: "flex",
          flexWrap: "wrap",
          gap: isMobile ? 20 : 24,
          alignItems: "center",
          justifyContent: isMobile ? "center" : "space-between",
          textAlign: isMobile ? "center" : "left",
        }}
      >
        <img
          src="assets/vaguinho-logo.png"
          alt="Vaguinho"
          style={{ height: 22 }}
        />
        <div
          style={{
            display: "flex",
            gap: 24,
            flexWrap: "wrap",
            justifyContent: "center",
          }}
        >
          <a
            href="empresas.html"
            style={{ color: "#8FA597", fontSize: 13, textDecoration: "none" }}
          >
            Para empresa
          </a>
          <a
            href="termos-de-uso.html"
            style={{ color: "#8FA597", fontSize: 13, textDecoration: "none" }}
          >
            Termos de Uso
          </a>
          <a
            href="politica-de-privacidade.html"
            style={{ color: "#8FA597", fontSize: 13, textDecoration: "none" }}
          >
            Privacidade
          </a>
        </div>
        <div style={{ color: "#5C7268", fontSize: 12 }}>
          © Vaguinho - Empregos · Alobots 🇧🇷
        </div>
      </div>
    </footer>
  );
}

window.LaunchBanner = LaunchBanner;
window.Hero = Hero;
window.Stats = Stats;
window.HowItWorks = HowItWorks;
window.WhyMatch = WhyMatch;
window.VideoShowcase = VideoShowcase;
window.MatchFlow = MatchFlow;
window.FAQ = FAQ;
window.FinalCTA = FinalCTA;
window.Footer = Footer;
