/* SingleMeetSingle Full Member landing page. */

.sms-membership-page {
	background: #f8f9fb;
}

.sms-membership-page .right_br_full_container,
.sms-membership-page .page_title {
	display: none !important;
}

.sms-membership-page #layout,
.sms-membership-page .page_content,
.sms-membership-page .content,
.sms-membership-page .cz_content,
.sms-membership-page .cz_is_blank,
.sms-membership-page .cz_post_content,
.sms-membership-page #wpb-content-root {
	min-width: 0;
}

.sms-membership-page .page_content {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Keep WPBakery rows inside the width that remains beside the fixed menu. */
.sms-membership-page .page_content > .row,
.sms-membership-page .cz_is_blank,
.sms-membership-page .cz_post_content,
.sms-membership-page #wpb-content-root,
.sms-membership-page #wpb-content-root > .vc_row {
	left: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.sms-membership-page #wpb-content-root > .vc_row > .wpb_column,
.sms-membership-page #wpb-content-root > .vc_row > .wpb_column > .vc_column-inner,
.sms-membership-page #wpb-content-root > .vc_row > .wpb_column > .vc_column-inner > .wpb_wrapper {
	width: 100% !important;
	max-width: 100% !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

.sms-membership,
.sms-membership * {
	box-sizing: border-box;
}

.sms-membership {
	--membership-text: #172033;
	--membership-muted: #747f93;
	--membership-border: #e6e8ee;
	--membership-purple: #7538f1;
	--membership-turquoise: #09cdb8;
	position: relative;
	left: auto;
	width: 100%;
	max-width: 100%;
	margin: 0;
	background: #f8f9fb;
	color: var(--membership-text);
	overflow: hidden;
}

.sms-membership-hero {
	position: relative;
	display: flex;
	min-height: 330px;
	padding: 62px 28px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	background:
		radial-gradient(circle at 16% 8%, rgba(61, 255, 221, .22), transparent 34%),
		linear-gradient(135deg, #09c9b7 0%, #348edc 52%, #7938f0 100%);
	color: #fff;
	text-align: center;
	overflow: hidden;
}

.sms-membership-hero::before,
.sms-membership-hero::after {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 50%;
	content: "";
}

.sms-membership-hero::before {
	top: -200px;
	right: -70px;
	width: 520px;
	height: 520px;
}

.sms-membership-hero::after {
	bottom: -300px;
	left: -100px;
	width: 500px;
	height: 500px;
}

.sms-membership-badge {
	position: relative;
	z-index: 1;
	display: inline-flex;
	min-height: 36px;
	padding: 7px 18px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, .52);
	border-radius: 999px;
	background: rgba(255, 255, 255, .13);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .01em;
	backdrop-filter: blur(4px);
}

.sms-membership-hero h1 {
	position: relative;
	z-index: 1;
	margin: 24px 0 0;
	color: #fff;
	font-size: clamp(35px, 5vw, 58px);
	font-weight: 850;
	letter-spacing: -.045em;
	line-height: 1.05;
}

.sms-membership-hero p {
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin: 17px 0 0;
	color: rgba(255, 255, 255, .88);
	font-size: clamp(17px, 2vw, 22px);
	line-height: 1.55;
}

.sms-membership-body {
	width: min(100% - 40px, 1160px);
	margin: 0 auto;
	padding: 38px 0 80px;
}

.sms-membership-benefit-grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	align-items: stretch;
	gap: 24px;
}

.sms-membership-card {
	overflow: hidden;
	border: 1px solid var(--membership-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(28, 37, 55, .055);
}

.sms-membership-card h2 {
	margin: 0;
	padding: 18px 22px;
	border-bottom: 1px solid #eceef2;
	color: #687387;
	font-size: 15px;
	font-weight: 850;
	letter-spacing: .015em;
	line-height: 1.3;
}

.sms-membership-card ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sms-membership-current ul {
	display: grid;
	height: calc(100% - 58px);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sms-membership-current li {
	position: relative;
	display: flex;
	min-height: 105px;
	padding: 22px 22px 22px 54px;
	align-items: center;
	border-bottom: 1px solid #f0f1f4;
	color: #788296;
	font-size: 15px;
	line-height: 1.4;
}

.sms-membership-current li:nth-child(odd) {
	border-right: 1px solid #f0f1f4;
}

.sms-membership-current li:nth-last-child(-n+2) {
	border-bottom: 0;
}

.sms-membership-current li::before {
	position: absolute;
	left: 23px;
	color: #14ce69;
	font-size: 23px;
	font-weight: 850;
	content: "✓";
}

.sms-membership-full {
	border: 2px solid var(--membership-purple);
	background: linear-gradient(145deg, #fff 0%, #faf8ff 100%);
	box-shadow: 0 11px 32px rgba(117, 56, 241, .1);
}

.sms-membership-full h2 {
	border-color: #ded4ff;
	background: rgba(117, 56, 241, .045);
	color: var(--membership-purple);
}

.sms-membership-full li {
	display: grid;
	min-height: 64px;
	padding: 15px 21px;
	grid-template-columns: 29px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid #e6e1f2;
	color: #4b586e;
	font-size: 15px;
	line-height: 1.4;
}

.sms-membership-full li:last-child {
	border-bottom: 0;
}

.sms-membership-full li span {
	font-size: 19px;
	text-align: center;
}

.sms-membership-proof {
	margin-top: 28px;
}

.sms-membership-rating {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
}

.sms-membership-rating > span {
	color: #ffb000;
	font-size: 19px;
	letter-spacing: 1px;
}

.sms-membership-rating strong {
	font-weight: 850;
}

.sms-membership-rating small {
	color: #a0a8b6;
	font-size: 14px;
}

.sms-membership-quotes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 15px;
}

.sms-membership-quotes blockquote {
	display: grid;
	min-width: 0;
	min-height: 112px;
	margin: 0;
	padding: 20px;
	grid-template-columns: 54px minmax(0, 1fr);
	align-items: center;
	gap: 15px;
	border: 1px solid var(--membership-border);
	border-radius: 19px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(28, 37, 55, .04);
}

.sms-member-avatar {
	display: inline-flex;
	width: 54px;
	height: 54px;
	align-items: center;
	justify-content: center;
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px #e3e6ec;
	color: #fff;
	font-size: 20px;
	font-weight: 800;
}

.sms-member-avatar--sandra {
	background: linear-gradient(145deg, #ef6a8b, #8b2248);
}

.sms-member-avatar--michel {
	background: linear-gradient(145deg, #41a5bc, #29446a);
}

.sms-membership-quotes strong {
	display: block;
	color: #354156;
	font-size: 14px;
	font-weight: 800;
}

.sms-membership-quotes p {
	margin: 4px 0 0;
	color: #748095;
	font-size: 13px;
	line-height: 1.45;
}

.sms-membership-plans {
	margin-top: 44px;
}

.sms-membership-plans > h2 {
	margin: 0 0 17px;
	color: var(--membership-text);
	font-size: 24px;
	font-weight: 850;
	letter-spacing: -.025em;
}

.sms-membership-plan-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 17px;
}

.sms-membership-plan {
	position: relative;
	display: grid;
	min-width: 0;
	min-height: 180px;
	padding: 25px 22px;
	grid-template-columns: 24px minmax(0, 1fr);
	align-content: center;
	gap: 15px;
	border: 2px solid #e0e3e9;
	border-radius: 20px;
	background: #fff;
	cursor: pointer;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.sms-membership-plan:hover {
	border-color: #b8a0f8;
	transform: translateY(-2px);
}

.sms-membership-plan.is-selected,
.sms-membership-plan:has(input:checked) {
	border-color: var(--membership-purple);
	background: linear-gradient(145deg, #fff 0%, #f7f3ff 100%);
	box-shadow: 0 11px 26px rgba(117, 56, 241, .12);
}

.sms-membership-plan > input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.sms-plan-radio {
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 3px solid #d3d7df;
	border-radius: 50%;
	background: #fff;
}

.sms-membership-plan.is-selected .sms-plan-radio,
.sms-membership-plan:has(input:checked) .sms-plan-radio {
	border: 7px solid var(--membership-purple);
}

.sms-plan-copy {
	display: flex;
	min-width: 0;
	flex-wrap: wrap;
	align-content: flex-start;
	align-items: center;
	gap: 6px 8px;
}

.sms-plan-copy > strong {
	color: var(--membership-text);
	font-size: 19px;
	font-weight: 850;
}

.sms-plan-copy > em {
	display: inline-flex;
	padding: 4px 8px;
	border-radius: 999px;
	background: linear-gradient(100deg, #11c5b7, #5880ec);
	color: #fff;
	font-size: 10px;
	font-style: normal;
	font-weight: 800;
	line-height: 1;
}

.sms-membership-plan.is-deal .sms-plan-copy > em {
	background: #ff9f0b;
}

.sms-plan-copy > small,
.sms-plan-copy > b {
	flex: 0 0 auto;
	font-size: 12px;
	line-height: 1.2;
}

.sms-plan-copy > small {
	color: #abb2bf;
}

.sms-plan-copy > b {
	color: #0dc455;
	font-weight: 800;
}

.sms-plan-price {
	display: flex;
	margin-top: 18px;
	grid-column: 1 / -1;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
}

.sms-plan-price strong {
	color: #151d2d;
	font-size: 25px;
	font-weight: 850;
	letter-spacing: -.02em;
}

.sms-plan-price small {
	color: #a9b0be;
	font-size: 11px;
}

.sms-membership-renewal {
	max-width: 780px;
	margin: 20px auto 0;
	color: #a2abb9;
	font-size: 12px;
	line-height: 1.55;
	text-align: center;
}

.sms-membership-action {
	max-width: 590px;
	margin: 32px auto 0;
	text-align: center;
}

.sms-membership-cta {
	display: flex;
	width: 100%;
	min-height: 64px;
	padding: 16px 22px;
	align-items: center;
	justify-content: center;
	border-radius: 15px;
	background: linear-gradient(105deg, #09cdb8 0%, #3b92df 48%, #7538f1 100%);
	box-shadow: 0 12px 27px rgba(74, 83, 219, .22);
	color: #fff !important;
	font-size: 19px;
	font-weight: 850;
	line-height: 1.25;
	text-decoration: none;
}

.sms-membership-cta:hover,
.sms-membership-cta:focus-visible {
	box-shadow: 0 14px 33px rgba(74, 83, 219, .3);
	color: #fff !important;
	transform: translateY(-1px);
}

.sms-membership-cta.is-disabled {
	cursor: not-allowed;
	filter: saturate(.55);
	opacity: .72;
}

.sms-membership-action > small {
	display: block;
	margin-top: 9px;
	color: #a1a9b7;
	font-size: 11px;
}

.sms-membership-action > p {
	margin: 12px 0 0;
	color: #a1a9b7;
	font-size: 11px;
	line-height: 1.5;
}

.sms-membership-action > p a {
	color: #8d94a4;
	text-decoration: underline;
}

@media (max-width: 960px) {
	.sms-membership-hero {
		min-height: 280px;
	}

	.sms-membership-body {
		width: min(100% - 32px, 760px);
	}

	.sms-membership-benefit-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.sms-membership-plan-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.sms-membership-plan {
		min-height: 112px;
		grid-template-columns: 25px minmax(0, 1fr) auto;
		align-items: center;
	}

	.sms-plan-price {
		margin: 0;
		grid-column: auto;
		align-items: flex-end;
		flex-direction: column;
		justify-content: center;
	}
}

@media (max-width: 620px) {
	.sms-membership-page .page_content,
	.sms-membership-page .content,
	.sms-membership-page .cz_content {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	.sms-membership-hero {
		min-height: 270px;
		padding: 42px 24px;
	}

	.sms-membership-badge {
		min-height: 32px;
		padding: 6px 15px;
		font-size: 12px;
	}

	.sms-membership-hero h1 {
		margin-top: 21px;
		font-size: 32px;
	}

	.sms-membership-hero p {
		margin-top: 13px;
		font-size: 16px;
	}

	.sms-membership-body {
		width: 100%;
		padding: 25px 16px 146px;
	}

	.sms-membership-benefit-grid {
		gap: 17px;
	}

	.sms-membership-card {
		border-radius: 19px;
	}

	.sms-membership-card h2 {
		padding: 15px 16px;
		font-size: 13px;
	}

	.sms-membership-current li {
		min-height: 80px;
		padding: 16px 12px 16px 40px;
		font-size: 13px;
	}

	.sms-membership-current li::before {
		left: 15px;
		font-size: 19px;
	}

	.sms-membership-full li {
		min-height: 58px;
		padding: 13px 15px;
		grid-template-columns: 26px minmax(0, 1fr);
		gap: 8px;
		font-size: 13px;
	}

	.sms-membership-full li span {
		font-size: 17px;
	}

	.sms-membership-proof {
		margin-top: 21px;
	}

	.sms-membership-rating {
		gap: 7px;
	}

	.sms-membership-rating > span {
		font-size: 15px;
	}

	.sms-membership-rating small {
		font-size: 12px;
	}

	.sms-membership-quotes {
		grid-template-columns: minmax(0, 1fr);
		gap: 11px;
		margin-top: 12px;
	}

	.sms-membership-quotes blockquote {
		min-height: 96px;
		padding: 15px;
		grid-template-columns: 47px minmax(0, 1fr);
		gap: 12px;
		border-radius: 17px;
	}

	.sms-member-avatar {
		width: 47px;
		height: 47px;
	}

	.sms-membership-quotes strong {
		font-size: 12px;
	}

	.sms-membership-quotes p {
		font-size: 11px;
	}

	.sms-membership-plans {
		margin-top: 31px;
	}

	.sms-membership-plans > h2 {
		margin-bottom: 13px;
		font-size: 19px;
	}

	.sms-membership-plan-grid {
		gap: 11px;
	}

	.sms-membership-plan {
		min-height: 96px;
		padding: 17px 15px;
		grid-template-columns: 24px minmax(0, 1fr) auto;
		gap: 12px;
		border-radius: 17px;
	}

	.sms-plan-copy {
		gap: 4px 6px;
	}

	.sms-plan-copy > strong {
		font-size: 15px;
	}

	.sms-plan-copy > em {
		padding: 4px 6px;
		font-size: 8px;
	}

	.sms-plan-copy > small,
	.sms-plan-copy > b {
		font-size: 10px;
	}

	.sms-plan-price strong {
		font-size: 20px;
	}

	.sms-plan-price small {
		font-size: 9px;
	}

	.sms-membership-renewal {
		margin-top: 15px;
		font-size: 10px;
	}

	.sms-membership-action {
		position: fixed;
		z-index: 999;
		right: 0;
		bottom: 0;
		left: 0;
		max-width: none;
		margin: 0;
		padding: 13px 16px calc(10px + env(safe-area-inset-bottom));
		border-top: 1px solid #edf0f3;
		background: rgba(255, 255, 255, .96);
		box-shadow: 0 -9px 26px rgba(22, 31, 49, .07);
		backdrop-filter: blur(12px);
	}

	/* Keep the purchase action above the fixed member navigation. Guests do
	 * not receive that navigation and retain the original bottom position. */
	body.logged-in.sms-membership-page .sms-membership-action {
		bottom: calc(73px + env(safe-area-inset-bottom, 0px));
	}

	.sms-membership-cta {
		min-height: 58px;
		font-size: 16px;
	}

	.sms-membership-action > small {
		margin-top: 6px;
		font-size: 9px;
	}

	.sms-membership-action > p {
		display: block;
		margin-top: 5px;
		font-size: 8.5px;
		line-height: 1.3;
	}
}

@media (max-width: 380px) {
	.sms-membership-body {
		padding-right: 12px;
		padding-left: 12px;
	}

	.sms-membership-plan {
		padding-right: 12px;
		padding-left: 12px;
		gap: 9px;
	}

	.sms-plan-copy > strong {
		font-size: 14px;
	}

	.sms-plan-price strong {
		font-size: 18px;
	}
}
