Machine Readiness
Stored receipt and evidence
24
80
0
0
0
Samples
No stored offer samples.
Samples
No stored action samples.
Samples
No stored product samples.
Document
Not stored for this site.
Document
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Nuestro principal objetivo es brindar a todos los interesados en la actividad jurisdiccional se enteren en forma veraz y oportuna de los criterios y ejecutorias relevantes que han sostenido los Tribunales de alzada locales.">
<title>Poder Judicial del Estado de Sonora</title>
<link rel="icon" href="/images/Favicon.ico" type="image/x-icon">
<!-- Google Fonts - Roboto -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
<!-- Bootstrap Icons -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
<!-- Estilos -->
<link href="/css/main.css" rel="stylesheet" type="text/css">
<link href="/css/menu.css" rel="stylesheet" type="text/css">
<link href="/css/inline.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css">
<!-- Estilos responsivos migración -->
<link href="/css/miniupdate.css" rel="stylesheet" type="text/css">
<!-- jQuery y Bootstrap -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<!-- JS responsivo migración -->
<script src="/js/miniupdate.js"></script>
<!-- Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q05DM5DKDD"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Q05DM5DKDD');
</script>
</head>
<body>
<!-- Header móvil -->
<header class="mobile-header">
<button class="menu-toggle" id="menuToggle" aria-label="Abrir menu">
<i class="bi bi-list"></i>
</button>
<h1>Poder Judicial del Estado de Sonora</h1>
</header>
<!-- Overlay para cerrar sidebar -->
<div class="sidebar-overlay" id="sidebarOverlay"></div>
<div id="content">
<!-- ============ SIDEBAR IZQUIERDO ============ -->
<div id="left">
<div class="sidebar-header-green">
<div id="logo">
<div class="text-center">
<img src="/images/Logotipo-PJ.png" alt="Logotipo del Poder Judicial del Estado de Sonora">
</div>
</div>
<h2>PODER JUDICIAL DEL ESTADO DE SONORA</h2>
</div>
<aside class="side-menu" aria-label="Menu lateral">
<ul class="side-menu-list">
<!-- INSTITUCION -->
<li class="sm-section-title">Institucion</li>
<li><a class="sm-link" href="/Inicio"><i class="bi bi-house-door"></i> Inicio</a></li>
<li><a class="sm-link" href="/Vision"><i class="bi bi-eye"></i> Mision y Vision</a></li>
<li><a class="sm-link" href="/Institucion/Directorio"><i class="bi bi-people"></i> Directorio</a></li>
<li><a class="sm-link" href="/Institucion/Organigrama"><i class="bi bi-diagram-3"></i> Organigramas</a></li>
<li><a class="sm-link" href="/PlenoSTJ"><i class="bi bi-bank"></i> Pleno del STJ</a></li>
<li><a class="sm-link" href="/TribunalDisciplinaJudicial"><i class="bi bi-shield-check"></i> Tribunal de Disciplina Judicial</a></li>
<!-- CONSULTAS FRECUENTES -->
<li class="sm-section-title">Consultas Frecuentes</li>
<li><a class="sm-link sm-highlight" href="/Publicaciones/ListaAcuerdos"><i class="bi bi-card-checklist"></i> Lista de Acuerdos</a></li>
<li><a class="sm-link sm-highlight" href="/Publicaciones/Sentencias"><i class="bi bi-file-text"></i> Sentencias</a></li>
<li><a class="sm-link sm-highlight" href="https://adison.stjsonora.gob.mx/"><i class="bi bi-laptop"></i> Servicios en Linea <small>(ADISON)</small></a></li>
<!-- TRANSPARENCIA -->
<li class="sm-section-title">Transparencia</li>
<li><a class="sm-link" href="/Transparencia/"><i class="bi bi-columns-gap"></i> Portal de Transparencia</a></li>
<li><a class="sm-link" href="/Transparencia/EstadisticaMensual"><i class="bi bi-graph-up"></i> Estadisticas</a></li>
<!-- RECURSOS -->
<li class="sm-section-title">Recursos</li>
<li><a class="sm-link" href="/Biblioteca"><i class="bi bi-book"></i> Biblioteca Virtual</a></li>
<li><a class="sm-link" href="/Publicaciones"><i class="bi bi-file-earmark-text"></i> Publicaciones</a></li>
<li><a class="sm-link" href="/Transparencia/Servicios"><i class="bi bi-hand-index"></i> Servicios y Tramites</a></li>
<li><a class="sm-link" href="/SintesisInformativa"><i class="bi bi-newspaper"></i> Sintesis Informativa</a></li>
<li><a class="sm-link" href="/Ligas"><i class="bi bi-link-45deg"></i> Ligas de Interes</a></li>
</ul>
</aside>
<div>
<div id="appBody">
<div class="text-center">
</div>
</div>
<table width="235" class="text-center">
<tbody><tr>
<th scope="col">
<div class="text-center">
<!-- BOTON DESTACADO: BOLETIN INFORMATIVO -->
<a href="/Noticias" class="btn-boletines-xl" aria-label="Boletin Informativo">
<div class="bxl-left">
<img src="/images/logo_STJ_blanco.png" alt="Poder Judicial" class="bxl-logo">
</div>
<div class="bxl-text">
<span class="bxl-title">Boletin Informativo</span>
</div>
<div class="bxl-cta">
<i class="bi bi-chevron-right" aria-hidden="true"></i>
</div>
</a>
<!-- BUSCADOR -->
<div class="sidebar-search">
<form method="GET" action="https://www.google.com/search" class="search-form">
<input type="hidden" name="ie" value="UTF-8">
<input type="hidden" name="oe" value="UTF-8">
<input type="hidden" name="domains" value="stjsonora.gob.mx">
<input type="hidden" name="sitesearch" value="stjsonora.gob.mx">
<div class="search-input-wrap">
<input type="text" name="q" placeholder="Buscar en el sitio..." class="search-input">
<button type="submit" class="search-btn" aria-label="Buscar"><i class="bi bi-search"></i></button>
</div>
</form>
</div>
<!-- Dirección General de Igualdad de Género -->
<div class="sidebar-genero">
<div class="sidebar-genero-header">
<i class="bi bi-gender-female"></i>
<span>Dirección General de Igualdad de Género</span>
</div>
<div class="sidebar-genero-banners">
<a href="/Storage/Directorio/DirectorioEmergenteISM.pdf" target="_blank">
<img src="/images/Banner Directorio Emergente ISM.png" alt="Directorio Emergente ISM">
</a>
<a href="/Storage/UnidadIgualdadGenero/ProtocoloVPMRG202023.pdf" target="_blank">
<img src="/images/Protocolo VPMRG 2023.jpg" alt="Protocolo VPMRG 2023">
</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSege-ns6ji2bmok9unMRpulWmidDqJhbXp3BxchA2T5lfno7Q/viewform" target="_blank">
<img src="/images/Banner Pacto social Proceso 23-24.png" alt="Pacto Social">
</a>
</div>
</div>
</div>
</th>
</tr>
</tbody></table>
<span class="Estilo32"></span>
<span class="Estilo32"></span>
<table>
<tbody><tr>
<th scope="col">
<div class="text-center"></div>
</th>
</tr>
</tbody></table>
</div>
</div>
<!-- FIN SIDEBAR IZQUIERDO -->
<!-- ============ AREA PRINCIPAL (DERECHA) ============ -->
<div id="right" style="background-color: #FFFFFF;">
<div id="flash" style="width: 100%; margin: 0; float: none;">
<picture>
<source media="(min-width: 901px)" srcset="/images/BannerPJSONDesktop.jpg">
<img src="/images/BannerPJSON.png" alt="Poder Judicial del Estado de Sonora" style="width: 100%;">
</picture>
</div>
<div id="bodycontent" style="padding: 15px 24px 0; box-sizing: border-box;">
<!-- Estilos especificos para pagina 404 -->
<style type="text/css">
.container-flex {
display: flex;
flex-flow: row wrap;
justify-content: center;
margin: 20px;
}
.item {
align-self: center;
}
.not-found {
margin-left: 50px;
padding: 20px;
border-left: solid 2px #dc3545;
}
.f-2 {
font-size: 2.5em;
}
.text-red {
color: #dc3545;
}
p.not-margin {
margin: 0;
}
</style>
<!-- Contenido 404 -->
<div id="txt">
<div class="container-flex">
<div class="item" style="position: relative;">
<i class="bi bi-file-earmark-text" style="font-size: 5em; color: #dc3545;"></i>
<i class="bi bi-x-circle" style="position: absolute; bottom: -10px; right: -10px; font-size: 2em;"></i>
</div>
<div class="item not-found">
<h2 class="text-red f-2">Página No Encontrada</h2>
<h4 style="font-size: 1.6em; margin: 5px 0;">Esta página no está disponible</h4>
<p class="not-margin" style="font-size: 1.2em">Es posible que el enlace que has seguido sea incorrecto</p>
<p class="not-margin">Error Code: 404.</p>
</div>
</div>
</div>
<div style="clear:both;"></div>
<div id="footer"></div>
</div>
<!-- FIN #right -->
</div>
<!-- FIN #content -->
<script>
document.addEventListener('DOMContentLoaded', () => {
/* ===== Carrusel BOLETINES ===== */
document.querySelectorAll('.boletines-center').forEach((root) => {
const viewport = root.querySelector('.b-center-viewport');
const track = root.querySelector('.b-center-track');
const slides = Array.from(root.querySelectorAll('.b-center-slide'));
const prevBtn = root.querySelector('.b-center-nav.prev');
const nextBtn = root.querySelector('.b-center-nav.next');
const dots = Array.from(root.querySelectorAll('.b-center-dots button'));
if (!viewport || !track || slides.length === 0) return;
let index = 0;
function update() {
const cs = getComputedStyle(viewport);
const peek = parseInt(cs.getPropertyValue('--peek')) || 0;
const gap = parseFloat(getComputedStyle(track).gap) || 0;
const slideWidth = viewport.clientWidth - (peek * 2);
const offset = index * (slideWidth + gap);
track.style.transform = `translate3d(${-offset}px,0,0)`;
slides.forEach((s, i) => s.classList.toggle('is-active', i === index));
dots.forEach((d, i) => d.classList.toggle('is-active', i === index));
}
function go(delta) {
index = (index + delta + slides.length) % slides.length;
update();
}
prevBtn?.addEventListener('click', () => go(-1));
nextBtn?.addEventListener('click', () => go(1));
dots.forEach((d, i) => d.addEventListener('click', () => {
index = i;
update();
}));
// Teclado
root.addEventListener('keydown', (e) => {
if (e.key === 'ArrowLeft') go(-1);
if (e.key === 'ArrowRight') go(1);
});
root.tabIndex = 0;
// Swipe tactil
let startX = null;
track.addEventListener('touchstart', e => startX = e.touches[0].clientX, { passive: true });
track.addEventListener('touchend', e => {
if (startX === null) return;
const dx = e.changedTouches[0].clientX - startX;
if (Math.abs(dx) > 30) go(dx < 0 ? 1 : -1);
startX = null;
});
// Recalcula en resize/observador
const ro = new ResizeObserver(update);
ro.observe(viewport);
window.addEventListener('resize', update);
update();
});
/* ===== Carrusel ARCHIVO HISTORICO ===== */
document.querySelectorAll('.archivo-historico').forEach((root) => {
const viewport = root.querySelector('.ah-viewport');
const track = root.querySelector('.ah-track');
const slides = Array.from(root.querySelectorAll('.ah-slide'));
const prevBtn = root.querySelector('.ah-prev');
const nextBtn = root.querySelector('.ah-next');
const dots = Array.from(root.querySelectorAll('.ah-dots button'));
if (!viewport || !track || slides.length === 0) return;
let index = 0;
function update() {
const cs = getComputedStyle(viewport);
const peek = parseInt(cs.getPropertyValue('--peek')) || 0;
const gap = parseFloat(getComputedStyle(track).gap) || 0;
const slideWidth = viewport.clientWidth - (peek * 2);
const offset = index * (slideWidth + gap);
track.style.transform = `translate3d(${-offset}px, 0, 0)`;
track.style.transition = 'transform .4s ease';
slides.forEach((s, i) => s.classList.toggle('is-active', i === index));
dots.forEach((d, i) => d.classList.toggle('is-active', i === index));
}
function go(delta) {
index = (index + delta + slides.length) % slides.length;
update();
}
// Controles
if (prevBtn) prevBtn.addEventListener('click', () => go(-1));
if (nextBtn) nextBtn.addEventListener('click', () => go(1));
dots.forEach((d, i) => {
d.addEventListener('click', () => {
index = i;
update();
});
});
// Teclado
root.addEventListener('keydown', (e) => {
if (e.key === 'ArrowLeft') go(-1);
if (e.key === 'ArrowRight') go(1);
});
root.tabIndex = 0;
// Swipe tactil
let startX = null;
track.addEventListener('touchstart', (e) => {
startX = e.touches[0].clientX;
}, { passive: true });
track.addEventListener('touchend', (e) => {
if (startX === null) return;
const dx = e.changedTouches[0].clientX - startX;
if (Math.abs(dx) > 30) {
go(dx < 0 ? 1 : -1);
}
startX = null;
});
// Recalcular al redimensionar
const ro = new ResizeObserver(update);
ro.observe(viewport);
window.addEventListener('resize', update);
// Posicion inicial
update();
});
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q05DM5DKDD"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Q05DM5DKDD');
</script>
<!--Start of Tawk.to Script-->
<script type="text/javascript">
var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
s1.async=true;
s1.src='https://embed.tawk.to/5f023d1a760b2b560e6fc915/default';
s1.charset='UTF-8';
s1.setAttribute('crossorigin','*');
s0.parentNode.insertBefore(s1,s0);
})();
</script>
<!--End of Tawk.to Script-->
</body>
</html>
Document
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Nuestro principal objetivo es brindar a todos los interesados en la actividad jurisdiccional se enteren en forma veraz y oportuna de los criterios y ejecutorias relevantes que han sostenido los Tribunales de alzada locales.">
<title>Poder Judicial del Estado de Sonora</title>
<link rel="icon" href="/images/Favicon.ico" type="image/x-icon">
<!-- Google Fonts - Roboto -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
<!-- Bootstrap Icons -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
<!-- Estilos -->
<link href="/css/main.css" rel="stylesheet" type="text/css">
<link href="/css/menu.css" rel="stylesheet" type="text/css">
<link href="/css/inline.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css">
<!-- Estilos responsivos migración -->
<link href="/css/miniupdate.css" rel="stylesheet" type="text/css">
<!-- jQuery y Bootstrap -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<!-- JS responsivo migración -->
<script src="/js/miniupdate.js"></script>
<!-- Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q05DM5DKDD"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Q05DM5DKDD');
</script>
</head>
<body>
<!-- Header móvil -->
<header class="mobile-header">
<button class="menu-toggle" id="menuToggle" aria-label="Abrir menu">
<i class="bi bi-list"></i>
</button>
<h1>Poder Judicial del Estado de Sonora</h1>
</header>
<!-- Overlay para cerrar sidebar -->
<div class="sidebar-overlay" id="sidebarOverlay"></div>
<div id="content">
<!-- ============ SIDEBAR IZQUIERDO ============ -->
<div id="left">
<div class="sidebar-header-green">
<div id="logo">
<div class="text-center">
<img src="/images/Logotipo-PJ.png" alt="Logotipo del Poder Judicial del Estado de Sonora">
</div>
</div>
<h2>PODER JUDICIAL DEL ESTADO DE SONORA</h2>
</div>
<aside class="side-menu" aria-label="Menu lateral">
<ul class="side-menu-list">
<!-- INSTITUCION -->
<li class="sm-section-title">Institucion</li>
<li><a class="sm-link" href="/Inicio"><i class="bi bi-house-door"></i> Inicio</a></li>
<li><a class="sm-link" href="/Vision"><i class="bi bi-eye"></i> Mision y Vision</a></li>
<li><a class="sm-link" href="/Institucion/Directorio"><i class="bi bi-people"></i> Directorio</a></li>
<li><a class="sm-link" href="/Institucion/Organigrama"><i class="bi bi-diagram-3"></i> Organigramas</a></li>
<li><a class="sm-link" href="/PlenoSTJ"><i class="bi bi-bank"></i> Pleno del STJ</a></li>
<li><a class="sm-link" href="/TribunalDisciplinaJudicial"><i class="bi bi-shield-check"></i> Tribunal de Disciplina Judicial</a></li>
<!-- CONSULTAS FRECUENTES -->
<li class="sm-section-title">Consultas Frecuentes</li>
<li><a class="sm-link sm-highlight" href="/Publicaciones/ListaAcuerdos"><i class="bi bi-card-checklist"></i> Lista de Acuerdos</a></li>
<li><a class="sm-link sm-highlight" href="/Publicaciones/Sentencias"><i class="bi bi-file-text"></i> Sentencias</a></li>
<li><a class="sm-link sm-highlight" href="https://adison.stjsonora.gob.mx/"><i class="bi bi-laptop"></i> Servicios en Linea <small>(ADISON)</small></a></li>
<!-- TRANSPARENCIA -->
<li class="sm-section-title">Transparencia</li>
<li><a class="sm-link" href="/Transparencia/"><i class="bi bi-columns-gap"></i> Portal de Transparencia</a></li>
<li><a class="sm-link" href="/Transparencia/EstadisticaMensual"><i class="bi bi-graph-up"></i> Estadisticas</a></li>
<!-- RECURSOS -->
<li class="sm-section-title">Recursos</li>
<li><a class="sm-link" href="/Biblioteca"><i class="bi bi-book"></i> Biblioteca Virtual</a></li>
<li><a class="sm-link" href="/Publicaciones"><i class="bi bi-file-earmark-text"></i> Publicaciones</a></li>
<li><a class="sm-link" href="/Transparencia/Servicios"><i class="bi bi-hand-index"></i> Servicios y Tramites</a></li>
<li><a class="sm-link" href="/SintesisInformativa"><i class="bi bi-newspaper"></i> Sintesis Informativa</a></li>
<li><a class="sm-link" href="/Ligas"><i class="bi bi-link-45deg"></i> Ligas de Interes</a></li>
</ul>
</aside>
<div>
<div id="appBody">
<div class="text-center">
</div>
</div>
<table width="235" class="text-center">
<tbody><tr>
<th scope="col">
<div class="text-center">
<!-- BOTON DESTACADO: BOLETIN INFORMATIVO -->
<a href="/Noticias" class="btn-boletines-xl" aria-label="Boletin Informativo">
<div class="bxl-left">
<img src="/images/logo_STJ_blanco.png" alt="Poder Judicial" class="bxl-logo">
</div>
<div class="bxl-text">
<span class="bxl-title">Boletin Informativo</span>
</div>
<div class="bxl-cta">
<i class="bi bi-chevron-right" aria-hidden="true"></i>
</div>
</a>
<!-- BUSCADOR -->
<div class="sidebar-search">
<form method="GET" action="https://www.google.com/search" class="search-form">
<input type="hidden" name="ie" value="UTF-8">
<input type="hidden" name="oe" value="UTF-8">
<input type="hidden" name="domains" value="stjsonora.gob.mx">
<input type="hidden" name="sitesearch" value="stjsonora.gob.mx">
<div class="search-input-wrap">
<input type="text" name="q" placeholder="Buscar en el sitio..." class="search-input">
<button type="submit" class="search-btn" aria-label="Buscar"><i class="bi bi-search"></i></button>
</div>
</form>
</div>
<!-- Dirección General de Igualdad de Género -->
<div class="sidebar-genero">
<div class="sidebar-genero-header">
<i class="bi bi-gender-female"></i>
<span>Dirección General de Igualdad de Género</span>
</div>
<div class="sidebar-genero-banners">
<a href="/Storage/Directorio/DirectorioEmergenteISM.pdf" target="_blank">
<img src="/images/Banner Directorio Emergente ISM.png" alt="Directorio Emergente ISM">
</a>
<a href="/Storage/UnidadIgualdadGenero/ProtocoloVPMRG202023.pdf" target="_blank">
<img src="/images/Protocolo VPMRG 2023.jpg" alt="Protocolo VPMRG 2023">
</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSege-ns6ji2bmok9unMRpulWmidDqJhbXp3BxchA2T5lfno7Q/viewform" target="_blank">
<img src="/images/Banner Pacto social Proceso 23-24.png" alt="Pacto Social">
</a>
</div>
</div>
</div>
</th>
</tr>
</tbody></table>
<span class="Estilo32"></span>
<span class="Estilo32"></span>
<table>
<tbody><tr>
<th scope="col">
<div class="text-center"></div>
</th>
</tr>
</tbody></table>
</div>
</div>
<!-- FIN SIDEBAR IZQUIERDO -->
<!-- ============ AREA PRINCIPAL (DERECHA) ============ -->
<div id="right" style="background-color: #FFFFFF;">
<div id="flash" style="width: 100%; margin: 0; float: none;">
<picture>
<source media="(min-width: 901px)" srcset="/images/BannerPJSONDesktop.jpg">
<img src="/images/BannerPJSON.png" alt="Poder Judicial del Estado de Sonora" style="width: 100%;">
</picture>
</div>
<div id="bodycontent" style="padding: 15px 24px 0; box-sizing: border-box;">
<!-- Estilos especificos para pagina 404 -->
<style type="text/css">
.container-flex {
display: flex;
flex-flow: row wrap;
justify-content: center;
margin: 20px;
}
.item {
align-self: center;
}
.not-found {
margin-left: 50px;
padding: 20px;
border-left: solid 2px #dc3545;
}
.f-2 {
font-size: 2.5em;
}
.text-red {
color: #dc3545;
}
p.not-margin {
margin: 0;
}
</style>
<!-- Contenido 404 -->
<div id="txt">
<div class="container-flex">
<div class="item" style="position: relative;">
<i class="bi bi-file-earmark-text" style="font-size: 5em; color: #dc3545;"></i>
<i class="bi bi-x-circle" style="position: absolute; bottom: -10px; right: -10px; font-size: 2em;"></i>
</div>
<div class="item not-found">
<h2 class="text-red f-2">Página No Encontrada</h2>
<h4 style="font-size: 1.6em; margin: 5px 0;">Esta página no está disponible</h4>
<p class="not-margin" style="font-size: 1.2em">Es posible que el enlace que has seguido sea incorrecto</p>
<p class="not-margin">Error Code: 404.</p>
</div>
</div>
</div>
<div style="clear:both;"></div>
<div id="footer"></div>
</div>
<!-- FIN #right -->
</div>
<!-- FIN #content -->
<script>
document.addEventListener('DOMContentLoaded', () => {
/* ===== Carrusel BOLETINES ===== */
document.querySelectorAll('.boletines-center').forEach((root) => {
const viewport = root.querySelector('.b-center-viewport');
const track = root.querySelector('.b-center-track');
const slides = Array.from(root.querySelectorAll('.b-center-slide'));
const prevBtn = root.querySelector('.b-center-nav.prev');
const nextBtn = root.querySelector('.b-center-nav.next');
const dots = Array.from(root.querySelectorAll('.b-center-dots button'));
if (!viewport || !track || slides.length === 0) return;
let index = 0;
function update() {
const cs = getComputedStyle(viewport);
const peek = parseInt(cs.getPropertyValue('--peek')) || 0;
const gap = parseFloat(getComputedStyle(track).gap) || 0;
const slideWidth = viewport.clientWidth - (peek * 2);
const offset = index * (slideWidth + gap);
track.style.transform = `translate3d(${-offset}px,0,0)`;
slides.forEach((s, i) => s.classList.toggle('is-active', i === index));
dots.forEach((d, i) => d.classList.toggle('is-active', i === index));
}
function go(delta) {
index = (index + delta + slides.length) % slides.length;
update();
}
prevBtn?.addEventListener('click', () => go(-1));
nextBtn?.addEventListener('click', () => go(1));
dots.forEach((d, i) => d.addEventListener('click', () => {
index = i;
update();
}));
// Teclado
root.addEventListener('keydown', (e) => {
if (e.key === 'ArrowLeft') go(-1);
if (e.key === 'ArrowRight') go(1);
});
root.tabIndex = 0;
// Swipe tactil
let startX = null;
track.addEventListener('touchstart', e => startX = e.touches[0].clientX, { passive: true });
track.addEventListener('touchend', e => {
if (startX === null) return;
const dx = e.changedTouches[0].clientX - startX;
if (Math.abs(dx) > 30) go(dx < 0 ? 1 : -1);
startX = null;
});
// Recalcula en resize/observador
const ro = new ResizeObserver(update);
ro.observe(viewport);
window.addEventListener('resize', update);
update();
});
/* ===== Carrusel ARCHIVO HISTORICO ===== */
document.querySelectorAll('.archivo-historico').forEach((root) => {
const viewport = root.querySelector('.ah-viewport');
const track = root.querySelector('.ah-track');
const slides = Array.from(root.querySelectorAll('.ah-slide'));
const prevBtn = root.querySelector('.ah-prev');
const nextBtn = root.querySelector('.ah-next');
const dots = Array.from(root.querySelectorAll('.ah-dots button'));
if (!viewport || !track || slides.length === 0) return;
let index = 0;
function update() {
const cs = getComputedStyle(viewport);
const peek = parseInt(cs.getPropertyValue('--peek')) || 0;
const gap = parseFloat(getComputedStyle(track).gap) || 0;
const slideWidth = viewport.clientWidth - (peek * 2);
const offset = index * (slideWidth + gap);
track.style.transform = `translate3d(${-offset}px, 0, 0)`;
track.style.transition = 'transform .4s ease';
slides.forEach((s, i) => s.classList.toggle('is-active', i === index));
dots.forEach((d, i) => d.classList.toggle('is-active', i === index));
}
function go(delta) {
index = (index + delta + slides.length) % slides.length;
update();
}
// Controles
if (prevBtn) prevBtn.addEventListener('click', () => go(-1));
if (nextBtn) nextBtn.addEventListener('click', () => go(1));
dots.forEach((d, i) => {
d.addEventListener('click', () => {
index = i;
update();
});
});
// Teclado
root.addEventListener('keydown', (e) => {
if (e.key === 'ArrowLeft') go(-1);
if (e.key === 'ArrowRight') go(1);
});
root.tabIndex = 0;
// Swipe tactil
let startX = null;
track.addEventListener('touchstart', (e) => {
startX = e.touches[0].clientX;
}, { passive: true });
track.addEventListener('touchend', (e) => {
if (startX === null) return;
const dx = e.changedTouches[0].clientX - startX;
if (Math.abs(dx) > 30) {
go(dx < 0 ? 1 : -1);
}
startX = null;
});
// Recalcular al redimensionar
const ro = new ResizeObserver(update);
ro.observe(viewport);
window.addEventListener('resize', update);
// Posicion inicial
update();
});
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q05DM5DKDD"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Q05DM5DKDD');
</script>
<!--Start of Tawk.to Script-->
<script type="text/javascript">
var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
(function(){
var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
s1.async=true;
s1.src='https://embed.tawk.to/5f023d1a760b2b560e6fc915/default';
s1.charset='UTF-8';
s1.setAttribute('crossorigin','*');
s0.parentNode.insertBefore(s1,s0);
})();
</script>
<!--End of Tawk.to Script-->
</body>
</html>