// Componentes compartidos: Header, Footer, Logo Hex, Iconos // Cargado por todas las páginas del sitio ASCICOM. const HEX_PATH = "M50 5 L88 27.5 L88 72.5 L50 95 L12 72.5 L12 27.5 Z"; function HexMark({ size = 36, color = "var(--accent)", inner = "stroke", strokeWidth = 6, children }) { return ( {children} ); } function BrandLogo({ variant = "dark" }) { // variant: 'dark' (sobre fondo oscuro) o 'light' (sobre fondo claro) return ( ASCICOM TECH CONSULTING ); } function ArrowRight({ size = 14 }) { return ( ); } function SiteHeader({ active = "inicio" }) { const items = [ { id: "inicio", label: "Inicio", href: "index.html" }, { id: "servicios", label: "Servicios", href: "servicios.html" }, { id: "sectores", label: "Sectores", href: "sectores.html" }, { id: "nosotros", label: "Nosotros", href: "nosotros.html" }, { id: "casos", label: "Casos de éxito", href: "casos.html" }, { id: "blog", label: "Blog", href: "blog.html" }, ]; return ( <> {items.map((it) => ( {it.label} ))} Contactar > ); } function WhatsAppFloatingButton() { return ( WhatsApp ); } function SiteFooter() { return ( ); } // ── Reveal on scroll observer ──────────────────────────────────────── function useReveal() { React.useEffect(() => { const els = document.querySelectorAll('.reveal, .reveal-stagger'); if (!('IntersectionObserver' in window) || els.length === 0) { els.forEach((e) => e.classList.add('is-in')); return; } const io = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add('is-in'); io.unobserve(entry.target); } }); }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' }); els.forEach((el) => io.observe(el)); return () => io.disconnect(); }); } // ── Apply tweak palette to root ────────────────────────────────────── const PALETTES = { signature: { accent: "#F26B1A", soft: "#FF8A3D", deep: "#C24E0B", glow: "rgba(242,107,26,.18)", }, cobalto: { accent: "#2B5BFF", soft: "#5C82FF", deep: "#1740CC", glow: "rgba(43,91,255,.20)", }, esmeralda: { accent: "#0F9D6E", soft: "#3FBA8E", deep: "#0A7855", glow: "rgba(15,157,110,.20)", }, magenta: { accent: "#D8347B", soft: "#E55E9A", deep: "#A8205D", glow: "rgba(216,52,123,.20)", }, }; function applyPalette(name) { const p = PALETTES[name] || PALETTES.signature; const r = document.documentElement.style; r.setProperty('--accent', p.accent); r.setProperty('--accent-soft', p.soft); r.setProperty('--accent-deep', p.deep); r.setProperty('--accent-glow', p.glow); } Object.assign(window, { HEX_PATH, HexMark, BrandLogo, ArrowRight, SiteHeader, SiteFooter, useReveal, applyPalette, PALETTES, });