:root {
	--kp-primary: #2D6A4F;
	--kp-secondary: #1B4332;
	--kp-accent: #D4A017;
	--kp-bg: #F4F7F5;
	--kp-bg-alt: #EAF2EE;
	--kp-bg-dark: #0E2A1C;
	--kp-text: #1A2E23;
	--kp-body: #3D5247;
	--kp-muted: #6B8C7A;
	--kp-on-dark: #E2EDE7;
	--kp-body-dark: #B8CEBB;
	--kp-border: #C8DDD3;
	--kp-radius: 12px;
	--kp-radius-btn: 6px;
	--kp-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
	--kp-shadow-hover: 0 8px 36px rgba(29, 67, 50, 0.16);
}

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

body {
	font-family: 'Inter', 'Helvetica Neue', sans-serif;
	font-size: 17px;
	line-height: 1.7;
	color: #3D5247;
	background-color: #F4F7F5;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Inter', 'Segoe UI', sans-serif;
	color: #1A2E23;
	font-weight: 700;
}

h1 { font-size: 48px; line-height: 1.15; letter-spacing: -0.5px; }
h2 { font-size: 36px; line-height: 1.2; letter-spacing: -0.3px; }
h3 { font-size: 26px; line-height: 1.3; font-weight: 600; }
h4 { font-size: 20px; line-height: 1.4; font-weight: 600; }

p { margin-bottom: 1rem; }

a { color: #2D6A4F; text-decoration: none; }
a:hover { color: #1B4332; }

.kp-overline {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #6B8C7A;
}

.kp-muted { color: #6B8C7A; font-size: 14px; }

.kp-mono {
	font-family: 'IBM Plex Mono', monospace;
}

.kp-section {
	padding: 80px 0;
	background-color: #F4F7F5;
}

.kp-section-alt {
	padding: 80px 0;
	background-color: #EAF2EE;
}

.kp-section-dark {
	padding: 80px 0;
	background-color: #0E2A1C;
}

.kp-section-compact {
	padding: 60px 0;
}

.kp-btn-primary {
	display: inline-block;
	padding: 12px 28px;
	background-color: #2D6A4F;
	color: #ffffff;
	border: none;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
	text-decoration: none;
}

.kp-btn-primary:hover {
	background-color: #1B4332;
	color: #ffffff;
	box-shadow: 0 4px 16px rgba(29, 67, 50, 0.2);
}

.kp-btn-primary-lg {
	padding: 16px 40px;
	font-size: 17px;
}

.kp-btn-outline {
	display: inline-block;
	padding: 12px 28px;
	background-color: transparent;
	color: #2D6A4F;
	border: 2px solid #2D6A4F;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
	text-decoration: none;
}

.kp-btn-outline:hover {
	background-color: rgba(45, 106, 79, 0.08);
	color: #2D6A4F;
}

.kp-btn-accent {
	display: inline-block;
	padding: 12px 28px;
	background-color: #D4A017;
	color: #0E2A1C;
	border: none;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
	text-decoration: none;
}

.kp-btn-accent:hover {
	background-color: #B88A12;
	color: #0E2A1C;
}

.kp-btn-dark {
	display: inline-block;
	padding: 12px 28px;
	background-color: #ffffff;
	color: #2D6A4F;
	border: none;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
	text-decoration: none;
}

.kp-btn-dark:hover {
	background-color: #EAF2EE;
	color: #2D6A4F;
}

.kp-nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	height: 72px;
	background-color: rgba(244, 247, 245, 0.97);
	border-bottom: 1px solid transparent;
	backdrop-filter: blur(8px);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.kp-nav-scrolled {
	border-color: #C8DDD3;
	box-shadow: 0 2px 16px rgba(29, 67, 50, 0.08);
}

.kp-nav .navbar-brand {
	padding: 0;
}

.kp-logo {
	height: 40px;
	width: auto;
}

.kp-nav .navbar-nav .nav-link,
.kp-nav .navbar-nav .nav-link:visited {
	color: #1A2E23;
	font-size: 15px;
	font-weight: 500;
	padding: 8px 14px;
	transition: color 0.2s ease;
}

.kp-nav .navbar-nav .nav-link:hover,
.kp-nav .navbar-nav .nav-link.active {
	color: #2D6A4F;
}

.kp-nav .navbar-toggler {
	border: none;
	padding: 4px 8px;
}

.kp-nav .navbar-toggler:focus {
	box-shadow: none;
}

.kp-nav-cta {
	margin-left: 16px;
}

body.kp-nav-open {
	overflow: hidden;
}

.kp-hero {
	padding: 120px 0 100px;
	background-color: #0E2A1C;
	margin-top: 72px;
}

.kp-hero-headline {
	font-size: 48px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.5px;
	color: #E2EDE7;
	margin-bottom: 20px;
}

.kp-hero-sub {
	font-size: 19px;
	color: #B8CEBB;
	line-height: 1.6;
	margin-bottom: 36px;
	max-width: 520px;
}

.kp-hero-img {
	width: 100%;
	height: 480px;
	object-fit: cover;
	border-radius: 12px;
	display: block;
}

.kp-page-hero {
	padding: 80px 0 60px;
	background-color: #0E2A1C;
	margin-top: 72px;
}

.kp-page-hero-bg {
	position: relative;
	padding: 100px 0 80px;
	background-size: cover;
	background-position: center;
	margin-top: 72px;
}

.kp-page-hero-bg::before {
	content: '';
	position: absolute;
	inset: 0;
	background-color: rgba(14, 42, 28, 0.75);
}

.kp-page-hero-bg .container {
	position: relative;
	z-index: 1;
}

.kp-page-hero h1 {
	color: #E2EDE7;
	font-size: 42px;
}

.kp-page-hero p {
	color: #B8CEBB;
	font-size: 18px;
	max-width: 600px;
}

.kp-stats-bar {
	padding: 60px 0;
	background-color: #1B4332;
}

.kp-stat-item {
	text-align: center;
	padding: 20px;
}

.kp-stat-number {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 42px;
	font-weight: 700;
	color: #D4A017;
	line-height: 1;
	display: block;
	margin-bottom: 8px;
}

.kp-stat-label {
	font-size: 14px;
	color: #B8CEBB;
	letter-spacing: 0.5px;
}

.kp-stats-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.kp-stat-card {
	background-color: #ffffff;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	padding: 32px 28px;
	flex: 1;
	min-width: 180px;
	box-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
}

.kp-stat-card .kp-stat-number {
	color: #2D6A4F;
	font-size: 36px;
}

.kp-stat-card .kp-stat-label {
	color: #3D5247;
	font-size: 14px;
	font-weight: 500;
}

.kp-features-alt .kp-feature-row {
	display: flex;
	align-items: center;
	gap: 60px;
	padding: 60px 0;
	border-bottom: 1px solid #C8DDD3;
}

.kp-features-alt .kp-feature-row:last-child {
	border-bottom: none;
}

.kp-features-alt .kp-feature-row.reverse {
	flex-direction: row-reverse;
}

.kp-features-alt .kp-feature-content {
	flex: 1;
}

.kp-features-alt .kp-feature-visual {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kp-feature-icon-wrap {
	width: 72px;
	height: 72px;
	background-color: #EAF2EE;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}

.kp-feature-icon-wrap i {
	font-size: 28px;
	color: #2D6A4F;
}

.kp-feature-visual-box {
	width: 100%;
	height: 300px;
	background-color: #EAF2EE;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #C8DDD3;
}

.kp-feature-visual-box i {
	font-size: 64px;
	color: #C8DDD3;
}

.kp-process {
	counter-reset: step;
}

.kp-process-item {
	display: flex;
	gap: 40px;
	padding: 40px 0;
	border-bottom: 1px solid #C8DDD3;
}

.kp-process-item:last-child {
	border-bottom: none;
}

.kp-step-num {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 48px;
	font-weight: 700;
	color: #C8DDD3;
	line-height: 1;
	flex-shrink: 0;
	width: 80px;
}

.kp-process-content h3 {
	font-size: 22px;
	font-weight: 700;
	color: #1A2E23;
	margin-bottom: 10px;
}

.kp-process-content p {
	color: #3D5247;
	margin-bottom: 0;
}

.kp-testimonials-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
}

.kp-tstat-card {
	background-color: #ffffff;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	padding: 40px 36px;
	flex: 1;
	min-width: 220px;
	text-align: center;
	box-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
}

.kp-tstat-number {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 52px;
	font-weight: 700;
	color: #2D6A4F;
	line-height: 1;
	display: block;
	margin-bottom: 12px;
}

.kp-tstat-desc {
	font-size: 15px;
	color: #3D5247;
	margin-bottom: 16px;
}

.kp-tstat-source {
	font-size: 13px;
	color: #6B8C7A;
	font-style: italic;
}

.kp-cta-banner {
	padding: 80px 0;
	background-color: #0E2A1C;
	text-align: center;
}

.kp-cta-banner h2 {
	color: #E2EDE7;
	font-size: 34px;
	margin-bottom: 16px;
}

.kp-cta-banner p {
	color: #B8CEBB;
	font-size: 17px;
	max-width: 560px;
	margin: 0 auto 32px;
}

.kp-cta-card {
	padding: 64px 0;
}

.kp-cta-card-inner {
	background-color: #EAF2EE;
	border-radius: 16px;
	padding: 56px 48px;
	text-align: center;
	border: 1px solid #C8DDD3;
}

.kp-cta-card-inner h2 {
	font-size: 30px;
	color: #1A2E23;
	margin-bottom: 12px;
}

.kp-cta-card-inner p {
	color: #3D5247;
	margin-bottom: 28px;
}

.kp-portfolio-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.kp-portfolio-card {
	background-color: #ffffff;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	padding: 28px;
	flex: 1 1 calc(25% - 24px);
	min-width: 240px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.kp-portfolio-card:hover {
	box-shadow: 0 8px 36px rgba(29, 67, 50, 0.16);
	transform: translateY(-2px);
}

.kp-portfolio-logo-wrap {
	width: 100%;
	height: 80px;
	background-color: #EAF2EE;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	overflow: hidden;
}

.kp-portfolio-logo {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.kp-sector-badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 20px;
	margin-bottom: 10px;
}

.kp-badge-solar { background-color: #FEF3C7; color: #92400E; }
.kp-badge-wind { background-color: #E0F2FE; color: #0C4A6E; }
.kp-badge-battery { background-color: #F0FDF4; color: #14532D; }
.kp-badge-grid { background-color: #EDE9FE; color: #4C1D95; }
.kp-badge-carbon { background-color: #FEF2F2; color: #7F1D1D; }
.kp-badge-hydrogen { background-color: #F0F9FF; color: #0C4A6E; }

.kp-portfolio-card h4 {
	font-size: 18px;
	margin-bottom: 8px;
	color: #1A2E23;
}

.kp-portfolio-card p {
	font-size: 14px;
	color: #3D5247;
	flex: 1;
	margin-bottom: 12px;
}

.kp-portfolio-meta {
	font-size: 13px;
	color: #6B8C7A;
	margin-top: auto;
}

.kp-story-section {
	padding: 80px 0;
}

.kp-story-section p {
	font-size: 17px;
	color: #3D5247;
	line-height: 1.8;
}

.kp-principles-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.kp-principle-card {
	background-color: #ffffff;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	padding: 36px 28px;
	flex: 1;
	min-width: 220px;
	box-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
}

.kp-principle-card h3 {
	font-size: 22px;
	color: #1A2E23;
	margin-bottom: 12px;
}

.kp-mission-row {
	display: flex;
	align-items: center;
	gap: 60px;
	padding: 60px 0;
}

.kp-mission-img {
	width: 100%;
	height: 400px;
	object-fit: cover;
	border-radius: 12px;
	display: block;
}

.kp-team-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.kp-team-card {
	background-color: #ffffff;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	overflow: hidden;
	flex: 1 1 calc(20% - 24px);
	min-width: 200px;
	box-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
	display: flex;
	flex-direction: column;
}

.kp-avatar {
	width: 100%;
	height: 240px;
	object-fit: cover;
	display: block;
}

.kp-avatar-placeholder {
	width: 100%;
	height: 240px;
	background-color: #EAF2EE;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kp-avatar-placeholder i {
	font-size: 72px;
	color: #C8DDD3;
}

.kp-team-card-body {
	padding: 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.kp-team-card h4 {
	font-size: 18px;
	margin-bottom: 4px;
	color: #1A2E23;
}

.kp-team-card .kp-team-title {
	font-size: 14px;
	color: #2D6A4F;
	font-weight: 600;
	margin-bottom: 12px;
}

.kp-team-card p {
	font-size: 14px;
	color: #3D5247;
	flex: 1;
}

.kp-advisors-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.kp-advisor-card {
	background-color: #EAF2EE;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	padding: 24px;
	flex: 1 1 calc(25% - 24px);
	min-width: 180px;
	text-align: center;
}

.kp-advisor-card h5 {
	font-size: 16px;
	font-weight: 700;
	color: #1A2E23;
	margin-bottom: 4px;
}

.kp-advisor-card p {
	font-size: 13px;
	color: #6B8C7A;
	margin: 0;
}

.kp-contact-split {
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

.kp-contact-form-col {
	flex: 1.2;
}

.kp-contact-info-col {
	flex: 0.8;
}

.kp-contact-info-col h3 {
	font-size: 22px;
	color: #1A2E23;
	margin-bottom: 24px;
}

.kp-contact-info-item {
	display: flex;
	gap: 16px;
	margin-bottom: 24px;
	align-items: flex-start;
}

.kp-contact-info-item i {
	font-size: 18px;
	color: #2D6A4F;
	margin-top: 2px;
	flex-shrink: 0;
	width: 20px;
}

.kp-contact-info-item p {
	margin: 0;
	color: #3D5247;
	font-size: 15px;
	line-height: 1.5;
}

.kp-contact-info-item a {
	color: #2D6A4F;
}

.kp-contact-info-item a:hover {
	color: #1B4332;
}

.kp-form-group {
	margin-bottom: 20px;
}

.kp-form-group label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #1A2E23;
	margin-bottom: 6px;
}

.kp-form-group input,
.kp-form-group textarea,
.kp-form-group select {
	width: 100%;
	padding: 12px 16px;
	font-size: 15px;
	border: 1px solid #C8DDD3;
	border-radius: 6px;
	background-color: #ffffff;
	color: #1A2E23;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	font-family: 'Inter', 'Helvetica Neue', sans-serif;
}

.kp-form-group input:focus,
.kp-form-group textarea:focus,
.kp-form-group select:focus {
	outline: none;
	border-color: #2D6A4F;
	box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.12);
}

.kp-form-group textarea {
	min-height: 140px;
	resize: vertical;
}

.kp-blog-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.kp-blog-card {
	background-color: #ffffff;
	border: 1px solid #C8DDD3;
	border-radius: 12px;
	overflow: hidden;
	flex: 1 1 calc(33.333% - 24px);
	min-width: 260px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 4px 24px rgba(29, 67, 50, 0.10);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.kp-blog-card:hover {
	box-shadow: 0 8px 36px rgba(29, 67, 50, 0.16);
	transform: translateY(-2px);
}

.kp-blog-card a img {
	display: block;
}

.kp-blog-thumb {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}

.kp-blog-body {
	padding: 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.kp-blog-date {
	font-size: 13px;
	color: #6B8C7A;
	margin-bottom: 10px;
}

.kp-blog-body h5 {
	font-size: 17px;
	font-weight: 700;
	color: #1A2E23;
	margin-bottom: 10px;
	line-height: 1.4;
}

.kp-blog-body h5 a {
	color: #1A2E23;
}

.kp-blog-body h5 a:hover {
	color: #2D6A4F;
}

.kp-blog-body p {
	font-size: 14px;
	color: #3D5247;
	flex: 1;
	margin-bottom: 0;
}

.kp-read-more {
	display: inline-block;
	margin-top: auto;
	padding-top: 16px;
	font-size: 14px;
	font-weight: 600;
	color: #2D6A4F;
}

.kp-read-more:hover {
	color: #1B4332;
	text-decoration: underline;
}

.kp-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	padding: 40px 0 0;
}

.kp-page-link {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #C8DDD3;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	color: #3D5247;
	transition: background-color 0.2s, color 0.2s;
}

.kp-page-link:hover,
.kp-page-link.active {
	background-color: #2D6A4F;
	color: #ffffff;
	border-color: #2D6A4F;
}

.kp-footer {
	background-color: #0E2A1C;
	padding: 60px 0 40px;
}

.kp-footer h5 {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #E2EDE7;
	margin-bottom: 20px;
}

.kp-footer p {
	font-size: 14px;
	color: #B8CEBB;
	line-height: 1.6;
}

.kp-footer a {
	color: #B8CEBB;
	font-size: 14px;
	line-height: 2;
	display: block;
	transition: color 0.2s ease;
}

.kp-footer a:hover {
	color: #D4A017;
}

.kp-footer-divider {
	border-top: 1px solid rgba(184, 206, 187, 0.15);
	padding-top: 28px;
	margin-top: 40px;
}

.kp-footer-copy {
	font-size: 13px;
	color: #6B8C7A;
	margin: 0;
}

.kp-footer-logo {
	height: 36px;
	width: auto;
	margin-bottom: 16px;
	filter: brightness(0) invert(1) opacity(0.8);
}

.kp-footer-address {
	color: #B8CEBB;
	font-size: 14px;
	line-height: 1.7;
	font-style: normal;
}

.kp-cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 9999;
	background-color: #1B4332;
	padding: 18px 24px;
	border-top: 2px solid #2D6A4F;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.kp-cookie-text {
	flex: 1;
	font-size: 14px;
	color: #B8CEBB;
	min-width: 200px;
}

.kp-cookie-text a {
	color: #D4A017;
	text-decoration: underline;
}

.kp-cookie-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-shrink: 0;
}

.kp-cookie-close {
	background: none;
	border: none;
	color: #B8CEBB;
	font-size: 18px;
	cursor: pointer;
	padding: 4px 8px;
	line-height: 1;
}

.kp-cookie-close:hover {
	color: #E2EDE7;
}

.kp-legal-body {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 24px;
}

.kp-legal-body h2 {
	font-size: 26px;
	margin-top: 48px;
	margin-bottom: 16px;
	color: #1A2E23;
}

.kp-legal-body h3 {
	font-size: 20px;
	margin-top: 32px;
	margin-bottom: 12px;
	color: #1A2E23;
}

.kp-legal-body p, .kp-legal-body li {
	font-size: 15px;
	color: #3D5247;
	line-height: 1.8;
}

.kp-legal-body ul {
	padding-left: 20px;
	margin-bottom: 16px;
}

.kp-404-page {
	min-height: 100vh;
	background-color: #0E2A1C;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 80px 24px;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.kp-404-page::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='400'%3E%3Cpath d='M0,200 Q100,150 200,200 T400,200 T600,200 T800,200' fill='none' stroke='rgba(45,106,79,0.15)' stroke-width='1'/%3E%3Cpath d='M0,180 Q100,130 200,180 T400,180 T600,180 T800,180' fill='none' stroke='rgba(45,106,79,0.10)' stroke-width='1'/%3E%3Cpath d='M0,220 Q100,170 200,220 T400,220 T600,220 T800,220' fill='none' stroke='rgba(45,106,79,0.10)' stroke-width='1'/%3E%3Cpath d='M0,240 Q100,190 200,240 T400,240 T600,240 T800,240' fill='none' stroke='rgba(45,106,79,0.08)' stroke-width='1'/%3E%3Cpath d='M0,160 Q100,110 200,160 T400,160 T600,160 T800,160' fill='none' stroke='rgba(45,106,79,0.08)' stroke-width='1'/%3E%3C/svg%3E");
	background-repeat: repeat;
	opacity: 0.4;
}

.kp-404-content {
	position: relative;
	z-index: 1;
}

.kp-404-number {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 120px;
	font-weight: 700;
	color: #D4A017;
	line-height: 1;
	display: block;
	margin-bottom: 16px;
}

.kp-404-page h2 {
	font-size: 36px;
	color: #E2EDE7;
	margin-bottom: 16px;
}

.kp-404-page p {
	color: #B8CEBB;
	font-size: 17px;
	max-width: 440px;
	margin: 0 auto 36px;
}

.kp-intro-text {
	max-width: 700px;
	margin-bottom: 48px;
}

.kp-intro-text p {
	font-size: 17px;
	color: #3D5247;
}

.kp-section-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #2D6A4F;
	margin-bottom: 12px;
	display: block;
}

.kp-section-label-light {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #6B8C7A;
	margin-bottom: 12px;
	display: block;
}

@media (max-width: 991px) {
	.kp-hero {
		padding: 80px 0 60px;
	}

	.kp-hero-headline {
		font-size: 36px;
	}

	.kp-hero-img {
		height: 320px;
		margin-top: 40px;
	}

	.kp-features-alt .kp-feature-row,
	.kp-features-alt .kp-feature-row.reverse {
		flex-direction: column;
		gap: 32px;
	}

	.kp-contact-split {
		flex-direction: column;
		gap: 48px;
	}

	.kp-mission-row {
		flex-direction: column;
		gap: 32px;
	}

	.kp-mission-img {
		height: 280px;
	}

	.kp-portfolio-card {
		flex: 1 1 calc(50% - 24px);
	}

	.kp-team-card {
		flex: 1 1 calc(50% - 24px);
	}

	.kp-advisor-card {
		flex: 1 1 calc(50% - 24px);
	}

	.kp-blog-card {
		flex: 1 1 calc(50% - 24px);
	}

	.kp-tstat-card {
		flex: 1 1 calc(50% - 12px);
	}

	.kp-stat-card {
		flex: 1 1 calc(50% - 24px);
	}
}

@media (max-width: 767px) {
	h1 { font-size: 34px; }
	h2 { font-size: 28px; }
	h3 { font-size: 22px; }

	.kp-section { padding: 60px 0; }
	.kp-section-alt { padding: 60px 0; }

	.kp-hero { padding: 60px 0 40px; }

	.kp-portfolio-card {
		flex: 1 1 100%;
	}

	.kp-team-card {
		flex: 1 1 100%;
	}

	.kp-advisor-card {
		flex: 1 1 calc(50% - 24px);
	}

	.kp-blog-card {
		flex: 1 1 100%;
	}

	.kp-tstat-card {
		flex: 1 1 100%;
	}

	.kp-stat-card {
		flex: 1 1 100%;
	}

	.kp-stat-number {
		font-size: 32px;
	}

	.kp-tstat-number {
		font-size: 40px;
	}

	.kp-404-number {
		font-size: 80px;
	}

	.kp-cta-card-inner {
		padding: 36px 24px;
	}

	.kp-process-item {
		flex-direction: column;
		gap: 12px;
	}

	.kp-step-num {
		font-size: 32px;
		width: auto;
	}

	.kp-stats-cards {
		gap: 16px;
	}
}


/* vc0502-dark-section-safeguard -- prevent dark-bg sections from inheriting default dark text */
[class*="-dark"] h1,
[class*="-dark"] h2,
[class*="-dark"] h3,
[class*="-dark"] h4,
[class*="-dark"] h5,
[class*="-dark"] h6,
[class*="dark-"] h1,
[class*="dark-"] h2,
[class*="dark-"] h3,
[class*="dark-"] h4,
[class*="dark-"] h5,
[class*="dark-"] h6,
[class*="-night"] h1,
[class*="-night"] h2,
[class*="-night"] h3 {
  color: #E8F2EC !important;
}
[class*="-dark"] p,
[class*="-dark"] .lead,
[class*="dark-"] p,
[class*="dark-"] .lead {
  color: color-mix(in srgb, #E8F2EC 82%, transparent) !important;
}
[class*="-dark"] .eyebrow,
[class*="-dark"] .kicker,
[class*="-dark"] [class*="section-label"],
[class*="dark-"] .eyebrow,
[class*="dark-"] .kicker,
[class*="dark-"] [class*="section-label"] {
  color: #5BAA7F !important;
}


/* ===== Hero as full-bleed background image (index) ===== */
.kp-hero-bg-full {
  position: relative;
  overflow: hidden;
  padding: 170px 0 130px;
  margin-top: 72px;
  background-color: #0E2A1C;
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}
.kp-hero-bg-full::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(14,42,28,0.94) 0%, rgba(14,42,28,0.82) 42%, rgba(14,42,28,0.32) 88%, rgba(14,42,28,0.10) 100%);
  z-index: 1;
}
.kp-hero-bg-full .container {
  position: relative;
  z-index: 2;
}
.kp-hero-bg-full .kp-hero-left {
  max-width: 620px;
}
.kp-hero-bg-full .kp-hero-headline {
  color: #FFFFFF;
  margin-bottom: 20px;
}
.kp-hero-bg-full .kp-hero-sub {
  color: rgba(226,237,231,0.88);
  max-width: 560px;
}
.kp-btn-ghost-light {
  display: inline-block;
  background-color: transparent;
  color: #FFFFFF;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.3px;
  padding: 13px 26px;
  border: 1.5px solid rgba(255,255,255,0.75);
  border-radius: 6px;
  text-decoration: none;
  transition: background-color 0.2s, border-color 0.2s;
}
.kp-btn-ghost-light:hover {
  background-color: rgba(255,255,255,0.10);
  color: #FFFFFF;
  border-color: #FFFFFF;
}

@media (max-width: 991.98px) {
  .kp-hero-bg-full {
    padding: 120px 0 80px;
    background-position: center;
  }
  .kp-hero-bg-full::before {
    background: linear-gradient(180deg, rgba(14,42,28,0.88) 0%, rgba(14,42,28,0.72) 100%);
  }
}
@media (max-width: 575.98px) {
  .kp-hero-bg-full { padding: 100px 0 60px; }
}


/* ===== Fix #1: real industry photos (replace icon placeholder boxes) ===== */
.kp-feature-visual-img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  object-position: center;
  border-radius: 16px;
  display: block;
  box-shadow: 0 10px 36px rgba(29, 67, 50, 0.22);
}


/* ===== Fix #2: portfolio logo tiles (SVG wordmarks) ===== */
.kp-portfolio-logo-wrap {
  background-color: #FFFFFF;
  border: 1px solid #EAF2EE;
  padding: 12px 16px;
}
.kp-portfolio-logo {
  max-height: 64px;
  width: auto;
  max-width: 100%;
}

/* ===== Fix #3: blog article detail layout ===== */
.kp-article {
  padding-top: 72px;
}
.kp-article-hero {
  width: 100%;
  max-height: 520px;
  overflow: hidden;
  background-color: #0E2A1C;
}
.kp-article-hero-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: cover;
  object-position: center;
}
.kp-article-wrap {
  max-width: 760px;
  margin: 0 auto;
  padding: 56px 0 40px;
}
.kp-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  font-size: 13px;
  color: #6B8C7A;
  margin-bottom: 18px;
}
.kp-article-meta .kp-blog-date {
  margin: 0;
  font-weight: 500;
}
.kp-article-meta .kp-article-author,
.kp-article-meta .kp-article-category {
  font-size: 13px;
  color: #6B8C7A;
  letter-spacing: 0.3px;
}
.kp-article-meta .kp-article-category {
  text-transform: uppercase;
  font-weight: 600;
  color: #2D6A4F;
  letter-spacing: 1px;
}
.kp-article h1 {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.15;
  color: #0E2A1C;
  letter-spacing: -0.5px;
  margin-bottom: 20px;
}
.kp-article-lead {
  font-size: 20px;
  line-height: 1.55;
  color: #1D4332;
  margin-bottom: 36px;
  font-weight: 500;
}
.kp-article-wrap > p {
  font-size: 17px;
  line-height: 1.8;
  color: #3D5247;
  margin: 0 0 1.25em;
}
.kp-article-wrap h2 {
  font-size: 1.55rem;
  font-weight: 700;
  color: #0E2A1C;
  margin: 2.2em 0 0.7em;
  letter-spacing: -0.2px;
}
.kp-article-wrap h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1A2E23;
  margin: 1.8em 0 0.6em;
}
.kp-article-wrap ul,
.kp-article-wrap ol {
  margin: 0 0 1.25em;
  padding-left: 1.5em;
}
.kp-article-wrap li {
  color: #3D5247;
  line-height: 1.75;
  margin-bottom: 0.5em;
}
.kp-article-wrap blockquote {
  margin: 1.8em 0;
  padding: 16px 22px;
  border-left: 4px solid #2D6A4F;
  background: #EAF2EE;
  border-radius: 0 8px 8px 0;
}
.kp-article-wrap blockquote p {
  font-size: 17px;
  font-style: italic;
  color: #1A2E23;
  margin: 0;
  line-height: 1.7;
}
.kp-article-wrap a {
  color: #2D6A4F;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.kp-article-wrap a:hover {
  color: #D4A017;
}
.kp-article-wrap img:not(.kp-article-hero-img) {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 1.6em auto;
}

@media (max-width: 991.98px) {
  .kp-feature-visual-img { height: 260px; }
}
@media (max-width: 767.98px) {
  .kp-article h1 { font-size: 30px; }
  .kp-article-lead { font-size: 17px; }
  .kp-article-wrap > p { font-size: 16px; }
  .kp-article-wrap h2 { font-size: 1.35rem; }
  .kp-article-hero { max-height: 280px; }
  .kp-article-hero-img { max-height: 280px; }
  .kp-article-wrap { padding: 36px 16px 24px; }
}
