// 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 (
Agencia El Bocha — Catálogo completo

Nuestros Servicios

Cinco pilares estratégicos para posicionar tu marca, ampliar tu alcance y convertir tu inversión en resultados.

{/* Selector responsive — visible en ≤1024px */}
{SERVICES.map(s => ( ))}
{/* ── SIDEBAR ── */} {/* ── PANEL DINÁMICO ── */}
{/* Cabecera */}
{active.num} — {active.tag}

{active.title} {active.titleItalic}

{active.description}

{/* Imagen con tarjetas encima */}
{active.title}
Qué incluye
{active.services.map((srv, j) => (
0{j + 1}
{srv.name}
{srv.desc}
))}
{/* Tabla de planes Liga */} {activeId === 'va-por-ti-liga' && (
Paquetes de Publicidad

2 publicaciones mensuales · Tres formatos de presencia adaptados a tu empresa

{[ { name:'Paquete Inicial', tag:'1/4 de Página', size:'10.5 × 10.5 cm', price:'$450', highlight:false }, { name:'Paquete Destacado', tag:'1/2 Página', size:'10.5 × 21 cm', price:'$550', highlight:true }, { name:'Paquete Premium', tag:'1 Página Completa',size:'21 × 21 cm', price:'$750', highlight:false }, ].map((plan, i) => (
{plan.highlight &&
Más popular
}
{plan.name}
{plan.tag}
{plan.size}
{plan.price} + IVA / mes
Comprar ahora
))}
Activaciones de Marca
Estadio Rodrigo Paz Delgado
$600 + IVA
Accesos a localidades Tribuna Oriental y Occidental (Norte y Sur)
3 horas de exposición — desde 2h antes del partido hasta el medio tiempo
Espacio para stand pequeño de exhibición
Presencia de 1 o 2 impulsadoras identificadas con tu marca
Requiere tener activo uno de los paquetes de publicidad anteriores
)} {/* Desglose detallado */} {active.details && Object.keys(active.details).length > 0 && ( <>
Desglose detallado
{Object.entries(active.details).map(([key, val], k) => (
{String(k + 1).padStart(2, '0')}

{key}

{val}

))}
)} {/* CTA */} {/* Navegación entre servicios */}
{SERVICES.findIndex(s => s.id === activeId) > 0 && ( )} {SERVICES.findIndex(s => s.id === activeId) < SERVICES.length - 1 && ( )}
); }; const AppServicios = () => { useReveal(); return ; }; ReactDOM.createRoot(document.getElementById('root')).render();