{active.title} {active.titleItalic}
{active.description}
2 publicaciones mensuales · Tres formatos de presencia adaptados a tu empresa
{key}
{val}
// Página de Servicios — panel dinámico const ServiciosPage = () => { const [activeId, setActiveId] = React.useState(() => { const hash = window.location.hash.replace('#', ''); return hash && SERVICES.find(s => s.id === hash) ? hash : SERVICES[0].id; }); const active = SERVICES.find(s => s.id === activeId) || SERVICES[0]; const select = (id) => { setActiveId(id); window.history.replaceState(null, '', `#${id}`); // Centrar el tab activo dentro del slider const tabs = document.querySelector('.svc-mobile-tabs'); if (tabs) { const activeTab = tabs.querySelector(`[data-id="${id}"]`); if (activeTab) { const tabLeft = activeTab.offsetLeft; const tabWidth = activeTab.offsetWidth; const containerWidth = tabs.offsetWidth; tabs.scrollTo({ left: tabLeft - (containerWidth - tabWidth) / 2, behavior: 'smooth' }); } } // Scroll de página hasta el selector const tabsVisible = tabs && getComputedStyle(tabs).display !== 'none'; const target = tabsVisible ? tabs : document.getElementById('svc-panel'); if (target) { const nav = document.querySelector('nav.top'); const navBottom = nav ? nav.getBoundingClientRect().bottom : 100; const top = target.getBoundingClientRect().top + window.scrollY - navBottom - 16; window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' }); } }; return (
Cinco pilares estratégicos para posicionar tu marca, ampliar tu alcance y convertir tu inversión en resultados.
{active.description}
2 publicaciones mensuales · Tres formatos de presencia adaptados a tu empresa
{val}