.kfl-landing {
	--kfl-accent: #7f9f8e;
	--kfl-button: #b64e3b;
	--kfl-ink: #26352f;
	--kfl-muted: #5f6d67;
	--kfl-soft: #f5f3ed;
	--kfl-accent-soft: #e8f0eb;
	--kfl-card: #ffffff;
	--kfl-border: #d8ded9;
	--kfl-shadow: 0 14px 34px rgba(38, 53, 47, 0.09);
	background: #ffffff;
	color: var(--kfl-ink);
	font-family: inherit;
	font-size: 18px;
	line-height: 1.65;
	overflow: hidden;
}

.kfl-landing *,
.kfl-landing *::before,
.kfl-landing *::after {
	box-sizing: border-box;
}

.kfl-landing img,
.kfl-landing iframe {
	display: block;
	max-width: 100%;
}

.kfl-landing a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.kfl-landing h1,
.kfl-landing h2,
.kfl-landing h3,
.kfl-landing p,
.kfl-landing ul,
.kfl-landing figure,
.kfl-landing blockquote {
	margin-top: 0;
}

.kfl-landing h1,
.kfl-landing h2,
.kfl-landing h3 {
	color: var(--kfl-ink);
	font-family: inherit;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

.kfl-landing h1 {
	font-size: clamp(2.55rem, 5.5vw, 5rem);
	margin-bottom: 1.35rem;
}

.kfl-landing h2 {
	font-size: clamp(2rem, 3.8vw, 3.45rem);
	margin-bottom: 1.25rem;
}

.kfl-landing h3 {
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	margin-bottom: 0.8rem;
}

.kfl-landing p:last-child,
.kfl-landing ul:last-child {
	margin-bottom: 0;
}

.kfl-skip-link {
	background: var(--kfl-ink);
	color: #ffffff;
	left: 1rem;
	padding: 0.7rem 1rem;
	position: absolute;
	top: -10rem;
	z-index: 100;
}

.kfl-skip-link:focus {
	top: 1rem;
}

.kfl-container {
	margin: 0 auto;
	max-width: 1180px;
	padding-left: 28px;
	padding-right: 28px;
	width: 100%;
}

.kfl-narrow {
	max-width: 850px;
}

.kfl-center {
	text-align: center;
}

.kfl-section {
	padding: 96px 0;
	scroll-margin-top: 30px;
}

.kfl-section--soft {
	background: var(--kfl-soft);
}

.kfl-section--accent {
	background: var(--kfl-accent-soft);
}

.kfl-offer-bar {
	background: var(--kfl-ink);
	color: #ffffff;
	font-size: 0.92rem;
}

.kfl-offer-bar__inner {
	align-items: center;
	display: flex;
	gap: 0.65rem;
	justify-content: center;
	min-height: 46px;
	padding-bottom: 8px;
	padding-top: 8px;
	text-align: center;
}

.kfl-offer-bar a {
	color: #ffffff;
	font-weight: 700;
	white-space: nowrap;
}

.kfl-hero {
	background: linear-gradient(145deg, #fbfaf6 0%, #f1f5f2 100%);
	padding-top: 74px;
}

.kfl-split {
	align-items: center;
	display: grid;
	gap: clamp(42px, 7vw, 88px);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kfl-split--hero {
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
}

.kfl-hero__copy {
	position: relative;
	z-index: 2;
}

.kfl-eyebrow {
	color: #526c60;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	margin-bottom: 0.9rem;
	text-transform: uppercase;
}

.kfl-kicker {
	color: var(--kfl-muted);
	font-size: 1.02rem;
	margin-bottom: 1.05rem;
	max-width: 690px;
}

.kfl-lead {
	color: var(--kfl-muted);
	font-size: clamp(1.06rem, 1.7vw, 1.28rem);
	line-height: 1.62;
	margin-bottom: 1.7rem;
	max-width: 690px;
}

.kfl-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 0.85rem;
}

.kfl-button {
	align-items: center;
	background: var(--kfl-button);
	border: 2px solid var(--kfl-button);
	border-radius: 7px;
	box-shadow: 0 10px 24px rgba(96, 36, 27, 0.16);
	color: #ffffff !important;
	cursor: pointer;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1.25;
	min-height: 52px;
	padding: 14px 24px;
	text-align: center;
	text-decoration: none !important;
	transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.kfl-button:hover {
	box-shadow: 0 14px 30px rgba(96, 36, 27, 0.22);
	filter: brightness(0.96);
	transform: translateY(-1px);
}

.kfl-button:focus-visible,
.kfl-text-link:focus-visible,
.kfl-offer-bar a:focus-visible,
.kfl-faq summary:focus-visible {
	outline: 3px solid var(--kfl-accent);
	outline-offset: 3px;
}

.kfl-button--secondary {
	background: transparent;
	box-shadow: none;
	color: var(--kfl-ink) !important;
}

.kfl-button--block {
	width: 100%;
}

.kfl-text-link {
	color: var(--kfl-ink);
	font-weight: 700;
}

.kfl-fineprint,
.kfl-secure-note {
	color: var(--kfl-muted);
	font-size: 0.82rem;
}

.kfl-fineprint {
	margin-bottom: 1.1rem;
}

.kfl-checks {
	list-style: none;
	margin-bottom: 1.5rem;
	padding: 0;
}

.kfl-checks li {
	margin-bottom: 0.65rem;
	padding-left: 1.65rem;
	position: relative;
}

.kfl-checks li::before {
	color: #436e5a;
	content: "✓";
	font-weight: 800;
	left: 0;
	position: absolute;
	top: 0;
}

.kfl-checks--inline {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.88rem;
	gap: 8px 20px;
	margin-top: 1rem;
}

.kfl-checks--inline li {
	margin-bottom: 0;
}

.kfl-checks--large {
	font-size: 1.05rem;
	margin: 0;
}

.kfl-hero__media {
	position: relative;
}

.kfl-hero__media > img {
	aspect-ratio: 5 / 5.2;
	border-radius: 28px 28px 120px 28px;
	box-shadow: var(--kfl-shadow);
	height: auto;
	object-fit: cover;
	width: 100%;
}

.kfl-floating-note {
	background: rgba(255, 255, 255, 0.95);
	border: 1px solid var(--kfl-border);
	border-radius: 12px;
	bottom: 24px;
	box-shadow: var(--kfl-shadow);
	display: grid;
	left: -28px;
	max-width: 290px;
	padding: 16px 18px;
	position: absolute;
}

.kfl-floating-note strong {
	font-size: 0.95rem;
}

.kfl-floating-note span {
	color: var(--kfl-muted);
	font-size: 0.78rem;
}

.kfl-heading {
	margin: 0 auto 46px;
	max-width: 840px;
	text-align: center;
}

.kfl-heading > p:last-child {
	color: var(--kfl-muted);
	font-size: 1.05rem;
}

.kfl-question-list {
	column-gap: 30px;
	columns: 2;
	list-style: none;
	margin: 30px 0;
	padding: 0;
	text-align: left;
}

.kfl-question-list li {
	break-inside: avoid;
	margin: 0 0 12px;
	padding-left: 24px;
	position: relative;
}

.kfl-question-list li::before {
	color: var(--kfl-button);
	content: "?";
	font-weight: 800;
	left: 0;
	position: absolute;
}

.kfl-emphasis {
	color: var(--kfl-ink);
	font-size: 1.1rem;
	font-weight: 700;
}

.kfl-grid {
	display: grid;
	gap: 24px;
}

.kfl-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kfl-grid--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kfl-card,
.kfl-price-card {
	background: var(--kfl-card);
	border: 1px solid var(--kfl-border);
	border-radius: 14px;
	box-shadow: 0 8px 22px rgba(38, 53, 47, 0.06);
	padding: 30px;
}

.kfl-card p {
	color: var(--kfl-muted);
	font-size: 0.94rem;
}

.kfl-icon {
	color: #527966;
	height: 38px;
	margin-bottom: 20px;
	width: 38px;
}

.kfl-step {
	padding-top: 58px;
	position: relative;
}

.kfl-step:first-child {
	background: #f0f5f2;
	border-color: #bdd0c5;
}

.kfl-step__number {
	align-items: center;
	background: var(--kfl-accent);
	border-radius: 999px;
	color: #ffffff;
	display: flex;
	font-size: 0.8rem;
	font-weight: 800;
	height: 32px;
	justify-content: center;
	left: 28px;
	position: absolute;
	top: 20px;
	width: 32px;
}

.kfl-feature {
	min-height: 270px;
}

.kfl-fit-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 auto;
	max-width: 980px;
}

.kfl-fit-item {
	align-items: flex-start;
	background: #ffffff;
	border-bottom: 2px solid #cfdbd4;
	display: flex;
	gap: 13px;
	padding: 18px 8px;
}

.kfl-fit-item .kfl-icon {
	flex: 0 0 auto;
	height: 25px;
	margin: 1px 0 0;
	width: 25px;
}

.kfl-media-frame {
	background: #1d2823;
	border-radius: 18px;
	box-shadow: var(--kfl-shadow);
	overflow: hidden;
}

.kfl-media-frame iframe,
.kfl-media-frame img {
	aspect-ratio: 16 / 10;
	border: 0;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.kfl-media-frame iframe {
	height: 100%;
	min-height: 350px;
}

.kfl-testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.kfl-testimonial blockquote {
	font-size: 1.02rem;
	font-style: normal;
	margin-bottom: 24px;
}

.kfl-testimonial figcaption {
	color: #526c60;
	font-size: 0.88rem;
	font-weight: 700;
}

.kfl-onboarding {
	background: #fbfaf6;
}

.kfl-rounded-image {
	border-radius: 22px;
	box-shadow: var(--kfl-shadow);
	height: auto;
	object-fit: cover;
	width: 100%;
}

.kfl-phase {
	border-top: 5px solid var(--kfl-accent);
	min-height: 280px;
	padding-top: 26px;
}

.kfl-phase > span {
	color: #526c60;
	display: block;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-bottom: 15px;
	text-transform: uppercase;
}

.kfl-pricing {
	align-items: stretch;
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 auto;
	max-width: 920px;
}

.kfl-price-card {
	display: flex;
	flex-direction: column;
	padding: 38px;
	position: relative;
}

.kfl-price-card--featured {
	border: 2px solid var(--kfl-accent);
	box-shadow: var(--kfl-shadow);
	order: -1;
}

.kfl-badge {
	background: var(--kfl-accent);
	border-radius: 999px;
	color: #ffffff;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	padding: 6px 12px;
	position: absolute;
	right: 22px;
	text-transform: uppercase;
	top: 20px;
}

.kfl-price {
	align-items: baseline;
	display: flex;
	gap: 8px;
	margin-bottom: 0.35rem;
}

.kfl-price strong {
	color: var(--kfl-ink);
	font-size: clamp(2.1rem, 4vw, 3rem);
	line-height: 1;
}

.kfl-price span {
	color: var(--kfl-muted);
	font-size: 0.86rem;
}

.kfl-price-card .kfl-checks {
	flex: 1;
	margin-top: 18px;
}

.kfl-secure-note {
	margin: 22px auto 0;
	text-align: center;
}

.kfl-faq {
	border-top: 1px solid var(--kfl-border);
}

.kfl-faq details {
	border-bottom: 1px solid var(--kfl-border);
}

.kfl-faq summary {
	cursor: pointer;
	font-weight: 700;
	list-style: none;
	padding: 20px 46px 20px 0;
	position: relative;
}

.kfl-faq summary::-webkit-details-marker {
	display: none;
}

.kfl-faq summary::after {
	color: #526c60;
	content: "+";
	font-size: 1.5rem;
	font-weight: 400;
	position: absolute;
	right: 8px;
	top: 14px;
}

.kfl-faq details[open] summary::after {
	content: "–";
}

.kfl-faq details p {
	color: var(--kfl-muted);
	padding: 0 46px 22px 0;
}

.kfl-press img {
	filter: grayscale(1);
	margin: 24px auto 0;
	max-height: 110px;
	object-fit: contain;
	opacity: 0.78;
	width: auto;
}

.kfl-final {
	background: linear-gradient(145deg, #f2f6f3 0%, #fbf8f1 100%);
}

.kfl-signoff {
	display: grid;
	margin: 30px 0;
}

.kfl-signoff strong {
	font-size: 1.45rem;
}

.kfl-signoff span {
	color: var(--kfl-muted);
}

@media (max-width: 980px) {
	.kfl-landing {
		font-size: 17px;
	}

	.kfl-section {
		padding: 76px 0;
	}

	.kfl-grid--four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kfl-phase {
		min-height: 0;
	}
}

@media (max-width: 760px) {
	.kfl-container {
		padding-left: 20px;
		padding-right: 20px;
	}

	.kfl-section {
		padding: 60px 0;
	}

	.kfl-hero {
		padding-top: 48px;
	}

	.kfl-split,
	.kfl-split--hero,
	.kfl-grid--three,
	.kfl-pricing {
		grid-template-columns: 1fr;
	}

	.kfl-split {
		gap: 38px;
	}

	.kfl-hero__media {
		margin-top: 8px;
	}

	.kfl-hero__media > img {
		aspect-ratio: 4 / 3;
		border-radius: 22px 22px 70px 22px;
	}

	.kfl-floating-note {
		bottom: 14px;
		left: 14px;
		max-width: calc(100% - 28px);
	}

	.kfl-feature {
		min-height: 0;
	}

	.kfl-question-list {
		columns: 1;
	}

	.kfl-fit-grid {
		grid-template-columns: 1fr;
	}

	.kfl-media-frame iframe {
		min-height: 280px;
	}

	.kfl-onboarding .kfl-rounded-image {
		order: -1;
	}
}

@media (max-width: 540px) {
	.kfl-landing {
		font-size: 16px;
	}

	.kfl-offer-bar__inner {
		align-items: center;
		flex-direction: column;
		gap: 1px;
	}

	.kfl-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.kfl-button,
	.kfl-actions .kfl-text-link {
		text-align: center;
		width: 100%;
	}

	.kfl-checks--inline {
		display: grid;
	}

	.kfl-grid--four {
		grid-template-columns: 1fr;
	}

	.kfl-card,
	.kfl-price-card {
		padding: 25px;
	}

	.kfl-step {
		padding-top: 56px;
	}

	.kfl-price-card {
		padding-top: 36px;
	}

	.kfl-badge {
		right: 16px;
		top: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kfl-landing *,
	.kfl-landing *::before,
	.kfl-landing *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

