{"id":9591,"date":"2026-02-25T23:06:12","date_gmt":"2026-02-26T03:06:12","guid":{"rendered":"https:\/\/petrolera.umsa.edu.bo\/?page_id=9591"},"modified":"2026-04-23T10:31:30","modified_gmt":"2026-04-23T14:31:30","slug":"comunicados","status":"publish","type":"page","link":"https:\/\/petrolera.umsa.edu.bo\/index.php\/comunicados\/","title":{"rendered":"Comunicados"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9591\" class=\"elementor elementor-9591\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cde4fdb e-flex e-con-boxed e-con e-parent\" data-id=\"cde4fdb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-80580fe e-con-full e-flex e-con e-child\" data-id=\"80580fe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2843f7f elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"2843f7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" 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\">COMUNICADOS<\/h2>\t\t\t\t<\/div>\n\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<div class=\"elementor-element elementor-element-06ccd4e e-flex e-con-boxed e-con e-parent\" data-id=\"06ccd4e\" 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-4c0b3e7 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"4c0b3e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" 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>En esta p\u00e1gina se publican todos los avisos y anuncios oficiales. Aqu\u00ed encontrar\u00e1s informaci\u00f3n actualizada sobre actividades, cambios, recordatorios y novedades importantes para la comunidad. Mantente atento a esta secci\u00f3n para no perderte ning\u00fan comunicado relevante.<\/p>\t\t\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<div class=\"elementor-element elementor-element-ed25b58 e-flex e-con-boxed e-con e-parent\" data-id=\"ed25b58\" 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-33271e8 elementor-widget elementor-widget-shortcode\" data-id=\"33271e8\" 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\"><style>\n#gdg6a044d8dd7ead {\n    width: 100%;\n    font-family: \"Encode Sans\", \"Segoe UI\", Arial, sans-serif;\n    background: transparent;\n    padding: 0;\n    margin: 0;\n}\n#gdg6a044d8dd7ead .gdg-wrap { width: 100% }\n\n#gdg6a044d8dd7ead .gdg-load { text-align:center; padding:60px 20px; color:#5a5e57; font-size:15px }\n#gdg6a044d8dd7ead .gdg-spin { width:44px; height:44px; border:3px solid #e8ebe3;\n                        border-top-color:#00453c; border-radius:50%;\n                        animation:gdgSpin_gdg6a044d8dd7ead .8s linear infinite; margin:0 auto 16px }\n@keyframes gdgSpin_gdg6a044d8dd7ead { to { transform: rotate(360deg) } }\n\n#gdg6a044d8dd7ead .gdg-grid { display:grid; grid-template-columns:repeat(var(--c,3),1fr);\n                        gap:16px; width:100%; padding:16px; box-sizing:border-box }\n\n#gdg6a044d8dd7ead .gdg-card { background:#fff; border-radius:14px; overflow:hidden; cursor:pointer;\n                        transition:transform .28s, box-shadow .28s; display:flex;\n                        flex-direction:column; border:1px solid #e8ebe3;\n                        animation:gdgIn_gdg6a044d8dd7ead .45s ease both }\n@keyframes gdgIn_gdg6a044d8dd7ead {\n    from { opacity:0; transform:translateY(16px) }\n    to   { opacity:1; transform:translateY(0) }\n}\n#gdg6a044d8dd7ead .gdg-card:hover { transform:translateY(-4px);\n                              box-shadow:0 8px 28px rgba(0,69,60,.14);\n                              z-index:2; position:relative }\n\n#gdg6a044d8dd7ead .gdg-head      { padding:16px 18px 12px; background:#00453c }\n#gdg6a044d8dd7ead .gdg-card-ttl  { font-weight:700; font-size:15px; color:#fff; line-height:1.4;\n                             margin:0 0 6px; display:-webkit-box; -webkit-line-clamp:3;\n                             -webkit-box-orient:vertical; overflow:hidden }\n#gdg6a044d8dd7ead .gdg-card-date { font-size:11px; color:#ffcc00; font-weight:500; letter-spacing:.04em }\n\n#gdg6a044d8dd7ead .gdg-img-wrap  { position:relative; overflow:hidden; flex:1;\n                             min-height:180px; max-height:220px; background:#e8ebe3 }\n#gdg6a044d8dd7ead .gdg-img-wrap img { width:100%; height:100%; object-fit:cover; display:block;\n                                transition:transform .28s, filter .28s }\n#gdg6a044d8dd7ead .gdg-card:hover .gdg-img-wrap img { transform:scale(1.05); filter:brightness(.87) }\n\n#gdg6a044d8dd7ead .gdg-foot { padding:14px 18px 16px; border-top:2px solid #ffcc00 }\n#gdg6a044d8dd7ead .gdg-desc { font-size:13px; color:#5a5e57; line-height:1.6; margin:0;\n                        display:-webkit-box; -webkit-line-clamp:3;\n                        -webkit-box-orient:vertical; overflow:hidden }\n#gdg6a044d8dd7ead .gdg-desc:empty::before { content:\"Ver comunicado \\2192\";\n                                      color:#00453c; font-weight:600; font-size:12.5px }\n\n#gdg6a044d8dd7ead .gdg-zoom,\n#gdg6a044d8dd7ead .gdg-car-zoom {\n    position:absolute; inset:0; margin:auto;\n    width:68px; height:68px; border-radius:50%;\n    background:rgba(255,255,255,.18); border:2px solid rgba(255,255,255,.6);\n    display:flex; align-items:center; justify-content:center;\n    color:#fff; font-size:38px; font-weight:300;\n    pointer-events:auto; cursor:pointer; z-index:5;\n    transition:transform .22s, background .22s;\n    text-shadow:0 1px 6px rgba(0,0,0,.4);\n}\n#gdg6a044d8dd7ead .gdg-card:hover .gdg-zoom,\n#gdg6a044d8dd7ead .gdg-car-inner:hover .gdg-car-zoom {\n    transform:scale(1.12); background:rgba(255,204,0,.35);\n    border-color:#ffcc00; color:#ffcc00;\n}\n\n#gdg6a044d8dd7ead .gdg-car-outer    { width:100%; position:relative }\n#gdg6a044d8dd7ead .gdg-car-win      { width:100%; overflow:hidden }\n#gdg6a044d8dd7ead .gdg-car-track    { display:flex; transition:transform .42s cubic-bezier(.4,0,.2,1);\n                                will-change:transform; align-items:stretch }\n#gdg6a044d8dd7ead .gdg-car-slide    { flex-shrink:0; box-sizing:border-box; padding:0 6px; display:flex }\n#gdg6a044d8dd7ead .gdg-car-slide:first-child { padding-left:0 }\n#gdg6a044d8dd7ead .gdg-car-slide:last-child  { padding-right:0 }\n#gdg6a044d8dd7ead .gdg-car-inner    { background:#fff; border-radius:14px; overflow:hidden;\n                                display:flex; flex-direction:column; width:100%; height:460px }\n#gdg6a044d8dd7ead .gdg-car-imgwrap  { position:relative; flex:0 0 285px; overflow:hidden }\n#gdg6a044d8dd7ead .gdg-car-img      { width:100%; height:285px; min-height:285px; max-height:285px;\n                                object-fit:cover; display:block; cursor:pointer;\n                                flex:0 0 285px; transition:filter .28s }\n#gdg6a044d8dd7ead .gdg-car-img:hover { filter:brightness(.88) }\n#gdg6a044d8dd7ead .gdg-car-info     { height:175px; min-height:175px; max-height:175px;\n                                padding:14px 18px 16px; background:#00453c; overflow:hidden;\n                                display:flex; flex-direction:column;\n                                justify-content:center; flex-shrink:0 }\n#gdg6a044d8dd7ead .gdg-car-ttl      { font-size:1.05rem; font-weight:700; color:#fff; margin:0 0 6px;\n                                line-height:1.3; display:-webkit-box; -webkit-line-clamp:2;\n                                -webkit-box-orient:vertical; overflow:hidden }\n#gdg6a044d8dd7ead .gdg-car-desc     { font-size:12.5px; color:rgba(255,255,255,.78); line-height:1.45;\n                                margin:0 0 6px; display:-webkit-box; -webkit-line-clamp:2;\n                                -webkit-box-orient:vertical; overflow:hidden }\n#gdg6a044d8dd7ead .gdg-car-date     { font-size:11px; color:#ffcc00; letter-spacing:.05em;\n                                font-weight:600; margin-top:auto }\n\n#gdg6a044d8dd7ead .gdg-arrow {\n    position:absolute; top:50%; transform:translateY(-50%); z-index:20;\n    background:none!important; border:none!important; outline:none!important;\n    box-shadow:none!important; -webkit-tap-highlight-color:transparent;\n    -webkit-appearance:none; appearance:none;\n    color:#ffcc00; font-size:52px; font-weight:900; line-height:1;\n    cursor:pointer; padding:0; margin:0;\n    text-shadow:0 2px 16px rgba(0,0,0,.85);\n    transition:color .18s, transform .18s;\n}\n#gdg6a044d8dd7ead .gdg-arrow:hover,\n#gdg6a044d8dd7ead .gdg-arrow:focus,\n#gdg6a044d8dd7ead .gdg-arrow:active,\n#gdg6a044d8dd7ead .gdg-arrow:focus-visible {\n    background:none!important; border:none!important;\n    outline:none!important; box-shadow:none!important;\n    color:#fff; transform:translateY(-50%) scale(1.2);\n}\n#gdg6a044d8dd7ead .gdg-arrow-prev { left:10px }\n#gdg6a044d8dd7ead .gdg-arrow-next { right:10px }\n\n#gdg6a044d8dd7ead .gdg-dots { display:flex; justify-content:center; gap:10px;\n                        margin-top:16px; padding:0 0 8px }\n#gdg6a044d8dd7ead .gdg-dot  { width:10px; height:10px; border-radius:50%; background:#e8ebe3;\n                        border:none!important; outline:none!important; box-shadow:none!important;\n                        -webkit-tap-highlight-color:transparent; appearance:none;\n                        cursor:pointer; padding:0; flex-shrink:0;\n                        transition:background .22s, transform .22s }\n#gdg6a044d8dd7ead .gdg-dot:hover,\n#gdg6a044d8dd7ead .gdg-dot:focus,\n#gdg6a044d8dd7ead .gdg-dot:active { background:#ffcc00!important; outline:none!important; box-shadow:none!important }\n#gdg6a044d8dd7ead .gdg-dot.on     { background:#00453c!important; transform:scale(1.35) }\n\n\/* \u2500\u2500 Modal \u2014 minimalista: solo imagen + bot\u00f3n cerrar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#gdg6a044d8dd7ead-m {\n    display:none; position:fixed; inset:0; z-index:99999;\n    background:rgba(0,0,0,.92);\n    overflow:hidden;\n    cursor:pointer;\n}\n#gdg6a044d8dd7ead-m .gdg-modal-inner {\n    display:flex; align-items:center; justify-content:center;\n    width:100%; height:100%;\n}\n#gdg6a044d8dd7ead-m .gdg-modal-img {\n    max-width:95vw; max-height:95vh;\n    object-fit:contain; display:block;\n    cursor:default;\n}\n#gdg6a044d8dd7ead-m .gdg-modal-meta { display:none }\n#gdg6a044d8dd7ead-m .gdg-nav        { display:none!important }\n#gdg6a044d8dd7ead-m .gdg-close {\n    position:fixed; top:14px; right:14px;\n    width:40px; height:40px; border-radius:50%;\n    background:rgba(255,255,255,.15);\n    border:1.5px solid rgba(255,255,255,.3);\n    color:#fff; font-size:22px;\n    cursor:pointer; z-index:100001;\n    display:flex; align-items:center; justify-content:center;\n    padding:0; box-sizing:border-box;\n    transition:background .2s, color .2s;\n}\n#gdg6a044d8dd7ead-m .gdg-close:hover { background:#fff; color:#000 }\n\n@media(max-width:900px){\n    #gdg6a044d8dd7ead .gdg-grid        { grid-template-columns:repeat(2,1fr)!important; padding:12px }\n    #gdg6a044d8dd7ead .gdg-car-inner   { height:380px }\n    #gdg6a044d8dd7ead .gdg-car-imgwrap { flex-basis:235px }\n    #gdg6a044d8dd7ead .gdg-car-img     { height:235px; min-height:235px; max-height:235px; flex:0 0 235px }\n    #gdg6a044d8dd7ead .gdg-car-info    { height:145px; min-height:145px; max-height:145px }\n    #gdg6a044d8dd7ead .gdg-arrow       { font-size:42px }\n}\n\n@media(max-width:560px){\n    #gdg6a044d8dd7ead .gdg-grid        { grid-template-columns:1fr!important; padding:10px; gap:12px }\n    #gdg6a044d8dd7ead .gdg-card        { width:100%; margin:0 auto }\n    #gdg6a044d8dd7ead .gdg-car-inner   { height:480px }\n    #gdg6a044d8dd7ead .gdg-car-imgwrap { flex-basis:298px }\n    #gdg6a044d8dd7ead .gdg-car-img     { height:298px; min-height:298px; max-height:298px; flex:0 0 298px }\n    #gdg6a044d8dd7ead .gdg-car-info    { height:182px; min-height:182px; max-height:182px }\n    #gdg6a044d8dd7ead .gdg-car-ttl     { font-size:1rem }\n    #gdg6a044d8dd7ead .gdg-arrow       { font-size:40px }\n    #gdg6a044d8dd7ead .gdg-arrow-prev  { left:6px }\n    #gdg6a044d8dd7ead .gdg-arrow-next  { right:6px }\n    #gdg6a044d8dd7ead-m .gdg-modal-img   { max-width:100%; max-height:100vh }\n    #gdg6a044d8dd7ead-m .gdg-close       { top:10px; right:10px; width:36px; height:36px; font-size:19px }\n}\n<\/style>\n<div id=\"gdg6a044d8dd7ead\">\n    <div class=\"gdg-load\">\n        <div class=\"gdg-spin\"><\/div>\n        <p>Cargando comunicados...<\/p>\n    <\/div>\n    <div class=\"gdg-wrap\"><\/div>\n<\/div>\n\n<div id=\"gdg6a044d8dd7ead-m\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Comunicado\"\n     style=\"display:none;position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.92);overflow:hidden;cursor:pointer\">\n    <button class=\"gdg-close\" aria-label=\"Cerrar\">&times;<\/button>\n    <div class=\"gdg-modal-inner\">\n        <img class=\"gdg-modal-img\" id=\"gdg6a044d8dd7ead-m-i\" alt=\"\">\n    <\/div>\n    <div class=\"gdg-modal-meta\" style=\"display:none\">\n        <h3 class=\"gdg-modal-ttl\"><\/h3>\n        <p  class=\"gdg-modal-desc\"><\/p>\n        <span class=\"gdg-modal-date\"><\/span>\n    <\/div>\n    <div class=\"gdg-nav\" style=\"display:none!important\">\n        <button class=\"gdg-mprev\">&#8592; Anterior<\/button>\n        <button class=\"gdg-mnext\">Siguiente &#8594;<\/button>\n    <\/div>\n<\/div><script>function gdgInit(G, F, K, LAYOUT, COLS) {\n\n    var con   = document.getElementById(G);\n    if (!con) return;\n    var wrap  = con.querySelector('.gdg-wrap');\n    var load  = con.querySelector('.gdg-load');\n    var loadp = load.querySelector('p');\n    var spin  = load.querySelector('.gdg-spin');\n\n    var mod  = document.getElementById(G + '-m');\n    var mimg = document.getElementById(G + '-m-i');\n    \/\/ meta\/nav nodes kept in DOM but never shown\n    var mttl = mod.querySelector('.gdg-modal-ttl');\n    var mdsc = mod.querySelector('.gdg-modal-desc');\n    var mdat = mod.querySelector('.gdg-modal-date');\n    var mnav = mod.querySelector('.gdg-nav');\n\n    var imgs = [];\n    var midx = 0;\n    var busy = false;\n\n    var CFG = {\n        thumbGrid     : 800,\n        thumbCarousel : 1400,\n        thumbModal    : 2000,\n        autoPlayMs    : 5000,\n        swipeThresh   : 50,\n        refreshMs     : 300000,\n        bpTablet      : 900,\n        bpMobile      : 560,\n    };\n\n    function stripExt(name) {\n        var exts = ['jpg','jpeg','png','gif','webp','bmp','svg'];\n        var dot  = name.lastIndexOf('.');\n        if (dot > -1 && exts.indexOf(name.substring(dot + 1).toLowerCase()) > -1) {\n            return name.substring(0, dot).trim();\n        }\n        return name.trim();\n    }\n\n    function parseName(name) {\n        var clean = stripExt(name);\n        var s = clean.indexOf('[');\n        var e = clean.indexOf(']');\n        if (s === 0 && e > 0) {\n            return { t: clean.substring(1, e).trim(), d: clean.substring(e + 1).trim() };\n        }\n        return { t: '', d: clean };\n    }\n\n    function thumbUrl(id, size) {\n        return 'https:\/\/drive.google.com\/thumbnail?id=' + encodeURIComponent(id) + '&sz=w' + size;\n    }\n\n    function formatDate(iso) {\n        if (!iso) return '';\n        try {\n            return new Date(iso).toLocaleDateString('es-ES', {\n                day: '2-digit', month: 'long', year: 'numeric'\n            });\n        } catch(e) { return ''; }\n    }\n\n    function visibleCols(maxCols) {\n        var w = window.innerWidth;\n        if (w <= CFG.bpMobile) return 1;\n        if (w <= CFG.bpTablet) return Math.min(2, maxCols);\n        return maxCols;\n    }\n\n    function el(tag, cls) {\n        var e = document.createElement(tag);\n        if (cls) e.className = cls;\n        return e;\n    }\n\n    function safeText(str) { return str ? String(str) : ''; }\n\n\n    \/\/ \u2500\u2500 API \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function fetchImgs() {\n        if (busy) return;\n        busy = true;\n\n        var q = encodeURIComponent(\n            \"'\" + F + \"' in parents and mimeType contains 'image\/' and trashed=false\"\n        );\n        var url = 'https:\/\/www.googleapis.com\/drive\/v3\/files'\n            + '?q='       + q\n            + '&key='     + encodeURIComponent(K)\n            + '&fields='  + encodeURIComponent('files(id,name,createdTime)')\n            + '&orderBy=' + encodeURIComponent('createdTime desc')\n            + '&pageSize=100';\n\n        fetch(url)\n            .then(function(r) {\n                if (!r.ok) throw new Error('HTTP ' + r.status);\n                return r.json();\n            })\n            .then(function(data) {\n                if (data.error) throw new Error(data.error.message);\n                load.style.display = 'none';\n                if (data.files && data.files.length) {\n                    imgs = data.files;\n                    LAYOUT === 'carousel' ? buildCarousel(imgs) : buildGrid(imgs);\n                } else {\n                    showEmpty();\n                }\n            })\n            .catch(function(e) { showError(e.message); })\n            .finally(function()  { busy = false; });\n    }\n\n    function showEmpty() {\n        spin.style.display = 'none';\n        loadp.textContent  = 'No hay comunicados disponibles.';\n        load.style.display = 'block';\n    }\n\n    function showError(msg) {\n        spin.style.display  = 'none';\n        loadp.style.color   = '#c0392b';\n        loadp.textContent   = 'Error al cargar los comunicados. Intente recargar la p\u00e1gina.';\n        load.style.display  = 'block';\n        console.warn('[gdrive_gallery]', msg);\n    }\n\n\n    \/\/ \u2500\u2500 Grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function buildGrid(files) {\n        wrap.innerHTML = '';\n        var grid = el('div', 'gdg-grid');\n        grid.style.setProperty('--c', visibleCols(COLS));\n        files.forEach(function(f, i) { grid.appendChild( makeGridCard(f, i) ); });\n        wrap.appendChild(grid);\n        window.addEventListener('resize', function() {\n            grid.style.setProperty('--c', visibleCols(COLS));\n        });\n    }\n\n    function makeGridCard(f, i) {\n        var p    = parseName(f.name);\n        var date = formatDate(f.createdTime);\n        var card = el('article', 'gdg-card');\n        card.style.animationDelay = (i % 12 * 55) + 'ms';\n        card.tabIndex = 0;\n\n        var head = el('div', 'gdg-head');\n        var ttl  = el('p',   'gdg-card-ttl');\n        ttl.textContent = safeText(p.t || p.d);\n        head.appendChild(ttl);\n        if (date) {\n            var dt = el('span', 'gdg-card-date');\n            dt.textContent = date;\n            head.appendChild(dt);\n        }\n\n        var iw  = el('div', 'gdg-img-wrap');\n        var img = el('img');\n        img.src     = thumbUrl(f.id, CFG.thumbGrid);\n        img.alt     = safeText(p.t || p.d);\n        img.loading = 'lazy';\n        img.onerror = function() { this.style.display = 'none'; };\n\n        var zm = el('div', 'gdg-zoom');\n        zm.textContent = '+';\n        zm.addEventListener('click', (function(n) {\n            return function(e) { e.stopPropagation(); openModal(n); };\n        }(i)));\n\n        iw.appendChild(img);\n        iw.appendChild(zm);\n\n        var foot = el('div', 'gdg-foot');\n        var desc = el('p',   'gdg-desc');\n        desc.textContent = safeText((p.t && p.d) ? p.d : '');\n        foot.appendChild(desc);\n\n        card.appendChild(head);\n        card.appendChild(iw);\n        card.appendChild(foot);\n\n        card.addEventListener('click', (function(n) {\n            return function() { openModal(n); };\n        }(i)));\n        card.addEventListener('keydown', (function(n) {\n            return function(e) {\n                if (e.key === 'Enter' || e.key === ' ') openModal(n);\n            };\n        }(i)));\n\n        return card;\n    }\n\n\n    \/\/ \u2500\u2500 Carousel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function buildCarousel(files) {\n        wrap.innerHTML = '';\n\n        var cols  = visibleCols(COLS);\n        var pct   = (100 \/ cols).toFixed(6);\n        var stops = Math.max(1, files.length - (cols - 1));\n        var cur   = 0;\n        var timer = null;\n\n        var outer = el('div', 'gdg-car-outer');\n        var win   = el('div', 'gdg-car-win');\n        var track = el('div', 'gdg-car-track');\n\n        files.forEach(function(f, i) {\n            track.appendChild( makeCarouselSlide(f, i, pct) );\n        });\n\n        var bPrev = el('button', 'gdg-arrow gdg-arrow-prev');\n        var bNext = el('button', 'gdg-arrow gdg-arrow-next');\n        bPrev.innerHTML = '&#10094;';  bPrev.setAttribute('aria-label', 'Anterior');\n        bNext.innerHTML = '&#10095;';  bNext.setAttribute('aria-label', 'Siguiente');\n        bPrev.addEventListener('click', function() { goTo(cur - 1); });\n        bNext.addEventListener('click', function() { goTo(cur + 1); });\n\n        var dotsRow = el('div', 'gdg-dots');\n        var dots    = [];\n        for (var di = 0; di < stops; di++) {\n            var dot = el('button', 'gdg-dot' + (di === 0 ? ' on' : ''));\n            dot.setAttribute('aria-label', 'Ir a ' + (di + 1));\n            dot.addEventListener('click', (function(n) {\n                return function() { goTo(n); };\n            }(di)));\n            dots.push(dot);\n            dotsRow.appendChild(dot);\n        }\n\n        function goTo(n) {\n            cur = ((n % stops) + stops) % stops;\n            track.style.transform = 'translateX(' + (-cur * pct) + '%)';\n            dots.forEach(function(d, i) { d.classList.toggle('on', i === cur); });\n        }\n\n        function startAuto() { timer = setInterval(function() { goTo(cur + 1); }, CFG.autoPlayMs); }\n        function stopAuto()  { clearInterval(timer); }\n        startAuto();\n        outer.addEventListener('mouseenter', stopAuto);\n        outer.addEventListener('mouseleave', startAuto);\n\n        var tx0 = 0;\n        win.addEventListener('touchstart', function(e) {\n            tx0 = e.touches[0].clientX;\n        }, { passive: true });\n        win.addEventListener('touchend', function(e) {\n            var dx = tx0 - e.changedTouches[0].clientX;\n            if (Math.abs(dx) > CFG.swipeThresh) goTo(dx > 0 ? cur + 1 : cur - 1);\n        }, { passive: true });\n\n        win.appendChild(track);\n        outer.appendChild(win);\n        outer.appendChild(bPrev);\n        outer.appendChild(bNext);\n        wrap.appendChild(outer);\n        wrap.appendChild(dotsRow);\n\n        var prevCols = cols;\n        window.addEventListener('resize', function() {\n            var nc = visibleCols(COLS);\n            if (nc !== prevCols) { prevCols = nc; stopAuto(); buildCarousel(files); }\n        });\n    }\n\n    function makeCarouselSlide(f, i, pct) {\n        var p    = parseName(f.name);\n        var date = formatDate(f.createdTime);\n\n        var slide = el('div', 'gdg-car-slide');\n        slide.style.width = pct + '%';\n\n        var inner = el('div', 'gdg-car-inner');\n        var iwrap = el('div', 'gdg-car-imgwrap');\n\n        var img = el('img', 'gdg-car-img');\n        img.src     = thumbUrl(f.id, CFG.thumbCarousel);\n        img.alt     = safeText(p.t || p.d);\n        img.loading = i === 0 ? 'eager' : 'lazy';\n        img.onerror = function() { this.style.display = 'none'; };\n        img.addEventListener('click', (function(n) {\n            return function() { openModal(n); };\n        }(i)));\n\n        var czm = el('div', 'gdg-car-zoom');\n        czm.textContent = '+';\n        czm.addEventListener('click', (function(n) {\n            return function(e) { e.stopPropagation(); openModal(n); };\n        }(i)));\n\n        iwrap.appendChild(img);\n        iwrap.appendChild(czm);\n\n        var info = el('div', 'gdg-car-info');\n        var ttl  = el('p',   'gdg-car-ttl');\n        ttl.textContent = safeText(p.t || p.d);\n        info.appendChild(ttl);\n\n        if (p.t && p.d) {\n            var dc = el('p', 'gdg-car-desc');\n            dc.textContent = safeText(p.d);\n            info.appendChild(dc);\n        }\n        if (date) {\n            var dt = el('span', 'gdg-car-date');\n            dt.textContent = date;\n            info.appendChild(dt);\n        }\n\n        inner.appendChild(iwrap);\n        inner.appendChild(info);\n        slide.appendChild(inner);\n        return slide;\n    }\n\n\n    \/\/ \u2500\u2500 Modal \u2014 solo imagen + bot\u00f3n cerrar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function openModal(i) {\n        midx = i;\n        var f = imgs[i];\n        if (!f) return;\n        mimg.src = thumbUrl(f.id, CFG.thumbModal);\n        mimg.alt = safeText(parseName(f.name).t || parseName(f.name).d);\n        mod.style.display            = 'block';\n        document.body.style.overflow = 'hidden';\n        mod.focus();\n    }\n\n    function closeModal() {\n        mod.style.display            = 'none';\n        document.body.style.overflow = '';\n        mimg.src = '';   \/\/ libera la imagen de la memoria\n    }\n\n    \/\/ Cerrar con bot\u00f3n X\n    mod.querySelector('.gdg-close').addEventListener('click', closeModal);\n\n    \/\/ Cerrar al hacer clic en el fondo (fuera de la imagen)\n    mod.addEventListener('click', function(e) {\n        if (e.target === mod || e.target === mod.querySelector('.gdg-modal-inner')) {\n            closeModal();\n        }\n    });\n\n    \/\/ La imagen no propaga el clic al fondo\n    mimg.addEventListener('click', function(e) { e.stopPropagation(); });\n\n    \/\/ Escape cierra\n    document.addEventListener('keydown', function(e) {\n        if (mod.style.display === 'block' && e.key === 'Escape') closeModal();\n    });\n\n\n    \/\/ \u2500\u2500 Arranque \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    fetchImgs();\n    setInterval(fetchImgs, CFG.refreshMs);\n}document.addEventListener(\"DOMContentLoaded\",function(){gdgInit(\"gdg6a044d8dd7ead\",\"1XQJinwOHfF-sWGFI7Kdqkxhu8GgBgWmY\",\"AIzaSyD15A4uWBC96tog0JzU9ca9ZFyUYE6U4CU\",\"grid\",4);});<\/script><\/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<div class=\"elementor-element elementor-element-074a36f e-flex e-con-boxed e-con e-parent\" data-id=\"074a36f\" 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-ffe3123 elementor-widget elementor-widget-shortcode\" data-id=\"ffe3123\" 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\"><style>\n#gdp6a044d8dd82bf {\n    width:100%; font-family:\"Encode Sans\",\"Segoe UI\",Arial,sans-serif;\n    background:transparent; padding:0; margin:0;\n}\n#gdp6a044d8dd82bf .gdp-wrap { width:100% }\n\n#gdp6a044d8dd82bf .gdp-load  { text-align:center; padding:60px 20px; color:#5a5e57; font-size:15px }\n#gdp6a044d8dd82bf .gdp-spin  { width:44px; height:44px; border:3px solid #e8ebe3;\n                         border-top-color:#00453c; border-radius:50%;\n                         animation:gdpSpin_gdp6a044d8dd82bf .8s linear infinite; margin:0 auto 16px }\n@keyframes gdpSpin_gdp6a044d8dd82bf { to { transform:rotate(360deg) } }\n\n#gdp6a044d8dd82bf .gdp-grid { display:grid;\n                        grid-template-columns:repeat(var(--c,3),1fr);\n                        gap:18px; width:100%; padding:16px; box-sizing:border-box }\n\n#gdp6a044d8dd82bf .gdp-card {\n    background:#fff; border-radius:14px; overflow:hidden; cursor:pointer;\n    transition:transform .28s, box-shadow .28s;\n    display:flex; flex-direction:column;\n    border:1px solid #e8ebe3;\n    animation:gdpIn_gdp6a044d8dd82bf .45s ease both;\n}\n@keyframes gdpIn_gdp6a044d8dd82bf {\n    from { opacity:0; transform:translateY(16px) }\n    to   { opacity:1; transform:translateY(0) }\n}\n#gdp6a044d8dd82bf .gdp-card:hover {\n    transform:translateY(-4px);\n    box-shadow:0 8px 28px rgba(0,69,60,.14);\n    z-index:2; position:relative;\n}\n\n#gdp6a044d8dd82bf .gdp-head      { padding:16px 18px 12px; background:#00453c; flex-shrink:0 }\n#gdp6a044d8dd82bf .gdp-card-ttl  {\n    font-weight:700; font-size:14.5px; color:#fff; line-height:1.4;\n    margin:0 0 6px; display:-webkit-box; -webkit-line-clamp:3;\n    -webkit-box-orient:vertical; overflow:hidden;\n}\n#gdp6a044d8dd82bf .gdp-card-date { font-size:11px; color:#ffcc00; font-weight:500; letter-spacing:.04em }\n\n#gdp6a044d8dd82bf .gdp-preview {\n    position:relative; overflow:hidden;\n    background:#f0f2ed; flex:1;\n    min-height:200px; max-height:240px;\n}\n#gdp6a044d8dd82bf .gdp-preview img {\n    width:100%; height:100%; object-fit:cover; display:block;\n    transition:transform .28s, filter .28s;\n}\n#gdp6a044d8dd82bf .gdp-card:hover .gdp-preview img {\n    transform:scale(1.04); filter:brightness(.82);\n}\n#gdp6a044d8dd82bf .gdp-preview-fallback {\n    width:100%; height:100%; display:flex; align-items:center;\n    justify-content:center; background:#e8ebe3; min-height:200px;\n}\n#gdp6a044d8dd82bf .gdp-preview-fallback svg { width:68px; height:68px; opacity:.35 }\n\n#gdp6a044d8dd82bf .gdp-overlay {\n    position:absolute; inset:0;\n    display:flex; align-items:center; justify-content:center; gap:12px;\n    background:rgba(0,29,25,0); transition:background .28s;\n}\n#gdp6a044d8dd82bf .gdp-card:hover .gdp-overlay { background:rgba(0,29,25,.48) }\n\n#gdp6a044d8dd82bf .gdp-btn-open {\n    display:flex; align-items:center; gap:6px;\n    padding:9px 18px; border-radius:50px;\n    background:#ffcc00; color:#002e28;\n    font-size:12.5px; font-weight:700; letter-spacing:.03em;\n    border:none; cursor:pointer; white-space:nowrap;\n    box-shadow:0 4px 14px rgba(0,0,0,.3);\n    opacity:0; transform:translateY(8px);\n    transition:opacity .25s, transform .25s, background .2s;\n}\n#gdp6a044d8dd82bf .gdp-card:hover .gdp-btn-open { opacity:1; transform:translateY(0) }\n#gdp6a044d8dd82bf .gdp-btn-open:hover { background:#fff }\n\n#gdp6a044d8dd82bf .gdp-foot { padding:12px 18px 14px; border-top:2px solid #ffcc00; flex-shrink:0 }\n#gdp6a044d8dd82bf .gdp-desc {\n    font-size:13px; color:#5a5e57; line-height:1.55; margin:0;\n    display:-webkit-box; -webkit-line-clamp:2;\n    -webkit-box-orient:vertical; overflow:hidden;\n}\n#gdp6a044d8dd82bf .gdp-desc:empty::before {\n    content:\"Ver comunicado \\2192\"; color:#00453c; font-weight:600; font-size:12.5px;\n}\n#gdp6a044d8dd82bf .gdp-badge {\n    display:inline-flex; align-items:center; gap:4px;\n    background:#f0f2ed; border-radius:20px;\n    padding:3px 10px; font-size:11px; font-weight:600;\n    color:#00453c; letter-spacing:.04em; margin-bottom:6px;\n}\n#gdp6a044d8dd82bf .gdp-badge svg { width:12px; height:12px }\n\n\/* \u2500\u2500 Carousel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#gdp6a044d8dd82bf .gdp-car-outer { width:100%; position:relative }\n#gdp6a044d8dd82bf .gdp-car-win   { width:100%; overflow:hidden }\n#gdp6a044d8dd82bf .gdp-car-track { display:flex; align-items:stretch;\n                             transition:transform .42s cubic-bezier(.4,0,.2,1);\n                             will-change:transform }\n#gdp6a044d8dd82bf .gdp-car-slide { flex-shrink:0; box-sizing:border-box; padding:0 6px; display:flex }\n#gdp6a044d8dd82bf .gdp-car-slide:first-child { padding-left:0 }\n#gdp6a044d8dd82bf .gdp-car-slide:last-child  { padding-right:0 }\n#gdp6a044d8dd82bf .gdp-car-inner {\n    background:#fff; border-radius:14px; overflow:hidden;\n    display:flex; flex-direction:column; width:100%; height:480px;\n    border:1px solid #e8ebe3;\n}\n#gdp6a044d8dd82bf .gdp-car-imgwrap { position:relative; flex:0 0 290px; overflow:hidden; background:#e8ebe3 }\n#gdp6a044d8dd82bf .gdp-car-img {\n    width:100%; height:290px; min-height:290px; max-height:290px;\n    object-fit:cover; display:block; cursor:pointer;\n    transition:transform .28s, filter .28s;\n}\n#gdp6a044d8dd82bf .gdp-car-inner:hover .gdp-car-img { transform:scale(1.03); filter:brightness(.85) }\n#gdp6a044d8dd82bf .gdp-car-inner:hover .gdp-btn-open { opacity:1; transform:translateY(0) }\n#gdp6a044d8dd82bf .gdp-car-fallback {\n    width:100%; height:290px; min-height:290px;\n    display:flex; align-items:center; justify-content:center; background:#e8ebe3;\n}\n#gdp6a044d8dd82bf .gdp-car-fallback svg { width:80px; height:80px; opacity:.3 }\n#gdp6a044d8dd82bf .gdp-car-info {\n    flex:1; padding:16px 18px; background:#00453c;\n    display:flex; flex-direction:column; justify-content:center; overflow:hidden;\n}\n#gdp6a044d8dd82bf .gdp-car-badge {\n    display:inline-flex; align-items:center; gap:5px;\n    background:rgba(255,255,255,.12); border-radius:20px;\n    padding:3px 10px; font-size:11px; font-weight:600;\n    color:#ffcc00; letter-spacing:.04em; margin-bottom:8px; width:fit-content;\n}\n#gdp6a044d8dd82bf .gdp-car-badge svg { width:11px; height:11px; fill:#ffcc00 }\n#gdp6a044d8dd82bf .gdp-car-ttl {\n    font-size:1rem; font-weight:700; color:#fff; margin:0 0 6px;\n    line-height:1.35; display:-webkit-box; -webkit-line-clamp:2;\n    -webkit-box-orient:vertical; overflow:hidden;\n}\n#gdp6a044d8dd82bf .gdp-car-desc {\n    font-size:12.5px; color:rgba(255,255,255,.75); line-height:1.45;\n    margin:0 0 8px; display:-webkit-box; -webkit-line-clamp:2;\n    -webkit-box-orient:vertical; overflow:hidden;\n}\n#gdp6a044d8dd82bf .gdp-car-date { font-size:11px; color:#ffcc00; letter-spacing:.05em; font-weight:600; margin-top:auto }\n#gdp6a044d8dd82bf .gdp-car-actions { display:flex; gap:8px; margin-top:10px; flex-wrap:wrap }\n#gdp6a044d8dd82bf .gdp-car-btn {\n    display:inline-flex; align-items:center; gap:5px;\n    padding:7px 14px; border-radius:50px; font-size:12px; font-weight:700;\n    cursor:pointer; border:none; transition:background .2s, color .2s; text-decoration:none;\n}\n#gdp6a044d8dd82bf .gdp-car-btn-primary   { background:#ffcc00; color:#002e28 }\n#gdp6a044d8dd82bf .gdp-car-btn-primary:hover { background:#fff }\n#gdp6a044d8dd82bf .gdp-car-btn-secondary {\n    background:rgba(255,255,255,.12); color:#fff;\n    border:1px solid rgba(255,255,255,.2)!important;\n}\n#gdp6a044d8dd82bf .gdp-car-btn-secondary:hover { background:rgba(255,255,255,.22) }\n\n#gdp6a044d8dd82bf .gdp-arrow {\n    position:absolute; top:45%; transform:translateY(-50%); z-index:20;\n    background:none!important; border:none!important; outline:none!important;\n    box-shadow:none!important; -webkit-appearance:none; appearance:none;\n    color:#ffcc00; font-size:52px; font-weight:900; line-height:1;\n    cursor:pointer; padding:0; margin:0;\n    text-shadow:0 2px 16px rgba(0,0,0,.85);\n    transition:color .18s, transform .18s;\n}\n#gdp6a044d8dd82bf .gdp-arrow:hover,\n#gdp6a044d8dd82bf .gdp-arrow:focus {\n    background:none!important; border:none!important;\n    outline:none!important; box-shadow:none!important;\n    color:#fff; transform:translateY(-50%) scale(1.2);\n}\n#gdp6a044d8dd82bf .gdp-arrow-prev { left:8px }\n#gdp6a044d8dd82bf .gdp-arrow-next { right:8px }\n\n#gdp6a044d8dd82bf .gdp-dots { display:flex; justify-content:center; gap:10px; margin-top:16px; padding-bottom:8px }\n#gdp6a044d8dd82bf .gdp-dot  {\n    width:10px; height:10px; border-radius:50%; background:#e8ebe3;\n    border:none!important; outline:none!important; box-shadow:none!important;\n    appearance:none; cursor:pointer; padding:0; flex-shrink:0;\n    transition:background .22s, transform .22s;\n}\n#gdp6a044d8dd82bf .gdp-dot:hover { background:#ffcc00!important }\n#gdp6a044d8dd82bf .gdp-dot.on    { background:#00453c!important; transform:scale(1.35) }\n\n\/* \u2500\u2500 Modal \u2014 solo iframe + bot\u00f3n X flotante \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#gdp6a044d8dd82bf-m {\n    display:none; position:fixed;\n    inset:0; z-index:99999;\n    background:#000;\n    overflow:hidden;\n}\n#gdp6a044d8dd82bf-m .gdp-pdf-frame {\n    position:absolute; inset:0;\n    width:100%; height:100%;\n    border:none; display:block;\n}\n#gdp6a044d8dd82bf-m .gdp-pdf-load {\n    position:absolute; inset:0;\n    background:#000;\n    display:flex; flex-direction:column;\n    align-items:center; justify-content:center;\n    color:#fff; font-size:15px; gap:16px; z-index:10;\n}\n#gdp6a044d8dd82bf-m .gdp-pdf-load .gdp-spin {\n    width:44px; height:44px; border:3px solid rgba(255,255,255,.15);\n    border-top-color:#ffcc00; border-radius:50%;\n    animation:gdpSpin_gdp6a044d8dd82bf .8s linear infinite;\n}\n#gdp6a044d8dd82bf-m .gdp-close {\n    position:fixed; top:14px; right:14px; z-index:100001;\n    width:40px; height:40px; border-radius:50%;\n    background:rgba(0,0,0,.55); border:1.5px solid rgba(255,255,255,.3);\n    color:#fff; font-size:20px; font-weight:400; line-height:1;\n    cursor:pointer; display:flex; align-items:center; justify-content:center;\n    padding:0; box-sizing:border-box;\n    transition:background .2s, color .2s;\n}\n#gdp6a044d8dd82bf-m .gdp-close:hover { background:#fff; color:#000 }\n\n@media(max-width:900px){\n    #gdp6a044d8dd82bf .gdp-grid       { grid-template-columns:repeat(2,1fr)!important; padding:12px }\n    #gdp6a044d8dd82bf .gdp-car-inner  { height:400px }\n    #gdp6a044d8dd82bf .gdp-car-imgwrap,\n    #gdp6a044d8dd82bf .gdp-car-img,\n    #gdp6a044d8dd82bf .gdp-car-fallback { height:240px!important; min-height:240px!important; max-height:240px!important; flex-basis:240px!important }\n    #gdp6a044d8dd82bf .gdp-arrow { font-size:42px }\n}\n@media(max-width:560px){\n    #gdp6a044d8dd82bf .gdp-grid       { grid-template-columns:1fr!important; padding:10px; gap:12px }\n    #gdp6a044d8dd82bf .gdp-car-inner  { height:500px }\n    #gdp6a044d8dd82bf .gdp-car-imgwrap,\n    #gdp6a044d8dd82bf .gdp-car-img,\n    #gdp6a044d8dd82bf .gdp-car-fallback { height:300px!important; min-height:300px!important; max-height:300px!important; flex-basis:300px!important }\n    #gdp6a044d8dd82bf .gdp-arrow-prev { left:4px }\n    #gdp6a044d8dd82bf .gdp-arrow-next { right:4px }\n    #gdp6a044d8dd82bf .gdp-arrow      { font-size:38px }\n    #gdp6a044d8dd82bf-m .gdp-close      { top:10px; right:10px; width:36px; height:36px; font-size:18px }\n}\n<\/style>\n<div id=\"gdp6a044d8dd82bf\">\n    <div class=\"gdp-load\">\n        <div class=\"gdp-spin\"><\/div>\n        <p>Cargando comunicados...<\/p>\n    <\/div>\n    <div class=\"gdp-wrap\"><\/div>\n<\/div>\n\n<div id=\"gdp6a044d8dd82bf-m\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Visor de comunicado\"\n     style=\"display:none;position:fixed;inset:0;z-index:99999;background:#000;overflow:hidden;\">\n    <button class=\"gdp-close\" aria-label=\"Cerrar\">&#10005;<\/button>\n    <div class=\"gdp-pdf-load\" id=\"gdp6a044d8dd82bf-m-loader\">\n        <div class=\"gdp-spin\"><\/div>\n        <span>Cargando PDF...<\/span>\n    <\/div>\n    <iframe class=\"gdp-pdf-frame\" id=\"gdp6a044d8dd82bf-m-frame\"\n        src=\"\" title=\"Visor PDF\" allowfullscreen loading=\"lazy\"\n        sandbox=\"allow-scripts allow-same-origin allow-popups allow-forms\">\n    <\/iframe>\n<\/div><script>function gdpInit(G, F, K, LAYOUT, COLS) {\n\n    var con = document.getElementById(G);\n    if (!con) return;\n    var wrap    = con.querySelector('.gdp-wrap');\n    var loadEl  = con.querySelector('.gdp-load');\n    var loadp   = loadEl.querySelector('p');\n    var spin    = loadEl.querySelector('.gdp-spin');\n\n    var mod     = document.getElementById(G + '-m');\n    var mframe  = document.getElementById(G + '-m-frame');\n    var mloader = document.getElementById(G + '-m-loader');\n\n    var pdfs = [];\n    var busy = false;\n\n    var CFG = {\n        thumbSize   : 800,\n        autoPlayMs  : 5000,\n        swipeThresh : 50,\n        refreshMs   : 300000,\n        bpTablet    : 900,\n        bpMobile    : 560,\n    };\n\n    \/\/ \u2500\u2500 Utilidades \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function stripPdf(name) { return name.replace(\/\\.pdf$\/i, '').trim(); }\n\n    function parseName(name) {\n        var clean = stripPdf(name);\n        var s = clean.indexOf('[');\n        var e = clean.indexOf(']');\n        if (s === 0 && e > 0) {\n            return { t: clean.substring(1, e).trim(), d: clean.substring(e + 1).trim() };\n        }\n        return { t: '', d: clean };\n    }\n\n    function thumbUrl(id) {\n        return 'https:\/\/drive.google.com\/thumbnail?id=' + encodeURIComponent(id) + '&sz=w' + CFG.thumbSize;\n    }\n\n    function viewerUrl(id) {\n        return 'https:\/\/drive.google.com\/file\/d\/' + encodeURIComponent(id) + '\/preview?rm=minimal';\n    }\n\n    function downloadUrl(id) {\n        return 'https:\/\/drive.google.com\/uc?export=download&id=' + encodeURIComponent(id);\n    }\n\n    function formatDate(iso) {\n        if (!iso) return '';\n        try {\n            return new Date(iso).toLocaleDateString('es-ES', {\n                day: '2-digit', month: 'long', year: 'numeric'\n            });\n        } catch(e) { return ''; }\n    }\n\n    function visibleCols(max) {\n        var w = window.innerWidth;\n        if (w <= CFG.bpMobile) return 1;\n        if (w <= CFG.bpTablet) return Math.min(2, max);\n        return max;\n    }\n\n    function el(tag, cls) {\n        var e = document.createElement(tag);\n        if (cls) e.className = cls;\n        return e;\n    }\n\n    function safeText(str) { return str ? String(str) : ''; }\n\n    function pdfIconSvg() {\n        var s = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n        s.setAttribute('viewBox', '0 0 64 64');\n        s.setAttribute('fill', 'none');\n        s.setAttribute('aria-hidden', 'true');\n        s.innerHTML = '<rect x=\"8\" y=\"4\" width=\"36\" height=\"48\" rx=\"4\" fill=\"#d1d8cc\"\/>'\n            + '<path d=\"M44 4l12 12H44V4z\" fill=\"#b8c0b4\"\/>'\n            + '<rect x=\"12\" y=\"34\" width=\"40\" height=\"22\" rx=\"3\" fill=\"#00453c\"\/>'\n            + '<text x=\"32\" y=\"50\" font-size=\"12\" font-weight=\"bold\" fill=\"#ffcc00\"'\n            + '      text-anchor=\"middle\" font-family=\"sans-serif\">PDF<\/text>'\n            + '<rect x=\"14\" y=\"20\" width=\"24\" height=\"2.5\" rx=\"1.25\" fill=\"#b8c0b4\"\/>'\n            + '<rect x=\"14\" y=\"25\" width=\"18\" height=\"2.5\" rx=\"1.25\" fill=\"#b8c0b4\"\/>';\n        return s;\n    }\n\n    \/\/ \u2500\u2500 \u00cdCONO \"VER PDF\" \u2014 flecha saliendo de un cuadro (abrir visor) \u2500\u2500\n    function eyeIconHtml() {\n        return '<svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\"'\n            + ' stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"'\n            + ' width=\"13\" height=\"13\" aria-hidden=\"true\">'\n            + '<path d=\"M11 3h6v6\"\/>'\n            + '<path d=\"M17 3l-8 8\"\/>'\n            + '<path d=\"M9 5H5a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2v-4\"\/>'\n            + '<\/svg>';\n    }\n\n    function dlIconHtml() {\n        return '<svg viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\"'\n            + ' stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"'\n            + ' width=\"13\" height=\"13\" aria-hidden=\"true\">'\n            + '<path d=\"M10 3v10\"\/>'\n            + '<path d=\"M6 9l4 4 4-4\"\/>'\n            + '<path d=\"M4 16h12\"\/>'\n            + '<\/svg>';\n    }\n\n\n    \/\/ \u2500\u2500 API \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function fetchPdfs() {\n        if (busy) return;\n        busy = true;\n\n        var q = encodeURIComponent(\n            \"'\" + F + \"' in parents\"\n            + \" and mimeType='application\/pdf'\"\n            + \" and trashed=false\"\n        );\n        var url = 'https:\/\/www.googleapis.com\/drive\/v3\/files'\n            + '?q='       + q\n            + '&key='     + encodeURIComponent(K)\n            + '&fields='  + encodeURIComponent('files(id,name,createdTime,size)')\n            + '&orderBy=' + encodeURIComponent('createdTime desc')\n            + '&pageSize=100';\n\n        fetch(url)\n            .then(function(r) {\n                if (!r.ok) throw new Error('HTTP ' + r.status);\n                return r.json();\n            })\n            .then(function(data) {\n                if (data.error) throw new Error(data.error.message);\n                loadEl.style.display = 'none';\n                if (data.files && data.files.length) {\n                    pdfs = data.files;\n                    wrap.innerHTML = '';\n                    LAYOUT === 'carousel' ? buildCarousel(pdfs) : buildGrid(pdfs);\n                } else {\n                    showEmpty();\n                }\n            })\n            .catch(function(e) {\n                showError();\n                console.warn('<p style=\"color:#c0392b;\">gdrive_pdf: se requieren folder_id y api_key.<\/p>', e.message);\n            })\n            .finally(function() { busy = false; });\n    }\n\n    function showEmpty() {\n        spin.style.display   = 'none';\n        loadp.textContent    = 'No hay comunicados disponibles.';\n        loadEl.style.display = 'block';\n    }\n\n    function showError() {\n        spin.style.display   = 'none';\n        loadp.style.color    = '#c0392b';\n        loadp.textContent    = 'Error al cargar los comunicados. Intente recargar la p\u00e1gina.';\n        loadEl.style.display = 'block';\n    }\n\n\n    \/\/ \u2500\u2500 Grid \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function buildGrid(files) {\n        var grid = el('div', 'gdp-grid');\n        grid.style.setProperty('--c', visibleCols(COLS));\n        files.forEach(function(f, i) { grid.appendChild(makeGridCard(f, i)); });\n        wrap.appendChild(grid);\n        window.addEventListener('resize', function() {\n            grid.style.setProperty('--c', visibleCols(COLS));\n        });\n    }\n\n    function makeGridCard(f, i) {\n        var p    = parseName(f.name);\n        var date = formatDate(f.createdTime);\n        var card = el('article', 'gdp-card');\n        card.style.animationDelay = (i % 12 * 60) + 'ms';\n        card.tabIndex = 0;\n\n        var head = el('div', 'gdp-head');\n        var ttl  = el('p',   'gdp-card-ttl');\n        ttl.textContent = safeText(p.t || p.d);\n        head.appendChild(ttl);\n        if (date) {\n            var dt = el('span', 'gdp-card-date');\n            dt.textContent = date;\n            head.appendChild(dt);\n        }\n\n        var preview = el('div', 'gdp-preview');\n        var img = el('img');\n        img.alt     = safeText(p.t || p.d);\n        img.loading = 'lazy';\n        img.style.cssText = 'width:100%;height:100%;object-fit:cover;display:block;';\n        img.onerror = function() {\n            this.style.display = 'none';\n            var fb = el('div', 'gdp-preview-fallback');\n            fb.appendChild(pdfIconSvg());\n            preview.insertBefore(fb, preview.firstChild);\n        };\n        img.src = thumbUrl(f.id);\n\n        var ov  = el('div', 'gdp-overlay');\n        var btn = el('button', 'gdp-btn-open');\n        btn.innerHTML = eyeIconHtml() + ' Abrir';\n        ov.appendChild(btn);\n        preview.appendChild(img);\n        preview.appendChild(ov);\n\n        var foot  = el('div', 'gdp-foot');\n        var badge = el('span', 'gdp-badge');\n        badge.innerHTML = '<svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">'\n            + '<path fill-rule=\"evenodd\" d=\"M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6'\n            + 'A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7'\n            + 'a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z\" clip-rule=\"evenodd\"\/><\/svg> PDF';\n        foot.appendChild(badge);\n\n        var desc = el('p', 'gdp-desc');\n        desc.textContent = safeText((p.t && p.d) ? p.d : '');\n        foot.appendChild(desc);\n\n        card.appendChild(head);\n        card.appendChild(preview);\n        card.appendChild(foot);\n\n        function open() { openModal(i); }\n        card.addEventListener('click', open);\n        btn.addEventListener('click', function(e) { e.stopPropagation(); open(); });\n        card.addEventListener('keydown', function(e) {\n            if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); open(); }\n        });\n\n        return card;\n    }\n\n\n    \/\/ \u2500\u2500 Carousel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function buildCarousel(files) {\n        wrap.innerHTML = '';\n\n        var cols  = visibleCols(COLS);\n        var pct   = (100 \/ cols).toFixed(6);\n        var stops = Math.max(1, files.length - (cols - 1));\n        var cur   = 0;\n        var timer = null;\n\n        var outer = el('div', 'gdp-car-outer');\n        var win   = el('div', 'gdp-car-win');\n        var track = el('div', 'gdp-car-track');\n\n        files.forEach(function(f, i) {\n            track.appendChild(makeCarouselSlide(f, i, pct));\n        });\n\n        var bPrev = el('button', 'gdp-arrow gdp-arrow-prev');\n        var bNext = el('button', 'gdp-arrow gdp-arrow-next');\n        bPrev.innerHTML = '&#10094;'; bPrev.setAttribute('aria-label', 'Anterior');\n        bNext.innerHTML = '&#10095;'; bNext.setAttribute('aria-label', 'Siguiente');\n        bPrev.addEventListener('click', function() { goTo(cur - 1); });\n        bNext.addEventListener('click', function() { goTo(cur + 1); });\n\n        var dotsRow = el('div', 'gdp-dots');\n        var dots    = [];\n        for (var di = 0; di < stops; di++) {\n            (function(n) {\n                var dot = el('button', 'gdp-dot' + (n === 0 ? ' on' : ''));\n                dot.setAttribute('aria-label', 'Ir a ' + (n + 1));\n                dot.addEventListener('click', function() { goTo(n); });\n                dots.push(dot);\n                dotsRow.appendChild(dot);\n            }(di));\n        }\n\n        function goTo(n) {\n            cur = ((n % stops) + stops) % stops;\n            track.style.transform = 'translateX(' + (-cur * pct) + '%)';\n            dots.forEach(function(d, i) { d.classList.toggle('on', i === cur); });\n        }\n\n        function startAuto() { timer = setInterval(function() { goTo(cur + 1); }, CFG.autoPlayMs); }\n        function stopAuto()  { clearInterval(timer); }\n        startAuto();\n        outer.addEventListener('mouseenter', stopAuto);\n        outer.addEventListener('mouseleave', startAuto);\n\n        var tx0 = 0;\n        win.addEventListener('touchstart', function(e) { tx0 = e.touches[0].clientX; }, { passive: true });\n        win.addEventListener('touchend', function(e) {\n            var dx = tx0 - e.changedTouches[0].clientX;\n            if (Math.abs(dx) > CFG.swipeThresh) goTo(dx > 0 ? cur + 1 : cur - 1);\n        }, { passive: true });\n\n        win.appendChild(track);\n        outer.appendChild(win);\n        outer.appendChild(bPrev);\n        outer.appendChild(bNext);\n        wrap.appendChild(outer);\n        wrap.appendChild(dotsRow);\n\n        var prevCols = cols;\n        window.addEventListener('resize', function() {\n            var nc = visibleCols(COLS);\n            if (nc !== prevCols) { prevCols = nc; stopAuto(); buildCarousel(files); }\n        });\n    }\n\n    function makeCarouselSlide(f, i, pct) {\n        var p    = parseName(f.name);\n        var date = formatDate(f.createdTime);\n\n        var slide = el('div', 'gdp-car-slide');\n        slide.style.width = pct + '%';\n\n        var inner = el('div', 'gdp-car-inner');\n        var iwrap = el('div', 'gdp-car-imgwrap');\n\n        var img = el('img', 'gdp-car-img');\n        img.alt     = safeText(p.t || p.d);\n        img.loading = i === 0 ? 'eager' : 'lazy';\n        img.onerror = function() {\n            this.style.display = 'none';\n            var fb = el('div', 'gdp-car-fallback');\n            fb.appendChild(pdfIconSvg());\n            iwrap.insertBefore(fb, iwrap.firstChild);\n        };\n        img.src = thumbUrl(f.id);\n\n        var ov  = el('div', 'gdp-overlay');\n        var btn = el('button', 'gdp-btn-open');\n        btn.innerHTML = eyeIconHtml() + ' Abrir';\n        ov.appendChild(btn);\n        iwrap.appendChild(img);\n        iwrap.appendChild(ov);\n\n        var info = el('div', 'gdp-car-info');\n        var ttl  = el('p',   'gdp-car-ttl');\n        ttl.textContent = safeText(p.t || p.d);\n        info.appendChild(ttl);\n\n        if (p.t && p.d) {\n            var dc = el('p', 'gdp-car-desc');\n            dc.textContent = safeText(p.d);\n            info.appendChild(dc);\n        }\n        if (date) {\n            var dt = el('span', 'gdp-car-date');\n            dt.textContent = date;\n            info.appendChild(dt);\n        }\n\n        var acts   = el('div', 'gdp-car-actions');\n        var btnVer = el('button', 'gdp-car-btn gdp-car-btn-primary');\n        btnVer.innerHTML = eyeIconHtml() + ' Abrir PDF';\n\n        var btnDl = el('a', 'gdp-car-btn gdp-car-btn-secondary');\n        btnDl.href      = downloadUrl(f.id);\n        btnDl.target    = '_blank';\n        btnDl.rel       = 'noopener noreferrer';\n        btnDl.innerHTML = dlIconHtml() + ' Descargar';\n\n        acts.appendChild(btnVer);\n        acts.appendChild(btnDl);\n        info.appendChild(acts);\n\n        inner.appendChild(iwrap);\n        inner.appendChild(info);\n        slide.appendChild(inner);\n\n        function open() { openModal(i); }\n        btn.addEventListener('click', function(e) { e.stopPropagation(); open(); });\n        btnVer.addEventListener('click', open);\n        img.addEventListener('click', open);\n\n        return slide;\n    }\n\n\n    \/\/ \u2500\u2500 Modal \u2014 iframe pantalla completa + X flotante \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    function openModal(i) {\n        var f = pdfs[i];\n        if (!f) return;\n\n        mloader.style.display = 'flex';\n        mframe.src = '';\n        setTimeout(function() { mframe.src = viewerUrl(f.id); }, 80);\n        mframe.onload = function() { mloader.style.display = 'none'; };\n\n        mod.style.display                       = 'block';\n        document.body.style.overflow            = 'hidden';\n        document.documentElement.style.overflow = 'hidden';\n        mod.focus();\n    }\n\n    function closeModal() {\n        mod.style.display                       = 'none';\n        document.body.style.overflow            = '';\n        document.documentElement.style.overflow = '';\n        mframe.src = 'about:blank';\n        setTimeout(function() { mframe.src = ''; }, 50);\n    }\n\n    mod.querySelector('.gdp-close').addEventListener('click', closeModal);\n\n    document.addEventListener('keydown', function(e) {\n        if (mod.style.display === 'block' && e.key === 'Escape') closeModal();\n    });\n\n\n    \/\/ \u2500\u2500 Arranque \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n    fetchPdfs();\n    setInterval(fetchPdfs, CFG.refreshMs);\n}document.addEventListener(\"DOMContentLoaded\",function(){gdpInit(\"gdp6a044d8dd82bf\",\"1-wlOaAp5tncLHIU8nP4oGEnCQBM-OPBo\",\"AIzaSyD15A4uWBC96tog0JzU9ca9ZFyUYE6U4CU\",\"grid\",4);});<\/script><\/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":"<p>COMUNICADOS En esta p\u00e1gina se publican todos los avisos y anuncios oficiales. Aqu\u00ed encontrar\u00e1s informaci\u00f3n actualizada sobre actividades, cambios, recordatorios [&hellip;]<\/p>\n","protected":false},"author":4,"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":"disabled","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-9591","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/pages\/9591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/comments?post=9591"}],"version-history":[{"count":22,"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/pages\/9591\/revisions"}],"predecessor-version":[{"id":10223,"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/pages\/9591\/revisions\/10223"}],"wp:attachment":[{"href":"https:\/\/petrolera.umsa.edu.bo\/index.php\/wp-json\/wp\/v2\/media?parent=9591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}