/**
 * AI Elementor Site Builder — front-end utility classes.
 *
 * These map to the names in AIESB_Animation_Library::utility_classes() and are
 * applied to Elementor section wrappers via the _css_classes setting.
 * Entrance animations themselves are handled natively by Elementor.
 */

.aiesb-gradient {
	background-image: linear-gradient(135deg, #1d9e75 0%, #0f6e56 100%);
	color: #fff;
}

.aiesb-gradient .elementor-heading-title,
.aiesb-gradient p,
.aiesb-gradient .elementor-icon-box-title,
.aiesb-gradient .elementor-icon-box-title a,
.aiesb-gradient .elementor-icon-box-description {
	color: #fff;
}

.aiesb-soft {
	background-color: #f4f6f8;
}

.aiesb-shadow {
	box-shadow: 0 18px 40px rgba(0, 0, 0, .10);
}

.aiesb-rounded {
	border-radius: 18px;
	overflow: hidden;
}

.aiesb-center,
.aiesb-center .elementor-widget-container {
	text-align: center;
}

.aiesb-tight > .elementor-container {
	padding-top: 32px;
	padding-bottom: 32px;
}

.aiesb-spacious > .elementor-container {
	padding-top: 120px;
	padding-bottom: 120px;
}

/* --------------------------------------------------------------------- */
/* Section-type helpers (applied to column / section wrappers).          */
/* These are progressive enhancements; if a given Elementor version uses */
/* slightly different inner markup, layout still falls back gracefully.  */
/* --------------------------------------------------------------------- */

/* Card-style columns: testimonials, pricing plans. */
.aiesb-card-box > .elementor-widget-wrap,
.aiesb-card-box > .elementor-element-populated {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	padding: 26px 24px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
	height: 100%;
	transition: transform .35s ease, box-shadow .35s ease;
}

.aiesb-card-box:hover > .elementor-widget-wrap,
.aiesb-card-box:hover > .elementor-element-populated {
	transform: translateY(-8px);
	box-shadow: 0 22px 52px rgba(0, 0, 0, .12);
}

/* Featured pricing plan. */
.aiesb-plan-featured > .elementor-widget-wrap,
.aiesb-plan-featured > .elementor-element-populated {
	border: 2px solid #1d9e75;
	box-shadow: 0 18px 44px rgba(29, 158, 117, .18);
}

.aiesb-plan ul {
	list-style: none;
	margin: 0 0 1.2em;
	padding: 0;
	text-align: center;
}

.aiesb-plan ul li {
	padding: 6px 0;
	border-bottom: 1px solid #f0f0f0;
}

/* Stats: oversized number. */
.aiesb-stat .elementor-heading-title {
	font-size: 2.8em;
	line-height: 1.05;
	color: #1d9e75;
}

/* Steps: accent the leading number. */
.aiesb-step .elementor-widget:first-child .elementor-heading-title {
	color: #1d9e75;
	opacity: .85;
}

/* Hero with a background image: dark scrim + light text for legibility. */
.aiesb-on-image {
	position: relative;
}

.aiesb-on-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	z-index: 0;
	pointer-events: none;
}

.aiesb-on-image > .elementor-container {
	position: relative;
	z-index: 1;
}

.aiesb-on-image .elementor-heading-title,
.aiesb-on-image p {
	color: #fff;
}
