body {
	background-color: var(--vp-bg);
	color: var(--vp-dark);
	font-family: var(--vp-font);
	background-image: radial-gradient(#d4cdb3 1.2px, transparent 1.2px);
	background-size: 30px 30px;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

.vp-site { position: relative; min-height: 100vh; }
.vp-container { max-width: var(--vp-container); margin: 0 auto; padding: 0 1rem; }
.vp-content-area { padding: 2rem 0 3rem; position: relative; z-index: 1; }
.vp-main { position: relative; z-index: 1; }

/* Bambi chat launcher (always styled even before elementor.css) */
.vp-chat { position: fixed; bottom: 1rem; left: 1rem; z-index: 9999; }
html[dir="ltr"] .vp-chat { left: auto; right: 1rem; }
.vp-chat__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 3rem;
	padding: 0.45rem 0.9rem 0.45rem 0.55rem;
	border-radius: 999px;
	border: 0;
	background: var(--vp-green);
	color: #fff;
	font: inherit;
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}
.vp-chat__toggle-icon { font-size: 1.35rem; line-height: 1; }
.vp-chat__toggle-label { white-space: nowrap; }

/* Floating decor */
.vp-decor { pointer-events: none; position: fixed; inset: 0; z-index: 0; overflow: hidden; }
.vp-decor__item { position: absolute; opacity: 0.15; user-select: none; animation: vp-float 4s ease-in-out infinite; }
.vp-decor__item--1 { top: 11rem; left: 1rem; font-size: 2rem; color: var(--vp-orange); }
.vp-decor__item--2 { top: 28rem; right: 1rem; font-size: 2.5rem; filter: grayscale(1); animation-delay: 2s; }
.vp-decor__item--3 { top: 35%; left: 8%; font-size: 3rem; opacity: 0.2; display: none; }
.vp-decor__item--4 { top: 55%; right: 5%; font-size: 3.5rem; filter: grayscale(1); animation-delay: 2s; display: none; }
.vp-decor__item--5 { bottom: 22%; left: 5%; font-size: 2rem; color: var(--vp-orange); }
.vp-decor__item--6 { bottom: 12%; right: 5%; font-size: 2.5rem; animation: vp-wiggle 2s ease-in-out infinite; display: none; }

@media (min-width: 640px) {
	.vp-decor__item--3, .vp-decor__item--4 { display: block; }
}

@keyframes vp-float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-15px) rotate(5deg); }
}
@keyframes vp-wiggle {
	0%, 100% { transform: rotate(-3deg); }
	50% { transform: rotate(3deg); }
}

/* Shared utilities */
.vp-custom-shadow { box-shadow: var(--vp-shadow); }
.vp-animal-shape {
	border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
	transition: all 0.5s ease-in-out;
}
.vp-group:hover .vp-animal-shape {
	border-radius: 50% 50% 40% 60% / 60% 40% 50% 50%;
	transform: scale(1.05);
}
.vp-paw-pattern {
	background-color: #f0ecd6;
	background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M25 6.5c3.5 0 6.5 3 6.5 6.5s-3 6.5-6.5 6.5-6.5-3-6.5-6.5 3-6.5 6.5-6.5zm15 8.5c3.5 0 6.5 3 6.5 6.5s-3 6.5-6.5 6.5-6.5-3-6.5-6.5 3-6.5 6.5-6.5zM10 15c3.5 0 6.5 3 6.5 6.5s-3 6.5-6.5 6.5-6.5-3-6.5-6.5 3-6.5 6.5-6.5zm15 19c8 0 14.5 5.5 14.5 12.5 0 1.2-.9 2-2 2H12.5c-1.1 0-2-.8-2-2 0-7 6.5-12.5 14.5-12.5z' fill='%235a8c3d' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");
}
.vp-btn-cute { position: relative; overflow: hidden; }
.vp-btn-cute::after {
	content: '🐾'; position: absolute; left: -30px; top: 50%;
	transform: translateY(-50%); opacity: 0; transition: all 0.3s ease;
}
.vp-btn-cute:hover::after { left: 15px; opacity: 1; }
.vp-btn-cute:hover { padding-left: 45px; }

/* Scroll reveal (artifact-style section entrance) */
.vp-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.65s ease, transform 0.65s ease;
}
.vp-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@keyframes vp-pulse-subtle {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.85; transform: scale(1.03); }
}

.vp-fallback-header { background: #fff; border-bottom: 1px solid var(--vp-light); padding: 1rem 0; }
.vp-fallback-logo { font-weight: 800; font-size: 1.25rem; color: var(--vp-dark); text-decoration: none; }
.vp-fallback-footer { background: var(--vp-dark); color: var(--vp-bg); padding: 2rem 0; text-align: center; }

.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.custom-scrollbar::-webkit-scrollbar { width: 5px; }
.custom-scrollbar::-webkit-scrollbar-track { background: rgba(0,0,0,0.05); border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: var(--vp-green); border-radius: 10px; }
