El Footer (Footer.astro) es la última franja de cualquier página: la zona que recoge al visitante que dudó arriba y le ofrece la red de seguridad —contacto, mapa del sitio, legales—. Está compuesto por cinco zonas en orden estricto: banda CTA pre-footer (último intento de conversión, eyebrow + título + dos botones), cuerpo con la columna de marca + 4 columnas de navegación data-driven (Productos, Servicios+Sectores, Cobertura, Empresa), banda opcional de cumplimiento normativo (badges/certificaciones), barra inferior con copyright dinámico + enlaces legales + botón «volver arriba», y la barra de acento decorativa en la parte superior absoluta.
En este proyecto vive en un único componente que SE MONTA UNA SOLA VEZ en PageLayout. Todas las páginas del sitio heredan su footer sin saberlo —incluyendo esta misma guía, que cierra abajo con el componente REAL, no con una réplica anotada—. La data llega íntegra desde site.ts: marca de SITE, NAP de CONTACT, taxonomía de PRODUCT_CATEGORIES/SERVICES/SECTORS/COVERAGE_STATES, sucursales de BRANCHES (vacío en esta plantilla), redes de SOCIAL (auto-oculta si []), legales de LEGAL. La única lógica de presentación es: usar telUrl() para el teléfono, waUrl(WA_MESSAGES.cotizacion) para WhatsApp, y new Date().getFullYear() para el copyright. Para el SEO local, el JSON-LD Organization se centraliza en lib/seo.ts → organizationSchema() (alias canónico de orgSchema) y se emite UNA sola vez desde buildSchema() en BaseLayout —el componente NO toca el grafo—.