{"id":2985,"date":"2026-03-04T22:19:24","date_gmt":"2026-03-04T22:19:24","guid":{"rendered":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/?page_id=2985"},"modified":"2026-04-17T02:46:53","modified_gmt":"2026-04-17T02:46:53","slug":"normatividad","status":"publish","type":"page","link":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/normatividad\/","title":{"rendered":"Normatividad"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2985\" class=\"elementor elementor-2985\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8cd19b1 e-con-full e-flex e-con e-parent\" data-id=\"8cd19b1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t<div class=\"elementor-element elementor-element-b3fa6d3 e-con-full e-flex e-con e-child\" data-id=\"b3fa6d3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-41e51c3 elementor-widget elementor-widget-image\" data-id=\"41e51c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-content\/uploads\/elementor\/thumbs\/Secretaria-Planeacion-rerfhp945fapqnj82y1trhoqr7206qmji4q4ceu1yo.jpg\" title=\"Secretaria-Planeacion\" alt=\"Secretaria-Planeacion\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9d032b3 e-con-full e-flex e-con e-child\" data-id=\"9d032b3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31dfae4 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"31dfae4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-user-check\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2f184d elementor-widget elementor-widget-heading\" data-id=\"c2f184d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Normatividad<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed3dac3 elementor-widget elementor-widget-text-editor\" data-id=\"ed3dac3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"165\" data-end=\"613\">El marco legal del ordenamiento territorial en Colombia establece una visi\u00f3n integral del territorio que trasciende su dimensi\u00f3n f\u00edsica, incorporando enfoques multidimensionales que reconocen las din\u00e1micas sociales, econ\u00f3micas, ambientales y culturales. En este contexto, se promueve un enfoque diferencial que valora la diversidad \u00e9tnica y cultural del pa\u00eds, reconociendo las particularidades de los distintos grupos poblacionales y territoriales.<\/p><p data-start=\"615\" data-end=\"1105\">En esta secci\u00f3n se presenta el compendio del marco legal del ordenamiento territorial en Colombia, a partir de la Ley 388 de 1997, incluyendo las principales disposiciones normativas que han orientado la planificaci\u00f3n y gesti\u00f3n del territorio en el pa\u00eds.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4e14a3f e-con-full e-flex e-con e-parent\" data-id=\"4e14a3f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3273538 elementor-widget elementor-widget-heading\" data-id=\"3273538\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Recursos<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-180b9a2 elementor-widget elementor-widget-search\" data-id=\"180b9a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;pagination_type_options&quot;:&quot;previous_next&quot;,&quot;submit_trigger&quot;:&quot;click_submit&quot;,&quot;page_limit_settings&quot;:5}\" data-widget_type=\"search.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<search class=\"e-search hidden\" role=\"search\">\n\t\t\t<form class=\"e-search-form\" action=\"https:\/\/planeacion.narino.gov.co\/observatorio-pot\" method=\"get\">\n\n\t\t\t\t\n\t\t\t\t<label class=\"e-search-label\" for=\"search-180b9a2\">\n\t\t\t\t\t<span class=\"elementor-screen-only\">\n\t\t\t\t\t\tBuscar\t\t\t\t\t<\/span>\n\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-search\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"><\/path><\/svg>\t\t\t\t<\/label>\n\n\t\t\t\t<div class=\"e-search-input-wrapper\">\n\t\t\t\t\t<input id=\"search-180b9a2\" placeholder=\"Escribe para comenzar a buscar...\" class=\"e-search-input\" type=\"search\" name=\"s\" value=\"\" autocomplete=\"off\" role=\"combobox\" aria-autocomplete=\"list\" aria-expanded=\"false\" aria-controls=\"results-180b9a2\" aria-haspopup=\"listbox\">\n\t\t\t\t\t<i aria-hidden=\"true\" class=\"huge huge-delete-02\"><\/i>\t\t\t\t\t\t\t\t\t\t<output class=\"hide-pagination-numbers e-search-results-container hide-loader\" id=\"results-180b9a2\" aria-live=\"polite\" aria-atomic=\"true\" aria-label=\"Resultados de b\u00fasqueda\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"e-search-results\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/output>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<button class=\"e-search-submit  \" type=\"submit\">\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<span class=\"\">\n\t\t\t\t\t\tBuscar\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t<input type=\"hidden\" name=\"e_search_props\" value=\"180b9a2-2985\">\n\t\t\t<\/form>\n\t\t<\/search>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-941b95b elementor-hidden-mobile e-con-full elementor-hidden-desktop elementor-hidden-tablet e-flex e-con e-parent\" data-id=\"941b95b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t<div class=\"elementor-element elementor-element-c831311 e-con-full e-flex e-con e-child\" data-id=\"c831311\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9acf99e ha-card--top ha-card--tablet-top ha-card--mobile-top elementor-widget elementor-widget-ha-card happy-addon ha-card\" data-id=\"9acf99e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ha-card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\n\t\t<div class=\"ha-card-body\">\n\n\t\t\t<h2 class=\"ha-card-title\"><span style=\"font-family: &quot;Gill Sans Std Light&quot;;font-size: 23px\">KIT OT (Componente rural visi\u00f3n regional)<\/span><\/h2>\n\t\t\t\t\t\t\t<div class=\"ha-card-text\">\n\t\t\t\t\t<p><span style=\"font-family: &quot;Gill Sans Std&quot;;font-size: 14px\">Tiene como prop\u00f3sito dar una idea clara y pr\u00e1ctica sobre la elaboraci\u00f3n del componente rural de un Plan de Ordenamiento Territorial.<\/span><br><span style=\"font-weight: 700;font-family: &quot;Gill Sans Std semi Bold&quot;;font-size: 14px\"><br>Detalle<\/span><br><span style=\"font-weight: 700\">Fecha:&nbsp;<\/span>01-03-2026<br><span style=\"font-weight: 700\">Tem\u00e1tica:&nbsp;<\/span>Desarrollo rural<br><span style=\"font-weight: 700\">Creador:&nbsp;<\/span>Subsecretar\u00eda de Asistencia T\u00e9cnica<\/p>\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<a class=\"ha-btn\" href=\"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-content\/uploads\/2026\/03\/Normatividad-POT.pdf\" target=\"_blank\"><span class=\"ha-btn-text\">Ver mas<\/span><\/a>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c1a738 e-con-full e-flex e-con e-child\" data-id=\"3c1a738\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-612ab11 ha-card--top ha-card--tablet-top ha-card--mobile-top elementor-widget elementor-widget-ha-card happy-addon ha-card\" data-id=\"612ab11\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ha-card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\n\t\t<div class=\"ha-card-body\">\n\n\t\t\t<h2 class=\"ha-card-title\"><span style=\"font-family: &quot;Gill Sans Std Light&quot;;font-size: 23px\">KIT OT (Componente rural visi\u00f3n regional)<\/span><\/h2>\n\t\t\t\t\t\t\t<div class=\"ha-card-text\">\n\t\t\t\t\t<p><span style=\"font-family: &quot;Gill Sans Std&quot;;font-size: 14px\">Tiene como prop\u00f3sito dar una idea clara y pr\u00e1ctica sobre la elaboraci\u00f3n del componente rural de un Plan de Ordenamiento Territorial.<\/span><br><span style=\"font-weight: 700;font-family: &quot;Gill Sans Std semi Bold&quot;;font-size: 14px\"><br>Detalle<\/span><br><span style=\"font-weight: 700\">Fecha:&nbsp;<\/span>01-03-2026<br><span style=\"font-weight: 700\">Tem\u00e1tica:&nbsp;<\/span>Desarrollo rural<br><span style=\"font-weight: 700\">Creador:&nbsp;<\/span>Subsecretar\u00eda de Asistencia T\u00e9cnica<\/p>\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<a class=\"ha-btn\" href=\"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-content\/uploads\/2026\/03\/Normatividad-POT.pdf\" target=\"_blank\"><span class=\"ha-btn-text\">Ver mas<\/span><\/a>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-31039f2 e-con-full e-flex e-con e-child\" data-id=\"31039f2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6416d1b ha-card--top ha-card--tablet-top ha-card--mobile-top elementor-widget elementor-widget-ha-card happy-addon ha-card\" data-id=\"6416d1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ha-card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\n\t\t<div class=\"ha-card-body\">\n\n\t\t\t<h2 class=\"ha-card-title\"><span style=\"font-family: &quot;Gill Sans Std Light&quot;;font-size: 23px\">KIT OT (Componente rural visi\u00f3n regional)<\/span><\/h2>\n\t\t\t\t\t\t\t<div class=\"ha-card-text\">\n\t\t\t\t\t<p><span style=\"font-family: &quot;Gill Sans Std&quot;;font-size: 14px\">Tiene como prop\u00f3sito dar una idea clara y pr\u00e1ctica sobre la elaboraci\u00f3n del componente rural de un Plan de Ordenamiento Territorial.<\/span><br><span style=\"font-weight: 700;font-family: &quot;Gill Sans Std semi Bold&quot;;font-size: 14px\"><br>Detalle<\/span><br><span style=\"font-weight: 700\">Fecha:&nbsp;<\/span>01-03-2026<br><span style=\"font-weight: 700\">Tem\u00e1tica:&nbsp;<\/span>Desarrollo rural<br><span style=\"font-weight: 700\">Creador:&nbsp;<\/span>Subsecretar\u00eda de Asistencia T\u00e9cnica<\/p>\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<a class=\"ha-btn\" href=\"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-content\/uploads\/2026\/03\/Normatividad-POT.pdf\" target=\"_blank\"><span class=\"ha-btn-text\">Ver mas<\/span><\/a>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-15f6b3b e-con-full e-flex e-con e-child\" data-id=\"15f6b3b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-662f1d2 ha-card--top ha-card--tablet-top ha-card--mobile-top elementor-widget elementor-widget-ha-card happy-addon ha-card\" data-id=\"662f1d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ha-card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\n\t\t<div class=\"ha-card-body\">\n\n\t\t\t<h2 class=\"ha-card-title\"><span style=\"font-family: &quot;Gill Sans Std Light&quot;;font-size: 23px\">KIT OT (Componente rural visi\u00f3n regional)<\/span><\/h2>\n\t\t\t\t\t\t\t<div class=\"ha-card-text\">\n\t\t\t\t\t<p><span style=\"font-family: &quot;Gill Sans Std&quot;;font-size: 14px\">Tiene como prop\u00f3sito dar una idea clara y pr\u00e1ctica sobre la elaboraci\u00f3n del componente rural de un Plan de Ordenamiento Territorial.<\/span><br><span style=\"font-weight: 700;font-family: &quot;Gill Sans Std semi Bold&quot;;font-size: 14px\"><br>Detalle<\/span><br><span style=\"font-weight: 700\">Fecha:&nbsp;<\/span>01-03-2026<br><span style=\"font-weight: 700\">Tem\u00e1tica:&nbsp;<\/span>Desarrollo rural<br><span style=\"font-weight: 700\">Creador:&nbsp;<\/span>Subsecretar\u00eda de Asistencia T\u00e9cnica<\/p>\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<a class=\"ha-btn\" href=\"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-content\/uploads\/2026\/03\/Normatividad-POT.pdf\" target=\"_blank\"><span class=\"ha-btn-text\">Ver mas<\/span><\/a>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fd55002 e-con-full e-flex e-con e-parent\" data-id=\"fd55002\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cef8032 elementor-widget elementor-widget-shortcode\" data-id=\"cef8032\" 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\">        <div id=\"opotNormLocal_IyHaCd\" class=\"opot-wrap\">\n            <div class=\"opot-filters-box\">\n                <div class=\"opot-search-line\">\n                    <input type=\"text\" class=\"opot-search\" placeholder=\"Busca por palabras clave\">\n                <\/div>\n\n                <div class=\"opot-filter-grid\">\n                    <div class=\"opot-filter-col\">\n                        <label>Tem\u00e1tica<\/label>\n                        <select class=\"opot-filter\" data-key=\"tematica\">\n                            <option value=\"\">Todas<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"opot-filter-col\">\n                        <label>Creador<\/label>\n                        <select class=\"opot-filter\" data-key=\"creador\">\n                            <option value=\"\">Todos<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"opot-filter-col\">\n                        <label>A\u00f1o<\/label>\n                        <select class=\"opot-filter\" data-key=\"anio\">\n                            <option value=\"\">Todos<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"opot-filter-col\">\n                        <label>Tipo de norma<\/label>\n                        <select class=\"opot-filter\" data-key=\"tipo_norma\">\n                            <option value=\"\">Todos<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"opot-filter-col opot-clear-col\">\n                        <button type=\"button\" class=\"opot-clear\">Limpiar<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"opot-results-bar\">\n                <div class=\"opot-results-left\">\n                    <span class=\"opot-total-results\"><strong class=\"opot-visible-count\">0<\/strong> recursos<\/span>\n                    <span class=\"opot-view-by\">\n                        Ver:\n                        <button type=\"button\" class=\"opot-size active\" data-size=\"6\">6<\/button>\n                        <button type=\"button\" class=\"opot-size\" data-size=\"8\">8<\/button>\n                        <button type=\"button\" class=\"opot-size\" data-size=\"16\">16<\/button>\n                        <button type=\"button\" class=\"opot-size\" data-size=\"32\">32<\/button>\n                    <\/span>\n                <\/div>\n\n                <div class=\"opot-results-right\">\n                    <label>Ordenar por:<\/label>\n                    <select class=\"opot-sort\">\n                        <option value=\"fecha_desc\">M\u00e1s reciente<\/option>\n                        <option value=\"fecha_asc\">M\u00e1s antiguo<\/option>\n                        <option value=\"titulo_asc\">A-Z<\/option>\n                        <option value=\"titulo_desc\">Z-A<\/option>\n                    <\/select>\n                <\/div>\n            <\/div>\n\n            <div class=\"opot-loading\">Cargando normatividad...<\/div>\n            <div class=\"opot-card-grid\"><\/div>\n\n            <div class=\"opot-empty\" style=\"display:none;\">\n                <h3>No se encontraron resultados.<\/h3>\n                <p>Pruebe con otro t\u00e9rmino o limpie los filtros.<\/p>\n            <\/div>\n\n            <div class=\"opot-pagination\"><\/div>\n        <\/div>\n\n        <script>\n        (function(){\n            const root = document.getElementById('opotNormLocal_IyHaCd');\n            if (!root) return;\n\n            const ajaxUrl = \"https:\\\/\\\/planeacion.narino.gov.co\\\/observatorio-pot\\\/wp-admin\\\/admin-ajax.php\";\n\n            const searchEl = root.querySelector('.opot-search');\n            const filterEls = root.querySelectorAll('.opot-filter');\n            const clearBtn = root.querySelector('.opot-clear');\n            const sortEl = root.querySelector('.opot-sort');\n            const gridEl = root.querySelector('.opot-card-grid');\n            const emptyEl = root.querySelector('.opot-empty');\n            const loadingEl = root.querySelector('.opot-loading');\n            const pagEl = root.querySelector('.opot-pagination');\n            const visibleCountEl = root.querySelector('.opot-visible-count');\n            const sizeBtns = root.querySelectorAll('.opot-size');\n\n            let currentPage = 1;\n            let pageSize = 6;\n            let filtersLoaded = false;\n\n            function esc(text) {\n                const d = document.createElement('div');\n                d.textContent = text || '';\n                return d.innerHTML;\n            }\n\n            function setOptions(select, values, placeholder) {\n                const current = select.value || '';\n                select.innerHTML = '';\n\n                const first = document.createElement('option');\n                first.value = '';\n                first.textContent = placeholder;\n                select.appendChild(first);\n\n                (values || []).forEach(v => {\n                    const op = document.createElement('option');\n                    op.value = v;\n                    op.textContent = v;\n                    if (String(current) === String(v)) op.selected = true;\n                    select.appendChild(op);\n                });\n            }\n\n            function detectIcon(type) {\n                const map = {\n                    'Ley': '\u2696\ufe0f',\n                    'Decreto': '\ud83d\udcdc',\n                    'Resoluci\u00f3n': '\ud83e\uddfe',\n                    'Acuerdo': '\ud83e\udd1d',\n                    'Circular': '\ud83d\udce9',\n                    'Ordenanza': '\ud83c\udfdb\ufe0f',\n                    'Sentencia': '\ud83e\uddd1\u200d\u2696\ufe0f',\n                    'CONPES': '\ud83d\udcd8',\n                    'Normatividad': '\ud83d\udcc4'\n                };\n                return map[type] || '\ud83d\udcc4';\n            }\n\n            function parseKeywords(raw) {\n                if (!raw) return [];\n                let text = String(raw).trim();\n                if (!text) return [];\n\n                try {\n                    const parsed = JSON.parse(text);\n                    if (Array.isArray(parsed)) {\n                        return parsed.map(v => String(v).trim()).filter(Boolean);\n                    }\n                } catch (e) {}\n\n                text = text.replace(\/^\\[|\\]$\/g, '');\n                return text\n                    .split(',')\n                    .map(v => v.replace(\/^\"+|\"+$\/g, '').trim())\n                    .filter(Boolean);\n            }\n\n            function keywordClass(index) {\n                const classes = [\n                    'opot-tag tag-green',\n                    'opot-tag tag-blue',\n                    'opot-tag tag-purple',\n                    'opot-tag tag-pink',\n                    'opot-tag tag-cyan',\n                    'opot-tag tag-orange'\n                ];\n                return classes[index % classes.length];\n            }\n\n            function buildParams() {\n                const params = new URLSearchParams();\n                params.set('action', 'opot_norm_list_local');\n                params.set('page_num', String(currentPage));\n                params.set('per_page', String(pageSize));\n                params.set('search', searchEl.value || '');\n                params.set('order', sortEl.value || 'fecha_desc');\n\n                filterEls.forEach(el => {\n                    params.set(el.dataset.key, el.value || '');\n                });\n\n                return params.toString();\n            }\n\n            async function loadData() {\n                loadingEl.style.display = 'block';\n                gridEl.innerHTML = '';\n                emptyEl.style.display = 'none';\n                pagEl.innerHTML = '';\n\n                try {\n                    const res = await fetch(ajaxUrl + '?' + buildParams(), {\n                        credentials: 'same-origin'\n                    });\n\n                    const json = await res.json();\n\n                    if (!json || !json.success) {\n                        throw new Error('No fue posible cargar la normatividad.');\n                    }\n\n                    const data = json.data || {};\n                    const items = Array.isArray(data.items) ? data.items : [];\n                    const total = Number(data.total || 0);\n                    const totalPages = Number(data.total_pages || 1);\n                    const filters = data.filters || {};\n\n                    visibleCountEl.textContent = String(total);\n\n                    if (!filtersLoaded) {\n                        root.querySelectorAll('.opot-filter').forEach(select => {\n                            const key = select.dataset.key;\n                            if (key === 'tematica') setOptions(select, filters.tematicas || [], 'Todas');\n                            if (key === 'creador') setOptions(select, filters.creadores || [], 'Todos');\n                            if (key === 'anio') setOptions(select, filters.anios || [], 'Todos');\n                            if (key === 'tipo_norma') setOptions(select, filters.tipos || [], 'Todos');\n                        });\n                        filtersLoaded = true;\n                    }\n\n                    if (!items.length) {\n                        emptyEl.style.display = 'block';\n                    } else {\n                        renderCards(items);\n                    }\n\n                    renderPagination(totalPages);\n                } catch (e) {\n                    emptyEl.style.display = 'block';\n                    emptyEl.innerHTML = '<h3>Error<\/h3><p>' + esc(e.message || 'No fue posible cargar la informaci\u00f3n.') + '<\/p>';\n                } finally {\n                    loadingEl.style.display = 'none';\n                }\n            }\n\n            function renderCards(items) {\n                gridEl.innerHTML = '';\n\n                items.forEach(item => {\n                    const icon = detectIcon(item.tipo_norma || 'Normatividad');\n                    const desc = item.descripcion && item.descripcion.trim() !== ''\n                        ? item.descripcion\n                        : 'Documento normativo disponible para consulta.';\n\n                    const href = item.url && item.url.trim() !== '' ? item.url : '#';\n\n                    let fecha = item.fecha || 'No disponible';\n                    if (fecha && fecha !== 'No disponible') {\n                        const parts = String(fecha).split('-');\n                        if (parts.length === 3) {\n                            fecha = parts[2] + '-' + parts[1] + '-' + parts[0];\n                        }\n                    }\n\n                    const keywords = parseKeywords(item.palabras_clave);\n\n                    const tagHtml = keywords.length\n                        ? keywords.map((tag, idx) => `<span class=\"${keywordClass(idx)}\">${esc(tag)}<\/span>`).join('')\n                        : [\n                            item.tematica ? `<span class=\"opot-tag tag-green\">${esc(item.tematica)}<\/span>` : '',\n                            item.nivel ? `<span class=\"opot-tag tag-blue\">${esc(item.nivel)}<\/span>` : ''\n                        ].join('');\n\n                    const card = document.createElement('article');\n                    card.className = 'opot-card';\n\n                    card.innerHTML = `\n                        <div class=\"opot-card-head\">${esc(item.tipo_norma || 'Normatividad')} \u203a<\/div>\n                        <div class=\"opot-card-body\">\n                            <h3 class=\"opot-card-title\">${esc(icon)} ${esc(item.titulo || 'Sin t\u00edtulo')}<\/h3>\n                            <div class=\"opot-divider\"><\/div>\n                            <p class=\"opot-card-desc\">${esc(desc)}<\/p>\n                            <div class=\"opot-card-detail-title\">Detalle<\/div>\n                            <ul class=\"opot-meta\">\n                                <li><strong>Fecha:<\/strong> ${esc(fecha)}<\/li>\n                                <li><strong>Tem\u00e1tica:<\/strong> ${esc(item.tematica || 'No disponible')}<\/li>\n                                <li><strong>Creador:<\/strong> ${esc(item.creador || 'No disponible')}<\/li>\n                            <\/ul>\n                            <a class=\"opot-btn-more\" href=\"${esc(href)}\" target=\"_blank\" rel=\"noopener noreferrer\">Ver m\u00e1s<\/a>\n                        <\/div>\n                        <div class=\"opot-tags\">${tagHtml}<\/div>\n                    `;\n\n                    gridEl.appendChild(card);\n                });\n            }\n\n            function renderPagination(totalPages) {\n                pagEl.innerHTML = '';\n                if (totalPages <= 1) return;\n\n                const prev = document.createElement('button');\n                prev.type = 'button';\n                prev.className = 'opot-page-btn';\n                prev.textContent = 'Anterior';\n                prev.disabled = currentPage === 1;\n                prev.onclick = () => {\n                    if (currentPage > 1) {\n                        currentPage--;\n                        loadData();\n                    }\n                };\n                pagEl.appendChild(prev);\n\n                let start = Math.max(1, currentPage - 2);\n                let end = Math.min(totalPages, currentPage + 2);\n\n                if (currentPage <= 2) end = Math.min(totalPages, 5);\n                if (currentPage >= totalPages - 1) start = Math.max(1, totalPages - 4);\n\n                for (let i = start; i <= end; i++) {\n                    const btn = document.createElement('button');\n                    btn.type = 'button';\n                    btn.className = 'opot-page-btn' + (i === currentPage ? ' active' : '');\n                    btn.textContent = i;\n                    btn.onclick = () => {\n                        currentPage = i;\n                        loadData();\n                    };\n                    pagEl.appendChild(btn);\n                }\n\n                const next = document.createElement('button');\n                next.type = 'button';\n                next.className = 'opot-page-btn';\n                next.textContent = 'Siguiente';\n                next.disabled = currentPage === totalPages;\n                next.onclick = () => {\n                    if (currentPage < totalPages) {\n                        currentPage++;\n                        loadData();\n                    }\n                };\n                pagEl.appendChild(next);\n            }\n\n            let timer = null;\n\n            searchEl.addEventListener('input', function(){\n                clearTimeout(timer);\n                timer = setTimeout(() => {\n                    currentPage = 1;\n                    loadData();\n                }, 300);\n            });\n\n            filterEls.forEach(el => {\n                el.addEventListener('change', function(){\n                    currentPage = 1;\n                    loadData();\n                });\n            });\n\n            sortEl.addEventListener('change', function(){\n                currentPage = 1;\n                loadData();\n            });\n\n            clearBtn.addEventListener('click', function(){\n                searchEl.value = '';\n                filterEls.forEach(el => el.value = '');\n                sortEl.value = 'fecha_desc';\n                currentPage = 1;\n                loadData();\n            });\n\n            sizeBtns.forEach(btn => {\n                btn.addEventListener('click', function(){\n                    sizeBtns.forEach(b => b.classList.remove('active'));\n                    btn.classList.add('active');\n                    pageSize = parseInt(btn.dataset.size || '6', 10);\n                    currentPage = 1;\n                    loadData();\n                });\n            });\n\n            loadData();\n        })();\n        <\/script>\n\n        <style>\n        #opotNormLocal_IyHaCd.opot-wrap{\n            --opot-green-head:#10A13B;\n            --opot-bg-soft:#f5f2ee;\n            --opot-border:#e7dfd4;\n            --opot-text:#43536a;\n            --opot-muted:#667085;\n            --opot-shadow:0 12px 28px rgba(0,0,0,.06);\n            width:100%;\n            margin:20px auto;\n            font-family:inherit;\n        }\n\n        #opotNormLocal_IyHaCd .opot-filters-box{\n            background:#fdd60c;\n            border-radius:18px;\n            padding:18px;\n            margin-bottom:22px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-search-line{\n            margin-bottom:14px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-search,\n        #opotNormLocal_IyHaCd .opot-filter,\n        #opotNormLocal_IyHaCd .opot-sort{\n            width:100%;\n            min-height:44px;\n            border:1px solid #d5d7da;\n            border-radius:8px;\n            background:#fff;\n            padding:0 14px;\n            outline:none;\n            transition:.2s ease;\n        }\n\n        #opotNormLocal_IyHaCd .opot-search:focus,\n        #opotNormLocal_IyHaCd .opot-filter:focus,\n        #opotNormLocal_IyHaCd .opot-sort:focus{\n            border-color:#10A13B;\n            box-shadow:0 0 0 3px rgba(16,161,59,.12);\n        }\n\n        #opotNormLocal_IyHaCd .opot-filter-grid{\n            display:grid;\n            grid-template-columns:repeat(5,minmax(0,1fr));\n            gap:12px;\n            align-items:end;\n        }\n\n        #opotNormLocal_IyHaCd .opot-filter-col label{\n            display:block;\n            font-size:.82rem;\n            font-weight:700;\n            margin-bottom:6px;\n            color:#3a4757;\n        }\n\n        #opotNormLocal_IyHaCd .opot-clear{\n            width:100%;\n            min-height:44px;\n            border:0;\n            border-radius:8px;\n            background:#fff;\n            color:#e05252;\n            font-weight:700;\n            cursor:pointer;\n            border:1px solid #f0d5d5;\n        }\n\n        #opotNormLocal_IyHaCd .opot-results-bar{\n            display:flex;\n            justify-content:space-between;\n            align-items:center;\n            gap:14px;\n            flex-wrap:wrap;\n            margin-bottom:18px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-results-left{\n            display:flex;\n            align-items:center;\n            gap:18px;\n            flex-wrap:wrap;\n            color:#6b7280;\n            font-size:.9rem;\n        }\n\n        #opotNormLocal_IyHaCd .opot-view-by{\n            display:inline-flex;\n            align-items:center;\n            gap:8px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-size{\n            min-width:34px;\n            height:34px;\n            border:1px solid #d7dce1;\n            background:#fff;\n            border-radius:8px;\n            color:#2c5aa0;\n            font-weight:700;\n            cursor:pointer;\n        }\n\n        #opotNormLocal_IyHaCd .opot-size.active{\n            color:#0f172a;\n            border-color:#10A13B;\n            background:#eefbf1;\n        }\n\n        #opotNormLocal_IyHaCd .opot-results-right{\n            display:flex;\n            align-items:center;\n            gap:8px;\n            color:#475467;\n            font-size:.9rem;\n        }\n\n        #opotNormLocal_IyHaCd .opot-loading{\n            text-align:center;\n            padding:16px;\n            color:#667085;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card-grid{\n            display:grid;\n            grid-template-columns:repeat(4,minmax(0,1fr));\n            gap:18px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card{\n            background:#ffffff00;\n            border:1px solid var(--opot-border);\n            border-radius:12px;\n            overflow:hidden;\n            box-shadow:var(--opot-shadow);\n            display:flex;\n            flex-direction:column;\n            min-height:100%;\n            transition:transform .18s ease, box-shadow .18s ease;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card:hover{\n            transform:translateY(-3px);\n            box-shadow:0 18px 34px rgba(0,0,0,.09);\n        }\n\n        #opotNormLocal_IyHaCd .opot-card-head{\n            background:var(--opot-green-head);\n            color:#fff;\n            font-weight:700;\n            font-size:.82rem;\n            padding:9px 12px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card-body{\n            padding:14px 12px 12px;\n            display:flex;\n            flex-direction:column;\n            flex:1;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card-title{\n            margin:0 0 12px;\n            font-size:1.06rem;\n            font-weight:600;\n            color:#42526b;\n            line-height:1.35;\n            min-height:58px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-divider{\n            height:1px;\n            background:#d8d8d8;\n            margin-bottom:14px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card-desc{\n            margin:0 0 14px;\n            font-size:.86rem;\n            color:#475467;\n            line-height:1.6;\n            min-height:110px;\n            overflow:visible;\n            display:block;\n            word-break:break-word;\n            overflow-wrap:anywhere;\n        }\n\n        #opotNormLocal_IyHaCd .opot-card-detail-title{\n            font-size:.84rem;\n            font-weight:700;\n            color:#111827;\n            margin-bottom:8px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-meta{\n            margin:0 0 14px 16px;\n            padding:0;\n            color:#1f2937;\n            font-size:.84rem;\n            line-height:1.5;\n            min-height:92px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-btn-more{\n            display:inline-flex;\n            align-items:center;\n            justify-content:center;\n            min-height:38px;\n            border:1px solid #c9c9c9;\n            border-radius:8px;\n            text-decoration:none;\n            color:#374151;\n            background:#fff;\n            font-size:.84rem;\n            font-weight:700;\n            margin-top:auto;\n            transition:.2s ease;\n        }\n\n        #opotNormLocal_IyHaCd .opot-btn-more:hover{\n            border-color:#10A13B;\n            color:#0d7c2d;\n            background:#f3fff6;\n        }\n\n        #opotNormLocal_IyHaCd .opot-tags{\n            display:flex;\n            flex-wrap:wrap;\n            gap:6px;\n            padding:0 12px 12px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-tag{\n            display:inline-flex;\n            align-items:center;\n            justify-content:center;\n            padding:5px 9px;\n            border-radius:999px;\n            font-size:.72rem;\n            font-weight:700;\n            color:#fff;\n        }\n\n        #opotNormLocal_IyHaCd .tag-green{ background:#21a366; }\n        #opotNormLocal_IyHaCd .tag-blue{ background:#3498db; }\n        #opotNormLocal_IyHaCd .tag-purple{ background:#8e44ad; }\n        #opotNormLocal_IyHaCd .tag-pink{ background:#f39ab5; }\n        #opotNormLocal_IyHaCd .tag-cyan{ background:#16a085; }\n        #opotNormLocal_IyHaCd .tag-orange{ background:#f39c12; }\n\n        #opotNormLocal_IyHaCd .opot-empty{\n            text-align:center;\n            padding:34px 20px;\n            background:#fafafa;\n            border:1px dashed #d0d5dd;\n            border-radius:12px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-pagination{\n            display:flex;\n            justify-content:center;\n            gap:6px;\n            flex-wrap:wrap;\n            margin-top:20px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-page-btn{\n            min-width:36px;\n            height:36px;\n            border:1px solid #d8dde3;\n            background:#fff;\n            color:#475467;\n            cursor:pointer;\n            padding:0 10px;\n            font-size:.88rem;\n            border-radius:8px;\n        }\n\n        #opotNormLocal_IyHaCd .opot-page-btn.active{\n            color:#0f172a;\n            font-weight:700;\n            border-color:#10A13B;\n            background:#eefbf1;\n        }\n\n        #opotNormLocal_IyHaCd .opot-page-btn[disabled]{\n            opacity:.45;\n            cursor:not-allowed;\n        }\n\n        @media (max-width:1100px){\n            #opotNormLocal_IyHaCd .opot-filter-grid{\n                grid-template-columns:repeat(2,minmax(0,1fr));\n            }\n            #opotNormLocal_IyHaCd .opot-card-grid{\n                grid-template-columns:repeat(2,minmax(0,1fr));\n            }\n        }\n\n        @media (max-width:767px){\n            #opotNormLocal_IyHaCd .opot-filter-grid{\n                grid-template-columns:1fr;\n            }\n            #opotNormLocal_IyHaCd .opot-card-grid{\n                grid-template-columns:1fr;\n            }\n            #opotNormLocal_IyHaCd .opot-results-bar{\n                align-items:stretch;\n            }\n        }\n        <\/style>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Normatividad El marco legal del ordenamiento territorial en Colombia establece una visi\u00f3n integral del territorio que trasciende su dimensi\u00f3n f\u00edsica, [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2985","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/pages\/2985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/comments?post=2985"}],"version-history":[{"count":181,"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/pages\/2985\/revisions"}],"predecessor-version":[{"id":3724,"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/pages\/2985\/revisions\/3724"}],"wp:attachment":[{"href":"https:\/\/planeacion.narino.gov.co\/observatorio-pot\/wp-json\/wp\/v2\/media?parent=2985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}