.oe-button-icon,
.oe-text-icon,
.wp-block-omni-omni-button__icon--library,
.wp-block-omni-client-info-link__icon--library {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	line-height: 0;
	color: inherit;
}

.oe-text-icon {
	vertical-align: -0.125em;
	font-size: var(--oe-icon-size, 1em);
	margin-inline-end: var(--oe-icon-gap, 0.35em);
}

.oe-text-icon.is-after {
	margin-inline-end: 0;
	margin-inline-start: var(--oe-icon-gap, 0.35em);
}

.oe-text-icon.has-icon-offset {
	transform: translateY( var(--oe-icon-offset, 0) );
}

/*
 * List icons replace bullets at render time. The marker uses the icon set
 * on the list, unless that item sets its own. Nested lists are separate blocks.
 */
.wp-block-list.oe-has-list-icon > li,
.wp-block-list > li.oe-has-item-icon {
	list-style: none;
	position: relative;
}

.wp-block-list.oe-has-list-icon > li::before,
.wp-block-list > li.oe-has-item-icon::before {
	content: "";
	position: absolute;
	inset-inline-start: calc((var(--oe-icon-size, 1em) + var(--oe-icon-gap, 0.35em)) * -1);
	top: 0.2em;
	top: calc((1lh - var(--oe-icon-size, 1em)) / 2);
	display: block;
	width: var(--oe-icon-size, 1em);
	height: var(--oe-icon-size, 1em);
	background-color: currentColor;
	-webkit-mask: var(--oe-list-icon) center / contain no-repeat;
	mask: var(--oe-list-icon) center / contain no-repeat;
	mask-mode: alpha;
	transform: translateY(var(--oe-icon-offset, 0));
}

/*
 * A set icon color is specified on the icon, so it wins over a link color
 * inherited from an ancestor, including that link's hover color.
 */
.oe-text-icon.has-oe-icon-color {
	color: var(--oe-icon-color);
}

a:hover .oe-text-icon.has-oe-icon-hover-color,
:is(.wp-block-heading, p):hover > .oe-text-icon.has-oe-icon-hover-color {
	color: var(--oe-icon-hover-color);
}

.oe-button-icon.has-oe-icon-color,
.wp-block-button__icon.has-oe-icon-color,
.wp-block-omni-omni-button__icon.has-oe-icon-color {
	color: var(--oe-icon-color);
}

:is(.wp-block-button, .wp-block-omni-omni-button):is(:hover, :focus-visible) :is(
	.oe-button-icon,
	.wp-block-button__icon,
	.wp-block-omni-omni-button__icon
).has-oe-icon-hover-color {
	color: var(--oe-icon-hover-color);
}

.oe-button-icon {
	font-size: var(--oe-icon-size, 1em);
}

.oe-button-icon svg,
.oe-text-icon svg,
.wp-block-omni-omni-button__icon--library svg,
.wp-block-omni-client-info-link__icon--library svg,
.oe-icon-picker__preview svg,
.oe-icon-picker__choice svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.wp-block-button__link:has(.oe-button-icon) {
	display: inline-flex;
	align-items: center;
	gap: var(--oe-icon-gap, 0.35em);
}

.oe-icon-picker__row {
	display: flex;
	align-items: center;
	gap: 8px;
}

.oe-icon-picker__preview {
	display: inline-flex;
	width: 24px;
	height: 24px;
	align-items: center;
	justify-content: center;
	font-size: 24px;
}

.oe-icon-picker__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 12px 0;
}

.oe-icon-picker__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
	gap: 6px;
	max-height: 360px;
	overflow: auto;
}

.oe-icon-picker__choice {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	font-size: 22px;
	border: 1px solid #dcdcde;
	background: #fff;
	border-radius: 2px;
	cursor: pointer;
}

.oe-icon-picker__choice.is-selected {
	border-color: #3858e9;
	box-shadow: inset 0 0 0 1px #3858e9;
}

.oe-icon-picker__legacy {
	margin-top: 8px;
}

/*
 * Kadence paints a nested panel gray. The icon controls sit inside another
 * panel, and that fill is not part of this control.
 */
.block-editor-block-inspector .components-panel__body .oe-icon-picker.components-panel__body.is-opened {
	background: transparent;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}
