/* ==========================================================================
   Trial CTA
   ========================================================================== */

.tt-trial-cta {
	width: 100%;
	max-width: 1046px;
	margin: 9rem auto 0;
	padding: 0 1rem;
	box-sizing: border-box;
	font-family: var(--typography-font-family, "Plus Jakarta Sans", sans-serif);
}

.tt-trial-cta__inner {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 24px;
}

.tt-trial-cta__visual {
	height: 511px;
	flex: 1;
	border-radius: 24px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: 32px;
	box-sizing: border-box;
	position: relative;
	background:
		radial-gradient(circle at 25% 25%, rgba(81, 83, 232, 0.22), transparent 32%),
		radial-gradient(circle at 75% 35%, rgba(92, 87, 245, 0.18), transparent 34%),
		linear-gradient(135deg, #eeefff 0%, #f8f9fc 100%);
}

.tt-trial-cta__visual-placeholder {
	width: 100%;
	height: 100%;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.45);
	border: 1px solid rgba(255, 255, 255, 0.7);
}

.tt-trial-cta--individual-funding .tt-trial-cta__visual {
	padding: 0;
	background: #f7f7ff;
}

.tt-trial-cta--individual-funding .tt-trial-cta__visual-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.tt-trial-cta__content {
	flex: 1.0894;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-left: 24px;
	gap: 24px;
	box-sizing: border-box;
}

.tt-trial-cta__copy-wrap {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.tt-trial-cta__heading-wrap {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}

.tt-trial-cta__pill {
	height: 32px;
	border-radius: 9999px;
	background: #eeefff;
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	box-sizing: border-box;
	color: #3f41b5;
}

.tt-trial-cta__pill span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
	font-size: var(--typography-font-size-sm, 14px);
	font-weight: 600;
	line-height: 150%;
	white-space: nowrap;
}

.tt-trial-cta__title {
	width: 100%;
	margin: 0;
	color: #1a252f;
	font-size: var(--typography-font-size-3xl, 30px);
	font-style: normal;
	font-weight: 600;
	line-height: 140%;
}

.tt-trial-cta__copy {
	width: 100%;
	margin: 0;
	color: #596977;
	font-size: var(--typography-font-size-md, 16px);
	font-style: normal;
	font-weight: 600;
	line-height: 150%;
}

.tt-trial-cta__badges {
	width: 487px;
	display: none;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 8px;
	color: #1a252f;
}

.tt-trial-cta__badge {
	border-radius: 8px;
	background: #f8f9fc;
	display: flex;
	align-items: center;
	padding: 12px;
	gap: 8px;
	color: #1a252f;
	font-size: var(--typography-font-size-sm, 14px);
	font-weight: 600;
	line-height: 150%;
}

.tt-trial-cta__badge-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #3f41b5;
}

.tt-trial-cta__button {
	min-height: 40px;
	border-radius: 8px;
	background: #5153e8;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 0 12px;
	box-sizing: border-box;
	color: #f7f7ff;
	font-size: var(--typography-font-size-sm, 14px);
	font-weight: 600;
	line-height: 150%;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.tt-trial-cta__button:hover,
.tt-trial-cta__button:focus {
	background: #3f41b5;
	color: #ffffff;
	transform: translateY(-1px);
}

.tt-trial-cta__button-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 6px;
}

.tt-trial-cta__button-icon {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0.6;
}

/* ==========================================================================
   1440px to 1919px viewport
   Available content width: 1040px
   Component is intentionally capped at 1046px
   ========================================================================== */

@media (min-width: 1200px) and (max-width: 1439px) {
	.tt-trial-cta {
		max-width: 1046px;
		margin-top: 9rem;
		padding: 0 1rem;
	}

	.tt-trial-cta__inner {
		flex-direction: row;
		align-items: center;
		gap: 24px;
	}

	.tt-trial-cta__visual {
		height: 511px;
		aspect-ratio: auto;
	}

	.tt-trial-cta__content {
		padding-left: 24px;
	}

	.tt-trial-cta__badges {
		width: 487px;
	}
}

/* ==========================================================================
   1200px to 1439px viewport
   Available content width: 850px
   ========================================================================== */

@media (min-width: 900px) and (max-width: 1199px) {
	.tt-trial-cta {
		max-width: 850px;
		margin-top: 9rem;
		padding: 0;
	}

	.tt-trial-cta__inner {
		flex-direction: row;
		align-items: center;
		gap: 24px;
	}

	.tt-trial-cta__visual {
		height: 413px;
		aspect-ratio: auto;
	}

	.tt-trial-cta__content {
		padding-left: 0;
	}

	.tt-trial-cta__badges {
		width: 100%;
	}
}

/* ==========================================================================
   900px to 1199px viewport
   Available content width: 550px
   ========================================================================== */

@media (min-width: 600px) and (max-width: 899px) {
	.tt-trial-cta {
		max-width: 550px;
		margin-top: 7rem;
		padding: 0;
	}

	.tt-trial-cta__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}

	.tt-trial-cta__visual {
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.tt-trial-cta__content {
		padding-left: 0;
	}

	.tt-trial-cta__badges {
		width: 100%;
	}
}

/* ==========================================================================
   Mobile below 900px
   Outer width: 402px, content width: 362px
   ========================================================================== */

@media (max-width: 599px) {
	.tt-trial-cta {
		max-width: 100%;
		margin-top: 5rem;
		padding: 0 20px;
	}

	.tt-trial-cta__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}

	.tt-trial-cta__visual {
		height: auto;
		aspect-ratio: 4 / 3;
		border-radius: 20px;
		padding: 24px;
	}

	.tt-trial-cta__content {
		padding-left: 0;
	}

	.tt-trial-cta__title {
		font-size: var(--typography-font-size-2xl, 24px);
	}

	.tt-trial-cta__copy {
		font-size: 16px;
	}

	.tt-trial-cta__badges {
		width: 100%;
	}

	.tt-trial-cta__button {
		width: 100%;
	}
}

/* ==========================================================================
   1920px and up viewport
   Available content width: 1260px
   Component is intentionally capped at 1046px
   ========================================================================== */

@media (min-width: 1440px) {
	.tt-trial-cta {
		max-width: 1046px;
		margin-top: 9rem;
		padding: 0;
	}

	.tt-trial-cta__inner {
		flex-direction: row;
		align-items: center;
		gap: 24px;
	}

	.tt-trial-cta__visual {
		height: 511px;
		aspect-ratio: auto;
	}

	.tt-trial-cta__content {
		padding-left: 24px;
	}

	.tt-trial-cta__badges {
		width: 487px;
	}
}

/* ==========================================================================
   Narrow mobile safety
   ========================================================================== */

@media (max-width: 402px) {
	.tt-trial-cta {
		max-width: none;
	}
}
