/* B3 Outdoor Design - light motion layer. Safe without JS: content is only
   hidden once b3-motion.js adds .b3-motion to <html>. */
html { scroll-behavior: smooth; }

/* Scroll reveals */
.b3-motion .b3-reveal {
	opacity: 0;
	transform: translate3d(0, 24px, 0);
	transition: opacity .8s cubic-bezier(.22, .61, .36, 1), transform .8s cubic-bezier(.22, .61, .36, 1);
	transition-delay: var(--b3-delay, 0ms);
	will-change: opacity, transform;
}
.b3-motion .b3-reveal.b3-in {
	opacity: 1;
	transform: none;
	will-change: auto;
}

/* Header settles in on load */
@keyframes b3-header-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
.b3-motion .elementor-location-header { animation: b3-header-in .7s cubic-bezier(.22, .61, .36, 1) both; }
/* The animation makes the header its own stacking layer; keep it above the page
   so the mobile menu dropdown isn't hidden behind the hero. */
.elementor-location-header { position: relative; z-index: 100; }

/* Buttons */
.elementor-widget-button .elementor-button,
.elementor-widget-eael-gravity-form .gform_button,
.gform_wrapper .gform_button {
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}
.elementor-widget-button .elementor-button:hover,
.gform_wrapper .gform_button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(46, 100, 23, .28);
}
.elementor-widget-button .elementor-button:active,
.gform_wrapper .gform_button:active { transform: translateY(0); box-shadow: none; }

/* Icon boxes (service / feature cards) */
.elementor-widget-icon-box .elementor-icon-box-wrapper { transition: transform .35s ease; }
.elementor-widget-icon-box .elementor-icon { transition: transform .35s ease; }
.elementor-widget-icon-box:hover .elementor-icon-box-wrapper { transform: translateY(-4px); }
.elementor-widget-icon-box:hover .elementor-icon { transform: scale(1.08); }

/* Photos: gentle zoom inside their frame */
.elementor-widget-image:not(.elementor-widget-theme-site-logo) .elementor-widget-container { overflow: hidden; }
.elementor-location-header .elementor-widget-image .elementor-widget-container { overflow: visible; }
.elementor-widget-image img { transition: transform .9s cubic-bezier(.22, .61, .36, 1); }
.elementor-widget-image:hover img { transform: scale(1.03); }
.elementor-location-header .elementor-widget-image:hover img,
.elementor-location-footer .elementor-widget-image:hover img { transform: none; }

/* Social icons */
.elementor-social-icon { transition: transform .25s ease, background-color .25s ease; }
.elementor-social-icon:hover { transform: translateY(-3px); }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.b3-motion .b3-reveal { opacity: 1; transform: none; transition: none; }
	.b3-motion .elementor-location-header { animation: none; }
	.elementor-widget-button .elementor-button:hover,
	.gform_wrapper .gform_button:hover,
	.elementor-widget-icon-box:hover .elementor-icon-box-wrapper,
	.elementor-widget-icon-box:hover .elementor-icon,
	.elementor-widget-image:hover img,
	.elementor-social-icon:hover { transform: none; }
}
