html {
    scroll-behavior: smooth;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: var(--font-main);
    background-color: var(--fondo-principal);
    color: var(--texto-principal);
}

body[data-page="eltribunal"], 
body[data-page="diasinhabiles"] {
    background-image: url('../assets/img/back-pattern-01.png');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: auto;
    background-blend-mode: multiply;
}

/* ========================================= HEADER ========================================= */
header {
    width: 100%;
    z-index: var(--sys-z-index-fixed); 
    display: flex;
    flex-direction: column;
    position: sticky; 
    top: -90px;
}

.top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 4%;
    height: 90px;
    background: var(--sys-color-surface);
    border-bottom: 1px solid var(--sys-color-outline-variant);
}


/* ========================================= LOGOS TOP-BAR (Solo Páginas Interiores) ========================================= */

.topbar-brand {
    display: flex;
    align-items: center;
    gap: var(--sys-space-4); 
}

.topbar-logo-link {
    display: flex; 
    align-items: center;
    height: fit-content; 
}

.topbar-img-main,
.topbar-img-90 {
    display: block;
    max-height: 55px;
    height: auto;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.topbar-separator {
    height: 40px;
    width: 1px;
    background-color: var(--sys-color-outline);
}

body[data-page="inicio"] .topbar-brand {
    display: none;
}

body:not([data-page="inicio"]) header {
    top: 0;
    box-shadow: var(--sys-elevation-2);
    transition: var(--transicion-suave);
}

@media (max-width: 850px) {
    .topbar-img-main {
        max-height: 35px;
    }
    
    .topbar-img-90 {
        display: block;
        max-height: 35px;
    }

    .topbar-separator {
        height: 30px;
        margin: 0 var(--sys-space-1);
    }
}

@media (max-width: 600px) {
    .topbar-img-main {
        max-height: 28px;
    }
    .topbar-img-90 {
        max-height: 28px;
    }
    .topbar-separator {
        display: none;
    }
}

.header-left, .header-right { 
    display: flex; 
    align-items: center; 
    gap: var(--sys-space-5); 
}

.logo-placeholder { 
    font: var(--sys-title-large);
    color: var(--sys-color-primary); 
    font-weight: 700;
}

.search-container {
    display: flex; 
    align-items: center;
    gap: var(--sys-space-2);
    background: var(--sys-color-background);
    border: 1px solid var(--sys-color-outline);
    border-radius: var(--sys-shape-full);
    padding: var(--sys-space-1) var(--sys-space-2) var(--sys-space-1) var(--sys-space-4);
    transition: var(--transicion-suave);
    width: 300px;
    margin-left: auto;       
    margin-right: var(--sys-space-6);      
}

.search-container:focus-within {
    border-color: var(--sys-color-secondary);
    background: var(--sys-color-surface);
    width: 350px;
}

.search-container input {
    background: transparent; 
    border: none; 
    outline: none;
    color: var(--sys-color-primary); 
    font: var(--sys-body-medium);
    width: 100%; 
}

.search-container button {
    background: transparent; 
    border: none; 
    color: var(--sys-color-primary);
    cursor: pointer; 
    transition: var(--transicion-suave);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sys-space-2);
}

.search-container button:hover { 
    color: var(--sys-color-secondary); 
    transform: scale(1.1); 
}

/* ========================================= NAVEGACIÓN DESKTOP ========================================= */

.bottom-nav {
    display: flex;
    justify-content: center;
    width: 100%;
    height: 50px;
    z-index: 1020;
    background-color: var(--sys-color-primary);
    border-bottom: 2px solid var(--sys-color-secondary);
}

nav ul.main-menu {
    display: flex;
    list-style: none;
    gap: var(--sys-space-4);
    margin: 0;
    padding: 0;
    height: 100%;
}

.nav-item {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
}

.main-link {
    text-decoration: none;
    color: var(--blanco);
    font: var(--sys-label-large);
    padding: 0 var(--sys-space-5);
    height: 100%;
    display: flex;
    align-items: center;
    text-transform: uppercase;
    transition: var(--transicion-suave);
    position: relative;
}

.main-link.active-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background-color: var(--sys-color-secondary);
    box-shadow: 0 -2px 10px rgba(182, 114, 56, 0.4);
}

.main-link:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--bronce-claro);
}

.submenu {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--azul-tfja);
    box-shadow: var(--sys-elevation-3);
    list-style: none;
    min-width: 250px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: var(--transicion-suave);
    border-radius: 0 0 var(--sys-shape-small) var(--sys-shape-small);
    z-index: var(--sys-z-index-dropdown);
    border-top: 2px solid var(--sys-color-secondary);
}

.nav-item:hover .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.submenu li a {
    display: block;
    padding: var(--sys-space-3) var(--sys-space-4);
    text-decoration: none;
    color: var(--blanco);
    font: var(--sys-body-medium);
    transition: var(--transicion-suave);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.submenu li:last-child a {
    border-bottom: none;
}

.submenu li a:hover {
    background-color: var(--sys-color-primary);
    color: var(--bronce-claro);
}

/* ========================================= SUB-SUBMENÚ (TERCER NIVEL) ========================================= */

.submenu li {
    position: relative;
}

.has-sub-submenu > a {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sub-submenu {
    position: absolute;
    top: 0;
    left: 100%;
    background-color: var(--azul-tfja);
    box-shadow: var(--sys-elevation-4);
    list-style: none;
    min-width: 240px;
    opacity: 0;
    visibility: hidden;
    transform: translateX(10px);
    transition: var(--transicion-suave);
    border-radius: var(--sys-shape-small);
    z-index: calc(var(--sys-z-index-dropdown) + 1);
    border-left: 2px solid var(--sys-color-secondary);
}

.submenu li:hover > .sub-submenu {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

.sub-submenu li a {
    padding: var(--sys-space-3) var(--sys-space-4);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}


.sub-submenu.open-left {
    left: auto;
    right: 100%;
    transform: translateX(-10px);
    border-left: none;
    border-right: 2px solid var(--sys-color-secondary);
}

.submenu li:hover > .sub-submenu.open-left {
    transform: translateX(0);
}

@media (max-width: 1200px) {
    .sub-submenu {
        position: static;
        display: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        background-color: rgba(0, 0, 0, 0.15);
        border-radius: 0;
        border-left: none;
        box-shadow: inset 0 3px 6px rgba(0,0,0,0.2);
    }

    .submenu li.is-expanded > .sub-submenu {
        display: block;
    }

    .sub-submenu li a {
        padding: var(--sys-space-4) var(--sys-space-4) var(--sys-space-4) 4rem;
        font-size: 0.9em;
        color: rgba(255, 255, 255, 0.7) !important;
    }

    .sub-submenu li a:hover {
        color: var(--bronce-claro) !important;
    }

    .has-sub-submenu > a i {
        transition: transform 0.3s ease;
    }
    
    .has-sub-submenu.is-expanded > a i {
        transform: rotate(90deg);
    }
}

/* ========================================= HERO ========================================= */
.hero-module {
    position: relative;
    width: 100%;
    height: 180px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: var(--sys-color-on-primary);
}


.hero-module::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, var(--sys-color-surface) 0%, transparent 85%);
    z-index: 2;
}


.hero-content {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sys-space-8);
    height: 100%;
    padding: 0 4%;
}

.hero-logo {
    height: 130px;
    background-size: contain; 
    background-repeat: no-repeat;
    background-position: center;
}

.logo-principal {
    width: 350px; 
    background-image: var(--logo-principal);
}

.logo-90 {
    width: 220px; 
    background-image: var(--logo-90-principal);
}

.hero-separator {
    width: 2px;
    height: 120px; 
    background-color: rgba(1, 39, 62, 0.35);
    opacity: 1;
}

/* ========================================= CARRUSEL ========================================= */
.carousel-section {
    padding-top: 60px;
    padding-bottom: 80px;
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
}

.carousel-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding: 0 4%;
}

.carousel-header h2 {
    color: var(--azul-tfja);
}

.carousel-header h2 span.label-large {
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
    color: var(--bronce-tfja);
}

.carousel-controls {
    display: flex;
    gap: 15px;
}

.carousel-wrapper {
    width: 100%;
    padding: 0 4%;
    overflow: hidden;
}

.carousel-track {
    display: flex;
    gap: 25px; 
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.3, 1);
    padding: 15px 0 40px 0; 
    align-items: flex-start;
}

.card {
    flex: 0 0 calc((100% - (25px * 3)) / 4); 
    background: var(--blanco);
    border-radius: var(--sys-shape-medium);
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0,0,0,0.03);
    transition: var(--transicion-suave);
    display: flex;
    flex-direction: column;
    cursor: pointer;
    min-height: 420px
}

.card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(1, 39, 62, 0.1);
    border-color: rgba(182, 114, 56, 0.3);
}

/* --- CABECERAS TEXTURIZADAS DINÁMICAS --- */
.card-textured-header {
    width: 100%; 
    min-height: 130px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    overflow: hidden;
    padding: var(--sys-space-5) var(--sys-space-4);
    
 
    background-color: var(--bg-color, var(--sys-color-primary));
    color: var(--text-color, var(--sys-color-on-primary));
    background-image: var(--bg-texture, none);
    

    background-size: var(--tex-size, cover);
    background-position: var(--tex-position, center);
    background-repeat: no-repeat;
}

.card-textured-header::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.2);
    opacity: 0;
    transition: var(--transicion-suave);
}
.card:hover .card-textured-header::after {
    opacity: 1;
}

.card-title.title-large {
    color: inherit;
    margin-bottom: 0;
    position: relative;
    z-index: 2;
}

/* --- CONTENIDO DE LA CARD --- */
.card-content {
    padding: var(--sys-space-5) var(--sys-space-4); 
    flex-grow: 1;
    display: flex; 
    flex-direction: column;
    justify-content: space-between;
}

.card-text {
    color: var(--texto-secundario);
    margin-bottom: var(--sys-space-5);
}

.card-link {
    margin-top: auto; 
    color: var(--bronce-tfja);
    display: flex; 
    align-items: center; 
    gap: 5px;
    transition: color 0.3s ease;
    text-transform: uppercase; 
    letter-spacing: 1px;
}

.card-link i { width: 16px; height: 16px; transition: transform 0.3s ease; }
.card:hover .card-link { color: var(--azul-claro); }
.card:hover .card-link i { transform: translateX(5px); }

/* --- RESPONSIVE DESIGN DEL CARRUSEL --- */
@media (max-width: 1200px) {
    .card { flex: 0 0 calc((100% - (25px * 2)) / 3); } 
}
@media (max-width: 850px) {
    .card { flex: 0 0 calc((100% - 25px) / 2); } 
}
@media (max-width: 600px) {
    .card { flex: 0 0 100%; } 
    .carousel-header { flex-direction: column; align-items: flex-start; gap: 20px; }
    .carousel-controls { align-self: flex-end; }
}

#carousel-secction{
    scroll-margin-top: 120px; /* ajusta según la altura real de tu header */
}

/* ========================================= CARDS TIPO EXPEDIENTE (Expandibles) ========================================= */
.card-expediente {
    display: flex;
    flex-direction: column;
    min-height: 520px;
    align-self: flex-start;
    background-color: var(--blanco);
}

.card-expediente-textured-header {
    height: 100px;
    background-image: var(--bg-header);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--sys-space-3);
    position: relative;
    color: var(--blanco);
}

.card-expediente-textured-header::before {
    content: '';
    position: absolute;
    inset: 0;
}

.card-expediente-textured-header .card-title {
    position: relative;
    z-index: 2;
    margin: 0;
    color: inherit;
    font-size: 1.1rem;
}

.card-expediente-header {
    padding: var(--sys-space-4) var(--sys-space-4);
}

.card-expediente-header h3 {
    color: var(--azul-tfja);
    margin: 0;
    font-weight: 600;
}

.card-expediente-media {
    height: 180px;
    background-color: var(--bronce-claro);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(1, 39, 62, 0.4);
}

.card-expediente-media i, 
.card-expediente-media svg {
    width: 48px;
    height: 48px;
}

.card-expediente .card-content {
    padding-bottom: var(--sys-space-3);
}

.card-expediente-actions {
    padding: var(--sys-space-2) var(--sys-space-4);
    border-top: 1px solid var(--sys-color-outline-variant);
    display: flex;
    justify-content: flex-end;
    background-color: var(--sys-color-surface);
}

.card-expediente-actions .btn-expand {
    background: transparent;
    border: none;
    box-shadow: none;
    color: var(--texto-secundario);
}

.card-expediente-actions .btn-expand i {
    transition: transform var(--sys-motion-duration-medium) var(--sys-motion-easing-standard);
}

.card-expediente-extra {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--sys-motion-duration-long) var(--sys-motion-easing-standard), 
                padding var(--sys-motion-duration-short) var(--sys-motion-easing-standard);
    padding: 0 var(--sys-space-4);
    background-color: var(--bronze-50);
}

.card.is-expanded .card-expediente-extra {
    max-height: 300px;
    padding: var(--sys-space-4);
    border-top: 1px solid var(--sys-color-outline-variant);
}

.card.is-expanded .btn-expand i {
    transform: rotate(180deg);
}

.card-expediente-image-container {
    height: 180px;
    background-color: var(--bronce-claro);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-expediente-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.btn-text {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: var(--sys-space-2) 0;
    color: var(--azul-claro);
    cursor: pointer;
    transition: color var(--sys-motion-duration-short) var(--sys-motion-easing-standard);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
}

.btn-text:hover,
.btn-text:focus {
    color: var(--azul-tfja);
    text-decoration: underline;
    background: transparent;
}

.card-expediente-extra .btn-conoce-mas {
    margin-top: var(--sys-space-3);
}

/* ========================================= TEXTURAS MODULARES GLOBALES ========================================= */
.pattern-lines { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.06) 0px, rgba(255,255,255,0.06) 10px, transparent 10px, transparent 20px); }
.pattern-dots { background-image: radial-gradient(rgba(255,255,255,0.15) 2px, transparent 2px); background-size: 15px 15px; }
.pattern-radial { background-image: radial-gradient(circle at top right, rgba(255,255,255,0.15) 0%, transparent 80%); }

.pattern-light-lines { background-image: repeating-linear-gradient(45deg, rgba(1, 39, 62, 0.03) 0px, rgba(1, 39, 62, 0.03) 10px, transparent 10px, transparent 20px); }
.pattern-light-dots { background-image: radial-gradient(rgba(1, 39, 62, 0.04) 2px, transparent 2px); background-size: 15px 15px; }
.pattern-light-radial { background-image: radial-gradient(circle at top right, rgba(255,255,255,0.8) 0%, transparent 100%); }

/* ========================================= ACORDEÓN VERTICAL ========================================= */
.accordion-section {
    display: flex;
    width: 100%;
    max-width: none; 
    margin: 0;  
    height: 400px; 
    background-color: var(--sys-color-background);
    overflow: hidden;
    border-top: 1px solid var(--sys-color-outline-variant);
    border-bottom: 1px solid var(--sys-color-outline-variant);
    position: relative;
}

.accordion-section .panel {
    flex: 1;
    position: relative;
    height: 100%;
    cursor: default;
    transition: flex 0.8s var(--sys-motion-easing-standard);
    overflow: hidden;
    border-right: 1px solid var(--sys-color-outline-variant);
    background-color: var(--bg-color, var(--sys-color-background));
}

.accordion-section .panel:last-child { 
    border-right: none; 
}

.accordion-section .panel-bg {
    position: absolute; 
    inset: 0;
    background-image: var(--bg-desktop-closed, none);
    background-position: var(--tex-position, center);
    background-size: var(--tex-size, cover);
    opacity: var(--tex-opacity, 1);
    transition: transform 1.5s ease;
    z-index: 1;
}

.accordion-section .panel::before {
    content: ''; 
    position: absolute; 
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, var(--bg-cerrado, rgba(0,0,0,0.7)) 100%);
    z-index: 2;
    transition: var(--transicion-suave);
}

.accordion-section .panel-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--bg-desktop-active, none);
    background-position: var(--tex-position, center);
    background-size: var(--tex-size, cover);
    opacity: 0;
    transition: opacity 0.8s var(--sys-motion-easing-standard);
    z-index: 3;
}

.accordion-section .panel-content {
    position: absolute; 
    inset: 0; 
    padding: var(--sys-space-5); 
    z-index: 10; 
    display: flex; 
    flex-direction: column; 
    justify-content: flex-end;
}

.accordion-section .panel-title-vertical {
    position: absolute;
    bottom: var(--sys-space-5); 
    left: 50%;
    transform: translateX(-50%) rotate(180deg);
    color: var(--text-color, var(--sys-color-primary));
    writing-mode: vertical-rl; 
    white-space: nowrap; 
    margin: 0;
    transition: opacity 0.4s ease, transform 0.6s ease;
    letter-spacing: 2px; 
    font-weight: 600;
}

.accordion-section .panel-info {
    opacity: 0; 
    transform: translateY(20px);
    transition: all 0.6s var(--sys-motion-easing-standard);
    max-width: 500  px; 
    pointer-events: none;
    position: absolute; 
    left: var(--sys-space-5);
}

.accordion-section .panel-info h4 {
    color: var(--text-color, var(--sys-color-secondary)); 
    margin-bottom: var(--sys-space-1);
}

.accordion-section .panel-info p {
    color: var(--text-color, var(--sys-color-on-surface-variant));
    border-left: 2px solid var(--text-color-muted, var(--sys-color-secondary)); 
    padding-left: var(--sys-space-2);
    display: -webkit-box; 
    -webkit-line-clamp: 3; 
    -webkit-box-orient: vertical; 
    overflow: hidden;
    margin: 0;
}

.accordion-section .panel-info p.no-truncate {
    -webkit-line-clamp: unset;
    display: block;
    overflow: visible;
}

.accordion-section .panel-info .panel-list {
    color: var(--text-color, var(--sys-color-on-surface-variant));
    border-left: 2px solid var(--text-color-muted, var(--sys-color-secondary)); 
    padding-left: 1.5rem;
    margin-top: var(--sys-space-2);
    margin-bottom: 0;
    list-style-type: disc;
}

.accordion-section .panel-info .panel-list li {
    margin-bottom: 6px;
    line-height: 1.3;
    font-size: 0.95rem;
}

.accordion-section .panel:hover, 
.accordion-section .panel.active { 
    flex: 8; 
}

.accordion-section .panel:hover::after, 
.accordion-section .panel.active::after { 
    background: rgba(255,255,255,0); 
}

.accordion-section .panel:hover::before, 
.accordion-section .panel.active::before { 
    opacity: 0.2; 
}

.accordion-section .panel:hover .panel-title-vertical, 
.accordion-section .panel.active .panel-title-vertical {
    opacity: 0; 
    transform: translateX(-50%) rotate(180deg) translateY(20px); 
    pointer-events: none; 
}

.accordion-section .panel:hover .panel-info, 
.accordion-section .panel.active .panel-info {
    opacity: 1; 
    transform: translateY(0); 
    transition-delay: 0.2s; 
    pointer-events: auto; 
    position: relative; 
    left: 0;
}

.accordion-section .panel-foreground {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--sys-space-1) var(--sys-space-5) var(--sys-space-1) var(--sys-space-5);
    pointer-events: none; 
    opacity: 0; 
    transform: translateY(10px);
    transition: all 0.6s var(--sys-motion-easing-standard);
}

.accordion-section .panel-foreground img {
    width: 100%;
    height: 100%;
    max-height: 400px; 
    object-fit: contain;
}

.accordion-section .panel:hover .panel-foreground, 
.accordion-section .panel.active .panel-foreground {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.1s;
}

.accordion-section .display-alt {
    font-family: var(--font-serif);
    font-size: 3.56rem;
    line-height: 1.1;
    font-weight: 400;
    margin-bottom: var(--sys-space-1);
    transition: font-size var(--sys-motion-duration-medium) var(--sys-motion-easing-standard);
}

/* === RESPONSIVE MÓVIL === */
@media (max-width: 850px) {
    .accordion-section { flex-direction: column; height: 600px; } 

    .accordion-section .panel { 
        border-right: none; 
        border-bottom: 1px solid var(--sys-color-outline-variant);
    }

    .accordion-section .panel-bg {
        background-image: var(--bg-mobile-closed, var(--bg-desktop-closed)) !important;
        background-position: var(--tex-position-mobile, var(--tex-position, center)) !important;
        background-size: cover !important;
    }

    .accordion-section .panel-bg::after {
        background-image: var(--bg-mobile-active, var(--bg-desktop-active)) !important;
        background-position: var(--tex-position-mobile, var(--tex-position, center)) !important;
        transition: none !important;
    }

    .accordion-section .panel-content { padding: var(--sys-space-3) var(--sys-space-5); justify-content: center; align-items: flex-start; }
    
    .accordion-section .panel-title-vertical { 
        writing-mode: horizontal-tb; position: relative; left: 0; bottom: 0; 
        transform: none; white-space: normal; width: 100%; opacity: 1; 
        transition: opacity 0.3s var(--sys-motion-easing-standard); 
    }
    
    .accordion-section .panel-info { position: absolute; opacity: 0; transform: translateY(10px); pointer-events: none; }
    .accordion-section .panel:hover, .accordion-section .panel.active { flex: 4; }
    
    .accordion-section .panel:hover .panel-title-vertical, 
    .accordion-section .panel.active .panel-title-vertical { opacity: 0; transform: none; position: absolute; pointer-events: none; }
    
    .accordion-section .panel:hover .panel-info, 
    .accordion-section .panel.active .panel-info { position: relative; opacity: 1; transform: translateY(0); pointer-events: auto; }

    .accordion-section .display-alt {
        font-size: 1.2rem; 
    }
}

/* === BOTÓN DE AUTOPLAY === */
.accordion-autoplay-btn {
    position: absolute;
    bottom: var(--sys-space-4);
    right: var(--sys-space-4);
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--blanco);
    border: none;
    box-shadow: var(--sys-elevation-3);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    color: var(--sys-color-primary);
    transition: transform 0.2s ease;
}

.accordion-autoplay-btn:active { transform: scale(0.95); }

.autoplay-icon-wrapper { position: absolute; display: flex; align-items: center; justify-content: center; }
.autoplay-icon-wrapper svg { width: 18px; height: 18px; }

.progress-ring { position: absolute; top: 0; left: 0; transform: rotate(-90deg); }

@keyframes countdown-ring {
    from { stroke-dashoffset: 113.1; }
    to { stroke-dashoffset: 0; }
}

.progress-ring__circle {
    stroke-dasharray: 113.1;
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 0.1s linear;
}

.accordion-autoplay-btn .icon-play { display: none !important; }
.accordion-autoplay-btn.paused .icon-play { display: block !important; }
.accordion-autoplay-btn.paused .icon-pause { display: none !important; }

.progress-ring__bg { stroke: rgba(1, 39, 62, 0.1); }
.accordion-autoplay-btn.paused .progress-ring__circle { animation-play-state: paused; }

/* ========================================= BOTONES CUADRADOS INSTITUCIONALES ========================================= */
.botones-section {
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
}

.botones-header {
    padding: 0 4%;
    margin-bottom: 2rem;
}

.botones-header h2 {
    color: var(--sys-color-primary, #0A3D5E);
}

.botones-header h2 span.label-large {
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
    color: var(--sys-color-secondary, #B67238);
}

.grid-buttons-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    padding: 0 4%;
}

.grid-buttons-wrapper .botones-header {
    grid-column: 1 / -1;
    padding: 0; 
    margin-top: var(--sys-space-6);
    margin-bottom: var(--sys-space-2);
}

.square-btn {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 130px; 
    width: 100%;   
    padding: 1.5rem;
    text-decoration: none;
    border-radius: var(--sys-shape-medium, 12px);
    overflow: hidden;
    text-align: center;
    transition: transform 0.3s var(--sys-motion-easing-standard), 
                box-shadow 0.3s var(--sys-motion-easing-standard);
    box-shadow: var(--sys-elevation-1);
    background: transparent;
    border: none;
}

.square-btn::before {
    content: '';
    position: absolute;
    top: -10%;
    left: -10%;
    width: 120%;
    height: 120%;
    background-image: var(--btn-img, none);
    background-size: cover; 
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
    animation: paneo-bg-seguro 6s ease-in-out infinite alternate;
}

@keyframes paneo-bg-seguro {
    0% {
        transform: translateX(-4%);
    }
    100% {
        transform: translateX(4%);
}
}

.square-btn::after {
    display: none; 
}

.square-btn .btn-title {
    position: relative;
    z-index: 2;
    margin: 0;
    color: #FFFFFF;
    font-size: 1.15rem;
    font-weight: 500;
    font-family: var(--font-serif);
    text-shadow: 0 2px 4px rgba(0,0,0,0.6);
}

.square-btn .btn-bg-icon {
    position: absolute;
    bottom: -15px;
    right: -10px; 
    width: 85px;
    height: 85px;
    color: var(--icon-color, var(--sys-color-primary)); 
    opacity: 0.06; 
    z-index: 1;
    transition: transform 0.4s ease, opacity 0.4s ease, color 0.4s ease;
}

.square-btn.btn-tall {
    height: 160px;
    padding: 1.5rem 4rem;
}

.square-btn .btn-title {
    display: flex;
    flex-direction: column;
    gap: 8px;
    line-height: 1.2;
}

.square-btn .title-upper {
    font-weight: 700;
    text-transform: uppercase;
    display: block;
}

.square-btn .title-desc {
    font-family: var(--font-main);
    font-weight: 400; 
    font-size: 0.95rem;
    text-transform: none;
    text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}


@media (max-width: 950px) {
    .grid-buttons-wrapper {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .grid-buttons-wrapper {
        grid-template-columns: 1fr;
    }
}

/* ========================================= FOOTER ========================================= */
.main-footer {
    background-color: var(--sys-color-primary);
    color: var(--sys-color-on-primary);
    padding-top: var(--sys-space-8);
    margin-top: var(--sys-space-8);
}

.footer-content {
    max-width: var(--sys-layout-max-width-wide);
    margin: 0 auto;
    padding: 0 4%;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: var(--sys-space-7);
    margin-bottom: var(--sys-space-7);
}

.footer-brand h2 {
    color: var(--sys-color-on-primary);
    margin-bottom: var(--sys-space-3);
}

.footer-brand p {
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: var(--sys-space-5);
    max-width: 90%;
}

.footer-socials {
    margin-top: var(--sys-space-4);
}

.footer-links h3, 
.footer-contact h3 {
    color: var(--sys-color-secondary);
    margin-bottom: var(--sys-space-4);
}

.footer-links ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--sys-space-3);
}

.footer-links a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: color var(--sys-motion-duration-short) var(--sys-motion-easing-standard);
}

.footer-links a:hover {
    color: var(--sys-color-secondary-container);
}

.footer-contact p {
    color: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: flex-start;
    gap: var(--sys-space-2);
    margin-bottom: var(--sys-space-3);
}

.footer-contact i {
    width: var(--sys-icon-size-small);
    height: var(--sys-icon-size-small);
    color: var(--sys-color-secondary);
    flex-shrink: 0;
    margin-top: 2px;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--sys-space-4) 4%;
    text-align: center;
    background-color: var(--sys-color-primary-container);
}

.footer-bottom p {
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 850px) {
    .footer-content {
        grid-template-columns: 1fr;
        gap: var(--sys-space-6);
    }
    .footer-brand p {
        max-width: 100%;
    }
}

/* ========================================= MICROSITIO MASC - VARIABLES Y ESTILOS ========================================= */
:root {
    /* Paleta MASC */
    --masc-primary: #233566;
    --masc-secondary: #6c83b3;
    --masc-accent: #a7d3b9;
    --masc-bg-light: rgba(108, 131, 179, 0.08);
}

.text-masc-primary { color: var(--masc-primary) !important; }
.text-masc-secondary { color: var(--masc-secondary) !important; }
.bg-masc-accent { background-color: var(--masc-accent) !important; color: var(--masc-primary); }

.header-logos-masc { display: flex; align-items: center; }
.logo-masc-img { height: 45px; object-fit: contain; }

.masc-hero { 
    background: var(--masc-bg-light); 
    border-bottom: 1px solid var(--sys-color-outline-variant); 
    text-align: center; 
    padding: var(--sys-space-8) 4%; 
    position: relative; 
}
.masc-hero-content { max-width: 900px; margin: 0 auto; position: relative; z-index: 2; }

.masc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sys-space-6); margin-bottom: var(--sys-space-6); }
@media (max-width: 850px) { .masc-grid-2 { grid-template-columns: 1fr; } }

.masc-card {
    padding: var(--sys-space-5);
    background: var(--sys-color-surface);
    border-radius: var(--sys-shape-medium);
    border-left: 5px solid var(--masc-primary);
    box-shadow: var(--sys-elevation-1);
}
.masc-card.vision { border-left-color: var(--masc-secondary); }

.masc-accordion { display: flex; flex-direction: column; gap: var(--sys-space-3); width: 100%; }
.masc-accordion-item {
    border: 1px solid var(--sys-color-outline-variant);
    border-radius: var(--sys-shape-small);
    overflow: hidden;
    background: var(--sys-color-surface);
}
.masc-accordion-header {
    width: 100%;
    padding: var(--sys-space-4);
    background: transparent;
    border: none;
    text-align: left;
    font: var(--sys-title-medium);
    color: var(--masc-primary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background 0.3s ease;
}
.masc-accordion-header:hover { background: var(--masc-bg-light); }
.masc-accordion-header i { transition: transform 0.3s ease; color: var(--masc-secondary); }
.masc-accordion-header.active i { transform: rotate(180deg); }
.masc-accordion-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--sys-color-background);
}
.masc-accordion-content { padding: var(--sys-space-4); font: var(--sys-body-medium); color: var(--texto-secundario); border-top: 1px solid var(--sys-color-outline-variant); }

#accordion-masc-container .panel {
    flex: 0.6; 
}

#accordion-masc-container .panel:hover, 
#accordion-masc-container .panel.active {
    flex: 8; 
}

@media (max-width: 850px) {
    #accordion-masc-container .panel {
        flex: 1; 
    }
    #accordion-masc-container .panel:hover, 
    #accordion-masc-container .panel.active {
        flex: 4; 
    }
}

.masc-hero-compact {
    background-image: url('/assets/img/navbar-bg-institucionales.png'); 
    background-size: cover;
    background-position: center;
    border-radius: 8px;
    padding: 3rem 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.masc-hero-compact-content {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}

.masc-hero-compact h1 {
    color: var(--masc-primary);
    margin: 0;
    line-height: 1.2;
}

@media (max-width: 768px) {
    .masc-hero-compact {
        padding: 2rem 1rem;
    }
}

.masc-square-btn {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    height: auto;
    min-height: 220px;
    width: 100%;
    padding: 2rem 2rem 0.2rem 2rem;
    text-decoration: none;
    border-radius: var(--sys-shape-medium);
    overflow: hidden;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    background: var(--sys-color-surface);
    border: 1px solid var(--sys-color-outline-variant);
    box-shadow: var(--sys-elevation-1);
}

.masc-square-btn:hover {
    transform: translateY(-5px);
    box-shadow: var(--sys-elevation-3);
    border-color: var(--masc-secondary);
}

.masc-square-btn .btn-title {
    position: relative;
    z-index: 2;
    margin: 0;
    font-weight: 500;
    font-size: 1.25rem;
    line-height: 1.2;
    color: var(--masc-primary);
    font-family: var(--font-serif);
    letter-spacing: 0.5px;
}

.masc-square-btn .btn-bg-icon {
    position: absolute;
    bottom: -15px;
    right: -10px;
    width: 100px;
    height: 100px;
    color: var(--masc-secondary);
    opacity: 0.05;
    z-index: 1;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.masc-square-btn:hover .btn-bg-icon {
    transform: scale(1.1);
    opacity: 0.1;
}

/* ========================================= BREADCRUMBS ========================================= */
.breadcrumb-container {
    padding: var(--sys-space-4) 4%;
    background-color: var(--sys-color-background);
    border-bottom: 1px solid var(--sys-color-outline-variant);
}

.breadcrumb-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    list-style: none;
    gap: var(--sys-space-2);
    max-width: var(--sys-layout-max-width-wide);
    margin: 0 auto;
}

.breadcrumb-item {
    display: flex;
    align-items: center;
    font: var(--sys-label-medium);
    color: var(--sys-color-on-surface-variant);
}

.breadcrumb-link {
    color: var(--sys-color-primary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: var(--sys-space-1);
    padding: var(--sys-space-1) var(--sys-space-2);
    border-radius: var(--sys-shape-extra-small);
    transition: background-color var(--sys-motion-duration-short) var(--sys-motion-easing-standard), 
                color var(--sys-motion-duration-short) var(--sys-motion-easing-standard);
}

.breadcrumb-link i, 
.breadcrumb-link svg {
    width: 14px;
    height: 14px;
}

.breadcrumb-link:hover {
    background-color: var(--sys-color-outline-variant);
    color: var(--sys-color-primary);
}

.breadcrumb-link:focus-visible {
    outline: var(--sys-focus-ring-width) solid var(--sys-focus-ring-color);
    outline-offset: var(--sys-focus-ring-offset);
}

.breadcrumb-link:active {
    background-color: var(--sys-color-outline);
    transform: scale(0.98);
}

.breadcrumb-item.active {
    color: var(--sys-color-secondary);
    font-weight: 600;
    padding: var(--sys-space-1) var(--sys-space-2);
}

.breadcrumb-item.separator i {
    width: 14px; 
    height: 14px;
    color: var(--sys-color-outline);
}

/* ========================================= PÁGINA: HISTORIA / QUIÉNES SOMOS ========================================= */
.page-header {
    position: relative;
    z-index: var(--sys-z-index-base); 
    top: auto; 
    padding: var(--sys-space-8) 4% var(--sys-space-4);
    text-align: center;
    background-color: var(--sys-color-surface);
}

.page-header h1 {
    color: var(--sys-color-primary);
    margin-bottom: var(--sys-space-3);
}

.page-header p {
    max-width: 700px;
    margin: 0 auto;
    color: var(--sys-color-on-surface-variant);
}

.timeline-container {
    max-width: var(--sys-layout-max-width);
    margin: 0 auto;
    padding: var(--sys-space-8) 4%;
    position: relative;
}

.timeline-container::before {
    content: '';
    position: absolute;
    top: var(--sys-space-8);
    bottom: var(--sys-space-8);
    left: 50%;
    width: 2px;
    background-color: var(--sys-color-secondary);
    transform: translateX(-50%);
    opacity: 0.4;
}

.timeline-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--sys-space-7);
    position: relative;
    width: 100%;
}

.timeline-item:nth-child(even) {
    flex-direction: row-reverse;
}

.timeline-marker {
    width: 20px;
    height: 20px;
    background-color: var(--sys-color-surface);
    border: 4px solid var(--sys-color-secondary);
    border-radius: var(--sys-shape-full);
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    box-shadow: var(--sys-elevation-1);
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.timeline-item:hover .timeline-marker {
    transform: translateX(-50%) scale(1.3);
    background-color: var(--sys-color-secondary-container);
}

.timeline-content {
    width: 45%;
    background: var(--sys-color-surface);
    padding: var(--sys-space-5);
    border-radius: var(--sys-shape-medium);
    box-shadow: var(--sys-elevation-1);
    border: 1px solid var(--sys-color-outline-variant);
    transition: var(--transicion-suave);
    position: relative;
}

.timeline-content:hover {
    box-shadow: var(--sys-elevation-3);
    border-color: rgba(182, 114, 56, 0.4);
    transform: translateY(-5px);
}

.timeline-year {
    font: var(--sys-headline-small);
    color: var(--sys-color-secondary);
    margin-bottom: var(--sys-space-2);
    font-weight: 700;
}

.timeline-content h3 {
    margin-bottom: var(--sys-space-2);
}

.timeline-content p {
    margin-bottom: 0;
}

@media (max-width: 850px) {
    .timeline-container::before {
        left: 24px;
    }
    
    .timeline-marker {
        left: 24px;
    }
    
    .timeline-item, 
    .timeline-item:nth-child(even) {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .timeline-content {
        width: calc(100% - 60px);
        margin-left: 60px;
    }
    
    .timeline-item:hover .timeline-marker {
        transform: translateX(-50%) scale(1.2);
    }
}

/* ========================================= PÁGINA: DÍAS INHÁBILES (Estilo Agrupado por Mes Actualizado) ========================================= */

.clean-list-container {
    max-width: 1050px;
    margin: 0 auto;
    padding: var(--sys-space-2) 4% var(--sys-space-9);
}

/* --- FUNDAMENTO LEGAL (Superior) --- */
.fundamento-legal {
    background-color: var(--sys-color-surface);
    border: 1px solid var(--sys-color-outline-variant);
    border-left: 4px solid var(--sys-color-secondary);
    padding: var(--sys-space-5);
    border-radius: var(--sys-shape-small);
    margin: var(--sys-space-7) 0;
    color: var(--sys-color-on-surface-variant);
    box-shadow: var(--sys-elevation-1);
}

.fundamento-legal p {
    margin: 0;
    line-height: 1.6;
}

.holiday-list-grouped {
    display: flex;
    flex-direction: column;
}

.holiday-month-group {
    display: flex;
    align-items: flex-start;
    border-bottom: 1px solid var(--sys-color-outline); 
    transition: opacity var(--sys-motion-duration-medium) ease;
    padding: var(--sys-space-1) 0;
}

.holiday-month-group:last-child {
    border-bottom: none;
}

.holiday-month-group.is-past {
    opacity: 0.5; 
}

.holiday-month-group.is-past .holiday-month-label,
.holiday-month-group.is-past .holiday-day,
.holiday-month-group.is-past .holiday-name {
    color: var(--texto-secundario);
    font-weight: 400; 
}

.holiday-month-label {
    flex: 0 0 200px; 
    font: var(--sys-title-medium); 
    color: var(--sys-color-primary);
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: var(--sys-space-2) 0;
    
    position: sticky;
    top: 90px; 
}

.holiday-events {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--sys-space-2);
}

.holiday-item {
    display: flex;
    align-items: flex-start;
    padding: var(--sys-space-2) var(--sys-space-4); 
    border-bottom: 1px dashed var(--sys-color-outline-variant); 
    border-radius: var(--sys-shape-small);
    transition: background-color var(--sys-motion-duration-short) ease;
}

.holiday-item:last-child {
    border-bottom: none; 
}

.holiday-item:hover {
    background-color: rgba(1, 39, 62, 0.03);
}

/* --- COLUMNA 2: FECHA Y DÍA --- */
.holiday-date {
    flex: 0 0 300px; 
    display: flex;
    flex-direction: column;
    gap: var(--sys-space-1);
    padding-right: var(--sys-space-4);
}

.holiday-weekday {
    font: var(--sys-label-medium);
    color: var(--sys-color-on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.holiday-day {
    font: var(--sys-body-large);
    color: var(--sys-color-primary);
    font-weight: 700;
    line-height: 1.1;
}

.holiday-name {
    flex: 1; 
    font: var(--sys-body-large);
    color: var(--sys-color-on-surface);
    padding-top: 5px;
}

@media (max-width: 850px) {
    .holiday-month-group {
        flex-direction: column;
    }
    
    .holiday-month-label {
        flex: auto;
        width: 100%;
        padding: var(--sys-space-1) 0;
        position: relative;
        top: 0; 
        border-bottom: 2px solid var(--sys-color-outline-variant);
        font: var(--sys-headline-medium);
        margin-bottom: var(--sys-space-3);
    }

    .holiday-item {
        flex-direction: column;
        gap: var(--sys-space-2);
        padding: var(--sys-space-4);
    }

    .holiday-date {
        flex: auto;
        width: 100%;
    }
}

/* ========================================= HERO STICKY ========================================= */
#hero-container {
    position: sticky;
    top: 50px;
    z-index: 1010;
}

.hero-module,
.hero-logo,
.hero-separator {
    transition: all 0.4s cubic-bezier(0.25, 1, 0.3, 1);
}

body.is-scrolled .hero-module {
    height: 90px;
    border-bottom: 1px solid var(--sys-color-outline-variant);
    box-shadow: var(--sys-elevation-2);
}

body.is-scrolled .logo-principal {
    width: 200px;
    height: 50px;
}

body.is-scrolled .logo-90 {
    width: 120px;
    height: 50px;
}

body.is-scrolled .hero-separator {
    height: 40px;
}

.submenu li a i, 
.submenu li a svg {
    width: 16px;
    height: 16px;
    opacity: 0.8;
    transition: transform var(--sys-motion-duration-short) var(--sys-motion-easing-standard);
}

.submenu li a:hover i,
.submenu li a:hover svg {
    transform: scale(1.1);
    opacity: 1;
}

.accordion-section .display-large {
    font-size: 4.8rem;
    line-height: 1.1;
    transition: font-size var(--sys-motion-duration-medium) var(--sys-motion-easing-standard);
}

@media (max-width: 850px) {
    .accordion-section .display-large {
        font-size: 3.5rem;
    }
}
@media (max-width: 600px) {
    .accordion-section .display-large {
        font-size: 2.8rem;
    }
}

.accordion-section .panel:hover .panel-bg::after,
.accordion-section .panel.active .panel-bg::after {
    opacity: 1;
}

/* ========================================= RESPONSIVO: MENÚ HAMBURGUESA Y HERO ========================================= */

.mobile-menu-btn {
    display: none;
}

@media (max-width: 1200px) {
    #hero-container {
        position: sticky;
        top: 90px;
        z-index: 1010;
    }

    header {
        top: 0 !important;
        position: sticky;
        background-color: var(--sys-color-surface);
    }

    .mobile-menu-btn {
        display: inline-flex;
        z-index: 1050;
    }
    
    .social-links {
        display: none;
    }

    .search-container {
        width: 100%;
        max-width: 200px;
        margin-right: var(--sys-space-2);
    }
    
    .bottom-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background-color: var(--sys-color-primary) !important;
        height: auto;
        max-height: 80vh;
        overflow-y: auto;
        padding: 0;
        box-shadow: var(--sys-elevation-3);
        z-index: 1100;
        border-bottom: 3px solid var(--sys-color-secondary);
    }

    .bottom-nav.is-open {
        display: block !important;
    }

    nav ul.main-menu {
        flex-direction: column;
        gap: 0;
        height: auto;
    }

    .nav-item {
        width: 100%;
        display: block;
        border-bottom: 1px solid var(--sys-color-outline-variant);
    }

    .main-link {
        color: var(--blanco) !important;
        justify-content: flex-start;
        padding: var(--sys-space-5) var(--sys-space-4);
        height: auto;
        width: 100%;
        border-left: 6px solid transparent;
    }

    .submenu {
        position: static;
        display: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        background-color: var(--azul-claro);
        border-radius: 0;
        border-top: none;
        box-shadow: inset 0 5px 10px rgba(0,0,0,0.2);
    }

    .main-link.active-link {
        background-color: rgba(255, 255, 255, 0.1) !important;
        border-left: 6px solid var(--sys-color-secondary);
        color: var(--bronce-claro) !important;
    }

    .main-link.active-link::after {
        display: none;
    }

    .nav-item.is-expanded .submenu {
        display: block;
    }

    .submenu li a {
        padding: var(--sys-space-5) var(--sys-space-4) var(--sys-space-5) var(--sys-space-8);
        color: rgba(255, 255, 255, 0.9) !important;
    }

    .hero-content {
        gap: var(--sys-space-4);
    }
    .logo-principal {
        width: 180px; 
    }
    .logo-90 {
        width: 90px; 
    }
}

/* ============================================================ Magistrados ============================================================ */
.magistrados-main-container {
    background-color: var(--sys-color-background);
    padding-bottom: var(--sys-space-9);
    width: 100%;
}

.magistrados-page-header {
    text-align: center;
    padding: var(--sys-space-7) 4% var(--sys-space-5);
    background-color: var(--sys-color-surface);
    width: 100%;
}

.magistrados-main-title {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    font-weight: 400;
    color: var(--sys-color-primary);
    margin: 0;
    letter-spacing: 0.5px;
}

.magistrados-title-divider {
    width: 80px;
    height: 2px;
    background-color: var(--sys-color-secondary);
    margin: var(--sys-space-3) auto 0;
}

.magistrados-hero-image-section {
    width: 100%;
    background-color: var(--sys-color-surface);
}

.magistrados-hero-placeholder {
    width: 100%;
    max-height: 400px;
    overflow: hidden;
    position: relative;
    background-color: var(--sys-color-surface-variant);
}

.magistrados-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    display: block;
}

.magistrados-hero-fallback {
    display: none;
    width: 100%;
    height: 300px;
    align-items: center;
    justify-content: center;
    font-family: var(--font-main);
    color: var(--texto-secundario);
    font-style: italic;
}

.magistrados-content-wrapper {
    max-width: var(--sys-layout-max-width);
    margin: 0 auto;
    padding: var(--sys-space-6) 4%;
    display: flex;
    flex-direction: column;
    gap: var(--sys-space-3);
}

.magistrados-accordion-block {
    background-color: var(--sys-color-surface);
    border-radius: var(--sys-shape-small);
    box-shadow: var(--sys-elevation-1);
    transition: box-shadow var(--sys-motion-duration-short) ease;
}

.magistrados-accordion-block:hover {
    box-shadow: var(--sys-elevation-2);
}

.magistrados-accordion-header {
    padding: var(--sys-space-4) var(--sys-space-5);
    border-radius: var(--sys-shape-small);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color var(--sys-motion-duration-short) ease;
}

.magistrados-accordion-block:not(.active) .magistrados-accordion-header:hover {
    background-color: var(--blue-800);
}

.accordion-icon {
    width: 24px;
    height: 24px;
    transition: transform var(--sys-motion-duration-short) ease;
}

.magistrados-accordion-body {
    display: none;
    padding: var(--sys-space-6) var(--sys-space-5);
    background-color: var(--sys-color-surface);
    border: 1px solid var(--sys-color-outline-variant);
    border-top: none;
    border-radius: 0 0 var(--sys-shape-small) var(--sys-shape-small);
}

.magistrados-accordion-block.active .magistrados-accordion-body {
    display: block;
}

.magistrados-accordion-block.active .magistrados-accordion-header {
    border-radius: var(--sys-shape-small) var(--sys-shape-small) 0 0;
}


.tfja-bg-primary { background-color: var(--azul-tfja, #003366); color: var(--tfja-white, #fff); }
.tfja-bg-secondary { background-color: var(--azul-tfja, #f0f0f0); color: var(--tfja-white, #333); }
.text-white { color: var(--tfja-white, #fff) !important; }

.magistrados-subsection {
    margin-bottom: var(--sys-space-7);
}

.magistrados-subsection-title {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    color: var(--sys-color-primary);
    margin-bottom: var(--sys-space-5);
    font-weight: 400;
    border-bottom: 1px solid var(--sys-color-outline-variant);
    padding-bottom: var(--sys-space-2);
}

.magistrados-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sys-space-6) var(--sys-space-5);
}

.tfja-trigger-item {
    display: flex;
    align-items: center;
    gap: var(--sys-space-3);
    position: relative;
    padding: var(--sys-space-2);
    border-radius: var(--sys-shape-small);
    transition: background-color var(--sys-motion-duration-short) ease;
    cursor: pointer;
}

.tfja-trigger-item:hover {
    background-color: var(--sys-color-surface-variant);
}

.magistrado-avatar {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    background-color: #B0BEC5; 
    flex-shrink: 0;
    border: 2px solid transparent;
    transition: border-color var(--sys-motion-duration-short) ease;
}

.tfja-trigger-item:hover .magistrado-avatar {
    border-color: var(--sys-color-secondary);
}

.magistrado-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.magistrado-role {
    font-family: var(--font-main);
    font-size: var(--sys-body-small);
    color: var(--texto-secundario);
    margin-bottom: 2px;
}

.magistrado-name {
    font-family: var(--font-main);
    font-size: 0.85rem;
    color: var(--sys-color-primary);
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.2;
}

.magistrado-hover-card {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px) scale(0.95);
    width: 320px;
    background-color: var(--sys-color-surface);
    border-radius: var(--sys-shape-medium);
    z-index: 100;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: all 0.3s var(--sys-motion-easing-standard);
}

.tfja-trigger-item:hover .magistrado-hover-card {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(5px) scale(1);
    pointer-events: auto;
}

.magistrado-hover-card::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 12px;
    height: 12px;
    background-color: var(--sys-color-surface);
    border-top: 1px solid var(--bronce-tfja);
    border-left: 1px solid var(--bronce-tfja);
    z-index: 1;
}

.magistrado-avatar {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    background-color: #B0BEC5;
    flex-shrink: 0;
    border: 2px solid transparent;
    transition: border-color var(--sys-motion-duration-short) ease;
    overflow: hidden; 
}

.magistrado-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.hover-card-photo-container {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: var(--sys-shape-medium);
}

.tfja-avatar-portrait {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: var(--tfja-neutral-light, #f0f0f0);
    display: flex;
    align-items: center;
    justify-content: center;
    font-style: italic;
    color: var(--tfja-neutral-dark, #333);
    overflow: hidden;
}

.tfja-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.hover-card-overlay {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(51, 51, 51, 0.8);
}

.hover-card-content {
    position: relative;
    z-index: 10;
    padding: var(--sys-space-4);
    display: flex;
    flex-direction: column;
}

.hover-card-title {
    font-family: var(--font-primary, sans-serif);
    font-size: var(--sys-headline-medium);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--tfja-white, #fff);
    margin-bottom: var(--sys-space-1);
    letter-spacing: 0.5px;
}

.hover-card-role-detailed {
    font-family: var(--font-primary, sans-serif);
    font-size: var(--sys-label-medium);
    font-weight: 600;
    color: var(--tfja-white, #fff);
    margin-bottom: var(--sys-space-3);
    margin-top: 0;
}

.hover-card-text {
    font-family: var(--font-main, sans-serif);
    font-size: var(--sys-body-small);
    color: var(--tfja-white, #fff);
    margin-bottom: var(--sys-space-4);
    line-height: 1.4;
}

.hover-card-link {
    display: inline-flex;
    align-items: center;
    gap: var(--sys-space-1);
    font-family: var(--font-main, sans-serif);
    font-size: var(--sys-label-small);
    color: var(--tfja-white, #fff);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.hover-card-link:hover {
    color: var(--tfja-maroon, #800000);
}

.hover-card-link i {
    width: 14px;
    height: 14px;
    transition: transform 0.2s ease;
}

.hover-card-link:hover i {
    transform: translateX(4px);
}

.tfja-card-shadow { box-shadow: var(--tfja-card-shadow, 0 8px 16px rgba(0, 0, 0, 0.1)); }

@media (max-width: 992px) {
    .magistrados-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .magistrados-grid { grid-template-columns: 1fr; gap: var(--sys-space-5); }
    .magistrados-main-title { font-size: 2rem; }
    
    .magistrado-hover-card {
        left: 0;
        transform: translateX(0) translateY(10px) scale(0.95);
        width: 100%;
    }
    .magistrado-hover-card::before { left: 35px; }
    .tfja-trigger-item:hover .magistrado-hover-card {
        transform: translateX(0) translateY(5px) scale(1);
    }
}

/* ========================================= Listados adicionales ========================================= */

.listado26{
 
    display: flex;
    flex-direction: column;
    font-family: var(--card-font-family);
    background: var(--card-bg);
    border-radius: var(--card-border-radius);
    box-shadow: var(--card-shadow);
    border: 1px solid transparent;
    overflow: hidden;
    transition: var(--card-transition);
    position: relative;  
 
    padding: 1rem;
    margin-bottom: 1rem;
}
 
.listado26:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(1, 39, 62, 0.1);
    border-color: rgba(182, 114, 56, 0.3);
}
 
.listado26 a{
    text-decoration: none;
    color: var(--color-primario-700);
    font-weight: 700;
   
}

.nav26 {
    --bs-nav-link-padding-x: 1rem;
    --bs-nav-link-padding-y: 0.5rem;
    --bs-nav-link-color: #01273E;
    --bs-nav-link-hover-color: #004ac2;
    --bs-nav-link-disabled-color: #8C98A4;
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none
}
 
/*cards custom height*/

.card, .card-expediente {
min-height: 340px!important;
}

/*borrar hi titulos*/

h1:nth-of-type(2) {
    display: none;
}

/* CAROUSEL STYLES */
        .carousel {
            position: relative;
        }
 
        .carousel-inner {
            position: relative;
            overflow: hidden;
            width: 100%;
            border-radius: 12px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
        }
 
        .carousel-item {
            display: none;
            transition: opacity 0.5s ease-in-out;
        }
 
        .carousel-item.active {
            display: block;
        }
 
        .carousel-item img {
            aspect-ratio: 4/3;
        }
 
        .carousel-indicators {
            position: absolute;
            bottom: 15px;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            gap: 8px;
            z-index: 10;
            padding: 0;
            margin: 0;
            list-style: none;
        }
 
        .carousel-indicators button {
            width: 12px;
            height: 12px;
            border-radius: 50%;
            border: 2px solid #fff;
            background: rgba(255, 255, 255, 0.5);
            cursor: pointer;
            transition: all 0.3s ease;
            padding: 0;
        }
 
        .carousel-indicators button.active,
        .carousel-indicators button:hover {
            background: #B67338;
            border-color: #B67338;
            transform: scale(1.2);
        }
 
        .carousel-control-next:focus,
        .carousel-control-next:hover,
        .carousel-control-prev:focus,
        .carousel-control-prev:hover {
            color: #fff;
            text-decoration: none;
            outline: 0;
            opacity: .9
        }
 
        .carousel-control-prev {
            left: 0
        }
 
        .carousel-control-next {
            right: 0
        }

        .carousel-control-next,
        .carousel-control-prev {
            position: absolute;
            top: 0;
            bottom: 0;
            z-index: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 15%;
            padding: 0;
            color: #fff;
            text-align: center;
            background: 0 0;
            border: 0;
            opacity: .5;
            transition: opacity .15s ease
        }
 
        .carousel-control-next-icon,
        .carousel-control-prev-icon {
            display: inline-block;
            width: 2rem;
            height: 2rem;
            background-repeat: no-repeat;
            background-position: 50%;
            background-size: 100% 100%
        }
 
        .carousel-control-prev-icon {
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")
        }
 
        .carousel-control-next-icon {
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")
        }
 
        .visually-hidden {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            border: 0;
        }

        .file-icon {
padding-right: 0.5rem;
font-size: 1.5rem;
}


/* ========================================= Filosofía ========================================= */
        .filosofia-main-container {
            max-width: var(--sys-layout-max-width);
            margin: 0 auto;
            padding: var(--sys-space-7) 4% var(--sys-space-9);
            display: flex;
            flex-direction: column;
            gap: var(--sys-space-8);
            box-sizing: border-box;
        }
		
		.mision-vision-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--sys-space-9);
            align-items: start;
        }

/* ========================================= orden del día/notas ========================================= */		
		
		.ordenota-container {
		padding-top:0 !important;
		background-color: var(--blanco); 
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 40px 60px;

		box-shadow: none;
		border-radius: 0;
		}
		
		.ordenota-container p {
			line-height: 1.6;
			color: #1a1a1a !important;
	
		}
		
		.ordenota-container p.fechaordenota {
			text-align: right;
			line-height: 1.1;
			margin: 20px 0 0 0;
		}

		.ordenota-container p.leyenda-anual {
			text-align: right;
			font-style: italic;
			display: block;
			margin: 0 0 1.5em 0;
		}
		
		.ordenota-container p.asunto,
		.ordenota-container p.dia,
		.ordenota-container p.hora {
			text-align: right;
			line-height: 1.2 !important;  
			margin-top: 0 !important;    
			margin-bottom: 3px !important;  
		}
		
		.ordenota-container p.dirigido {
			text-align: justify;
			margin-top: 1.875em !important;
			font-weight: bold;
			margin-bottom: 1.5em !important;  
		}
		
		.ordenota-container p.ordenota-center {
			text-align: center;
			margin-bottom: 2rem;
		}
		

		.ordenota-container p.txtordenota-justify {
			text-align: justify;
		}
		
		.ordenota-container p.txtordenota-justifyidentado {
			text-align: justify;
			margin-left: 45px;
		}

		.ordenota-container p.titulordenota-center {
			text-align: center;
			margin: 1.5em 0;
			font-weight: bold;
			margin-bottom: 2rem;
		}

/* ========================================= título dorado mayúsculas ========================================= */		
	.titdormay {
		display: inline-flex;
		align-items: center;
		gap: var(--sys-space-2);
		font: var(--sys-label-large);
		letter-spacing: 1.5px;
		text-transform: uppercase;
		color: var(--sys-color-secondary);
		margin-top: var(--sys-space-6);
		margin-bottom: var(--sys-space-6);
	}
	
	.titdormay::before {
		content: '';
		width: 20px;
		height: 2px;
		background: var(--sys-color-secondary);
	}
	
	/* ========================================= enlaces dorados en tablas ========================================= */
	.dt__td a {
		color: var(--sys-color-secondary);
		text-decoration: none;
		text-shadow: 0 0 8px rgba(182, 114, 56, 0.4);
	}

	.dt__td a:visited {
		color: var(--sys-color-secondary);
	}
	
/* ========================================= LISTAS INSTITUCIONALES CON FECHA ========================================= */


.lista-fecha-container {
    max-width: 1050px;
    margin: 0 auto;
    padding: var(--sys-space-7) 4%;
}

/* --- Agrupado opcional por mes (usado en boletines) --- */
.lista-fecha-month-group {
    display: flex;
    flex-direction: column;
    padding: var(--sys-space-5) 0;

}

.lista-fecha-month-group:last-child {
    border-bottom: none;
}

.lista-fecha-month-label {
    display: flex;
    align-items: center;
    gap: var(--sys-space-3);
    font: var(--sys-title-medium);
    color: var(--sys-color-primary);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: var(--sys-space-4);
}

.lista-fecha-month-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--sys-color-outline-variant);
}

/* --- Lista plana (usada en avisos de visita, sin agrupar por mes) --- */
.lista-fecha-list {
    display: flex;
    flex-direction: column;
    gap: var(--sys-space-3);
}

/* --- Tarjeta / fila --- */
.lista-fecha-item {
    display: flex;
    align-items: stretch;
    gap: var(--sys-space-4);
    background: var(--sys-color-surface);
    border: 1px solid var(--sys-color-outline-variant);
    border-radius: var(--sys-shape-medium);
    padding: var(--sys-space-4);
    text-decoration: none;
    box-shadow: var(--sys-elevation-1);
    transition: var(--transicion-suave);
}

.lista-fecha-item:hover {
    box-shadow: var(--sys-elevation-2);
    border-color: rgba(182, 114, 56, 0.35);
    transform: translateY(-3px);
}

/* --- Insignia de fecha (día único, como en boletines) --- */
.lista-fecha-date {
    flex: 0 0 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-right: var(--sys-space-4);
    border-right: 1px solid var(--sys-color-outline-variant);
}

.lista-fecha-day {
    font: 700 1.6rem/1.1 var(--font-serif);
    color: var(--sys-color-primary);
}

.lista-fecha-weekday-month {
    font: var(--sys-label-small);
    text-transform: uppercase;
    color: var(--sys-color-secondary);
    letter-spacing: 0.5px;
    margin-top: 2px;
}

.lista-fecha-date.is-pending .lista-fecha-day {
    color: var(--sys-color-on-surface-variant);
    font-size: 1.4rem;
}

/* --- Insignia de rango de fechas (usada en avisos de visita) --- */
.lista-fecha-date.is-range {
    flex-basis: 90px;
}

.lista-fecha-date.is-range .lista-fecha-day {
    font-size: 1.2rem;
    line-height: 1.2;
}

.lista-fecha-date.is-range.is-cross-month .lista-fecha-day {
    font-size: 0.95rem;
    font-weight: 700;
    font-family: var(--font-main);
}

/* --- Cuerpo --- */
.lista-fecha-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    min-width: 0;
}

.lista-fecha-tag {
    font: var(--sys-label-small);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--sys-color-secondary);
}

.lista-fecha-tag.is-pending {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--sys-color-on-surface-variant);
}

.lista-fecha-tag.is-pending::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--sys-color-outline);
}

.lista-fecha-link {
    display: flex;
    align-items: center;
    gap: var(--sys-space-2);
    font: var(--sys-body-large);
    color: var(--sys-color-on-surface);
    text-decoration: none;
    line-height: 1.35;
    transition: color var(--sys-motion-duration-short) var(--sys-motion-easing-standard);
}

.lista-fecha-item:hover .lista-fecha-link {
    color: var(--sys-color-secondary);
}

/* --- Insignia PDF (usada en avisos de visita) --- */
.lista-fecha-pdf-badge {
    flex-shrink: 0;
    font: var(--sys-label-small);
    letter-spacing: 0.5px;
    color: var(--sys-color-on-surface-variant);
    border: 1px solid var(--sys-color-outline);
    border-radius: var(--sys-shape-extra-small);
    padding: 2px 6px;
    transition: var(--transicion-suave);
}

.lista-fecha-item:hover .lista-fecha-pdf-badge {
    border-color: var(--sys-color-secondary);
    color: var(--sys-color-secondary);
}

@media (max-width: 1050px) {
    .lista-fecha-item {
        padding: var(--sys-space-3);
    }
    .lista-fecha-date {
        flex-basis: 52px;
        padding-right: var(--sys-space-3);
    }
    .lista-fecha-date.is-range {
        flex-basis: 74px;
    }
    .lista-fecha-day {
        font-size: 1.3rem;
    }
    .lista-fecha-date.is-range .lista-fecha-day {
        font-size: 1.05rem;
    }
}
/* ========================================= contenedor texto ========================================= */		
			
	.txt-container {
		padding-top: 0 !important;
		background-color: var(--blanco);
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 60px;
		box-shadow: none;
		border-radius: 0;

		/* --- Cierra el hueco gris entre el <h1> y este contenedor --- */
		margin-top: -10px;
		position: relative;
		z-index: 1;
	}

		/* Tablet: el bootstrap gutter suele achicarse un poco */
		@media (max-width: 850px) {
		.txt-container {
				margin-top: -14px;
			}
		}

		/* Móvil: el <br> y el mb-4 ocupan menos espacio vertical */
		@media (max-width: 600px) {
			.txt-container {
				margin-top: -10px;
				padding: 30px 20px; /* aprovecho para reducir el padding lateral en móvil, se ve muy apretado con 60px en pantallas chicas */
			}
		}

		.txt-container p {
			line-height: 1.6;
			color: #1a1a1a !important;
	
		}
		
		.txt-container p.fecha {
			text-align: right;
			line-height: 1.1;
			margin: 20px 0 0 0;
		}

		.txt-container p.leyenda-anual {
			text-align: right;
			font-style: italic;
			display: block;
			margin: 0 0 1.5em 0;
		}
		
		
		.txt-container p.trb {
			text-align: right;
			display: block;
			font-weight: bold;
			margin: 0 0 1.5em 0;
		}
		
		.txt-container p.asunto,
		.txt-container p.dia,
		.txt-container p.hora {
			text-align: right;
			line-height: 1.2 !important;  
			margin-top: 0 !important;    
			margin-bottom: 3px !important;  
		}
		
		.txt-container p.dirigido {
			text-align: justify;
			margin-top: 1.875em !important;
			font-weight: bold;
			margin-bottom: 1.5em !important;  
		}
		
		/* === Titulo centrado ===*/
		
		.txt-container p.tc {
			text-align: center;
			margin-bottom: 2rem;
		}
		
		/* === Texto justificado === */
		.txt-container p.tj {
			text-align: justify;
		}
		
		/* === Texto justificado negritas === */
		.txt-container p.tjb {
			text-align: justify;
			font-weight: bold;
		}
		
		/* === Texto justificado negritas  subrayado=== */
		.txt-container p.tjbu {
			text-align: justify;
			font-weight: bold;
			text-decoration: underline;
		}
		
		/* === Texto justificado subrayado=== */
		
		.txt-container p.tju{
			text-align: justify;
			text-decoration: underline;
		}
		
		/* === Texto justificado identado === */
		.txt-container p.tjid {
			text-align: justify;
			margin-left: 2.813em;
		}
		
		/* === Texto justificado italica negritas === */
		.txt-container p.tjitb {
			text-align: justify;
			font-weight: bold;
			font-style: italic;
			
		}

		/* === Texto justificado italica === */
		.txt-container p.tjit {
			text-align: justify;
			font-style: italic;
			
		}
		/* === Texto centrado negritas === */
		.txt-container p.tcb {
			text-align: center;
			margin: 1.6em 0;
			font-weight: bold;
			margin-bottom: 2rem;
		}

		/* === Subtitulo centrado === */
		.txt-container p.stc {
			text-align: center;
			font-size: 1.20rem;
			color: var(--azul-tfja); 
			margin-top: 1.5rem; 
			margin-bottom: 1.5rem; 
		
		}
		
		/* === Texto centrado negritas subrayado=== */
		.txt-container p.tcbu {
			text-align: center;
			margin: 1.6em 0;
			font-weight: bold;
			margin-bottom: 2rem;
			text-decoration: underline;
		}


		/* === Subtitulo justificado === */
		.txt-container p.stcj{
			text-align: justify;
			font-size: 1.20rem;
			color: var(--azul-tfja); 
			margin-top: 1.5rem; 
			margin-bottom: 1.5rem; 
		}
		.txt-container .card__title {
			font-size: 0.75em;
			color: #c57f43;
			text-transform: uppercase;
			letter-spacing: 0.5px;

		}


		/* === Encabezado de tarjeta con avatar (PDF, etc.) === */
		.txt-container .card__avatar-header {
			display: flex;
			align-items: center;
			gap: 14px;
			padding: 10px 8px;
		}

		.txt-container .card__avatar {
			flex-shrink: 0;
			width: 56px;
			height: 56px;
			border-radius: 50%;
			background-color: #d7a77d;
			color: #ffffff;
			font-size: 0.75rem;
			font-weight: 700;
			letter-spacing: 0.3px;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.txt-container .card__avatar i {
			font-size: 1.5rem !important;
		}

		.txt-container .card__avatar-info {
			display: flex;
			flex-direction: column;
			gap: 0px;
		}
		
		
		.txt-container .card__meta {
			font-size: 1em;
			letter-spacing: 0.5px;
			color: #191917;

		}
		
				/* === Enlace "Regresar" === */
		.txt-container .btn-regresar {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			font-family: var(--font-main);
			font-size: 0.85rem;
			font-weight: 700;
			letter-spacing: 0.5px;
			text-transform: uppercase;
			color: var(--sys-color-secondary, #B67238);
			text-decoration: none;
			padding: 8px 4px;
			margin-bottom: var(--sys-space-5, 24px);
			border-bottom: 2px solid transparent;
			transition: color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
		}

		.txt-container .btn-regresar i,
		.txt-container .btn-regresar svg {
			font-size: 1.1em;
			transition: transform 0.2s ease;
		}

		.txt-container .btn-regresar:hover {
			color: var(--azul-tfja, #01273E);
			border-bottom-color: var(--sys-color-secondary, #B67238);
		}

		.txt-container .btn-regresar:hover i,
		.txt-container .btn-regresar:hover svg {
			transform: translateX(-4px);
		}
		
		
		.txt-container .card-doc-link {
			display: block;
			width: 50%;
			min-width: 260px;
			text-decoration: none;
			color: inherit;
			border: 2px solid #E0B87F;
			border-radius: 8px;
			padding: 4px;
			margin-bottom: 16px;
			transition: background 0.2s ease, border-color 0.2s ease;
		}

		.txt-container .card-section-title {
			display: flex;
			font: var(--sys-title-medium);
			font-weight: 700;
			color: var(--sys-color-primary);
			text-transform: uppercase;
			letter-spacing: 1.5px;
			margin-top: 1.5rem;
			margin-bottom: var(--sys-space-4);
		}

		.txt-container .card-doc-link:hover {
			background: #FAF3EC;
			border-color: #eacdaf;
		}
		
		/* --- Agrupado opcional por mes (usado en boletines) --- */
		.txt-container .card-group {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 0 var(--sys-space-5);
			padding: var(--sys-space-5) 0;

		}

		.txt-container .card-group:last-child {
			border-bottom: none;
		}

		.txt-container .card-group .label-group {
			grid-column: 1 / -1;
			display: flex;
			align-items: center;
			gap: var(--sys-space-3);
			font: var(--sys-title-medium);
			color: var(--sys-color-primary);
			font-weight: 600;
			text-transform: uppercase;
			letter-spacing: 1.5px;
			margin-bottom: var(--sys-space-4);
		}


		.txt-container .label-group::after {
			content: '';
			flex: 1;
			height: 1px;
			background-color: var(--sys-color-outline-variant);
		}
		
		/* Dentro del grupo, cada tarjeta llena su columna del grid */
		.txt-container .card-group .card-doc-link {
			width: 100%;
			min-width: 0;
		}

		@media (max-width: 700px) {
			.txt-container .card-group {
				grid-template-columns: 1fr;
			}
		}