body {
	background-color: #ffffff;
	color: #111827;
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
	text-wrap: balance;
}

/* Reduce border radius on mobile */
@media (max-width: 640px) {
	.rounded-full {
		border-radius: 1.5rem !important;
	}
	.rounded-3xl,
	.rounded-4xl,
	.rounded-5xl,
	.rounded-\[1\.5rem\] {
		border-radius: 0.75rem !important;
	}
	.rounded-\[2\.5rem\] {
		border-radius: 1.25rem !important;
	}
	.rounded-\[3rem\] {
		border-radius: 1.5rem !important;
	}
	.rounded-2xl {
		border-radius: 0.5rem !important;
	}
	.rounded-xl {
		border-radius: 0.5rem !important;
	}

	/* Reduce section padding on mobile */
	section.py-20 {
		padding-top: 3rem !important;
		padding-bottom: 3rem !important;
	}
	section.py-24 {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
	}
	section.pt-28 {
		padding-top: 7rem !important;
	}
	section.pb-12 {
		padding-bottom: 2rem !important;
	}
}

/* Smooth floating animations for UI elements */
.float-slow {
	animation:
		float 6s ease-in-out infinite,
		tilt 7s ease-in-out infinite;
}
.float-medium {
	animation: float 5s ease-in-out 1s infinite reverse;
}
.float-fast {
	animation:
		float 4s ease-in-out infinite,
		tilt 5s ease-in-out infinite;
}
.float-pulse {
	animation: float-pulse-combined 5.5s ease-in-out infinite;
}
@keyframes float {
	0% {
		transform: translateY(0px);
	}
	50% {
		transform: translateY(-20px);
	}
	100% {
		transform: translateY(0px);
	}
}
@keyframes tilt {
	0%,
	100% {
		transform: rotate(0deg);
	}
	25% {
		transform: rotate(2deg);
	}
	75% {
		transform: rotate(-2deg);
	}
}
@keyframes bell-shake {
	0% {
		transform: rotate(0deg);
	}
	2% {
		transform: rotate(4deg);
	}
	4% {
		transform: rotate(-4deg);
	}
	6% {
		transform: rotate(2deg);
	}
	8% {
		transform: rotate(-2deg);
	}
	10%,
	100% {
		transform: rotate(0deg);
	}
}
@keyframes float-pulse-combined {
	0% {
		transform: translateY(0px) rotate(0deg);
	}
	18% {
		transform: translateY(-3px) rotate(1.5deg);
	}
	20% {
		transform: translateY(-5px) rotate(-1.5deg);
	}
	22% {
		transform: translateY(-7px) rotate(1deg);
	}
	24% {
		transform: translateY(-9px) rotate(-1deg);
	}
	26% {
		transform: translateY(-11px) rotate(0deg);
	}
	50% {
		transform: translateY(-25px) rotate(0deg);
	}
	75% {
		transform: translateY(-11px) rotate(0deg);
	}
	100% {
		transform: translateY(0px) rotate(0deg);
	}
}

/* Chart bar animation */
.chart-bar {
	animation: growUp 0.8s ease-out forwards;
	transform-origin: bottom;
	transform: scaleY(0);
}
@keyframes growUp {
	to {
		transform: scaleY(1);
	}
}

/* Online badge pulse */
.online-pulse {
	animation: badgePulse 2s ease-in-out infinite;
}
@keyframes badgePulse {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.7;
	}
}

/* Hand-drawn arrow animation */
.draw-arrow {
	stroke-dasharray: 1000;
	stroke-dashoffset: 1000;
	animation: draw 2s ease-out forwards;
	animation-delay: 1s;
}
@keyframes draw {
	to {
		stroke-dashoffset: 0;
	}
}

/* Accordion transition */
.accordion-content {
	display: grid;
	grid-template-rows: 0fr;
	transition:
		grid-template-rows 0.3s ease-out,
		opacity 0.3s ease-out;
	opacity: 0;
}
.accordion-content.active {
	grid-template-rows: 1fr;
	opacity: 1;
}
.accordion-inner {
	overflow: hidden;
}

.icon-rotate {
	transition: transform 0.3s ease;
}
button[aria-expanded="true"] .icon-rotate {
	transform: rotate(180deg);
}

/* Hide scrollbar for clean look */
::-webkit-scrollbar {
	width: 8px;
}
::-webkit-scrollbar-track {
	background: #f3f4f6;
}
::-webkit-scrollbar-thumb {
	background: #d1d5db;
	border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
	background: #9ca3af;
}

/* Micro-animations */
.hover-lift {
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.hover-lift:hover {
	transform: translateY(-4px);
}

/* Consent checkbox checked state */
input[type="checkbox"].peer:checked + span .ph-check {
	opacity: 1;
	transform: scale(1);
}
