/* Pixel Craft accessibility enhancements. Intentionally minimal to preserve theme visuals. */
.cmsmasters-skip-link {
	position: fixed;
	left: 1rem;
	top: 1rem;
	z-index: 100000;
	padding: .75rem 1rem;
	background: #fff;
	color: #000;
	border: 2px solid currentColor;
	transform: translateY(-200%);
}
.cmsmasters-skip-link:focus { transform: translateY(0); }

/* Semantic buttons replace non-interactive spans; strip browser button chrome. */
.cmsmasters-burger-menu-button__toggle,
.cmsmasters-header-search-button-toggle,
.cmsmasters-header-search-form__close,
.cmsmasters-header-top-toggle__inner {
	font: inherit;
	color: inherit;
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	cursor: pointer;
}

/* Strong keyboard indication without changing mouse presentation. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

/* Put the keyboard indicator around the complete menu item. This makes it
 * visually unambiguous that Services / Portfolio / Pages is focused, not the
 * small decorative child arrow. */
.cmsmasters-menu__list a:focus-visible { outline: none; }
.cmsmasters-menu__list a:focus-visible > .cmsmasters-menu__item {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

/* The child arrow is decoration, never a separate keyboard control. */
.cmsmasters-child-indicator[aria-hidden="true"],
.cmsmasters-child-indicator[aria-hidden="true"]:focus,
.cmsmasters-child-indicator[aria-hidden="true"]:focus-visible {
	outline: none !important;
}

/* Ensure desktop dropdowns remain available when navigating by keyboard. */
.cmsmasters-menu__list li:focus-within > ul.sub-menu,
.cmsmasters-menu__list li:focus-within > ul.children,
.cmsmasters-menu__list li.cmsmasters-a11y-submenu-open > ul.sub-menu,
.cmsmasters-menu__list li.cmsmasters-a11y-submenu-open > ul.children {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

@media only screen and (min-width: 1025px) {
	.cmsmasters-header-top .cmsmasters-menu__list > li:focus-within > ul,
	.cmsmasters-header-top .cmsmasters-menu__list > li.cmsmasters-a11y-submenu-open > ul {
		margin: var(--cmsmasters-header-top-nav-dropdown-container-vert-gap) 0 0;
	}
	.cmsmasters-header-mid .cmsmasters-menu__list > li:focus-within > ul,
	.cmsmasters-header-mid .cmsmasters-menu__list > li.cmsmasters-a11y-submenu-open > ul {
		margin: var(--cmsmasters-header-mid-nav-dropdown-container-vert-gap) 0 0;
	}
	.cmsmasters-header-bot .cmsmasters-menu__list > li:focus-within > ul,
	.cmsmasters-header-bot .cmsmasters-menu__list > li.cmsmasters-a11y-submenu-open > ul {
		margin: var(--cmsmasters-header-bot-nav-dropdown-container-vert-gap) 0 0;
	}
}


/* The skip-link target is programmatically focusable but should not gain a
 * large generic control outline when focus is moved to the page landmark. */
#main:focus { outline: none; }

/* Parent menu items without a URL are promoted to keyboard disclosure
 * controls in JS. Keep the visual treatment identical to normal menu links. */
.cmsmasters-menu__list a[role="button"] { cursor: pointer; }

@media only screen and (min-width: 1025px) {
	/* On desktop the arrow is purely visual. Let pointer events land on the
	 * parent anchor so mouse and keyboard activation use the same control. */
	.cmsmasters-menu__list > li > a .cmsmasters-child-indicator {
		pointer-events: none;
	}
}

/* Respect the visitor's OS-level reduced-motion preference only. */
@media (prefers-reduced-motion: reduce) {
	html:focus-within { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* a11y6: URL-less menu parents use a real semantic button positioned over
 * Pixel Craft's original visual anchor. The anchor stays in place so all
 * existing theme typography, hover effects and animations remain untouched. */
.cmsmasters-menu__list li > .cmsmasters-a11y-menu-toggle {
	position: absolute;
	z-index: 206;
	display: block;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font: inherit;
	color: inherit;
	cursor: pointer;
}

.cmsmasters-menu__list li > .cmsmasters-a11y-menu-toggle:focus,
.cmsmasters-menu__list li > .cmsmasters-a11y-menu-toggle:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

/* The old visual anchor is intentionally not a keyboard target when it has
 * no destination. The overlay button supplies its accessible name/state. */
.cmsmasters-menu__list li > a[aria-hidden="true"] {
	pointer-events: none;
}

/* Keep the original visual hover treatment while the semantic disclosure
 * button has keyboard focus. */
.cmsmasters-menu__list li:focus-within > a span.cmsmasters-menu__item {
	text-decoration: inherit;
}
