#bee1-accessibility-toolbar {
	--bee1-a11y-accent: #0f766e;
	--bee1-a11y-text: #111827;
	--bee1-a11y-muted: #6b7280;
	--bee1-a11y-border: #d1d5db;
	--bee1-a11y-surface: #ffffff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 1.45;
	position: relative;
	z-index: 99998;
	/* Caching plugins with a "lazy render below-the-fold content" feature (e.g. WP Rocket) apply
	   `content-visibility: auto` to elements near the end of `<body>` — this plugin's wrapper
	   included. Per spec, `content-visibility` other than `visible` makes the element a containing
	   block for `position: fixed` descendants, so the toggle/panel (meant to be pinned to the
	   viewport) end up positioned relative to this wrapper instead — which sits wherever it is in
	   the page, often far below the fold. Force `visible` so our fixed children always anchor to
	   the actual viewport, regardless of host caching config. */
	content-visibility: visible !important;
	contain: none !important;
}

#bee1-accessibility-toolbar *,
#bee1-accessibility-toolbar *::before,
#bee1-accessibility-toolbar *::after {
	box-sizing: border-box;
}

.bee1-a11y-toggle,
.bee1-a11y-panel {
	position: fixed;
	z-index: 99998;
}

.bee1-a11y-toggle {
	align-items: center;
	background: var(--bee1-a11y-accent);
	border: 0;
	border-radius: 0 999px 999px 0;
	box-shadow: 0 8px 24px rgba(17, 24, 39, 0.24);
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	height: 48px;
	justify-content: center;
	padding: 0;
	width: 48px;
	transition: left 220ms ease, right 220ms ease, transform 160ms ease;
}

/* Defend the toggle's accent background + white icon against theme/reset button rules such as
   `[type="button"]{background:transparent;color:#222}` — those tie on specificity (0,1,0) with
   `.bee1-a11y-toggle` and, loading later, would win. Host-id prefix + !important keeps the a11y
   button visible on every theme (it must never blend into the page). */
#bee1-accessibility-toolbar .bee1-a11y-toggle {
	background: var(--bee1-a11y-accent) !important;
	border: 0 !important;
	color: #ffffff !important;
	padding: 0 !important;
}

/* Some themes (e.g. Hello Elementor) style every `<button>` AND every `[type="button"]`/
   `[type="submit"]` element with an aggressive reset: custom color/border/background/padding/
   border-radius/width, plus a hover/focus state that repaints the whole button in the theme's
   accent color. `[type="button"]` is an ATTRIBUTE selector — specificity (0,1,0), the same as a
   single class selector like `.bee1-a11y-panel__close` — and our toolbar's buttons all carry
   `type="button"`, so the match ties. On a tie the later stylesheet in the cascade wins, which is
   the theme's, since it loads after ours. Result: every toolbar button (close/reset/tool/font/
   contrast) gets repainted in the theme's accent color and the grid/flex layout breaks via the
   forced width/padding/border-radius. Host-id prefix bumps specificity to (1,1,0) — an outright
   win, not a tie — and !important makes it order-independent on top of that. */
#bee1-accessibility-toolbar button {
	appearance: none !important;
	width: auto !important;
}

#bee1-accessibility-toolbar .bee1-a11y-panel__close {
	background: rgba(255, 255, 255, 0.14) !important;
	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	border-radius: 6px !important;
	display: inline-flex !important;
	font-size: 13px !important;
	padding: 5px 9px !important;
}

#bee1-accessibility-toolbar .bee1-a11y-panel__close:hover,
#bee1-accessibility-toolbar .bee1-a11y-panel__close:focus {
	background: rgba(255, 255, 255, 0.24) !important;
	color: #ffffff !important;
}

#bee1-accessibility-toolbar .bee1-a11y-tool {
	background: #ffffff !important;
	border: 1px solid var(--bee1-a11y-border) !important;
	border-radius: 8px !important;
	color: var(--bee1-a11y-text) !important;
	display: flex !important;
	padding: 9px 10px !important;
}

#bee1-accessibility-toolbar .bee1-a11y-tool:hover,
#bee1-accessibility-toolbar .bee1-a11y-tool:focus {
	background: #f9fafb !important;
	color: var(--bee1-a11y-text) !important;
}

#bee1-accessibility-toolbar .bee1-a11y-tool.is-active {
	background: #ecfdf5 !important;
	border-color: var(--bee1-a11y-accent) !important;
}

#bee1-accessibility-toolbar .bee1-a11y-font-controls button,
#bee1-accessibility-toolbar .bee1-a11y-contrast-controls button {
	background: #f9fafb !important;
	border: 1px solid var(--bee1-a11y-border) !important;
	border-radius: 6px !important;
	color: var(--bee1-a11y-text) !important;
	display: inline-flex !important;
	font-size: 13px !important;
	padding: 6px !important;
}

#bee1-accessibility-toolbar .bee1-a11y-font-controls button:hover,
#bee1-accessibility-toolbar .bee1-a11y-contrast-controls button:hover,
#bee1-accessibility-toolbar .bee1-a11y-font-controls button:focus,
#bee1-accessibility-toolbar .bee1-a11y-contrast-controls button:focus {
	background: #eef2f6 !important;
	color: var(--bee1-a11y-text) !important;
}

#bee1-accessibility-toolbar .bee1-a11y-contrast-controls button.is-active {
	background: #ecfdf5 !important;
	border-color: var(--bee1-a11y-accent) !important;
}

#bee1-accessibility-toolbar .bee1-a11y-reset {
	background: #111827 !important;
	border: 0 !important;
	border-radius: 8px !important;
	color: #ffffff !important;
	display: block !important;
	font-size: 13px !important;
	padding: 9px 12px !important;
}

#bee1-accessibility-toolbar .bee1-a11y-reset:hover,
#bee1-accessibility-toolbar .bee1-a11y-reset:focus {
	background: #1f2937 !important;
	color: #ffffff !important;
}

#bee1-accessibility-toolbar button,
#bee1-accessibility-toolbar button:hover,
#bee1-accessibility-toolbar button:focus {
	transition: opacity 160ms ease, transform 160ms ease !important;
}

/* The panel moves focus to the close button when it opens (correct a11y behavior for keyboard/
   screen-reader users), which triggers `:focus`. Some themes style
   `[type="button"]:focus{outline:-webkit-focus-ring-color auto 5px}` (a chunky default ring) —
   `[type="button"]:focus` is specificity (0,2,0), beating our un-!important'd class selectors, so
   every time the panel opens the close button gets outlined in the theme's default ring color
   instead of ours. We don't remove the ring (that would break keyboard accessibility) — we just
   restyle it to match the toolbar instead of leaving the theme's default. */
#bee1-accessibility-toolbar .bee1-a11y-toggle:focus,
#bee1-accessibility-toolbar .bee1-a11y-panel__close:focus {
	outline: 2px solid #ffffff !important;
	outline-offset: 2px !important;
}

#bee1-accessibility-toolbar .bee1-a11y-tool:focus,
#bee1-accessibility-toolbar .bee1-a11y-font-controls button:focus,
#bee1-accessibility-toolbar .bee1-a11y-contrast-controls button:focus,
#bee1-accessibility-toolbar .bee1-a11y-reset:focus {
	outline: 2px solid var(--bee1-a11y-accent) !important;
	outline-offset: 2px !important;
}

.bee1-a11y-toggle:hover {
	transform: translateY(-1px);
}

.bee1-a11y-toggle svg {
	display: block;
	fill: currentColor;
	height: 25px;
	width: 25px;
}

.bee1-a11y-panel {
	background: var(--bee1-a11y-surface);
	border: 1px solid rgba(17, 24, 39, 0.12);
	border-radius: 0 8px 8px 0;
	box-shadow: 0 18px 46px rgba(17, 24, 39, 0.24);
	color: var(--bee1-a11y-text);
	display: flex;
	flex-direction: column;
	max-height: min(620px, calc(100vh - 32px));
	max-height: min(620px, calc(100dvh - 32px));
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	transition: opacity 180ms ease, transform 220ms ease;
	width: 320px;
}

.bee1-a11y-panel__header {
	flex: 0 0 auto;
}

.bee1-a11y-panel.is-open {
	opacity: 1;
	pointer-events: auto;
}

.bee1-a11y-pos-bottom-left {
	bottom: 20px;
	left: 20px;
}

.bee1-a11y-panel.bee1-a11y-pos-bottom-left {
	bottom: 78px;
}

.bee1-a11y-pos-bottom-right {
	bottom: 20px;
	right: 20px;
}

.bee1-a11y-panel.bee1-a11y-pos-bottom-right {
	bottom: 78px;
}

.bee1-a11y-pos-middle-left {
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.bee1-a11y-panel.bee1-a11y-pos-middle-left {
	left: 0;
	transform: translate(calc(-100% - 8px), -50%);
}

.bee1-a11y-panel.bee1-a11y-pos-middle-left.is-open {
	transform: translate(0, -50%);
}

#bee1-accessibility-toolbar.is-open .bee1-a11y-toggle.bee1-a11y-pos-middle-left {
	left: 320px;
}

.bee1-a11y-pos-middle-right {
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

.bee1-a11y-toggle.bee1-a11y-pos-middle-right,
.bee1-a11y-toggle.bee1-a11y-pos-bottom-right,
.bee1-a11y-toggle.bee1-a11y-pos-top-right {
	border-radius: 999px 0 0 999px;
}

.bee1-a11y-panel.bee1-a11y-pos-middle-right {
	border-radius: 8px 0 0 8px;
	right: 0;
	transform: translate(calc(100% + 8px), -50%);
}

.bee1-a11y-panel.bee1-a11y-pos-middle-right.is-open {
	transform: translate(0, -50%);
}

#bee1-accessibility-toolbar.is-open .bee1-a11y-toggle.bee1-a11y-pos-middle-right {
	right: 320px;
}

.bee1-a11y-pos-top-left {
	left: 20px;
	top: 20px;
}

.bee1-a11y-panel.bee1-a11y-pos-top-left {
	top: 78px;
}

.bee1-a11y-pos-top-right {
	right: 20px;
	top: 20px;
}

.bee1-a11y-panel.bee1-a11y-pos-top-right {
	top: 78px;
}

.bee1-a11y-panel__header {
	align-items: center;
	background: var(--bee1-a11y-accent);
	color: #ffffff !important;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	padding: 12px 14px;
}

.bee1-a11y-panel__title {
	align-items: center;
	color: #ffffff !important;
	display: inline-flex;
	font-size: 15px;
	font-weight: 700;
	gap: 8px;
	line-height: 1.2;
	margin: 0;
}

.bee1-a11y-panel__title span {
	color: #ffffff !important;
}

.bee1-a11y-panel__title svg {
	fill: currentColor;
	height: 20px;
	width: 20px;
}

.bee1-a11y-panel__close {
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 6px;
	color: #ffffff !important;
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	min-height: 32px;
	padding: 5px 9px;
}

#bee1-accessibility-toolbar .bee1-a11y-panel__header,
#bee1-accessibility-toolbar .bee1-a11y-panel__header .bee1-a11y-panel__title,
#bee1-accessibility-toolbar .bee1-a11y-panel__header .bee1-a11y-panel__title span,
#bee1-accessibility-toolbar .bee1-a11y-panel__header .bee1-a11y-panel__close {
	color: #ffffff !important;
}

#bee1-accessibility-toolbar .bee1-a11y-panel__header svg,
#bee1-accessibility-toolbar .bee1-a11y-panel__header svg * {
	color: #ffffff !important;
	fill: currentColor !important;
	stroke: currentColor !important;
}

.bee1-a11y-panel__body {
	display: grid;
	flex: 1 1 auto;
	gap: 10px;
	min-height: 0;
	overflow-y: auto !important;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 12px;
}

.bee1-a11y-row,
.bee1-a11y-tool {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--bee1-a11y-border);
	border-radius: 8px;
	color: var(--bee1-a11y-text);
	display: flex;
	gap: 10px;
	justify-content: space-between;
	min-height: 44px;
	padding: 9px 10px;
	width: 100%;
}

.bee1-a11y-row {
	align-items: stretch;
	flex-direction: column;
}

.bee1-a11y-label {
	align-items: center;
	display: inline-flex;
	font-size: 13px;
	font-weight: 700;
	gap: 8px;
}

.bee1-a11y-label svg,
.bee1-a11y-tool svg {
	fill: currentColor;
	height: 18px;
	width: 18px;
}

.bee1-a11y-font-controls {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bee1-a11y-contrast-controls {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bee1-a11y-font-controls button,
.bee1-a11y-contrast-controls button,
.bee1-a11y-tool,
.bee1-a11y-reset {
	cursor: pointer;
	font-family: inherit;
}

.bee1-a11y-font-controls button,
.bee1-a11y-contrast-controls button {
	background: #f9fafb;
	border: 1px solid var(--bee1-a11y-border);
	border-radius: 6px;
	color: var(--bee1-a11y-text);
	font-size: 13px;
	font-weight: 700;
	min-height: 34px;
	padding: 6px;
}

.bee1-a11y-font-size-value {
	align-items: center;
	color: var(--bee1-a11y-muted);
	display: inline-flex;
	font-size: 12px;
	font-weight: 700;
	justify-content: center;
}

.bee1-a11y-contrast-controls button.is-active,
.bee1-a11y-tool.is-active {
	background: #ecfdf5;
	border-color: var(--bee1-a11y-accent);
	color: var(--bee1-a11y-text);
}

.bee1-a11y-tool {
	text-align: start;
}

.bee1-a11y-tool__status {
	background: #d1d5db;
	border-radius: 999px;
	flex: 0 0 auto;
	height: 10px;
	width: 10px;
}

.bee1-a11y-tool.is-active .bee1-a11y-tool__status {
	background: var(--bee1-a11y-accent);
}

.bee1-a11y-reset {
	background: #111827;
	border: 0;
	border-radius: 8px;
	color: #ffffff;
	font-size: 13px;
	font-weight: 700;
	min-height: 40px;
	padding: 9px 12px;
	width: 100%;
}

.bee1-a11y-reading-guide {
	background: var(--bee1-a11y-accent);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.8);
	height: 4px;
	left: 0;
	opacity: 0.78;
	pointer-events: none;
	position: fixed;
	top: 50%;
	width: 100%;
	z-index: 99997;
}

html.bee1-a11y-high-contrast body > *:not(#bee1-accessibility-toolbar) {
	filter: contrast(1.28) saturate(1.08);
}

html.bee1-a11y-negative-contrast body > *:not(#bee1-accessibility-toolbar),
html.bee1-a11y-negative-contrast body > *:not(#bee1-accessibility-toolbar) * {
	background: #000000 !important;
	border-color: #ffffff !important;
	color: #ffff00 !important;
}

html.bee1-a11y-negative-contrast body > *:not(#bee1-accessibility-toolbar) a,
html.bee1-a11y-negative-contrast body > *:not(#bee1-accessibility-toolbar) a * {
	color: #80ffff !important;
}

html.bee1-a11y-light-background body > *:not(#bee1-accessibility-toolbar),
html.bee1-a11y-light-background body > *:not(#bee1-accessibility-toolbar) * {
	background: #ffffff !important;
	color: #000000 !important;
}

body.bee1-a11y-grayscale > *:not(#bee1-accessibility-toolbar) {
	filter: grayscale(1) !important;
}

body.bee1-a11y-underline-links a,
body.bee1-a11y-underline-links a * {
	text-decoration: underline !important;
}

body.bee1-a11y-readable-font,
body.bee1-a11y-readable-font *:not(i):not(svg):not(path) {
	font-family: Arial, Helvetica, sans-serif !important;
}

body.bee1-a11y-spacing p,
body.bee1-a11y-spacing li,
body.bee1-a11y-spacing label,
body.bee1-a11y-spacing input,
body.bee1-a11y-spacing textarea {
	letter-spacing: 0.06em !important;
	line-height: 1.85 !important;
	word-spacing: 0.12em !important;
}

body.bee1-a11y-pause-motion *,
body.bee1-a11y-pause-motion *::before,
body.bee1-a11y-pause-motion *::after {
	animation-duration: 0s !important;
	animation-iteration-count: 1 !important;
	scroll-behavior: auto !important;
	transition-duration: 0s !important;
}

body.bee1-a11y-big-cursor,
body.bee1-a11y-big-cursor * {
	cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M4 1l21 20h-10l-4 10z' fill='%23000' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E") 4 1, auto !important;
}

body.bee1-a11y-hide-images img,
body.bee1-a11y-hide-images picture,
body.bee1-a11y-hide-images video {
	visibility: hidden !important;
}

#bee1-accessibility-toolbar,
#bee1-accessibility-toolbar * {
	filter: none;
	font-family: Arial, Helvetica, sans-serif !important;
	letter-spacing: 0 !important;
	line-height: 1.45;
	text-transform: none;
	word-spacing: normal !important;
}

@media (max-width: 520px) {
	.bee1-a11y-toggle {
		height: 46px;
		width: 46px;
	}

	.bee1-a11y-panel {
		left: 12px !important;
		right: 12px !important;
		top: auto !important;
		bottom: 72px !important;
		max-height: calc(100vh - 96px);
		max-height: calc(100dvh - 96px);
		transform: none !important;
		width: auto;
	}

	/* Slightly compacter rows on small screens so more tools fit before scrolling. */
	.bee1-a11y-panel__body {
		gap: 7px;
		padding: 10px;
	}

	.bee1-a11y-row,
	.bee1-a11y-tool {
		font-size: 13px;
		min-height: 40px;
		padding: 7px 9px;
	}

	.bee1-a11y-pos-bottom-left,
	.bee1-a11y-pos-middle-left,
	.bee1-a11y-pos-top-left {
		left: 0;
	}

	#bee1-accessibility-toolbar.is-open .bee1-a11y-toggle.bee1-a11y-pos-middle-left {
		left: 0;
	}

	.bee1-a11y-pos-bottom-right,
	.bee1-a11y-pos-middle-right,
	.bee1-a11y-pos-top-right {
		right: 0;
	}

	#bee1-accessibility-toolbar.is-open .bee1-a11y-toggle.bee1-a11y-pos-middle-right {
		right: 0;
	}
}

/* The compact-row treatment above only triggers by WIDTH (<=520px), so a short-but-wide window
   (a small laptop browser, a tablet in landscape) still gets full-size rows squeezed into
   `max-height: min(620px, 100vh - 32px)` — technically still scrollable, but cramped, with most of
   the tool list hidden below the fold on first open. Mirror the same compaction by HEIGHT so short
   windows get the same breathing room narrow ones already do. */
@media (max-height: 700px) {
	.bee1-a11y-panel__body {
		gap: 7px;
		padding: 10px;
	}

	.bee1-a11y-row,
	.bee1-a11y-tool {
		font-size: 13px;
		min-height: 40px;
		padding: 7px 9px;
	}
}
