  /*
 * Accessibility fixes.
 *
 * Approved by Langston PR on 2026-10-29 to address two WCAG Level A failures
 * raised in our site review.
 *
 * Kept in its own file rather than added to custom.css, which is 330 KB of
 * compiled output with a source map. Enqueued from functions.php with a
 * filemtime cache-buster, following the gform-overrides.css pattern.
 */

/* ---------------------------------------------------------------------------
 * 1. Skip link  —  WCAG 2.4.1 Bypass Blocks (Level A)
 *
 * The site emitted no skip link at all. The WP Accessibility plugin has the
 * feature but was never configured (its wpa_settings option is empty), and
 * there was no target to skip to: all 32 templates render <main> with no id.
 *
 * Hidden until focused, then pinned to the top-left so a keyboard user sees it
 * as the first thing they reach. Not display:none and not aria-hidden — it has
 * to stay focusable to do its job.
 * ------------------------------------------------------------------------- */

.lu-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: 0.85rem 1.4rem;
	background: #152b51;
	color: #ffffff;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	border-radius: 0 0 4px 0;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.lu-skip-link:focus,
.lu-skip-link:focus-visible {
	left: 0;
	outline: 3px solid #f2682b;
	outline-offset: 2px;
}

/*
 * The theme sets .no-outline on <Body><h1><a href="/">ÐÔÊӽ紫ý</a></h1><script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(bp, s);
})();
</script>, which suppresses focus rings site-wide.
 * That is itself a problem, but fixing it globally is a larger change than we
 * were asked for. This keeps the skip link visible regardless.
 */
body.no-outline .lu-skip-link:focus {
	outline: 3px solid #f2682b;
	outline-offset: 2px;
}

/* The landing target. Never visible; exists so focus has somewhere to go. */
#lu-main-content {
	position: relative;
	display: block;
	height: 0;
	overflow: hidden;
}

#lu-main-content:focus {
	outline: none;
}

/* ---------------------------------------------------------------------------
 * 2. Video pause control  —  WCAG 2.2.2 Pause, Stop, Hide (Level A)
 *
 * The homepage video autoplays and loops indefinitely with no way to stop it.
 * The existing "Click for sound" control governs sound, not playback, so it
 * does not satisfy 2.2.2 — and it was a <div>, which meant it could not be
 * reached or operated by keyboard either.
 *
 * Uses a class rather than an id: home-slider.php renders inside a while
 * loop, so an id would duplicate across slides. (#mute already has that
 * problem; we are not making it worse.)
 *
 * Positioned to mirror #mute, sitting directly beneath it. The contextual
 * right-offsets below match the ones custom.css already applies to #mute in
 * other templates, so the pair stay aligned wherever the markup is reused.
 * ------------------------------------------------------------------------- */

.lu-video-toggle {
	position: absolute;
	z-index: 3;
	top: 4.25rem;
	right: 0;
	display: flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0;
	border: 0;
	background: none;
	color: #f2682b;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	cursor: pointer;
}

.cover .lu-video-toggle,
.top-section__video .lu-video-toggle,
.entry__thumb.entry__thumb--full .lu-video-toggle {
	right: 30px;
}

/* #mute becomes a <button>; strip the UA defaults so it looks unchanged. */
#mute {
	padding: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	text-align: left;
}

/* Both controls need a visible focus state even with .no-outline on body. */
body.no-outline .lu-video-toggle:focus,
body.no-outline #mute:focus,
.lu-video-toggle:focus,
#mute:focus {
	outline: 3px solid #ffffff;
	outline-offset: 3px;
}

/* ---------------------------------------------------------------------------
 * 3. Reduced motion
 *
 * The site honored prefers-reduced-motion nowhere. A visitor who has asked
 * their device to reduce motion still received an autoplaying 60-second loop.
 *
 * The video itself is paused by script on load — CSS cannot stop playback —
 * but decorative animation is suppressed here.
 * ------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
