.fab-solutions-grid {
	--fab-solutions-mesh-color: rgba(126, 155, 255, .18);
	--fab-solutions-mesh-opacity: .28;
	--fab-solutions-mesh-size: 88px;
	--fab-solutions-light-primary: rgba(101, 50, 143, .45);
	--fab-solutions-light-secondary: rgba(118, 178, 255, .28);
	--fab-solutions-light-opacity: .68;
	--fab-solutions-light-blur: 46px;
	--fab-solutions-light-size: 560px;
	--fab-solutions-light-duration: 18s;
	--fab-solutions-light-distance: 160px;
	--fab-solutions-max-width: 1240px;
	background: #080b12;
	color: #fff;
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	overflow: hidden;
	padding: 96px 24px 104px;
	position: relative;
}

.fab-solutions-grid--full-bleed {
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
}

.fab-solutions-grid *,
.fab-solutions-grid *::before,
.fab-solutions-grid *::after {
	box-sizing: border-box;
}

.fab-solutions-grid__background,
.fab-solutions-grid__background::before,
.fab-solutions-grid__background::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.fab-solutions-grid__background {
	overflow: hidden;
	z-index: 0;
}

.fab-solutions-grid--mesh .fab-solutions-grid__background::after {
	background-image:
		linear-gradient(var(--fab-solutions-mesh-color) 1px, transparent 1px),
		linear-gradient(90deg, var(--fab-solutions-mesh-color) 1px, transparent 1px);
	background-size: var(--fab-solutions-mesh-size) var(--fab-solutions-mesh-size);
	opacity: var(--fab-solutions-mesh-opacity);
	z-index: 0;
}

.fab-solutions-grid--light .fab-solutions-grid__background::before {
	background: radial-gradient(circle, var(--fab-solutions-light-primary) 0%, var(--fab-solutions-light-secondary) 42%, transparent 72%);
	filter: blur(var(--fab-solutions-light-blur));
	height: var(--fab-solutions-light-size);
	left: 50%;
	opacity: var(--fab-solutions-light-opacity);
	top: 44%;
	transform: translate3d(calc(var(--fab-solutions-light-distance) * -1), -50%, 0);
	width: var(--fab-solutions-light-size);
	will-change: transform;
	z-index: 0;
	animation: fab-solutions-grid-light var(--fab-solutions-light-duration) ease-in-out infinite alternate;
}

.fab-solutions-grid__inner {
	margin: 0 auto;
	max-width: var(--fab-solutions-max-width);
	position: relative;
	width: min(100% - 40px, var(--fab-solutions-max-width));
	z-index: 1;
}

.fab-solutions-grid__header {
	margin: 0 auto 42px;
	max-width: 820px;
	text-align: center;
}

.fab-solutions-grid__eyebrow {
	color: #f6b44b;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .18em;
	line-height: 1.2;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.fab-solutions-grid__heading {
	color: #fff;
	font-size: 42px;
	font-weight: 850;
	letter-spacing: 0;
	line-height: 1.08;
	margin: 0;
	overflow-wrap: anywhere;
}

.fab-solutions-grid__intro {
	color: rgba(245, 247, 252, .74);
	font-size: 16px;
	line-height: 1.7;
	margin: 18px auto 0;
	max-width: 720px;
}

.fab-solutions-grid__cards {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fab-solutions-grid__card {
	background: rgba(255, 255, 255, .045);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 18px 18px 22px;
	transition: border-color 220ms ease, transform 220ms ease, background-color 220ms ease;
}

.fab-solutions-grid__card:hover,
.fab-solutions-grid__card:focus-within {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(126, 85, 194, .88);
	transform: translateY(-4px);
}

.fab-solutions-grid__media {
	align-items: center;
	display: flex;
	height: 252px;
	justify-content: center;
	margin: 0 0 20px;
	overflow: hidden;
	width: 100%;
}

.fab-solutions-grid__image {
	display: block;
	height: auto;
	max-height: 236px;
	object-fit: contain;
	transition: transform 220ms ease;
	width: 96%;
}

.fab-solutions-grid__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.fab-solutions-grid__card-title {
	color: #fff;
	font-size: 23px;
	font-weight: 850;
	letter-spacing: 0;
	line-height: 1.16;
	margin: 0;
	overflow-wrap: anywhere;
}

.fab-solutions-grid__description {
	color: rgba(245, 247, 252, .70);
	font-size: 14px;
	line-height: 1.7;
	margin: 12px 0 0;
}

.fab-solutions-grid__cta {
	align-items: center;
	color: #f6b44b;
	display: inline-flex;
	font-size: 14px;
	font-weight: 850;
	gap: 8px;
	line-height: 1.2;
	margin-top: auto;
	padding-top: 22px;
	text-decoration: none;
	transition: color 220ms ease, gap 220ms ease;
	width: fit-content;
}

.fab-solutions-grid__cta:hover,
.fab-solutions-grid__cta:focus-visible {
	color: #bca7f2;
	gap: 12px;
}

.fab-solutions-grid__cta:focus-visible {
	outline: 3px solid rgba(188, 167, 242, .32);
	outline-offset: 4px;
}

@keyframes fab-solutions-grid-light {
	from {
		transform: translate3d(calc(var(--fab-solutions-light-distance) * -1), -50%, 0);
	}

	to {
		transform: translate3d(var(--fab-solutions-light-distance), -50%, 0);
	}
}

@media (max-width: 1024px) {
	.fab-solutions-grid {
		padding: 82px 22px 90px;
	}

	.fab-solutions-grid__heading {
		font-size: 36px;
	}

	.fab-solutions-grid__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fab-solutions-grid__card:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	.fab-solutions-grid {
		padding: 68px 18px 76px;
	}

	.fab-solutions-grid__heading {
		font-size: 30px;
	}

	.fab-solutions-grid__intro {
		font-size: 15px;
	}

	.fab-solutions-grid__cards {
		grid-template-columns: 1fr;
	}

	.fab-solutions-grid__card:last-child {
		grid-column: auto;
	}

	.fab-solutions-grid__media {
		height: 220px;
	}

	.fab-solutions-grid__image {
		max-height: 204px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fab-solutions-grid,
	.fab-solutions-grid__background,
	.fab-solutions-grid__background::before,
	.fab-solutions-grid__background::after,
	.fab-solutions-grid *,
	.fab-solutions-grid *::before,
	.fab-solutions-grid *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .001ms !important;
	}

	.fab-solutions-grid--light .fab-solutions-grid__background::before,
	.fab-solutions-grid__card:hover,
	.fab-solutions-grid__card:focus-within,
	.fab-solutions-grid__card:hover .fab-solutions-grid__image,
	.fab-solutions-grid__card:focus-within .fab-solutions-grid__image {
		transform: none !important;
	}
}
