/* global React, LR_IMAGES, gsap, ScrollTrigger */ function Services() { const t = window.useT(); const sectionRef = React.useRef(null); React.useLayoutEffect(() => { if (!window.gsap || !window.ScrollTrigger) return; gsap.registerPlugin(ScrollTrigger); const ctx = gsap.context(() => { const common = { invalidateOnRefresh: true }; gsap.set('.services-header > *', { y: 28, autoAlpha: 0 }); gsap.set('.services-lede', { y: 20, autoAlpha: 0 }); gsap.set('.services-disc-cell', { y: 24, autoAlpha: 0 }); gsap.set('.services-disc-img', { scale: 1.08 }); gsap.to('.services-header > *', { y: 0, autoAlpha: 1, duration: 0.7, ease: 'expo.out', stagger: 0.08, scrollTrigger: { trigger: '.services-header', start: 'top 95%', once: true, ...common }, }); gsap.to('.services-lede', { y: 0, autoAlpha: 1, duration: 0.6, ease: 'expo.out', scrollTrigger: { trigger: '.services-lede', start: 'top 95%', once: true, ...common }, }); gsap.to('.services-disc-cell', { y: 0, autoAlpha: 1, duration: 0.7, ease: 'expo.out', stagger: 0.08, scrollTrigger: { trigger: '.services-disc-grid', start: 'top 92%', once: true, ...common }, }); gsap.to('.services-disc-img', { scale: 1.0, duration: 1.25, ease: 'power3.out', stagger: 0.08, scrollTrigger: { trigger: '.services-disc-grid', start: 'top 92%', once: true, ...common }, }); // Safety: refresh after fonts/images settle ScrollTrigger.refresh(); setTimeout(() => ScrollTrigger.refresh(), 600); }, sectionRef); return () => ctx.revert(); }, []); const disciplines = [ { n: '01', title: t('capabilities.block0.title'), bullets: [t('capabilities.block0.bullets.0'), t('capabilities.block0.bullets.1'), t('capabilities.block0.bullets.2'), t('capabilities.block0.bullets.3')].filter(Boolean), src: 'images/services/02-visualizacion.jpg' }, { n: '02', title: t('capabilities.block1.title'), bullets: [t('capabilities.block1.bullets.0'), t('capabilities.block1.bullets.1'), t('capabilities.block1.bullets.2'), t('capabilities.block1.bullets.3')].filter(Boolean), src: 'images/services/01-captacion.jpg' }, ]; return (
{/* Header */}
{t('services.header.label')}

{t('services.header.title')} {' '}{t('services.header.subtitle')}

{/* Disciplines — texto arriba e imagen debajo */}
{disciplines.map((d, i) => { return (
{d.n}

{d.title}

    {d.bullets.map((b, bi) => (
  • {'0' + (bi + 1)} {b}
  • ))}
{/* Imagen al pie de la cell — alineada abajo en todas las columnas */}
); })}
); } window.Services = Services;