/* ==========================================================================
   ANIMAÇÕES APRIMORADAS - Novos efeitos e transições sofisticadas
   ========================================================================== */

/* ---- Fade In / Fade Out ---- */
@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes fadeOut {
	from { opacity: 1; }
	to { opacity: 0; }
}

/* ---- Slide In / Out ---- */
@keyframes slideInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes slideInDown {
	from {
		opacity: 0;
		transform: translateY(-30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes slideInLeft {
	from {
		opacity: 0;
		transform: translateX(-30px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes slideInRight {
	from {
		opacity: 0;
		transform: translateX(30px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* ---- Scale / Zoom ---- */
@keyframes scaleIn {
	from {
		opacity: 0;
		transform: scale(0.95);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes scaleUp {
	from { transform: scale(1); }
	to { transform: scale(1.05); }
}

/* ---- Glow / Shine ---- */
@keyframes glow {
	0%, 100% { box-shadow: 0 0 0 0 rgba(212, 165, 116, 0.4); }
	50% { box-shadow: 0 0 0 10px rgba(212, 165, 116, 0); }
}

@keyframes shine {
	0% { background-position: -1000px 0; }
	100% { background-position: 1000px 0; }
}

/* ---- Bounce ---- */
@keyframes bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

/* ---- Pulse Suave ---- */
@keyframes softPulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.7; }
}

/* ---- Rotate ---- */
@keyframes rotate {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* ---- Gradient Animation ---- */
@keyframes gradientShift {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

/* ---- Underline Animation ---- */
@keyframes underlineGrow {
	from {
		width: 0;
		left: 0;
	}
	to {
		width: 100%;
		left: 0;
	}
}

/* ---- Ripple Effect ---- */
@keyframes ripple {
	0% {
		transform: scale(0);
		opacity: 1;
	}
	100% {
		transform: scale(4);
		opacity: 0;
	}
}

/* ---- Float ---- */
@keyframes float {
	0%, 100% { transform: translateY(0px); }
	50% { transform: translateY(-10px); }
}

/* ---- Parallax Scroll ---- */
@keyframes parallaxMove {
	0% { transform: translateY(0px); }
	100% { transform: translateY(20px); }
}

/* ---- Skew ---- */
@keyframes skewIn {
	from {
		opacity: 0;
		transform: skewY(10deg);
	}
	to {
		opacity: 1;
		transform: skewY(0deg);
	}
}

/* ---- Accordion Open/Close ---- */
@keyframes accordionOpen {
	from {
		opacity: 0;
		max-height: 0;
	}
	to {
		opacity: 1;
		max-height: 500px;
	}
}

/* ---- Utility Classes ---- */
.animate-fadeIn {
	animation: fadeIn var(--dur-base) var(--ease-out) forwards;
}

.animate-slideInUp {
	animation: slideInUp var(--dur-slow) var(--ease-out) forwards;
}

.animate-slideInDown {
	animation: slideInDown var(--dur-slow) var(--ease-out) forwards;
}

.animate-slideInLeft {
	animation: slideInLeft var(--dur-slow) var(--ease-out) forwards;
}

.animate-slideInRight {
	animation: slideInRight var(--dur-slow) var(--ease-out) forwards;
}

.animate-scaleIn {
	animation: scaleIn var(--dur-base) var(--ease-out) forwards;
}

.animate-bounce {
	animation: bounce var(--dur-base) infinite;
}

.animate-float {
	animation: float 3s ease-in-out infinite;
}

.animate-glow {
	animation: glow 2s infinite;
}

.animate-softPulse {
	animation: softPulse 2s ease-in-out infinite;
}

.animate-rotate {
	animation: rotate var(--dur-slower) linear infinite;
}

/* ---- Hover Effects ---- */
.hover-lift {
	transition: transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease);
}

.hover-lift:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

.hover-accent {
	transition: color var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);
}

.hover-accent:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.hover-scale {
	transition: transform var(--dur-base) var(--ease);
}

.hover-scale:hover {
	transform: scale(1.05);
}

.hover-glow {
	transition: box-shadow var(--dur-base) var(--ease);
}

.hover-glow:hover {
	box-shadow: 0 0 20px rgba(212, 165, 116, 0.4);
}

/* ---- Smooth Transitions ---- */
.smooth-transition {
	transition: all var(--dur-base) var(--ease);
}

.smooth-transition-slow {
	transition: all var(--dur-slow) var(--ease);
}

/* ---- Stagger Animation (para listas) ---- */
.stagger-item {
	animation: slideInUp var(--dur-slow) var(--ease-out) forwards;
	opacity: 0;
}

.stagger-item:nth-child(1) { animation-delay: 0.1s; }
.stagger-item:nth-child(2) { animation-delay: 0.2s; }
.stagger-item:nth-child(3) { animation-delay: 0.3s; }
.stagger-item:nth-child(4) { animation-delay: 0.4s; }
.stagger-item:nth-child(5) { animation-delay: 0.5s; }
.stagger-item:nth-child(n+6) { animation-delay: 0.6s; }

/* ---- Respects prefers-reduced-motion ---- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
