/* ==================================================
   PRO CONSUMIDOR — PORTAL DE TRANSPARENCIA
   Personalización de Cassiopeia y Maximenu CK 109
   ================================================== */

/* TABLAS */
table.table_style_blue {
    border-collapse: collapse !important;
    width: 100% !important;
}

table.table_style_blue th,
table.table_style_blue td {
    border: 1px solid #cccccc !important;
    padding: 8px !important;
}

table.table_style_blue tr:nth-child(even) {
    background-color: #f9f9f9;
}

/* ENCABEZADO */
.container-header {
    background-color: #ffffff;
    background-image: none;
    border-bottom: 4px solid #104274;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    color: #104274;
}

.container-header .navbar-brand,
.container-header .navbar-brand a,
.container-header .nav-link,
.container-header .mod-menu,
.container-header .mod-menu a {
    color: #104274;
}

.container-header .navbar-brand img {
    width: 300px;
    max-width: 100%;
    height: auto;
}

.container-header .navbar-toggler {
    color: #104274;
    border-color: #104274;
}

/* COMPUTADORAS */
@media (min-width: 992px) {

    /* Alineación del encabezado */
    .container-header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 32px;
        padding: 20px 24px;
    }

    .container-header > .grid-child {
        width: 100%;
        padding: 0;
        margin: 0;
    }

    .container-header > .container-nav {
        justify-content: flex-end;
    }

    .container-header .navbar-brand {
        margin: 0;
        padding: 0;
    }

    .container-header .container-search {
        margin: 0;
    }

    /* Contenedor del menú */
    div#maximenuck109,
    div#maximenuck109 * {
        box-sizing: border-box;
    }

    div#maximenuck109 > ul.maximenuck {
        background: #ffffff !important;
        border: 1px solid #dce4ec !important;
        border-radius: 8px !important;
        box-shadow: 0 3px 12px rgba(16, 66, 116, 0.06) !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100%;
    }

    /* Categorías principales */
    div#maximenuck109 ul.maximenuck > li.level1 {
        display: block !important;
        background: transparent !important;
        border: 0 !important;
        border-bottom: 1px solid #e8edf2 !important;
        border-radius: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
        box-shadow: none !important;
    }

    div#maximenuck109 ul.maximenuck > li.level1:last-child {
        border-bottom: 0 !important;
    }

    /* Texto de todos los niveles.
       El espacio izquierdo queda reservado para el icono. */
    div#maximenuck109 ul.maximenuck li.maximenuck > a,
    div#maximenuck109 ul.maximenuck li.maximenuck > span.separator {
        display: block !important;
        position: relative !important;
        float: none !important;
        margin: 0 !important;
        padding: 12px 34px 12px 46px !important;
        min-height: 46px;
        border: 0 !important;
        background: transparent !important;
        color: #104274 !important;
        font-family: inherit !important;
        font-size: 14px !important;
        line-height: 1.5 !important;
        text-align: left !important;
        text-decoration: none !important;
        text-transform: none !important;
        text-shadow: none !important;
        white-space: normal !important;
        overflow-wrap: break-word;
        box-shadow: none !important;
    }

    div#maximenuck109 ul.maximenuck > li.level1 > a,
    div#maximenuck109 ul.maximenuck > li.level1 > span.separator {
        font-weight: 700 !important;
    }

    div#maximenuck109 .titreck,
    div#maximenuck109 .titreck-text,
    div#maximenuck109 .titreck-title {
        color: inherit !important;
        font-size: inherit !important;
        font-weight: inherit !important;
        line-height: inherit !important;
        text-shadow: none !important;
        white-space: normal !important;
    }

    /* Resaltado del enlace, no de todos sus descendientes */
    div#maximenuck109 ul.maximenuck li.maximenuck > a:hover,
    div#maximenuck109 ul.maximenuck li.maximenuck > span.separator:hover {
        background: #f1f5fa !important;
    }

    div#maximenuck109 ul.maximenuck > li.level1.active > a,
    div#maximenuck109 ul.maximenuck > li.level1.active > span.separator {
        color: #245bdb !important;
        background: #eef5ff !important;
        box-shadow: inset 3px 0 0 #245bdb !important;
    }

    /* Submenús dentro de la columna.
       La apertura y el cierre los controla Maximenu CK. */
    div#maximenuck109 ul.maximenuck li.maximenuck div.floatck {
        position: static !important;
        float: none !important;
        inset: auto !important;
        margin: 4px 8px 8px !important;
        width: auto !important;
        padding: 6px !important;
        background: #f7f9fc !important;
        border: 1px solid #dce4ec !important;
        border-radius: 10px !important;
        box-shadow: none !important;
    }

    div#maximenuck109 div.maxidrop-main {
        width: 100% !important;
        min-width: 0 !important;
    }

    div#maximenuck109 div.maximenuck2 {
        width: 100% !important;
        min-width: 0 !important;
    }

    div#maximenuck109 ul.maximenuck2 > li.maximenuck {
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        border-bottom: 1px solid #e8edf2 !important;
        text-shadow: none !important;
    }

    div#maximenuck109 ul.maximenuck2 > li.maximenuck:last-child {
        border-bottom: 0 !important;
    }

    div#maximenuck109 ul.maximenuck li.maximenuck
    ul.maximenuck2 > li.maximenuck > a,
    div#maximenuck109 ul.maximenuck li.maximenuck
    ul.maximenuck2 > li.maximenuck > span.separator {
        padding: 10px 30px 10px 36px !important;
        min-height: 40px;
        font-size: 14px !important;
        font-weight: 400 !important;
    }

    div#maximenuck109 ul.maximenuck
    ul.maximenuck2 > li.maximenuck.active > a,
    div#maximenuck109 ul.maximenuck
    ul.maximenuck2 > li.maximenuck.active > span.separator {
        color: #245bdb !important;
        background: #eaf1f8 !important;
    }

    /* Icono de documento */
    div#maximenuck109 li.maximenuck > a::before,
    div#maximenuck109 li.maximenuck > span.separator::before {
        content: "";
        position: absolute;
        left: 12px;
        top: 50%;
        transform: translateY(-50%);
        width: 24px;
        height: 26px;
        border: 1px solid #dce5ef;
        border-radius: 5px;
        background-color: #f1f5f9;
        background-repeat: no-repeat;
        background-position: center;
        background-size: 15px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647d98' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6zM14 3v5h4M9 12h6M9 16h6'/%3E%3C/svg%3E");
        pointer-events: none;
    }

    /* Icono de carpeta para categorías con hijos */
    div#maximenuck109 li.parent > a::before,
    div#maximenuck109 li.parent > span.separator::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647d98' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7V5h7l2 2h9v13H3zM3 10h18'/%3E%3C/svg%3E");
    }

    /* Iconos más discretos en los submenús */
    div#maximenuck109 ul.maximenuck2 > li > a::before,
    div#maximenuck109 ul.maximenuck2 > li > span.separator::before {
        left: 8px;
        width: 18px;
        height: 22px;
        background-color: transparent;
        border-color: transparent;
        background-size: 13px;
    }

    /* Flecha hacia la derecha */
    div#maximenuck109 li.parent > a::after,
    div#maximenuck109 li.parent > span.separator::after {
        content: "" !important;
        position: absolute !important;
        width: 7px !important;
        height: 7px !important;
        right: 15px !important;
        top: 50% !important;
        margin: 0 !important;
        border: 0 !important;
        border-right: 1.5px solid #647d98 !important;
        border-bottom: 1.5px solid #647d98 !important;
        transform: translateY(-50%) rotate(-45deg) !important;
        transition: transform 0.22s ease;
        pointer-events: none;
    }

    /* Flecha hacia abajo al abrir */
    div#maximenuck109 li.parent.openck > a::after,
    div#maximenuck109 li.parent.openck > span.separator::after,
    div#maximenuck109 li.parent.clickedck > a::after,
    div#maximenuck109 li.parent.clickedck > span.separator::after {
        transform: translateY(-70%) rotate(45deg) !important;
    }

    div#maximenuck109 li.parent > span.separator {
        cursor: pointer;
    }

    /* Indicador de navegación por teclado */
    div#maximenuck109 li.maximenuck > a:focus-visible,
    div#maximenuck109 li.maximenuck > span.separator:focus-visible {
        outline: 2px solid #104274 !important;
        outline-offset: -3px;
    }
}

/* MÓVILES: conservar el menú antes del contenido */
@media (max-width: 991.98px) {
    .site-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "banner"
            "top-a"
            "top-b"
            "side-l"
            "comp"
            "side-r"
            "bot-a"
            "bot-b";
        column-gap: 0;
        padding-inline: 16px;
    }

    .site-grid > .container-sidebar-left,
    .site-grid > .container-component {
        width: 100%;
        min-width: 0;
    }
}

/* Reducir el movimiento del indicador cuando se solicite */
@media (prefers-reduced-motion: reduce) {
    div#maximenuck109 li.parent > a::after,
    div#maximenuck109 li.parent > span.separator::after {
        transition: none;
    }
}
/* Flecha independiente: solo computadoras */
@media (min-width: 992px) {
    #maximenuck109.pc-menu-ready li.parent {
        position: relative !important;
    }

    #maximenuck109.pc-menu-ready li.parent > a,
    #maximenuck109.pc-menu-ready li.parent > span.separator {
        padding-right: 52px !important;
    }

    /* Sustituimos la flecha dibujada por un botón real */
    #maximenuck109.pc-menu-ready li.parent > a::after,
    #maximenuck109.pc-menu-ready li.parent > span.separator::after {
        display: none !important;
    }

    #maximenuck109 .pc-menu-toggle {
        position: absolute;
        top: 0;
        right: 0;
        width: 44px;
        height: 46px;
        display: grid;
        place-items: center;
        padding: 0;
        border: 0;
        border-left: 1px solid #e8edf2;
        border-radius: 0 7px 7px 0;
        background: transparent;
        color: #647d98;
        cursor: pointer;
        z-index: 2;
    }

    #maximenuck109 .pc-menu-toggle:hover {
        background: #eaf1f8;
    }

    #maximenuck109 .pc-menu-toggle:focus-visible {
        outline: 2px solid #104274;
        outline-offset: -3px;
    }

    #maximenuck109 .pc-menu-toggle::before {
        content: "";
        width: 7px;
        height: 7px;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(-45deg);
        transition: transform 300ms ease;
    }

    #maximenuck109 .pc-menu-toggle[aria-expanded="true"]::before {
        transform: rotate(45deg);
    }

    #maximenuck109.pc-menu-ready .pc-menu-panel {
        position: static !important;
        float: none !important;
        inset: auto !important;
        width: auto !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        transition: none !important;
    }

    #maximenuck109.pc-menu-ready .pc-menu-panel[hidden] {
        display: none !important;
    }

    #maximenuck109.pc-menu-ready .pc-menu-panel:not([hidden]) {
        display: block !important;
    }
}

@media (max-width: 991.98px) {
    #maximenuck109 .pc-menu-toggle {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #maximenuck109 .pc-menu-toggle::before {
        transition: none;
    }
}
@media (min-width: 992px) {
    /* Título a la izquierda, botón a la derecha */
    div#maximenuck109.pc-menu-ready ul.maximenuck li.maximenuck.parent:has(> .pc-menu-toggle) {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 44px;
        align-items: stretch;
    }

    div#maximenuck109.pc-menu-ready ul.maximenuck li.maximenuck.parent > :is(a, span.separator, span.nav-header) {
        grid-column: 1;
        grid-row: 1;
        min-width: 0 !important;
        width: auto !important;
        padding-right: 8px !important;
    }

    div#maximenuck109.pc-menu-ready li.parent > button.pc-menu-toggle {
        grid-column: 2;
        grid-row: 1;
        position: static !important;
        width: 100% !important;
        height: auto !important;
        align-self: stretch;
    }

    /* Al abrir, el submenú ocupa todo el ancho debajo del título */
    div#maximenuck109.pc-menu-ready li.parent > .pc-menu-panel {
        grid-column: 1 / -1;
        grid-row: 2;
        min-width: 0;
    }
}
#maximenuck109 .pc-menu-cabecera {
    display: none;
}

@media (min-width: 992px) {
    div#maximenuck109 .pc-menu-cabecera {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 18px;
        border-radius: 12px 12px 0 0;
        background: linear-gradient(110deg, #12345a, #164e99 75%, #245bdb);
        color: #fff;
        text-align: left;
    }

    #maximenuck109 .pc-menu-escudo {
        display: grid;
        place-items: center;
        flex: 0 0 38px;
        height: 38px;
        border: 1px solid rgb(255 255 255 / 30%);
        border-radius: 9px;
        background: rgb(255 255 255 / 12%);
    }

    #maximenuck109 .pc-menu-cabecera h2 {
        margin: 0;
        color: #fff;
        font-size: 17px;
        font-weight: 700;
        line-height: 1.3;
    }

    #maximenuck109 .pc-menu-cabecera p {
        margin: 2px 0 0;
        color: #e0ebfa;
        font-size: 12px;
        line-height: 1.4;
    }

    div#maximenuck109.pc-menu-ready > ul.maximenuck {
        border-top: 0 !important;
        border-radius: 0 0 12px 12px !important;
    }

    /* La categoría que contiene la página actual lleva un fondo suave. */
    div#maximenuck109.pc-menu-ready ul.maximenuck > li.level1.active:not(.current)
        > :is(a, span.separator) {
        background: #f5f8fc !important;
        color: #104274 !important;
        box-shadow: none !important;
    }

    /* La página que estás leyendo lleva la marca azul, incluso en un submenú. */
    div#maximenuck109.pc-menu-ready ul.maximenuck li.maximenuck.current > a,
    div#maximenuck109.pc-menu-ready ul.maximenuck li.maximenuck > a[aria-current="page"] {
        background: #eef5ff !important;
        color: #174fbc !important;
        box-shadow: inset 3px 0 0 #2463eb !important;
        border-radius: 7px !important;
        font-weight: 700 !important;
    }
}
/* Escritorio: resaltar la página actual dentro del submenú */
@media (min-width: 992px) {
    div#maximenuck109.pc-menu-ready ul.maximenuck ul.maximenuck2
        > li.maximenuck.current > a,
    div#maximenuck109.pc-menu-ready ul.maximenuck ul.maximenuck2
        > li.maximenuck > a[aria-current="page"] {
        background: #fff !important;
        color: #1754cf !important;
        font-weight: 700 !important;
        border-radius: 8px !important;
        box-shadow: inset 3px 0 0 #245bff,
                    0 1px 4px rgb(16 66 116 / 10%) !important;
    }
}
/* Carpetas de transparencia: efecto de escritorio */
@media (min-width: 992px) {
    .pc-carpeta {
        position: relative !important;
        display: flex !important;
        flex-direction: column;
        align-items: stretch !important;
        gap: 10px;
        padding: 18px !important;
        background: #fff !important;
        border: 1px solid #dce4ed !important;
        border-radius: 14px !important;
        text-align: left !important;
        transition: transform .22s ease, box-shadow .22s ease,
                    border-color .22s ease !important;
    }

    .pc-carpeta > span {
        width: auto !important;
        margin: 0 !important;
        float: none !important;
    }

    .pc-carpeta img {
        box-sizing: content-box;
        width: 34px !important;
        height: 34px !important;
        object-fit: contain;
        margin: 0 !important;
        padding: 12px;
        background: #fff6df;
        border-radius: 12px;
    }

    .pc-carpeta a {
        position: static;
        color: #104274;
        font-weight: 700;
        text-decoration: none;
    }

    /* Extiende el enlace existente a toda la tarjeta */
    .pc-carpeta a::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        border-radius: 14px;
    }

    .pc-carpeta::after {
        content: "→  Explorar carpeta";
        margin-top: auto;
        padding: 8px 12px;
        border: 1px solid #edc775;
        border-radius: 8px;
        background: #fff9e9;
        color: #804000;
        font-size: 14px;
        font-weight: 600;
        text-align: center;
        transition: background-color .22s ease, border-color .22s ease;
    }

    .pc-carpeta:hover,
    .pc-carpeta:focus-within {
        transform: translateY(-3px);
        border-color: #eeaf42 !important;
        box-shadow: 0 8px 20px rgb(16 66 116 / 12%);
    }

    .pc-carpeta:hover::after,
    .pc-carpeta:focus-within::after {
        background: #ffad19;
        border-color: #ed9e0e;
        color: #422600;
    }

    .pc-carpeta a:focus-visible::after {
        outline: 2px solid #104274;
        outline-offset: 3px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pc-carpeta,
    .pc-carpeta::after {
        transition: none !important;
    }

    .pc-carpeta:hover,
    .pc-carpeta:focus-within {
        transform: none;
    }
}
@media (min-width: 992px) {
    /* Dos carpetas por fila en el artículo de Nóminas */
    .pc-nominas {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* En este artículo, el propio enlace es la tarjeta */
    .pc-nominas > a.pc-carpeta {
        min-width: 0 !important;
        color: #104274 !important;
        text-decoration: none;
    }

    .pc-nominas > a.pc-carpeta > span {
        font-size: 16px !important;
        font-weight: 700;
    }

    .pc-nominas > a.pc-carpeta > img {
        align-self: flex-start;
    }

    .pc-nominas > a.pc-carpeta:focus-visible {
        outline: 2px solid #104274;
        outline-offset: 3px;
    }
}