/* ============================================================
   Sections: Problem, Process, About(globe), Why(shield), Form, Footer, WA
   ============================================================ */
const { useState: useStateS } = React;

/* ---------- PROBLEM ---------- */
function Problem() {
  const { t } = useT();
  const p = t.problem;
  return React.createElement("section", { className: "section scrim", id: "problem" },
    React.createElement("div", { className: "wrap" },
      React.createElement("div", { className: "section-head" },
        React.createElement(Reveal, { as: "div", className: "eyebrow" }, p.eyebrow),
        React.createElement(Reveal, { as: "h2", className: "h-xl", d: "1" }, p.title),
        p.lead && React.createElement(Reveal, { as: "p", className: "lead", d: "2" }, p.lead)),
      React.createElement("div", { className: "problem-grid" },
        p.items.map((it, i) =>
          React.createElement(Reveal, { as: "div", className: "problem-card", key: i, d: String((i % 2) + 1) },
            React.createElement("span", { className: "x-mark" }, React.createElement(Icon, { name: "x", size: 15 })),
            React.createElement("p", null, it.t)))),
      React.createElement(Reveal, { as: "div", className: "problem-foot", d: "1" },
        React.createElement("div", { className: "pf-stat" },
          React.createElement("span", { className: "pf-num" }, p.footNum),
          React.createElement("span", { className: "pf-unit" }, p.footUnit)),
        React.createElement("p", { className: "pf-line" }, p.footLine),
        React.createElement("a", { className: "btn btn-primary", href: "#contact" }, p.footCta, React.createElement(Icon, { name: "arrow", size: 16 })))));
}

/* ---------- PROCESS ---------- */
function Process() {
  const { t } = useT();
  const pr = t.process;
  const icons = ["search", "bolt", "eye"];
  return React.createElement("section", { className: "section scrim", id: "process" },
    React.createElement("div", { className: "wrap" },
      React.createElement("div", { className: "section-head" },
        React.createElement(Reveal, { as: "div", className: "eyebrow" }, pr.eyebrow),
        React.createElement(Reveal, { as: "h2", className: "h-xl", d: "1" }, pr.title),
        React.createElement(Reveal, { as: "p", className: "lead", d: "2" }, pr.lead)),
      React.createElement("div", { className: "process" },
        pr.steps.map((s, i) =>
          React.createElement(Reveal, { as: "div", className: "step", key: i, d: String(i + 1) },
            React.createElement("div", { className: "step-ico" }, React.createElement(Icon, { name: icons[i], size: 22 })),
            React.createElement("div", { className: "step-num" }, React.createElement("span", { className: "n" }, s.n)),
            React.createElement("h3", { className: "h-l" }, s.t),
            React.createElement("ul", null,
              s.items.map((li, j) =>
                React.createElement("li", { key: j },
                  React.createElement(Icon, { name: "check", size: 16 }),
                  React.createElement("span", null, React.createElement("b", null, li[0]), li[1])))))))));
}

/* ---------- ABOUT (globe removed) ---------- */
function About() {
  const { t } = useT();
  const a = t.about;
  return React.createElement("section", { className: "section scrim", id: "about" },
    React.createElement("div", { className: "wrap" },
      React.createElement("div", { className: "about-head" },
        React.createElement(Reveal, { as: "div", className: "eyebrow" }, a.eyebrow),
        React.createElement(Reveal, { as: "h2", className: "h-xl", d: "1", style: { marginTop: "22px" } }, a.title),
        React.createElement(Reveal, { as: "p", className: "lead", d: "2", style: { marginTop: "20px" } }, a.lead)),
      React.createElement(Reveal, { as: "div", className: "cases-stats cases-4", d: "2", style: { marginTop: "clamp(32px,5vw,52px)" } },
        a.stats.map((st, i) =>
          React.createElement("div", { className: "case-stat", key: i },
            React.createElement("div", { className: "n" }, st.n),
            React.createElement("div", { className: "l" }, st.l))))));
}

/* ---------- WHY / SHIELD ---------- */
function Why() {
  const { t } = useT();
  const wy = t.why;
  const canvasRef = useScene("shield");
  const icons = ["scale", "doc", "clock", "lock", "users"];
  return React.createElement("section", { className: "section scrim", id: "why" },
    React.createElement("div", { className: "wrap" },
      React.createElement("div", { className: "why-grid" },
        React.createElement("div", { className: "why-copy" },
          React.createElement(Reveal, { as: "div", className: "eyebrow" }, wy.eyebrow),
          React.createElement(Reveal, { as: "h2", className: "h-xl", d: "1", style: { marginTop: "22px", marginBottom: "20px" } }, wy.title),
          React.createElement(Reveal, { as: "p", className: "lead", d: "2", style: { marginBottom: "30px" } }, wy.lead),
          React.createElement("div", { className: "why-list" },
            wy.items.map((it, i) =>
              React.createElement(Reveal, { as: "div", className: "why-item", key: i, d: String((i % 3) + 1) },
                React.createElement("span", { className: "why-ico" }, React.createElement(Icon, { name: icons[i], size: 22 })),
                React.createElement("div", null,
                  React.createElement("h4", null, it.t),
                  React.createElement("p", null, it.d)))))),
        React.createElement(Reveal, { as: "div", className: "shield-wrap", d: "1" },
          React.createElement("canvas", { id: "shield-canvas", ref: canvasRef }),
          React.createElement("div", { className: "shield-badge" },
            React.createElement("div", { className: "big" }, wy.shieldBig),
            React.createElement("div", { className: "small" }, wy.shieldSmall))))));
}

/* ---------- FORM ---------- */
function FormSection() {
  const { t } = useT();
  const f = t.form;
  const [sent, setSent] = useStateS(false);
  const onSubmit = (e) => { e.preventDefault(); setSent(true); };
  return React.createElement("section", { className: "section form-sec scrim", id: "contact" },
    React.createElement("div", { className: "wrap" },
      React.createElement(Reveal, { as: "div", className: "glow-frame", d: "1" },
        React.createElement("div", { className: "form-card" },
        React.createElement("div", { className: "form-intro" },
          React.createElement("div", { className: "eyebrow" }, f.eyebrow),
          React.createElement("h2", { className: "h-xl", style: { marginTop: "20px" } }, f.title),
          React.createElement("p", { className: "lead", style: { marginTop: "16px" } }, f.lead),
          React.createElement("ul", { className: "form-perks" },
            f.perks.map((p, i) => React.createElement("li", { key: i }, React.createElement(Icon, { name: "check", size: 17 }), p)))),
        React.createElement("form", { className: "form-fields", onSubmit, noValidate: true },
          React.createElement("div", { className: "field-row" },
            React.createElement("div", { className: "field" },
              React.createElement("label", null, f.name),
              React.createElement("input", { type: "text", placeholder: f.namePh, required: true })),
            React.createElement("div", { className: "field" },
              React.createElement("label", null, f.phone),
              React.createElement("input", { type: "tel", placeholder: f.phonePh }))),
          React.createElement("div", { className: "field" },
            React.createElement("label", null, f.email),
            React.createElement("input", { type: "email", placeholder: f.emailPh, required: true })),
          React.createElement("div", { className: "field select-wrap" },
            React.createElement("label", null, f.need),
            React.createElement("select", { defaultValue: "" },
              React.createElement("option", { value: "", disabled: true }, "—"),
              f.needOpts.map((o, i) => React.createElement("option", { key: i, value: o }, o)))),
          React.createElement("button", { type: "submit", className: "btn btn-primary btn-lg btn-block", style: { marginTop: "6px" } },
            React.createElement(Icon, { name: "shield", size: 18 }), f.submit),
          React.createElement("p", { className: "form-note" }, React.createElement(Icon, { name: "clock", size: 13, style: { verticalAlign: "-2px", marginRight: "6px" } }), f.note),
          sent && React.createElement("div", { className: "form-success", style: { display: "block" } }, f.success))))));
}

/* ---------- FOOTER ---------- */
function Footer() {
  const { t } = useT();
  const fo = t.footer;
  const links = [["problem", "#problem"], ["process", "#process"], ["about", "#about"], ["why", "#why"], ["contact", "#contact"]];
  return React.createElement("footer", { className: "footer" },
    React.createElement("div", { className: "wrap" },
      React.createElement(Reveal, { as: "div", className: "footer-tagline" },
        fo.tagline[0], React.createElement("em", null, fo.tagline[1]), fo.tagline[2]),
      React.createElement("div", { className: "footer-grid", style: { marginTop: "56px" } },
        React.createElement("div", { className: "footer-brand" },
          React.createElement("a", { className: "brand", href: "#top" },
            React.createElement("span", { className: "brand-mark" }, React.createElement(Icon, { name: "shield", size: 21, style: { color: "var(--accent-2)" } })),
            React.createElement("span", { className: "brand-text" }, React.createElement("b", null, "RMA"), React.createElement("span", null, "webreputation.agency"))),
          React.createElement("p", null, fo.payoff),
          React.createElement("div", { style: { marginTop: "20px", display: "flex", flexDirection: "column", gap: "10px" } },
            React.createElement("p", { style: { display: "flex", gap: "10px", alignItems: "center", color: "var(--ink-2)", fontSize: "14px", margin: 0 } }, React.createElement(Icon, { name: "pin", size: 16, style: { color: "var(--accent-2)" } }), fo.addrV),
            React.createElement("a", { href: "mailto:info@webreputation.agency", style: { display: "flex", gap: "10px", alignItems: "center", color: "var(--ink-2)", fontSize: "14px" } }, React.createElement(Icon, { name: "mail", size: 16, style: { color: "var(--accent-2)" } }), "info@webreputation.agency"),
            React.createElement("a", { href: "tel:+390000000000", style: { display: "flex", gap: "10px", alignItems: "center", color: "var(--ink-2)", fontSize: "14px" } }, React.createElement(Icon, { name: "phone", size: 16, style: { color: "var(--accent-2)" } }), "+39 00 0000 0000"))),
        React.createElement("div", { className: "footer-col" },
          React.createElement("h5", null, fo.colLinks),
          links.map(([k, h]) => React.createElement("a", { key: k, href: h }, t.nav[k]))),
        React.createElement("div", { className: "footer-col" },
          React.createElement("h5", null, fo.colLegal),
          React.createElement("a", { href: "#" }, fo.privacy),
          React.createElement("a", { href: "#", onClick: (e) => { e.preventDefault(); window.dispatchEvent(new Event("open-cookie-settings")); } }, t.cookies.manage))),
      React.createElement("div", { className: "footer-bottom" },
        React.createElement("span", { className: "footer-owner" }, fo.owner, " ", React.createElement("a", { href: "https://attoliniagency.com", target: "_blank", rel: "noopener" }, fo.ownerLink)),
        React.createElement("div", { className: "legal" },
          React.createElement("a", { href: "#" }, "© ", new Date().getFullYear(), " RMA"),
          React.createElement("a", { href: "#" }, "P.IVA — 00000000000")))));
}

/* ---------- WHATSAPP ---------- */
function WhatsApp() {
  const { t } = useT();
  return React.createElement("a", { className: "wa", href: "https://wa.me/390000000000", target: "_blank", rel: "noopener", "aria-label": t.wa },
    React.createElement(Icon, { name: "wa", size: 28 }),
    React.createElement("span", null, t.wa));
}

/* ---------- COOKIE CONSENT ---------- */
const COOKIE_KEY = "wra_cookie_consent";
function readConsent() {
  try { return JSON.parse(localStorage.getItem(COOKIE_KEY) || "null"); } catch (e) { return null; }
}
function writeConsent(c) {
  try {
    localStorage.setItem(COOKIE_KEY, JSON.stringify(c));
    // also drop a real cookie so server/analytics can read the choice
    const v = encodeURIComponent(JSON.stringify(c));
    document.cookie = "wra_consent=" + v + ";path=/;max-age=" + (60 * 60 * 24 * 180) + ";SameSite=Lax";
  } catch (e) {}
}

function CookieBanner() {
  const { t } = useT();
  const c = t.cookies;
  const { useState: uS, useEffect: uE } = React;
  const [open, setOpen] = uS(false);
  const [details, setDetails] = uS(false);
  const [analytics, setAnalytics] = uS(true);
  const [marketing, setMarketing] = uS(true);

  uE(() => {
    if (!readConsent()) setOpen(true);
    const onManage = () => { setDetails(true); setOpen(true); };
    window.addEventListener("open-cookie-settings", onManage);
    return () => window.removeEventListener("open-cookie-settings", onManage);
  }, []);

  const decide = (consent) => { writeConsent(Object.assign({ necessary: true, ts: Date.now() }, consent)); setOpen(false); setDetails(false); };

  if (!open) return null;

  const toggle = (on, set, label, note, locked) =>
    React.createElement("label", { className: "ck-row" + (locked ? " locked" : ""), key: label },
      React.createElement("span", { className: "ck-row-txt" },
        React.createElement("b", null, label),
        React.createElement("span", null, note)),
      React.createElement("button", {
        type: "button", className: "ck-switch" + (on ? " on" : ""), role: "switch",
        "aria-checked": on, "aria-label": label, disabled: locked,
        onClick: locked ? undefined : () => set(!on),
      }, React.createElement("span", { className: "ck-knob" })));

  return React.createElement("div", { className: "ck-wrap", role: "dialog", "aria-label": c.title, "aria-modal": "false" },
    React.createElement("div", { className: "ck-card glow-frame" },
      React.createElement("div", { className: "ck-inner" },
        React.createElement("div", { className: "ck-head" },
          React.createElement("span", { className: "ck-ico" }, React.createElement(Icon, { name: "shield", size: 18 })),
          React.createElement("h4", null, c.title)),
        React.createElement("p", { className: "ck-text" }, c.text,
          " ", React.createElement("a", { href: "#", onClick: (e) => e.preventDefault(), className: "ck-link" }, t.footer.cookie)),
        details && React.createElement("div", { className: "ck-rows" },
          toggle(true, null, c.necessary, c.necessaryNote, true),
          toggle(analytics, setAnalytics, c.analytics, c.analyticsNote, false),
          toggle(marketing, setMarketing, c.marketing, c.marketingNote, false)),
        React.createElement("div", { className: "ck-actions" },
          !details && React.createElement("button", { className: "btn btn-ghost ck-btn", onClick: () => setDetails(true) }, c.settings),
          React.createElement("button", { className: "btn btn-ghost ck-btn", onClick: () => decide({ analytics: false, marketing: false }) }, c.reject),
          details
            ? React.createElement("button", { className: "btn btn-primary ck-btn", onClick: () => decide({ analytics, marketing }) }, c.save)
            : React.createElement("button", { className: "btn btn-primary ck-btn", onClick: () => decide({ analytics: true, marketing: true }) }, c.accept)))));
}

Object.assign(window, { Problem, Process, About, Why, FormSection, Footer, WhatsApp, CookieBanner });
