/* Animations & Effects */

/* Image hover zoom */
.img-zoom {
	overflow: hidden;
}

.img-zoom img {
	transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.img-zoom:hover img {
	transform: scale(1.08);
}

/* Fade-in sections */
.fade-in-section {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in-section.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Header scroll transition */
.site-header {
	transition: background 0.4s ease, box-shadow 0.4s ease, transform 0.4s ease;
}

.site-header.header-hidden {
	transform: translateY(-100%);
}

/* Button ripple effect */
.btn span {
	position: relative;
	z-index: 1;
}

.btn::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.15);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
}

.btn:hover::before {
	transform: scaleX(1);
}

/* Luxury card shine effect */
.luxury-card__image::after {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 50%;
	height: 100%;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.15),
		transparent
	);
	transition: left 0.6s ease;
}

.luxury-card:hover .luxury-card__image::after {
	left: 150%;
}

/* Counter animation prep */
.stat-number {
	transition: color 0.3s ease;
}

.stat-item.is-counting .stat-number {
	color: var(--color-gold-light);
}

/* Smooth reveal for mobile menu */
.primary-menu.is-open {
	animation: slideDown 0.3s ease forwards;
}

@keyframes slideDown {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Parallax subtle movement */
.section-parallax {
	will-change: background-position;
}

/* Loading skeleton for lazy images */
img[loading="lazy"] {
	background: var(--color-cream);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	html {
		scroll-behavior: auto;
	}

	.img-zoom:hover img {
		transform: none;
	}
}
