
/* ANIMATIONS AND EFFECTS */

/* Fade In Up */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger Delay for children */
.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }

/* Shine Effect for Cards */
.shine-card {
	position: relative;
	overflow: hidden;
}

.shine-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 50%;
	height: 100%;
	background: linear-gradient(to right, transparent, rgba(255,255,255,0.3), transparent);
	transform: skewX(-25deg);
	transition: 0.5s;
	z-index: 10;
	pointer-events: none;
}

.shine-card:hover::before {
	left: 100%;
	transition: 0.5s;
}

/* Gradient Text */
.gradient-text {
	background: linear-gradient(135deg, #059669 0%, #0D988C 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	display: inline-block;
}

/* Button Glow */
.btn-glow {
	position: relative;
	z-index: 1;
	overflow: hidden;
}

.btn-glow::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0));
	z-index: -1;
	transition: opacity 0.3s ease;
	opacity: 0;
}

.btn-glow:hover::after {
	opacity: 1;
}

/* Soft Shadow Hover */
.hover-float {
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}

.hover-float:hover {
	transform: translateY(-8px) scale(1.02);
	box-shadow: 0 20px 40px -10px rgba(13, 152, 140, 0.25);
}

/* Icon Pulse */
.icon-pulse:hover i {
	animation: pulse-green 1.5s infinite;
}

@keyframes pulse-green {
	0% {
		box-shadow: 0 0 0 0 rgba(5, 150, 105, 0.4);
	}
	70% {
		box-shadow: 0 0 0 10px rgba(5, 150, 105, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(5, 150, 105, 0);
	}
}

/* Smooth Scroll HTML */
html {
	scroll-behavior: smooth;
}
