.wp-block-blp-before-after-image {
	max-width: 100%;
}

.wp-block-blp-before-after-image.blp-before-after {
	margin-top: var(--blp-ba-margin, 0);
	margin-right: var(--blp-ba-margin, 0);
	margin-bottom: var(--blp-ba-margin, 0);
	margin-left: var(--blp-ba-margin, 0);
}

.blp-before-after {
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	touch-action: none;
	user-select: none;
	-webkit-user-select: none;
	box-sizing: border-box;
	padding: var(--blp-ba-padding, 0);
	border-width: var(--blp-ba-container-border-width, 0);
	border-style: solid;
	border-color: var(--blp-ba-container-border-color, transparent);
	border-radius: var(--blp-ba-border-radius, 0);
	/* Fills sub-pixel gaps at rounded corners (matches border, not page background). */
	background-color: var(--blp-ba-container-border-color, transparent);
	--blp-ba-start: 50%;
	--blp-ba-bar-width: 8px;
	--blp-ba-bar-color: #ffffff;
	--blp-ba-arrow-color: #ffffff;
	--blp-ba-arrow-stroke: 3px;
	--blp-ba-arrow-width: 16px;
	--blp-ba-arrow-spacing: 15px;
	--blp-ba-padding: 0px;
	--blp-ba-margin: 0px;
	--blp-ba-container-border-width: 3px;
	--blp-ba-container-border-color: #ffffff;
	--blp-ba-border-radius: 15px;
}

.blp-before-after.alignwide,
.blp-before-after.alignfull {
	width: 100%;
}

.blp-ba-stage {
	position: relative;
	width: 100%;
	line-height: 0;
	/* Inner curve must be smaller than the outer border radius to avoid corner gaps. */
	border-radius: max(
		0px,
		calc(var(--blp-ba-border-radius) - var(--blp-ba-container-border-width))
	);
	overflow: hidden;
	isolation: isolate;
}

.blp-before-after[style*="aspect-ratio"] .blp-ba-stage {
	height: 100%;
}

.blp-ba-image {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	pointer-events: none;
}

.blp-before-after[style*="aspect-ratio"] .blp-ba-image--before {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

.blp-ba-after-clip {
	position: absolute;
	inset: 0;
	overflow: hidden;
	clip-path: inset(0 0 0 var(--blp-ba-start));
	-webkit-clip-path: inset(0 0 0 var(--blp-ba-start));
}

.blp-before-after--vertical .blp-ba-after-clip {
	clip-path: inset(0 0 var(--blp-ba-start) 0);
	-webkit-clip-path: inset(0 0 var(--blp-ba-start) 0);
}

.blp-ba-after-clip .blp-ba-image--after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	max-width: none;
}

.blp-before-after[style*="aspect-ratio"] .blp-ba-after-clip .blp-ba-image--after {
	height: 100%;
	object-fit: cover;
}

.blp-ba-handle {
	position: absolute;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	outline: none;
}

.blp-before-after--horizontal .blp-ba-handle {
	top: 0;
	bottom: 0;
	left: var(--blp-ba-start);
	width: 0;
	transform: translateX(-50%);
	cursor: ew-resize;
}

.blp-before-after--vertical .blp-ba-handle {
	top: var(--blp-ba-start);
	left: 0;
	right: 0;
	height: 0;
	transform: translateY(-50%);
	cursor: ns-resize;
}

.blp-ba-bar {
	position: absolute;
	background: var(--blp-ba-bar-color);
	box-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
}

.blp-before-after--horizontal .blp-ba-bar {
	top: 0;
	left: 50%;
	width: var(--blp-ba-bar-width);
	height: 100%;
	transform: translateX(-50%);
}

.blp-before-after--vertical .blp-ba-bar {
	top: 50%;
	left: 0;
	width: 100%;
	height: var(--blp-ba-bar-width);
	transform: translateY(-50%);
}

.blp-ba-arrows {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--blp-ba-arrow-color);
	pointer-events: none;
}

.blp-before-after--horizontal .blp-ba-arrows {
	flex-direction: row;
}

.blp-before-after--vertical .blp-ba-arrows {
	flex-direction: column;
}

.blp-ba-arrow {
	width: var(--blp-ba-arrow-width);
	height: auto;
	flex-shrink: 0;
}

.blp-ba-arrow path {
	stroke: currentColor;
}

.blp-ba-arrow--left path {
	stroke-width: var(--blp-ba-arrow-stroke-left, var(--blp-ba-arrow-stroke));
}

.blp-ba-arrow--right path {
	stroke-width: var(--blp-ba-arrow-stroke-right, var(--blp-ba-arrow-stroke));
}

.blp-before-after--horizontal .blp-ba-arrow--left {
	margin-right: var(--blp-ba-arrow-spacing-left, var(--blp-ba-arrow-spacing));
	transition: margin 0.12s ease-out;
}

.blp-before-after--horizontal .blp-ba-arrow--right {
	margin-left: var(--blp-ba-arrow-spacing-right, var(--blp-ba-arrow-spacing));
	transition: margin 0.12s ease-out;
}

.blp-before-after--vertical .blp-ba-arrow--left {
	transform: rotate(90deg);
	margin-bottom: var(--blp-ba-arrow-spacing-left, var(--blp-ba-arrow-spacing));
	transition: margin 0.12s ease-out;
}

.blp-before-after--vertical .blp-ba-arrow--right {
	transform: rotate(90deg);
	margin-top: var(--blp-ba-arrow-spacing-right, var(--blp-ba-arrow-spacing));
	transition: margin 0.12s ease-out;
}

.blp-before-after.is-idle-swaying .blp-ba-handle {
	will-change: left, top;
}

.blp-before-after.is-idle-swaying .blp-ba-arrow--left,
.blp-before-after.is-idle-swaying .blp-ba-arrow--right {
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	.blp-before-after .blp-ba-arrow--left,
	.blp-before-after .blp-ba-arrow--right {
		transition: none;
	}
}

.blp-before-after.is-active .blp-ba-handle,
.blp-before-after.is-active {
	cursor: ew-resize;
}

.blp-before-after--vertical.is-active,
.blp-before-after--vertical.is-active .blp-ba-handle {
	cursor: ns-resize;
}

/* Editor placeholder */
.blp-before-after-editor-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 220px;
	padding: 1.5rem;
	border: 2px dashed #c3c4c7;
	border-radius: 4px;
	background: #f6f7f7;
	color: #1e1e1e;
	text-align: center;
}

.blp-before-after-editor-placeholder p {
	margin: 0;
	max-width: 28rem;
}

.blp-before-after-editor-images {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.blp-before-after-editor-images .components-button {
	width: 100%;
	justify-content: center;
}

.editor-styles-wrapper .wp-block-blp-before-after-image.blp-before-after {
	margin-top: var(--blp-ba-margin, 0);
	margin-right: var(--blp-ba-margin, 0);
	margin-bottom: var(--blp-ba-margin, 0);
	margin-left: var(--blp-ba-margin, 0);
}

.blp-before-after-editor-preview {
	pointer-events: auto;
}

.blp-before-after-editor-preview .blp-ba-handle {
	pointer-events: auto;
}
