const { useState, useEffect, useMemo, useRef } = React;

// ---------- DATA ----------
const FEATURES = [
  { icon: "✉", title: "Drag & drop szerkesztő", desc: "Programozói tudás nélkül készíthet professzionális hírlevelet percek alatt, előre készült blokkokból." },
  { icon: "📊", title: "Valós idejű statisztika", desc: "Megnyitások, kattintások, leiratkozások — azonnal, linkenkénti bontásban, exportálható nézetekkel." },
  { icon: "🎯", title: "Mikro-szegmentáció", desc: "Korlátlan lista import és célzás érdeklődés, viselkedés és demográfia alapján — minden feliratkozónak relevánsan." },
  { icon: "⚡", title: "Trigger Mail", desc: "Eseményvezérelt automatikus levelek: feliratkozás, kérdőív, inaktivitás, kosárelhagyás — Ön egyszer beállítja, a rendszer dolgozik." },
  { icon: "📋", title: "Form & kérdőívkészítő", desc: "Beépített adatgyűjtő — az új feliratkozó azonnal a megfelelő listába kerül, a megfelelő automatizmussal." },
  { icon: "🔄", title: "Újracélzás", desc: "Aki megnyitott, de nem kattintott — automatikusan emlékeztetőt kap személyre szabott tárggyal és tartalommal." },
  { icon: "🔍", title: "Webanalitika", desc: "Kampánytámogató mélységi analitika, kampányokra és időszakokra bontva. Nincs külön rendszer, nincs külön adat." },
  { icon: "💬", title: "SMS marketing", desc: "Az e-mail mellé integrált SMS csatorna — időérzékeny ajánlatoknak, emlékeztetőknek, eseményvezérelt üzeneteknek." },
  { icon: "🔗", title: "Kódbefűzés + integráció", desc: "Mi fűzzük be a feliratkozó űrlapot, eseménykövetést és webshop-integrációt — Önnek nem kell fejlesztőt keresnie." },
];

const SUPPORT = [
  { t: "Kódbefűzés az oldalába", d: "Feliratkozó form, nyomkövető pixel, eseménykövetés — mi helyezzük ki, mi teszteljük." },
  { t: "Lista beállítások és import", d: "Paraméterek, szegmensek, oszlop-megfeleltetés. Az első 3 listát mi állítjuk be Ön helyett." },
  { t: "Levél készítés, design, tartalom", d: "Ha kell, teljes hírlevél-koncepciót írunk és tervezünk — a márkájához illesztett sablonokkal." },
  { t: "E-mail automatizmusok", d: "Üdvözlő sorozat, kosárelhagyás, inaktivitás, újracélzás — teljes forgatókönyvvel, mérhető kimenetekkel." },
  { t: "Feliratkozó form összekapcsolás", d: "Űrlap → lista → automatizmus. Weboldal, landing, Facebook lead — mindegyik egy helyre fut be." },
  { t: "Eseményvezérelt üzenetek", d: "Születésnap, évforduló, hűségmérföldkő, webinárium-emlékeztető — SMS-sel is kombinálva." },
  { t: "Magyar nyelvű ügyfélszolgálat", d: "Valódi ember, budapesti időzónában, munkanapokon 9–17 óra között. E-mailben, telefonon, képernyőmegosztással." },
];

const FAQ = [
  { q: "Mit tartalmaz a 45 perces személyes bemutató?", a: "Konkrétan az Önök helyzetére szabott demót: meglévő lista (ha van), kampányigények, automatizmusok áttekintése. A végén egy világos lépéstervet kap arra, hogyan érdemes elindulni — akkor is, ha nem nálunk. A bemutató teljesen ingyenes, kötelezettség nélküli." },
  { q: "Tényleg nincs kötelező éves szerződés?", a: "Nincs. A havi díj bevezető áron 15 000 Ft + Áfa, a levélküldés 0,3 Ft + Áfa / kiküldött levél. Havi elszámolás, bármikor lezárható. Rejtett költség, beléptetési díj, felmondási időszak nincs." },
  { q: "Mi történik a meglévő listáinkkal, integrációinkkal?", a: "Az átállás a mi dolgunk. Meglévő Excel, CSV, MailChimp-export — mindent importálunk, a paramétereket (név, cégnév, stb.) beállítjuk, a feliratkozó formokat újra befűzzük. Ön a már működő rendszerrel találkozik az első napon." },
  { q: "Milyen technikai támogatást kapunk?", a: "Teljeskörűt. A kódbefűzést, DKIM/SPF beállítást, integrációkat és az automatizmusok felépítését mi végezzük. Egy dedikált magyar nyelvű ügyfélszolgálati kapcsolattartóval dolgozik — képernyőmegosztással, nem ticket-számmal." },
  { q: "Mi a különbség a magyar és a nemzetközi rendszerekhez képest?", a: "ÁSZF, GDPR-minta szövegek, magyar nyelvű sablonok, magyar nyelvű support, és itthoni kampánytapasztalatból született funkciók — minden ami magyar kkv-nak kell, alapból benne van. Nem egy fordított felület, hanem egy itthon fejlesztett rendszer." },
  { q: "Az SMS kampányok és automatizmusok hogyan kapcsolódnak be?", a: "Az SMS ugyanahhoz a listához és ugyanahhoz az eseményvezérelt logikához kapcsolódik, mint az e-mail. Pl. kosárelhagyáskor először e-mail megy, 24 óra múlva — ha nincs kattintás — SMS emlékeztető. Az automatizmust egyszer építjük fel, utána magától fut; Ön csak a heti statisztikát nézi." },
];

// ---------- LOGO (PNG brand asset) ----------
const Logo = ({ variant = "light" }) => (
  <span className="logo" aria-label="NetAdClick.com Hírlevélküldő">
    <img src="assets/netadclick-logo.png" alt="NetAdClick.com" className="logo-img" />
    <span className="lo-badge">Hírlevél</span>
  </span>
);

// ---------- NAV ----------
const Nav = ({ onBook }) => (
  <header className="nav">
    <div className="wrap nav-inner">
      <Logo />
      <nav className="nav-links">
        <a href="#funkciok">Funkciók</a>
        <a href="#tamogatas">Támogatás</a>
        <a href="#ar">Árazás</a>
        <a href="#gyik">GYIK</a>
        <button className="btn btn-primary" onClick={onBook}>
          Ingyenes bemutató →
        </button>
      </nav>
    </div>
  </header>
);

// ---------- HERO ----------
const Hero = ({ onBook }) => (
  <section className="hero" style={{ borderTop: "none" }}>
    <div className="wrap">
      <div className="hero-grid">
        <div>
          <span className="eyebrow"><span className="dot"></span>Magyar kkv-knak, magyarul</span>
          <h1 className="h1">
            Hírlevélküldő, amit <span className="underline">magyar kkv-k</span> igényeire építettünk.
          </h1>
          <p className="hero-sub">
            Drag-and-drop szerkesztő, valós idejű statisztika, automatizmusok, SMS és kérdőív — <strong>egyetlen rendszerben</strong>. A kódbefűzést, a listákat, a leveleket, a designt és az automatizmusokat <strong>mi állítjuk be</strong> Ön helyett, magyar nyelvű ügyfélszolgálattal.
          </p>
          <div className="hero-ctas">
            <button className="btn btn-primary btn-xl btn-arrow" onClick={onBook}>
              Foglaljon ingyenes 45 perces bemutatót
            </button>
            <a href="#funkciok" className="btn btn-ghost btn-xl">Funkciók megnézése</a>
          </div>
          <div className="hero-trust">
            <span><span className="check">✓</span> 45 perc, ingyenes</span>
            <span><span className="check">✓</span> Nincs kötelező szerződés</span>
            <span><span className="check">✓</span> Magyar nyelvű support</span>
            <span><span className="check">✓</span> Bevezető ár: 15 000 Ft / hó</span>
          </div>
        </div>
        <HeroPreview />
      </div>
    </div>
  </section>
);

const HeroPreview = () => {
  const [tab, setTab] = useState(0);
  useEffect(() => {
    const t = setInterval(() => setTab(x => (x + 1) % 3), 3500);
    return () => clearInterval(t);
  }, []);

  const stats = [
    { l: "Megnyitás", v: "47,2%", d: "+4.1% heti" },
    { l: "Kattintás", v: "12,8%", d: "+1.9% heti" },
    { l: "Leiratkozás", v: "0,23%", d: "−0.02% heti" },
  ];

  return (
    <div className="hero-card">
      <div className="hero-card-top">
        <div className="dots"><i></i><i></i><i></i></div>
        <span>profil.netadclick.com / kampányok / Tavaszi_AJANLAT_2026</span>
      </div>
      <div style={{ padding: "22px 24px 28px" }}>
        <div style={{ display: "flex", gap: 8, marginBottom: 18, borderBottom: "1px solid var(--line)", paddingBottom: 0 }}>
          {["Áttekintés", "Szerkesztő", "Automatizmus"].map((t, i) => (
            <div key={i}
              onClick={() => setTab(i)}
              style={{
                padding: "10px 14px", fontSize: 13, fontWeight: 500, cursor: "pointer",
                color: i === tab ? "var(--accent)" : "var(--ink-muted)",
                borderBottom: i === tab ? "2px solid var(--accent)" : "2px solid transparent",
                marginBottom: -1,
                fontFamily: "Geist Mono, monospace", letterSpacing: "0.02em"
              }}>
              {t}
            </div>
          ))}
        </div>

        {tab === 0 && (
          <div>
            <div style={{ display: "grid", gridTemplateColumns: "repeat(3,1fr)", gap: 12, marginBottom: 18 }}>
              {stats.map((s, i) => (
                <div key={i} style={{ border: "1px solid var(--line)", borderRadius: 10, padding: 14 }}>
                  <div style={{ fontSize: 11, color: "var(--ink-muted)", fontFamily: "Geist Mono, monospace", textTransform: "uppercase", letterSpacing: "0.05em" }}>{s.l}</div>
                  <div style={{ fontSize: 26, fontWeight: 700, letterSpacing: "-0.02em", marginTop: 4 }}>{s.v}</div>
                  <div style={{ fontSize: 11.5, color: "var(--ok)", fontFamily: "Geist Mono, monospace" }}>{s.d}</div>
                </div>
              ))}
            </div>
            <div style={{ border: "1px solid var(--line)", borderRadius: 10, padding: "14px 16px" }}>
              <div style={{ fontSize: 12, color: "var(--ink-muted)", fontFamily: "Geist Mono, monospace", marginBottom: 10, textTransform: "uppercase", letterSpacing: "0.05em" }}>Megnyitás idővonal · utolsó 24 óra</div>
              <svg viewBox="0 0 300 70" style={{ width: "100%", height: 70 }}>
                <defs>
                  <linearGradient id="grad" x1="0" x2="0" y1="0" y2="1">
                    <stop offset="0%" stopColor="var(--accent)" stopOpacity="0.25"/>
                    <stop offset="100%" stopColor="var(--accent)" stopOpacity="0"/>
                  </linearGradient>
                </defs>
                <path d="M0,55 L20,48 L40,42 L60,38 L80,20 L100,14 L120,18 L140,12 L160,22 L180,30 L200,25 L220,35 L240,30 L260,40 L280,42 L300,38 L300,70 L0,70 Z" fill="url(#grad)"/>
                <path d="M0,55 L20,48 L40,42 L60,38 L80,20 L100,14 L120,18 L140,12 L160,22 L180,30 L200,25 L220,35 L240,30 L260,40 L280,42 L300,38" fill="none" stroke="var(--accent)" strokeWidth="1.8"/>
              </svg>
            </div>
          </div>
        )}

        {tab === 1 && (
          <div>
            <div style={{ border: "1px dashed var(--line-strong)", borderRadius: 10, padding: 20, background: "var(--bg-alt)" }}>
              <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 12 }}>
                <div style={{ background: "#fff", border: "1px solid var(--line)", borderRadius: 8, padding: 12, height: 60, display: "flex", alignItems: "center", justifyContent: "center", fontSize: 12, color: "var(--ink-muted)", fontFamily: "Geist Mono, monospace" }}>LOGO</div>
                <div style={{ background: "#fff", border: "1px solid var(--line)", borderRadius: 8, padding: 12, height: 60, display: "flex", alignItems: "center", justifyContent: "flex-end", fontSize: 12, color: "var(--ink-muted)", fontFamily: "Geist Mono, monospace" }}>MENU</div>
              </div>
              <div style={{ background: "#fff", border: "1px solid var(--line)", borderRadius: 8, padding: 16, marginTop: 10, height: 80, display: "flex", flexDirection: "column", justifyContent: "center" }}>
                <div style={{ fontWeight: 600, fontSize: 14, marginBottom: 4 }}>Kedves {"{{keresztnev}}"},</div>
                <div style={{ height: 7, background: "var(--line)", borderRadius: 3, marginBottom: 5, width: "90%" }}></div>
                <div style={{ height: 7, background: "var(--line)", borderRadius: 3, width: "70%" }}></div>
              </div>
              <div style={{ display: "flex", gap: 8, marginTop: 10 }}>
                <div style={{ flex: 1, background: "#fff", border: "1px solid var(--line)", borderRadius: 8, height: 60 }}></div>
                <div style={{ width: 120, background: "var(--accent)", color: "#fff", borderRadius: 8, height: 60, display: "flex", alignItems: "center", justifyContent: "center", fontSize: 12, fontWeight: 600 }}>Megnézem</div>
              </div>
            </div>
            <div style={{ display: "flex", gap: 6, marginTop: 12, fontSize: 11, color: "var(--ink-muted)", fontFamily: "Geist Mono, monospace" }}>
              <span style={{ padding: "4px 8px", background: "var(--accent-soft)", color: "var(--accent)", borderRadius: 4 }}>+ szöveg</span>
              <span style={{ padding: "4px 8px", background: "var(--bg-alt)", borderRadius: 4 }}>+ kép</span>
              <span style={{ padding: "4px 8px", background: "var(--bg-alt)", borderRadius: 4 }}>+ gomb</span>
              <span style={{ padding: "4px 8px", background: "var(--bg-alt)", borderRadius: 4 }}>+ divider</span>
            </div>
          </div>
        )}

        {tab === 2 && (
          <div style={{ padding: "6px 0" }}>
            {[
              { l: "Feliratkozás", t: "Üdvözlő levél", d: "azonnal" },
              { l: "+ 2 nap", t: "Bemutatkozás", d: "e-mail" },
              { l: "+ 5 nap", t: "Ha nem nyitotta meg", d: "újracélzás" },
              { l: "+ 7 nap", t: "Első ajánlat", d: "e-mail + SMS" },
            ].map((s, i) => (
              <div key={i} style={{ display: "grid", gridTemplateColumns: "90px 1fr auto", gap: 12, padding: "12px 0", borderBottom: i < 3 ? "1px solid var(--line)" : "none", alignItems: "center" }}>
                <div style={{ fontFamily: "Geist Mono, monospace", fontSize: 12, color: "var(--ink-muted)" }}>{s.l}</div>
                <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
                  <div style={{ width: 8, height: 8, background: "var(--accent)", borderRadius: 50 }}></div>
                  <span style={{ fontSize: 14, fontWeight: 500 }}>{s.t}</span>
                </div>
                <div style={{ fontSize: 11.5, fontFamily: "Geist Mono, monospace", color: "var(--ink-muted)", padding: "3px 8px", background: "var(--bg-alt)", borderRadius: 4 }}>{s.d}</div>
              </div>
            ))}
          </div>
        )}
      </div>
    </div>
  );
};

// ---------- KKV BAND ----------
const KKVBand = () => (
  <section className="kkv">
    <div className="wrap">
      <div className="kkv-grid">
        <div>
          <div className="section-label">Magyar igényekre építve</div>
          <h2 className="h2">Nem fordított felület. Itthon fejlesztett rendszer.</h2>
          <p className="lead">
            A NetAdClick.com hírlevélküldőt több mint 10 év magyar kampánytapasztalata alapján fejlesztjük — magyar kkv-k, magyar ügyfélszolgálat számára. Amikor beszélgetünk Önnel, nemcsak a terméket ismerjük: az SMS kampányok, az eseményvezérelt automatizmusok és a GDPR-sablonok is alapból benne vannak.
          </p>
        </div>
        <div className="kkv-stats">
          <div className="kkv-stat">
            <div className="num">10<span className="u">+ év</span></div>
            <div className="cap">magyar piaci tapasztalat</div>
          </div>
          <div className="kkv-stat">
            <div className="num">10 000<span className="u">+</span></div>
            <div className="cap">lefuttatott kampány</div>
          </div>
          <div className="kkv-stat">
            <div className="num">9–17h</div>
            <div className="cap">magyar ügyfélszolgálat</div>
          </div>
          <div className="kkv-stat">
            <div className="num">45<span className="u">perc</span></div>
            <div className="cap">ingyenes személyes bemutató</div>
          </div>
        </div>
      </div>
    </div>
  </section>
);

// ---------- FEATURES ----------
const Features = () => (
  <section id="funkciok">
    <div className="wrap">
      <div className="section-label">A hírlevélküldő modul</div>
      <h2 className="h2">Minden, ami egy modern email marketinghez kell — egyetlen rendszerben.</h2>
      <p className="lead">
        Nem kell külön küldőt, külön analitikát, külön automatizmust, külön SMS-platformot fizetnie. A szegmenstől az újracélzásig minden egy adatbázisra, egy logikára épül.
      </p>
      <div className="features">
        {FEATURES.map((f, i) => (
          <div className="feat" key={i}>
            <span className="num">/ 0{i + 1}</span>
            <div className="feat-icon">{f.icon}</div>
            <h3>{f.title}</h3>
            <p>{f.desc}</p>
          </div>
        ))}
      </div>
    </div>
  </section>
);

// ---------- SUPPORT ----------
const Support = () => (
  <section id="tamogatas">
    <div className="wrap">
      <div className="support">
        <div>
          <div className="section-label">Teljeskörű támogatás</div>
          <h2 className="h2">Ön használja. Mi beállítjuk, összekötjük, megtervezzük.</h2>
          <p className="lead">
            A legtöbb rendszer egy bejelentkezési képernyővel fogadja és egy YouTube-linkkel küldi tovább Önt. Mi nem.
            Az első kampányig — és azután is — a munka oroszlánrészét mi végezzük.
          </p>
          <div style={{ marginTop: 28, padding: 18, border: "1px solid var(--line)", borderRadius: 10, background: "var(--bg-alt)" }}>
            <div style={{ fontFamily: "Geist Mono, monospace", fontSize: 12, color: "var(--ink-muted)", letterSpacing: "0.05em", textTransform: "uppercase", marginBottom: 8 }}>Egy dedikált kapcsolattartó</div>
            <div style={{ fontSize: 15, color: "var(--ink-2)", lineHeight: 1.55 }}>
              Nem ticket-számot kap, hanem egy nevet és egy telefonszámot. Aki felveszi, amikor hívja.
            </div>
          </div>
        </div>
        <div className="support-list">
          {SUPPORT.map((s, i) => (
            <div className="support-item" key={i}>
              <div className="idx">/ 0{i + 1}</div>
              <div>
                <h4>{s.t}</h4>
                <p>{s.d}</p>
              </div>
            </div>
          ))}
        </div>
      </div>
    </div>
  </section>
);

// ---------- PRICING ----------
const Pricing = ({ onBook }) => (
  <section id="ar" className="pricing">
    <div className="wrap">
      <div className="section-label">Bevezető ár</div>
      <h2 className="h2">Átlátható, havi elszámolású. Nincs kötelező éves szerződés.</h2>
      <p className="lead">
        Havi alapdíj a teljes csomagra (hírlevélküldő + kérdőív + webanalitika), és egy egyszerű, kiküldött levélre vetített díj.
        Semmi belépési díj, semmi rejtett költség.
      </p>
      <div className="price-card">
        <span className="badge">BEVEZETŐ AJÁNLAT</span>
        <div style={{ fontSize: 21, fontWeight: 600, letterSpacing: "-0.01em" }}>Komplett hírlevélküldő csomag</div>
        <div style={{ fontSize: 15, color: "var(--ink-muted)", marginTop: 4 }}>Hírlevélküldő modul + kérdőív-készítő + webanalitika</div>
        <div className="price-grid">
          <div className="price-item">
            <div className="label">Havi díj</div>
            <div className="val">15 000 Ft<span className="u">+ ÁFA / hó</span></div>
          </div>
          <div className="price-item">
            <div className="label">Levélküldési díj</div>
            <div className="val">0,3 Ft<span className="u">+ ÁFA / levél</span></div>
          </div>
        </div>
        <ul className="price-incl">
          <li>Korlátlan lista-import</li>
          <li>Korlátlan kampány / hó</li>
          <li>Mikro-szegmentáció</li>
          <li>Trigger Mail automatizmus</li>
          <li>Kérdőív + feliratkozó form</li>
          <li>Valós idejű statisztika</li>
          <li>Magyar nyelvű ügyfélszolgálat</li>
          <li>Kódbefűzés + listabeállítás</li>
        </ul>
        <button className="btn btn-primary btn-xl btn-arrow" onClick={onBook} style={{ width: "100%" }}>
          Kérek ingyenes személyes bemutatót
        </button>
        <div className="price-foot">Nincs beléptetési díj. Havi elszámolás. Bármikor lezárható. A bemutató semmire nem kötelezi.</div>
      </div>
    </div>
  </section>
);

// ---------- BOOKING ----------
const Booking = ({ bookRef }) => {
  useEffect(() => {
    // Load Calendly widget script once
    if (!document.querySelector('script[src*="calendly.com/assets/external/widget.js"]')) {
      const s = document.createElement('script');
      s.src = 'https://assets.calendly.com/assets/external/widget.js';
      s.async = true;
      document.body.appendChild(s);
    }
    if (!document.querySelector('link[href*="calendly.com/assets/external/widget.css"]')) {
      const l = document.createElement('link');
      l.rel = 'stylesheet';
      l.href = 'https://assets.calendly.com/assets/external/widget.css';
      document.head.appendChild(l);
    }
  }, []);

  return (
    <section id="foglalas" ref={bookRef} style={{ background: "var(--bg)" }}>
      <div className="wrap">
        <div className="book-wrap">
          <div className="book-left">
            <div className="section-label">Ingyenes bemutató</div>
            <h2 className="h2">Beszéljünk 45 percet — és tudni fogja, megéri-e.</h2>
            <p className="lead">
              A bemutató nem értékesítő előadás, hanem egy konkrét, Önre szabott munkamenet. A végén világos terve lesz, akkor is, ha nem velünk folytatja.
            </p>
            <ul className="book-promise">
              <li><span className="k">01</span> Áttekintjük a meglévő listát, kampányokat, eszközöket.</li>
              <li><span className="k">02</span> Megmutatjuk, hogyan nézne ki az első 3 automatizmus a vállalkozásában.</li>
              <li><span className="k">03</span> Kap egy lépéstervet — becsült idő, költség, várható eredmény.</li>
              <li><span className="k">04</span> Döntsön Ön. Nem hívjuk vissza, nem küldünk értékesítő sorozatot.</li>
            </ul>
            <div style={{ marginTop: 28, padding: 18, border: "1px solid var(--line)", borderRadius: 10, background: "var(--bg-alt)" }}>
              <div style={{ fontFamily: "Geist Mono, monospace", fontSize: 12, color: "var(--ink-muted)", letterSpacing: "0.05em", textTransform: "uppercase", marginBottom: 8 }}>Mindig elérhető alternatíva</div>
              <div style={{ fontSize: 15, color: "var(--ink-2)", lineHeight: 1.55 }}>
                Telefon: <b style={{ color: "var(--ink)" }}>+36 30 308 2358</b> · E-mail: <b style={{ color: "var(--ink)" }}>hirlevel@netadclick.com</b>
              </div>
            </div>
          </div>

          <div className="book-card">
            <div className="book-card-head">
              <div>
                <div className="t">Ingyenes 45 perces bemutató</div>
                <div className="s">calendly.com / netadclick</div>
              </div>
              <div className="s">ÉLŐ NAPTÁR</div>
            </div>
            <div
              className="calendly-inline-widget"
              data-url="https://calendly.com/netadclick/kapcsolatfelvetel?hide_landing_page_details=1&hide_gdpr_banner=1&primary_color=0a84a8"
              style={{ minWidth: 320, height: 720 }}
            ></div>
          </div>
        </div>
      </div>
    </section>
  );
};

// ---------- FAQ ----------
const FAQList = () => {
  const [open, setOpen] = useState(0);
  return (
    <section id="gyik" style={{ background: "var(--bg-alt)" }}>
      <div className="wrap" style={{ maxWidth: 920 }}>
        <div className="section-label">Gyakori kérdések</div>
        <h2 className="h2">Mire gondolunk, mielőtt belevágunk.</h2>
        <div className="faq-list">
          {FAQ.map((f, i) => (
            <div key={i} className={`faq-item ${open === i ? "open" : ""}`}>
              <div className="faq-q" onClick={() => setOpen(open === i ? -1 : i)}>
                <span>{f.q}</span>
                <span className="ico">+</span>
              </div>
              <div className="faq-a">{f.a}</div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
};

// ---------- FOOTER ----------
const Footer = ({ onBook }) => (
  <footer>
    <div className="wrap">
      <div className="foot-grid">
        <div>
          <span className="foot-logo">
            <img src="assets/netadclick-logo.png" alt="NetAdClick.com" style={{ height: 32, width: "auto", display: "block" }} />
          </span>
          <p>Hírlevélküldő, kérdőív és webanalitika egy rendszerben — magyar kkv-knak, magyar nyelvű ügyfélszolgálattal.</p>
        </div>
        <div>
          <h5>Modul</h5>
          <ul>
            <li><a href="#funkciok">Funkciók</a></li>
            <li><a href="#tamogatas">Támogatás</a></li>
            <li><a href="#ar">Árazás</a></li>
            <li><a href="#gyik">GYIK</a></li>
          </ul>
        </div>
        <div>
          <h5>Kapcsolat</h5>
          <ul>
            <li>AD Solutions Kft.</li>
            <li>+36 30 308 2358</li>
            <li>hirlevel@netadclick.com</li>
            <li>Budapest, Magyarország</li>
          </ul>
        </div>
        <div>
          <h5>Kezdjen bele</h5>
          <ul>
            <li><a href="#foglalas" onClick={(e) => { e.preventDefault(); onBook(); }}>Ingyenes bemutató →</a></li>
            <li><a href="https://netadclick.com" target="_blank" rel="noreferrer">netadclick.com</a></li>
          </ul>
        </div>
      </div>
      <div className="foot-bottom">
        <span>© 2026 AD Solutions Kft. · Minden jog fenntartva</span>
      </div>
    </div>
  </footer>
);

// ---------- STICKY BOOKING ----------
const StickyBook = ({ onBook, visible }) => {
  if (!visible) return null;
  return (
    <div className="sticky-book" onClick={onBook}>
      <span className="pulse"></span>
      Ingyenes bemutató foglalása
    </div>
  );
};

// ---------- TWEAKS ----------
const ACCENT_PRESETS = {
  teal:   { a: "#0a84a8", h: "#086a89", soft: "#e8f4f8", ad: "#0a84a8" },
  indigo: { a: "#4f46e5", h: "#3d35c4", soft: "#eef0fd", ad: "#4f46e5" },
  emerald:{ a: "#0f8a5f", h: "#0c6e4a", soft: "#e6f5ed", ad: "#0f8a5f" },
  amber:  { a: "#b4530b", h: "#8d4109", soft: "#fbf0e2", ad: "#b4530b" },
  crimson:{ a: "#b91c1c", h: "#8f1212", soft: "#fceaea", ad: "#b91c1c" },
};

const TweaksPanel = ({ open, onClose, tweaks, setTweaks }) => {
  if (!open) return null;
  const apply = (k, v) => {
    const next = { ...tweaks, [k]: v };
    setTweaks(next);
    window.parent.postMessage({ type: "__edit_mode_set_keys", edits: { [k]: v } }, "*");
  };
  return (
    <div className="tweaks-panel">
      <h6>Tweaks <span className="close" onClick={onClose}>×</span></h6>
      <div className="tweaks-row">
        <label>Kiemelő szín</label>
        <div className="tweaks-swatches">
          {Object.entries(ACCENT_PRESETS).map(([k, v]) => (
            <div key={k} className={`tweaks-swatch ${tweaks.accent === k ? "active" : ""}`} style={{ background: v.a }} onClick={() => apply("accent", k)}></div>
          ))}
        </div>
      </div>
      <div className="tweaks-row">
        <label>Hero főcím</label>
        <div className="tweaks-seg">
          {["A","B","C"].map(v => (
            <button key={v} className={tweaks.heroVariant === v ? "active" : ""} onClick={() => apply("heroVariant", v)}>{v}</button>
          ))}
        </div>
        <div style={{ fontSize: 11, color: "var(--ink-muted)", marginTop: 6, fontFamily: "Geist Mono, monospace" }}>
          {tweaks.heroVariant === "A" && "kkv-fókusz"}
          {tweaks.heroVariant === "B" && "eredmény-fókusz"}
          {tweaks.heroVariant === "C" && "ár-fókusz"}
        </div>
      </div>
      <div className="tweaks-row">
        <label>KKV sáv</label>
        <div className="tweaks-seg">
          {[["stats","stat"],["story","szöveg"]].map(([v,l]) => (
            <button key={v} className={tweaks.kkvLayout === v ? "active" : ""} onClick={() => apply("kkvLayout", v)}>{l}</button>
          ))}
        </div>
      </div>
    </div>
  );
};

// ---------- APP ----------
const HERO_TITLES = {
  A: <>Hírlevélküldő, amit <span className="underline">magyar kkv-k</span> igényeire építettünk.</>,
  B: <>Több <span className="underline">megnyitás</span>, több <span className="underline">kattintás</span>, kevesebb eszköz.</>,
  C: <>Teljes e-mail marketing <span className="underline">15 000 Ft-tól</span> havonta.</>,
};
const HERO_SUBS = {
  A: "Drag-and-drop szerkesztő, valós idejű statisztika, automatizmusok, SMS és kérdőív — egyetlen rendszerben. A kódbefűzést, a listákat, a leveleket, a designt és az automatizmusokat mi állítjuk be Ön helyett, magyar nyelvű ügyfélszolgálattal.",
  B: "Szegmentált listák, eseményvezérelt automatizmusok, újracélzás és mikro-analitika — egy logikára, egy adatbázisra építve. A kampányai úgy dolgoznak, ahogy még nem dolgoztak.",
  C: "Korlátlan kampány, korlátlan lista, kérdőív és webanalitika is benne. 0,3 Ft / kiküldött levél, nincs beléptetési díj, nincs éves szerződés. Havi elszámolás, bármikor lezárható."
};

const App = () => {
  const [tweaks, setTweaks] = useState(window.__TWEAKS__);
  const [tweaksOpen, setTweaksOpen] = useState(false);
  const [showSticky, setShowSticky] = useState(false);
  const bookRef = useRef(null);

  // Apply accent color
  useEffect(() => {
    const p = ACCENT_PRESETS[tweaks.accent] || ACCENT_PRESETS.teal;
    document.documentElement.style.setProperty("--accent", p.a);
    document.documentElement.style.setProperty("--accent-hover", p.h);
    document.documentElement.style.setProperty("--accent-soft", p.soft);
    // Also update the "Ad" in logos
    document.querySelectorAll(".lo-ad").forEach(el => el.style.color = p.ad);
  }, [tweaks.accent]);

  // Edit mode messaging
  useEffect(() => {
    const handler = (e) => {
      if (!e.data) return;
      if (e.data.type === "__activate_edit_mode") setTweaksOpen(true);
      if (e.data.type === "__deactivate_edit_mode") setTweaksOpen(false);
    };
    window.addEventListener("message", handler);
    window.parent.postMessage({ type: "__edit_mode_available" }, "*");
    return () => window.removeEventListener("message", handler);
  }, []);

  // Scroll-triggered sticky book button
  useEffect(() => {
    const onScroll = () => {
      setShowSticky(window.scrollY > 600 && window.scrollY < document.body.scrollHeight - window.innerHeight - 400);
    };
    window.addEventListener("scroll", onScroll);
    onScroll();
    return () => window.removeEventListener("scroll", onScroll);
  }, []);

  const scrollToBook = () => {
    bookRef.current?.scrollTo?.({ top: 0, behavior: "smooth" });
    const el = document.getElementById("foglalas");
    if (el) window.scrollTo({ top: el.offsetTop - 40, behavior: "smooth" });
  };

  return (
    <>
      <Nav onBook={scrollToBook} />
      <section className="hero" style={{ borderTop: "none" }}>
        <div className="wrap">
          <div className="hero-grid">
            <div>
              <span className="eyebrow"><span className="dot"></span>Magyar kkv-knak, magyarul</span>
              <h1 className="h1">{HERO_TITLES[tweaks.heroVariant] || HERO_TITLES.A}</h1>
              <p className="hero-sub">{HERO_SUBS[tweaks.heroVariant] || HERO_SUBS.A}</p>
              <div className="hero-ctas">
                <button className="btn btn-primary btn-xl btn-arrow" onClick={scrollToBook}>
                  Foglaljon ingyenes 45 perces bemutatót
                </button>
                <a href="#funkciok" className="btn btn-ghost btn-xl">Funkciók</a>
              </div>
              <div className="hero-trust">
                <span><span className="check">✓</span> 45 perc, ingyenes</span>
                <span><span className="check">✓</span> Nincs kötelező szerződés</span>
                <span><span className="check">✓</span> Magyar nyelvű support</span>
                <span><span className="check">✓</span> Bevezető ár: 15 000 Ft / hó</span>
              </div>
            </div>
            <HeroPreview />
          </div>
        </div>
      </section>
      <KKVBand />
      <Features />
      <Support />
      <Pricing onBook={scrollToBook} />
      <Booking bookRef={bookRef} />
      <FAQList />
      <Footer onBook={scrollToBook} />
      <StickyBook onBook={scrollToBook} visible={showSticky} />
      <TweaksPanel open={tweaksOpen} onClose={() => setTweaksOpen(false)} tweaks={tweaks} setTweaks={setTweaks} />
    </>
  );
};

ReactDOM.createRoot(document.getElementById("root")).render(<App />);
