{"id":29532,"date":"2026-05-26T09:43:32","date_gmt":"2026-05-26T12:43:32","guid":{"rendered":"https:\/\/josueleal.com\/pigov3\/?page_id=29532"},"modified":"2026-05-29T10:45:53","modified_gmt":"2026-05-29T13:45:53","slug":"orgaos2","status":"publish","type":"page","link":"https:\/\/josueleal.com\/pigov3\/orgaos2\/","title":{"rendered":"\u00d3rg\u00e3os Per\u00edodo Eleitoral"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29532\" class=\"elementor elementor-29532\" data-elementor-settings=\"{&quot;element_pack_global_tooltip_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-77747d8 e-flex e-con-boxed e-con e-parent\" data-id=\"77747d8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e854955 elementor-widget elementor-widget-shortcode\" data-id=\"e854955\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n    <section id=\"buscar-orgao-pi-2350\" class=\"bop-wrapper\">\n        <div class=\"bop-hero\" >\n            <div class=\"bop-container\">\n                <h2>Buscar \u00d3rg\u00e3o<\/h2>\n                <p>Consulte as informa\u00e7\u00f5es dos principais \u00d3rg\u00e3os P\u00fablicos do Piau\u00ed<\/p>\n\n                <div class=\"bop-search-box\">\n                    <input\n                        type=\"text\"\n                        class=\"bop-search\"\n                        placeholder=\"Insira o nome, sigla ou respons\u00e1vel do \u00f3rg\u00e3o\"\n                        aria-label=\"Buscar \u00f3rg\u00e3o\"\n                        autocomplete=\"off\"\n                    >\n\n                    <button\n                        type=\"button\"\n                        class=\"bop-clear-search\"\n                        aria-label=\"Limpar busca\"\n                        title=\"Limpar busca\"\n                        hidden\n                    >\n                        <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"><\/i>\n                    <\/button>\n                <\/div>\n\n                <div class=\"bop-filters\" aria-label=\"Filtros de \u00f3rg\u00e3os\">\n                    <label>\n                        <input type=\"radio\" name=\"buscar-orgao-pi-2350-tipo\" value=\"todos\" checked>\n                        <span>Todos<\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"bop-results-area\">\n            <div class=\"bop-container\">\n                <div class=\"bop-status\">Carregando \u00f3rg\u00e3os...<\/div>\n                <div class=\"bop-grid\"><\/div>\n\n                <div class=\"bop-load-wrap\">\n                    <button type=\"button\" class=\"bop-load-more\" hidden>Carregar mais<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <style>\n        #buscar-orgao-pi-2350 {\n            --bop-primary: #003f91;\n            --bop-text: #101828;\n            --bop-bg: #f4f6fa;\n            --bop-card: #ffffff;\n            --bop-border: #e4e7ec;\n            font-family: inherit;\n        }\n\n        #buscar-orgao-pi-2350 * {\n            box-sizing: border-box;\n        }\n\n        #buscar-orgao-pi-2350 .bop-container {\n            width: min(100% - 32px, 1250px);\n            margin-inline: auto;\n        }\n\n        #buscar-orgao-pi-2350 .bop-hero {\n            min-height: 430px;\n            padding: 64px 0 70px;\n            color: #fff;\n            text-align: center;\n\n            background:\n                radial-gradient(circle at 18% 18%, rgba(91, 177, 255, 0.24) 0%, rgba(91, 177, 255, 0) 34%),\n                radial-gradient(circle at 82% 28%, rgba(0, 84, 166, 0.42) 0%, rgba(0, 84, 166, 0) 38%),\n                linear-gradient(135deg, #365f82 0%, #0055A5 46%, #003B73 100%);\n\n            background-size: cover;\n            background-position: center center;\n            background-repeat: no-repeat;\n            display: flex;\n            align-items: center;\n        }\n\n        #buscar-orgao-pi-2350 .bop-hero h2 {\n            color: #fff;\n            font-size: clamp(34px, 5vw, 48px);\n            line-height: 1.1;\n            margin: 0 0 16px;\n            font-weight: 800;\n            text-shadow: 0 2px 5px rgba(0,0,0,.35);\n        }\n\n        #buscar-orgao-pi-2350 .bop-hero p {\n            color: #fff;\n            font-size: clamp(16px, 2vw, 22px);\n            margin: 0 0 26px;\n            font-weight: 600;\n            text-shadow: 0 2px 5px rgba(0,0,0,.35);\n        }\n\n        #buscar-orgao-pi-2350 .bop-search-box {\n            position: relative;\n            width: min(100%, 800px);\n            margin: 0 auto 28px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-search {\n            width: 100%;\n            border: 0;\n            outline: none;\n            border-radius: 999px;\n            padding: 20px 64px 20px 26px;\n            min-height: 62px;\n            font-size: 21px;\n            color: var(--bop-text);\n            background: #fff;\n            box-shadow: 0 8px 24px rgba(0,0,0,.14);\n            appearance: none;\n            -webkit-appearance: none;\n        }\n\n        \/**\n         * Seguran\u00e7a extra:\n         * remove o bot\u00e3o nativo de limpar que alguns navegadores exibem em campos type=\"search\".\n         * Mesmo usando type=\"text\", isso evita duplicidade caso o tipo do input seja alterado futuramente.\n         *\/\n        #buscar-orgao-pi-2350 .bop-search::-webkit-search-decoration,\n        #buscar-orgao-pi-2350 .bop-search::-webkit-search-cancel-button,\n        #buscar-orgao-pi-2350 .bop-search::-webkit-search-results-button,\n        #buscar-orgao-pi-2350 .bop-search::-webkit-search-results-decoration {\n            display: none;\n            -webkit-appearance: none;\n        }\n\n        #buscar-orgao-pi-2350 .bop-clear-search {\n            position: absolute;\n            top: 50%;\n            right: 8px;\n            width: 48px;\n            height: 38px;\n            transform: translateY(-50%);\n            border: 0;\n            border-radius: 50%;\n            background: #eef2f7;\n            color: #344054;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            transition: background .2s ease, color .2s ease, transform .2s ease;\n        }\n\n        #buscar-orgao-pi-2350 .bop-clear-search:hover,\n        #buscar-orgao-pi-2350 .bop-clear-search:focus {\n            background: #dbe4f0;\n            color: #003f91;\n            transform: translateY(-50%) scale(1.04);\n        }\n\n        #buscar-orgao-pi-2350 .bop-clear-search[hidden] {\n            display: none;\n        }\n\n        #buscar-orgao-pi-2350 .bop-clear-search i {\n            font-size: 18px;\n            line-height: 1;\n        }\n\n        #buscar-orgao-pi-2350 .bop-filters {\n            display: flex;\n            flex-wrap: wrap;\n            justify-content: center;\n            gap: 16px 22px;\n            max-width: 1120px;\n            margin: 0 auto;\n        }\n\n        #buscar-orgao-pi-2350 .bop-filters label {\n            display: inline-flex;\n            align-items: center;\n            gap: 7px;\n            color: #fff;\n            font-size: 15px;\n            line-height: 1.2;\n            font-weight: 700;\n            cursor: pointer;\n            text-shadow: 0 1px 3px rgba(0,0,0,.45);\n            text-align: left;\n        }\n\n        #buscar-orgao-pi-2350 .bop-filters input {\n            width: 16px;\n            height: 16px;\n            accent-color: #0d6efd;\n            cursor: pointer;\n        }\n\n        #buscar-orgao-pi-2350 .bop-results-area {\n            background: var(--bop-bg);\n            padding: 48px 0 64px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-grid {\n            display: grid;\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n            gap: 24px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-card {\n            display: flex;\n            flex-direction: column;\n            min-height: 236px;\n            background: var(--bop-card);\n            border-radius: 12px;\n            padding: 25px;\n            text-decoration: none;\n            color: var(--bop-text);\n            box-shadow: 0 12px 26px rgba(16, 24, 40, .06);\n            transition: transform .2s ease, box-shadow .2s ease;\n        }\n\n        #buscar-orgao-pi-2350 .bop-card:hover {\n            transform: translateY(-3px);\n            box-shadow: 0 16px 34px rgba(16, 24, 40, .12);\n            text-decoration: none;\n            font-weight: unset;\n        }\n\n        #buscar-orgao-pi-2350 .bop-type {\n            font-size: 14px;\n            color: #1f2937;\n            margin-bottom: 6px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-title {\n            margin: 0 0 8px;\n            color: var(--bop-primary);\n            font-size: 22px;\n            line-height: 1.15;\n            font-weight: 800;\n            text-transform: uppercase;\n        }\n\n        #buscar-orgao-pi-2350 .bop-description {\n            margin: 0;\n            color: #667085;\n            font-size: 15px;\n            line-height: 1.45;\n            font-weight: 500;\n        }\n\n        #buscar-orgao-pi-2350 .bop-divider {\n            width: 100%;\n            height: 1px;\n            background: var(--bop-border);\n            margin: 24px 0 18px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-person {\n            display: flex;\n            align-items: center;\n            gap: 14px;\n            margin-top: auto;\n        }\n\n        #buscar-orgao-pi-2350 .bop-avatar {\n            width: 56px;\n            height: 56px;\n            flex: 0 0 56px;\n            border-radius: 50%;\n            border: 1px solid #d0d5dd;\n            background: #fff;\n            display: grid;\n            place-items: center;\n            overflow: hidden;\n        }\n\n        #buscar-orgao-pi-2350 .bop-avatar-img {\n            width: 100%;\n            height: 100%;\n            display: block;\n            object-fit: cover;\n            border-radius: 50%;\n        }\n\n        #buscar-orgao-pi-2350 .bop-avatar-inner {\n            width: 44px;\n            height: 44px;\n            border-radius: 50%;\n            background: #1473ff;\n            display: grid;\n            place-items: center;\n            color: #fff;\n        }\n\n        #buscar-orgao-pi-2350 .bop-avatar-inner svg {\n            width: 27px;\n            height: 27px;\n            fill: currentColor;\n        }\n\n        #buscar-orgao-pi-2350 .bop-role {\n            display: block;\n            color: #667085;\n            text-transform: uppercase;\n            letter-spacing: .03em;\n            font-size: 11px;\n            line-height: 1.35;\n            margin-bottom: 4px;\n            max-width: 250px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-name {\n            display: block;\n            color: #000;\n            font-size: 16px;\n            line-height: 1.25;\n            font-weight: 700;\n            max-width: 260px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-status {\n            text-align: center;\n            color: #344054;\n            font-size: 16px;\n            font-weight: 600;\n            margin-bottom: 24px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-status:empty {\n            display: none;\n        }\n\n        #buscar-orgao-pi-2350 .bop-load-wrap {\n            text-align: center;\n            margin-top: 32px;\n        }\n\n        #buscar-orgao-pi-2350 .bop-load-more {\n            border: 0;\n            border-radius: 999px;\n            padding: 13px 26px;\n            background: var(--bop-primary);\n            color: #fff;\n            font-weight: 700;\n            cursor: pointer;\n        }\n\n        #buscar-orgao-pi-2350 .bop-load-more:hover,\n        #buscar-orgao-pi-2350 .bop-load-more:focus {\n            border: 0;\n            border-radius: 999px;\n            padding: 13px 26px;\n            background: var(--bop-primary) !important;\n            color: #fff;\n            font-weight: 700;\n            cursor: pointer;\n        }\n\n        @media (max-width: 1024px) {\n            #buscar-orgao-pi-2350 .bop-grid {\n                grid-template-columns: repeat(2, minmax(0, 1fr));\n            }\n        }\n\n        @media (max-width: 767px) {\n            #buscar-orgao-pi-2350 .bop-hero {\n                min-height: auto;\n                padding: 44px 0 52px;\n            }\n\n            #buscar-orgao-pi-2350 .bop-search {\n                font-size: 16px;\n                min-height: 56px;\n                padding: 16px 56px 16px 20px;\n            }\n\n            #buscar-orgao-pi-2350 .bop-clear-search {\n                right: 4px;\n                width: 48px;\n                height: 34px;\n            }\n\n            #buscar-orgao-pi-2350 .bop-clear-search i {\n                font-size: 16px;\n            }\n\n            #buscar-orgao-pi-2350 .bop-filters {\n                justify-content: flex-start;\n                gap: 13px 16px;\n                flex-direction: column;\n            }\n\n            #buscar-orgao-pi-2350 .bop-grid {\n                grid-template-columns: 1fr;\n            }\n\n            #buscar-orgao-pi-2350 .bop-card {\n                min-height: auto;\n                padding: 22px;\n            }\n        }\n    <\/style>\n\n    <script>\n        (function () {\n            const root = document.getElementById('buscar-orgao-pi-2350');\n            if (!root) return;\n\n            const apiUrl = 'https:\/\/josueleal.com\/pigov3\/wp-admin\/admin-ajax.php?action=bop_get_orgaos_pi';\n            const detailPageUrl = 'https:\/\/josueleal.com\/pigov3\/orgaos-detalhes\/';\n\n            const searchInput = root.querySelector('.bop-search');\n            const clearSearchBtn = root.querySelector('.bop-clear-search');\n            const filtersWrap = root.querySelector('.bop-filters');\n            const grid = root.querySelector('.bop-grid');\n            const status = root.querySelector('.bop-status');\n            const loadMoreBtn = root.querySelector('.bop-load-more');\n\n            let allItems = [];\n            let filteredItems = [];\n            let visibleCount = 9;\n            const increment = 9;\n\n            const avatarSvg = `\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n                    <path d=\"M12 12c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5Zm0 2c-3.33 0-10 1.67-10 5v1.25C2 21.22 2.78 22 3.75 22h16.5c.97 0 1.75-.78 1.75-1.75V19c0-3.33-6.67-5-10-5Z\"\/>\n                <\/svg>\n            `;\n\n            function stripHtml(value) {\n                const div = document.createElement('div');\n                div.innerHTML = value || '';\n                return div.textContent || div.innerText || '';\n            }\n\n            function escapeHtml(value) {\n                const div = document.createElement('div');\n                div.textContent = value || '';\n                return div.innerHTML;\n            }\n\n            function normalizeText(value) {\n                return String(value || '')\n                    .toLowerCase()\n                    .normalize('NFD')\n                    .replace(\/[\\u0300-\\u036f]\/g, '')\n                    .trim();\n            }\n\n            function getTextFromValue(value) {\n                if (value === undefined || value === null || value === '') return '';\n\n                if (Array.isArray(value)) {\n                    return value.map(item => getTextFromValue(item)).filter(Boolean).join(', ');\n                }\n\n                if (typeof value === 'object') {\n                    return value.name ||\n                        value.label ||\n                        value.title ||\n                        value.post_title ||\n                        value.value ||\n                        value.url ||\n                        value.email ||\n                        value.rendered ||\n                        '';\n                }\n\n                return String(value);\n            }\n\n            function getAcf(post, keys) {\n                if (!post.acf) return '';\n\n                for (const key of keys) {\n                    if (post.acf[key] !== undefined && post.acf[key] !== null && post.acf[key] !== '') {\n                        return getTextFromValue(post.acf[key]);\n                    }\n                }\n\n                return '';\n            }\n\n            function getEmbeddedTipoOrgao(post) {\n                const termsGroups = post._embedded?.['wp:term'] || [];\n\n                for (const group of termsGroups) {\n                    for (const term of group) {\n                        if (term.taxonomy === 'tipo-de-orgao') {\n                            return term.name || '';\n                        }\n                    }\n                }\n\n                return '';\n            }\n\n            function getFeaturedImage(post) {\n                return post._embedded?.['wp:featuredmedia']?.[0]?.source_url || '';\n            }\n\n            function normalizePost(post) {\n                const title = stripHtml(post.title?.rendered || '');\n\n                const sigla = getAcf(post, ['sigla_do_orgao']) || title;\n                const paginaOficial = getAcf(post, ['pagina_oficial']);\n                const responsavel = getAcf(post, ['nome_do_responsavel']);\n                const cargo = getAcf(post, ['cargo_do_responsavel']);\n                const emails = getAcf(post, ['emails']);\n                const horario = getAcf(post, ['horario_de_atendimento']);\n                const endereco = getAcf(post, ['endereco']);\n                const tipo = getEmbeddedTipoOrgao(post);\n                const imagem = getFeaturedImage(post);\n\n                return {\n                    id: post.id,\n                    title: title,\n                    sigla: stripHtml(sigla),\n                    nome: title,\n                    tipo: stripHtml(tipo),\n                    responsavel: stripHtml(responsavel),\n                    cargo: stripHtml(cargo),\n                    paginaOficial: stripHtml(paginaOficial),\n                    emails: stripHtml(emails),\n                    horario: stripHtml(horario),\n                    endereco: stripHtml(endereco),\n                    imagem: imagem\n                };\n            }\n\n            function renderDynamicFilters(items) {\n                if (!filtersWrap) return;\n\n                const tipos = [...new Set(\n                    items\n                        .map(item => item.tipo)\n                        .filter(Boolean)\n                        .map(tipo => tipo.trim())\n                )].sort((a, b) => a.localeCompare(b, 'pt-BR'));\n\n                const filterName = 'buscar-orgao-pi-2350-tipo';\n\n                const filtersHtml = [\n                    `\n                        <label>\n                            <input type=\"radio\" name=\"${filterName}\" value=\"todos\" checked>\n                            <span>Todos<\/span>\n                        <\/label>\n                    `\n                ];\n\n                tipos.forEach(tipo => {\n                    const safeTipo = escapeHtml(tipo);\n\n                    filtersHtml.push(`\n                        <label>\n                            <input type=\"radio\" name=\"${filterName}\" value=\"${safeTipo}\">\n                            <span>${safeTipo}<\/span>\n                        <\/label>\n                    `);\n                });\n\n                filtersWrap.innerHTML = filtersHtml.join('');\n\n                filtersWrap.querySelectorAll('input[type=\"radio\"]').forEach(filter => {\n                    filter.addEventListener('change', applyFilters);\n                });\n            }\n\n            function matchesFilter(item, selectedType) {\n                if (selectedType === 'todos') return true;\n\n                const itemType = normalizeText(item.tipo);\n                const filterType = normalizeText(selectedType);\n\n                if (!itemType) return false;\n\n                return itemType === filterType;\n            }\n\n            function toggleClearButton() {\n                if (!clearSearchBtn || !searchInput) return;\n\n                clearSearchBtn.hidden = searchInput.value.trim() === '';\n            }\n\n            function applyFilters() {\n                toggleClearButton();\n\n                const term = normalizeText(searchInput.value);\n                const selectedType = root.querySelector('input[type=\"radio\"]:checked')?.value || 'todos';\n\n                filteredItems = allItems.filter(item => {\n                    const searchable = normalizeText([\n                        item.title,\n                        item.sigla,\n                        item.nome,\n                        item.tipo,\n                        item.responsavel,\n                        item.cargo,\n                        item.emails,\n                        item.horario,\n                        item.endereco\n                    ].join(' '));\n\n                    return searchable.includes(term) && matchesFilter(item, selectedType);\n                });\n\n                visibleCount = 9;\n                render();\n            }\n\n            function render() {\n                const itemsToShow = filteredItems.slice(0, visibleCount);\n\n                if (!itemsToShow.length) {\n                    grid.innerHTML = '';\n                    status.textContent = allItems.length ? 'Nenhum \u00f3rg\u00e3o encontrado.' : 'Carregando \u00f3rg\u00e3os...';\n                    loadMoreBtn.hidden = true;\n                    return;\n                }\n\n                status.textContent = '';\n\n                grid.innerHTML = itemsToShow.map(item => {\n                    const tipo = item.tipo || 'Sem classifica\u00e7\u00e3o';\n                    const sigla = item.sigla || item.title || '\u00d3rg\u00e3o';\n                    const nome = item.nome || item.title || '';\n                    const cargo = item.cargo || 'Respons\u00e1vel';\n                    const responsavel = item.responsavel || 'N\u00e3o informado';\n\n                    const separator = detailPageUrl.includes('?') ? '&' : '?';\n                    const link = detailPageUrl + separator + 'orgao_id=' + encodeURIComponent(item.id);\n\n                    return `\n                        <a class=\"bop-card\" href=\"${link}\">\n                            <div class=\"bop-type\">${escapeHtml(tipo)}<\/div>\n                            <h3 class=\"bop-title\">${escapeHtml(sigla)}<\/h3>\n                            <p class=\"bop-description\">${escapeHtml(nome)}<\/p>\n\n                            <div class=\"bop-divider\"><\/div>\n\n                            <div class=\"bop-person\">\n                                <div class=\"bop-avatar\">\n                                    ${\n                                        item.imagem\n                                            ? `<img decoding=\"async\" class=\"bop-avatar-img\" src=\"${escapeHtml(item.imagem)}\" alt=\"${escapeHtml(responsavel)}\">`\n                                            : `<div class=\"bop-avatar-inner\">${avatarSvg}<\/div>`\n                                    }\n                                <\/div>\n\n                                <div>\n                                    <span class=\"bop-role\">${escapeHtml(cargo)}<\/span>\n                                    <span class=\"bop-name\">${escapeHtml(responsavel)}<\/span>\n                                <\/div>\n                            <\/div>\n                        <\/a>\n                    `;\n                }).join('');\n\n                loadMoreBtn.hidden = visibleCount >= filteredItems.length;\n            }\n\n            async function fetchAllPages() {\n                try {\n                    const response = await fetch(apiUrl);\n\n                    if (!response.ok) {\n                        throw new Error('Erro ao carregar dados locais');\n                    }\n\n                    const result = await response.json();\n\n                    if (!result.success || !Array.isArray(result.data)) {\n                        throw new Error(result.data?.message || 'Retorno inv\u00e1lido');\n                    }\n\n                    allItems = result.data.map(normalizePost).sort((a, b) => {\n                        return a.sigla.localeCompare(b.sigla, 'pt-BR');\n                    });\n\n                    renderDynamicFilters(allItems);\n\n                    filteredItems = allItems;\n                    render();\n                    toggleClearButton();\n\n                } catch (error) {\n                    console.error(error);\n                    status.textContent = 'N\u00e3o foi poss\u00edvel carregar os \u00f3rg\u00e3os no momento.';\n                    loadMoreBtn.hidden = true;\n                }\n            }\n\n            searchInput.addEventListener('input', applyFilters);\n\n            if (clearSearchBtn) {\n                clearSearchBtn.addEventListener('click', function () {\n                    searchInput.value = '';\n                    searchInput.focus();\n                    applyFilters();\n                });\n            }\n\n            loadMoreBtn.addEventListener('click', function () {\n                visibleCount += increment;\n                render();\n            });\n\n            toggleClearButton();\n            fetchAllPages();\n        })();\n    <\/script>\n\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-29532","page","type-page","status-publish","hentry"],"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"_links":{"self":[{"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/pages\/29532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/comments?post=29532"}],"version-history":[{"count":24,"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/pages\/29532\/revisions"}],"predecessor-version":[{"id":29594,"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/pages\/29532\/revisions\/29594"}],"wp:attachment":[{"href":"https:\/\/josueleal.com\/pigov3\/wp-json\/wp\/v2\/media?parent=29532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}