/**
 * Addronix Addons for Elementor — Shared Frontend Base Styles
 *
 * Minimal resets and utility classes shared across all widgets.
 * Each widget's own CSS file scopes its rules under .aafe-[widgetname].
 */

/* Ensure all widget elements follow border-box sizing */
[class^="aafe-"],
[class*=" aafe-"] {
	box-sizing: border-box;
}

/* AAFE IMPROVEMENT: Entrance Animation section */
.aafe-animated {
	animation-fill-mode: both;
	opacity: 1 !important; /* Override initial opacity: 0 */
}

@keyframes aafeFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
.aafe-animation-fadeIn { animation-name: aafeFadeIn; }

@keyframes aafeFadeInUp {
	from { opacity: 0; transform: translate3d(0, 40px, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.aafe-animation-fadeInUp { animation-name: aafeFadeInUp; }

@keyframes aafeFadeInDown {
	from { opacity: 0; transform: translate3d(0, -40px, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.aafe-animation-fadeInDown { animation-name: aafeFadeInDown; }

@keyframes aafeFadeInLeft {
	from { opacity: 0; transform: translate3d(-40px, 0, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.aafe-animation-fadeInLeft { animation-name: aafeFadeInLeft; }

@keyframes aafeFadeInRight {
	from { opacity: 0; transform: translate3d(40px, 0, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.aafe-animation-fadeInRight { animation-name: aafeFadeInRight; }

@keyframes aafeZoomIn {
	from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
	50% { opacity: 1; }
}
.aafe-animation-zoomIn { animation-name: aafeZoomIn; }
