# Poder Judicial del Estado de Sonora

> Markdown mirror of DialtoneApp's public top-site detail page for `stjsonora.gob.mx`.

URL: https://dialtoneapp.com/top-sites/stjsonora.gob.mx/index.md
Canonical HTML: https://dialtoneapp.com/top-sites/stjsonora.gob.mx

## Summary

- Domain: `stjsonora.gob.mx`
- Website: https://stjsonora.gob.mx
- Description: ai readable | score 24 | purchase read only
- Label: ai_readable
- Payment surface: Not available
- Purchase boundary: read_only
- Control boundary: unknown
- Rank: 649341

## robots

Not found.

## llms

~~~text
<!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>
~~~

## llms-full

~~~text
<!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>
~~~