/* JeuxBonus FR - Custom Styles */

:root {
	--jb-primary-indigo: #4f46e5;
	--jb-secondary-indigo: #6366f1;
	--jb-accent-coral: #f87171;
	--jb-dark-charcoal: #1f2937;
	--jb-light-indigo: #818cf8;
	--jb-gradient-start: #4338ca;
	--jb-gradient-end: #6366f1;
}

/* Typography */
.jeuxbonus-title {
	font-family: 'Inter', sans-serif;
	font-weight: 900;
	letter-spacing: -0.02em;
}

.jeuxbonus-text {
	font-family: 'Inter', sans-serif;
	font-weight: 400;
}

/* Background Components */
.indigo-wave-gradient {
	background: linear-gradient(135deg, var(--jb-gradient-start) 0%, var(--jb-gradient-end) 50%, #818cf8 100%);
}

.coral-sunset-gradient {
	background: linear-gradient(135deg, var(--jb-accent-coral) 0%, #fb923c 100%);
}

.hero-bg-mesh {
	background: linear-gradient(135deg, rgba(79, 70, 229, 0.96) 0%, rgba(99, 102, 241, 0.92) 100%);
}

/* Text Effects */
.indigo-text-shimmer {
	background: linear-gradient(135deg, var(--jb-primary-indigo) 0%, var(--jb-secondary-indigo) 50%, #818cf8 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Interactive Components */
.card-lift-effect {
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.card-lift-effect:hover {
	transform: translateY(-10px) scale(1.02);
	box-shadow: 0 20px 40px rgba(79, 70, 229, 0.25);
}

/* Visual Effects */
.shadow-indigo-glow {
	box-shadow: 0 10px 30px rgba(79, 70, 229, 0.35);
}

/* Utility Classes */
.rounded-smooth {
	border-radius: 20px;
}

.rounded-hero {
	border-radius: 32px;
}

/* Advanced Visual Systems */
.frosted-glass {
	background: rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.25);
}

.colorful-frame {
	position: relative;
	border-radius: 24px;
}
.colorful-frame::before {
	content: "";
	position: absolute;
	inset: -2px;
	border-radius: 26px;
	padding: 2px;
	background: linear-gradient(135deg, #6366f1, #f87171, #fb923c, #818cf8);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	z-index: -1;
}

.soft-glow-shadow {
	box-shadow: 0 12px 36px rgba(31, 41, 55, 0.2);
}

.wavy-section {
	position: relative;
	overflow: hidden;
}
.wavy-section::before {
	content: "";
	position: absolute;
	width: 150%;
	height: 150px;
	background: inherit;
	top: -75px;
	left: -25%;
	border-radius: 50%;
	transform: rotate(5deg);
	z-index: 0;
}
.wavy-section::after {
	content: "";
	position: absolute;
	width: 150%;
	height: 150px;
	background: inherit;
	bottom: -75px;
	left: -25%;
	border-radius: 50%;
	transform: rotate(-5deg);
	z-index: 0;
}

.step-counter {
	position: relative;
	padding-left: 4rem;
}
.step-counter::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: linear-gradient(135deg, #6366f1, #f87171);
	border: 5px solid white;
	box-shadow: 0 0 0 5px rgba(99, 102, 241, 0.25);
}
.step-counter::after {
	content: "";
	position: absolute;
	left: 13px;
	top: 28px;
	width: 3px;
	height: calc(100% + 1.5rem);
	background: linear-gradient(180deg, #6366f1, #f87171, transparent);
}
.step-counter:last-child::after {
	display: none;
}

.review-bubble {
	position: relative;
	background: white;
	border-radius: 24px;
	padding: 2.5rem;
	box-shadow: 0 12px 48px rgba(0, 0, 0, 0.1);
	transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.review-bubble:hover {
	transform: translateY(-15px) rotate(1deg) scale(1.03);
	box-shadow: 0 24px 72px rgba(0, 0, 0, 0.18);
}
.review-bubble::before {
	content: """;
	position: absolute;
	top: -15px;
	left: 30px;
	font-size: 100px;
	color: rgba(99, 102, 241, 0.08);
	font-family: Georgia, serif;
	line-height: 1;
}

.bubble-tilt-left {
	transform: rotate(-3deg);
	transition: transform 0.4s;
}
.bubble-tilt-left:hover {
	transform: rotate(0deg) scale(1.08);
}

.bubble-tilt-right {
	transform: rotate(3deg);
	transition: transform 0.4s;
}
.bubble-tilt-right:hover {
	transform: rotate(0deg) scale(1.08);
}

.scroll-carousel {
	scroll-snap-type: x proximity;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.scroll-carousel::-webkit-scrollbar {
	display: none;
}
.scroll-carousel-item {
	scroll-snap-align: center;
	flex-shrink: 0;
}

.fade-in-sequence > *:nth-child(1) { animation-delay: 0s; }
.fade-in-sequence > *:nth-child(2) { animation-delay: 0.15s; }
.fade-in-sequence > *:nth-child(3) { animation-delay: 0.3s; }
.fade-in-sequence > *:nth-child(4) { animation-delay: 0.45s; }
.fade-in-sequence > *:nth-child(5) { animation-delay: 0.6s; }

@media (prefers-reduced-motion: no-preference) {
	.fade-in-sequence > * {
		animation: slideUpFade 0.7s ease-out forwards;
		opacity: 0;
	}
}

@keyframes slideUpFade {
	from {
		opacity: 0;
		transform: translateY(40px) scale(0.95);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.pulse-ring {
	position: relative;
}
.pulse-ring::before {
	content: "";
	position: absolute;
	inset: -8px;
	border-radius: 50%;
	border: 3px dashed rgba(99, 102, 241, 0.5);
	animation: pulse-ring 3s ease-in-out infinite;
}
.pulse-ring::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 2px solid rgba(248, 113, 113, 0.4);
}

@keyframes pulse-ring {
	0%, 100% {
		transform: scale(1);
		opacity: 1;
	}
	50% {
		transform: scale(1.15);
		opacity: 0.7;
	}
}

