/*! TSJ by DCRSoft — Autor: DCRSoft — https://dcrsoft.com.mx */
/* ==========================================================================
   Sitio TSJ Guerrero — mismo sistema visual que LGCG / SIBUSE / Transparencia.
   Paleta institucional: verde oscuro, dorado, crema. Bootstrap 5.3 como base.
   ========================================================================== */

:root {
	--pj-verde-950: #011f10;
	--pj-verde-900: #012e17;
	--pj-verde-800: #024911;
	--pj-verde-600: #15731d;
	--pj-verde-100: #e6f1e8;
	--pj-dorado: #c79912;
	--pj-dorado-osc: #957119;
	--pj-dorado-claro: #f3e3b0;
	--pj-crema: #fdf9ee;
	--pj-fondo: #f5f7f2;
	--pj-azul: #06275c;
	--pj-texto: #1c2a21;
	--pj-suave: #5b6b60;
	--pj-borde: #dfe6dc;

	--bs-primary: #024911;
	--bs-primary-rgb: 2, 73, 17;
	--bs-link-color: #024911;
	--bs-link-color-rgb: 2, 73, 17;
	--bs-link-hover-color: #15731d;
	--bs-link-hover-color-rgb: 21, 115, 29;
	--bs-body-font-family: 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
	--bs-body-color: var(--pj-texto);
	--bs-body-bg: var(--pj-fondo);
	--bs-border-radius: .6rem;
	--bs-border-radius-lg: .9rem;
	--bs-focus-ring-color: rgba(21, 115, 29, .25);
}

body { background: var(--pj-fondo); color: var(--pj-texto); }
h1, h2, h3, h4, h5 { color: var(--pj-verde-900); font-weight: 650; letter-spacing: -.01em; }
a { text-underline-offset: 2px; }
.text-suave { color: var(--pj-suave) !important; }
.flex-none { flex: none; }

.skip-link { position: absolute; left: .5rem; top: .5rem; z-index: 2000; background: #fff; padding: .5rem .8rem; border-radius: .4rem; }

.btn-primary {
	--bs-btn-bg: var(--pj-verde-800); --bs-btn-border-color: var(--pj-verde-800);
	--bs-btn-hover-bg: var(--pj-verde-600); --bs-btn-hover-border-color: var(--pj-verde-600);
	--bs-btn-active-bg: var(--pj-verde-900); --bs-btn-active-border-color: var(--pj-verde-900);
	--bs-btn-focus-shadow-rgb: 21, 115, 29;
}
.btn-outline-primary {
	--bs-btn-color: var(--pj-verde-800); --bs-btn-border-color: var(--pj-verde-800);
	--bs-btn-hover-bg: var(--pj-verde-800); --bs-btn-hover-border-color: var(--pj-verde-800);
	--bs-btn-active-bg: var(--pj-verde-900); --bs-btn-active-border-color: var(--pj-verde-900);
}
.btn-gold {
	--bs-btn-color: #2b2000; --bs-btn-bg: var(--pj-dorado); --bs-btn-border-color: var(--pj-dorado);
	--bs-btn-hover-color: #2b2000; --bs-btn-hover-bg: #d8a92a; --bs-btn-hover-border-color: #d8a92a;
	--bs-btn-active-bg: var(--pj-dorado-osc); --bs-btn-active-border-color: var(--pj-dorado-osc);
	font-weight: 600;
}
.form-control:focus, .form-select:focus { border-color: var(--pj-verde-600); box-shadow: 0 0 0 .2rem rgba(21, 115, 29, .18); }
.form-label { font-weight: 600; font-size: .875rem; color: var(--pj-verde-900); }

/* ---------------------------------------------------------------- Encabezado */
.site-header { background: var(--pj-verde-900); position: relative; z-index: 20; }
.header-top { display: flex; align-items: center; gap: .9rem; padding-top: 1rem; padding-bottom: .75rem; }
.brand { display: flex; align-items: center; gap: .9rem; min-width: 0; flex: 1; text-decoration: none; }
.brand-escudo { width: 52px; height: 52px; flex: none; }
.brand-sep { width: 1px; align-self: stretch; background: linear-gradient(transparent, var(--pj-dorado), transparent); flex: none; }
.brand-franja { flex: 1; min-width: 0; overflow: hidden; display: flex; justify-content: center; }
.brand-franja img { height: 24px; width: auto; flex: none; max-width: none; }
@media (min-width: 576px) { .brand-franja img { height: 32px; } }
.header-acciones { flex: none; }

.public-nav { padding: 0 0 .9rem; }
.public-nav .navbar-toggler { border-color: rgba(255, 255, 255, .35); }
.public-nav .nav-link { color: #fff; font-weight: 500; padding: .55rem .9rem; border-radius: .5rem; }
.public-nav .nav-link:hover, .public-nav .nav-link.show, .public-nav .nav-link.active { color: var(--pj-dorado-claro); background: rgba(255, 255, 255, .08); }

.public-nav .dropdown-menu {
	padding: .5rem; border: 1px solid var(--pj-borde); border-radius: .9rem;
	box-shadow: 0 18px 40px rgba(1, 31, 16, .25); min-width: 260px;
}
.public-nav .dropdown-item { white-space: normal; border-radius: .5rem; padding: .5rem .8rem; color: var(--pj-texto); font-size: .92rem; }
.public-nav .dropdown-item:hover, .public-nav .dropdown-item:focus, .public-nav .dropdown-item.active { background: var(--pj-verde-100); color: var(--pj-verde-900); }
.public-nav .dropdown-item.dropdown-toggle::after { float: right; margin-top: .55em; transform: rotate(-90deg); }
.public-nav .tsj-dropend { position: relative; }
.public-nav .tsj-submenu { margin: 0; }
@media (max-width: 991.98px) {
	.public-nav .tsj-submenu { position: static; box-shadow: none; border: 0; border-left: 2px solid var(--pj-dorado-claro); border-radius: 0; margin-left: .8rem; padding: .2rem 0 .2rem .4rem; }
	.public-nav .dropdown-menu { box-shadow: none; }
}
@media (min-width: 992px) {
	.public-nav .tsj-dropend > .tsj-submenu { top: -.5rem; left: 100%; }
	.public-nav .tsj-dropend > .tsj-submenu.show { display: block; }
}

.header-wave { height: 26px; line-height: 0; margin-bottom: -1px; }
.header-wave svg { width: 100%; height: 100%; display: block; }
@media (min-width: 768px) {
	.brand-escudo { width: 68px; height: 68px; }
	.brand-franja img { height: 46px; }
	.header-top { padding-top: 1.25rem; }
}
@media (min-width: 992px) {
	.header-top { justify-content: center; position: relative; }
	.brand { flex: 0 1 auto; }
	.brand-franja { justify-content: center; }
	.header-acciones { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); padding-top: .25rem; }
	#navPrincipal { justify-content: center; }
	#navPrincipal .navbar-nav { margin-inline: auto; }
	.brand-franja img { height: 58px; }
	.public-nav { padding-bottom: 1.1rem; }
	.header-wave { height: 34px; }
}

/* ---------------------------------------------------------------- Portada */
.seccion-titulo { margin-bottom: .9rem; border-bottom: 2px solid var(--pj-dorado-claro); }
.seccion-titulo h2 { display: inline-block; font-size: 1.15rem; margin: 0; padding: 0 .1rem .45rem; border-bottom: 3px solid var(--pj-dorado); margin-bottom: -2px; }

.hero-carousel { border-radius: 1rem; overflow: hidden; box-shadow: 0 6px 22px rgba(1, 46, 23, .15); background: var(--pj-verde-900); }
.hero-carousel img { aspect-ratio: 1920 / 540; object-fit: cover; height: auto; }
.carousel-indicators [data-bs-target] { width: 10px; height: 10px; border-radius: 50%; border: 0; }

.destacados { border-radius: 1rem; overflow: hidden; background: var(--pj-verde-900); }
.destacado { display: block; position: relative; color: #fff; text-decoration: none; }
.destacado-img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 7; object-fit: cover; } /* height:auto anula el alto fijo que WordPress escribe en la imagen: el recuadro conserva siempre su proporción */
.destacado-vacio { display: grid; place-items: center; background: linear-gradient(135deg, var(--pj-verde-900), var(--pj-verde-800)); }
.destacado-texto { position: absolute; inset: auto 0 0 0; padding: 2.2rem 1.2rem 1.9rem; background: linear-gradient(transparent, rgba(1, 31, 16, .92)); }
.destacado-texto .meta { display: block; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pj-dorado-claro); }
.destacado-texto .titulo { display: block; font-size: clamp(1rem, 2.2vw, 1.4rem); font-weight: 650; line-height: 1.25; }
.destacados-ind { margin-bottom: .35rem; }

.lista-items { display: flex; flex-direction: column; gap: .6rem; }
.item-lista { display: flex; align-items: center; gap: .9rem; background: #fff; border: 1px solid var(--pj-borde); border-radius: .8rem; padding: .85rem 1rem; }
.item-lista:hover { border-color: var(--pj-dorado); background: var(--pj-crema); }
.item-cuerpo { min-width: 0; flex: 1; }
.item-lista .meta { font-size: .78rem; color: var(--pj-suave); text-transform: uppercase; letter-spacing: .03em; }
.item-lista .meta .sep { margin: 0 .35rem; }
.item-lista .meta .cat { color: var(--pj-dorado-osc); font-weight: 650; text-decoration: none; }
.item-titulo { font-size: 1rem; margin: .15rem 0 0; line-height: 1.3; }
.item-titulo a { color: var(--pj-verde-900); text-decoration: none; }
.item-titulo a:hover { color: var(--pj-verde-600); text-decoration: underline; }
.item-resumen { margin: .3rem 0 0; font-size: .9rem; color: var(--pj-suave); }
.item-pdf { flex: none; }

.panel-servicios { background: #fff; border: 1px solid var(--pj-borde); border-radius: 1rem; padding: 1rem 1.1rem; }
.panel-servicios .seccion-titulo { margin-bottom: .6rem; }
.servicios-lista { margin: 0; }
.servicios-lista li + li { border-top: 1px dashed var(--pj-borde); }
.servicios-lista a { display: flex; align-items: center; gap: .5rem; padding: .5rem .1rem; color: var(--pj-texto); text-decoration: none; font-size: .92rem; }
.servicios-lista a::before { content: ''; width: .45rem; height: .45rem; border-radius: 50%; background: var(--pj-dorado); flex: none; }
.servicios-lista a:hover { color: var(--pj-verde-600); }
.servicio-pendiente { display: flex; align-items: center; gap: .5rem; padding: .5rem .1rem; font-size: .92rem; color: var(--pj-suave); cursor: default; }
.servicio-pendiente::before { content: ''; width: .45rem; height: .45rem; border-radius: 50%; border: 2px solid var(--pj-dorado); flex: none; box-sizing: border-box; }

.tarjeta-circular { display: flex; flex-direction: column; gap: .35rem; background: #fff; border: 1px solid var(--pj-borde); border-radius: 1rem; padding: 1rem 1.05rem; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.tarjeta-circular:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(1, 46, 23, .1); border-color: var(--pj-dorado); }
.tc-ico { width: 42px; height: 42px; display: grid; place-items: center; border-radius: .75rem; background: var(--pj-verde-800); color: var(--pj-dorado-claro); font-size: 1.25rem; }
.tc-meta { font-size: .78rem; color: var(--pj-suave); text-transform: uppercase; letter-spacing: .03em; }
.tc-titulo { font-size: .98rem; line-height: 1.3; margin: 0; flex: 1; }
.tc-titulo a { color: var(--pj-verde-900); text-decoration: none; }
.tc-acciones { display: flex; gap: .4rem; margin-top: .4rem; }

.enlaces-interes { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin: 0; padding: 0; }
.enlaces-interes a { display: grid; place-items: center; width: 168px; height: 84px; background: #fff; border: 1px solid var(--pj-borde); border-radius: .8rem; padding: .6rem; transition: border-color .15s ease, box-shadow .15s ease; }
.enlaces-interes a:hover { border-color: var(--pj-dorado); box-shadow: 0 6px 16px rgba(1, 46, 23, .1); }
.enlaces-interes img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }

/* ---------------------------------------------------------------- Páginas interiores */
.page-title { margin: 1.6rem 0 1.2rem; }
.page-title h1 { font-size: clamp(1.35rem, 3.4vw, 2rem); margin: 0; }
.breadcrumb { --bs-breadcrumb-divider-color: var(--pj-dorado-osc); font-size: .88rem; margin-bottom: .6rem; }
.filtro-archivo { background: var(--pj-crema); border: 1px solid var(--pj-dorado-claro); border-radius: 1rem; padding: .9rem 1.1rem; margin-bottom: 1.1rem; }
.vacio { text-align: center; padding: 2.5rem 1rem; color: var(--pj-suave); }
.vacio .bi { font-size: 2.4rem; color: var(--pj-dorado); display: block; margin-bottom: .5rem; }

.contenido-articulo { display: flow-root; background: #fff; border: 1px solid var(--pj-borde); border-radius: 1rem; padding: clamp(1rem, 3vw, 2rem); margin-bottom: 2rem; }
.contenido-articulo h1 { font-size: clamp(1.4rem, 3.4vw, 2rem); }
.meta-articulo { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; font-size: .88rem; color: var(--pj-suave); }
.badge-cat { background: var(--pj-verde-100); color: var(--pj-verde-900); border-radius: 999px; padding: .15rem .65rem; font-size: .78rem; font-weight: 650; text-decoration: none; }
.badge-cat:hover { background: var(--pj-dorado-claro); }

.entry { display: flow-root; overflow-wrap: anywhere; }
.entry [style*="float"] { float: none !important; width: auto !important; }
.entry > :first-child { margin-top: 0; }
.entry h2, .entry h3, .entry h4 { margin-top: 1.6rem; }
.entry img, .entry video { max-width: 100%; height: auto; border-radius: .5rem; }
.entry table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .93rem; display: block; overflow-x: auto; }
.entry th, .entry td { border: 1px solid var(--pj-borde); padding: .45rem .65rem; }
.entry th { background: var(--pj-verde-100); color: var(--pj-verde-900); }
.entry blockquote { border-left: 4px solid var(--pj-dorado); background: var(--pj-crema); padding: .7rem 1rem; margin: 1rem 0; border-radius: .3rem .7rem .7rem .3rem; }
.entry .alignleft { float: left; margin: 0 1rem 1rem 0; }
.entry .alignright { float: right; margin: 0 0 1rem 1rem; }
.entry .aligncenter { display: block; margin-inline: auto; }
.entry .wp-caption, .entry figure { max-width: 100%; }
.entry figcaption, .entry .wp-caption-text { font-size: .85rem; color: var(--pj-suave); }
@media (max-width: 575.98px) { .entry .alignleft, .entry .alignright { float: none; display: block; margin: 0 auto 1rem; } }

/* Visor de PDF y marcos incrustados */
.tsj-pdf { margin: 1.2rem 0; border: 1px solid var(--pj-borde); border-radius: .9rem; overflow: hidden; background: #fff; }
.tsj-pdf-barra { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; padding: .6rem .9rem; background: var(--pj-crema); border-bottom: 1px solid var(--pj-borde); font-weight: 600; font-size: .92rem; }
.tsj-pdf object, .tsj-pdf iframe { display: block; width: 100%; height: min(78vh, 900px); border: 0; }
.tsj-pdf-alt { padding: 1.5rem; text-align: center; }
.tsj-frame { margin: 1.2rem 0; border: 1px solid var(--pj-borde); border-radius: .9rem; overflow: hidden; }
.tsj-frame iframe { display: block; width: 100%; min-height: 70vh; border: 0; }
.tsj-enlace-externo { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1rem; border: 1px solid var(--pj-verde-800); border-radius: .6rem; text-decoration: none; font-weight: 600; margin: .5rem 0; }

/* Paginación */
.pagination { --bs-pagination-color: var(--pj-verde-800); --bs-pagination-active-bg: var(--pj-verde-800); --bs-pagination-active-border-color: var(--pj-verde-800); --bs-pagination-hover-color: var(--pj-verde-900); --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(21, 115, 29, .18); margin-bottom: 2rem; }

/* ---------------------------------------------------------------- Pie */
.site-footer { background: var(--pj-verde-900); color: #cfe0d3; margin-top: 3rem; padding: 2rem 0 1.4rem; border-top: 4px solid var(--pj-dorado); font-size: .9rem; }
.site-footer a { color: var(--pj-dorado-claro); }
.site-footer .legal { color: #9db6a4; font-size: .8rem; border-top: 1px solid rgba(255, 255, 255, .12); padding-top: .9rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }

*:focus-visible { outline: 3px solid var(--pj-dorado); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print { .site-header, .site-footer, .carousel, .filtro-archivo, .pagination { display: none !important; } body { background: #fff; } .contenido-articulo { border: 0; padding: 0; } }

/* ---------------------------------------------------------------- Compatibilidad con contenido heredado */
.entry #wp { max-width: 640px; }
.entry #wp .elementos { font-size: inherit; }
.entry #wp a.elementos { display: block; padding: .6rem .95rem; margin: .4rem 0; background: var(--pj-crema); border: 1px solid var(--pj-dorado-claro); border-radius: .7rem; text-decoration: none; font-weight: 600; color: var(--pj-verde-900); }
.entry #wp a.elementos:hover { border-color: var(--pj-dorado); background: #fff; color: var(--pj-verde-600); }
.entry .elementoMenu { display: inline-block; margin: 0 .4rem .5rem 0; }
.entry .elementoMenu a { display: inline-block; padding: .4rem .9rem; border: 1px solid var(--pj-borde); border-radius: 999px; text-decoration: none; font-weight: 600; }
.entry .elementoMenu a:hover { border-color: var(--pj-dorado); background: var(--pj-crema); }
.entry #wp br { display: none; }
.entry #wp span.elementos { display: block; }
.entry #wp span.elementos:nth-of-type(1) { margin-top: 1.4rem; font-size: 1.35rem; font-weight: 700; color: var(--pj-verde-900); }
.entry #wp span.elementos:nth-of-type(2) { font-size: 1.1rem; font-weight: 650; color: var(--pj-verde-800); }
.entry #wp span.elementos:nth-of-type(3) { margin-bottom: .6rem; color: var(--pj-suave); }

/* ==========================================================================
   Obligaciones de Transparencia (entrada con marca «página completa»)
   ========================================================================== */
.obl { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.6rem; margin-bottom: 2rem; }
.obl > *, .obl-hero > *, .obl-tarjeta, .obl-enlaces li { min-width: 0; }
.obl-hero {
	display: grid; grid-template-columns: 1.25fr 1fr; align-items: center; gap: 1.5rem;
	background: none; color: var(--pj-texto); padding: .4rem 0 .6rem;
}
.obl-hero h1 { color: var(--pj-verde-900); font-size: clamp(1.7rem, 4.2vw, 2.6rem); line-height: 1.12; margin: .5rem 0 .8rem; }
.obl-hero p { color: var(--pj-suave); font-size: 1.08rem; max-width: 36rem; }
.obl-kicker { display: inline-block; background: var(--pj-crema); color: var(--pj-dorado-osc); border: 1px solid var(--pj-dorado-claro); border-radius: 999px; padding: .25rem .8rem; font-size: .82rem; letter-spacing: .03em; text-transform: uppercase; }
.obl-hero-imagen { position: relative; z-index: 1; background: #fff; border-radius: 1rem; border: 3px solid var(--pj-dorado); padding: .6rem; box-shadow: 0 4px 14px rgba(1, 46, 23, .12); }
.obl-hero-imagen img { display: block; width: 100%; height: auto; border-radius: .6rem; }
.obl-intro { background: var(--pj-crema); border: 1px solid var(--pj-dorado-claro); border-left: 6px solid var(--pj-dorado); border-radius: .5rem 1rem 1rem .5rem; padding: 1.4rem 1.6rem; }
.obl-intro p { margin: 0 0 .7rem; font-size: 1.05rem; line-height: 1.65; }
.obl-intro p:last-child { margin: 0; color: var(--pj-suave); }
.obl-lema::first-letter { float: left; font-size: 3.4rem; line-height: .85; font-weight: 700; color: var(--pj-verde-800); padding: .2rem .5rem 0 0; }
.obl-tarjetas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.obl-tarjeta { background: #fff; border: 1px solid var(--pj-borde); border-top: 5px solid var(--pj-verde-800); border-radius: 1rem; padding: 1.4rem 1.5rem; box-shadow: 0 3px 12px rgba(1, 46, 23, .07); display: flex; flex-direction: column; }
.obl-tarjeta:nth-child(2) { border-top-color: var(--pj-dorado); }
.obl-tarjeta h2 { font-size: 1.35rem; margin: .7rem 0 .2rem; }
.obl-tarjeta p { margin: 0 0 .8rem; }
.obl-tarjeta p:last-child { margin: auto 0 0; padding-top: .4rem; }
.obl-icono { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: .8rem; background: var(--pj-verde-100); color: var(--pj-verde-800); font-size: 1.5rem; }
.obl-tarjeta:nth-child(2) .obl-icono { background: var(--pj-dorado-claro); color: var(--pj-dorado-osc); }
.obl-ley { color: var(--pj-dorado-osc); font-weight: 600; font-size: .9rem; }
.obl-anios { display: flex; flex-wrap: wrap; gap: .35rem; }
.obl-anios span { background: var(--pj-fondo); border: 1px solid var(--pj-borde); border-radius: 999px; padding: .1rem .65rem; font-size: .82rem; color: var(--pj-suave); }
.obl-apoyo h2 { font-size: 1.25rem; margin: 0 0 .8rem; }
.obl-enlaces { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.obl-enlaces a { display: flex; gap: .9rem; align-items: center; background: #fff; border: 1px solid var(--pj-borde); border-radius: .9rem; padding: 1rem 1.2rem; text-decoration: none; color: var(--pj-texto); transition: border-color .15s, box-shadow .15s, transform .15s; }
.obl-enlaces a:hover, .obl-enlaces a:focus-visible { border-color: var(--pj-dorado); box-shadow: 0 5px 16px rgba(1, 46, 23, .12); transform: translateY(-2px); }
.obl-enlaces .bi { font-size: 1.7rem; color: var(--pj-verde-800); }
.obl-enlaces strong { display: block; color: var(--pj-verde-900); }
.obl-enlaces span span, .obl-enlaces a > span { font-size: .92rem; color: var(--pj-suave); }
@media (max-width: 767.98px) {
	.obl-hero, .obl-tarjetas, .obl-enlaces { grid-template-columns: minmax(0, 1fr); }
	.obl-hero-imagen { max-width: 340px; justify-self: center; }
}
@media (prefers-reduced-motion: reduce) { .obl-enlaces a { transition: none; } .obl-enlaces a:hover { transform: none; } }

/* Portal de Transparencia (misma familia visual que Obligaciones de Transparencia) */
.por-hero { grid-template-columns: 1.4fr 1fr; }
.por-salto { display: flex; flex-wrap: wrap; gap: .6rem; }
.por-resumen { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.por-resumen > div { background: #fff; border: 1px solid var(--pj-borde); border-top: 4px solid var(--pj-dorado); border-radius: .9rem; padding: 1rem; text-align: center; }
.por-resumen strong { display: block; font-size: 1.6rem; color: var(--pj-verde-800); }
.por-resumen span { font-size: .9rem; color: var(--pj-suave); }
.por-resumen p { grid-column: 1 / -1; margin: 0; text-align: center; }
.por-resumen p a { color: var(--pj-verde-800); }
.por-seccion { background: #fff; border: 1px solid var(--pj-borde); border-top: 5px solid var(--pj-verde-800); border-radius: 1rem; padding: 1.4rem 1.5rem; box-shadow: 0 3px 12px rgba(1, 46, 23, .07); scroll-margin-top: 1rem; }
.por-seccion-dorada { border-top-color: var(--pj-dorado); }
.por-seccion-dorada .obl-icono { background: var(--pj-dorado-claro); color: var(--pj-dorado-osc); }
.por-seccion > header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.1rem; }
.por-seccion h2 { margin: 0; font-size: 1.4rem; }
.por-seccion .obl-ley { margin: 0; }
.por-anios { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .8rem; }
.por-anio { display: flex; flex-direction: column; gap: .15rem; height: 100%; background: var(--pj-fondo); border: 1px solid var(--pj-borde); border-radius: .8rem; padding: .8rem 1rem; text-decoration: none; color: var(--pj-texto); transition: border-color .15s, box-shadow .15s, transform .15s; }
.por-anio strong { font-size: 1.15rem; color: var(--pj-verde-900); }
.por-anio small { color: var(--pj-suave); }
.por-anio:hover, .por-anio:focus-visible { border-color: var(--pj-dorado); background: #fff; box-shadow: 0 5px 16px rgba(1, 46, 23, .12); transform: translateY(-2px); }
.por-anio-actual { background: var(--pj-crema); border-color: var(--pj-dorado); border-width: 2px; }
.por-anio-actual strong { color: var(--pj-verde-800); }
@media (max-width: 767.98px) { .por-hero, .por-resumen { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .por-anio { transition: none; } .por-anio:hover { transform: none; } }

/* Sistema de Búsqueda de Sentencias */
.sen-icono { display: grid; place-items: center; gap: .3rem; padding: 2rem 1rem; text-align: center; color: var(--pj-verde-800); }
.sen-icono .bi { font-size: 4.5rem; color: var(--pj-dorado); line-height: 1; }
.sen-icono span { font-size: 1.1rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
