/**
 * Investment Tour — Vertical Timeline (dark / transparent)
 * TheFuel Real Estate / Elementor Widget
 */

.tf-investment-tour {
	--tf-it-gap: clamp(2rem, 4vw, 2.75rem);
	--tf-it-grid-gap-x: clamp(2rem, 5vw, 4rem);
	--tf-it-grid-gap-y: clamp(2rem, 4vw, 2.75rem);
	--tf-it-accent-dim: rgba(184, 149, 106, 0.35);
	--tf-it-transition: transform 0.3s ease, opacity 0.3s ease;
	--tf-it-dot-left: 0.95rem;
	--tf-it-dot-center: 0.95rem;

	padding: 0;
	width: 100%;
	background: transparent;
	box-sizing: border-box;
}

.tf-investment-tour *,
.tf-investment-tour *::before,
.tf-investment-tour *::after {
	box-sizing: border-box;
}

/* Header */
.tf-investment-tour__header {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: 720px;
	margin: 0 0 clamp(2.5rem, 5vw, 3.5rem);
	text-align: left;
}

.tf-investment-tour__title {
	margin: 0;
}

.tf-investment-tour__description {
	margin: 0;
	max-width: 680px;
}

/* Alignment */
.tf-investment-tour--align-left .tf-investment-tour__header,
.tf-investment-tour--align-left .tf-investment-tour__description {
	margin-inline: 0;
	text-align: left;
}

.tf-investment-tour--align-center .tf-investment-tour__header {
	margin-inline: auto;
	text-align: center;
}

.tf-investment-tour--align-center .tf-investment-tour__description {
	margin-inline: auto;
	text-align: center;
}

.tf-investment-tour--align-right .tf-investment-tour__header {
	margin-inline: 0 0 0 auto;
	text-align: right;
}

.tf-investment-tour--align-right .tf-investment-tour__description {
	margin-inline: 0 0 0 auto;
	text-align: right;
}

/* Timeline */
.tf-investment-tour__timeline {
	position: relative;
	max-width: 720px;
	margin: 0;
}

.tf-investment-tour--align-center .tf-investment-tour__timeline {
	margin-inline: auto;
}

.tf-investment-tour--align-right .tf-investment-tour__timeline {
	margin-inline: 0 0 0 auto;
}

.tf-investment-tour--layout-double .tf-investment-tour__timeline {
	max-width: 960px;
}

.tf-investment-tour__timeline-line {
	display: none;
}

.tf-investment-tour__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Single column timeline — real HTML rail (dot + line) */
.tf-investment-tour--layout-single .tf-investment-tour__timeline,
.tf-investment-tour--layout-single .tf-investment-tour__steps,
.tf-investment-tour--layout-single .tf-investment-tour__step {
	overflow: visible;
}

.tf-investment-tour--layout-single .tf-investment-tour__step {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	column-gap: 0.75rem;
	align-items: start;
	margin: 0;
	padding: 0 0 var(--tf-it-gap) 0;
}

.tf-investment-tour--layout-single .tf-investment-tour__step:last-child {
	padding-bottom: 0;
}

.tf-investment-tour--layout-single .tf-investment-tour__step::before,
.tf-investment-tour--layout-single .tf-investment-tour__step::after {
	content: none !important;
	display: none !important;
}

.tf-investment-tour--layout-single .tf-investment-tour__step-rail {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 2.5rem;
	min-height: 100%;
	align-self: stretch;
}

.tf-investment-tour--layout-single .tf-investment-tour__step-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 2px solid var(--tf-it-accent, #b8956a);
	background: transparent;
	flex-shrink: 0;
	margin-top: 0.45rem;
	position: relative;
	z-index: 2;
	transition: var(--tf-it-transition);
}

.tf-investment-tour--layout-single .tf-investment-tour__step-line {
	position: absolute;
	top: calc(var(--tf-it-dot-center) + 0.35rem);
	left: 50%;
	bottom: calc(-1 * var(--tf-it-dot-center));
	width: 1px;
	transform: translateX(-50%);
	background: var(--tf-it-accent-dim);
	z-index: 0;
}

.tf-investment-tour--layout-single .tf-investment-tour__step:last-child .tf-investment-tour__step-line {
	bottom: 0;
}

.tf-investment-tour--layout-single .tf-investment-tour__step:hover .tf-investment-tour__step-dot {
	transform: scale(1.15);
	background: var(--tf-it-accent, #b8956a);
}

.tf-investment-tour--layout-single .tf-investment-tour__step-inner {
	align-items: flex-start;
}

.tf-investment-tour--align-center.tf-investment-tour--layout-single .tf-investment-tour__step-inner {
	align-items: center;
	text-align: center;
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single .tf-investment-tour__step-inner {
	align-items: flex-end;
	text-align: right;
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single {
	--tf-it-dot-left: calc(100% - 0.95rem);
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single .tf-investment-tour__step {
	grid-template-columns: minmax(0, 1fr) 2.5rem;
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single .tf-investment-tour__step-rail {
	order: 2;
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single .tf-investment-tour__step-inner {
	order: 1;
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single .tf-investment-tour__step {
	padding-left: 0;
	padding-right: 0;
}

.tf-investment-tour--layout-single .tf-investment-tour__step:hover .tf-investment-tour__step-inner {
	transform: translateX(4px);
}

.tf-investment-tour--align-right.tf-investment-tour--layout-single .tf-investment-tour__step:hover .tf-investment-tour__step-inner {
	transform: translateX(-4px);
}

/* Two-column step grid */
.tf-investment-tour--layout-double .tf-investment-tour__steps {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--tf-it-grid-gap-x);
	row-gap: var(--tf-it-grid-gap-y);
}

.tf-investment-tour--layout-double .tf-investment-tour__step {
	position: relative;
	margin: 0;
	padding: 2.85rem 0 0;
}

.tf-investment-tour--layout-double .tf-investment-tour__step::before {
	content: attr(data-step);
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 2rem;
	height: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: none;
	background: var(--tf-it-accent, #b8956a);
	color: #ffffff;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1;
	z-index: 2;
	transition: var(--tf-it-transition);
}

.tf-investment-tour--layout-double .tf-investment-tour__step::after {
	content: none;
}

.tf-investment-tour--layout-double .tf-investment-tour__step-connector {
	position: absolute;
	top: 1rem;
	left: 50%;
	width: 0;
	height: 0;
	pointer-events: none;
	z-index: 1;
}

.tf-investment-tour--layout-double .tf-investment-tour__step-connector.has-line-right::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: calc(50% + (var(--tf-it-grid-gap-x) / 2));
	height: 1px;
	background: var(--tf-it-accent-dim);
	transform: translateY(-50%);
}

.tf-investment-tour--layout-double .tf-investment-tour__step-connector.has-line-down::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: calc(100% + var(--tf-it-grid-gap-y));
	background: var(--tf-it-accent-dim);
	transform: translateX(-50%) translateY(-50%);
}

.tf-investment-tour--layout-double .tf-investment-tour__step:hover::before {
	transform: translateX(-50%) scale(1.08);
}

.tf-investment-tour--align-left.tf-investment-tour--layout-double .tf-investment-tour__step-inner {
	align-items: flex-start;
	text-align: left;
}

.tf-investment-tour--align-center.tf-investment-tour--layout-double .tf-investment-tour__step-inner {
	align-items: center;
	text-align: center;
}

.tf-investment-tour--align-right.tf-investment-tour--layout-double .tf-investment-tour__step-inner {
	align-items: flex-end;
	text-align: right;
}

.tf-investment-tour__step-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0;
	transition: var(--tf-it-transition);
}

.tf-investment-tour--layout-double .tf-investment-tour__step:hover .tf-investment-tour__step-inner {
	transform: translateY(-3px);
}

/* Badge — layout only; typography via Elementor */
.tf-investment-tour__badge {
	display: inline-block;
	margin: 0;
	padding: 0.3rem 0.75rem;
	border-radius: 999px;
}

/* Icon */
.tf-investment-tour__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: 50%;
	border: 1px solid currentColor;
	background: rgba(184, 149, 106, 0.12);
	font-size: 1.1rem;
	transition: var(--tf-it-transition);
}

.tf-investment-tour__icon svg {
	width: 1.15em;
	height: 1.15em;
	fill: currentColor;
}

.tf-investment-tour__step:hover .tf-investment-tour__icon {
	transform: scale(1.05);
}

/* Step text — typography via Elementor */
.tf-investment-tour__step-title,
.tf-investment-tour__step-description {
	margin: 0;
}

/* Mobile: double layout falls back to single column */
@media (max-width: 767px) {
	.tf-investment-tour--layout-double .tf-investment-tour__steps {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.tf-investment-tour--layout-double .tf-investment-tour__step {
		padding: 0 0 var(--tf-it-gap) var(--tf-it-dot-offset, 3.25rem);
	}

	.tf-investment-tour--layout-double .tf-investment-tour__step:last-child {
		padding-bottom: 0;
	}

	.tf-investment-tour--layout-double .tf-investment-tour__step-connector {
		display: none;
	}

	.tf-investment-tour--layout-double .tf-investment-tour__step::before {
		content: "";
		top: 0.45rem;
		left: var(--tf-it-dot-left);
		width: 10px;
		height: 10px;
		border: 2px solid var(--tf-it-accent, #b8956a);
		background: transparent;
		font-size: 0;
	}

	.tf-investment-tour--layout-double .tf-investment-tour__step:not(:last-child)::after {
		content: "";
		position: absolute;
		left: var(--tf-it-dot-left);
		top: var(--tf-it-dot-center);
		bottom: calc(-1 * var(--tf-it-dot-center));
		height: auto;
		width: 1px;
		background: var(--tf-it-accent-dim);
		transform: translateX(-50%);
		z-index: 0;
	}

	.tf-investment-tour--align-right.tf-investment-tour--layout-double .tf-investment-tour__step {
		padding-left: 0;
		padding-right: var(--tf-it-dot-offset, 3.25rem);
	}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.tf-investment-tour__step-inner,
	.tf-investment-tour__icon,
	.tf-investment-tour__step::before {
		transition: none;
	}

	.tf-investment-tour__step:hover .tf-investment-tour__step-inner {
		transform: none;
	}
}
