/* Journey Section PRO - Frontend Styles */

:root {
	--journey-primary: #4F46E5;
	--journey-secondary: #EC4899;
	--journey-bg: transparent;
	--journey-card-bg: rgba(255, 255, 255, 0.6);
	--journey-text: #1F2937;
	--journey-text-muted: #6B7280;
	--journey-line: #E5E7EB;
	--journey-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	--journey-shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.journey-pro-section {
	padding: 4rem 1rem;
	background-color: var(--journey-bg);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--journey-text);
	overflow: hidden;
}

.journey-container {
	max-width: 1200px;
	margin: 0 auto;
}

.journey-heading {
	text-align: center;
	margin-bottom: 2rem;
}

.journey-subtitle {
	color: #fc0084;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 0.5rem;
}

.journey-title {
	font-family: 'Playfair Display', serif;
	font-size: 2.25rem;
	line-height: 2.5rem;
	margin-top: 0.75rem;
	margin-bottom: 1rem;
	font-weight: 700;
	background: linear-gradient(135deg, var(--journey-primary), var(--journey-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
}

@media (min-width: 768px) {
	.journey-title {
		font-size: 3rem;
		line-height: 1.5;
	}
}

.journey-desc {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 18px;
	margin: 0 auto 40px;
	max-width: 36rem;
	line-height: 1.7;
	font-weight: 500;
	color: #131111;
}

.journey-timeline-wrapper {
	position: relative;
	padding-top: 2rem;
}

/* Timeline Line (Desktop Only) */
.journey-timeline-line {
	position: absolute;
	top: calc(4rem - 2px); /* Center of circle: 2rem padding + 2rem radius - 2px half height */
	left: 8%; /* Indent slightly so it doesn't poke out */
	right: 8%;
	height: 4px;
	background: linear-gradient(90deg, 
		rgba(79, 70, 229, 0.1) 0%, 
		rgba(79, 70, 229, 0.3) 20%, 
		rgba(236, 72, 153, 0.3) 80%, 
		rgba(236, 72, 153, 0.1) 100%
	);
	z-index: 1;
	border-radius: 4px;
	overflow: hidden;
}

/* Glowing Flow Animation on Timeline */
.journey-timeline-line::after {
	content: '';
	position: absolute;
	top: 0;
	left: -150px;
	width: 150px;
	height: 100%;
	background: linear-gradient(90deg, 
		transparent, 
		var(--journey-primary), 
		var(--journey-secondary), 
		transparent
	);
	box-shadow: 0 0 10px var(--journey-primary), 0 0 20px var(--journey-secondary);
	animation: journey-timeline-flow 3.5s infinite linear;
	opacity: 0.8;
}

@keyframes journey-timeline-flow {
	0% { left: -150px; }
	100% { left: 100%; }
}

.journey-timeline-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	position: relative;
	z-index: 2;
}

/* Step Colors based on HTML Demo */
.journey-item:nth-child(4n+1) { --step-color: #f472b6; --step-color-hover: #f9a8d4; --step-bg: #fce7f3; --step-gradient-from: #fdf2f8; --step-gradient-to: rgba(252, 231, 243, 0.5); --step-shadow: rgba(244, 114, 182, 0.4); --step-shadow-hover: rgba(249, 168, 212, 0.3); }
.journey-item:nth-child(4n+2) { --step-color: #818cf8; --step-color-hover: #a5b4fc; --step-bg: #e0e7ff; --step-gradient-from: #eef2ff; --step-gradient-to: rgba(224, 231, 255, 0.5); --step-shadow: rgba(129, 140, 248, 0.4); --step-shadow-hover: rgba(165, 180, 252, 0.3); }
.journey-item:nth-child(4n+3) { --step-color: #60a5fa; --step-color-hover: #93c5fd; --step-bg: #dbeafe; --step-gradient-from: #eff6ff; --step-gradient-to: rgba(219, 234, 254, 0.5); --step-shadow: rgba(96, 165, 250, 0.4); --step-shadow-hover: rgba(147, 197, 253, 0.3); }
.journey-item:nth-child(4n+4) { --step-color: #34d399; --step-color-hover: #6ee7b7; --step-bg: #d1fae5; --step-gradient-from: #ecfdf5; --step-gradient-to: rgba(209, 250, 229, 0.5); --step-shadow: rgba(52, 211, 153, 0.4); --step-shadow-hover: rgba(110, 231, 183, 0.3); }

.journey-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	position: relative;
	height: 100%;
}

.journey-circle {
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.5rem;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	z-index: 3; /* Above the line */
	
	/* Gradient Border with Solid Background */
	border: 3px solid transparent;
	background: linear-gradient(#ffffff, #ffffff) padding-box,
				linear-gradient(135deg, var(--step-color, var(--journey-line)), rgba(229, 231, 235, 0.5)) border-box;
	box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

/* Hover effects for circle */
.journey-item:hover .journey-circle {
	transform: scale(1.15) translateY(-3px);
	background: linear-gradient(#ffffff, #ffffff) padding-box,
				linear-gradient(135deg, var(--step-color, var(--journey-primary)), var(--step-color-hover, var(--journey-secondary))) border-box;
	box-shadow: 0 0 15px var(--step-shadow, rgba(79, 70, 229, 0.4)), 0 0 30px var(--step-shadow-hover, rgba(236, 72, 153, 0.3));
}

.journey-circle svg, 
.journey-circle i {
	width: 1.5rem;
	height: 1.5rem;
	color: var(--step-color, var(--journey-primary));
	transition: all 0.3s ease;
}

.journey-item:hover .journey-circle svg,
.journey-item:hover .journey-circle i {
	color: var(--step-color-hover, var(--journey-secondary));
}

/* Styling for numeric step indicator */
.journey-number {
	font-size: 1.75rem;
	font-weight: 800;
	background: linear-gradient(135deg, var(--step-color, var(--journey-primary)), var(--step-color-hover, var(--journey-secondary)));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
	transition: all 0.3s ease;
	line-height: 1;
}

.journey-item:hover .journey-circle .journey-number {
	transform: scale(1.15);
}


/* Glassmorphism Card */
.journey-card {
	background: linear-gradient(to bottom right, var(--step-gradient-from, var(--journey-card-bg)), var(--step-gradient-to, rgba(255,255,255,0.2)));
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid var(--step-bg, rgba(255, 255, 255, 0.8));
	border-radius: 1rem;
	padding: 1.5rem;
	width: 100%;
	box-sizing: border-box;
	box-shadow: var(--journey-shadow);
	transition: all 0.3s ease;
	text-align: left;
	flex-grow: 1;
}

.journey-item:hover .journey-card {
	box-shadow: var(--journey-shadow-hover);
	transform: translateY(-5px);
	border-color: var(--step-color-hover, rgba(255, 255, 255, 0.8));
}

.journey-card-title {
	font-family: 'Quicksand', 'Segoe UI', sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	margin-top: 0;
	margin-bottom: 0.75rem;
	color: #1f2937;
	line-height: 1.3;
	text-align: center;
}

.journey-card-desc {
	font-family: 'Quicksand', 'Segoe UI', sans-serif;
	font-size: 1rem;
	color: #121213;
	line-height: 1.625;
	font-weight: 400;
	margin: 0 0 1.5rem 0; /* Match mb-6 */
}

/* Features List inside Card */
.journey-card-features {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem; /* space-y-2 */
	text-align: left;
}

.journey-feature-item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-family: 'Quicksand', 'Segoe UI', sans-serif;
	font-size: 0.875rem; /* text-sm */
	color: #121213;
	line-height: 1.4;
}

.journey-feature-icon {
	color: var(--step-color, var(--journey-secondary)); /* Matches text-pink-400 equivalent from theme */
	font-weight: bold;
	flex-shrink: 0;
}

/* Responsive Tablet: 2 columns */
@media (max-width: 992px) and (min-width: 769px) {
	.journey-timeline-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 3rem;
	}

	.journey-timeline-line {
		display: none; /* Hide horizontal line on tablet */
	}
}

/* Responsive Mobile: Vertical Timeline (<= 768px) */
@media (max-width: 768px) {
	.journey-timeline-grid {
		grid-template-columns: 1fr;
		gap: 3rem; 
	}

	/* Convert timeline line to vertical */
	.journey-timeline-line {
		display: block;
		width: 4px;
		height: calc(100% - 4rem); 
		top: 4rem; /* Start at center of first circle */
		left: calc(2rem - 2px); /* Center of 4rem circle */
		right: auto;
		background: linear-gradient(180deg, 
			rgba(79, 70, 229, 0.1) 0%, 
			rgba(79, 70, 229, 0.3) 20%, 
			rgba(236, 72, 153, 0.3) 80%, 
			rgba(236, 72, 153, 0.0) 100%
		);
	}

	/* Vertical glowing flow animation */
	.journey-timeline-line::after {
		width: 100%;
		height: 150px;
		left: 0;
		top: -150px;
		background: linear-gradient(180deg, 
			transparent, 
			var(--journey-primary), 
			var(--journey-secondary), 
			transparent
		);
		animation: journey-timeline-flow-vertical 3s infinite linear;
	}

	@keyframes journey-timeline-flow-vertical {
		0% { top: -150px; }
		100% { top: 100%; }
	}

	/* Re-align items to flow left-to-right */
	.journey-item {
		flex-direction: row;
		align-items: flex-start;
		gap: 1.5rem;
		text-align: left;
	}

	.journey-circle {
		margin-bottom: 0;
		flex-shrink: 0;
	}

	.journey-card {
		margin-top: 0;
	}

	.journey-card-title {
		text-align: left; /* Override center text on mobile to match row layout */
	}
}

/* Bottom Features Grid */
.journey-features-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin-top: 4rem;
	padding-top: 3rem;
	border-top: 1px solid #e5e7eb;
}

@media (min-width: 768px) {
	.journey-features-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.journey-features-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.journey-feature-box {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
	text-align: left;
	background: rgba(255, 255, 255, 0.5);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgb(252 0 132 / 32%);
	border-radius: 1.25rem;
	padding: 1rem;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
	transition: all 0.3s ease;
}

.journey-feature-box:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 20px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	background: rgba(255, 255, 255, 0.8);
	border-color: rgba(255, 255, 255, 1);
}

.journey-feature-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.journey-feature-icon-wrapper {
	flex-shrink: 0;
}

.journey-feature-icon-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 3.5rem;
	width: 3.5rem;
	border-radius: 1rem;
	font-size: 1.5rem;
	/* Base colors which will be overridden by nth-child */
	background-color: #f3f4f6; 
	box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.5), 0 4px 10px rgba(0, 0, 0, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.6);
	transition: all 0.3s ease;
}

.journey-feature-box:hover .journey-feature-icon-inner {
	transform: scale(1.05) rotate(-3deg);
}

/* Specific colors for feature icons */
.journey-feature-box:nth-child(3n+1) .journey-feature-icon-inner { background-color: #fce7f3; color: #f472b6; }
.journey-feature-box:nth-child(3n+2) .journey-feature-icon-inner { background-color: #e0e7ff; color: #818cf8; }
.journey-feature-box:nth-child(3n+3) .journey-feature-icon-inner { background-color: #dbeafe; color: #60a5fa; }

.journey-feature-icon-inner svg,
.journey-feature-icon-inner i {
	width: 1.75rem;
	height: 1.75rem;
	stroke-width: 2;
}

.journey-feature-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: #1f2937;
	margin: 0 0 0.35rem 0;
	font-family: 'Quicksand', 'Segoe UI', sans-serif;
	line-height: 1.3;
}

.journey-feature-desc {
	font-size: 0.95rem;
	color: #4b5563;
	margin: 0;
	font-family: 'Quicksand', 'Segoe UI', sans-serif;
	line-height: 1.5;
}
