/* The site's keyboard focus ring (WCAG 2.4.7): the #3772A6 outline at 3px, offset 2px,
   used on the consent bar and the course "How" disclosure — 5.1:1 against white.
   Loaded on the front end (theme/functions.php, after custom.css) and on wp-login.php
   (login_enqueue_scripts): the sign-in page loads no theme stylesheet, and VXB-23 found
   keyboard users there with no indicator at all on Show password or Log In. */

/* Form controls. The parent theme sets `outline: 0` on `input, select, textarea` and
   repeats it on `:focus`, substituting a box-shadow that `.bb-template-v2
   input[type="radio"]:focus` then removes; BuddyPress, MemberPress and core's
   wp-login.php zero it again with ID-heavy selectors (`#buddypress #signup-form
   .standard-form input[type="email"]`, `#login form .input`, `form.mepr-signup-form`).
   So on a page that is a form, a keyboard user cannot see where they are. `!important`
   because those resets are all id-and-class weight and out-rank any sane selector of
   ours; the one treatment that must survive it — the signup box's own accent ring —
   carries `!important` of its own (plugin/assets/signup.css). :focus-visible only, so a
   mouse click still looks like a click. */
body :is(input, select, textarea):focus-visible,
body :is(button[type="submit"], .gform_button):focus-visible {
	outline: 3px solid var(--gd-lotus-blue, #3772A6) !important;
	outline-offset: 2px !important;
}

/* Gravity Forms and BuddyPress draw a radio or checkbox as a styled label beside a
   transparent 0×0 input, so the input's own outline has nowhere to show: ring the
   label the visitor sees. */
body input[type="radio"]:focus-visible + label,
body input[type="checkbox"]:focus-visible + label {
	outline: 3px solid var(--gd-lotus-blue, #3772A6) !important;
	outline-offset: 2px !important;
	border-radius: 4px;
}

/* wp-login.php only: `body.login` is never on a front-end page, so these two rules cost
   nothing elsewhere. The Show password toggle is a plain `button[type="button"]` (the
   selectors above only ring submits), and the page's links — Lost your password, the
   Terms of Service — are tab stops too. */
.login :is(button, a):focus-visible {
	outline: 3px solid var(--gd-lotus-blue, #3772A6) !important;
	outline-offset: 2px !important;
}
