/**
 * Regional Prestige Concierge - Animations
 * 
 * Scroll animations, hover effects, and page load transitions
 */

/* ============================================================================
   LANGUAGE TRANSITION ANIMATIONS
   ============================================================================ */

.lang-transition {
	animation: fadeSlide .4s cubic-bezier(.4, 0, .2, 1);
}

@keyframes fadeSlide {
	0% {
		opacity: 0;
		transform: translateX(-15px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

/* ============================================================================
   SCROLL ANIMATIONS - CLEAN & PERFORMANT
   ============================================================================ */

.animate-on-scroll {
	opacity: 0;
	transform: translate3d(0, 20px, 0);
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
	will-change: opacity, transform;
}

.animate-on-scroll.animated {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.animate-fade-in {
	opacity: 0;
	transition: opacity 0.8s ease-out;
	will-change: opacity;
}

.animate-fade-in.animated {
	opacity: 1;
}

/* Card slide-in animation (left to right) */
.animate-card {
	opacity: 0;
	transform: translate3d(-30px, 0, 0);
	transition: opacity 0.7s ease-out, transform 0.7s ease-out;
	will-change: opacity, transform;
}

.animate-card.animated {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Text slide animation (right) */
.animate-slide-right {
	opacity: 0;
	transform: translate3d(30px, 0, 0);
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
	will-change: opacity, transform;
}

.animate-slide-right.animated {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Staggered animation delays */
.animate-delay-1 { transition-delay: 0.1s; }
.animate-delay-2 { transition-delay: 0.2s; }
.animate-delay-3 { transition-delay: 0.3s; }
.animate-delay-4 { transition-delay: 0.4s; }

/* ============================================================================
   INITIAL PAGE LOAD ANIMATIONS
   ============================================================================ */

/* Hero section entrance animation */
.hero-headline {
	animation: heroFadeIn 1.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s backwards;
}

.hero-cta {
	animation: heroFadeIn 1.6s cubic-bezier(0.165, 0.84, 0.44, 1) 0.8s backwards;
}

@keyframes heroFadeIn {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Navigation fade-in on page load */
#site-nav {
	animation: navFadeIn 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s backwards;
}

@keyframes navFadeIn {
	0% {
		opacity: 0;
		transform: translateY(-20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Language toggle delayed fade-in */
.language-toggle {
	animation: fadeInDelay 1.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.6s backwards;
}

@keyframes fadeInDelay {
	0% {
		opacity: 0;
		transform: translateY(-10px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ============================================================================
   HOVER EFFECTS & INTERACTIONS
   ============================================================================ */

/* Service card hover enhancement */
.service-card {
	transition: transform 0.4s ease-out, box-shadow 0.4s ease-out;
	will-change: transform;
}

.service-card:hover {
	transform: translate3d(0, -6px, 0);
	box-shadow: 0 12px 32px rgba(199, 160, 100, 0.2);
}

/* Elegant link transitions with underline effect */
.nav-link,
.footer-link,
.contact-link,
.contact-link-text {
	position: relative;
	transition: color 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.nav-link::after,
.footer-link::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--gold);
	transition: width 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.nav-link:hover::after,
.footer-link:hover::after {
	width: 100%;
}

/* Button hover effects */
.nav-cta,
.hero-cta,
.callback-cta {
	transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.nav-cta:hover,
.hero-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 30px rgba(199, 160, 100, 0.3);
}

/* Contact card hover effect with gold glow */
.contact-person-card {
	transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
	will-change: transform;
}

.contact-person-card:hover {
	transform: translate3d(0, -3px, 0);
	box-shadow: 0 8px 24px rgba(199, 160, 100, 0.2);
}

/* Footer logo animation on hover */
.footer-logo-img {
	transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1),
				filter 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.footer-logo:hover .footer-logo-img {
	transform: scale(1.05);
	filter: brightness(1.2);
}

/* Form input focus states */
.phone-input:focus,
.country-selector:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 4px 20px rgba(199, 160, 100, 0.15);
}

