/* Styles for the theme's Elementor sections (classes set in inc/page-layouts.php via
   Advanced → CSS Classes). Editors can still override anything from the Elementor panel. */

/* ---------- Base ---------- */

.elementor-widget-heading .elementor-heading-title { line-height: 1.2; }
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title { color: var(--icg-forest); font-family: var(--icg-font); font-weight: 700; }
.elementor-widget-text-editor { color: var(--icg-charcoal); font-size: 1.02rem; line-height: 1.7; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.icg-el-eyebrow .elementor-heading-title {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--icg-olive);
}
.icg-el-intro { max-width: 760px; margin-bottom: 16px; }
.icg-el-lead,
.icg-el-lead p { font-size: 1.15rem; color: var(--icg-muted); }

/* ---------- Buttons ---------- */

.icg-el-actions { margin-top: 8px; }
.icg-el-btn .elementor-button { min-height: 50px; padding: 14px 24px; border-radius: var(--icg-radius); font-size: 0.98rem; font-weight: 700; line-height: 1.2; }

/* ---------- Hero ---------- */

.icg-el-hero { border-bottom: 1px solid var(--icg-line); }
.icg-el-h1 .elementor-heading-title { font-size: clamp(2.1rem, 4.6vw, 3.25rem); letter-spacing: -0.02em; line-height: 1.1; max-width: 20ch; }
.icg-el-hero__text .icg-el-lead { max-width: 60ch; }

.icg-el-chips .elementor-icon-list-items { gap: 8px 10px; margin-top: 4px; }
.icg-el-chips .elementor-icon-list-item {
	padding: 6px 12px !important;
	margin: 0 !important;
	border-radius: 999px;
	background: var(--icg-olive-soft);
	color: var(--icg-forest);
	font-size: 0.85rem;
	font-weight: 600;
}
.icg-el-chips .elementor-icon-list-item::after { display: none !important; }
.icg-el-chips .elementor-icon-list-icon svg { width: 12px; height: 12px; }

.icg-el-photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--icg-radius-lg);
}

/* ---------- Cards (icon boxes) ---------- */

.icg-el-card {
	height: 100%;
	padding: 26px 24px 28px;
	background: var(--icg-white);
	border: 1px solid var(--icg-line);
	border-radius: var(--icg-radius-lg);
}
.icg-el-card .elementor-icon-box-icon { margin-bottom: 16px !important; }
.icg-el-card .elementor-icon {
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: var(--icg-olive-soft);
	font-size: 22px;
}
.icg-el-card .elementor-icon svg { width: 22px; height: 22px; }
.icg-el-card .elementor-icon-box-title { margin: 0 0 8px; font-size: 1.15rem; color: var(--icg-forest); }
.icg-el-card .elementor-icon-box-title a,
.icg-el-card .elementor-icon-box-title span { color: inherit; }
.icg-el-card .elementor-icon-box-description { margin: 0; color: var(--icg-muted); font-size: 0.97rem; line-height: 1.6; }

/* ---------- Process steps ---------- */

.icg-el-step {
	position: relative;
	border-top: 3px solid var(--icg-olive);
	background: var(--icg-ivory);
	border-radius: 0 0 var(--icg-radius-lg) var(--icg-radius-lg);
}
.icg-el-step__num .elementor-heading-title { font-size: 0.9rem; font-weight: 800; letter-spacing: 0.08em; color: var(--icg-olive); }
.icg-el-step h3.elementor-heading-title { font-size: 1.15rem; }
.icg-el-step .elementor-widget-text-editor { color: var(--icg-muted); font-size: 0.97rem; }

/* ---------- Lists ---------- */

.icg-el-checklist .elementor-icon-list-item,
.icg-el-markets .elementor-icon-list-item {
	padding: 14px 16px !important;
	margin-bottom: 10px !important;
	background: var(--icg-white);
	border: 1px solid var(--icg-line);
	border-radius: var(--icg-radius);
	font-weight: 600;
	color: var(--icg-charcoal);
}
.icg-el-checklist .elementor-icon-list-item::after,
.icg-el-markets .elementor-icon-list-item::after { display: none !important; }
.icg-el-checklist .elementor-icon-list-icon,
.icg-el-markets .elementor-icon-list-icon { margin-right: 10px; }
.icg-el-checklist .elementor-icon-list-icon svg,
.icg-el-markets .elementor-icon-list-icon svg { width: 16px; height: 16px; }
.icg-el-markets .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.icg-el-markets .elementor-icon-list-item { margin: 0 !important; }
@media (max-width: 520px) { .icg-el-markets .elementor-icon-list-items { grid-template-columns: 1fr; } }

/* ---------- Text + photo ---------- */

.icg-el-prose ul { margin: 0 0 1em; padding-left: 1.2em; }
.icg-el-prose li { margin-bottom: 6px; }

/* ---------- CTA band ---------- */

.icg-el-cta h2.elementor-heading-title { color: var(--icg-white); }
.icg-el-cta .elementor-widget-text-editor { color: #dfe8e1; font-size: 1.08rem; }

/* ---------- Shortcode grids inside Elementor ---------- */

.elementor-widget-shortcode .icg-grid { margin-top: 8px; }
