/* Site-wide accessibility layer for GNET content pages.
   Loaded after each page's inline <style> so it can correct focus and motion
   without touching the existing visual design. */

/* Visible keyboard focus. The site previously relied on the browser default,
   which several pages suppressed via reset rules. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid #7ec8f7;
  outline-offset: 3px;
  border-radius: 2px;
}
/* On light sections the pale ring would disappear — darken it there. */
.page-content a:focus-visible,
.legal-body a:focus-visible,
.work-body a:focus-visible {
  outline-color: #1559a8;
}

/* The navbar is transparent until scrolled, so the white logo and links sit
   directly on the hero. That is fine over the dark globe video, but several
   heroes (education, international marketing) are pale and the nav became
   unreadable — measured at 1:1 against the light frames. This scrim sits behind
   the nav content only, keeping the "floating over the image" look while
   guaranteeing legibility on any hero. It fades out once the solid nav kicks in. */
#navbar:not(.scrolled) {
  background: linear-gradient(to bottom,
    rgba(6, 14, 43, 0.72) 0%,
    rgba(6, 14, 43, 0.42) 55%,
    rgba(6, 14, 43, 0) 100%);
}

/* Skip link — first tab stop on every page. */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1200;
  background: #0f2167;
  color: #fff;
  padding: 12px 20px;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
}
.skip-link:focus {
  left: 0;
}

/* Tap targets: the carousel and nav controls were below the 44px minimum. */
.nav-toggle,
.carousel-btn,
.gallery-arrow {
  min-width: 44px;
  min-height: 44px;
}

/* Footer legal links, appended site-wide. */
.footer-legal-links {
  margin-top: 8px;
  font-size: 0.82rem;
}
.footer-legal-links a {
  margin: 0 10px;
  color: #9fd0ff;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  /* Decorative hero video loops are motion too — hold the first frame. */
  video[autoplay] {
    animation-play-state: paused;
  }
}
