/* Cabecera única y fija (rediseño 2026): logotipo a la izquierda, menú en versalitas, utilidades a la derecha.
   body.cabecera-sobre: la cabecera flota transparente sobre la portada y se vuelve blanca al desplazarse (.fija). */

.cabecera {
  position: fixed; top: 0; left: 0; right: 0; z-index: 99999;
  background-color: var(--color-fondo);
  box-shadow: 0 1px 0 var(--color-sombra-cabecera);
  color: var(--color-tinta);
  transition: background-color var(--transicion), box-shadow var(--transicion), color var(--transicion);
}
.pagina { padding-top: var(--cabecera-alto); }
.cabecera-cont { display: flex; align-items: center; gap: 40px; height: var(--cabecera-alto); }

/* Logotipo (dos versiones: tinta y blanco) */
.logo { display: block; flex: none; line-height: 0; margin-right: auto; }
.logo img { width: auto; height: var(--logo-alto); }
.logo-claro { display: none; }

/* Menú principal */
.menu-principal { display: flex; align-items: center; gap: 36px; list-style: none; margin: 0; padding: 0; }
.menu-principal > li { position: relative; }
.menu-principal > li > a {
  position: relative; display: block; padding: 30px 0;
  color: inherit;
  font-size: var(--menu-texto); font-weight: var(--peso-menu);
  letter-spacing: var(--espaciado-etiqueta); line-height: 20px; text-transform: uppercase;
}
.menu-principal > li > a::before {
  content: ""; position: absolute; left: 0; right: 100%; bottom: 24px; height: 1px;
  background: currentColor; transition: right var(--transicion);
}
.menu-principal > li:hover > a::before,
.menu-principal > li > a:focus-visible::before,
.menu-principal > li.activo > a::before,
.menu-principal > li.ancestro > a::before { right: 0; }
.menu-principal > li > a:hover { color: inherit; }

/* Submenús */
.menu-principal .submenu {
  position: absolute; top: 100%; left: -24px; z-index: 9999;
  min-width: var(--submenu-ancho);
  margin: 0; padding: 16px 0;
  list-style: none;
  background-color: var(--color-fondo);
  box-shadow: 0 12px 32px rgba(9, 6, 4, .08);
  visibility: hidden; opacity: 0; transform: translateY(6px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.menu-principal li:hover > .submenu,
.menu-principal li:focus-within > .submenu { visibility: visible; opacity: 1; transform: none; }
.menu-principal .submenu li { position: relative; }
.menu-principal .submenu a {
  display: block; padding: 8px 24px;
  color: var(--color-texto); font-size: 14px; font-weight: var(--peso-normal); line-height: 1.4;
}
.menu-principal .submenu a:hover,
.menu-principal .submenu li.activo > a { color: var(--color-tinta); background-color: var(--color-gris); }
.menu-principal .submenu .submenu { top: -16px; left: 100%; max-height: 70vh; overflow-y: auto; }
.menu-principal .submenu li.tiene-hijos > a { padding-right: 40px; }
.menu-principal .submenu li.tiene-hijos > a::after {
  content: ""; position: absolute; right: 20px; top: 50%; width: 10px; height: 10px; margin-top: -5px;
  background-color: currentColor;
  -webkit-mask: url("../icons/flecha-derecha.svg") center / contain no-repeat;
  mask: url("../icons/flecha-derecha.svg") center / contain no-repeat;
}

/* Utilidades: redes, idioma, buscador, menú móvil */
.cabecera-utilidades { display: flex; align-items: center; gap: 18px; flex: none; }
.redes-cabecera { display: flex; gap: 14px; list-style: none; margin: 0; padding: 0; }
.redes-cabecera a, .cabecera-idioma, .buscar-boton { color: inherit; }
.redes-cabecera a:hover, .cabecera-idioma:hover, .buscar-boton:hover { color: inherit; opacity: .6; }
.redes-cabecera .icono { display: block; width: 16px; height: 16px; }
.cabecera-idioma {
  padding-left: 18px; border-left: 1px solid currentColor;
  font-size: 13px; letter-spacing: var(--espaciado-etiqueta); line-height: 14px;
}
.buscar-boton { border: 0; background: none; padding: 0; line-height: 0; }
.buscar-boton .icono { width: 17px; height: 17px; }

.menu-movil-boton {
  display: none; position: relative; width: 28px; height: 20px; padding: 0; border: 0; background: none;
}
.menu-movil-boton span {
  position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor;
  transition: transform var(--transicion), top var(--transicion);
}
.menu-movil-boton span:first-child { top: 5px; }
.menu-movil-boton span:last-child { top: 14px; }
.menu-movil-boton[aria-expanded="true"] span:first-child { top: 9px; transform: rotate(45deg); }
.menu-movil-boton[aria-expanded="true"] span:last-child { top: 9px; transform: rotate(-45deg); }
.menu-movil-lista[hidden] { display: none; }

/* Buscador desplegado sobre la cabecera */
.buscar { position: absolute; inset: 0; z-index: 2; background-color: var(--color-fondo); color: var(--color-tinta); }
.buscar[hidden] { display: none; }
.buscar-form { display: flex; align-items: center; gap: 16px; height: 100%; }
.buscar-form > .icono { width: 18px; height: 18px; }
.buscar-form input {
  flex: 1; border: 0; background: transparent; color: var(--color-tinta);
  font: inherit; font-size: 20px; font-weight: var(--peso-ligero);
}
.buscar-form input:focus { outline: none; }
.buscar-cerrar { border: 0; background: none; padding: 4px; color: var(--color-tinta); font-size: 20px; line-height: 0; }

/* --- Cabecera sobre la portada --- */
.cabecera-sobre .pagina { padding-top: 0; }
.cabecera-sobre .cabecera:not(.fija):not(.abierta) { background-color: transparent; box-shadow: none; color: #fff; }
.cabecera-sobre .cabecera:not(.fija):not(.abierta) .logo-oscuro { display: none; }
.cabecera-sobre .cabecera:not(.fija):not(.abierta) .logo-claro { display: block; }
.cabecera-sobre .cabecera:not(.fija):not(.abierta)::before {
  content: ""; position: absolute; inset: 0 0 -40px; z-index: -1; pointer-events: none;
  background: linear-gradient(rgba(0, 0, 0, .35), transparent);
}

/* --- Tablet y móvil --- */
@media only screen and (max-width: 1100px) {
  .menu-principal { gap: 24px; }
  .redes-cabecera { display: none; }
}

@media only screen and (max-width: 980px) {
  :root { --cabecera-alto: var(--cabecera-alto-movil); }
  .logo img { height: var(--logo-alto-movil); }
  .nav-principal { display: none; }
  .cabecera-idioma { display: none; }
  .menu-movil-boton { display: block; }

  .menu-movil-lista {
    position: fixed; top: var(--cabecera-alto); left: 0; right: 0; bottom: 0; z-index: 9999;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 24px var(--margen-lateral) 32px;
    background-color: var(--color-fondo); color: var(--color-tinta);
    overflow-y: auto;
  }
  .menu-movil-lista ul { list-style: none; margin: 0; padding: 0; }
  .menu-movil-lista > ul > li > a {
    display: block; padding: 12px 0;
    color: var(--color-tinta); font-size: 26px; font-weight: var(--peso-ligero); line-height: 1.2;
  }
  .menu-movil-lista > ul > li.secundario > a { padding: 6px 0; color: var(--color-suave); font-size: 15px; font-weight: var(--peso-normal); }
  .menu-movil-lista > ul > li.secundario:first-of-type { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--color-linea); }
  .menu-movil-lista li.activo > a { color: var(--color-rojo); }
  .menu-movil-lista .submenu { padding: 0 0 8px 16px; position: static; visibility: visible; opacity: 1; transform: none; box-shadow: none; }
  .menu-movil-lista .submenu .submenu { display: none; }
  .menu-movil-lista .submenu a { display: block; padding: 6px 0; color: var(--color-texto); font-size: 16px; }
  .menu-movil-pie { display: flex; justify-content: space-between; gap: 16px; padding-top: 24px; font-size: 14px; letter-spacing: var(--espaciado-etiqueta); text-transform: uppercase; }
}
