@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root{
	--primary: #116b3a; /* main green from logo */
	--primary-700: #0e5c31;
	--accent: #f2c500; /* yellow accent */
	--muted: #6b7280;
	--bg: #f6faf6;
	--card: #ffffff;
	--text: #0b2b4a;
	--site-container: 1220px;
	--site-gutter: 64px;
}

.topbar > .container,
.site-header > .container,
.footer-modern > .container{
	width:min(calc(100% - var(--site-gutter) * 2), var(--site-container));
	max-width:var(--site-container);
	padding-left:0;
	padding-right:0;
}

@media (max-width:991px){
	:root{--site-gutter: 24px;}
}

@media (max-width:575px){
	:root{--site-gutter: 16px;}
}

/* Base */
html,body{height:100%;}
body{
	font-family: 'Plus Jakarta Sans', 'Segoe UI', Arial, sans-serif;
	color:var(--text);
	background:#fff;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
}

/* Header + Nav */
.site-header{
	background:#fff;
	border-bottom:1px solid #e8eef0;
	position:relative;
	z-index:1040;
	box-shadow:0 6px 24px rgba(9,30,66,0.06);
}

.site-header.is-fixed{
	position:fixed;
	top:0;
	left:0;
	right:0;
	box-shadow:0 12px 30px rgba(9,30,66,0.12);
	animation:navDrop 0.18s ease;
}

.header-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	padding:7px 0;
	min-height:76px;
}

.header-nav{padding:0;position:static;}

.header-nav .navbar-nav{
	column-gap:34px;
}

.header-nav .navbar-toggler{
	border:1px solid #e6edf0;
	border-radius:10px;
	background:#f5f7f6;
	padding:0;
	width:58px;
	height:54px;
	display:none;
	align-items:center;
	justify-content:center;
	transition:background 0.2s ease, border-color 0.2s ease;
}

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

.hamburger-lines{
	width:28px;
	height:22px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
}

.hamburger-lines span{
	display:block;
	width:100%;
	height:3px;
	border-radius:999px;
	background:#1f2f2f;
	transition:transform 0.24s ease, opacity 0.18s ease, background 0.2s ease;
	transform-origin:center;
}

.header-nav .navbar-toggler[aria-expanded="true"]{
	background:var(--primary);
	border-color:var(--primary);
}

.header-nav .navbar-toggler[aria-expanded="true"] .hamburger-lines span{
	background:#fff;
}

.header-nav .navbar-toggler[aria-expanded="true"] .hamburger-lines span:nth-child(1){
	transform:translateY(9.5px) rotate(45deg);
}

.header-nav .navbar-toggler[aria-expanded="true"] .hamburger-lines span:nth-child(2){
	opacity:0;
}

.header-nav .navbar-toggler[aria-expanded="true"] .hamburger-lines span:nth-child(3){
	transform:translateY(-9.5px) rotate(-45deg);
}

.header-nav .nav-link{
	color:#1f2f2f;
	font-weight:800;
	font-size:15px;
	display:flex;
	align-items:center;
	gap:8px;
	width:max-content;
	padding:20px 18px;
	border-radius:0;
}

.header-nav .nav-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:20px;
	height:20px;
	font-size:17px;
	line-height:1;
}

.header-nav .nav-link.active{
	color:var(--primary);
	position:relative;
}

.header-nav .nav-link.active::after{
	content:'';
	position:absolute;
	left:0;
	right:0;
	bottom:-8px;
	height:5px;
	background:var(--primary);
	border-radius:999px;
}

.header-nav .nav-link:hover{color:var(--primary);}

/* Top bar */
.topbar{
	background:linear-gradient(90deg, #075c2e 0%, #006a35 50%, #075c2e 100%);
	color:#eaf6ee;
	font-size:14px;
	letter-spacing:0.02em;
	padding:9px 0;
}
.topbar-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}
.topbar-left{
	display:flex;
	align-items:center;
	gap:8px;
	flex-wrap:wrap;
	font-weight:500;
}
.topbar-icon{
	color:var(--accent);
	font-weight:700;
}
.topbar-divider{opacity:0.6;}
.topbar-login{
	color:#fff;
	text-decoration:none;
	background:rgba(255,255,255,0.14);
	border:1px solid var(--accent);
	border-radius:999px;
	padding:5px 14px;
	font-size:13px;
	font-weight:800;
	display:inline-flex;
	align-items:center;
	gap:7px;
	letter-spacing:0;
}
.topbar-login .bi{
	font-size:17px;
	line-height:1;
}
.logo-block{
	display:flex;
	align-items:center;
	gap:12px;
}
.logo-text .logo-title{
	font-weight:800;
	color:var(--primary);
	line-height:1.1;
	font-size:25px;
}
.logo-text .logo-subtitle{
	font-size:15px;
	color:var(--muted);
}

/* Buttons */
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-700);border-color:var(--primary-700)}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#0b2b4a}
.btn-outline-primary{background:transparent;border:1px solid var(--primary);color:var(--primary)}

/* Cards */
.card-ghost{background:var(--card);border-radius:12px;box-shadow:0 10px 30px rgba(9,30,66,0.06);padding:18px}

/* Hero */
.site-hero{background:linear-gradient(180deg, rgba(17,107,58,0.08), rgba(255,255,255,0));padding:48px 0}
.hero-overlay{background:linear-gradient(90deg, rgba(17,107,58,0.06), rgba(242,197,0,0.03));}

/* Logo sizing */
.site-logo{height:62px;display:inline-block}

/* Feature boxes */
.feature-pill{background:#fff;padding:12px;border-radius:10px;box-shadow:0 8px 24px rgba(9,30,66,0.04);}

/* Utilities */
.text-muted{color:var(--muted)!important}

/* Footer */
.footer-modern{
	position:relative;
	overflow:hidden;
	background:linear-gradient(90deg, #08733a 0%, #075c2f 100%);
	color:#e9f6ee;
	padding:18px 0 12px;
}
.footer-modern::after{
	content:'';
	position:absolute;
	right:40px;
	bottom:-72px;
	width:210px;
	height:210px;
	border-radius:50%;
	background:rgba(255,255,255,0.06);
}
.footer-grid{
	display:grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap:20px;
	align-items:start;
	position:relative;
	z-index:1;
}
.footer-modern .footer-title{
	font-weight:700;
	color:#fff;
	margin-bottom:10px;
}
.footer-modern .footer-note{color:#d6ece0;font-size:13px;line-height:1.6;}
.footer-line{
	display:flex;
	gap:12px;
	align-items:flex-start;
	color:#d6ece0;
	font-size:13px;
	line-height:1.45;
	margin-bottom:6px;
}
.footer-line span{
	color:#fff;
	font-size:9px;
	line-height:1.8;
}
.footer-brand .logo-title{color:#fff;font-size:20px;}
.footer-brand .logo-subtitle{color:#cde6d6;}
.footer-modern .site-logo{height:58px;}
.social-row{display:flex;gap:10px;align-items:center;}
.social-icon{
	width:42px;
	height:42px;
	border-radius:50%;
	background:rgba(0,0,0,0.22);
	color:#fff;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}
.social-icon .bi{font-size:18px;line-height:1;}
.footer-bottom{
	margin-top:16px;
	padding-top:10px;
	border-top:1px solid rgba(255,255,255,0.12);
	font-size:12px;
	color:#cfe8d7;
	text-align:center;
	position:relative;
	z-index:1;
}

.scroll-top-button{
	position:fixed;
	right:24px;
	bottom:24px;
	width:48px;
	height:48px;
	border:0;
	border-radius:50%;
	background:var(--primary);
	color:#fff;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 12px 30px rgba(9,30,66,0.22);
	opacity:0;
	visibility:hidden;
	transform:translateY(12px);
	transition:opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease, background 0.2s ease;
	z-index:1060;
}
.scroll-top-button .bi{
	font-size:30px;
	line-height:1;
}
.scroll-top-button:hover,
.scroll-top-button:focus{
	background:var(--primary-700);
	color:#fff;
}
.scroll-top-button:focus{
	outline:3px solid rgba(242,197,0,0.5);
	outline-offset:3px;
}
.scroll-top-button.is-visible{
	opacity:1;
	visibility:visible;
	transform:translateY(0);
}

@media (max-width:767px){
	.site-logo{height:46px}
	.topbar{font-size:10px;}
	.topbar-inner{
		flex-direction:column;
		align-items:center;
		justify-content:center;
		text-align:center;
	}
	.topbar-left{
		justify-content:center;
		text-align:center;
	}
	.site-header .logo-text{display:none;}
	.header-row{
		gap:10px;
		padding:8px;
		min-height:64px;
		justify-content:space-between;
		align-items:center;
	}
	.logo-block{gap:0;}
	.footer-brand .logo-block{gap:10px;}
	.footer-brand .logo-title{font-size:clamp(18px, 6vw, 24px);}
	.footer-brand .logo-subtitle{font-size:14px;}
	.footer-modern .footer-note{font-size:14px;}
	.footer-grid{grid-template-columns:1fr;}
	.scroll-top-button{
		right:16px;
		bottom:16px;
		width:44px;
		height:44px;
	}
}

@media (max-width:991px){
	.header-row{flex-direction:row;align-items:center;flex-wrap:wrap;}
	.header-nav{margin-left:auto;}
	.header-nav .navbar-toggler{display:inline-flex;}
	.header-nav .navbar-collapse{
		position:absolute;
		left:0;
		right:0;
		top:100%;
		width:100%;
		margin-top:0;
		background:#fff;
		border-radius:0;
		padding:12px max(12px, calc((100vw - 720px) / 2));
		box-shadow:0 14px 28px rgba(9,30,66,0.13);
		border:0;
		border-top:1px solid #e6edf0;
		border-bottom:1px solid #e6edf0;
		opacity:0;
		transform:translateY(-6px);
		transition:opacity 0.2s ease, transform 0.2s ease;
		z-index:1050;
		box-sizing:border-box;
	}
	.header-nav .navbar-collapse.show{opacity:1;transform:translateY(0);}
	.header-nav .navbar-nav{width:100%;row-gap:10px;}
	.header-nav .nav-item{width:100%;}
	.header-nav .nav-link{
		display:flex;
		width:100%;
		padding:13px 14px;
		border-radius:10px;
		background:#f5f7f6;
	}
	.header-nav .nav-link.active::after{display:none;}
}

@media (max-width:767px){
	.header-nav .navbar-collapse{
		padding-left:12px;
		padding-right:12px;
	}
}

@keyframes navDrop{
	from{transform:translateY(-6px);}
	to{transform:translateY(0);}
}
