/**
 * Variant CSS: before-after--slider-divider
 *
 * One frame split down the middle: the "before" image fills the left half, the
 * "after" the right, meeting at a white seam with a round accent grip — the look
 * of a comparison slider, held still (no JS). Sharper and more "interactive" than
 * two separate columns or the diagonal reveal. Labels and seam sit on the photo,
 * so their colours are fixed (the correct text-on-photo pattern); the grip arrows
 * take --accent. Images are literal client uploads. Part of the `before-after`
 * role.
 */

body.aibt-universal .universal-before-after--slider-divider {
	padding-block: calc(clamp(3rem, 7vw, 5rem) * var(--density, 1));
}

/* Intro. */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__intro {
	margin-bottom: clamp(1.8rem, 4vw, 2.8rem);
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__kicker {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-widest) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 auto var(--space-sm) auto !important;
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__headline {
	font-family: var(--font-display) !important;
	color: var(--ink) !important;
	margin: 0 !important;
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__headline em {
	color: var(--accent) !important;
	font-style: italic;
}

/* The split frame. */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__compare {
	position: relative;
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	width: 100%;
	aspect-ratio: 16 / 10;
	max-height: 560px;
	overflow: hidden;
	border-radius: var(--decor-radius, 16px);
	box-shadow: 0 24px 50px -30px rgba(0, 0, 0, 0.45);
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__img {
	flex: 0 0 50%;
	width: 50%;
	height: 100%;
	margin: 0 !important;
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--duration-slow, 900ms) var(--ease-elegant, ease);
}

/* Gentle paired zoom on hover — reinforces the "live comparison" feel
   (reduced-motion is handled globally by the skeleton). */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__compare:hover .universal-before-after__img img {
	transform: scale(1.03);
}

/* White seam down the centre. */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__compare::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 3px;
	transform: translateX(-50%);
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
	z-index: 3;
}

/* Round grip handle on the seam. */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__handle {
	position: absolute !important;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 4;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.32);
}

/* Twin arrows ‹ › drawn in CSS, accent-coloured. */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__handle::before,
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__handle::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__handle::before {
	left: 12px;
	border-right: 7px solid var(--accent);
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__handle::after {
	right: 12px;
	border-left: 7px solid var(--accent);
}

/* Labels pinned to the photo corners. */
body.aibt-universal .universal-before-after--slider-divider .universal-before-after__label {
	position: absolute;
	bottom: clamp(0.8rem, 2vw, 1.2rem);
	z-index: 3;
	margin: 0 !important;
	padding: 0.32rem 0.85rem;
	border-radius: var(--decor-radius-pill, 999px);
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-wide) !important;
	text-transform: uppercase !important;
	background: rgba(0, 0, 0, 0.55);
	color: #ffffff !important;
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__label--before {
	left: clamp(0.8rem, 2vw, 1.2rem);
}

body.aibt-universal .universal-before-after--slider-divider .universal-before-after__label--after {
	right: clamp(0.8rem, 2vw, 1.2rem);
}

/* Taller frame on phones so each half keeps some room. */
@media (max-width: 600px) {
	body.aibt-universal .universal-before-after--slider-divider .universal-before-after__compare {
		aspect-ratio: 1 / 1;
	}
}

/* Cap wide uppercase tracking on small screens (A5 — wide tracking hurts small
   text). Kicker = --tracking-widest (0.24em), above the 0.1em floor. */
@media (max-width: 640px) {
	body.aibt-universal .universal-before-after--slider-divider .universal-before-after__kicker {
		letter-spacing: 0 !important;
	}
}

/* A8/A9 left-shift fix (2026-06-08): centered intro element(s) were max-width-capped by
   WP constrained layout but pinned left by horizontal margin:0. Force margin-inline:auto.
   Section class doubled -> specificity (0,4,1) beats h2.__headline-style rules; harmless on
   already-centered elements (auto margins compute to 0). Only left/right are overridden. */
body.aibt-universal .universal-before-after--slider-divider.universal-before-after--slider-divider .universal-before-after__headline { margin-inline: auto !important; }
