const { useState, useEffect, useRef } = React;

// =========== TWEAK DEFAULTS (persistable) ===========
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "accent": "#6b3fa0"
} /*EDITMODE-END*/;

const ACCENT_OPTIONS = [
{ name: "Lila profundo", value: "#6b3fa0" },
{ name: "Violeta real", value: "#5a2a9e" },
{ name: "Índigo", value: "#4a3f9f" },
{ name: "Ciruela", value: "#7b3b7a" },
{ name: "Orquídea", value: "#9855b8" }];


// =========== ICONS ===========
const Icon = ({ name, size = 28, stroke = 1.5 }) => {
  const props = { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: stroke, strokeLinecap: "round", strokeLinejoin: "round" };
  switch (name) {
    case "brain":
      return <svg {...props}><path d="M12 5a3 3 0 0 0-5.9-.7C4.3 4.6 3 6 3 8c0 1 .5 2 1 2.5-.5.5-1 1.5-1 2.5 0 1.8 1.2 3.3 2.8 3.7A3 3 0 0 0 8.5 20c1.2 0 2.3-.7 2.9-1.7M12 5a3 3 0 0 1 5.9-.7C19.7 4.6 21 6 21 8c0 1-.5 2-1 2.5.5.5 1 1.5 1 2.5 0 1.8-1.2 3.3-2.8 3.7a3 3 0 0 1-2.7 3.3c-1.2 0-2.3-.7-2.9-1.7M12 5v14M8 10c1.5 0 3-1 3-3M16 10c-1.5 0-3-1-3-3M9 14c1 0 2-.5 2.5-1.5M15 14c-1 0-2-.5-2.5-1.5" /></svg>;
    case "spiral":
      return <svg {...props}><path d="M14.5 12a2.5 2.5 0 1 1-5 0 2.5 2.5 0 1 1 5 0" /><path d="M17 12a5 5 0 1 1-10 0 5 5 0 0 1 10 0" /><path d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0" /></svg>;
    case "target":
      return <svg {...props}><circle cx="12" cy="12" r="9" /><circle cx="12" cy="12" r="5" /><circle cx="12" cy="12" r="1.5" fill="currentColor" /><path d="M12 3v3M21 12h-3M12 21v-3M3 12h3" /></svg>;
    case "wave":
      return <svg {...props}><path d="M3 12c2-4 4-4 6 0s4 4 6 0 4-4 6 0" /><path d="M3 17c2-4 4-4 6 0s4 4 6 0 4-4 6 0" opacity=".5" /><path d="M3 7c2-4 4-4 6 0s4 4 6 0 4-4 6 0" opacity=".35" /></svg>;
    case "seed":
      return <svg {...props}><path d="M12 2C8 6 6 9 6 13a6 6 0 0 0 12 0c0-4-2-7-6-11z" /><path d="M12 22v-6M9 18c1-.5 2-.5 3 0" /></svg>;
    case "check":
      return <svg {...props} strokeWidth="2.2"><path d="M5 12.5 10 17 19 7" /></svg>;
    case "arrow":
      return <svg {...props}><path d="M5 12h14M13 6l6 6-6 6" /></svg>;
    case "pin":
      return <svg {...props}><path d="M12 21s7-6 7-12a7 7 0 0 0-14 0c0 6 7 12 7 12z" /><circle cx="12" cy="9" r="2.5" /></svg>;
    case "clock":
      return <svg {...props}><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /></svg>;
    case "calendar":
      return <svg {...props}><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 10h18M8 3v4M16 3v4" /></svg>;
    case "shirt":
      return <svg {...props}><path d="M8 3 12 6 16 3l5 3-2 4-3-1v12H6V9L3 10 1 6z" /></svg>;
    case "notebook":
      return <svg {...props}><path d="M4 4h14v16H4z" /><path d="M4 4h14M8 4v16M4 9h4M4 14h4" /></svg>;
    case "water":
      return <svg {...props}><path d="M12 3c-4 5-6 8-6 11a6 6 0 0 0 12 0c0-3-2-6-6-11z" /></svg>;
    case "heart":
      return <svg {...props}><path d="M20.8 6.6a5.5 5.5 0 0 0-9-1.8 5.5 5.5 0 1 0-7.8 7.8l7.8 7.8 7.8-7.8a5.5 5.5 0 0 0 1.2-6z" /></svg>;
    case "refresh":
      return <svg {...props}><path d="M3 12a9 9 0 0 1 15-6.7L21 8" /><path d="M21 3v5h-5" /><path d="M21 12a9 9 0 0 1-15 6.7L3 16" /><path d="M3 21v-5h5" /></svg>;
    case "shield":
      return <svg {...props}><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" /></svg>;
    case "whatsapp":
      return <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor"><path d="M17.5 14.3c-.3-.1-1.7-.9-2-1s-.5-.2-.7.2-.7.9-.9 1.1c-.2.2-.3.2-.6.1-.3-.2-1.3-.5-2.4-1.5-.9-.8-1.5-1.8-1.7-2.1-.2-.3 0-.5.1-.6.1-.1.3-.3.4-.5s.2-.2.3-.4.1-.3 0-.5c-.1-.1-.6-1.6-.9-2.1-.2-.6-.4-.5-.6-.5h-.5c-.2 0-.5.1-.7.3-.3.3-.9.9-.9 2.2s1 2.6 1.1 2.8c.1.2 2 3.1 4.8 4.3 1.2.5 2.1.8 2.8.6 1.4-.3 2.5-1.2 2.6-1.8.1-.6-.1-1-.2-1.1zM12 22a10 10 0 1 1 10-10 10 10 0 0 1-10 10zm7-10a7 7 0 1 0-11.9 5l-1 3.7 3.8-1a7 7 0 0 0 9.1-7.7z" /></svg>;
    default:return null;
  }
};

// =========== HERO ABSTRACT IMAGE (SVG camino/horizonte) ===========
const HeroVisual = () =>
<div className="hero-visual">
    <svg viewBox="0 0 400 500" preserveAspectRatio="xMidYMid slice" xmlns="http://www.w3.org/2000/svg">
      <defs>
        <radialGradient id="sunG" cx="50%" cy="38%" r="30%">
          <stop offset="0%" stopColor="#fff1c9" stopOpacity="0.9" />
          <stop offset="40%" stopColor="#e4b8ff" stopOpacity="0.45" />
          <stop offset="100%" stopColor="#e4b8ff" stopOpacity="0" />
        </radialGradient>
        <linearGradient id="horizonG" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0%" stopColor="#1a1035" />
          <stop offset="40%" stopColor="#4a2878" />
          <stop offset="70%" stopColor="#7a4db8" />
          <stop offset="100%" stopColor="#d7c4f0" />
        </linearGradient>
        <linearGradient id="pathG" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0%" stopColor="#d7c4f0" stopOpacity="0.05" />
          <stop offset="100%" stopColor="#0e0722" stopOpacity="0.85" />
        </linearGradient>
      </defs>

      {/* sky */}
      <rect width="400" height="500" fill="url(#horizonG)" />

      {/* sun / glow */}
      <circle cx="200" cy="200" r="180" fill="url(#sunG)" />
      <circle cx="200" cy="200" r="48" fill="#fff1c9" opacity="0.55" />

      {/* distant mountain silhouettes */}
      <path d="M0 260 L60 220 L110 250 L160 215 L220 245 L280 210 L340 240 L400 225 L400 280 L0 280 Z" fill="#2a1d4d" opacity="0.65" />
      <path d="M0 290 L50 265 L110 285 L180 260 L250 285 L320 265 L400 280 L400 340 L0 340 Z" fill="#1a1035" opacity="0.8" />

      {/* horizon line */}
      <line x1="0" y1="310" x2="400" y2="310" stroke="#b89dde" strokeWidth="0.5" opacity="0.4" />

      {/* path */}
      <path d="M200 310 L245 500 L155 500 Z" fill="url(#pathG)" />
      {/* path stripes (horizontal ties) */}
      {[320, 340, 365, 395, 430, 470].map((y, i) => {
      const w = 10 + (y - 310) * 0.6;
      return <rect key={i} x={200 - w / 2} y={y} width={w} height={2} fill="#d7c4f0" opacity={0.15 + i * 0.05} />;
    })}

      {/* silhouette figure */}
      <g transform="translate(200 280)" fill="#0e0722">
        <ellipse cx="0" cy="-2" rx="5" ry="6" />
        <path d="M-6 4 Q-7 20 -4 35 L-3 55 L-5 65 L-2 65 L-1 55 L1 55 L2 65 L5 65 L3 55 L4 35 Q7 20 6 4 Q0 0 -6 4 Z" />
      </g>

      {/* star dots */}
      <circle cx="50" cy="60" r="1.2" fill="#d7c4f0" opacity="0.7" />
      <circle cx="320" cy="40" r="1" fill="#d7c4f0" opacity="0.6" />
      <circle cx="90" cy="100" r="0.8" fill="#fff" opacity="0.5" />
      <circle cx="360" cy="90" r="1.3" fill="#fff1c9" opacity="0.6" />
      <circle cx="140" cy="30" r="0.9" fill="#fff" opacity="0.4" />
    </svg>

    <div className="ph-label"></div>
    <div className="tag">
      <span>01<br /></span>
      <span className="big">Activar.</span>
    </div>
  </div>;


// =========== FACILITATOR PHOTO PLACEHOLDER ===========
const FacilitatorPhoto = () => (
  <div
    className="facilitator-photo"
    style={{
      backgroundImage: "url('/imagenes/laura.png')",
      backgroundSize: "cover",
      backgroundPosition: "78% 18%",
      backgroundRepeat: "no-repeat"
    }}
  >
    <div className="ph-label">Laura</div>
  </div>
);


// =========== COUNTDOWN ===========
const Countdown = ({ target }) => {
  const [t, setT] = useState(() => diff(target));
  useEffect(() => {
    const id = setInterval(() => setT(diff(target)), 1000);
    return () => clearInterval(id);
  }, [target]);
  function diff(d) {
    const ms = Math.max(0, d - new Date());
    return {
      days: Math.floor(ms / 86400000),
      hours: Math.floor(ms % 86400000 / 3600000),
      mins: Math.floor(ms % 3600000 / 60000),
      secs: Math.floor(ms % 60000 / 1000)
    };
  }
  const pad = (n) => String(n).padStart(2, "0");
  return (
    <div className="countdown container">
      <div>
        <div className="countdown-label">Próximo encuentro</div>
        <div style={{ fontFamily: "Fraunces, serif", fontSize: "1.4rem", marginTop: 6, letterSpacing: "-0.015em" }}>
          Jueves <em style={{ color: "var(--accent)", fontStyle: "italic" }}>21 de mayo</em> · 18:00 h
        </div>
      </div>
      <div className="countdown-units">
        <div className="cd-unit"><div className="n">{pad(t.days)}</div><div className="l">Días</div></div>
        <div className="cd-sep">·</div>
        <div className="cd-unit"><div className="n">{pad(t.hours)}</div><div className="l">Horas</div></div>
        <div className="cd-sep">·</div>
        <div className="cd-unit"><div className="n">{pad(t.mins)}</div><div className="l">Min</div></div>
        <div className="cd-sep">·</div>
        <div className="cd-unit"><div className="n">{pad(t.secs)}</div><div className="l">Seg</div></div>
      </div>
    </div>);

};

// =========== REVEAL ===========
const Reveal = ({ children, delay = 0, as: As = "div", className = "", ...rest }) => {
  const ref = useRef(null);
  const [v, setV] = useState(false);
  useEffect(() => {
    const el = ref.current;
    if (!el) return;
    const io = new IntersectionObserver(([e]) => {
      if (e.isIntersecting) {setTimeout(() => setV(true), delay);io.disconnect();}
    }, { threshold: 0.12 });
    io.observe(el);
    return () => io.disconnect();
  }, [delay]);
  return <As ref={ref} className={`reveal ${v ? "visible" : ""} ${className}`} {...rest}>{children}</As>;
};

// =========== FAQ ITEM ===========
const FAQ = ({ q, sesgo, children }) => {
  const [open, setOpen] = useState(false);
  return (
    <div className={`faq ${open ? "open" : ""}`}>
      <button className="faq-q" onClick={() => setOpen(!open)}>
        <span className="left">
          <span>
            {sesgo && <span className="sesgo">↳ {sesgo}</span>}
            <span>{q}</span>
          </span>
        </span>
        <span className="chev">+</span>
      </button>
      <div className="faq-a">{children}</div>
    </div>);

};

// =========== RESERVATION FORM ===========
const ReservationForm = ({ whatsapp }) => {
  const [sent, setSent] = useState(false);
  const [form, setForm] = useState({ nombre: "", email: "", tel: "", mensaje: "" });
  const upd = (k) => (e) => setForm((f) => ({ ...f, [k]: e.target.value }));

  const submit = (e) => {
    e.preventDefault();
    // simulate submission + open whatsapp with prefilled message
    const text = `Hola, soy ${form.nombre || "(tu nombre)"}. Quiero reservar mi lugar en el taller "De la Intención a la Acción" del 23 de mayo. Mi teléfono: ${form.tel || "(tu tel)"}. ${form.mensaje ? "Nota: " + form.mensaje : ""}`;
    const url = `https://wa.me/5492216233285?text=${encodeURIComponent(text)}`;
    window.open(url, "_blank");
    setSent(true);
  };

  if (sent) {
    return (
      <div className="form-success">
        <strong>✓ Listo</strong>
        Abrimos WhatsApp con tu mensaje prellenado. Si no se abrió, escribinos directamente y te pasamos los datos de la seña.
      </div>);

  }

  return (
    <form onSubmit={submit} style={{ display: "contents" }}>
      <div className="field">
        <label>Nombre y apellido</label>
        <input type="text" required value={form.nombre} onChange={upd("nombre")} placeholder="Cómo te llamás" />
      </div>
      <div className="field">
        <div className="row-2">
          <div>
            <label style={{ display: "block", marginBottom: 6 }}>Email</label>
            <input type="email" required value={form.email} onChange={upd("email")} placeholder="tu@email.com" style={{ width: "100%" }} />
          </div>
          <div>
            <label style={{ display: "block", marginBottom: 6 }}>WhatsApp</label>
            <input type="tel" required value={form.tel} onChange={upd("tel")} placeholder="+54 9 11…" style={{ width: "100%" }} />
          </div>
        </div>
      </div>
      <div className="field">
        <label>Algo que quieras contarnos (opcional)</label>
        <textarea rows="2" value={form.mensaje} onChange={upd("mensaje")} placeholder="Qué te trae al taller" />
      </div>
      <button type="submit" className="btn btn-violet form-submit">
        <Icon name="whatsapp" size={18} /> Enviar y abrir WhatsApp
      </button>
      <p style={{ margin: "4px 0 0", fontSize: 12, color: "var(--ink-60)", fontFamily: "'JetBrains Mono', monospace", letterSpacing: "0.06em" }}>
        Te respondemos en el día con los datos de la seña.
      </p>
    </form>);

};

// =========== TWEAKS PANEL ===========
const TweaksPanel = ({ open, onClose, accent, setAccent }) => {
  if (!open) return null;
  return (
    <div className="tweaks-panel open">
      <h4>Tweaks <button onClick={onClose}>×</button></h4>
      <div className="tweak-row">
        <label>Color de acento</label>
        <div className="swatch-row">
          {ACCENT_OPTIONS.map((s) =>
          <div
            key={s.value}
            className={`swatch ${accent === s.value ? "active" : ""}`}
            style={{ background: s.value }}
            title={s.name}
            onClick={() => setAccent(s.value)} />

          )}
        </div>
      </div>
      <div style={{ fontSize: 11, color: "rgba(240,232,247,.55)", marginTop: 12, fontFamily: "'JetBrains Mono', monospace" }}>
        Los cambios se guardan.
      </div>
    </div>);

};

// =========== APP ===========
const App = () => {
  const [accent, setAccent] = useState(TWEAK_DEFAULTS.accent);
  const [tweaksOpen, setTweaksOpen] = useState(false);

  useEffect(() => {
    const handler = (e) => {
      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);
  }, []);

  useEffect(() => {
    document.documentElement.style.setProperty("--accent", accent);
    window.parent.postMessage({ type: "__edit_mode_set_keys", edits: { accent } }, "*");
  }, [accent]);

  const WHATSAPP = "https://wa.me/5492216233285?text=Hola%2C%20quiero%20reservar%20mi%20lugar%20en%20el%20taller%20De%20la%20Intenci%C3%B3n%20a%20la%20Acci%C3%B3n.";
  const target = new Date(2026, 4, 21, 18, 0, 0);

  const tickerItems = [
  "Taller vivencial presencial",
  "23 de mayo · 18:00 a 20:30 h",
  "La Plata · Cupos limitados",
  "Neurociencia · PNL · Hipnosis",
  "De la intención a la acción",
  "Reservas abiertas"];


  return (
    <>
      <div className="ticker">
        <div className="ticker-track">
          {[...tickerItems, ...tickerItems].map((t, i) =>
          <span key={i}><span className="dot"></span>{t}</span>
          )}
        </div>
      </div>

      <nav className="nav">
        <div className="container nav-inner">
          <a className="brand" href="#top">
            <span className="brand-mark">a</span>
            <span style={{ fontFamily: "Arial" }}>De la intención a la acción <em style={{ fontStyle: "italic", color: "var(--ink-60)", fontWeight: 400 }}> · taller</em></span>
          </a>
          <div className="nav-links">
            <a href="#para-quien">Para quién</a>
            <a href="#metodo">Método</a>
            <a href="#facilitadora">Facilitadora</a>
            <a href="#inversion">Reservar</a>
            <a href="#faq">FAQ</a>
          </div>
          <a className="nav-cta" href={WHATSAPP} target="_blank" rel="noopener noreferrer">
            Reservar <Icon name="arrow" size={14} />
          </a>
        </div>
      </nav>

      {/* ===== HERO ===== */}
      <section className="hero" id="top">
        <div className="container">
          <div className="hero-top">
            <div className="hero-eyebrow">
              <span className="badge">En vivo · presencial</span>
            </div>
            <div className="hero-meta">
              <span><b>La Plata</b></span>
              <span><b>2h 30</b> de trabajo</span>
            </div>
          </div>

          <div className="hero-grid">
            <div>
              <h1 className="hero-title display">
                <span className="line de-la">De la</span>
                <span className="line word-intencion">intención</span>
                <span className="line a-la">a la</span>
                <span className="line word-accion">acción.</span>
              </h1>
              <p className="hero-sub">
                Un taller vivencial de <b>reprogramación interna</b> para quienes saben qué cambiar pero algo por dentro sigue frenando. Trabajamos la <b>estructura que sostiene la repetición</b>, no la motivación.
              </p>
              <div className="hero-cta">
                <a className="btn btn-violet" href="#inversion">
                  Reservar mi lugar <Icon name="arrow" size={16} />
                </a>
                <a className="btn btn-ghost" href="#metodo">
                  Ver método
                </a>
              </div>

              <div className="hero-note">
                <span className="icon">“</span>
                <div className="txt">
                  <strong>No es falta de motivación.</strong>
                  Es la forma en la que está programada la mente. Y eso se puede transformar.
                </div>
              </div>
            </div>

            <div>
              <HeroVisual />
            </div>
          </div>
        </div>

        <Countdown target={target} />
      </section>

      {/* ===== PARA QUIÉN ===== */}
      <section className="section section-lavender" id="para-quien">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">01</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Este taller es para vos si ·</div>
              <h2 className="display">¿Sentís que algo <em>tiene que cambiar</em>, pero todo sigue igual?</h2>
            </div>
            <p className="intro">Para quienes ya entendieron lo que les pasa y necesitan intervenir más profundo. Ver sin cambiar deja de alcanzar.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="check-list">
              {[
              ["Se repiten los mismos resultados", "Las decisiones cambian en la mente, pero afuera se sigue llegando al mismo lugar."],
              ["Se posterga lo importante", "Lo urgente gana. Lo que de verdad importa queda para después, otra vez."],
              ["Hay claridad, pero no hay acción", "Se sabe qué hacer. Saberlo no alcanza. Algo interno frena el movimiento."],
              ["Lo que empieza, no se sostiene", "La motivación inicial se apaga. Vuelve el automático, vuelven los patrones."]].
              map(([t, d], i) =>
              <div key={i} className="check-item">
                  <div className="bullet"><Icon name="check" size={18} /></div>
                  <div>
                    <h3>{t}</h3>
                    <p>{d}</p>
                  </div>
                </div>
              )}
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== QUOTE ===== */}
      <div className="quote-strip">
        <div className="container">
          <Reveal as="blockquote">
            El problema no es lo que no sabés. Es la <em>estructura interna</em> desde la que pensás, sentís y decidís.
          </Reveal>
          <div className="byline">— El cambio no empieza cuando sabés qué hacer.
Empieza cuando dejás de repetir quién estabas siendo.</div>
        </div>
      </div>

      {/* ===== MÉTODO ===== */}
      <section className="section section-dark" id="metodo">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">02</div>
            <div>
              <div className="mono-label" style={{ color: "rgba(184,157,222,.75)", marginBottom: 12 }}>· Cómo trabajamos ·</div>
              <h2 className="display">No es teoría.<br /><em>Es experiencia.</em></h2>
            </div>
            <p className="intro">Intervenimos donde se generan las decisiones: en la programación interna. Con herramientas que operan bajo el pensamiento consciente.</p>
          </Reveal>

          <Reveal delay={150} className="method-stack">
            <div>
              <h3>Mover el <em>punto</em> desde el cual se crea la realidad.</h3>
            </div>
            <div>
              <p>En 2 horas y media activamos un proceso de desprogramación y reprogramación guiada. No vas a irte con una lista de tareas: te vas con una nueva coordinación interna entre lo que pensás, lo que sentís y lo que hacés.</p>
              <p>Es un trabajo íntimo, grupal y vivencial. Cada ejercicio se vive en tiempo real.</p>
            </div>
          </Reveal>

          <Reveal delay={250}>
            <div className="tools-grid">
              {[
              { n: "01", i: "brain", t: "Neurociencia aplicada", d: "Cómo se forman los patrones y cómo se reescriben." },
              { n: "02", i: "wave", t: "PNL", d: "Lenguaje y submodalidades para cambiar el mapa interno." },
              { n: "03", i: "spiral", t: "Hipnosis guiada", d: "Acceso a capas profundas donde vive el automático." },
              { n: "04", i: "target", t: "Ejercicios vivenciales", d: "Trabajo práctico, en tiempo real, en cuerpo y voz." }].
              map((x, i) =>
              <div key={i} className="tool">
                  <div className="icon-wrap"><Icon name={x.i} size={28} /></div>
                  <div className="num">{x.n}</div>
                  <div>
                    <h4>{x.t}</h4>
                    <p>{x.d}</p>
                  </div>
                </div>
              )}
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== FACILITADORA ===== */}
      <section className="section section-lavender" id="facilitadora">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">03</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Quién guía el espacio ·</div>
              <h2 className="display">Una facilitadora, <em>no una fórmula.</em></h2>
            </div>
            <p className="intro">El trabajo se hace en presencia.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="facilitator-grid">
              <FacilitatorPhoto />
              <div>
                <div className="facilitator-role">Facilitadora · Coach ontológica</div>
                <h3 className="facilitator-name">Laura</h3>
                <div className="facilitator-bio">
                  <p>
                    Acompaña procesos de transformación personal desde hace más de una década. Su trabajo integra herramientas de neurociencia aplicada, PNL e hipnosis guiada para intervenir en los mecanismos internos que sostienen los patrones repetidos.
                  </p>
                  <p>
                    Cree que la transformación real no se construye con motivación, sino con <b>coherencia interna</b>: un proceso vivencial, íntimo y práctico, orientado a resultados sostenibles.
                  </p>
                </div>

                <div className="credentials">
                  {[
                  ["Formación", "Coach ontológico profesional"],
                  ["Trainer / Entrenadora", "PNL · Hipnosis ericksoniana"],
                  ["Experiencia", "+10 años acompañando procesos"],
                  ["Ediciones", "+400 personas en talleres previos"]].
                  map(([l, v], i) =>
                  <div key={i} className="cred">
                      <span className="dot"></span>
                      <div>
                        <div className="cred-label">{l}</div>
                        <div className="cred-value">{v}</div>
                      </div>
                    </div>
                  )}
                </div>
              </div>
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== QUÉ LLEVAR / QUÉ ESPERAR ===== */}
      <section className="section" id="llevar">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">04</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Qué esperar el día del taller ·</div>
              <h2 className="display">Llegás, respirás, <em>empezamos.</em></h2>
            </div>
            <p className="intro">El espacio está pensado y cuidado. Vos solo necesitás venir disponible.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="bring-grid">
              {[
              { i: "shirt", idx: "01", t: "Ropa cómoda", d: "Vas a estar sentada, acostada y en movimiento en distintos momentos. Prioridad: comodidad." },
              { i: "notebook", idx: "02", t: "Libreta o cuaderno", d: "Para anotar insights propios. No hace falta tomar notas extensas: te guiamos todo el proceso." },
              { i: "water", idx: "03", t: "Tu botella de agua", d: "Hay agua disponible, pero preferimos que lleves la tuya. El trabajo interno deshidrata más de lo que parece." },
              { i: "clock", idx: "04", t: "Llegar 15 min antes", d: "Abrimos 18:00 en punto. Llegar temprano te permite instalarte sin prisa y empezar con presencia." },
              { i: "heart", idx: "05", t: "Disposición, no preparación", d: "No necesitás leer nada previo. Venir abierta a la experiencia es todo lo que pedimos." },
              { i: "refresh", idx: "06", t: "Reservar tiempo después", d: "No agendes reuniones inmediatamente después. Dejá un rato para integrar lo que te pase." }].
              map((x, i) =>
              <div key={i} className="bring-card">
                  <span className="idx">{x.idx}</span>
                  <div className="ic"><Icon name={x.i} size={22} /></div>
                  <h4>{x.t}</h4>
                  <p>{x.d}</p>
                </div>
              )}
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== PRICE + FORM ===== */}
      <section className="section section-lavender" id="inversion">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">05</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Inversión y reserva ·</div>
              <h2 className="display">Un encuentro. <em>Un movimiento.</em></h2>
            </div>
            <p className="intro">Grupo reducido para garantizar trabajo en tiempo real con cada persona.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="price-wrap">
              <div className="price-left">
                <div className="kicker">Taller completo · 2h 30</div>
                <h2>Reprogramación <em>interna</em> guiada.</h2>

                <div className="price-numbers">
                  <div className="amount">
                    <sup>$</sup>33.000<span className="ars">ars</span>
                  </div>
                  <div className="deposit">
                    Reserva de lugar
                    <b>$15.000 ARS</b>
                  </div>
                </div>

                <div className="fine">
                  La reserva confirma tu cupo. El saldo se abona el día del taller. Al ser presencial y cuidado, los lugares son limitados.
                </div>
              </div>

              <div className="form-right">
                <h3>Reservá tu lugar.</h3>
                <div className="slots"><span className="pill">05 / 10</span> cupos disponibles</div>
                <ReservationForm whatsapp={WHATSAPP} />
              </div>
            </div>

            <div className="info-row">
              {[
              { i: "calendar", l: "Fecha", v: "Jue 21 de mayo" },
              { i: "clock", l: "Horario", v: "18:00 a 20:30 h" },
              { i: "pin", l: "Lugar", v: "Casa Pranava · La Plata" },
              { i: "seed", l: "Requisito", v: "Ropa cómoda" }].
              map((x, i) =>
              <div key={i} className="info-cell">
                  <div className="ico"><Icon name={x.i} size={20} /></div>
                  <div>
                    <div className="lab">{x.l}</div>
                    <div className="val">{x.v}</div>
                  </div>
                </div>
              )}
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== MAPA ===== */}
      <section className="section" id="donde">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">06</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Dónde ·</div>
              <h2 className="display">Un espacio cuidado, <em>en el corazón</em> de La Plata.</h2>
            </div>
            <p className="intro">Casa Pranava · Calle 8 nº 489, entre 41 y 42. La Plata. Acceso con transporte público y estacionamiento cercano.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="map-wrap">
              <div className="map-info">
                <div className="kicker">Ubicación</div>
                <h3>Casa Pranava · <span style={{ color: "var(--accent)", fontStyle: "italic" }}>La Plata, Buenos Aires</span></h3>
                <p>Casa Pranava es un espacio preparado para trabajo corporal y vivencial, con iluminación tenue, acústica aislada y temperatura estable. Te esperamos el jueves 21 de mayo, de 18:00 a 20:30.</p>
                <p style={{ fontFamily: "'JetBrains Mono', monospace", fontSize: 12, letterSpacing: "0.08em", color: "var(--ink)", textTransform: "uppercase" }}>
                  ⟶ Calle 8 nº 489 · entre 41 y 42<br />
                  ⟶ A 6 cuadras de Plaza San Martín<br />
                  ⟶ Micros · 214, 273, 307, 520, 561<br />
                  ⟶ Estacionamiento en la zona
                </p>
              </div>
              <div className="map-iframe">
                <iframe
                  loading="lazy"
                  referrerPolicy="no-referrer-when-downgrade"
                  src="https://www.openstreetmap.org/export/embed.html?bbox=-57.9580%2C-34.9330%2C-57.9380%2C-34.9210&amp;layer=mapnik&amp;marker=-34.9270%2C-57.9480"
                  title="Ubicación del taller">
                </iframe>
              </div>
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== FAQ (sesgos) ===== */}
      <section className="section section-lavender" id="faq">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">07</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Dudas y resistencias ·</div>
              <h2 className="display">Los sesgos que aparecen <em>antes de reservar.</em></h2>
            </div>
            <p className="intro">Abajo están las objeciones más frecuentes, nombradas por su sesgo cognitivo. Reconocerlo es, ya, parte del trabajo.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="faq-list">
              <FAQ q="“Ya leí mil libros y sé lo que tengo que hacer.”">
                <p>Entender no es transformar. La neurociencia lo muestra claro: <b>saber qué hacer no genera cambio</b> si el patrón interno que sostiene la conducta sigue intacto.</p>
                <p>Este taller no te suma información. Interviene la estructura desde la que tomás decisiones, para que lo que ya sabés empiece a traducirse en acción real.</p>
              </FAQ>

              <FAQ q="“Cuando sea el momento correcto, lo hago.”">
                <p>El “momento correcto” es una forma sofisticada de no actuar. El cerebro premia la sensación de decisión futura porque alivia la tensión presente, sin pedir costo.</p>
                <p>Si sentís que algo tiene que moverse, la resistencia a reservar hoy <b>es exactamente el patrón que venimos a trabajar.</b></p>
              </FAQ>

              <FAQ q="“Ya hice otros talleres y no funcionó. ¿Por qué este sí?”">
                <p>No podemos prometerte que “funcione” en abstracto. Sí podemos decirte qué lo hace distinto: el trabajo no pasa por reflexión ni motivación, sino por <b>intervención vivencial</b> en capas más profundas (hipnosis guiada, ejercicios somáticos, reencuadres en tiempo real).</p>
                <p>Si los talleres anteriores quedaron en la cabeza, este baja al cuerpo.</p>
              </FAQ>

              <FAQ q="“No sé si tengo tiempo ahora para esto.”">
                <p>Son 2 horas y media, una sola vez. Lo que suele frenarnos no es el tiempo real, sino <b>la resistencia a salir del estado conocido</b>, aunque ese estado ya no funcione.</p>
                <p>Preguntate honestamente: ¿cuánto tiempo seguís invirtiendo en el patrón que no querés sostener?</p>
              </FAQ>

              <FAQ q="“La hipnosis me da miedo. ¿Y si pierdo el control?”">
                <p>La hipnosis que usamos no tiene nada que ver con la versión escénica o del cine. Es un <b>estado de concentración profunda</b>, similar al que experimentás al manejar en piloto automático o meditar.</p>
                <p>En todo momento mantenés conciencia, podés hablar, moverte, decir que no. Es una herramienta de acceso, no de sumisión.</p>
              </FAQ>

              <FAQ q="“Si fuera tan efectivo, ¿por qué no lo hacen todos?”">
                <p>Porque cambiar estructuras internas genera incomodidad, y <b>la mayoría de las personas prefiere el alivio inmediato</b> de la motivación o la autoayuda. Este trabajo no da alivio rápido: da transformación sostenible.</p>
                <p>No es para todos. Es para quienes están listas/os para incomodarse un rato en función de un cambio real.</p>
              </FAQ>

              <FAQ q="“Me va a servir, pero no estoy bien ahora. Mejor cuando esté más estable.”">
                <p>Esperar a “estar bien” para trabajar lo que hace que no estés bien es la trampa más común. El taller <b>no requiere que estés en tu mejor momento</b>: requiere que tengas disposición a moverte.</p>
                <p>Si estás atravesando un proceso clínico agudo, conversalo con nosotras antes. Si es incomodidad vital ordinaria, este es el momento.</p>
              </FAQ>

              <FAQ q="“¿Voy a tener que contar cosas personales delante de desconocidos?”">
                <p>No. El trabajo es personal pero no expositivo: la mayoría de los ejercicios son individuales o en pares. <b>Elegís vos qué compartir</b> y qué se queda en tu proceso interno.</p>
                <p>El espacio está pensado para sostener la intimidad, no para forzarla.</p>
              </FAQ>

              <FAQ q="“Voy a pensarlo y reservo más adelante.”">
                <p>Pensarlo es legítimo. Pensarlo para no decidir es el patrón. Si estás leyendo esto es porque algo ya resonó; lo que decidas hacer con esa resonancia es, literalmente, <b>el material con el que empieza el taller.</b></p>
                <p>Si querés, escribinos por WhatsApp y conversamos. No hace falta reservar hoy para empezar la conversación.</p>
              </FAQ>
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== POLÍTICAS ===== */}
      <section className="section" id="politicas">
        <div className="container">
          <Reveal as="div" className="section-head">
            <div className="num">08</div>
            <div>
              <div className="mono-label" style={{ marginBottom: 12 }}>· Transparencia ·</div>
              <h2 className="display">Políticas de <em>cancelación y reserva.</em></h2>
            </div>
            <p className="intro">Queremos que llegues sin dudas. Estas son las condiciones.</p>
          </Reveal>

          <Reveal delay={120}>
            <div className="policy-grid">
              <div className="policy">
                <div className="ico"><Icon name="shield" size={18} /></div>
                <h4>Reserva y confirmación</h4>
                <p>La seña de $15.000 ARS confirma tu cupo. El saldo de $18.000 ARS se abona el día del taller (efectivo o transferencia)</p>
              </div>


              <div className="policy">
                <div className="ico"><Icon name="heart" size={18} /></div>
                <h4>Cancelación</h4>
                <p>Una vez realizada la reserva, no se realizan devoluciones de dinero.En caso de no poder asistir, la seña <b>sí es transferible</b> a otra persona que vos designes. Simplemente pasanos los datos por WhatsApp.</p>
              </div>
            </div>
          </Reveal>
        </div>
      </section>

      {/* ===== FINAL CTA ===== */}
      <section className="final-cta">
        <div className="container">
          <Reveal>
            <div className="kicker">Cupos limitados </div>
            <h2 className="display">
              El movimiento<br />empieza con <em>una decisión.</em>
            </h2>
            <p>
              Si llegaste hasta acá, ya hay algo que sabe que algo tiene que moverse. Reservá tu lugar hoy. La seña confirma el cupo y te enviamos todos los datos por WhatsApp.
            </p>
            <div className="cta-row">
              <a className="btn btn-violet" href="#inversion">
                Reservar mi lugar <Icon name="arrow" size={16} />
              </a>
              <a className="btn" style={{ background: "transparent", color: "var(--lavender)", border: "1px solid rgba(240,232,247,.3)" }} href={WHATSAPP} target="_blank" rel="noopener noreferrer">
                <Icon name="whatsapp" size={18} /> Escribir por WhatsApp
              </a>
            </div>
          </Reveal>
        </div>
      </section>

      <footer>
        <div className="container">
          <div>© 2026 · Taller · De la intención a la acción</div>
          
        </div>
      </footer>

      <a className="fab" href={WHATSAPP} target="_blank" rel="noopener noreferrer" aria-label="Reservar por WhatsApp">
        <div className="fab-icon"><Icon name="whatsapp" size={18} /></div>
        <span className="txt">Reservar lugar</span>
      </a>

      <TweaksPanel open={tweaksOpen} onClose={() => setTweaksOpen(false)} accent={accent} setAccent={setAccent} />
    </>);
};

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