/* ==========================================================================
   Lumecca Before/After Gallery — front-end styles
   Scoped under .lba-gallery-root, using !important throughout to beat
   Enfold's Avia Layout Builder rules for spacing, color, layout, and —
   importantly — the handle's `left` position, which Enfold was overriding
   and freezing the divider in place.

   Fonts: Playfair Display (headings) + Proxima Nova (body), loaded from the
   site's existing Typekit kit. Background is transparent so the gallery
   sits on whatever section background it's placed in.
   ========================================================================== */

@import url("https://use.typekit.net/evb4jav.css");

:root {
	--lba-brand: #49565e;
	--lba-brand-soft: rgba(73, 86, 94, 0.5);
	--lba-ink: #49565e;
	--lba-muted: #8a8f94;
	--lba-line: rgba(73, 86, 94, 0.18);
	--lba-serif: "playfair-display", serif;
	--lba-sans: "proxima-nova", sans-serif;
}

/* ---- Reset spacing/box-model only ---- */
.lba-gallery-root,
.lba-gallery-root * ,
.lba-gallery-root *::before,
.lba-gallery-root *::after {
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	text-align: left !important;
	text-shadow: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	float: none !important;
	list-style: none !important;
	vertical-align: baseline !important;
}

.lba-gallery-root {
	display: block !important;
	width: 100% !important;
	background: transparent !important;
	color: var(--lba-ink) !important;
	font-family: var(--lba-sans) !important;
	position: relative !important;
	z-index: 1 !important;
	isolation: isolate !important;
}

.lba-gallery-root a {
	color: inherit !important;
	text-decoration: none !important;
}

.lba-gallery-root ::selection {
	background: var(--lba-brand) !important;
	color: #ffffff !important;
}

.lba-wrap {
	max-width: 920px !important;
	margin: 0 auto !important;
	padding: 0 24px 40px !important;
	width: 100% !important;
}

/* ---- Cases ---- */
.lba-cases {
	padding-top: 0 !important;
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 56px !important;
}



/* Large screens: 3 across */
@media (min-width: 1100px) {
	.lba-cases {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 42px !important;
	}
}

.lba-case {
	display: block !important;
	width: 100% !important;
}

.lba-case-head {
	display: flex !important;
	align-items: baseline !important;
	gap: 18px !important;
	margin-bottom: 16px !important;
}

.lba-case-num {
	font-family: var(--lba-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--lba-muted) !important;
	letter-spacing: 0.05em !important;
	padding-top: 2px !important;
	display: inline-block !important;
}

.lba-gallery-root h3.lba-h3 {
	font-family: var(--lba-serif) !important;
	font-weight: 400 !important;
	font-style: normal !important;
	font-size: clamp(20px, 3vw, 26px) !important;
	line-height: 1.15 !important;
	margin: 0 0 4px 0 !important;
	letter-spacing: -0.01em !important;
	color: var(--lba-ink) !important;
	text-transform: none !important;
	display: block !important;
}

.lba-gallery-root p.lba-meta-line {
	font-family: var(--lba-sans) !important;
	margin: 0 !important;
	font-size: 13px !important;
	color: var(--lba-muted) !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

.lba-tag {
	font-family: var(--lba-sans) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	color: var(--lba-brand) !important;
	border: 1px solid var(--lba-line) !important;
	padding: 3px 9px !important;
	border-radius: 100px !important;
	display: inline-block !important;
	line-height: 1.4 !important;
}

.lba-dot {
	color: var(--lba-line) !important;
	display: inline-block !important;
}

/* ---- Slider ---- */
.lba-slider {
	position: relative !important;
	width: 100% !important;
	aspect-ratio: 461 / 393; /* fallback; overridden inline per-case */
	border-radius: 14px !important;
	overflow: hidden !important;
	background: transparent !important;
	cursor: ew-resize !important;
	-webkit-user-select: none !important;
	user-select: none !important;
	touch-action: pan-y !important;
	outline: none !important;
	display: block !important;
}

.lba-slider:focus-visible {
	box-shadow: 0 0 0 3px rgba(73, 86, 94, 0.5) !important;
}

.lba-before-wrap,
.lba-after-wrap {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	height: 100% !important;
	overflow: hidden !important;
	display: block !important;
}

.lba-before-wrap {
	width: 100% !important;
}

.lba-after-wrap {
	width: 50%; /* driven live by JS */
}

/*
 * Split-image technique: the SAME composite photo is used for both layers.
 * Width and left are set by lumecca-gallery.js at runtime (deliberately not
 * !important here so the JS's inline priority values always win).
 */
.lba-gallery-root .lba-img-before,
.lba-gallery-root .lba-img-after {
	position: absolute !important;
	top: 0 !important;
	left: 0; /* set by JS */
	height: 100% !important;
	max-width: none !important;
	width: auto; /* set by JS */
	display: block !important;
	pointer-events: none !important;
}

.lba-edge-label {
	position: absolute !important;
	top: 16px !important;
	font-family: var(--lba-sans) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: #ffffff !important;
	background: rgba(73, 86, 94, 0.72) !important;
	padding: 5px 11px !important;
	border-radius: 100px !important;
	-webkit-backdrop-filter: blur(6px) !important;
	backdrop-filter: blur(6px) !important;
	pointer-events: none !important;
	display: block !important;
}

.lba-before-label { left: 16px !important; }
.lba-after-label { right: 16px !important; }

/*
 * The handle. `left` and `transform` are marked !important because Enfold's
 * global CSS was overriding the inline `left` set by JS, which froze the
 * divider in the middle while the image still revealed. The JS sets left as
 * an inline style; we let that inline value win by NOT forcing left here —
 * but we DO force the centering transform so the line/grip stay centered on
 * whatever left the JS applies.
 */
.lba-handle {
	position: absolute !important;
	top: 0 !important;
	height: 100% !important;
	width: 0 !important;
	transform: translateX(-50%) !important;
	pointer-events: none !important;
	display: block !important;
	z-index: 5 !important;
}

.lba-handle-line {
	position: absolute !important;
	top: 0 !important;
	left: 50% !important;
	width: 2px !important;
	height: 100% !important;
	background: var(--lba-brand) !important;
	transform: translateX(-50%) !important;
	box-shadow: 0 0 10px rgba(73, 86, 94, 0.5) !important;
	display: block !important;
}

.lba-handle-grip {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 40px !important;
	height: 40px !important;
	transform: translate(-50%, -50%) !important;
	background: var(--lba-brand) !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #ffffff !important;
	box-shadow: 0 0 0 5px rgba(73, 86, 94, 0.16), 0 6px 18px rgba(0, 0, 0, 0.25) !important;
	transition: transform 0.15s ease !important;
}

.lba-slider:hover .lba-handle-grip,
.lba-slider:focus-visible .lba-handle-grip {
	transform: translate(-50%, -50%) scale(1.08) !important;
}

.lba-slider.lba-flash .lba-handle-grip {
	animation: lba-flash-burst 0.9s ease-out !important;
}

@keyframes lba-flash-burst {
	0% { box-shadow: 0 0 0 5px rgba(73, 86, 94, 0.16), 0 0 0 0 rgba(73, 86, 94, 0.5); }
	40% { box-shadow: 0 0 0 5px rgba(73, 86, 94, 0.16), 0 0 0 26px rgba(73, 86, 94, 0); }
	100% { box-shadow: 0 0 0 5px rgba(73, 86, 94, 0.16), 0 0 0 0 rgba(73, 86, 94, 0); }
}

@media (max-width: 560px) {
	.lba-hero { padding: 32px 0 36px !important; }
	.lba-cases { gap: 44px !important; padding-top: 40px !important; }
}

@media (prefers-reduced-motion: reduce) {
	.lba-gallery-root *,
	.lba-gallery-root *::before,
	.lba-gallery-root *::after {
		animation: none !important;
		transition: none !important;
	}
}
