/*
 * ceij-cabecera.css — cabecera y navegación del rediseño.
 *
 * Acompaña a headers/ceij/header.php. Reproduce la estructura del Figma: banda
 * azul institucional de 146px con los dos logotipos y el buscador, y debajo una
 * franja blanca de 65px con la navegación.
 *
 * Corrige sobre el diseño el contraste del buscador, que el Figma dejaba en
 * #8B8989 sobre #D0CBCB — 2,17:1, menos de la mitad del mínimo. Con #4A4A4A
 * sobre el mismo fondo sube a 5,52:1.
 *
 * El megamenú lo sigue pintando Helix; aquí solo se le da forma.
 */

/* ---------------------------------------------------------------------
   Banda superior
   --------------------------------------------------------------------- */

/* template.css fija #sp-header{height:97px}, que recortaría la banda de 146px
   del diseño. Es el único punto de esta hoja donde hace falta competir con un
   selector de ID de la plantilla, y por eso el selector lleva el id: .ceij sola
   (0-1-1) perdería contra #sp-header (1-0-0). */
.ceij #sp-header.ceij-cabecera {
    height: auto;
    position: relative;
    z-index: 20;
    box-shadow: none;
}

/* Las bandas van de borde a borde aunque .body-innerwrapper limite el ancho.
   El desbordamiento lateral lo contiene su propio overflow-x: hidden. */
.ceij .ceij-cabecera__banda,
.ceij .ceij-navbar {
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.ceij .ceij-cabecera__banda {
    background-color: var(--ceij-c-marca);
    color: var(--ceij-c-texto-inverso);
}

.ceij .ceij-cabecera__interior {
    max-width: 1280px;
    margin-inline: auto;
    padding: var(--ceij-e-4) var(--ceij-e-5);
    min-height: 146px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ceij-e-5);
    flex-wrap: wrap;
}

.ceij .ceij-cabecera__logos {
    display: flex;
    align-items: center;
    gap: var(--ceij-e-5);
    text-decoration: none;
    flex: 0 1 auto;
}

.ceij .ceij-cabecera__logo {
    height: auto;
    max-height: 82px;
    width: auto;
}

/* Sobre la banda azul el indicador de foco azul no se vería. */
.ceij .ceij-cabecera__banda :focus-visible {
    outline-color: var(--ceij-c-texto-inverso);
}

/* ---------------------------------------------------------------------
   Buscador
   --------------------------------------------------------------------- */

.ceij .ceij-buscador {
    display: flex;
    align-items: stretch;
    background: #D0CBCB;
    border-radius: var(--ceij-r-pildora);
    overflow: hidden;
    flex: 0 0 auto;
    min-width: 200px;
    max-width: 320px;
}

/* El selector lleva el elemento y la clase porque template.css trae
   `input[type=search]:not(.form-control){background-color:#fff;border:1px solid;
   padding:.5rem .75rem;border-radius:.25rem}` — 0-2-1, que le ganaba a
   `.ceij .ceij-buscador__campo` (0-2-0) y pintaba el campo como una caja
   blanca dentro de la pildora gris. Con `.ceij .ceij-buscador input.ceij-…`
   subimos a 0-3-1 y el campo vuelve a ser transparente. */
.ceij .ceij-buscador input.ceij-buscador__campo {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    min-height: var(--ceij-tactil-min);
    height: auto;
    padding: var(--ceij-e-2) var(--ceij-e-4);
    border: 0;
    border-radius: 0;
    background: transparent;
    font-family: var(--ceij-f-texto);
    font-size: var(--ceij-fs-400);
    color: #2B2B2B;                  /* 9,9:1 sobre #D0CBCB */
}

/* El campo no mostraba foco: la plantilla le quita el outline. Se marca la
   píldora entera, en blanco como el resto de la cabecera. */
.ceij .ceij-buscador:has(.ceij-buscador__campo:focus-visible) {
    outline: var(--ceij-foco-grosor) solid #FFFFFF;
    outline-offset: var(--ceij-foco-sep);
}

/* 5,52:1 sobre #D0CBCB. El #8B8989 del Figma daba 2,17:1. */
.ceij .ceij-buscador input.ceij-buscador__campo::placeholder {
    color: #4A4A4A;
    opacity: 1;
}

.ceij .ceij-buscador__boton {
    flex: 0 0 auto;
    min-width: var(--ceij-tactil-min);
    min-height: var(--ceij-tactil-min);
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    color: #2B2B2B;
    cursor: pointer;
}
.ceij .ceij-buscador__boton:hover { color: var(--ceij-c-marca); }

/* ---------------------------------------------------------------------
   Franja de navegación
   --------------------------------------------------------------------- */

.ceij .ceij-navbar {
    background: var(--ceij-c-superficie);
    box-shadow: 0 2px 6px rgba(10, 37, 64, .12);
}

.ceij .ceij-navbar__interior {
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: var(--ceij-e-5);
    min-height: 65px;
    display: flex;
    align-items: center;
}

/* El megamenú de Helix dentro de la franja */
.ceij .ceij-navbar .sp-megamenu-wrapper {
    width: 100%;
    justify-content: center;
}

.ceij .ceij-navbar .sp-megamenu-parent {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--ceij-e-4);
    margin: 0;
    padding: 0;
    list-style: none;
    float: none;
}

/* Los elementos sin página propia —«Servicios», «Capacitaciones Nexus»— son
   encabezados, y Helix los pinta como <span>, no como <a>. Sin incluirlos aquí
   se quedaban con la tipografía que Helix inyecta en línea (Poppins 500) y se
   veían más ligeros que el resto. */
.ceij .ceij-navbar .sp-megamenu-parent > li > a,
.ceij .ceij-navbar .sp-megamenu-parent > li > span {
    display: flex;
    align-items: center;
    gap: var(--ceij-e-2);
    min-height: var(--ceij-tactil-min);
    padding: var(--ceij-e-2) var(--ceij-e-4);
    border-radius: var(--ceij-r-medio);
    font-family: var(--ceij-f-texto);
    font-size: var(--ceij-fs-400);
    font-weight: var(--ceij-fw-negrita);
    line-height: 1.25;
    color: var(--ceij-c-titulo);       /* 15,54:1 */
    text-decoration: none;
}

.ceij .ceij-navbar .sp-megamenu-parent > li > a:hover,
.ceij .ceij-navbar .sp-megamenu-parent > li > span:hover {
    color: var(--ceij-c-marca);
    background: var(--ceij-c-superficie-alt);
}

/* El chevrón de los desplegables hereda el peso del elemento. */
.ceij .ceij-navbar .sp-megamenu-parent > li > a > .sp-menu-badge,
.ceij .ceij-navbar .sp-megamenu-parent > li > span > * { font-weight: inherit; }

/* Página actual: fondo claro más color, para no señalarla solo con color
   (WCAG 1.4.1). El atributo lo pone js/ceij-a11y.js.
   #1F4E8C sobre #E8EFF8 da 7,4:1. */
.ceij .ceij-navbar .sp-megamenu-parent > li > a[aria-current="page"],
.ceij .ceij-navbar .sp-megamenu-parent > li.current-item > a {
    background: #E8EFF8;
    color: #1F4E8C;
    border-radius: var(--ceij-r-medio);
    font-weight: var(--ceij-fw-negrita);
}

/* Botón del menú en móvil */
.ceij .ceij-navbar #offcanvas-toggler {
    min-width: var(--ceij-tactil-min);
    min-height: var(--ceij-tactil-min);
    display: grid;
    place-items: center;
    margin-left: auto;
    color: var(--ceij-c-titulo);
    cursor: pointer;
}

/* ---------------------------------------------------------------------
   Adaptación a pantallas menores
   --------------------------------------------------------------------- */

/* Por debajo de 768px template.css impone
   `body #sp-header, body #sp-header .logo, #offcanvas-toggler{height:60px!important}`,
   pensado para la cabecera antigua de una sola fila. La nuestra lleva banda de
   logotipos y barra de navegacion: con 60px el resto se sale de la caja y se
   monta encima de la pagina, en todas las internas.
   Es el unico !important de las hojas nuevas y esta justificado: contra un
   !important ajeno no sirve ganar por especificidad. */
@media (max-width: 767.98px) {
    body.ceij #sp-header.ceij-cabecera { height: auto !important; }
}

/* ---------------------------------------------------------------------
   Movil y tableta — la cabecera es UNA sola fila
   ---------------------------------------------------------------------
   Medido en las paginas «movil» y «tablet» del Figma, que hasta ahora no se
   habian usado (se venia deduciendo el movil del diseno de escritorio):

       movil  402px  banda #003366 de 61px
                     logotipo PJ   x= 13  109x41
                     boton de menu x=180   41x41   (centro exacto: 201)
                     buscador      x=279  109x28   (margen derecho 14)
       tablet 800px  banda #003366 de 61px
                     logotipo PJ   x= 53  109x41
                     boton de menu x=379   41x41   (centro exacto: 400)
                     buscador      x=637  109x37   (margen derecho 54)

   Es decir: logotipo a la izquierda, boton centrado, buscador a la derecha,
   sin franja blanca de navegacion — el menu entero vive en el panel lateral.
   Por eso la rejilla es 1fr auto 1fr: la columna del medio queda centrada en
   la ventana sin depender del ancho del logotipo ni del buscador.

   El corte va en 991.98px porque es donde Helix cambia el megamenu por el
   boton (.d-none .d-lg-block en el <ul>, .d-lg-none en el toggler).

   El Figma deja fuera el logotipo del CEIJ en movil y en tableta; aqui se
   respeta, pero conviene confirmarlo con el CEIJ: los dos logotipos juntos a
   41px de alto piden 244px y no caben con el boton y el buscador en 402px. */

@media (max-width: 991.98px) {
    body.ceij #sp-header.ceij-cabecera {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        column-gap: var(--ceij-e-3);
        width: 100vw;
        margin-left: calc(50% - 50vw);
        min-height: 61px;
        padding-inline: 13px;
        background: var(--ceij-c-marca);
    }

    /* Las envolturas dejan de ser cajas para que el logotipo, el boton y el
       buscador sean celdas de la misma rejilla. No se incluye
       .sp-megamenu-wrapper: lleva .d-flex de Bootstrap, que es !important y
       ganaria a display:contents; se queda como celda del medio. */
    .ceij .ceij-cabecera__banda,
    .ceij .ceij-cabecera__interior,
    .ceij .ceij-navbar,
    .ceij .ceij-navbar__interior { display: contents; }

    /* La fila va explicita en las tres celdas: el buscador esta antes que el
       menu en el marcado, asi que sin `grid-row` el colocador automatico se
       salta la columna 2 y manda el boton a una segunda fila. */
    .ceij .ceij-cabecera__logos { grid-area: 1 / 1; justify-self: start; gap: 0; }
    .ceij .ceij-cabecera__logo  { max-height: 41px; }
    .ceij .ceij-cabecera__logo--ceij { display: none; }

    .ceij .ceij-navbar .sp-megamenu-wrapper {
        grid-area: 1 / 2;
        width: auto;
        justify-content: center;
    }
    .ceij .ceij-navbar #offcanvas-toggler {
        margin-left: 0;
        min-width: 41px;
        min-height: 41px;
        color: var(--ceij-c-texto-inverso);
    }

    /* template.css pinta las barras en #252767 de 2px sobre 25px de ancho, que
       sobre el azul institucional casi no se ven. El Figma las lleva blancas,
       27px de ancho y 17px de alto en total. */
    .ceij .ceij-navbar #offcanvas-toggler .burger-icon { width: 27px; }
    .ceij .ceij-navbar #offcanvas-toggler .burger-icon > span {
        height: 3px;
        margin: 4px 0;
        border-radius: 1px;
        background-color: var(--ceij-c-texto-inverso);
    }

    /* 109px de ancho, como el diseno. La altura baja de los 44px del sistema a
       los 28px del Figma: WCAG 2.2 AA (2.5.8) pide 24x24 como minimo, asi que
       cumple; los 44px son el criterio AAA. */
    .ceij .ceij-buscador {
        grid-area: 1 / 3;
        justify-self: end;
        width: 109px;
        min-width: 0;
        max-width: 109px;
    }
    /* 14px en vez de 16: el Figma compone con Segoe UI y aqui la familia es
       mas ancha, y con 16px la palabra «Buscar» no cabe en los 109px. */
    .ceij .ceij-buscador input.ceij-buscador__campo {
        min-height: 28px;
        padding: 0 var(--ceij-e-2);
        font-size: var(--ceij-fs-300);
    }
    .ceij .ceij-buscador__boton {
        min-width: 24px;
        min-height: 28px;
        padding-right: 6px;
    }
}

@media (max-width: 575.98px) {
    body.ceij #sp-header.ceij-cabecera { column-gap: var(--ceij-e-2); }
}

/* ---------------------------------------------------------------------
   Desplegables — dos líneas por entrada, como el diseño
   El subtítulo lo inyecta js/ceij-a11y.js desde menu-anchor_title.
   --------------------------------------------------------------------- */

.ceij .sp-dropdown.sp-dropdown-main {
    border-radius: var(--ceij-r-medio);
    box-shadow: var(--ceij-sombra-alta);
    border: 1px solid var(--ceij-c-borde);
    background: var(--ceij-c-superficie);
    overflow: hidden;
}

/* El desplegable también se abre con el teclado: ceij-a11y.js marca el grupo
   con .ceij-abierto mientras el foco está dentro (Helix solo usa :hover). */
.ceij .sp-megamenu-parent .sp-has-child.ceij-abierto > .sp-dropdown { display: block; }
.ceij .sp-megamenu-parent .sp-menu-heading[role="button"] { cursor: pointer; }
.ceij .sp-dropdown-items { padding: var(--ceij-e-2); margin: 0; list-style: none; }

.ceij .sp-dropdown-items > li > a {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: var(--ceij-tactil-min);
    padding: var(--ceij-e-3) var(--ceij-e-4);
    border-radius: var(--ceij-r-chico);
    font-family: var(--ceij-f-texto);
    font-size: var(--ceij-fs-400);
    font-weight: var(--ceij-fw-medio);
    line-height: 1.35;
    color: var(--ceij-c-titulo);
    text-decoration: none;
}

.ceij .sp-dropdown-items > li > a:hover {
    background: var(--ceij-c-superficie-alt);
    color: var(--ceij-c-marca);
}

/* 5,70:1 sobre blanco. El #94A3B8 que usaba el Figma para textos secundarios
   daba 2,34:1. */
.ceij .ceij-nav__sub {
    display: block;
    font-size: var(--ceij-fs-meta);
    font-weight: var(--ceij-fw-normal);
    color: var(--ceij-c-texto-tenue);
    line-height: 1.4;
}
.ceij .sp-dropdown-items > li > a:hover .ceij-nav__sub { color: var(--ceij-c-texto-suave); }

/* Botón que despliega los submenús del panel móvil (ceij-a11y.js). En
   «Servicios» y «Capacitaciones Nexus» es el propio rótulo; en «Revista y
   Boletines» va junto al enlace. La flecha gira al abrir. */
.ceij .offcanvas-menu li.menu-parent { position: relative; }
.ceij .offcanvas-menu .ceij-panel__desplegar--rotulo { display: block; cursor: pointer; }
.ceij .offcanvas-menu button.ceij-panel__desplegar {
    position: absolute;
    top: 0;
    right: 0;
    width: var(--ceij-tactil-min);
    height: var(--ceij-tactil-min);
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}
.ceij .offcanvas-menu .ceij-panel__desplegar::after {
    content: "";
    display: inline-block;
    width: .5em;
    height: .5em;
    margin-left: .5em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-.2em) rotate(45deg);
    transition: transform .2s;
}
.ceij .offcanvas-menu .ceij-panel__desplegar[aria-expanded="true"]::after { transform: translateY(.1em) rotate(-135deg); }


/* ---------------------------------------------------------------------
   Banda superior en escritorio, según la cabecera aprobada (2026-10-02,
   medida sobre una captura de 1694px; el azul es el de marca, #003366):
   contenido de 1436px,
   128px de alto, una línea vertical tras el logotipo del CEIJ y otra antes
   del buscador, y el buscador compacto de 128x36.
   --------------------------------------------------------------------- */
@media (min-width: 992px) {
    .ceij .ceij-cabecera__interior {
        max-width: calc(1436px + var(--ceij-e-5) * 2);
        min-height: 128px;
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 27px;
    }
    .ceij .ceij-cabecera__logos {
        gap: 58px;
        padding-right: 29px;
        border-right: 1px solid rgba(255, 255, 255, .5);
    }
    .ceij .ceij-cabecera__logo { max-height: 85px; }
    /* La segunda línea es un hijo más de la fila: empuja el buscador a la
       derecha y queda a 27px de él. */
    .ceij .ceij-cabecera__interior::after {
        content: "";
        order: 1;
        align-self: center;
        width: 1px;
        height: 83px;
        margin-left: auto;
        background: rgba(255, 255, 255, .55);
    }
    /* 40px más adentro que el borde del contenido, a pedido; la línea
       vertical se corre con él. */
    .ceij .ceij-buscador {
        order: 2;
        margin-right: 40px;
        width: 128px;
        min-width: 0;
        max-width: 128px;
    }
    /* 36px de alto como el diseño: por encima de los 24 que pide WCAG 2.2 AA
       (2.5.8), como el buscador de móvil. */
    .ceij .ceij-buscador input.ceij-buscador__campo {
        min-height: 36px;
        padding: 0 0 0 var(--ceij-e-3);
        font-size: var(--ceij-fs-300);
    }
    .ceij .ceij-buscador__boton {
        min-width: 32px;
        min-height: 36px;
        padding-right: var(--ceij-e-2);
    }
}
