.tivity-cta {
	--tivity-orange: #ff3600;
	--tivity-teal: #7adbd4;
	--tivity-dark: #424a57;
	--tivity-teal-deep: #00313e;
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.tivity-cta--footer {
	padding-bottom: 72px;
}

.tivity-cta__band {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 100vw;
	height: 160px;
	margin-left: -50vw;
	background: var(--Dark-Teal, var(--tivity-teal-deep));
}

.tivity-cta__card {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	box-sizing: border-box;
	width: 100%;
	max-width: min(1346px, 100%);
	margin-inline: auto;
	padding: 64px 48px;
	border-radius: 20px;
	background: linear-gradient(115deg, #e8fffd 28.79%, #7adbd4 116.74%);
	text-align: center;
}

.tivity-cta--fluid {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
}

.tivity-cta--fluid .tivity-cta__card {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	border-radius: 0;
}

.tivity-cta--teal .tivity-cta__card {
	background: linear-gradient(115deg, #e8fffd 28.79%, #7adbd4 116.74%);
}

.tivity-cta--teal-solid .tivity-cta__card {
	background: var(--Light-Teal, #e8fffd);
}

.tivity-cta--purple .tivity-cta__card {
	background: linear-gradient(279deg, var(--foreverfit-purple, #851f65) 11.73%, #ce99be 92.36%);
}

.tivity-cta--navy .tivity-cta__card {
	background: var(--dark-teal-gradient, linear-gradient(180deg, #00313e 0%, #1e87a1 100%));
}

.tivity-cta__heading,
.tivity-cta__copy {
	margin: 0;
}

.elementor .tivity-cta__heading {
	color: var(--tivity-dark);
	font-family: "Instrument Sans", sans-serif;
	font-size: 60px;
	font-style: normal;
	font-weight: 700;
	line-height: 66px;
	text-align: center;
}

.elementor .tivity-cta__heading--medium {
	font-family: "Instrument Sans", sans-serif;
	font-size: 52px;
	font-style: normal;
	font-weight: 700;
	line-height: 58px;
}

.elementor .tivity-cta--purple .tivity-cta__heading,
.elementor .tivity-cta--navy .tivity-cta__heading,
.elementor .tivity-cta--purple .tivity-cta__copy,
.elementor .tivity-cta--navy .tivity-cta__copy {
	color: #fff;
}

/* GF Orbital: main labels are often <legend class="gfield_label">, not <label>. */
.elementor .tivity-cta--purple .tivity-cta__form .gform_wrapper,
.elementor .tivity-cta--navy .tivity-cta__form .gform_wrapper {
	--gf-ctrl-label-color-primary: #fff;
	--gf-ctrl-label-color-secondary: #fff;
}

.elementor .tivity-cta--purple .tivity-cta__form .gform_wrapper :is(
		label,
		legend,
		.gfield_label,
		.gform-field-label,
		.gform-field-label__text,
		.gsection_title,
		.gform_required_legend,
		.gfield_description
	),
.elementor .tivity-cta--navy .tivity-cta__form .gform_wrapper :is(
		label,
		legend,
		.gfield_label,
		.gform-field-label,
		.gform-field-label__text,
		.gsection_title,
		.gform_required_legend,
		.gfield_description
	),
.elementor .tivity-cta--purple .tivity-cta__form .wpforms-field-label,
.elementor .tivity-cta--navy .tivity-cta__form .wpforms-field-label {
	color: #fff !important;
}

.elementor .tivity-cta__copy {
	max-width: 720px;
	color: var(--tivity-dark);
	font-family: "Instrument Sans", sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 27px;
	text-align: center;
}

.tivity-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 8px;
}

.elementor a.tivity-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: 999px;
	background-color: var(--Orange, var(--tivity-orange));
	color: var(--White, #fff);
	font-family: "Instrument Sans", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.elementor a.tivity-cta__button sup,
.elementor a.tivity-cta__button sub {
	font-size: 0.6em;
	line-height: 0;
}

.elementor a.tivity-cta__button--white {
	background-color: var(--White, #fff);
	color: var(--Dark-Gray, var(--tivity-dark));
}

.elementor a.tivity-cta__button--navy {
	background-color: var(--Dark-Teal, var(--tivity-teal-deep));
	color: var(--White, #fff);
}

.elementor a.tivity-cta__button--teal {
	background-color: var(--Teal, var(--tivity-teal));
	color: var(--Dark-Gray, var(--tivity-dark));
}

.elementor a.tivity-cta__button--light-teal {
	background-color: var(--Light-Teal, #e8fffd);
	color: var(--Dark-Gray, var(--tivity-dark));
}

.elementor a.tivity-cta__button:is(:hover, :focus-visible, :active),
.elementor a.tivity-cta__button--white:is(:hover, :focus-visible, :active),
.elementor a.tivity-cta__button--navy:is(:hover, :focus-visible, :active),
.elementor a.tivity-cta__button--teal:is(:hover, :focus-visible, :active),
.elementor a.tivity-cta__button--light-teal:is(:hover, :focus-visible, :active) {
	border-color: transparent;
	background-color: var(--tivity-dark);
	color: #fff;
}

.tivity-cta__form {
	width: 100%;
	max-width: 640px;
	margin-top: 8px;
	text-align: left;
}

/* Form field chrome: inc/gravity-forms.css (WPForms submit kept for shortcode embeds). */
.elementor .tivity-cta__form .wpforms-submit {
	display: block;
	width: fit-content;
	margin: 8px auto 0;
	padding: 14px 40px;
	border: 1px solid transparent;
	border-radius: 999px;
	background-color: var(--tivity-orange);
	color: #fff;
	font-family: "Instrument Sans", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.elementor .tivity-cta__form .wpforms-submit:is(:hover, :focus-visible) {
	background-color: var(--tivity-dark);
	color: #fff;
}

@media (max-width: 1024px) {
	.tivity-cta__card {
		padding: 40px 24px;
	}

	.elementor .tivity-cta__heading {
		font-size: 40px;
		line-height: 46px;
	}

	.elementor .tivity-cta__heading--medium {
		font-size: 32px;
		line-height: 38px;
	}
}

@media (max-width: 767px) {
	.tivity-cta__card {
		padding: 32px 20px;
	}

	.elementor .tivity-cta__heading {
		font-size: 32px;
		line-height: 38px;
	}

	.elementor .tivity-cta__heading--medium {
		font-size: 28px;
		line-height: 34px;
	}

	.elementor .tivity-cta__copy {
		font-size: 16px;
		line-height: 24px;
	}
}
