/* global React, LINKS, Icon */ const { useState, useEffect, useRef } = React; /* ============== Hero (sales-first, social proof) ============== */ function Hero({ t, lang, openModal }) { const s = t.social; const tItems = t.testimonials.items; // short running snippets const snippets = tItems.map((x) => ({ q: x.q.length > 88 ? x.q.slice(0, 85).trim() + "…" : x.q, a: x.a, loc: x.loc })); const runItems = [...snippets, ...snippets]; const avatars = tItems.slice(0, 4).map((x) => x.a.slice(0, 1)); return (
{Icon.leaf()}{(() => { const ey = t.hero.eyebrow; const i = ey.indexOf("Psicoterapia"); return i > 0 ? {ey.slice(0, i)}
{ey.slice(i)}
: ey; })()}

{t.hero.title1} {t.hero.title2}

{t.hero.subA}{" "} {t.hero.countries.map((c, i) => {c}{i < t.hero.countries.length - 1 ? " " : " "} )} {t.hero.subB}

{t.hero.cta} {Icon.arrow()}
Lic. Guillermina Gómez
{/* rating block — costado */}
{s.ratingValue}
{[0, 1, 2, 3, 4].map((i) => {Icon.star(15)})} {s.ratingLabel}
{avatars.map((a, i) => {a})}
{s.ratingCount}
{/* running testimonials — medio */}
{s.running}
{runItems.map((r, i) =>

"{r.q}"

— {r.a} · {r.loc}
)}
{/* stats band — abajo */}
{s.stats.map((st, i) =>
{st.n}
{st.l}
)}
); } /* ============== Currency toggle ============== */ function CurrencyToggle({ t, cur, setCur, light, hideLabel }) { return (
{!hideLabel && {t.services.curLabel}}
); } function Services({ t, cur, setCur }) { const items = t.services.items.map((it, idx) => ({ ...it, _idx: idx })); const iconFor = (it) => { const n = (it.tag + " " + it.name).toLowerCase(); if (n.includes("solicitado") || n.includes("requested") || n.includes("pareja") || n.includes("couple")) return Icon.couples(26); if (n.includes("individual")) return Icon.person(26); return Icon.cap(26); }; const isFeatured = (it) => { const n = it.tag.toLowerCase(); return n.includes("solicitado") || n.includes("requested"); }; const [active, setActive] = useState(() => { const f = items.findIndex(isFeatured); return f >= 0 ? f : 0; }); const sv = items[active] || items[0]; return (

{t.services.title}

{t.services.sub}

{items.map((it, i) => )}
{isFeatured(sv) && {sv.tag}}

{sv.desc}

{sv.bulletsTitle && {sv.bulletsTitle}}
    {sv.bullets.map((b, j) =>
  • {Icon.check(15)}{b}
  • )}
{sv.metaTitle && {sv.metaTitle}}
{sv.meta.map((md, j) => {md})}

{t.services.fxNote}

); } /* ============== Manifesto ============== */ function Manifesto({ t, lang }) { const bgUrl = "https://images.unsplash.com/photo-1621933339571-a38230d0d974?w=1800&q=80&auto=format&fit=crop"; return (
{lang === "es" ? "Mi enfoque" : "My approach"}

{lang === "es" ? <>Una terapia que acompaña y brinda herramientas para el cambio. : <>Therapy that walks with you and offers tools for change.}

Lic. Guillermina Gómez · MP 47.834
); } /* ============== Media strip (apariciones) ============== */ function MediaStrip({ t, lang }) { const [video, setVideo] = useState(null); const items = t.media.items; const loop = [...items, ...items]; useEffect(() => { if (!video) return; const onKey = (e) => {if (e.key === "Escape") setVideo(null);}; document.addEventListener("keydown", onKey); document.body.style.overflow = "hidden"; return () => {document.removeEventListener("keydown", onKey);document.body.style.overflow = "";}; }, [video]); return (

{t.media.title}

{t.media.sub}

{loop.map((v, i) => )}
{video &&
setVideo(null)}>
e.stopPropagation()}>
{video.source}{video.city ? " · " + video.city : ""}

{video.title}

}
); } /* ============== Process (compact, horizontal) ============== */ function Process({ t }) { const [active, setActive] = useState(0); const n = t.process.steps.length; useEffect(() => { const id = setInterval(() => setActive((a) => (a + 1) % n), 2400); return () => clearInterval(id); }, [n]); return (

{t.process.title}

{t.process.steps.map((s, i) =>
{s.n}

{s.t}

{s.d}

)}
); } /* ============== FAQ + Agenda (combined) ============== */ function FaqBook({ t, lang, cur, setCur }) { const [openIdx, setOpenIdx] = useState(0); const waMsg = lang === "es" ? "Hola Guillermina, me gustaría agendar mi primera cita." : "Hi Guillermina, I'd like to book my first session."; const waHref = `https://wa.me/${LINKS.whatsapp}?text=${encodeURIComponent(waMsg)}`; const mailHref = `mailto:${LINKS.email}?subject=${encodeURIComponent(lang === "es" ? "Consulta — primera cita" : "Inquiry — first session")}`; return (
{/* FAQ side */}

{t.faq.title}

{t.faq.items.map((q, i) =>

{q.a}

{q.type === "pricing" &&
{(cur === "ars" && q.pricing.firstArs ? q.pricing.firstArs : q.pricing.first).map((p, k) =>
{p.label}{p.ars != null ? formatArs(p.ars) : formatPrice(p.usd, cur)}
)} {(cur === "ars" && q.pricing.packsArs ? q.pricing.packsArs : q.pricing.packs).map((p, k) =>
{p.label}{p.ars != null ? formatArs(p.ars) : formatPrice(p.usd, cur)}
)}
{t.services.fxNote}
}
)}
{/* Agenda side */}

{t.contact.title}

{t.contact.sub}

{Icon.wa(26)}
{lang === "es" ? "Más rápido" : "Fastest"}

{lang === "es" ? "Escribime por WhatsApp" : "Message me on WhatsApp"}

{t.contact.side.phone}
{Icon.arrow("")}
{Icon.mail(22)}
Email

{lang === "es" ? "Escribime un mail" : "Send me an email"}

{LINKS.email}
{Icon.arrow("")}
{lang === "es" ? "Horarios" : "Hours"}{t.contact.side.hours}
{lang === "es" ? "Husos" : "Zones"}{t.contact.side.zones}
{lang === "es" ? "Idiomas" : "Languages"}{lang === "es" ? "Español" : "Spanish"}
{lang === "es" ? "Modalidad" : "Format"}100% online
); } Object.assign(window, { Hero, Services, Manifesto, MediaStrip, Process, FaqBook });