/* ─── TESTIMONIALS + SPONSORS + FAQ ─── */
const { C: sC, FONTS: sF, TESTIMONIALS: sTEST, SPONSORS: sSPON, FAQS: sFAQS } = window.LT;
const { useViewport: sUseViewport } = window.LTHooks;
const { Section: SSection, SectionTag: STag, SectionTitle: STitle, Lede: SLede } = window.LTUI;
function Testimonials() {
return (
Ellos ya corrieron Love Trail
{sTEST.map((t, i) => (
"
"{t.text}"
{t.dist}
))}
);
}
/* ── SPONSOR LOGO PLACEHOLDER ── */
function SponsorLogo({ name, tag, size, accent }) {
// Generates a clean monogram + name placeholder (no fake brand recreation)
const initials = name.split(" ").slice(0, 2).map(w => w[0]).join("");
const sizes = {
gold: { h: 120, mono: 36, name: 14, tag: 11 },
silver: { h: 96, mono: 28, name: 12, tag: 10 },
bronze: { h: 76, mono: 20, name: 11, tag: 0 },
media: { h: 64, mono: 18, name: 11, tag: 0 },
}[size];
return (
{ e.currentTarget.style.borderColor = accent; e.currentTarget.style.background = "linear-gradient(135deg, rgba(255,255,255,0.07), rgba(255,255,255,0.02))"; }}
onMouseLeave={e => { e.currentTarget.style.borderColor = sC.border; e.currentTarget.style.background = "linear-gradient(135deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01))"; }}
>
{initials}
{name}
{tag && sizes.tag > 0 && (
{tag}
)}
);
}
function Sponsors() {
const { isMobile } = sUseViewport();
return (
);
}
function SponsorTier({ label, accent, children }) {
return (
);
}
/* ── FAQ ── */
function FAQ() {
const [open, setOpen] = React.useState(0);
const [filter, setFilter] = React.useState("Todos");
const cats = ["Todos", ...Array.from(new Set(sFAQS.map(f => f.cat)))];
const filtered = filter === "Todos" ? sFAQS : sFAQS.filter(f => f.cat === filter);
return (
Q & A
Las preguntas que más nos hacen, respondidas. ¿No encontrás lo que buscás?
Escribinos a hola@lovetrail.run .
{/* Category filters */}
{cats.map(c => (
setFilter(c)}
style={{
background: filter === c ? sC.sunset : "transparent",
color: filter === c ? sC.night : sC.textSoft,
border: `1.5px solid ${filter === c ? sC.sunset : sC.borderLight}`,
padding: "8px 18px", borderRadius: 99,
fontSize: 13, fontWeight: 700, cursor: "pointer",
fontFamily: sF.body, letterSpacing: "0.02em",
transition: "all 0.2s",
}}>{c}
))}
{filtered.map((f, i) => {
const isOpen = open === i;
return (
setOpen(isOpen ? -1 : i)}
style={{
width: "100%", textAlign: "left",
padding: "22px 24px",
background: "transparent", border: "none", cursor: "pointer",
display: "flex", alignItems: "center", justifyContent: "space-between",
gap: 16, color: sC.text,
fontFamily: sF.body,
}}>
{f.cat.toUpperCase()}
{f.q}
+
);
})}
);
}
window.LTTestimonials = Testimonials;
window.LTSponsors = Sponsors;
window.LTFAQ = FAQ;