Top SitesPoder Judicial del Estado de Sonora

Machine Readiness

Stored receipt and evidence

Overall

24

Readable

80

Callable

0

Commerce

0

Payment

0

Machine Access

Inspect the site's MCP endpoint

Open MCP explorer

DialtoneApp can scan the stored discovery files for this domain, try the MCP initialize handshake, and show the raw protocol transcript.

Purchase boundary

read only

Control boundary

unknown

Payment rails

None

Payment providers

None

Payment methods

None

Payment protocols

None

Payment assets

None

Payment networks

None

Capabilities

None

Verified payment surface

No

Crypto only

No

Readable docs

llms, llms-full

Products

0

Variants

0

Priced variants

0

Currencies

0

Offers

0

Priced offers

0

Priced actions

0

Samples

Offer samples

No stored offer samples.

Samples

Action samples

No stored action samples.

Samples

Product samples

No stored product samples.

Document

robots.txt

Not stored for this site.

Document

llms.txt

Open llms.txt
<!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

llms-full.txt

Open llms-full.txt
<!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>