{"id":35,"date":"2018-12-19T14:40:47","date_gmt":"2018-12-19T14:40:47","guid":{"rendered":"https:\/\/www.uaa.mx\/feria\/?page_id=35"},"modified":"2025-09-15T08:37:38","modified_gmt":"2025-09-15T14:37:38","slug":"alcance-del-sistema-de-gestion-ambiental","status":"publish","type":"page","link":"https:\/\/www.uaa.mx\/feria\/","title":{"rendered":""},"content":{"rendered":"\n<style>\n    :root {\n        --color-principal: #c91a69;\n        \/* Azul oscuro formal *\/\n        --color-resalte: #1fa099;\n        \/* Azul m\u00e1s intenso para los n\u00fameros *\/\n        --color-texto-oscuro: #37417e;\n        \/* Gris oscuro para el texto *\/\n    }\n\n    .estadisticas-container {\n        font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n        max-width: 900px;\n        width: 100%;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        margin: 0 auto;\n        padding: 2rem;\n        text-align: center;\n        color: var(--color-texto-oscuro);\n    }\n\n    .estadisticas-container .agradecimiento {\n        font-size: clamp(2.5rem, 8vw, 3.5rem) !important;\n        font-weight: 600;\n        color: var(--color-principal);\n    }\n\n    .estadisticas-container .stats-row {\n        display: flex;\n        flex-wrap: wrap;\n        justify-content: center;\n        gap: 3rem;\n    }\n\n    .estadisticas-container .stat-group {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        text-align: center;\n        min-width: 200px;\n        \/* Ancho m\u00ednimo para evitar movimiento *\/\n    }\n\n    .estadisticas-container .stat-number {\n        font-size: clamp(6rem, 18vw, 15rem) !important;\n        font-weight: 700;\n        color: var(--color-resalte);\n        min-width: 1.5em;\n        \/* Ancho fijo basado en el tama\u00f1o de fuente *\/\n        font-feature-settings: 'tnum';\n        \/* N\u00fameros tabulares para ancho consistente *\/\n        font-variant-numeric: tabular-nums;\n        \/* Fallback para n\u00fameros tabulares *\/\n        display: inline-block;\n        \/* Para que respete el min-width *\/\n    }\n\n    .estadisticas-container .stat-text {\n        font-size: clamp(3rem, 5vw, 8rem) !important;\n        font-weight: 500;\n    }\n\n    .estadisticas-container .gallery-link {\n        font-size: 1.9rem !important;\n        font-weight: 600;\n        color: var(--color-principal);\n        text-decoration: underline;\n        transition: color 0.3s ease;\n    }\n\n    .estadisticas-container .gallery-link:hover {\n        color: var(--color-resalte);\n    }\n\n    \/* Media Queries para m\u00f3viles y tablets *\/\n    @media (max-width: 768px) {\n        .estadisticas-container .stats-row {\n            flex-direction: column;\n            gap: 2rem;\n        }\n\n        .estadisticas-container .stat-group {\n            min-width: 150px;\n            \/* Ancho reducido para m\u00f3viles *\/\n        }\n\n        .estadisticas-container .stat-number {\n            min-width: 1.2em;\n            \/* Ancho ligeramente menor para m\u00f3viles *\/\n        }\n    }\n<\/style>\n\n<div class=\"estadisticas-container\" id=\"estadisticas-seccion\">\n    <div class=\"agradecimiento\">\u00a1Muchas gracias por hacer esto posible!<\/div>\n\n    <div class=\"stats-row\">\n        <div class=\"stat-group\">\n            <div class=\"stat-number\" data-count=\"43000\">+0<\/div>\n            <div class=\"stat-text\">Visitantes<\/div>\n        <\/div>\n        <!-- <div class=\"stat-group\">\n            <div class=\"stat-number\" data-count=\"200\">+000<\/div>\n            <div class=\"stat-text\">Stands<\/div>\n        <\/div>\n        <div class=\"stat-group\">\n            <div class=\"stat-number\" data-count=\"500\">+000<\/div>\n            <div class=\"stat-text\">Actividades<\/div>\n        <\/div> -->\n    <\/div>\n<\/div>\n\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        \/\/ Variable para contar contadores terminados\n        let finishedCounters = 0;\n        const totalCounters = 1;\n\n        \/\/ Funci\u00f3n para iniciar los contadores\n        function startCounters() {\n            const counters = document.querySelectorAll('.estadisticas-container .stat-number');\n            const duration = 5000; \/\/ Duraci\u00f3n de la animaci\u00f3n en milisegundos\n\n            counters.forEach((counter) => {\n                const target = parseInt(counter.dataset.count, 10);\n                animateConsecutiveCounter(counter, target, duration);\n            });\n        }\n\n        \/\/ Verificar si todos los contadores han terminado\n        function checkAllCountersFinished() {\n            finishedCounters++;\n            if (finishedCounters >= totalCounters) {\n                \/\/ Todos terminaron, lanzar serpentinas\n                launchConfetti();\n            }\n        }\n\n        \/\/ Funci\u00f3n para crear serpentinas\n        function launchConfetti() {\n            const colors = ['#c91a69', '#ecb14b', '#93bc3a', '#37417e'];\n\n            for (let i = 0; i < 150; i++) {\n                setTimeout(() => {\n                    createConfettiPiece(colors);\n                }, i * 25);\n            }\n\n            \/\/ Cuando termine el confeti, animar el bot\u00f3n galer\u00eda\n            setTimeout(() => {\n                animateGalleryButton();\n            }, 150 * 25); \/\/ Esperar que termine todo el confeti + 2 segundos\n        }\n\n        function createConfettiPiece(colors) {\n            const confetti = document.createElement('div');\n            confetti.style.position = 'fixed';\n            confetti.style.width = '8px';\n            confetti.style.height = '8px';\n            confetti.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];\n            confetti.style.left = Math.random() * window.innerWidth + 'px';\n            confetti.style.top = '-15px';\n            confetti.style.zIndex = '9999';\n            confetti.style.borderRadius = '50%';\n            confetti.style.pointerEvents = 'none';\n\n            document.body.appendChild(confetti);\n\n            \/\/ Animaci\u00f3n de ca\u00edda - usando setTimeout para mejor compatibilidad m\u00f3vil\n            const fallDuration = 2000 + Math.random() * 1000;\n            const rotation = Math.random() * 360;\n            const sway = (Math.random() - 0.5) * 100; \/\/ Reducido para m\u00f3viles\n\n            \/\/ Verificar si el navegador soporta animate()\n            if (confetti.animate && typeof confetti.animate === 'function') {\n                confetti.animate([\n                    {\n                        transform: `translateY(0px) rotate(0deg) translateX(0px)`,\n                        opacity: 1\n                    },\n                    {\n                        transform: `translateY(${window.innerHeight + 50}px) rotate(${rotation}deg) translateX(${sway}px)`,\n                        opacity: 0\n                    }\n                ], {\n                    duration: fallDuration,\n                    easing: 'ease-out'\n                }).onfinish = () => {\n                    if (confetti.parentNode) confetti.remove();\n                };\n            } else {\n                \/\/ Fallback para navegadores que no soportan animate()\n                confetti.style.transition = `all ${fallDuration}ms ease-out`;\n                confetti.style.transform = `translateY(${window.innerHeight + 50}px) rotate(${rotation}deg) translateX(${sway}px)`;\n                confetti.style.opacity = '0';\n\n                setTimeout(() => {\n                    if (confetti.parentNode) confetti.remove();\n                }, fallDuration);\n            }\n        }\n\n        \/\/ Animaci\u00f3n consecutiva tradicional\n        function animateConsecutiveCounter(counter, target, duration) {\n            let startTime = null;\n\n            function easeInOut(t) {\n                return t < 0.5\n                    ? 2 * t * t\n                    : 1 - Math.pow(-2 * t + 2, 2) \/ 2;\n            }\n\n            function updateCount(currentTime) {\n                if (startTime === null) startTime = currentTime;\n\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeInOut(progress);\n                const count = Math.min(Math.floor(easedProgress * target), target); \/\/ Nunca exceder el target\n\n                counter.textContent = `+${count.toLocaleString('es-MX')}`;\n\n                if (progress < 1) {\n                    requestAnimationFrame(updateCount);\n                } else {\n                    counter.textContent = `+${target.toLocaleString('es-MX')}`;\n\n                    \/\/ Verificar si todos los contadores han terminado\n                    checkAllCountersFinished();\n                }\n            }\n\n            requestAnimationFrame(updateCount);\n        }\n\n        \/\/ Funci\u00f3n para hacer scroll autom\u00e1tico hacia las estad\u00edsticas\n        function scrollToStats() {\n            const statsSection = document.getElementById('estadisticas-seccion');\n            if (statsSection) {\n                \/\/ Esperar un poco para que la p\u00e1gina termine de cargar\n                setTimeout(() => {\n                    statsSection.scrollIntoView({\n                        behavior: 'smooth',\n                        block: 'center',\n                        inline: 'nearest'\n                    });\n\n                    \/\/ Iniciar contadores despu\u00e9s de completar el scroll (2 segundos para asegurar que termine)\n                    setTimeout(() => {\n                        startCounters();\n                    }, 1000);\n\n                }, 500); \/\/ Espera 500ms antes de hacer scroll\n            }\n        }\n\n        \/\/ Ejecutar el scroll autom\u00e1tico\n        scrollToStats();\n    });\n<\/script>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group flex-buttons\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/ProgramaGral_30FeriaUniversitaria_Vertical.pdf\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/btn_ProgGral.png\" alt=\"\"\/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/programa_cultural_30FeriaUniversitaria.pdf\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/btn_ProgCultural.png\" alt=\"\"\/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/mapa_30FU_cuadrado.pdf\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/btn_mapa.png\" alt=\"\"\/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\" id=\"boton_galeria\"><a href=\"https:\/\/www.uaa.mx\/feria\/index.php\/galeria-de-fotos-2025\/\"><img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/feria\/wp-content\/uploads\/2025\/08\/btn_galeria.png\" alt=\"\"\/><\/a><\/figure>\n<\/div><\/div><\/div>\n\n\n\n<div style=\"height:33px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">REDES SOCIALES UAA<\/h2>\n\n\n\n<center>\n<a href=\"https:\/\/www.facebook.com\/uaa.mx\/?ref=br_rs\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/Facebook.png\" alt=\"Facebook UAA\"> <\/a> \n   <a href=\"https:\/\/instagram.com\/uaa_mx?igshid=MzRlODBiNWFlZA==\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/Instagram.png\" alt=\"Instagram UAA\"> <\/a> \n   <a href=\"https:\/\/www.youtube.com\/@UAAmx1\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/YouTube.png\" alt=\"YouTube UAA\"> <\/a> \n   <a href=\"https:\/\/twitter.com\/uaa_mx\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/X.png\" alt=\"X UAA\"> <\/a> \n   <a href=\"https:\/\/www.linkedin.com\/school\/uaamx\/\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/LinkedIn.png\" alt=\"Linkedin UAA\"> <\/a> \n   <a href=\"https:\/\/g.page\/r\/CdstxDdmJKCJEAE\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/Google-Maps.png\" alt=\"Google Maps UAA\"> <\/a> \n<!--   <a href=\"https:\/\/www.tiktok.com\/@uaa_mx?_t=8evCnXOezJO&amp;_r=1\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/TikTok.png\" alt=\"TikTok UAA\"> <\/a> -->\n   <a href=\"https:\/\/www.threads.net\/@uaa_mx?igshid=NTc4MTIwNjQ2YQ==\"> <img decoding=\"async\" src=\"https:\/\/www.uaa.mx\/portal\/wp-content\/uploads\/2023\/08\/Threads.png\" alt=\"Threads UAA\"> <\/a>\n<br>\n<br>\n<\/center>\n","protected":false},"excerpt":{"rendered":"<p>\u00a1Muchas gracias por hacer esto posible! +0 Visitantes REDES SOCIALES UAA<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-35","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/pages\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":72,"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/pages\/35\/revisions"}],"predecessor-version":[{"id":5975,"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/pages\/35\/revisions\/5975"}],"wp:attachment":[{"href":"https:\/\/www.uaa.mx\/feria\/index.php\/wp-json\/wp\/v2\/media?parent=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}