/*
 * iHealWP - Components / Compatibility
 *
 * Keeps Elementor content from being unintentionally overridden by theme styles.
 */

/* Elementor Compatibility Fixes */

/* Prevent theme styles from affecting Elementor widgets */
.elementor-widget-container h1,
.elementor-widget-container h2,
.elementor-widget-container h3,
.elementor-widget-container h4,
.elementor-widget-container h5,
.elementor-widget-container h6 {
	margin: inherit;
	padding: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

.elementor-widget-container p {
	margin-bottom: inherit;
}

.elementor-widget-container ul,
.elementor-widget-container ol {
	list-style: inherit;
	padding: inherit;
	margin: inherit;
}

.elementor-widget-container a {
	color: inherit;
}

/* Ensure Elementor button styles take precedence */
.elementor-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}

/* Reset theme button styles within Elementor */
.elementor-widget-container .btn,
.elementor-widget-container button {
	all: unset;
}

/* Allow Elementor sections full width */
.elementor-section.elementor-section-boxed > .elementor-container {
	max-width: 1200px;
}

.elementor-section.elementor-section-full_width {
	width: 100%;
	max-width: 100%;
}

/* Preserve theme background colors */
.elementor-section:not([data-settings]) {
	background-color: transparent;
}

/* Fix z-index issues */
.elementor-element {
	position: relative;
	z-index: 1;
}

/* Ensure Elementor popups appear above everything */
.elementor-popup-modal {
	z-index: 9999 !important;
}

/* ========================================================================== */
/* Utility Classes & Animations */
/* ========================================================================== */

/* Transition Utilities */
.transition-all {
	transition: all 0.3s ease;
}

.transition-colors {
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.transition-transform {
	transition: transform 0.3s ease;
}

.transition-shadow {
	transition: box-shadow 0.3s ease;
}

/* Hover Effects */
.hover\:scale-105:hover {
	transform: scale(1.05);
}

.hover\:shadow-lg:hover {
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.hover\:translate-y-1:hover {
	transform: translateY(-4px);
}

/* Button Active State */
button.active,
.btn.active,
.filter-btn.active,
.tag-btn.active {
	background-color: #78A346 !important;
	color: white !important;
	border-color: #315E26 !important;
}

/* Filter Button Base Styles */
.filter-btn,
.tag-btn {
	transition: all 0.3s ease;
	cursor: pointer;
	font-weight: 600;
	border-radius: 8px;
	font-size: 14px;
	border: 1px solid #E5E7EB;
	padding: 10px 16px;
	background: white;
	color: #6B7280;
}

.filter-btn:hover,
.tag-btn:hover {
	background-color: #F3F4F6;
	border-color: #D1D5DB;
}

/* Fade In Animation */
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.fade-in {
	animation: fadeIn 0.3s ease-in;
}

/* Slide Up Animation */
@keyframes slideUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.slide-up {
	animation: slideUp 0.4s ease-out;
}

/* Scale Pop Animation */
@keyframes scalePop {
	0% {
		transform: scale(0.95);
		opacity: 0;
	}
	100% {
		transform: scale(1);
		opacity: 1;
	}
}

.scale-pop {
	animation: scalePop 0.2s ease-out;
}

/* Loading Pulse */
@keyframes pulse {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0.5;
	}
}

.pulse {
	animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
