.bawp-accessibility,
.bawp-accessibility *,
.bawp-panel,
.bawp-panel * {
	box-sizing: border-box;
}

.bawp-accessibility {
	position: relative !important;
	display: inline-block;
	max-width: 100%;
	line-height: 1.35;
}

.bawp-accessibility button,
.bawp-panel button {
	font: inherit;
}

.bawp-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	max-width: 100%;
	padding: var(--bawp-padding-v) var(--bawp-padding-h);
	border: var(--bawp-border-width) solid var(--bawp-button-border);
	border-radius: var(--bawp-border-radius);
	background: var(--bawp-button-bg);
	color: var(--bawp-button-text);
	font-size: var(--bawp-font-size);
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	cursor: pointer;
	box-shadow: none !important;
	text-shadow: none !important;
	transform: none !important;
	transition: none !important;
	animation: none !important;
}

.bawp-toggle:hover {
	background: var(--bawp-button-bg) !important;
	color: var(--bawp-button-text) !important;
}

.bawp-toggle:hover,
.bawp-toggle:focus,
.bawp-toggle:active {
	box-shadow: none !important;
	transform: none !important;
	transition: none !important;
	animation: none !important;
}

.bawp-toggle:focus-visible,
.bawp-controls button:focus-visible {
	outline: 3px solid var(--bawp-accent);
	outline-offset: 3px;
}

.bawp-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--bawp-icon-size);
	height: var(--bawp-icon-size);
	color: var(--bawp-icon-color);
	line-height: 1;
}

.bawp-icon-dashicon,
.bawp-icon-dashicon::before {
	width: var(--bawp-icon-size) !important;
	height: var(--bawp-icon-size) !important;
	font-size: var(--bawp-icon-size) !important;
	line-height: 1 !important;
}

.bawp-icon-image {
	display: inline-block;
	background-color: currentColor;
	-webkit-mask-image: var(--bawp-icon-image);
	mask-image: var(--bawp-icon-image);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.bawp-toggle-label {
	overflow-wrap: anywhere;
}

/*
 * El panel se mueve temporalmente al body y usa posición fija.
 * De este modo se superpone a la página sin modificar el alto del contenedor
 * del shortcode y sin quedar recortado por overflow de bloques o columnas.
 */
.bawp-panel {
	position: fixed !important;
	top: 0;
	left: 0;
	z-index: 2147483000 !important;
	width: min(300px, calc(100vw - 16px));
	max-height: calc(100vh - 16px);
	overflow: auto;
	padding: 14px;
	border: 1px solid color-mix(in srgb, var(--bawp-panel-text) 25%, transparent);
	border-radius: 12px;
	background: var(--bawp-panel-bg);
	color: var(--bawp-panel-text);
	font-family: inherit;
	line-height: 1.35;
	box-shadow: none !important;
	text-shadow: none !important;
	transform: none !important;
	transition: none !important;
	animation: none !important;
}

.bawp-panel[hidden] {
	display: none !important;
}

.bawp-panel-title {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 800;
	color: inherit;
}

.bawp-controls {
	display: grid;
	gap: 8px;
}

.bawp-controls button {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: center;
	min-height: 44px;
	width: 100%;
	padding: 9px 12px;
	border: 1px solid color-mix(in srgb, var(--bawp-panel-text) 25%, transparent);
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	box-shadow: none !important;
	text-shadow: none !important;
	transform: none !important;
	transition: none !important;
	animation: none !important;
}

.bawp-controls button:hover,
.bawp-controls button[aria-pressed="true"] {
	background: color-mix(in srgb, var(--bawp-accent) 15%, transparent);
	border-color: var(--bawp-accent);
}

.bawp-controls button:disabled {
	opacity: .45;
	cursor: not-allowed;
}

.bawp-controls button > span:first-child {
	font-size: 20px;
	font-weight: 800;
	text-align: center;
}

.bawp-live {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/*
 * La escala de grises se aplica por ramas del DOM mediante JavaScript.
 * Así se excluyen tanto el botón como el panel superpuesto.
 */
.bawp-grayscale-target {
	filter: grayscale(100%) !important;
}

html.bawp-high-contrast body {
	background: #000 !important;
	color: #fff !important;
}

html.bawp-high-contrast body * {
	background-color: #000 !important;
	color: #fff !important;
	border-color: #fff !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

html.bawp-high-contrast body a,
html.bawp-high-contrast body a * {
	color: #ffff00 !important;
	text-decoration: underline !important;
}

html.bawp-high-contrast body img,
html.bawp-high-contrast body video,
html.bawp-high-contrast body svg {
	filter: contrast(1.25) !important;
}

html.bawp-high-contrast .bawp-accessibility,
html.bawp-high-contrast .bawp-accessibility *,
html.bawp-high-contrast .bawp-panel,
html.bawp-high-contrast .bawp-panel * {
	background-color: #000 !important;
	color: #fff !important;
	border-color: #fff !important;
}

html.bawp-high-contrast .bawp-accessibility .bawp-toggle,
html.bawp-high-contrast .bawp-panel .bawp-controls button[aria-pressed="true"] {
	background-color: #fff !important;
	color: #000 !important;
}

html.bawp-high-contrast .bawp-icon-image {
	background-color: currentColor !important;
}
