/* =========================================================
   Project Showcase — Sticky Scroll-Spy  (Range-style)
   ========================================================= */

/* ---- Elementor wrapper reset ---- */
.elementor-widget-lvc_project_showcase {
	width: 100% !important;
	max-width: 100% !important;
}

.elementor-widget-lvc_project_showcase > .elementor-widget-container {
	overflow: visible !important;
}

/* ---- Section ---- */
.lvc-showcase-section {
	background: #fff;
	position: relative;
	z-index: 1;
	overflow: visible;
}

.lvc-showcase {
	display: flex;
	flex-direction: row;
	gap: 0;
	position: relative;
	max-width: 1340px;
	margin: 0 auto;
	padding: 0 60px;
}

/* ---- Left: Scrolling images column ---- */
.lvc-showcase__images {
	flex: 0 0 50%;
	max-width: 50%;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 100px 0;
}

.lvc-showcase__img-wrap {
	width: 100%;
	overflow: hidden;
	opacity: 0.3;
	transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1);
	margin-bottom: 4px;
}

.lvc-showcase__img-wrap:last-child {
	margin-bottom: 0;
}

.lvc-showcase__img-wrap.is-active {
	opacity: 1;
}

.lvc-showcase__img-wrap img {
	display: block;
	width: 100%;
	height: auto;
	min-height: 520px;
	aspect-ratio: 9 / 10;
	object-fit: cover;
}

/* Fix body overflow so CSS sticky works (clip ≠ scroll container) */
body {
	overflow-x: clip !important;
}

/* ---- Right: Sticky sidebar (pure CSS) ---- */
.lvc-showcase__sidebar {
	flex: 0 0 50%;
	max-width: 50%;
	position: sticky;
	top: 120px;
	align-self: flex-start;
	height: fit-content;
}

.lvc-showcase__sidebar-inner {
	padding: 100px 0 100px 80px;
	max-height: calc(100vh - 120px);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Subtitle — small label */
.lvc-showcase__subtitle {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3.5px;
	text-transform: uppercase;
	color: #0d3c55;
	margin-bottom: 28px;
}

/* ---- Project list ---- */
.lvc-showcase__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lvc-showcase__item {
	padding: 10px 0;
	cursor: pointer;
}

/* Project name — elegant serif */
.lvc-showcase__item-name {
	display: block;
	font-family: 'Maven Pro', 'Playfair Display', Georgia, serif;
	font-size: clamp(24px, 2.4vw, 34px);
	font-weight: 300;
	line-height: 1.35;
	color: #c8cdd0;
	transition: color 0.4s ease;
}

/* Detail — grid-row collapse for smooth height animation */
.lvc-showcase__item-detail {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.5s cubic-bezier(0.4, 0, 0.2, 1),
	            opacity 0.4s ease;
	opacity: 0;
}

.lvc-showcase__item-detail > div {
	overflow: hidden;
	padding-top: 8px;
}

.lvc-showcase__item-detail p {
	font-family: 'Maven Pro', sans-serif;
	font-size: 14px;
	line-height: 1.7;
	color: #555;
	margin: 0 0 14px;
	max-width: 420px;
}

/* Learn More link */
.lvc-showcase .lvc-showcase__learn-more,
a.lvc-showcase__learn-more {
	display: inline-block;
	font-family: 'Maven Pro', sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #1a3a4a;
	text-decoration: none;
	position: relative;
	padding-bottom: 3px;
	line-height: 1.4;
}

.lvc-showcase__learn-more::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: #1a3a4a;
	transform: scaleX(1);
	transform-origin: left;
	transition: transform 0.3s ease;
}

.lvc-showcase__learn-more:hover {
	color: #0d3c55;
}

.lvc-showcase__learn-more:hover::after {
	transform: scaleX(0);
	transform-origin: right;
}

/* ---- Active state ---- */
.lvc-showcase__item.is-active .lvc-showcase__item-name {
	color: #102c39;
}

.lvc-showcase__item.is-active .lvc-showcase__item-detail {
	grid-template-rows: 1fr;
	opacity: 1;
}

/* ---- Mobile cards — hidden on desktop ---- */
.lvc-showcase-mobile {
	display: none;
}

/* ========== Tablet ========== */
@media (max-width: 1024px) {
	.lvc-showcase {
		flex-direction: column;
		padding: 60px 32px;
	}

	/* On stacked layout, show all images at full opacity */
	.lvc-showcase__img-wrap {
		opacity: 1;
	}

	.lvc-showcase__images,
	.lvc-showcase__sidebar {
		flex: none;
		max-width: 100%;
	}

	.lvc-showcase__sidebar {
		position: relative;
		top: auto;
		align-self: auto;
		height: auto;
	}

	.lvc-showcase__sidebar-inner {
		max-height: none;
		padding: 48px 0 0;
	}

	.lvc-showcase__img-wrap img {
		aspect-ratio: 16 / 10;
		min-height: unset;
	}

	.lvc-showcase__img-wrap {
		margin-bottom: 14px;
	}
}

/* ========== Mobile ========== */
@media (max-width: 767px) {
	/* Hide desktop layout, show mobile cards */
	.lvc-showcase {
		display: none;
	}

	.lvc-showcase-mobile {
		display: block;
		background: #fff;
		padding: 40px 20px;
		max-width: 1340px;
		margin: 0 auto;
	}

	.lvc-showcase-mobile .lvc-showcase__subtitle {
		display: block;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: 3.5px;
		text-transform: uppercase;
		color: #0d3c55;
		margin-bottom: 28px;
	}

	.lvc-showcase-mobile__card {
		margin-bottom: 36px;
	}

	.lvc-showcase-mobile__card:last-child {
		margin-bottom: 0;
	}

	.lvc-showcase-mobile__img {
		width: 100%;
		overflow: hidden;
		margin-bottom: 16px;
	}

	.lvc-showcase-mobile__img img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		object-fit: cover;
	}

	.lvc-showcase-mobile__name {
		font-family: 'Maven Pro', 'Playfair Display', Georgia, serif;
		font-size: 22px;
		font-weight: 400;
		line-height: 1.35;
		color: #102c39;
		margin: 0 0 8px;
	}

	.lvc-showcase-mobile__desc {
		font-family: 'Maven Pro', sans-serif;
		font-size: 14px;
		line-height: 1.7;
		color: #555;
		margin: 0 0 12px;
	}
}
