/* Illusion Hero Banner for Elementor - frontend styles. Lightweight CSS only, no JS dependency. */
.elementor-widget-illusion_hero_banner,
.elementor-widget-illusion_hero_banner .elementor-widget-container {
	width: 100%;
}

.ic-hero-banner {
	--ic-bg-size-mode: cover;
	--ic-bg-custom-scale: 120%;
	--ic-bg-pos-x: 50%;
	--ic-bg-pos-y: 50%;
	--ic-overlay-start: rgba(2, 6, 23, 0.92);
	--ic-overlay-end: rgba(2, 6, 23, 0.20);
	--ic-overlay-angle: 90deg;
	--ic-title-1-start: #ffffff;
	--ic-title-1-end: #dbeafe;
	--ic-title-1-angle: 90deg;
	--ic-title-2-start: #2563ff;
	--ic-title-2-end: #22d3ee;
	--ic-title-2-angle: 90deg;
	--ic-desc-start: #e5edf9;
	--ic-desc-end: #93a4bd;
	--ic-desc-angle: 90deg;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	width: 100%;
	min-height: 78vh;
	background: radial-gradient(circle at 72% 28%, rgba(18, 114, 255, 0.22), transparent 35%), linear-gradient(135deg, #020617 0%, #061224 100%);
}

.ic-hero-bg,
.ic-hero-overlay,
.ic-hero-noise {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ic-hero-bg {
	z-index: -3;
	background-repeat: no-repeat;
	background-size: var(--ic-bg-size-mode);
	background-position: var(--ic-bg-pos-x) var(--ic-bg-pos-y);
	transform: translateZ(0);
	will-change: auto;
}

.ic-hero-overlay {
	z-index: -2;
	background: linear-gradient(var(--ic-overlay-angle), var(--ic-overlay-start) 0%, rgba(2, 6, 23, 0.65) 46%, var(--ic-overlay-end) 100%);
}

.ic-hero-noise {
	z-index: -1;
	background:
		radial-gradient(circle at 8% 12%, rgba(14, 165, 255, 0.14), transparent 18%),
		radial-gradient(circle at 90% 88%, rgba(79, 70, 229, 0.18), transparent 26%),
		linear-gradient(90deg, rgba(125, 210, 255, 0.12) 0 1px, transparent 1px 100%);
	background-size: auto, auto, 160px 160px;
	mix-blend-mode: screen;
	opacity: 0.62;
}

.ic-hero-inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	box-sizing: border-box;
	width: 100%;
	min-height: inherit;
	padding: 96px 64px;
}

.ic-hero-content {
	position: relative;
	z-index: 2;
	max-width: 760px;
	text-align: left;
}

.ic-hero-title {
	margin: 0 0 24px;
	padding: 0;
	font-family: inherit;
	font-size: clamp(48px, 7vw, 118px);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.055em;
}

.ic-hero-title-part {
	display: block;
	width: fit-content;
	max-width: 100%;
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-wrap: balance;
}

.ic-hero-title-part-1 {
	background-image: linear-gradient(var(--ic-title-1-angle), var(--ic-title-1-start), var(--ic-title-1-end));
	color: var(--ic-title-1-start);
}

.ic-hero-title-part-2 {
	background-image: linear-gradient(var(--ic-title-2-angle), var(--ic-title-2-start), var(--ic-title-2-end));
	color: var(--ic-title-2-start);
}

.ic-hero-description {
	max-width: 860px;
	margin: 0 0 40px;
	font-family: inherit;
	font-size: clamp(16px, 1.6vw, 24px);
	font-weight: 400;
	line-height: 1.55;
	background-image: linear-gradient(var(--ic-desc-angle), var(--ic-desc-start), var(--ic-desc-end));
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--ic-desc-start);
}

.ic-hero-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 20px;
}

.ic-hero-btn {
	--ic-btn-text: #ffffff;
	--ic-btn-bg-start: #0ea5ff;
	--ic-btn-bg-end: #2563ff;
	--ic-btn-border: rgba(125, 210, 255, 0.55);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	box-sizing: border-box;
	padding: 18px 28px;
	border: 1px solid var(--ic-btn-border);
	border-radius: 14px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none !important;
	color: var(--ic-btn-text) !important;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background 180ms ease;
}

.ic-hero-btn--filled {
	background: linear-gradient(135deg, var(--ic-btn-bg-start), var(--ic-btn-bg-end));
	box-shadow: 0 0 0 1px rgba(255,255,255,0.08) inset, 0 16px 40px rgba(14,165,255,0.24), 0 0 26px rgba(14,165,255,0.16);
}

.ic-hero-btn--outline {
	background: linear-gradient(135deg, var(--ic-btn-bg-start), var(--ic-btn-bg-end));
	box-shadow: 0 0 0 1px rgba(255,255,255,0.04) inset, 0 10px 28px rgba(15,23,42,0.24);
	backdrop-filter: blur(12px);
}

.ic-hero-btn:hover,
.ic-hero-btn:focus {
	transform: translateY(-2px);
	box-shadow: 0 0 0 1px rgba(255,255,255,0.12) inset, 0 20px 54px rgba(14,165,255,0.32), 0 0 34px rgba(14,165,255,0.24);
}

.ic-hero-btn:focus-visible {
	outline: 2px solid rgba(125, 210, 255, 0.95);
	outline-offset: 3px;
}

.ic-hero-btn-arrow {
	font-size: 1.2em;
	line-height: 1;
	transition: transform 180ms ease;
}

.ic-hero-btn:hover .ic-hero-btn-arrow,
.ic-hero-btn:focus .ic-hero-btn-arrow {
	transform: translateX(4px);
}

@media (max-width: 1024px) {
	.ic-hero-inner {
		padding: 80px 40px;
	}

	.ic-hero-title {
		font-size: clamp(44px, 9vw, 88px);
	}
}

@media (max-width: 767px) {
	.ic-hero-banner {
		min-height: 620px;
	}

	.ic-hero-inner {
		padding: 72px 24px;
	}

	.ic-hero-title {
		font-size: clamp(40px, 13vw, 64px);
		letter-spacing: -0.045em;
	}

	.ic-hero-description {
		font-size: 16px;
	}

	.ic-hero-buttons {
		width: 100%;
	}

	.ic-hero-btn {
		width: 100%;
		min-width: 0;
	}
}

/* Illusion Service Cards */
.ihb-service-grid {
	--ihb-card-columns: 6;
	display: grid;
	grid-template-columns: repeat(var(--ihb-card-columns), minmax(0, 1fr));
	gap: 18px;
	width: 100%;
}

.ihb-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	color: inherit;
	background: rgba(3, 10, 26, 0.74);
	border: 1px solid rgba(120, 170, 255, 0.22);
	border-radius: 18px;
	box-shadow: 0 22px 60px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.05);
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
	isolation: isolate;
}

.ihb-service-card:hover,
.ihb-service-card:focus-visible {
	transform: translateY(-4px);
	border-color: rgba(37, 183, 255, 0.66);
	box-shadow: 0 26px 70px rgba(0, 0, 0, 0.38), 0 0 28px rgba(37, 183, 255, 0.16);
	outline: none;
}

.ihb-service-card--has-link {
	cursor: pointer;
}

.ihb-service-card__link-overlay {
	position: absolute;
	inset: 0;
	z-index: 8;
	display: block;
	border-radius: inherit;
	text-decoration: none !important;
	color: inherit;
}

.ihb-service-card__link-overlay:hover,
.ihb-service-card__link-overlay:focus,
.ihb-service-card__link-overlay:visited {
	text-decoration: none !important;
	color: inherit;
}

.ihb-service-card__link-overlay:focus-visible {
	outline: 2px solid rgba(125, 210, 255, 0.95);
	outline-offset: -4px;
}


.ihb-service-card,
.ihb-service-card__content,
.ihb-service-card__content *,
.ihb-service-card__title,
.ihb-service-card__description {
	text-decoration: none !important;
}

.ihb-service-card__title a,
.ihb-service-card__description a {
	text-decoration: none !important;
	color: inherit;
}


.ihb-service-card--featured {
	--ihb-featured-glow: #24b7ff;
	border-color: rgba(120, 100, 255, 0.72);
	box-shadow: 0 26px 80px rgba(0, 0, 0, 0.36), 0 0 30px color-mix(in srgb, var(--ihb-featured-glow) 44%, transparent), inset 0 0 34px rgba(75, 84, 255, 0.18);
}

.ihb-service-card--featured::before {
	content: '';
	position: absolute;
	inset: -1px;
	z-index: -1;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(142, 92, 255, .86), rgba(36, 183, 255, .86));
	opacity: .38;
}

.ihb-service-card__media {
	position: relative;
	z-index: 1;
	height: 160px;
	overflow: hidden;
	background: radial-gradient(circle at 50% 35%, rgba(37, 183, 255, .22), rgba(3, 10, 26, 0) 56%), #020817;
}

.ihb-service-card__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	opacity: .86;
	transition: transform .45s ease, opacity .25s ease;
}

.ihb-service-card:hover .ihb-service-card__image,
.ihb-service-card:focus-visible .ihb-service-card__image {
	transform: scale(1.055);
	opacity: .98;
}

.ihb-service-card__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(2, 7, 20, .08) 0%, rgba(2, 7, 20, .28) 45%, rgba(2, 7, 20, .9) 100%);
	pointer-events: none;
}

.ihb-service-card__placeholder {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 30% 30%, rgba(37, 183, 255, .28), transparent 34%),
		linear-gradient(135deg, rgba(13, 48, 115, .72), rgba(5, 11, 30, .94));
}

.ihb-service-card__icon {
	position: absolute;
	top: 20px;
	left: 20px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border: 1px solid rgba(140, 180, 255, .40);
	border-radius: 14px;
	background: rgba(3, 10, 26, .54);
	backdrop-filter: blur(8px);
	box-shadow: 0 0 22px rgba(40, 130, 255, .12), inset 0 0 18px rgba(255, 255, 255, .03);
}

.ihb-service-card__icon svg {
	width: 58%;
	height: 58%;	
	stroke: #fff;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ihb-service-card__badge {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1;
	color: #fff;
	background: linear-gradient(135deg, rgba(127, 92, 255, .92), rgba(36, 183, 255, .72));
	box-shadow: 0 0 18px rgba(103, 92, 255, .38);
	text-transform: uppercase;
}

.ihb-service-card__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 26px;
	padding-top: 24px;
}

.ihb-service-card__title {
	margin: 0 0 12px;
	color: #fff;
	font-size: clamp(19px, 1.45vw, 26px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.03em;
	text-decoration: none;
}

.ihb-service-card__description {
	margin: 0;
	color: rgba(232, 240, 255, .78);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.55;
	text-decoration: none;
}

.ihb-service-card__arrow {
	position: absolute;
	right: 22px;
	bottom: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(170, 210, 255, .25);
	border-radius: 999px;
	color: #fff;
	font-size: 24px;
	line-height: 1;
	background: rgba(6, 15, 36, .34);
	transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.ihb-service-card:hover .ihb-service-card__arrow,
.ihb-service-card:focus-visible .ihb-service-card__arrow {
	transform: translateX(4px);
	border-color: rgba(37, 183, 255, .72);
	background: rgba(37, 183, 255, .16);
}

@media (max-width: 1024px) {
	.ihb-service-grid {
		--ihb-card-columns: 3;
	}
}

@media (max-width: 767px) {
	.ihb-service-grid {
		--ihb-card-columns: 2;
		gap: 14px;
	}

	.ihb-service-card {
		min-height: 0;
	}

	.ihb-service-card__media {
		height: 132px;
	}

	.ihb-service-card__content {
		padding: 18px;
		padding-top: 16px;
	}

	.ihb-service-card__title {
		margin-bottom: 10px;
		font-size: clamp(18px, 5vw, 24px);
	}

	.ihb-service-card__description {
		font-size: 13.5px;
		line-height: 1.45;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 4;
		overflow: hidden;
	}

	.ihb-service-card__icon {
		top: 14px;
		left: 14px;
		width: 48px;
		height: 48px;
		border-radius: 12px;
	}

	.ihb-service-card__badge {
		top: 14px;
		right: 14px;
		padding: 5px 10px;
		font-size: 10px;
		max-width: calc(100% - 28px);
	}

	.ihb-service-card__arrow {
		right: 18px;
		bottom: 18px;
		width: 38px;
		height: 38px;
		font-size: 22px;
	}
}

@media (max-width: 480px) {
	.ihb-service-grid {
		gap: 12px;
	}

	.ihb-service-card__media {
		height: 120px;
	}

	.ihb-service-card__content {
		padding: 16px;
		padding-top: 14px;
	}

	.ihb-service-card__description {
		-webkit-line-clamp: 3;
	}
}

/* Illusion homepage section widgets v1.2.0 */
.ihb-section,
.ihb-feature,
.ihb-cta-panel {
	box-sizing: border-box;
	width: 100%;
	color: #fff;
	font-family: inherit;
}

.ihb-section *,
.ihb-feature *,
.ihb-cta-panel * { box-sizing: border-box; }

.ihb-section {
	padding: clamp(48px, 6vw, 96px) 0;
	background:
		radial-gradient(circle at 50% 0%, rgba(34, 211, 238, .10), transparent 34%),
		linear-gradient(180deg, rgba(2, 8, 23, .98), rgba(2, 8, 23, .94));
}

.ihb-section__head {
	max-width: 920px;
	margin: 0 auto clamp(28px, 4vw, 54px);
	padding: 0 20px;
	text-align: center;
}

.ihb-section__eyebrow {
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .13em;
	line-height: 1.2;
	text-transform: uppercase;
	color: #22d3ee;
}

.ihb-section__title {
	margin: 0;
	color: #fff;
	font-size: clamp(30px, 4vw, 56px);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.04em;
}

.ihb-section__desc {
	max-width: 740px;
	margin: 14px auto 0;
	color: rgba(232, 244, 255, .78);
	font-size: clamp(15px, 1.4vw, 20px);
	line-height: 1.7;
}

.ihb-section__mark,
.ihb-feature__mark,
.ihb-cta-panel__mark {
	display: block;
	width: 42px;
	height: 3px;
	margin: 18px auto 0;
	border-radius: 99px;
	background: currentColor;
	box-shadow: 0 0 22px currentColor;
	color: #22d3ee;
}

.ihb-card-link-overlay {
	position: absolute;
	inset: 0;
	z-index: 9;
	border-radius: inherit;
	text-decoration: none !important;
	color: inherit;
}

.ihb-card-link-overlay:hover,
.ihb-card-link-overlay:focus,
.ihb-card-link-overlay:visited { text-decoration: none !important; color: inherit; }
.ihb-card-link-overlay:focus-visible { outline: 2px solid rgba(125, 210, 255, .92); outline-offset: -5px; }

/* Selected Works */
.ihb-works-grid {
	--ihb-works-columns: 3;
	display: grid;
	grid-template-columns: repeat(var(--ihb-works-columns), minmax(0, 1fr));
	gap: 18px;
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
}

.ihb-work-card {
	position: relative;
	overflow: hidden;
	min-width: 0;
	border: 1px solid rgba(34, 211, 238, .28);
	border-radius: 18px;
	background: rgba(3, 10, 26, .82);
	box-shadow: 0 22px 64px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.05);
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
	isolation: isolate;
}

.ihb-work-card:hover,
.ihb-work-card:focus-within {
	transform: translateY(-4px);
	border-color: rgba(34, 211, 238, .72);
	box-shadow: 0 30px 76px rgba(0,0,0,.42), 0 0 34px rgba(34,211,238,.14);
}

.ihb-work-card__image-wrap {
	position: relative;
	height: 260px;
	overflow: hidden;
	background: #020817;
}

.ihb-work-card__image,
.ihb-feature__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ihb-work-card__image { opacity: .9; transition: transform .45s ease, opacity .25s ease; }
.ihb-work-card:hover .ihb-work-card__image { transform: scale(1.055); opacity: 1; }

.ihb-work-card__image-wrap::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(2,7,20,.04) 0%, rgba(2,7,20,.20) 42%, rgba(2,7,20,.84) 100%);
	pointer-events: none;
}

.ihb-work-card__placeholder {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 40% 30%, rgba(34, 211, 238, .20), transparent 36%), linear-gradient(135deg, #061b3a, #020817);
}

.ihb-work-card__body {
	position: relative;
	min-height: 96px;
	padding: 22px 72px 22px 24px;
}

.ihb-work-card__title,
.ihb-work-card__desc {
	margin: 0;
	text-decoration: none !important;
}

.ihb-work-card__title {
	color: #fff;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.02em;
}

.ihb-work-card__desc {
	margin-top: 8px;
	color: rgba(232,244,255,.72);
	font-size: 14px;
	line-height: 1.55;
}

.ihb-work-card__arrow {
	position: absolute;
	right: 18px;
	bottom: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(170,210,255,.30);
	border-radius: 999px;
	color: #fff;
	font-size: 24px;
	line-height: 1;
	background: rgba(6, 15, 36, .34);
	transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.ihb-work-card:hover .ihb-work-card__arrow { transform: translateX(4px); background: rgba(34,211,238,.12); }

/* Why */
.ihb-why-grid {
	--ihb-why-columns: 2;
	display: grid;
	grid-template-columns: repeat(var(--ihb-why-columns), minmax(0, 1fr));
	gap: 20px;
	width: min(1120px, calc(100% - 40px));
	margin: 0 auto;
}

.ihb-why-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 22px;
	align-items: center;
	padding: clamp(22px, 3vw, 34px);
	border: 1px solid rgba(34, 211, 238, .25);
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(4, 18, 42, .86), rgba(2, 9, 24, .76));
	box-shadow: 0 18px 50px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.05);
}

.ihb-why-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	border: 1px solid rgba(34, 211, 238, .26);
	border-radius: 16px;
	color: #22d3ee;
	background: rgba(7, 25, 55, .68);
	box-shadow: inset 0 0 28px rgba(34,211,238,.08), 0 0 24px rgba(34,211,238,.08);
}

.ihb-why-card__icon svg { width: 58%; height: 58%; }
.ihb-why-card__title { margin: 0 0 8px; color: #fff; font-size: 22px; font-weight: 800; line-height: 1.25; }
.ihb-why-card__desc { margin: 0; color: rgba(232,244,255,.78); font-size: 15px; line-height: 1.65; }

/* Workflow */
.ihb-flow-grid {
	--ihb-flow-columns: 6;
	display: grid;
	grid-template-columns: repeat(var(--ihb-flow-columns), minmax(0, 1fr));
	gap: 14px;
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
}

.ihb-flow-step {
	position: relative;
	padding: 56px 18px 24px;
	min-height: 245px;
	border: 1px solid rgba(34, 211, 238, .28);
	border-radius: 16px;
	text-align: center;
	background: linear-gradient(180deg, rgba(4,18,42,.82), rgba(2,8,23,.75));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 18px 48px rgba(0,0,0,.24);
}

.ihb-flow-step__num {
	position: absolute;
	top: -28px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border: 2px solid rgba(34,211,238,.55);
	border-radius: 999px;
	color: #fff;
	background: rgba(4, 18, 42, .92);
	font-size: 24px;
	font-weight: 800;
	box-shadow: 0 0 22px rgba(34,211,238,.22);
}

.ihb-flow-step__icon { display: inline-flex; width: 62px; height: 62px; margin-bottom: 18px; color: #22d3ee; }
.ihb-flow-step__icon svg { width: 100%; height: 100%; }
.ihb-flow-step__title { margin: 0 0 12px; color: #fff; font-size: 15px; font-weight: 800; line-height: 1.35; }
.ihb-flow-step__desc { margin: 0; color: rgba(232,244,255,.72); font-size: 13px; line-height: 1.55; }

/* Feature highlight */
.ihb-feature {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
	width: min(1200px, calc(100% - 40px));
	margin: clamp(48px, 6vw, 96px) auto;
	padding: clamp(20px, 3vw, 34px);
	border: 1px solid rgba(34, 211, 238, .28);
	border-radius: 22px;
	background: linear-gradient(135deg, rgba(4, 18, 42, .88), rgba(2, 8, 23, .88));
	box-shadow: 0 26px 76px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05);
	overflow: hidden;
}
.ihb-feature--reverse .ihb-feature__media { order: 2; }
.ihb-feature--reverse .ihb-feature__content { order: 1; }
.ihb-feature__media { position: relative; overflow: hidden; min-height: 360px; border-radius: 18px; background: #020817; }
.ihb-feature__placeholder { position: absolute; inset: 0; background: radial-gradient(circle at 30% 50%, rgba(34,211,238,.22), transparent 35%), linear-gradient(135deg, #061b3a, #020817); }
.ihb-feature__media::after { content:''; position:absolute; inset:0; background: linear-gradient(90deg, rgba(2,8,23,.04), rgba(2,8,23,.42)); pointer-events:none; }
.ihb-feature__eyebrow { margin-bottom: 10px; color: #22d3ee; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ihb-feature__title { margin: 0; color: #fff; font-size: clamp(30px, 4vw, 54px); font-weight: 850; line-height: 1.12; letter-spacing: -0.04em; }
.ihb-feature__mark { margin: 18px 0 0; }
.ihb-feature__desc { margin: 28px 0 0; color: rgba(232,244,255,.82); font-size: clamp(16px, 1.5vw, 20px); line-height: 1.75; }
.ihb-feature__buttons { display:flex; flex-wrap: wrap; gap:16px; margin-top: 32px; }
.ihb-feature__button,
.ihb-cta-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding: 16px 24px; border:1px solid rgba(34,211,238,.36); border-radius:12px; color:#fff !important; text-decoration:none !important; font-weight:800; line-height:1; transition:transform .22s ease, box-shadow .22s ease, background .22s ease; }
.ihb-button-primary { background: linear-gradient(135deg, #22d3ee, #1677ff); box-shadow: 0 16px 42px rgba(34,211,238,.24); }
.ihb-button-outline { background: rgba(3, 10, 26, .34); backdrop-filter: blur(10px); }
.ihb-feature__button:hover,
.ihb-cta-button:hover { transform: translateY(-2px); box-shadow: 0 20px 52px rgba(34,211,238,.28); }

/* CTA */
.ihb-cta-panel {
	position: relative;
	width: min(1200px, calc(100% - 40px));
	margin: clamp(48px, 6vw, 96px) auto;
	padding: clamp(44px, 6vw, 84px) 24px;
	border: 1px solid rgba(34, 211, 238, .32);
	border-radius: 24px;
	background:
		linear-gradient(180deg, rgba(5, 25, 62, .64), rgba(2, 8, 23, .90)),
		var(--ihb-cta-bg, none),
		radial-gradient(circle at 50% 0%, rgba(34,211,238,.28), transparent 38%),
		#020817;
	background-size: cover;
	background-position: center;
	overflow: hidden;
	box-shadow: 0 0 52px rgba(34,211,238,.16), inset 0 1px 0 rgba(255,255,255,.06);
}
.ihb-cta-panel::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg, rgba(34,211,238,.12) 0 1px, transparent 1px 100%), linear-gradient(0deg, rgba(34,211,238,.10) 0 1px, transparent 1px 100%); background-size: 72px 72px; opacity:.28; pointer-events:none; }
.ihb-cta-panel__inner { position: relative; z-index: 1; max-width: 880px; margin: 0 auto; text-align:center; }
.ihb-cta-panel__title { margin:0; color:#fff; font-size: clamp(34px, 5vw, 70px); font-weight: 850; line-height: 1.1; letter-spacing: -.05em; }
.ihb-cta-panel__desc { margin: 24px auto 0; max-width: 760px; color: rgba(232,244,255,.84); font-size: clamp(16px, 1.8vw, 22px); line-height: 1.7; }
.ihb-cta-panel__buttons { display:flex; flex-wrap:wrap; gap:18px; justify-content:center; margin-top: 34px; }
.ihb-cta-button { min-width: 220px; }
.ihb-cta-button__icon { display:inline-flex; width:24px; height:24px; }
.ihb-cta-button__icon svg { width:100%; height:100%; }

@media (max-width: 1024px) {
	.ihb-flow-grid { --ihb-flow-columns: 3; row-gap: 46px; }
}

@media (max-width: 767px) {
	.ihb-section { padding: 54px 0; }
	.ihb-works-grid { --ihb-works-columns: 1; width: min(100% - 28px, 520px); }
	.ihb-why-grid { --ihb-why-columns: 1; width: min(100% - 28px, 580px); }
	.ihb-flow-grid { --ihb-flow-columns: 2; gap: 14px; row-gap: 44px; width: min(100% - 28px, 620px); }
	.ihb-feature { grid-template-columns: 1fr; width: min(100% - 28px, 620px); margin: 54px auto; }
	.ihb-feature--reverse .ihb-feature__media { order: 1; }
	.ihb-feature--reverse .ihb-feature__content { order: 2; }
	.ihb-feature__media { min-height: 260px; }
	.ihb-cta-panel { width: min(100% - 28px, 620px); }
	.ihb-cta-button { width: 100%; min-width: 0; }
}

@media (max-width: 480px) {
	.ihb-flow-grid { --ihb-flow-columns: 1; }
	.ihb-why-card { grid-template-columns: 1fr; text-align: center; }
	.ihb-why-card__icon { margin: 0 auto; }
	.ihb-work-card__image-wrap { height: 220px; }
}
