/* Keyboard and focus affordances; page typography and brand palette remain in page styles. */
:focus-visible { outline: 3px solid #1463ad !important; outline-offset: 3px; box-shadow: 0 0 0 6px #fff !important; }
.skip-link { position: fixed !important; top: 8px !important; left: 8px !important; transform: translateY(-200%) !important; z-index: 10000 !important; background: #fff !important; color: #0a1628 !important; padding: 12px 20px !important; }
.skip-link:focus { transform: none !important; }
.mobile-nav[hidden], .mobile-nav__sub[hidden], .faq-item [hidden] { display: none !important; }
.mobile-nav[role="dialog"] { position: fixed; inset: 0; z-index: 3000; background: #0a1628; color: #fff; overflow-y: auto; padding: 80px 30px 40px; }
.mobile-nav[role="dialog"].active { display: flex; flex-direction: column; }
.a11y-mobile-link { display: block; padding: 12px 0; color: #fff; }
.mobile-nav__close { min-width: 44px; min-height: 44px; }
.a11y-faq-button { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; width: 100%; }
.nav__item.a11y-dismissed > .mega-menu { visibility: hidden !important; pointer-events: none !important; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
.a11y-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.nav__hamburger { background: transparent; border: 0; }
main a:not([class]), p a, .article-meta a, .breadcrumbs a, a[rel="author"] { text-decoration: underline !important; text-underline-offset: 0.15em; }

.nav__item:focus-within > .mega-menu { opacity: 1; visibility: visible; pointer-events: auto; transition: none; }
/* Inherited visibility must not remain in a link's transition when keyboard focus enters. */
.nav__item:focus-within > .mega-menu, .nav__item:focus-within > .mega-menu * { transition: none !important; }

/* Body-list links remain identifiable when contrast classes are added. */
main li a:not([class*="btn"]):not([class*="cta"]) { text-decoration: underline !important; text-underline-offset: 0.15em; }

/* These templates start directly below the fixed site header. */
main.a11y-header-clearance { padding-top: var(--a11y-header-height, 140px); }

/* Native article links must leave their heading below the fixed navigation. */
html.a11y-article-anchors { scroll-padding-top: 140px; }
