/* eslint-disable react/prop-types */ /** * Method · Sección 5 del Home · CREAR CON PRECISIÓN. * Brief 1 §3.1 Sección 5. * * Espejo del patrón de Focus (CREER): * - Sección dark navy con la imagen aérea de San Pedro Garza García * como background full-bleed con parallax sutil (34px max). * - Overlay navy 72% para que el texto sobre la imagen sea legible * en cualquier scroll position. * - Eyebrow EL MÉTODO + h2 CREAR CON PRECISIÓN + descripción + callout DIGO® * + 3 cards de dimensiones del método + CTA al algoritmo DIGO®. * - Cards en cream alpha 97% (como Focus) para legibilidad sobre el dark. * - Entrada escalonada de las cards al hacer scroll a la sección. * * Por qué SPGG: es el polígono donde Prosperia origina su praxis y donde * Sierra Madre + Cerro de la Silla definen la geografía que la firma lee. */ const { useState: uS_M, useEffect: uE_M, useRef: uR_M } = React; const METHOD_CARDS = [ { title: 'Antropología de la Demanda', body: 'No analizamos inventarios, analizamos personas. Entendemos sus necesidades reales, estilos de vida y deseos no resueltos.', icon: 'people', }, { title: 'Identificación de Oportunidades Ocultas', body: 'Contrastamos la demanda real contra la oferta existente para nombrar lo que falta en la zona — lo invisible al ojo, evidente para el algoritmo.', icon: 'compass', }, { title: 'Definición de Producto Ideal', body: 'Diseñamos el concepto óptimo (uso, precio, dimensión, mezcla y proporción ideal) que garantiza la máxima rentabilidad con el menor riesgo, porque nace de una necesidad real, no de una tendencia de moda.', icon: 'target', }, ]; function Method() { const ref = uR_M(null); const [y, setY] = uS_M(0); const [run, setRun] = uS_M(false); // Parallax sutil (mismo patrón que Focus) uE_M(() => { const onScroll = () => { if (!ref.current) return; const rect = ref.current.getBoundingClientRect(); const vh = window.innerHeight; const p = Math.max(0, Math.min(1, 1 - rect.top / vh)); setY(Math.min(34, p * 34)); }; window.addEventListener('scroll', onScroll, { passive: true }); onScroll(); return () => window.removeEventListener('scroll', onScroll); }, []); // Reveal escalonado para las cards uE_M(() => { if (!ref.current) return; const obs = new IntersectionObserver(([e]) => { if (e.isIntersecting) { setRun(true); obs.disconnect(); } }, { threshold: 0.15 }); obs.observe(ref.current); return () => obs.disconnect(); }, []); return (
); } const methodStyles = { section: { position: 'relative', paddingBlock: 'var(--space-3xl)', overflow: 'hidden', color: '#fff', background: '#0F1B23', }, bg: { position: 'absolute', inset: '-10% 0 -10% 0', transition: 'transform 200ms linear', }, overlay: { position: 'absolute', inset: 0, background: 'rgba(33, 52, 64, 0.72)', }, inner: { position: 'relative', zIndex: 2, }, eyebrow: { color: 'var(--color-copper-fallback)', display: 'block', }, title: { margin: '16px 0 0', fontWeight: 800, fontSize: 'clamp(32px, 8vw, 72px)', lineHeight: 1.0, color: '#fff', letterSpacing: '0.04em', }, desc: { margin: '32px 0 0', maxWidth: 820, color: '#fff', fontSize: 'clamp(20px, 2vw, 26px)', lineHeight: 1.5, fontWeight: 400, textWrap: 'pretty', }, callout: { margin: '32px 0 0', padding: '4px 0 4px 20px', maxWidth: 820, borderLeft: '3px solid var(--color-copper-fallback)', fontSize: 'clamp(18px, 1.7vw, 22px)', fontWeight: 700, lineHeight: 1.45, color: '#fff', fontStyle: 'normal', }, transition: { margin: '48px 0 24px', color: 'rgba(255,255,255,0.85)', fontStyle: 'italic', fontSize: 18, fontWeight: 400, }, grid: { display: 'grid', gridTemplateColumns: '1fr', gap: 24, marginTop: 8, }, card: { background: 'rgba(250, 249, 244, 0.97)', color: 'var(--color-navy-deep)', padding: 32, borderRadius: 4, display: 'flex', flexDirection: 'column', gap: 16, position: 'relative', border: '1px solid transparent', }, cardIcon: { color: 'var(--color-copper-fallback)', marginBottom: 8, }, cardCorner: { position: 'absolute', top: 24, right: 24, color: 'var(--color-copper-fallback)', opacity: 0, transform: 'translate(-6px, 6px)', transition: 'opacity 360ms ease, transform 360ms cubic-bezier(0.16,1,0.3,1)', }, cardTitle: { margin: 0, fontSize: 22, fontWeight: 700, lineHeight: 1.25, color: 'var(--color-navy-deep)', textWrap: 'balance', }, cardBody: { margin: 0, fontSize: 16, lineHeight: 1.55, color: 'var(--color-navy-deep)', }, ctaWrap: { marginTop: 64, display: 'flex', justifyContent: 'flex-start', }, }; const methodMQ = document.createElement('style'); methodMQ.textContent = ` @media (min-width: 900px) { section[data-screen-label="05 Method CREAR"] [data-method-grid] { grid-template-columns: repeat(3, 1fr) !important; } } section[data-screen-label="05 Method CREAR"] article:hover { box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18) !important; border-color: rgba(168, 107, 45, 0.30) !important; } section[data-screen-label="05 Method CREAR"] article:hover > div[aria-hidden="true"] { opacity: 1 !important; transform: translate(0, 0) !important; } `; document.head.appendChild(methodMQ); window.Method = Method;