{"id":250,"date":"2026-08-07T11:02:34","date_gmt":"2026-08-07T14:02:34","guid":{"rendered":"https:\/\/freder.freepage.cc\/?page_id=250"},"modified":"2026-10-12T21:26:33","modified_gmt":"2026-10-13T00:26:33","slug":"fotografias","status":"publish","type":"page","link":"https:\/\/fredermemoriaviva.cl\/index.php\/fotografias\/","title":{"rendered":"Fotograf\u00edas"},"content":{"rendered":"\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"border-bottom-color:var(--wp--preset--color--accent-3);border-bottom-width:1px;min-height:170px;margin-top:0;margin-bottom:20px\">\n<div class=\"wp-block-group has-custom-css is-vertical is-nowrap is-layout-flex wp-container-core-group-is-layout-15d62ef2 wp-block-group-is-layout-flex wp-custom-css-e6567a48\">\n<h2 class=\"wp-block-heading has-accent-3-color has-text-color has-link-color has-roboto-slab-font-family wp-elements-1\" style=\"font-size:clamp(20px, 1.25rem + ((1vw - 3.2px) * 1.364), 32px);font-style:normal;font-weight:400\">Repositorio<\/h2>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-88a201c8 wp-block-group-is-layout-flex\" style=\"margin-top:-10px\">\n<p class=\"has-accent-3-color has-text-color has-link-color has-roboto-slab-font-family wp-elements-2 wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.682), 20px);font-style:normal;font-weight:300\"><a href=\"https:\/\/fredermemoriaviva.cl\/?page_id=248\" data-type=\"page\" data-id=\"248\">Documentos<\/a> \/<\/p>\n\n\n<h2 style=\"font-size:clamp(15.747px, 0.984rem + ((1vw - 3.2px) * 0.938), 24px);font-style:normal;font-weight:400\" class=\"has-link-color wp-elements-3 wp-block-post-title has-text-color has-accent-3-color has-roboto-slab-font-family\">Fotograf\u00edas<\/h2>\n\n\n<p class=\"has-accent-3-color has-text-color has-link-color has-roboto-slab-font-family wp-elements-4 wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.682), 20px);font-style:normal;font-weight:300\">\/ <a href=\"https:\/\/fredermemoriaviva.cl\/?page_id=252\" data-type=\"page\" data-id=\"252\">Videos<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-custom-css has-contrast-color has-text-color has-link-color has-merriweather-font-family wp-elements-5 wp-custom-css-6bc8ae52 wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.682), 20px);font-style:normal;font-weight:300\">Las fotograf\u00edas aqu\u00ed expuestas provienen del acervo hist\u00f3rico de la Fundaci\u00f3n Radio Escuela Para el Desarrollo Rural FREDER, instituci\u00f3n que las rescat\u00f3 y preserv\u00f3 como parte de su memoria documental.<\/p>\n\n\n\n<div class=\"wp-block-query is-layout-flow wp-block-query-is-layout-flow\"><ul class=\"wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow\"><li class=\"wp-block-post post-939 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias tematicas_generales-cartilla tematicas_generales-escuela-radiofonica-santa-clara palabras_clave-cartilla palabras_clave-desarrollo palabras_clave-osorno\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/Cartilla-educativa1-scaled.jpg\" \r\n     data-title=\"Cartilla Escuela Radiof\u00f3nica Santa Clara\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/Cartilla-educativa1-150x150.jpg\" alt=\"Cartilla Escuela Radiof\u00f3nica Santa Clara\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-883 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/Archivo-FREDER-fIRMA-CONVENIO-fREDER-mineduc-1977-scaled.jpg\" \r\n     data-title=\"Firma convenio FREDER-MINEDUC\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/Archivo-FREDER-fIRMA-CONVENIO-fREDER-mineduc-1977-150x150.jpg\" alt=\"Firma convenio FREDER-MINEDUC\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-881 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/50-anos-radio-La-Voz-de-la-Costa.jpg\" \r\n     data-title=\"50 a\u00f1os de la Voz de la Costa\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/50-anos-radio-La-Voz-de-la-Costa-150x150.jpg\" alt=\"50 a\u00f1os de la Voz de la Costa\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-878 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/45-anos-radio-La-Voz-de-la-Costa-1.jpg\" \r\n     data-title=\"45 a\u00f1os de La Voz de la Costa\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/45-anos-radio-La-Voz-de-la-Costa-1-150x150.jpg\" alt=\"45 a\u00f1os de La Voz de la Costa\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-754 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287700258.jpg\" \r\n     data-title=\"Don Juan Meul\u00e9n Tranayado en su estudio\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287700258-150x150.jpg\" alt=\"Don Juan Meul\u00e9n Tranayado en su estudio\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-752 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549081.jpg\" \r\n     data-title=\"Inauguraci\u00f3n muestra de Palin en el marco de Festival del Folclor Campesino\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549081-150x150.jpg\" alt=\"Inauguraci\u00f3n muestra de Palin en el marco de Festival del Folclor Campesino\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-750 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549062.jpg\" \r\n     data-title=\"Don Arturo Camiao en Festival del Folklor Campesino.\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549062-150x150.jpg\" alt=\"Don Arturo Camiao en Festival del Folklor Campesino.\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-748 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549042.jpg\" \r\n     data-title=\"Alejandra D\u00edaz y Leo Guti\u00e9rrez, trabajadores de FREDER\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549042-150x150.jpg\" alt=\"Alejandra D\u00edaz y Leo Guti\u00e9rrez, trabajadores de FREDER\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-746 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287700276.jpg\" \r\n     data-title=\"Salvador Rumi\u00e1n, haciendo su programa Folil Inchen\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287700276-150x150.jpg\" alt=\"Salvador Rumi\u00e1n, haciendo su programa Folil Inchen\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><li class=\"wp-block-post post-744 repositorio type-repositorio status-publish hentry categorias_repositorio-fotografias\">\n\r\n<!-- Tarjeta individual del bucle -->\r\n<div class=\"repo-photo-card\" \r\n     data-full=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549032.jpg\" \r\n     data-title=\"1783287549032\">\r\n    \r\n    <div class=\"repo-photo-thumb-wrapper\">\r\n        <img decoding=\"async\" src=\"https:\/\/fredermemoriaviva.cl\/wp-content\/uploads\/repositorio\/fotografias\/1783287549032-150x150.jpg\" alt=\"1783287549032\" class=\"repo-photo-thumb\" loading=\"lazy\" \/>\r\n        <div class=\"repo-photo-overlay-hover\">\r\n            <span>Ver foto<\/span>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    var fotoCard = document.querySelector('.repo-photo-card');\r\n    if (!fotoCard) return;\r\n\r\n    var ulPadre = fotoCard.closest('ul.wp-block-post-template');\r\n    if (!ulPadre) return;\r\n\r\n    ulPadre.classList.add('repo-photo-carousel-ul');\r\n\r\n    \/\/ 1. Crear Visor Principal Superior con Botones Laterales Integrados\r\n    if (!document.getElementById('repo-main-viewer-wrapper')) {\r\n        var viewerHTML = `\r\n            <div id=\"repo-main-viewer-wrapper\" class=\"repo-main-viewer-wrapper\">\r\n                <div class=\"repo-main-viewer-container\">\r\n                    <button type=\"button\" id=\"repo-main-prev\" class=\"repo-main-btn repo-main-btn-prev\" title=\"Anterior\">&#10094;<\/button>\r\n                    <img decoding=\"async\" id=\"repo-main-viewer-img\" src=\"\" alt=\"Vista Previa\" \/>\r\n                    <button type=\"button\" id=\"repo-main-next\" class=\"repo-main-btn repo-main-btn-next\" title=\"Siguiente\">&#10095;<\/button>\r\n                    <div id=\"repo-main-viewer-title\" class=\"repo-main-viewer-title\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n        ulPadre.insertAdjacentHTML('beforebegin', viewerHTML);\r\n\r\n        \/\/ Eventos para las flechas del visor principal\r\n        document.getElementById('repo-main-prev').addEventListener('click', function() {\r\n            navigateMainViewer(-1);\r\n        });\r\n\r\n        document.getElementById('repo-main-next').addEventListener('click', function() {\r\n            navigateMainViewer(1);\r\n        });\r\n\r\n        \/\/ Cargar primera imagen\r\n        var firstCard = ulPadre.querySelector('.repo-photo-card');\r\n        if (firstCard) {\r\n            updateMainViewer(firstCard);\r\n        }\r\n    }\r\n\r\n    \/\/ 2. Envolver el UL en contenedor de carrusel con botones de scroll\r\n    if (!ulPadre.parentElement.classList.contains('repo-carousel-wrapper')) {\r\n        var wrapper = document.createElement('div');\r\n        wrapper.className = 'repo-carousel-wrapper';\r\n        ulPadre.parentNode.insertBefore(wrapper, ulPadre);\r\n        \r\n        var btnPrev = document.createElement('button');\r\n        btnPrev.className = 'repo-carousel-btn repo-btn-prev';\r\n        btnPrev.innerHTML = '&#10094;';\r\n        btnPrev.type = 'button';\r\n\r\n        var btnNext = document.createElement('button');\r\n        btnNext.className = 'repo-carousel-btn repo-btn-next';\r\n        btnNext.innerHTML = '&#10095;';\r\n        btnNext.type = 'button';\r\n\r\n        wrapper.appendChild(btnPrev);\r\n        wrapper.appendChild(ulPadre);\r\n        wrapper.appendChild(btnNext);\r\n\r\n        btnPrev.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: -300, behavior: 'smooth' });\r\n        });\r\n\r\n        btnNext.addEventListener('click', function() {\r\n            ulPadre.scrollBy({ left: 300, behavior: 'smooth' });\r\n        });\r\n    }\r\n\r\n    \/\/ Funci\u00f3n para actualizar el visor, destacar la miniatura y hacer scroll autom\u00e1tico\r\n    function updateMainViewer(card) {\r\n        var fullSrc = card.getAttribute('data-full');\r\n        var titleText = card.getAttribute('data-title');\r\n        \r\n        var mainImg = document.getElementById('repo-main-viewer-img');\r\n        var mainTitle = document.getElementById('repo-main-viewer-title');\r\n        \r\n        if (mainImg) mainImg.src = fullSrc;\r\n        if (mainTitle) mainTitle.textContent = titleText;\r\n\r\n        \/\/ Quitar estado activo previo\r\n        document.querySelectorAll('.repo-photo-card').forEach(function(c) {\r\n            c.classList.remove('is-active');\r\n        });\r\n        card.classList.add('is-active');\r\n\r\n        \/\/ Asegurar que la miniatura activa quede visible en el carrusel\r\n        card.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n    }\r\n\r\n    \/\/ Navegaci\u00f3n (siguiente\/anterior) desde el visor principal\r\n    function navigateMainViewer(direction) {\r\n        var cards = Array.from(ulPadre.querySelectorAll('.repo-photo-card'));\r\n        if (!cards.length) return;\r\n\r\n        var currentIndex = cards.findIndex(function(c) {\r\n            return c.classList.contains('is-active');\r\n        });\r\n\r\n        if (currentIndex === -1) currentIndex = 0;\r\n\r\n        var newIndex = currentIndex + direction;\r\n\r\n        \/\/ Bucle infinito (opcional): si pasa la \u00faltima vuelve a la primera y viceversa\r\n        if (newIndex < 0) newIndex = cards.length - 1;\r\n        if (newIndex >= cards.length) newIndex = 0;\r\n\r\n        updateMainViewer(cards[newIndex]);\r\n    }\r\n\r\n    \/\/ Evento al cliquear miniaturas directamente\r\n    ulPadre.addEventListener('click', function(e) {\r\n        var card = e.target.closest('.repo-photo-card');\r\n        if (card) {\r\n            updateMainViewer(card);\r\n        }\r\n    });\r\n});\r\n<\/script>\n<\/li><\/ul>\n\n<nav class=\"wp-block-query-pagination is-layout-flex wp-block-query-pagination-is-layout-flex\" aria-label=\"Paginaci\u00f3n\">\n\n\n<div class=\"wp-block-query-pagination-numbers\"><span aria-current=\"page\" class=\"page-numbers current\">1<\/span>\n<a class=\"page-numbers\" href=\"?query-4-page=2\">2<\/a><\/div>\n\n<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/250?query-4-page=2\" class=\"wp-block-query-pagination-next\">P\u00e1gina siguiente<\/a>\n<\/nav>\n\n<\/div>\n\n\n\n<div style=\"height:170px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Repositorio Documentos \/ \/ Videos Las fotograf\u00edas aqu\u00ed expuestas provienen del acervo hist\u00f3rico de la Fundaci\u00f3n Radio Escuela Para el Desarrollo Rural FREDER, instituci\u00f3n que las rescat\u00f3 y preserv\u00f3 como parte de su memoria documental.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"p-gina-freder","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-250","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/pages\/250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/comments?post=250"}],"version-history":[{"count":12,"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/pages\/250\/revisions"}],"predecessor-version":[{"id":913,"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/pages\/250\/revisions\/913"}],"wp:attachment":[{"href":"https:\/\/fredermemoriaviva.cl\/index.php\/wp-json\/wp\/v2\/media?parent=250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}