{"id":286,"date":"2016-10-31T13:17:59","date_gmt":"2016-10-31T16:17:59","guid":{"rendered":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/?page_id=286"},"modified":"2026-04-28T00:43:00","modified_gmt":"2026-04-28T03:43:00","slug":"inicio","status":"publish","type":"page","link":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/","title":{"rendered":""},"content":{"rendered":"\n<!DOCTYPE html>\n<html>\n\n<head>\n<!-- Google tag (gtag.js) -->\n<script async src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=G-JNZ9DZKWEB\"><\/script>\n<script>\n  window.dataLayer = window.dataLayer || [];\n  function gtag(){dataLayer.push(arguments);}\n  gtag('js', new Date());\n\n  gtag('config', 'G-JNZ9DZKWEB');\n<\/script>\n\n<!-- Script de recuperaci\u00f3n\/fallback ante ca\u00eddas del servidor INFoD -->\n<script>\n    const fallbackTimer = setTimeout(function() {\n        document.documentElement.innerHTML = `\n            <head>\n                <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n                <meta http-equiv=\"refresh\" content=\"3;url=https:\/\/isfd809-infd.netlify.app\/sitio\/\">\n                <title>Redirigiendo<\/title>\n                <style>\n                    body {\n                        margin: 0;\n                        display: flex;\n                        align-items: center;\n                        justify-content: center;\n                        min-height: 100vh;\n                        font-family: system-ui, -apple-system, sans-serif;\n                        background-color: #f4f6f9;\n                        padding: 20px;\n                        box-sizing: border-box;\n                    }\n                    .fallback-card {\n                        max-width: 400px;\n                        width: 100%;\n                        background: white;\n                        padding: 2.5rem 2rem;\n                        border-radius: 12px;\n                        box-shadow: 0 8px 24px rgba(0,0,0,0.08);\n                        border-top: 5px solid #5a2c82;\n                        text-align: center;\n                    }\n                    .fallback-text {\n                        color: #333;\n                        font-size: 1.1rem;\n                        font-weight: 500;\n                        line-height: 1.5;\n                        margin: 0;\n                    }\n                    .spinner {\n                        display: inline-block;\n                        width: 30px;\n                        height: 30px;\n                        border: 3px solid #e2e8f0;\n                        border-top-color: #5a2c82;\n                        border-radius: 50%;\n                        animation: spin 1s linear infinite;\n                        margin-bottom: 1.5rem;\n                    }\n                    @keyframes spin {\n                        to { transform: rotate(360deg); }\n                    }\n                <\/style>\n            <\/head>\n            <body>\n                <div class=\"fallback-card\">\n                    <div class=\"spinner\"><\/div>\n                    <p class=\"fallback-text\">\n                        El sitio principal est\u00e1 experimentando demoras. Redirigiendo al sitio alternativo...\n                    <\/p>\n                <\/div>\n            <\/body>\n        `;\n        \/\/ Redirigir de manera autom\u00e1tica\n        setTimeout(function() {\n            window.location.href = \"https:\/\/isfd809-infd.netlify.app\/sitio\/\";\n        }, 3000); \n    }, 8000); \/\/ 8 segundos de espera para que carguen los recursos, si no carga, salta el fallback\n\n    window.addEventListener('load', function() {\n        clearTimeout(fallbackTimer);\n    });\n<\/script>\n    <!-- A\u00f1adir Bootstrap 5 CSS -->\n    <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.2\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\n    <!-- A\u00f1adir Font Awesome -->\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        \/* Eliminar cualquier bot\u00f3n \"back to top\" que pueda estar siendo a\u00f1adido *\/\n        .back-to-top,\n        .scroll-to-top,\n        .btn-back-to-top,\n        button[aria-label=\"Scroll to top\"],\n        a[href=\"#top\"],\n        .scrollup,\n        .scroll-top,\n        .cd-top {\n            display: none !important;\n            opacity: 0 !important;\n            visibility: hidden !important;\n            pointer-events: none !important;\n        }\n\n        \/* Franja blanca para cubrir opciones superiores *\/\n        .cover-strip {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            min-height: 100vh; \/* Cubre toda la altura del viewport *\/\n            height: auto; \/* Permite crecer si es necesario *\/\n            background-color: white;\n            z-index: 5;\n            \/* Valor bajo para que no tape elementos de la p\u00e1gina *\/\n        }\n\n        .main-wrapper {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            width: 100%;\n            opacity: 0;\n            \/* Inicialmente oculto *\/\n            transition: opacity 0.3s ease;\n            position: relative;\n            z-index: 20;\n            \/* Mayor que la capa blanca *\/\n        }\n\n        .isfd-menu-container {\n            width: 90%;\n            max-width: 1400px;\n            margin: 0 auto;\n            padding: 2vh 0;\n            display: flex;\n            justify-content: center;\n            align-items: flex-start;\n            gap: 0.5rem;\n        }\n\n        .isfd-side-menu {\n            width: 27%;\n            display: flex;\n            flex-direction: column;\n            gap: 0.5rem;\n            padding-bottom: 0;\n            position: relative;\n        }\n\n        .isfd-center-content {\n            width: 46%;\n            position: relative;\n            border: 0.2rem solid black;\n            border-radius: 0.5rem;\n            overflow: hidden;\n        }\n\n        .isfd-menu-button {\n            width: 100%;\n            margin: 0;\n            padding: 0;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            text-decoration: none;\n            border-radius: 0.5rem;\n            border: 0.125rem solid black;\n            overflow: hidden;\n            \/* Altura gestionada por JS en desktop *\/\n        }\n\n        \/* .isfd-menu-button:hover {\n    transform: none;\n} Eliminado para permitir animaci\u00f3n Jelly Wobble *\/\n\n        .left-menu-btn,\n        .left-menu-btn:hover,\n        .left-menu-btn:active,\n        .left-menu-btn:visited,\n        .left-menu-btn:focus {\n            background-color: #5a2c82;\n            \/* Color morado para men\u00fa izquierdo *\/\n            color: white;\n        }\n\n        .right-menu-btn,\n        .right-menu-btn:hover,\n        .right-menu-btn:active,\n        .right-menu-btn:visited,\n        .right-menu-btn:focus {\n            background-color: #6b8e23;\n            \/* Color verde para men\u00fa derecho *\/\n            color: white;\n        }\n\n        .btn-content {\n            display: flex;\n            flex-direction: row;\n            align-items: center;\n            justify-content: flex-start;\n            width: 100%;\n            height: 100%;\n            padding: 0.3rem;\n            position: relative;\n        }\n\n        .btn-text {\n            font-weight: bold;\n            text-align: center;\n            width: 60%;\n            height: 100%;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            padding: 0;\n            line-height: 1;\n            overflow: hidden;\n            margin-left: 15%;\n            gap: 0;\n            \/* Eliminar espacio entre elementos flexibles *\/\n        }\n\n        .btn-text>div {\n            font-weight: bold;\n            text-align: center;\n            width: 100%;\n            height: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            text-align: center;\n            padding: 0;\n            font-size: clamp(0.6rem, 1.8vw, 0.95rem);\n            line-height: 0.2;\n            margin-top: -5px;\n            margin-bottom: -5px;\n            word-wrap: break-word;\n            overflow-wrap: break-word;\n            hyphens: auto;\n        }\n\n        \/* Ajustando botones con una sola l\u00ednea de texto *\/\n        .btn-text>div:only-child {\n            height: 100%;\n            margin: 0;\n            \/* Sin m\u00e1rgenes negativos para textos de una sola l\u00ednea *\/\n        }\n\n        .btn-icon {\n            font-size: 1.5rem;\n            width: 30%;\n            height: 100%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            padding: 0;\n            margin-left: calc(0.3rem + 5%);\n            margin-right: 0.3rem;\n        }\n\n        @media screen and (max-width: 768px) {\n            body {\n                background-color: white;\n                \/* Fondo blanco para todo el body *\/\n            }\n\n            .main-wrapper {\n                display: flex;\n                flex-direction: column;\n                min-height: 100vh;\n                \/* Asegurar que ocupe al menos toda la altura de la ventana *\/\n                position: relative;\n                \/* Para posicionamiento *\/\n                z-index: 10;\n                \/* Mantener por encima del contenido posterior *\/\n                background-color: white;\n                \/* Fondo blanco redundante para seguridad *\/\n            }\n\n            .isfd-menu-container {\n                width: 100%;\n                flex-direction: column;\n                padding: 2vh 0;\n                gap: 0.5rem;\n                flex-grow: 1;\n                \/* Hacer que el contenedor crezca hasta llenar el espacio disponible *\/\n                position: relative;\n                \/* Para posicionamiento *\/\n                z-index: 10;\n                \/* Mantener por encima del contenido posterior *\/\n            }\n\n            \/* Agregar un elemento que extender\u00e1 el fondo blanco *\/\n            .main-wrapper::after {\n                content: \"\";\n                position: fixed;\n                bottom: 0;\n                left: 0;\n                right: 0;\n                height: 100vh;\n                \/* Alto completo *\/\n                background-color: white;\n                z-index: -1;\n                \/* Por detr\u00e1s del contenido principal *\/\n            }\n\n            .isfd-center-content {\n                width: 100%;\n                order: -1;\n            }\n\n            .isfd-side-menu {\n                width: 100%;\n                display: grid;\n                grid-template-columns: repeat(2, 1fr);\n                gap: 0.5rem;\n                height: auto !important;\n                padding-bottom: 0;\n            }\n\n            .isfd-menu-button {\n                width: 100%;\n                max-width: 100%;\n                height: 3rem;\n                min-height: 3rem;\n                max-height: 3rem;\n                margin: 0;\n                padding: 0;\n                display: flex;\n                align-items: center;\n                justify-content: center;\n            }\n\n            .btn-content {\n                padding: 0.15rem;\n            }\n\n            .btn-text {\n                margin-left: 15%;\n            }\n\n            .btn-icon {\n                margin-left: calc(0.25rem + 5%);\n                margin-right: 0.25rem;\n            }\n\n            .btn-text>div {\n                font-size: clamp(0.6rem, 2.5vw, 0.85rem);\n                line-height: 0.6;\n                margin-top: -2px;\n                margin-bottom: -2px;\n                word-wrap: break-word;\n                overflow-wrap: break-word;\n                hyphens: auto;\n            }\n\n            .header-image-container {\n                width: 100%;\n                max-width: 100%;\n            }\n\n            .scroll-reveal-image {\n                position: fixed;\n                top: 0;\n                left: 0;\n                width: 100%;\n                height: 100vh;\n                display: flex;\n                align-items: center;\n                justify-content: center;\n                background-color: white;\n                opacity: 0;\n                transition: opacity 0.4s ease-out;\n                pointer-events: none;\n                z-index: 8;\n                padding: 0 5%;\n            }\n\n            .scroll-reveal-image img {\n                width: 100%;\n                height: 100%;\n                object-fit: contain;\n            }\n\n            .mobile-scroll-header {\n                position: absolute;\n                top: 5%;\n                right: 0;\n                left: 0;\n                padding: 0;\n                margin: auto;\n                width: fit-content;\n                max-width: 90%;\n                text-align: center;\n                display: block;\n                opacity: 0;\n                transform: translateY(-20px);\n                transition: opacity 0.5s ease, transform 0.5s ease;\n                z-index: 10;\n            }\n\n            .mobile-scroll-header.visible {\n                opacity: 1;\n                transform: translateY(0);\n            }\n\n            .mobile-scroll-header img {\n                width: 100%;\n                height: auto;\n                display: block;\n            }\n\n            .mobile-scroll-header::before {\n                content: '';\n                position: absolute;\n                top: 0;\n                left: 0;\n                right: 0;\n                bottom: 0;\n                background: linear-gradient(135deg,\n                    rgba(255,255,255,0) 0%,\n                    rgba(200,220,255,0.3) 40%,\n                    rgba(255,255,255,0.95) 50%,\n                    rgba(200,220,255,0.3) 60%,\n                    rgba(255,255,255,0) 100%);\n                background-size: 300% 300%;\n                background-position: 100% 100%;\n                border-radius: 8px;\n                opacity: 0;\n                transition: opacity 0.4s ease;\n                z-index: 1;\n            }\n\n            .mobile-scroll-header.visible::before {\n                opacity: 1;\n                animation: shimmer-diagonal 1.2s ease-out forwards;\n            }\n\n            @keyframes shimmer-diagonal {\n                0% {\n                    background-position: 150% 150%;\n                }\n                100% {\n                    background-position: -50% -50%;\n                }\n            }\n        }\n\n        \/* A\u00f1adir estilos para desktop *\/\n        @media screen and (min-width: 769px) {\n            .isfd-side-menu {\n                width: 21.6%;\n            }\n\n            .btn-text>div {\n                font-size: clamp(0.7rem, 1.1vw, 1.1rem);\n                line-height: 0.2;\n                word-wrap: break-word;\n                overflow-wrap: break-word;\n                hyphens: auto;\n            }\n\n            .btn-icon {\n                font-size: clamp(2.6rem, 3.094vw, 3.77rem);\n                margin-left: calc(0.3rem + 5%);\n            }\n\n            .scroll-reveal-image {\n                display: none !important;\n            }\n        }\n\n        .slide-text {\n            position: relative;\n            text-align: center;\n            margin-top: 0.625rem;\n            font-family: Arial, sans-serif;\n            color: #000;\n            opacity: 0;\n            animation: textAnimation 6.5s forwards;\n        }\n\n        @keyframes textAnimation {\n            0% {\n                opacity: 0;\n            }\n\n            15% {\n                opacity: 0;\n            }\n\n            20% {\n                opacity: 1;\n            }\n\n            85% {\n                opacity: 1;\n            }\n\n            100% {\n                opacity: 0;\n            }\n        }\n\n        \/* Loader espec\u00edfico para el contenido central *\/\n        .center-loader-container {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            display: flex;\n            flex-direction: column;\n            justify-content: center;\n            align-items: center;\n            background-color: #3E1E68;\n            z-index: 2;\n            overflow: hidden;\n            overflow: hidden;\n            pointer-events: none;\n        }\n\n        .loader {\n            border: 5px solid #f3f3f3;\n            border-top: 5px solid #5a2c82;\n            border-radius: 50%;\n            width: 50px;\n            height: 50px;\n            animation: spin 1s linear infinite;\n            margin-bottom: 15px;\n        }\n\n        .loader-text {\n            font-family: Arial, sans-serif;\n            font-size: 1.5rem;\n            font-weight: 300;\n            color: #ffffff;\n            letter-spacing: 2px;\n        }\n\n        @keyframes spin {\n            0% {\n                transform: rotate(0deg);\n            }\n\n            100% {\n                transform: rotate(360deg);\n            }\n        }\n\n        \/* Clase para mostrar el contenido cuando est\u00e9 listo *\/\n        .content-ready {\n            opacity: 1;\n        }\n\n\n\n        .header-image-container {\n            margin: 0 auto 0 auto;\n            \/* Eliminado margen inferior completamente *\/\n            text-align: center;\n            display: block;\n            z-index: 10;\n            transition: opacity 0.3s ease, transform 0.3s ease;\n        }\n\n        .header-image {\n            width: 100%;\n            height: auto;\n            display: block;\n        }\n\n        \/* Estilos para el header sticky *\/\n        @media screen and (min-width: 769px) {\n            .header-image-container {\n                position: fixed;\n                top: 0;\n                left: 0;\n                width: 100%;\n                background-color: #fff;\n                padding: 2px 0;\n                \/* Reducido de 5px a 2px *\/\n                \/* box-shadow: 0 2px 10px rgba(0,0,0,0.1); *\/\n                opacity: 0;\n                transform: translateY(-100%);\n                pointer-events: none;\n                z-index: 1050;\n            }\n\n            .header-image-container.visible {\n                opacity: 1;\n                transform: translateY(0);\n                pointer-events: auto;\n            }\n\n            .header-image-container.hidden {\n                opacity: 0;\n                transform: translateY(-100%);\n                pointer-events: none;\n            }\n\n            .header-image {\n                width: auto;\n                max-width: 90%;\n                max-height: 80px;\n                margin: 0 auto;\n            }\n\n            \/* Espacio para el contenido cuando el header est\u00e1 visible *\/\n            .main-wrapper {\n                padding-top: 0;\n                transition: padding-top 0.3s ease;\n            }\n\n            .main-wrapper.with-header {\n                padding-top: 40px;\n                \/* Reducido de 60px a 40px *\/\n            }\n        }\n\n        \/* Estilos para el fondo animado del loader central *\/\n        .center-loader-container .background {\n            width: 100%;\n            height: 100%;\n            background: #3E1E68;\n            position: absolute;\n            top: 0;\n            left: 0;\n            z-index: -1;\n        }\n\n        .center-loader-container .background span {\n            width: 8vmin;\n            height: 8vmin;\n            border-radius: 8vmin;\n            backface-visibility: hidden;\n            position: absolute;\n            animation-name: move;\n            animation-duration: 7.8s;\n            animation-timing-function: linear;\n            animation-iteration-count: infinite;\n        }\n\n        .center-loader-container .background span:nth-child(1) {\n            color: #583C87;\n            top: 53%;\n            left: 42%;\n            animation-duration: 19.89s;\n            animation-delay: -10.5s;\n            transform-origin: -6vw -4vh;\n            box-shadow: 15vmin 0 2vmin currentColor;\n        }\n\n        .center-loader-container .background span:nth-child(2) {\n            color: #FFACAC;\n            top: 43%;\n            left: 18%;\n            animation-duration: 18.33s;\n            animation-delay: -4.2s;\n            transform-origin: 3vw 8vh;\n            box-shadow: -15vmin 0 4vmin currentColor;\n        }\n\n        .center-loader-container .background span:nth-child(3) {\n            color: rgb(107, 204, 149);\n            top: 17%;\n            left: 82%;\n            animation-duration: 18.07s;\n            animation-delay: -9s;\n            transform-origin: 2vw 1vh;\n            box-shadow: 15vmin 0 5vmin currentColor;\n        }\n\n        .center-loader-container .background span:nth-child(4) {\n            color: #FFACAC;\n            top: 5%;\n            left: 50%;\n            animation-duration: 20.15s;\n            animation-delay: -2.7s;\n            transform-origin: -4vw 6vh;\n            box-shadow: -15vmin 0 4vmin currentColor;\n        }\n\n        .center-loader-container .background span:nth-child(5) {\n            color: #583C87;\n            top: 86%;\n            left: 49%;\n            animation-duration: 19.24s;\n            animation-delay: -3.7s;\n            transform-origin: -3vw 1vh;\n            box-shadow: 15vmin 0 3vmin currentColor;\n        }\n\n\n        @keyframes move {\n            100% {\n                transform: translate3d(0, 0, 1px) rotate(360deg);\n            }\n        }\n\n        \/* Ajuste para que el loader y texto queden por encima del fondo *\/\n        .center-loader-container .loader,\n        .center-loader-container .loader-text {\n            position: relative;\n            z-index: 2;\n        }\n\n        \/* Animaci\u00f3n Jelly Wobble Sutil *\/\n        @keyframes jelly-wobble-subtle {\n            0% {\n                transform: scale(1, 1);\n            }\n\n            30% {\n                transform: scale(1.05, 0.95);\n            }\n\n            40% {\n                transform: scale(0.95, 1.05);\n            }\n\n            50% {\n                transform: scale(1.02, 0.98) rotate(-1deg);\n            }\n\n            65% {\n                transform: scale(0.98, 1.02) rotate(1deg);\n            }\n\n            75% {\n                transform: scale(1.01, 0.99);\n            }\n\n            100% {\n                transform: scale(1, 1);\n            }\n        }\n\n        .jelly-wobble {\n            animation: jelly-wobble-subtle 0.6s cubic-bezier(0.5, 1.5, 0.8, 1.2) both;\n            transform-origin: center center;\n        }\n\n        \/* Badge de notificaci\u00f3n - Concurso Docente *\/\n        .btn-badge-wrapper {\n            position: relative;\n            width: 100%;\n        }\n\n        .notif-badge {\n            display: none;\n            position: absolute;\n            top: 2px;\n            right: 2px;\n            min-width: 22px;\n            height: 22px;\n            padding: 0 4px;\n            background-color: #E53935;\n            color: #ffffff;\n            font-size: 0.7rem;\n            font-weight: 700;\n            font-family: Arial, sans-serif;\n            border-radius: 11px;\n            border: 2px solid #ffffff;\n            display: none;\n            align-items: center;\n            justify-content: center;\n            z-index: 30;\n            box-shadow: 0 2px 6px rgba(0,0,0,0.35);\n            animation: badge-pulse 2s ease-in-out infinite;\n            pointer-events: none;\n        }\n\n        @keyframes badge-pulse {\n            0%   { transform: scale(1); }\n            50%  { transform: scale(1.18); }\n            100% { transform: scale(1); }\n        }\n\n        .notif-badge.jelly-wobble {\n            animation: jelly-wobble-subtle 0.6s cubic-bezier(0.5, 1.5, 0.8, 1.2) both;\n        }\n\n        \/* Dropdown HORARIOS DE CURSADA *\/\n        .horarios-dropdown-wrapper {\n            width: 100%;\n            position: relative;\n        }\n\n        .horarios-dropdown-menu {\n            display: none;\n            position: absolute;\n            top: calc(100% + 6px);\n            left: 0;\n            width: 100%;\n            background-color: #ffffff;\n            border: 0.125rem solid #5a2c82;\n            border-radius: 0.75rem;\n            overflow: hidden;\n            z-index: 100;\n            box-shadow: 0 10px 25px rgba(0,0,0,0.15);\n        }\n\n        .horarios-dropdown-menu.open {\n            display: block;\n            animation: dropdown-appear 0.2s ease;\n        }\n\n        @keyframes dropdown-appear {\n            from { opacity: 0; transform: translateY(-8px); }\n            to   { opacity: 1; transform: translateY(0); }\n        }\n\n        .horarios-dropdown-menu a {\n            display: block;\n            width: 100%;\n            padding: 0.85rem 1rem;\n            color: #3e1654;\n            text-decoration: none;\n            font-family: \"Inter\", system-ui, -apple-system, sans-serif;\n            font-weight: 700;\n            font-size: clamp(0.85rem, 1.6vw, 1.05rem);\n            border-bottom: 1px solid rgba(90,44,130,0.12);\n            transition: all 0.2s ease;\n        }\n\n        .horarios-dropdown-menu a:last-child {\n            border-bottom: none;\n        }\n\n        .horarios-dropdown-menu a:hover {\n            background-color: #f7f5ff;\n            color: #5a2c82;\n            padding-left: 1.25rem;\n        }\n    <\/style>\n\n\n\n    <!-- Franja blanca para cubrir opciones superiores -->\n    <div class=\"cover-strip\"><\/div>\n\n    <div class=\"main-wrapper\" id=\"mainContent\">\n        <!-- Encabezado con la imagen institucional -->\n        <div class=\"header-image-container\">\n            <img decoding=\"async\" src=\"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-content\/uploads\/2024\/08\/Agregar-un-titulo-1-1.png\"\n                alt=\"ISFD 809\" class=\"header-image\">\n        <\/div>\n        <div class=\"isfd-menu-container\">\n            <div class=\"isfd-side-menu\">\n                <a href=\"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/acerca-del-instituto-isfd-809\/\"\n                    class=\"isfd-menu-button left-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>NUESTRO<\/div>\n                            <div>INSTITUTO<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f3eb;<\/div>\n                    <\/div>\n                <\/a>\n                <a href=\"https:\/\/isfd809-infd.netlify.app\/sitio\/preinscripciones\" class=\"isfd-menu-button left-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>OFERTA<\/div>\n                            <div>EDUCATIVA<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f393;<\/div>\n                    <\/div>\n                <\/a>\n                <div class=\"horarios-dropdown-wrapper\">\n                    <div id=\"btnHorariosCursada\" class=\"isfd-menu-button left-menu-btn\" style=\"cursor:pointer;\" role=\"button\" tabindex=\"0\" aria-haspopup=\"true\" aria-expanded=\"false\">\n                        <div class=\"btn-content\">\n                            <div class=\"btn-text\">\n                                <div>HORARIOS DE<\/div>\n                                <div>CURSADA<\/div>\n                            <\/div>\n                            <div class=\"btn-icon\">&#x1f552;<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"horarios-dropdown-menu\" id=\"horariosDropdownMenu\" role=\"menu\">\n                        <a href=\"https:\/\/drive.google.com\/drive\/folders\/1fQ_0cN7haZr9DP_0rbhCObAH63UoM6lF\" target=\"_blank\" rel=\"noopener\" role=\"menuitem\">&#x1f3eb; SEDE Esquel<\/a>\n                        <a href=\"https:\/\/drive.google.com\/drive\/folders\/1N-9tNDJEkhzyOOR6BTpeKNjCnJv6_kl1?usp=sharing\" target=\"_blank\" rel=\"noopener\" role=\"menuitem\">&#x1f4cd; ANEXO Jos\u00e9 de San Mart\u00edn<\/a>\n                    <\/div>\n                <\/div>\n                <a href=\"https:\/\/isfd809-infd.netlify.app\/sitio\/normativa\" class=\"isfd-menu-button left-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>NORMATIVA<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x2696;&#xfe0f;<\/div>\n                    <\/div>\n                <\/a>\n                <a href=\"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/formularios\/\" class=\"isfd-menu-button left-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>SOLICITUDES<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f4c3;<\/div>\n                    <\/div>\n                <\/a>\n                <a href=\"https:\/\/estudiantes809.netlify.app\/\" class=\"isfd-menu-button left-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>APP<\/div>\n                            <div>ESTUDIANTES<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f4f1;<\/div>\n                    <\/div>\n                <\/a>\n            <\/div>\n\n            <div class=\"isfd-center-content\">\n                <!-- Loader espec\u00edfico para el contenido central -->\n                <div class=\"center-loader-container\" id=\"centerLoaderContainer\">\n                    <div class=\"background\">\n                        <span><\/span>\n                        <span><\/span>\n                        <span><\/span>\n                        <span><\/span>\n                        <span><\/span>\n                    <\/div>\n                    <div class=\"loader\"><\/div>\n                    <div class=\"loader-text\">ISFD 809<\/div>\n                <\/div>\n\n                <div style=\"position: relative; width: 100%; height: 0; padding-top: 100.0000%;\n            padding-bottom: 0; box-shadow: 0 2px 8px 0 rgba(63,69,81,0.16); overflow: hidden;\n            will-change: transform;\">\n                    <iframe loading=\"lazy\"\n                        style=\"position: absolute; width: 100%; height: 100%; top: 0; left: 0; border: none; padding: 0;margin: 0;\"\n                        src=\"https:\/\/www.canva.com\/design\/DAGNl4OiqdU\/lgb_VQSfrTUZiBgOSk6o1A\/view?embed&#038;hideControls=true\"\n                        allowfullscreen=\"allowfullscreen\" allow=\"fullscreen\">\n                    <\/iframe>\n                <\/div>\n            <\/div>\n\n            <div class=\"isfd-side-menu\">\n                <a href=\"https:\/\/drive.google.com\/drive\/folders\/1zfDVAYgnNWEJyB9YFiunsLTsDi_Ht-lE?hl=es\"\n                    class=\"isfd-menu-button right-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>AGENDA<\/div>\n                            <div>INSTITUCIONAL<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f4d6;<\/div>\n                    <\/div>\n                <\/a>\n                <a href=\"https:\/\/isfd809-infd.netlify.app\/sitio\/carreras\/\"\n                    class=\"isfd-menu-button right-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>DISE\u00d1OS<\/div>\n                            <div>CURRICULARES<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f4dd;<\/div>\n                    <\/div>\n                <\/a>\n                <div class=\"btn-badge-wrapper\">\n                    <a href=\"https:\/\/isfd809-infd.netlify.app\/sitio\/llamados_concurso_docente\"\n                        class=\"isfd-menu-button right-menu-btn\">\n                        <div class=\"btn-content\">\n                            <div class=\"btn-text\">\n                                <div>CONCURSO<\/div>\n                                <div>DOCENTE<\/div>\n                            <\/div>\n                            <div class=\"btn-icon\">&#x1f469;&#x200d;&#x1f3eb;<\/div>\n                        <\/div>\n                    <\/a>\n                    <span class=\"notif-badge\" id=\"badgeConcursoDocente\"><\/span>\n                <\/div>\n                <a href=\"https:\/\/isfd809-infd.netlify.app\/sitio\/biblioteca\" class=\"isfd-menu-button right-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>BIBLIOTECA<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f4da;<\/div>\n                    <\/div>\n                <\/a>\n                <a href=\"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/software-y-recursos-2\/\"\n                    class=\"isfd-menu-button right-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>CENTRO DE<\/div>\n                            <div>RECURSOS<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f4bb;<\/div>\n                    <\/div>\n                <\/a>\n                <a href=\"https:\/\/isfd809-chu.infd.edu.ar\/aula\/acceso.cgi\" class=\"isfd-menu-button right-menu-btn\">\n                    <div class=\"btn-content\">\n                        <div class=\"btn-text\">\n                            <div>CAMPUS<\/div>\n                            <div>VIRTUAL<\/div>\n                        <\/div>\n                        <div class=\"btn-icon\">&#x1f3db;&#xfe0f;<\/div>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n\n        <!-- Imagen que aparece con fade-in al scroll (solo mobile) -->\n        <div class=\"scroll-reveal-image\" id=\"scrollRevealImage\">\n            <img decoding=\"async\" src=\"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-content\/uploads\/2024\/11\/image-1-1343x1900.png\" alt=\"ISFD 809\">\n            <div class=\"mobile-scroll-header\" id=\"mobileScrollHeader\">\n                <img decoding=\"async\" src=\"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-content\/uploads\/2024\/08\/Agregar-un-titulo-1-1.png\" alt=\"ISFD 809\">\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- A\u00f1adir Bootstrap JS y Popper.js -->\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.2\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\n    <script>\n        window.addEventListener('load', function () {\n            const centerContent = document.querySelector('.isfd-center-content');\n            const sideMenus = document.querySelectorAll('.isfd-side-menu');\n            const mainContent = document.getElementById('mainContent');\n            const centerLoaderContainer = document.getElementById('centerLoaderContainer');\n            const headerContainer = document.querySelector('.header-image-container');\n            const coverStrip = document.querySelector('.cover-strip');\n\n            \/\/ Variables para control del scroll\n            let lastScrollTop = 0;\n            let scrollDirection = '';\n\n            \/\/ Funci\u00f3n para ajustar la altura de la capa blanca\n            function adjustCoverStripHeight() {\n                if (sideMenus.length > 0) {\n                    \/\/ Obtener el \u00faltimo bot\u00f3n del \u00faltimo men\u00fa lateral\n                    const lastMenu = sideMenus[sideMenus.length - 1];\n                    const lastButton = lastMenu.querySelector('.isfd-menu-button:last-child');\n\n                    if (lastButton) {\n                        const buttonBottom = lastButton.getBoundingClientRect().bottom;\n                        \/\/ Ajustar la altura de la capa blanca para que llegue hasta el \u00faltimo bot\u00f3n\n                        coverStrip.style.height = (buttonBottom + 20) + 'px'; \/\/ A\u00f1adimos 20px de margen\n                    }\n                }\n            }\n\n            \/\/ Funci\u00f3n para controlar la imagen revelada por scroll (solo mobile)\n            let lastScrollY = 0;\n\n            function handleScrollRevealImage() {\n                if (window.innerWidth > 768) return;\n\n                const scrollRevealImage = document.getElementById('scrollRevealImage');\n                const mobileScrollHeader = document.getElementById('mobileScrollHeader');\n                const sideMenus = document.querySelectorAll('.isfd-side-menu');\n                const scrollY = window.pageYOffset || document.documentElement.scrollTop;\n\n                \/\/ Detectar direcci\u00f3n del scroll\n                const scrollDirection = scrollY > lastScrollY ? 'down' : 'up';\n                lastScrollY = scrollY;\n\n                \/\/ Calcular d\u00f3nde est\u00e1 el \u00faltimo bot\u00f3n\n                const lastMenu = sideMenus[sideMenus.length - 1];\n                const lastButton = lastMenu.querySelector('.isfd-menu-button:last-child');\n                const buttonBottom = lastButton.getBoundingClientRect().bottom + scrollY;\n\n                const marginAfterMenu = 600;\n                const fadeDistance = 250;\n                const menuExitPoint = buttonBottom - window.innerHeight;\n\n                if (scrollDirection === 'down') {\n                    \/\/ Bajando: imagen aparece despu\u00e9s de 600px del margen\n                    const triggerPoint = menuExitPoint + marginAfterMenu;\n                    if (scrollY <= triggerPoint) {\n                        scrollRevealImage.style.opacity = '0';\n                        mobileScrollHeader.classList.remove('visible');\n                    } else if (scrollY >= triggerPoint + fadeDistance) {\n                        scrollRevealImage.style.opacity = '1';\n                        mobileScrollHeader.classList.add('visible');\n                    } else {\n                        const opacity = (scrollY - triggerPoint) \/ fadeDistance;\n                        scrollRevealImage.style.opacity = Math.min(1, Math.max(0, opacity)).toString();\n                        mobileScrollHeader.classList.remove('visible');\n                    }\n                } else {\n                    \/\/ Subiendo: imagen desaparece antes de llegar a la botonera\n                    const triggerPoint = menuExitPoint + marginAfterMenu - fadeDistance;\n                    if (scrollY <= triggerPoint) {\n                        scrollRevealImage.style.opacity = '0';\n                        mobileScrollHeader.classList.remove('visible');\n                    } else if (scrollY >= triggerPoint + fadeDistance) {\n                        scrollRevealImage.style.opacity = '1';\n                        mobileScrollHeader.classList.add('visible');\n                    } else {\n                        const opacity = (scrollY - triggerPoint) \/ fadeDistance;\n                        scrollRevealImage.style.opacity = Math.min(1, Math.max(0, opacity)).toString();\n                        \/\/ Header desaparece antes que la foto empiece a bajar opacidad\n                        if (opacity < 0.95) {\n                            mobileScrollHeader.classList.remove('visible');\n                        }\n                    }\n                }\n            }\n\n            \/\/ Agregar event listener para scroll reveal image\n            window.addEventListener('scroll', handleScrollRevealImage, { passive: true });\n\n            \/\/ Funci\u00f3n para detectar direcci\u00f3n de scroll y controlar el header (solo desktop)\n            function handleScroll() {\n                if (window.innerWidth <= 768) return;\n\n                const currentScroll = window.pageYOffset || document.documentElement.scrollTop;\n\n                \/\/ Mostrar header solo cuando estamos en la parte superior de la p\u00e1gina\n                if (currentScroll <= 5) {\n                    \/\/ En la parte superior\n                    headerContainer.classList.remove('hidden');\n                    headerContainer.classList.add('visible');\n                    mainContent.classList.add('with-header');\n                } else {\n                    \/\/ No estamos en la parte superior\n                    headerContainer.classList.remove('visible');\n                    headerContainer.classList.add('hidden');\n                    mainContent.classList.remove('with-header');\n                }\n\n                lastScrollTop = currentScroll <= 0 ? 0 : currentScroll;\n            }\n\n            \/\/ A\u00f1adir event listener para el scroll\n            window.addEventListener('scroll', handleScroll, { passive: true });\n\n            \/\/ Funci\u00f3n para optimizar individualmente cada bot\u00f3n\n            function optimizeButtonText() {\n                const allButtons = document.querySelectorAll('.isfd-menu-button');\n\n                const buttonConfigs = {\n                    'NUESTRO INSTITUTO': { fontSize: '95%', marginLeft: '13%' },\n                    'CARRERAS': { fontSize: '100%', marginLeft: '15%' },\n                    'HORARIO DE CURSADAS': { fontSize: '92%', marginLeft: '12%' },\n                    'NORMATIVA': { fontSize: '100%', marginLeft: '15%' },\n                    'FORMULARIOS': { fontSize: '100%', marginLeft: '15%' },\n                    'ESTAMENTO DE ESTUDIANTES': { fontSize: '88%', marginLeft: '10%' },\n                    'AGENDA INSTITUCIONAL': { fontSize: '90%', marginLeft: '12%' },\n                    'INGRESO 2025': { fontSize: '98%', marginLeft: '15%' },\n                    'INSCRIPCIONES 2026': { fontSize: '85%', marginLeft: '10%' },\n                    'CONCURSO DOCENTE': { fontSize: '94%', marginLeft: '12%' },\n                    'BIBLIOTECA': { fontSize: '100%', marginLeft: '15%' },\n                    'CENTRO DE RECURSOS': { fontSize: '92%', marginLeft: '12%' },\n                    'CAMPUS VIRTUAL': { fontSize: '95%', marginLeft: '13%' }\n                };\n\n                allButtons.forEach(button => {\n                    const btnText = button.querySelector('.btn-text');\n                    const divs = btnText.querySelectorAll('div');\n                    const textContent = Array.from(divs).map(div => div.textContent.trim()).join(' ');\n\n                    \/\/ Aplicar ajustes personalizados si existen para este bot\u00f3n\n                    if (buttonConfigs[textContent]) {\n                        const config = buttonConfigs[textContent];\n                        btnText.style.fontSize = config.fontSize;\n                        btnText.style.marginLeft = config.marginLeft;\n                    }\n\n                    \/\/ Gestionar el centrado vertical para textos de una l\u00ednea\n                    if (divs.length === 1 && divs[0].textContent.trim() !== '') {\n                        divs[0].style.height = '100%';\n                    }\n\n                    \/\/ A\u00f1adir una segunda l\u00ednea vac\u00eda si solo hay una\n                    if (divs.length === 1) {\n                        const emptyDiv = document.createElement('div');\n                        emptyDiv.innerHTML = '&nbsp;';\n                        emptyDiv.style.display = 'none'; \/\/ Ocultar el div vac\u00edo\n                        btnText.appendChild(emptyDiv);\n                    }\n                });\n            }\n\n            \/\/ Asegurar que todos los botones tengan exactamente dos l\u00edneas\n            function ensureTwoLines() {\n                const allButtons = document.querySelectorAll('.isfd-menu-button');\n\n                allButtons.forEach(button => {\n                    const btnText = button.querySelector('.btn-text');\n                    const divs = btnText.querySelectorAll('div');\n\n                    \/\/ Gestionar el centrado vertical para textos de una l\u00ednea\n                    if (divs.length === 1 && divs[0].textContent.trim() !== '') {\n                        divs[0].style.height = '100%';\n                    }\n\n                    \/\/ A\u00f1adir una segunda l\u00ednea vac\u00eda si solo hay una\n                    if (divs.length === 1) {\n                        const emptyDiv = document.createElement('div');\n                        emptyDiv.innerHTML = '&nbsp;';\n                        emptyDiv.style.display = 'none'; \/\/ Ocultar el div vac\u00edo\n                        btnText.appendChild(emptyDiv);\n                    }\n                });\n            }\n\n            function adjustHeightDesktop() {\n                if (window.innerWidth > 768) {\n                    \/\/ Ajuste de altura para desktop\n                    const contentHeight = centerContent.offsetHeight;\n\n                    \/\/ Ajustar el header para pantalla completa en desktop\n                    if (headerContainer) {\n                        \/\/ Medir el header para establecer el padding correcto\n                        const headerHeight = headerContainer.offsetHeight;\n                        if (headerContainer.classList.contains('visible')) {\n                            mainContent.classList.add('with-header');\n                            mainContent.style.paddingTop = headerHeight + 'px';\n                        } else {\n                            mainContent.classList.remove('with-header');\n                        }\n                    }\n\n                    sideMenus.forEach(menu => {\n                        menu.style.height = contentHeight + 'px';\n\n                        const buttons = menu.querySelectorAll('.isfd-menu-button');\n                        const totalButtons = buttons.length;\n                        const gapPx = parseFloat(getComputedStyle(document.documentElement).fontSize) * 0.5 * (totalButtons - 1);\n\n                        const availableHeight = contentHeight - gapPx;\n                        const buttonHeight = availableHeight \/ totalButtons;\n\n                        buttons.forEach(button => {\n                            button.style.height = buttonHeight + 'px';\n                        });\n                    });\n                }\n\n                \/\/ Optimizar texto en cada bot\u00f3n\n                optimizeButtonText();\n\n                \/\/ Mostrar el contenido despu\u00e9s de todos los c\u00e1lculos\n                setTimeout(() => {\n                    mainContent.classList.add('content-ready');\n                }, 100);\n            }\n\n            \/\/ Ocultar loader despu\u00e9s de tiempo fijo (Canva no dispara load event)\n            setTimeout(() => {\n                centerLoaderContainer.style.display = 'none';\n            }, 4000);\n\n            \/\/ Iniciar los c\u00e1lculos despu\u00e9s de un breve momento para dar tiempo a que cargue el iframe\n            setTimeout(function () {\n                adjustHeightDesktop();\n                adjustCoverStripHeight();\n            }, 300);\n\n            window.addEventListener('resize', () => {\n                \/\/ Actualizar posici\u00f3n del header en resize\n                if (window.innerWidth > 768) {\n                    \/\/ Si el header est\u00e1 visible, actualizar paddingTop\n                    if (headerContainer && headerContainer.classList.contains('visible')) {\n                        const headerHeight = headerContainer.offsetHeight;\n                        mainContent.classList.add('with-header');\n                        mainContent.style.paddingTop = headerHeight + 'px';\n                    }\n                } else {\n                    \/\/ Restaurar estilos para m\u00f3vil\n                    headerContainer.style.position = '';\n                    headerContainer.style.width = '';\n                    headerContainer.style.opacity = '';\n                    headerContainer.style.transform = '';\n                    headerContainer.style.background = '';\n                    headerContainer.style.boxShadow = '';\n                    headerContainer.style.padding = '';\n                    headerContainer.classList.remove('visible', 'hidden');\n                    mainContent.classList.remove('with-header');\n                    mainContent.style.paddingTop = '';\n                }\n\n                if (window.innerWidth <= 768) {\n                    sideMenus.forEach(menu => {\n                        menu.style.height = 'auto';\n                        menu.querySelectorAll('.isfd-menu-button').forEach(button => {\n                            button.style.height = '3rem';\n                        });\n                    });\n                } else {\n                    setTimeout(adjustHeightDesktop, 50);\n                }\n                optimizeButtonText();\n                adjustCoverStripHeight();\n            });\n\n            \/\/ Asegurar que los estilos iniciales sean correctos\n            if (window.innerWidth > 768) {\n                \/\/ Inicialmente oculto en desktop\n                headerContainer.classList.add('hidden');\n\n                \/\/ Peque\u00f1o scroll inicial si estamos arriba, para permitir \"subir\" y mostrar el header\n                setTimeout(() => {\n                    if ((window.pageYOffset || document.documentElement.scrollTop) < 15) {\n                        window.scrollTo(0, 15);\n                    }\n                }, 50);\n            }\n\n            \/\/ Inicializaci\u00f3n inmediata\n            optimizeButtonText();\n            adjustCoverStripHeight();\n\n            \/\/ Auto-scroll al header en mobile al cargar\n            if (window.innerWidth <= 768) {\n                setTimeout(() => {\n                    const headerTop = headerContainer.getBoundingClientRect().top + window.pageYOffset;\n                    const paddingOffset = 10; \/\/ Peque\u00f1o padding de seguridad\n                    window.scrollTo({\n                        top: headerTop - paddingOffset,\n                        behavior: 'smooth'\n                    });\n                }, 100);\n            }\n            \/\/ Dropdown HORARIOS DE CURSADA\n            (function() {\n                var btn = document.getElementById('btnHorariosCursada');\n                var menu = document.getElementById('horariosDropdownMenu');\n\n                function toggleMenu(e) {\n                    e.stopPropagation();\n                    var isOpen = menu.classList.contains('open');\n                    menu.classList.toggle('open', !isOpen);\n                    btn.setAttribute('aria-expanded', String(!isOpen));\n                }\n\n                btn.addEventListener('click', toggleMenu);\n                btn.addEventListener('keydown', function(e) {\n                    if (e.key === 'Enter' || e.key === ' ') toggleMenu(e);\n                });\n\n                document.addEventListener('click', function() {\n                    menu.classList.remove('open');\n                    btn.setAttribute('aria-expanded', 'false');\n                });\n\n                menu.addEventListener('click', function(e) {\n                    e.stopPropagation();\n                    menu.classList.remove('open');\n                    btn.setAttribute('aria-expanded', 'false');\n                });\n            })();\n\n            \/\/ Implementaci\u00f3n del efecto Jelly Wobble\n            const jellyButtons = document.querySelectorAll('.isfd-menu-button');\n            jellyButtons.forEach(button => {\n                button.addEventListener('mouseover', function () {\n                    if (!this.classList.contains('jelly-wobble')) {\n                        this.classList.add('jelly-wobble');\n                        const badge = this.parentElement.querySelector('.notif-badge');\n                        if (badge) badge.classList.add('jelly-wobble');\n                    }\n                });\n\n                button.addEventListener('animationend', function () {\n                    this.classList.remove('jelly-wobble');\n                    const badge = this.parentElement.querySelector('.notif-badge');\n                    if (badge) badge.classList.remove('jelly-wobble');\n                });\n            });\n\n            \/\/ Badge de notificaci\u00f3n: Concurso Docente (solo vigentes)\n            fetch('https:\/\/isfd809-infd.netlify.app\/sitio\/llamados_concurso_docente\/llamados.json')\n                .then(function(response) {\n                    if (!response.ok) return;\n                    return response.json();\n                })\n                .then(function(data) {\n                    if (!data || !Array.isArray(data.llamados)) return;\n                    \n                    var ahora = new Date();\n                    var vigentes = 0;\n                    \n                    data.llamados.forEach(function(llamado) {\n                        if (llamado.fecha_caducidad) {\n                            var partes = llamado.fecha_caducidad.split('\/');\n                            if (partes.length === 3) {\n                                var dia = parseInt(partes[0], 10);\n                                var mes = parseInt(partes[1], 10) - 1;\n                                var anio = parseInt(partes[2], 10);\n                                if (anio < 100) anio += 2000;\n                                \n                                \/\/ Caduca al finalizar el d\u00eda estipulado (23:59:59)\n                                var fechaExp = new Date(anio, mes, dia, 23, 59, 59);\n                                \n                                if (fechaExp >= ahora) {\n                                    vigentes++;\n                                }\n                            }\n                        }\n                    });\n\n                    if (vigentes > 0) {\n                        var badge = document.getElementById('badgeConcursoDocente');\n                        if (badge) {\n                            badge.textContent = vigentes;\n                            badge.style.display = 'flex';\n                        }\n                    }\n                })\n                .catch(function() { \/* red ca\u00edda: badge no aparece *\/ });\n        });\n    <\/script>\n\n<\/head>\n\n<body>\n<\/body>\n\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>NUESTRO INSTITUTO &#x1f3eb; OFERTA EDUCATIVA &#x1f393; HORARIOS DE CURSADA &#x1f552; &#x1f3eb; SEDE Esquel &#x1f4cd; ANEXO Jos\u00e9 de San Mart\u00edn NORMATIVA &#x2696;&#xfe0f; SOLICITUDES &#x1f4c3; APP ESTUDIANTES &#x1f4f1; ISFD 809 AGENDA INSTITUCIONAL &#x1f4d6; DISE\u00d1OS CURRICULARES &#x1f4dd; CONCURSO DOCENTE &#x1f469;&#x200d;&#x1f3eb; BIBLIOTECA &#x1f4da; CENTRO DE RECURSOS &#x1f4bb; CAMPUS VIRTUAL &#x1f3db;&#xfe0f;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/pages\/286"}],"collection":[{"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/comments?post=286"}],"version-history":[{"count":669,"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/pages\/286\/revisions"}],"predecessor-version":[{"id":5786,"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/pages\/286\/revisions\/5786"}],"wp:attachment":[{"href":"https:\/\/isfd809-chu.infd.edu.ar\/sitio\/wp-json\/wp\/v2\/media?parent=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}