/* Fat to Fit Journey (fat-to-fit.php) */

.ftf-hero {
	position: relative;
	overflow: clip;
	background: var(--fitelo-color-white, #fff);
	padding: clamp(40px, 6vw, 84px) 0;
}

.ftf-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(1200px 600px at 15% 20%, rgba(246, 163, 55, 0.18), rgba(246, 163, 55, 0) 60%),
		radial-gradient(900px 500px at 85% 85%, rgba(72, 213, 174, 0.18), rgba(72, 213, 174, 0) 60%),
		radial-gradient(700px 350px at 65% 20%, rgba(47, 49, 59, 0.06), rgba(47, 49, 59, 0) 55%);
	filter: blur(0px);
	pointer-events: none;
}

.ftf-hero__container {
	position: relative;
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
}

.ftf-hero__grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: clamp(22px, 4vw, 56px);
}

.ftf-hero__content {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 700ms ease, transform 700ms ease;
}

.ftf-hero--visible .ftf-hero__content {
	opacity: 1;
	transform: translateY(0);
}

.ftf-hero__title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	letter-spacing: -0.02em;
	font-size: clamp(30px, 3.5vw, 52px);
	line-height: 1.08;
	color: var(--fitelo-color-charcoal, #2F313B);
	margin: 0 0 14px;
	max-width: 18ch;
}

.ftf-hero__highlight {
	position: relative;
	display: inline-block;
	color: var(--fitelo-color-charcoal, #2F313B);
}

.ftf-hero__highlight::after {
	content: "";
	position: absolute;
	left: -0.05em;
	right: -0.05em;
	bottom: 0.05em;
	height: 0.55em;
	background: rgba(246, 163, 55, 0.36);
	border-radius: 999px;
	z-index: -1;
	transform: rotate(-1.2deg);
}

.ftf-hero__desc {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-size: 16.5px;
	line-height: 1.75;
	color: rgba(47, 49, 59, 0.78);
	margin: 0 0 22px;
	max-width: 60ch;
}

.ftf-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 18px;
	border-radius: 999px;
	text-decoration: none;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	letter-spacing: 0.01em;
	color: var(--fitelo-color-charcoal, #2F313B);
	background: var(--fitelo-color-honey-orange, #F6A337);
	box-shadow: 0 18px 40px rgba(246, 163, 55, 0.28);
	transition: transform 200ms ease, box-shadow 200ms ease, filter 200ms ease;
}

.ftf-hero__cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 22px 55px rgba(246, 163, 55, 0.34);
	filter: saturate(1.02);
}

.ftf-hero__cta:active {
	transform: translateY(0);
}

.ftf-hero__media {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 700ms ease 90ms, transform 700ms ease 90ms;
}

.ftf-hero--visible .ftf-hero__media {
	opacity: 1;
	transform: translateY(0);
}

.ftf-hero__media-card {
	position: relative;
	border-radius: 24px;
	padding: 16px;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(47, 49, 59, 0.10);
	box-shadow:
		0 28px 80px rgba(47, 49, 59, 0.16),
		0 1px 0 rgba(255, 255, 255, 0.75) inset;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.ftf-hero__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
	background: #FFE6CF;
	box-shadow: 0 18px 50px rgba(47, 49, 59, 0.16);
	transform: translateZ(0);
	animation: ftf-float 6.5s ease-in-out infinite;
}

@keyframes ftf-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

@media (max-width: 980px) {
	.ftf-hero__grid {
		grid-template-columns: 1fr;
	}

	.ftf-hero__title {
		max-width: 22ch;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ftf-hero__content,
	.ftf-hero__media {
		transition: none;
		transform: none;
		opacity: 1;
	}

	.ftf-hero__img {
		animation: none;
	}

	.ftf-hero__cta {
		transition: none;
	}
}

/* Section 2: Your Personalized Weight Loss Toolkit */

.ftf-toolkit {
	background: #F9F4F1;
	padding: 120px 0;
	overflow: clip;
}

.ftf-toolkit__container {
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
}

.ftf-toolkit__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
}

.ftf-toolkit__content,
.ftf-toolkit__media {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 600ms ease, transform 600ms ease;
}

.ftf-toolkit--visible .ftf-toolkit__content,
.ftf-toolkit--visible .ftf-toolkit__media {
	opacity: 1;
	transform: translateY(0);
}

.ftf-toolkit__title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 40px;
	line-height: 1.3;
	color: #2F313B;
	margin: 0;
	max-width: 480px;
}

.ftf-toolkit__rows {
	margin-top: 24px;
	display: grid;
	gap: 18px;
}

.ftf-toolkit__row {
	display: grid;
	grid-template-columns: 10px 1fr;
	gap: 14px;
	align-items: start;
}

.ftf-toolkit__icon {
	display: inline-flex;
	width: 10px;
	height: 10px;
	margin-top: 6px;
}

.ftf-toolkit__text {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.7;
	color: #4B5563;
	margin: 0;
}

.ftf-toolkit__card {
	position: relative;
	background: #FFFFFF;
	padding: 14px;
	border-radius: 24px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
}

.ftf-toolkit__image-wrap {
	border-radius: 20px;
	overflow: hidden;
	background: #FFFFFF;
}

.ftf-toolkit__img {
	display: block;
	width: 100%;
	height: 380px;
	object-fit: cover;
	border-radius: 20px;
	transition: transform 0.4s ease;
	transform: scale(1);
}

.ftf-toolkit__card:hover .ftf-toolkit__img {
	transform: scale(1.04);
}

@media (max-width: 980px) {
	.ftf-toolkit {
		padding: 90px 0;
	}

	.ftf-toolkit__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

@media (max-width: 640px) {
	.ftf-toolkit__title {
		font-size: 30px;
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}

	.ftf-toolkit__rows {
		justify-items: center;
	}

	.ftf-toolkit__row {
		width: min(560px, 100%);
	}

	.ftf-toolkit__text {
		text-align: left;
	}

	.ftf-toolkit__img {
		height: 260px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ftf-toolkit__content,
	.ftf-toolkit__media {
		transition: none;
		transform: none;
		opacity: 1;
	}

	.ftf-toolkit__img {
		transition: none;
	}
}

/* Section 3: Macro Calculator */

.ftf-macro {
	background: #F9F4F1;
	padding: 120px 0;
	position: relative;
	overflow: clip;
}

.ftf-macro__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(900px 520px at 15% 25%, rgba(255, 134, 67, 0.18), rgba(255, 134, 67, 0) 62%),
		radial-gradient(820px 520px at 85% 80%, rgba(153, 232, 211, 0.20), rgba(153, 232, 211, 0) 60%),
		linear-gradient(180deg, rgba(255,255,255,0.0), rgba(255,255,255,0.35));
	pointer-events: none;
}

.ftf-macro__container {
	position: relative;
	width: min(1100px, calc(100% - 40px));
	margin: 0 auto;
}

.ftf-macro__title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 36px;
	color: #2F313B;
	text-align: center;
	margin: 0;
}

.ftf-macro__subtitle {
	margin: 10px auto 50px;
	max-width: 60ch;
	text-align: center;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.7;
	color: rgba(47, 49, 59, 0.72);
}

.ftf-macro__card {
	background: #FFFFFF;
	border-radius: 24px;
	padding: 40px;
	box-shadow: 0 20px 50px rgba(0,0,0,0.08);
	border: 1px solid rgba(47, 49, 59, 0.06);
	position: relative;
}

.ftf-macro__header {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 600ms ease, transform 600ms ease;
}

.ftf-macro__card {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 600ms ease, transform 600ms ease;
}

.ftf-macro--visible .ftf-macro__header,
.ftf-macro--visible .ftf-macro__card {
	opacity: 1;
	transform: translateY(0);
}

.ftf-macro__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 40px;
}

.ftf-macro__left {
	padding-right: 28px;
	border-right: 1px solid rgba(229, 231, 235, 0.9);
}

.ftf-macro__panel-title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 16px;
	color: #2F313B;
	letter-spacing: 0.01em;
	margin: 0 0 6px;
}

.ftf-macro__panel-note {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 13.5px;
	line-height: 1.6;
	color: rgba(75, 85, 99, 0.9);
	margin: 0 0 18px;
}

.ftf-macro__form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.ftf-macro__field {
	display: grid;
	gap: 8px;
}

.ftf-macro__field--span2 {
	grid-column: 1 / -1;
}

.ftf-macro__label-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ftf-macro__label {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 14px;
	color: #2F313B;
}

.ftf-macro__toggle {
	display: inline-flex;
	background: rgba(47, 49, 59, 0.06);
	border-radius: 999px;
	padding: 4px;
	gap: 4px;
	border: 1px solid rgba(47,49,59,0.06);
}

.ftf-macro__toggle-btn {
	border: 0;
	background: transparent;
	border-radius: 999px;
	padding: 6px 10px;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 12px;
	color: rgba(47,49,59,0.78);
	cursor: pointer;
	transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}

.ftf-macro__toggle-btn--active {
	background: #FFFFFF;
	color: #2F313B;
	box-shadow: 0 8px 18px rgba(0,0,0,0.08);
}

.ftf-macro__input {
	height: 44px;
	border: 1px solid #E5E7EB;
	border-radius: 10px;
	padding: 0 12px;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 14.5px;
	color: #2F313B;
	outline: none;
	background: #FFFFFF;
	transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

.ftf-macro__input:focus {
	border-color: #FF8643;
	box-shadow: 0 0 0 4px rgba(255, 134, 67, 0.18);
}

.ftf-macro__submit {
	grid-column: 1 / -1;
	margin-top: 10px;
	height: 50px;
	border: 0;
	border-radius: 30px;
	background: #99E8D3;
	color: #2F313B;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	transition: transform 200ms ease, box-shadow 200ms ease, filter 200ms ease;
	box-shadow: 0 18px 40px rgba(153, 232, 211, 0.35);
}

.ftf-macro__submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 22px 55px rgba(153, 232, 211, 0.42);
	filter: saturate(1.02);
}

.ftf-macro__right {
	padding-left: 4px;
}

.ftf-macro__result-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.ftf-macro__error {
	grid-column: 1 / -1;
	margin: 8px 0 0;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 600;
	font-size: 13px;
	color: #B42318;
}

.ftf-macro__result-title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 18px;
	color: #2F313B;
	margin-bottom: 0;
}

.ftf-macro__pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 7px 10px;
	border-radius: 999px;
	background: rgba(255, 134, 67, 0.12);
	border: 1px solid rgba(255, 134, 67, 0.20);
	color: rgba(47, 49, 59, 0.86);
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 12px;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.ftf-macro__results {
	display: grid;
	gap: 12px;
}

.ftf-macro__result-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 15px;
	color: #4B5563;
	padding: 10px 12px;
	border-radius: 14px;
	background: rgba(249, 244, 241, 0.7);
	border: 1px solid rgba(229, 231, 235, 0.85);
}

.ftf-macro__result-row strong {
	color: #2F313B;
	font-weight: 800;
}

.ftf-macro__unit {
	font-weight: 700;
	font-size: 12px;
	color: rgba(75, 85, 99, 0.85);
	margin-left: 4px;
}

.ftf-macro__chart {
	margin-top: 18px;
	padding-top: 10px;
	border-top: 1px solid rgba(229, 231, 235, 0.9);
	background: rgba(255,255,255,0.6);
	border-radius: 18px;
	padding: 16px 14px 14px;
	box-shadow: 0 18px 40px rgba(47, 49, 59, 0.06);
}

.ftf-macro__chart canvas {
	display: block;
	width: 100%;
	max-width: 360px;
	margin: 0 auto;
}

@media (max-width: 980px) {
	.ftf-macro__grid {
		grid-template-columns: 1fr;
	}

	.ftf-macro__left {
		padding-right: 0;
		border-right: 0;
		padding-bottom: 18px;
		border-bottom: 1px solid rgba(229, 231, 235, 0.9);
	}
}

@media (max-width: 640px) {
	.ftf-macro__card {
		padding: 20px;
	}

	.ftf-macro__form {
		grid-template-columns: 1fr;
	}

	.ftf-macro__field--span2 {
		grid-column: auto;
	}

	.ftf-macro__label-row {
		flex-wrap: wrap;
	}

	.ftf-macro__chart canvas {
		max-width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ftf-macro__toggle-btn,
	.ftf-macro__input,
	.ftf-macro__submit {
		transition: none;
	}
}

/* Section 4: Resource Library */

.ftf-library {
	background: #F9F4F1;
	padding: 100px 0;
	position: relative;
	overflow: clip;
}

.ftf-library::before,
.ftf-library::after {
	content: "";
	position: absolute;
	width: 520px;
	height: 520px;
	filter: blur(140px);
	opacity: 1;
	pointer-events: none;
}

.ftf-library::before {
	top: -140px;
	right: -160px;
	background: rgba(255,134,67,0.18);
}

.ftf-library::after {
	bottom: -160px;
	left: -180px;
	background: rgba(153,232,211,0.18);
}

.ftf-library__container {
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
	position: relative;
}

.ftf-library__glass {
	max-width: 900px;
	margin: 0 auto;
	border-radius: 26px;
	padding: clamp(18px, 2.4vw, 28px);
	background: rgba(255, 255, 255, 0.62);
	border: 1px solid rgba(47, 49, 59, 0.10);
	box-shadow:
		0 30px 80px rgba(47, 49, 59, 0.12),
		0 1px 0 rgba(255,255,255,0.85) inset;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 600ms ease, transform 600ms ease;
}

.ftf-library--visible .ftf-library__glass {
	opacity: 1;
	transform: translateY(0);
}

.ftf-library__cta {
	display: flex;
	justify-content: center;
	margin-bottom: 40px;
}

.ftf-library__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #99E8D3;
	color: #2F313B;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 14px;
	padding: 10px 22px;
	border-radius: 30px;
	text-decoration: none;
	box-shadow: 0 18px 40px rgba(153, 232, 211, 0.35);
	transition: transform 200ms ease, box-shadow 200ms ease, filter 200ms ease;
}

.ftf-library__cta-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 22px 55px rgba(153, 232, 211, 0.42);
	filter: saturate(1.02);
}

.ftf-library__cta-icon {
	display: inline-flex;
}

.ftf-library__title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 32px;
	line-height: 1.2;
	color: #2F313B;
	text-align: center;
	margin: 0;
}

.ftf-library__head {
	margin-bottom: 18px;
}

.ftf-library__subtitle {
	margin: 10px auto 18px;
	max-width: 64ch;
	text-align: center;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 14.5px;
	line-height: 1.7;
	color: rgba(47, 49, 59, 0.70);
}

.ftf-library__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
	max-width: 700px;
	margin: 0 auto;
}

.ftf-library__card {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #FFFFFF;
	padding: 12px 14px;
	border-radius: 10px;
	border: 1px solid #E5E7EB;
	text-decoration: none;
	color: #2F313B;
	transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
	opacity: 0;
	transform: translateY(30px);
}

.ftf-library__card:hover {
	background: #FFF4ED;
	border-color: #FF8643;
	transform: translateY(-2px);
	box-shadow: 0 16px 30px rgba(0,0,0,0.06);
}

.ftf-library__card:focus-visible {
	outline: none;
	border-color: rgba(255, 134, 67, 0.55);
	box-shadow:
		0 16px 30px rgba(0,0,0,0.06),
		0 0 0 4px rgba(255, 134, 67, 0.18);
}

.ftf-library__card.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.ftf-library__icon {
	width: 28px;
	height: 28px;
	background: #FF8643;
	border-radius: 6px;
	color: #FFFFFF;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.ftf-library__icon--yt {
	background: #2F313B;
}

.ftf-library__text {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 14px;
	color: #2F313B;
}

@media (max-width: 640px) {
	.ftf-library__glass {
		max-width: 100%;
	}

	.ftf-library__grid {
		grid-template-columns: 1fr;
		max-width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ftf-library__cta-btn,
	.ftf-library__card {
		transition: none;
	}

	.ftf-library__card {
		opacity: 1;
		transform: none;
	}
}

/* Section 5: Be Part of Mac’s 100-Day Transformation */

.ftf-join {
	background: linear-gradient(120deg, #F9F4F1 0%, #FFE6CF 60%, #F9F4F1 100%);
	padding: 120px 0;
	position: relative;
	overflow: clip;
}

.ftf-join__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(860px 560px at 84% 10%, rgba(255, 134, 67, 0.20), rgba(255, 134, 67, 0) 60%),
		radial-gradient(860px 560px at 10% 92%, rgba(153, 232, 211, 0.20), rgba(153, 232, 211, 0) 60%);
	filter: blur(0px);
	pointer-events: none;
}

.ftf-join__bg::before,
.ftf-join__bg::after {
	content: "";
	position: absolute;
	width: 520px;
	height: 520px;
	filter: blur(160px);
	pointer-events: none;
}

.ftf-join__bg::before {
	top: -180px;
	right: -180px;
	background: rgba(255,134,67,0.2);
}

.ftf-join__bg::after {
	bottom: -200px;
	left: -200px;
	background: rgba(153,232,211,0.2);
}

.ftf-join__container {
	position: relative;
	width: min(1200px, calc(100% - 40px));
	margin: 0 auto;
}

.ftf-join__header {
	text-align: center;
	margin-bottom: 60px;
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 700ms ease, transform 700ms ease;
}

.ftf-join--visible .ftf-join__header {
	opacity: 1;
	transform: translateY(0);
}

.ftf-join__title {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 42px;
	line-height: 1.2;
	color: #2F313B;
	margin: 0 0 10px;
	letter-spacing: 0.01em;
}

.ftf-join__accent {
	display: block;
	width: 80px;
	height: 4px;
	background: #FF8643;
	border-radius: 999px;
	margin: 16px auto 0;
	box-shadow: 0 14px 36px rgba(255, 134, 67, 0.28);
}

.ftf-join__desc {
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.7;
	color: #6B7280;
	max-width: 700px;
	margin: 0 auto 70px;
}

.ftf-join__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 90px;
	align-items: center;
}

.ftf-join__media {
	position: relative;
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 700ms ease 80ms, transform 700ms ease 80ms;
}

.ftf-join--visible .ftf-join__media {
	opacity: 1;
	transform: translateY(0);
}

.ftf-join__image-card {
	position: relative;
	width: min(380px, 100%);
	margin: 0 auto;
	background: rgba(255,255,255,0.95);
	padding: 20px;
	border-radius: 24px;
	box-shadow: 0 25px 60px rgba(0,0,0,0.12);
	border: 1px solid rgba(47, 49, 59, 0.06);
	overflow: hidden;
	animation: ftf-join-float 5s ease-in-out infinite;
}

.ftf-join__image-glow {
	position: absolute;
	inset: -40px;
	background:
		radial-gradient(240px 220px at 30% 25%, rgba(255, 134, 67, 0.22), rgba(255, 134, 67, 0) 60%),
		radial-gradient(260px 220px at 70% 70%, rgba(153, 232, 211, 0.22), rgba(153, 232, 211, 0) 62%);
	filter: blur(10px);
	pointer-events: none;
}

.ftf-join__img {
	position: relative;
	width: 100%;
	display: block;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 18px 40px rgba(47, 49, 59, 0.16));
}

@keyframes ftf-join-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}

.ftf-join__dot {
	position: absolute;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #FF3B30;
	top: 10px;
	right: 18%;
	box-shadow: 0 16px 34px rgba(255, 59, 48, 0.35);
}

.ftf-join__mint {
	position: absolute;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: rgba(153, 232, 211, 0.95);
	left: 10%;
	bottom: 8%;
	box-shadow: 0 18px 44px rgba(153, 232, 211, 0.35);
}

.ftf-join__blob {
	position: absolute;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(255, 134, 67, 0.18);
	filter: blur(36px);
	right: 6%;
	bottom: 0;
	pointer-events: none;
}

.ftf-join__card {
	background: rgba(255,255,255,0.75);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: 24px;
	padding: 40px;
	border: 1px solid rgba(255,255,255,0.4);
	box-shadow: 0 30px 70px rgba(0,0,0,0.10);
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 700ms ease 120ms, transform 700ms ease 120ms, box-shadow 300ms ease, background 300ms ease;
}

.ftf-join--visible .ftf-join__card {
	opacity: 1;
	transform: translateY(0);
}

.ftf-join__card:hover {
	transform: translateY(-5px);
}

.ftf-join__form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.ftf-join__field--full {
	grid-column: 1 / -1;
}

.ftf-join__label {
	display: block;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.02em;
	color: #6B7280;
	margin-bottom: 4px;
}

.ftf-join__input {
	width: 100%;
	border: none;
	border-bottom: 1px solid #D1D5DB;
	padding: 12px 0;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 15px;
	color: #2F313B;
	background: transparent;
	outline: none;
	transition: border-bottom-color 250ms ease, box-shadow 250ms ease, transform 250ms ease;
	appearance: none;
}

select.ftf-join__input {
	padding-right: 24px;
	background-image:
		linear-gradient(45deg, transparent 50%, rgba(47,49,59,0.7) 50%),
		linear-gradient(135deg, rgba(47,49,59,0.7) 50%, transparent 50%);
	background-position:
		calc(100% - 14px) 18px,
		calc(100% - 9px) 18px;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

.ftf-join__input:focus {
	border-bottom: 2px solid #FF8643;
	box-shadow: 0 4px 10px rgba(255,134,67,0.15);
	transform: scale(1.01);
}

.ftf-join__phone {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	align-items: end;
}

.ftf-join__prefix {
	border-bottom: 1px solid #D1D5DB;
	padding: 12px 0;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 14px;
	color: rgba(47, 49, 59, 0.8);
}

.ftf-join__input--phone {
	border-bottom: 1px solid #D1D5DB;
}

.ftf-join__error {
	margin: 6px 0 0;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 600;
	font-size: 12px;
	color: #B42318;
}

.ftf-join__field.has-error .ftf-join__input,
.ftf-join__field.has-error .ftf-join__prefix {
	border-bottom-color: #B42318;
}

.ftf-join__terms {
	grid-column: 1 / -1;
	margin: 12px 0 0;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 500;
	font-size: 12px;
	color: #6B7280;
	line-height: 1.6;
}

.ftf-join__submit {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: 16px;
	background: linear-gradient(135deg,#99E8D3,#7ED6C4);
	color: #2F313B;
	border: none;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 800;
	font-size: 15px;
	padding: 15px;
	border-radius: 40px;
	cursor: pointer;
	transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
	box-shadow: 0 12px 30px rgba(0,0,0,0.15);
	position: relative;
	overflow: hidden;
}

.ftf-join__submit:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px rgba(0,0,0,0.20);
	filter: saturate(1.02);
}

.ftf-join__submit .ftf-join__ripple {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(circle at var(--x, 50%) var(--y, 50%), rgba(255,255,255,0.75), rgba(255,255,255,0) 40%);
	opacity: 0;
	transition: opacity 450ms ease;
}

.ftf-join__submit.is-rippling .ftf-join__ripple {
	opacity: 1;
}

.ftf-join__success {
	grid-column: 1 / -1;
	margin: 10px 0 0;
	font-family: var(--fitelo-font-sans, Satoshi, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
	font-weight: 700;
	font-size: 13px;
	color: rgba(22, 163, 74, 0.95);
}

@media (max-width: 980px) {
	.ftf-join__grid {
		grid-template-columns: 1fr;
		gap: 50px;
	}
}

@media (max-width: 640px) {
	.ftf-join__title {
		font-size: 30px;
	}

	.ftf-join__form {
		grid-template-columns: 1fr;
	}

	.ftf-join__card {
		padding: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ftf-join__header,
	.ftf-join__media,
	.ftf-join__card,
	.ftf-join__submit {
		transition: none;
		transform: none;
		opacity: 1;
	}

	.ftf-join__image-card {
		animation: none;
	}
}

