/**
 * Base layout for Image / Featured Image grain overlay (dynamic texture via Elementor parse_css).
 */
.elementor-widget-image .ioroot-grain-root,
.elementor-widget-theme-post-featured-image .ioroot-grain-root {
	display: inline-block;
	position: relative;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	vertical-align: middle;
}

.elementor-widget-image .ioroot-grain-root::after,
.elementor-widget-theme-post-featured-image .ioroot-grain-root::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}

/* Canvas (JS) engine: real overlay element instead of ::after */
.elementor-widget-image .ioroot-grain-root--canvas::after,
.elementor-widget-theme-post-featured-image .ioroot-grain-root--canvas::after {
	display: none;
	content: none;
}

.elementor-widget-image .ioroot-grain-root--canvas .ioroot-grain-canvas,
.elementor-widget-theme-post-featured-image .ioroot-grain-root--canvas .ioroot-grain-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	pointer-events: none;
	object-fit: fill;
	image-rendering: pixelated;
}
