/*
 * Estilos del componente primary-content (skip-link + landmark principal).
 *
 * El CSS crítico de ocultación se imprime inline en wp_head priority 1 desde
 * ITB_Suite_Primary_Content_Component::print_critical_inline_styles para evitar
 * el FOUC. Este archivo añade el estado "visible al recibir foco" y la ocultación
 * de respaldo para skip-links que usen las clases legacy de WordPress (.skip-link
 * y .screen-reader-shortcut), por si el filtro server-side no se ha ejecutado.
 *
 * Importante: solo aplicamos estilos visibles a skip-links que el plugin haya
 * adoptado (atributo data-itb-skip-link="1" o clase .itb-suite-skip-link).
 * Si un tema tiene su propio skip-link con CSS propio y nuestro plugin no lo
 * ha sincronizado, NO lo tocamos.
 */

/* Ocultación de respaldo para skip-links sin marca del plugin (compat axe-core
   y herramientas que detectan .skip-link genérico). Sin !important para que el
   tema pueda sobrescribir si tiene su propio diseño. */
a.skip-link,
a.screen-reader-shortcut,
a.itb-generated-skip-link,
a.itb-suite-skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Estado visible al recibir foco — solo para skip-links adoptados por el plugin.
   No se aplica a `.skip-link` y `.screen-reader-shortcut` genéricos para no pisar
   el diseño de skip-links del tema cuando el plugin no los ha sincronizado. */
a[data-itb-skip-link="1"]:focus,
a[data-itb-skip-link="1"]:active,
a[data-itb-skip-link="1"]:focus-visible,
a[data-itb-generated-skip-link="1"]:focus,
a[data-itb-generated-skip-link="1"]:active,
a[data-itb-generated-skip-link="1"]:focus-visible,
a.itb-suite-skip-link:focus,
a.itb-suite-skip-link:active,
a.itb-suite-skip-link:focus-visible {
  position: fixed;
  left: 12px;
  top: 12px;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  padding: 12px 16px;
  z-index: 100000;
  background: #111;
  color: #fff;
  text-decoration: none;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Reset del outline en el target principal cuando recibe foco programático
   (Enter sobre el skip-link). Solo cuando el foco NO viene de teclado real
   (:focus-visible) — así un usuario tabulando dentro del main sigue viendo
   el outline normal del navegador. */
[data-itb-main-landmark="1"]:focus:not(:focus-visible) {
  outline: none;
}
