/* =========================================================
   Hero (top page first view)
   ========================================================= */

.kb-hero {
	--kb-hero-ink: #1e293b;
	--kb-hero-blue: #1565c0;
	--kb-hero-chip: #4169e1;
	--kb-hero-orange: #f97316;
	position: relative;
	overflow: hidden;
	padding: 40px 0 48px;
	background:
		linear-gradient(rgba(255, 255, 255, .82), rgba(255, 255, 255, .82)) center / cover no-repeat,
		url("../../img/lpb/fv-bg.png") center / cover no-repeat,
		#fff;
}

.kb-hero__inner {
	position: relative;
	z-index: 2;
}

/* Small catch line + category chips */
.kb-hero__lead {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: .8rem;
}
.kb-hero__catch {
	display: block;
	color: var(--kb-hero-blue);
	font-size: .95rem;
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: .02em;
}
.kb-hero__chips {
	display: flex;
	gap: 6px;
}
.kb-hero__chip {
	display: block;
	padding: 2px 10px;
	border-radius: 4px;
	background: var(--kb-hero-chip);
	color: #fff;
	font-size: .85rem;
	font-weight: 800;
	line-height: 1.5;
}

/* Headline */
.kb-hero__title {
	margin: 0 0 1.2rem;
	color: var(--kb-hero-ink);
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: -.02em;
}
.kb-hero__brand {
	display: inline-block;
	color: var(--kb-hero-blue);
	font-style: normal;
}

/* Service area */
.kb-hero__area {
	margin: 0 0 1.2rem;
	color: var(--kb-hero-orange);
	font-size: clamp(1rem, 1.8vw, 1.25rem);
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: -.01em;
}
.kb-hero__pin {
	margin-right: 4px;
	vertical-align: -.125em;
}

/* Crown badges */
.kb-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.kb-hero__badge {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 110px;
	height: 110px;
	padding: 0;
	background: url("../../img/lpb/fv-crown2.png") center / contain no-repeat;
	text-align: center;
}
.kb-hero__badge-text {
	color: var(--kb-hero-ink);
	font-size: 1.18rem;
	font-weight: 900;
	line-height: 1.15;
}
.kb-hero__badge-text b {
	color: var(--kb-hero-blue);
	font-size: 1.1rem;
	font-weight: inherit;
}

/* Trust strip */
.kb-hero__trust {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 10px 20px;
	border: 2px solid #e2e8f0;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .04);
}
.kb-hero__trust-cell {
	display: flex;
	align-items: center;
	gap: 8px;
}
.kb-hero__stamp {
	display: block;
	padding: 2px 8px;
	border: 2px solid var(--kb-hero-ink);
	border-radius: 6px;
	background: #fff;
	font-size: .75rem;
	font-weight: 900;
	line-height: 1.1;
	text-align: center;
}
.kb-hero__trust-strong {
	color: var(--kb-hero-orange);
	font-size: 1.1rem;
	font-weight: 900;
	line-height: 1.5;
}
.kb-hero__trust-sep {
	width: 1px;
	height: 30px;
	background: #cbd5e1;
}
.kb-hero__medal {
	display: block;
	flex: none;
	width: 20px;
	height: 20px;
	margin: 7px 4px 3px 0;
	color: var(--kb-hero-orange);
}
.kb-hero__trust-label {
	color: var(--kb-hero-ink);
	font-size: 1.05rem;
	font-weight: 900;
	line-height: 1.5;
}
.kb-hero__hl { color: var(--kb-hero-orange); }

/* Photo */
.kb-hero__photo {
	height: 440px;
	border-radius: 32px;
	background: url("../../img/lpb/fv-main.jpg") center / cover no-repeat;
}

/* Stacked layout below the lg breakpoint */
@media (max-width: 991.98px) {
	.kb-hero { padding: 24px 0 40px; }
	.kb-hero__copy {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.kb-hero__lead,
	.kb-hero__area,
	.kb-hero__badges { justify-content: center; width: 100%; }
	.kb-hero__catch { width: 100%; font-size: .85rem; }
	.kb-hero__chips { justify-content: center; width: 100%; }
	.kb-hero__chip { padding: 2px 8px; font-size: .75rem; }
	.kb-hero__title { width: 100%; font-size: 1.5rem; }
	.kb-hero__badges { gap: 10px; }
	.kb-hero__badge {
		flex: 0 0 auto;
		width: calc((100% - 20px) / 3);
		height: auto;
		aspect-ratio: 1;
	}
	.kb-hero__badge-text,
	.kb-hero__badge-text b { font-size: 1.3rem; }
	.kb-hero__trust {
		display: flex;
		justify-content: space-around;
		width: 100%;
		padding: 8px 12px;
	}
	.kb-hero__photo {
		height: 350px;
		margin-top: 2rem;
		border-radius: 24px;
	}
}
