.vsi-lm-wrap,
.vsi-lm-wrap * {
	box-sizing: border-box;
}

.vsi-lm-wrap {
	width: 100%;
	max-width: 100%;
}

.vsi-lm-card {
	--vsi-lm-bg-start: #0f2481;
	--vsi-lm-bg-end: #2947c5;
	--vsi-lm-gradient-angle: 112deg;
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
	align-items: center;
	column-gap: 54px;
	width: 100%;
	min-height: 472px;
	overflow: hidden;
	padding: 54px 56px;
	border-radius: 44px;
	background: linear-gradient(var(--vsi-lm-gradient-angle), var(--vsi-lm-bg-start) 0%, var(--vsi-lm-bg-end) 100%);
	font-family: inherit;
}

.vsi-lm-content,
.vsi-lm-items {
	position: relative;
	z-index: 2;
}

.vsi-lm-content {
	max-width: 490px;
}

.vsi-lm-decoration {
	position: absolute;
	z-index: 1;
	top: -110px;
	right: -90px;
	display: block;
	width: 310px;
	height: 310px;
	border-radius: 50%;
	background: rgba(190, 188, 163, 0.32);
	pointer-events: none;
}

.vsi-lm-badge {
	margin: 0 0 17px;
	color: #fff100;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 1.4px;
	text-transform: uppercase;
}

.vsi-lm-heading {
	margin: 0;
	color: #fff;
	font-family: inherit;
	font-size: clamp(42px, 4.45vw, 56px);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -2.3px;
}

.vsi-lm-description {
	max-width: 475px;
	margin-top: 17px;
	color: #fff;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.58;
}

.vsi-lm-description p {
	margin: 0;
}

.vsi-lm-description p + p {
	margin-top: 0.75em;
}

.vsi-lm-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	margin-top: 34px;
	padding: 17px 23px;
	border: 1px solid rgba(255, 255, 255, 0.82);
	border-radius: 999px;
	background: #fff;
	color: #081f74;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none !important;
	box-shadow: none;
	transition: transform 180ms ease, background-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.vsi-lm-button:hover,
.vsi-lm-button:focus {
	transform: translateY(-2px);
	background: #0a1f72;
	color: #fff;
	box-shadow: 0 12px 28px rgba(2, 14, 69, 0.24);
	text-decoration: none;
}

.vsi-lm-button:focus-visible {
	outline: 3px solid rgba(255, 255, 255, 0.58);
	outline-offset: 3px;
}

.vsi-lm-items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
}

.vsi-lm-item {
	display: flex;
	align-items: center;
	min-height: 49px;
	padding: 14px;
	border: 1px solid rgba(255, 255, 255, 0.20);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.10);
	color: #fff;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
	backdrop-filter: blur(1px);
	-webkit-backdrop-filter: blur(1px);
}

@media (max-width: 1024px) {
	.vsi-lm-card {
		grid-template-columns: 1fr;
		row-gap: 42px;
		min-height: auto;
		padding: 48px;
	}

	.vsi-lm-content {
		max-width: 670px;
	}

	.vsi-lm-description {
		max-width: 640px;
	}

	.vsi-lm-items {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.vsi-lm-card {
		row-gap: 34px;
		padding: 36px 24px;
		border-radius: 28px;
	}

	.vsi-lm-decoration {
		top: -86px;
		right: -92px;
		width: 230px;
		height: 230px;
	}

	.vsi-lm-badge {
		margin-bottom: 14px;
		font-size: 12px;
	}

	.vsi-lm-heading {
		font-size: clamp(34px, 10vw, 44px);
		letter-spacing: -1.4px;
	}

	.vsi-lm-description {
		font-size: 15px;
	}

	.vsi-lm-button {
		width: 100%;
		margin-top: 26px;
	}

	.vsi-lm-items {
		grid-template-columns: 1fr;
	}

	.vsi-lm-item {
		min-height: 48px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vsi-lm-button {
		transition: none;
	}
}
