:root{
	--navy:#074d7c;
	--navy-dark:#073754;
	--orange:#ef6d22;
	--blue:#2a7fb1;
	--light-blue:#88b5cc;
	--red:#c7473d;
	--ink:#173f59;
	--muted:#5e7381;
	--line:#d7e0e6;
	--wash:#f2f6f8;
	--white:#fff;
}

*{
	box-sizing:border-box;
}

html{
	scroll-behavior:smooth;
}

body{
	margin:0;
	color:var(--ink);
	font-family:"Raleway",Arial,sans-serif;
	background:#fff;
}

.single-content h1+*, .single-content h2+* {
    margin-top: 68px;
}

.kt-inside-inner-col h3 {
    margin-top: 0px !important;
}

.homepage-refresh{
	overflow:hidden;
}

.container{
	width:min(1140px,calc(100% - 40px));
	margin:auto;
}

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

.section-title{
	margin:0;
	text-align:center;
	color:var(--navy);
	font-family:"Montserrat",sans-serif;
	font-size:clamp(28px,3vw,42px);
	line-height:1.18;
	font-weight:700;
}

.section-title.compact{
	max-width:900px;
	margin:auto;
	font-size:clamp(25px,2.5vw,36px);
	font-weight: 700 !important;
}

.title-rule{
	width:92px;
	height:4px;
	margin:20px auto 45px;
	background:var(--orange);
}

.service-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:26px;
}

.service-card{
	min-height:460px;
	padding:38px 42px;
	border:1px solid #c9d4dc;
	background:var(--white);
	box-shadow:0 7px 20px rgba(18,61,88,.06);
}

.service-icon{
	width:68px;
	height:68px;
	margin:0 auto 20px;
	color:var(--orange);
}

.service-icon svg{
	width:100%;
	height:100%;
	fill:none;
	stroke:currentColor;
	stroke-width:2.3;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.service-card h2{
	margin:0 0 10px;
	text-align:center;
	color:var(--navy);
	font-family:"Montserrat",sans-serif;
	font-size:25px;
}

.card-lead{
	min-height:55px;
	margin:0 0 18px;
	text-align:center;
	color:#445e6f;
	font-size:16px;
	line-height:1.55;
}

.service-card ul{
	display:grid;
	gap:10px;
	margin:0;
	padding:0;
	list-style:none;
	color:#4b6271;
	font-size:16px;
}

.service-card li{
	position:relative;
	padding-left:25px;
}

.service-card li:before{
	content:"✓";
	position:absolute;
	left:0;
	color:var(--orange);
	font-weight:800;
}

.programs{
	background:var(--wash);
}

.program-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:26px;
	margin-top:48px;
}

.program-card{
	position:relative;
	display:flex;
	min-height:330px;
	flex-direction:column;
	align-items:center;
	padding:48px 34px 36px;
	border-top:5px solid var(--blue);
	background:#fff;
	text-align:center;
	box-shadow:0 7px 22px rgba(28,61,79,.08);
}

.program-card.featured{
	border:2px solid var(--orange);
	border-top-width:5px;
}

.program-card.market{
	border-top-color:var(--navy-dark);
}

.popular{
	position:absolute;
	top:-5px;
	left:50%;
	min-width:144px;
	transform:translate(-50%,-100%);
	padding:8px 14px;
	border-radius:4px 4px 0 0;
	background:var(--orange);
	color:#fff;
	font-size:12px;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
}

.eyebrow{
	margin:0 0 10px;
	color:var(--orange)!important;
	font-size:13px!important;
	font-weight:800;
	letter-spacing:.12em;
	text-transform:uppercase;
}

.program-card h3{
	margin:0 0 15px;
	color:var(--navy);
	font-family:"Montserrat",sans-serif;
	font-size:29px;
}

.program-card p{
	margin:0 auto 26px;
	color:#526b79;
	font-size:17px;
	line-height:1.5;
}

.program-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	margin-top:auto;
	padding:13px 24px;
	border-radius:2px;
	background:var(--orange) !important;
	color:#fff;
	text-decoration:none;
	font-size:14px;
	font-weight:800;
	letter-spacing:.02em;
	box-shadow:0 5px 13px rgba(222,88,15,.24);
	transition:transform .2s,background .2s;
}

.program-button:hover,.program-button:focus-visible{
	transform:translateY(-2px);
	background:#044d7f !important;
	text-decoration: none !important;
	color: #fff !important;
}

.program-button:focus-visible{
	outline:3px solid rgba(239,109,34,.3);
	outline-offset:3px;
}

.growth{
	padding:72px 0;
}

.growth-layout{
	display:grid;
	grid-template-columns:.75fr 1.45fr;
	gap:42px;
	align-items:center;
}

.growth-copy h2{
	margin:0 0 18px;
	color:var(--navy);
	font-family:"Montserrat",sans-serif;
	font-size:clamp(31px,3.4vw,44px);
	line-height:1.1;
}

.growth-copy h2:after{
	content:"";
	display:block;
	width:78px;
	height:4px;
	margin-top:19px;
	background:var(--orange);
}

.growth-copy>p{
	color:#315c78;
	font-size:17px;
	line-height:1.55;
}

.growth-copy .growth-promise{
	margin-top:25px;
	color:var(--navy);
	font-size:20px;
	font-weight:800;
	line-height:1.28;
	text-align: left !important;
}

.growth-promise span{
	color:var(--orange);
}

.growth-wheel{
	position:relative;
	min-height:470px;
}

.orbit{
	position:absolute;
	z-index:1;
	inset:17px 0 0;
	width:100%;
	height:430px;
	overflow:visible;
}

.orbit path{
	fill:none;
	stroke:#8cafc7;
	stroke-width:3;
	marker-end:url(#arrowhead);
}

.orbit polygon{
	fill:#8cafc7;
}

.wheel-center{
	position:absolute;
	z-index:5;
	top:50%;
	left:50%;
	display:flex;
	width:148px;
	height:148px;
	transform:translate(-50%,-50%);
	flex-direction:column;
	align-items:center;
	justify-content:center;
	border:8px solid #dce9f0;
	border-radius:50%;
	background:linear-gradient(145deg,#0b5b91,#073f6a);
	text-align:center;
	box-shadow:0 0 0 1px #b8d0de;
}

.wheel-center:before,.wheel-center:after{
	content:"";
	position:absolute;
	top:50%;
	width:0;
	height:0;
	border-top:8px solid transparent;
	border-bottom:8px solid transparent;
}

.wheel-center:before{
	left:-17px;
	border-right:10px solid #0b5b91;
}

.wheel-center:after{
	right:-17px;
	border-left:10px solid #0b5b91;
}

.wheel-center strong{
	color:#fff;
	font-family:"Montserrat",sans-serif;
	font-size:17px;
	line-height:1.12;
}

.wheel-center>span:last-child{
	margin-top:7px;
	color:#fff;
	font-size:9px;
	font-weight:700;
	line-height:1.25;
	text-transform:uppercase;
}

.roof-mark{
	position:relative;
	width:31px;
	height:20px;
	margin:0 0 2px!important;
	border-top:6px solid #1479b7;
	transform:skewY(-36deg);
	opacity:.9;
}

.roof-mark:after{
	content:"";
	position:absolute;
	top:-6px;
	right:-12px;
	width:25px;
	height:20px;
	border-top:6px solid #1479b7;
	transform:skewY(55deg);
}

.wheel-step{
	position:absolute;
	z-index:4;
	display:flex;
	width:208px;
	min-height:79px;
	align-items:center;
	justify-content:center;
	padding:22px 13px 14px;
	border-radius:13px;
	color:#fff;
	text-align:center;
	box-shadow:0 5px 12px rgba(17,61,88,.12);
}

.wheel-step .step-icon{
	position:absolute;
	top:-38px;
	left:50%;
	display:grid;
	width:58px;
	height:58px;
	margin:0;
	transform:translateX(-50%);
	place-items:center;
	border:2px solid currentColor;
	border-radius:50%;
	background:#fff;
}

.step-icon svg{
	width:37px;
	height:37px;
	fill:none;
	stroke:currentColor;
	stroke-width:2.3;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.wheel-step strong{
	display:block;
	color:#fff;
	font-family:"Montserrat",sans-serif;
	font-size:13px;
	line-height:1.2;
	text-transform:uppercase;
}

.wheel-step div>span{
	display:block;
	margin-top:4px;
	color:#fff;
	font-size:11px;
	line-height:1.2;
}

.step-one{
	top:14px;
	left:50%;
	transform:translateX(-50%);
	background:#096696;
	color:#096696;
}

.step-one div,.step-two div,.step-three div,.step-four div{
	color:#fff;
}

.step-two{
	top:50%;
	right:0;
	transform:translateY(-50%);
	background:#ff5f0a;
	color:#ff5f0a;
}

.step-three{
	bottom:0;
	left:50%;
	transform:translateX(-50%);
	background:#78a9c5;
	color:#78a9c5;
}

.step-four{
	top:50%;
	left:0;
	transform:translateY(-50%);
	background:#c8251d;
	color:#c8251d;
}

.benefits{
	padding:40px 0;
	background:var(--navy-dark);
	color:#fff;
}

.benefit-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:40px;
}

.benefit{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:18px;
}

.benefit svg{
	width:52px;
	height:52px;
	fill:none;
	stroke:var(--orange);
	stroke-width:2;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.benefit p{
	margin:0;
	font-size:16px;
	line-height:1.45;
}

.benefit strong{
	font-family:"Montserrat",sans-serif;
	font-size:17px;
}

.final-cta{
	position:relative;
	display:grid;
	min-height:380px;
	place-items:center;
	background:url("assets/cta-background.jpg") center 53%/cover no-repeat;
}

.cta-overlay{
	position:absolute;
	inset:0;
	background:linear-gradient(90deg,rgba(6,40,62,.91),rgba(6,54,82,.81));
}

.cta-content{
	position:relative;
	z-index:1;
	text-align:center;
	color:#fff;
}

.cta-content h2{
	margin:0 0 14px;
	font-family:"Montserrat",sans-serif;
	font-size:clamp(30px,3.3vw,45px);
}

.cta-content p{
	margin:0 0 28px;
	font-size:19px;
}

.cta-content .button{
	margin-top:0;
	padding-inline:29px;
}

@media(max-width:940px){
	.service-grid,.program-grid{
		grid-template-columns:1fr;
	}
	.service-card{
		min-height:0;
	}
	.card-lead{
		min-height:0;
	}
	.program-card{
		min-height:290px;
	}
	.program-card.featured{
		margin-top:25px;
	}
	.growth-layout{
		grid-template-columns:1fr;
		gap:35px;
	}
	.growth-copy{
		text-align:center;
	}
	.growth-copy h2:after{
		margin-inline:auto;
	}
	.growth-wheel{
		max-width:650px;
		width:100%;
		margin:auto;
	}
	.benefit-grid{
		gap:20px;
	}
	.benefit{
		flex-direction:column;
		text-align:center;
	}
}

@media(max-width:680px){
	.container{
		width:min(100% - 28px,1140px);
	}
	.section-pad{
		padding:40px 0;
	}
	.service-card{
		padding:32px 28px;
	}
	.program-card{
		padding-inline:24px;
	}
	.growth{
		padding:60px 0;
	}
	.growth-wheel{
		display:grid;
		min-height:0;
		gap:46px;
	}
	.orbit{
		display:none;
	}
	.wheel-center{
		position:relative;
		top:auto;
		left:auto;
		width:158px;
		height:158px;
		margin:0 auto 3px;
		transform:none;
	}
	.wheel-center:before,.wheel-center:after{
		display:none;
	}
	.wheel-step{
		position:relative;
		top:auto!important;
		right:auto!important;
		bottom:auto!important;
		left:auto!important;
		width:100%;
		min-height:82px;
		transform:none!important;
		padding:24px 18px 15px;
	}
	.benefit-grid{
		grid-template-columns:1fr;
	}
	.benefit{
		flex-direction:row;
		justify-content:flex-start;
		text-align:left;
	}
	.final-cta{
		min-height:420px;
		padding:55px 0;
	}
	.cta-content p{
		font-size:17px;
	}
}

@media(prefers-reduced-motion:reduce){
	html{
		scroll-behavior:auto;
	}
	.button{
		transition:none;
	}
}
