/* ==========================================================================
   AcceGuru - front-end fixer styles
   ========================================================================== */

/* Skip link - WCAG 2.4.1 (Bypass Blocks, A)
   Visually hidden until keyboard focus.
   Uses the modern "visually hidden" clip pattern so it's reachable by
   screen readers and Tab but invisible on-screen.
   !important guards against FSE/block theme inline rules on <a>. */
.acceguru-skip-link,
.acceguru-skip-link:link,
.acceguru-skip-link:visited {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	z-index: 100000 !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;

	background: #1d2327 !important;
	color: #fff !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	text-decoration: none !important;
}

.acceguru-skip-link:focus,
.acceguru-skip-link:focus-visible,
.acceguru-skip-link:active {
	top: 6px !important;
	left: 6px !important;
	width: auto !important;
	height: auto !important;
	padding: 10px 20px !important;
	margin: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
	border-radius: 6px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .35) !important;
	outline: 3px solid #2271b1 !important;
	outline-offset: 2px !important;
}

/* Focus Outlines - WCAG 2.4.7 (Focus Visible, AA) / 2.4.11 (Focus Appearance, AA)
   Restores visible focus indicators that themes often suppress with
   `outline: none` or override with low-contrast colours.

   Specificity strategy:
   Block themes (Twenty Twenty-Five, etc.) generate focus rules from
   theme.json that look like `:root :where(a):focus-visible` - that is
   specificity (0,2,0). Plain `a:focus-visible` is only (0,1,1) and loses
   even with !important. We add `:not([hidden])` to bump our selectors to
   (0,2,1), which beats the theme rule. `:not([hidden])` is semantically
   correct - there is no point styling focus on hidden elements - and
   matches every visible interactive element.

   Sub-property strategy:
   Themes commonly override `outline-color` alone via theme.json. Setting
   the shorthand `outline:` is not enough because a later, more specific
   `outline-color: ...` will win. We declare each sub-property
   individually with !important so each one is independently protected. */

a:focus-visible:not([hidden]),
button:focus-visible:not([hidden]),
input:focus-visible:not([hidden]),
select:focus-visible:not([hidden]),
textarea:focus-visible:not([hidden]),
details:focus-visible:not([hidden]),
summary:focus-visible:not([hidden]),
[tabindex]:focus-visible:not([hidden]),
[contenteditable="true"]:focus-visible:not([hidden]) {
	outline-color:  #005fcc !important;
	outline-style:  solid   !important;
	outline-width:  3px     !important;
	outline-offset: 3px     !important;
}

/* :focus fallback for browsers without :focus-visible support
   (legacy Edge, very old Safari). Same specificity boost. */
a:focus:not(:focus-visible):not([hidden]),
button:focus:not(:focus-visible):not([hidden]),
input:focus:not(:focus-visible):not([hidden]),
select:focus:not(:focus-visible):not([hidden]),
textarea:focus:not(:focus-visible):not([hidden]),
details:focus:not(:focus-visible):not([hidden]),
summary:focus:not(:focus-visible):not([hidden]),
[tabindex]:focus:not(:focus-visible):not([hidden]),
[contenteditable="true"]:focus:not(:focus-visible):not([hidden]) {
	outline-color:  #005fcc !important;
	outline-style:  solid   !important;
	outline-width:  3px     !important;
	outline-offset: 3px     !important;
}

/* Dark-scheme override - keeps contrast on dark backgrounds.
   #66aaff on a dark surface passes 4.5:1 against typical dark page colours. */
@media (prefers-color-scheme: dark) {
	a:focus-visible:not([hidden]),
	button:focus-visible:not([hidden]),
	input:focus-visible:not([hidden]),
	select:focus-visible:not([hidden]),
	textarea:focus-visible:not([hidden]),
	details:focus-visible:not([hidden]),
	summary:focus-visible:not([hidden]),
	[tabindex]:focus-visible:not([hidden]),
	[contenteditable="true"]:focus-visible:not([hidden]),
	a:focus:not(:focus-visible):not([hidden]),
	button:focus:not(:focus-visible):not([hidden]),
	input:focus:not(:focus-visible):not([hidden]),
	select:focus:not(:focus-visible):not([hidden]),
	textarea:focus:not(:focus-visible):not([hidden]),
	details:focus:not(:focus-visible):not([hidden]),
	summary:focus:not(:focus-visible):not([hidden]),
	[tabindex]:focus:not(:focus-visible):not([hidden]),
	[contenteditable="true"]:focus:not(:focus-visible):not([hidden]) {
		outline-color: #66aaff !important;
	}
}
