* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: Inter, system-ui, sans-serif;
	color: #16233F;
	background: #FFFFFF;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	display: block;
}

a {
	color: inherit;
}

.wrap {
	width: min(1160px,92vw);
	margin: 0 auto;
}

h1,h2,h3 {
	font-family: Chivo, system-ui, sans-serif;
	line-height: 1.08;
	margin: 0 0 .5em;
}

h1 {
	font-size: clamp(2.3rem,5vw,3.9rem);
	font-weight: 700;
	letter-spacing: -.01em;
}

h2 {
	font-size: clamp(1.8rem,3.3vw,2.7rem);
	font-weight: 700;
}

h3 {
	font-size: 1.2rem;
	font-weight: 600;
}

p {
	margin: 0 0 1em;
}

.eyebrow {
	font-family: Inter;
	font-weight: 800;
	font-size: .75rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #21409D;
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	font-weight: 800;
	font-size: 1rem;
	padding: 15px 28px;
	border-radius: 999px;
	text-decoration: none;
	transition: .18s;
	border: 2px solid transparent;
	white-space: nowrap;
}

.btn-primary {
	background: #FD8001;
	color: #2B1400;
	box-shadow: 0 10px 22px rgba(253,128,1,.35);
}

.btn-primary:hover {
	transform: translateY(-2px);
	background: #FF9A2E;
}

.btn-ghost {
	border-color: rgba(255,255,255,.55);
	color: #fff;
}

.btn-ghost:hover {
	background: rgba(255,255,255,.14);
}

.btn-dark {
	background: #21409D;
	color: #fff;
}

.btn-dark:hover {
	background: #16296B;
}

/* ---------- top bar ---------- */
.topbar {
	background: #16233F;
	color: #DCEAEC;
	font-size: .85rem;
	font-weight: 600;
}

.topbar .wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 9px 0;
	flex-wrap: wrap;
}

.topbar span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #FD8001;
	box-shadow: 0 0 0 4px rgba(140,198,63,.22);
}

/* ---------- .site-header ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255,255,255,.94);
	border-bottom: 1px solid rgba(22,35,63,.12);
}

.site-header .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px 0;
}

.logo {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.logo .mark {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: linear-gradient(140deg,#21409D,#16233F);
	display: grid;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-family: Chivo, system-ui, sans-serif;
	font-weight: 700;
	font-size: 1.05rem;
	letter-spacing: -.03em;
}

.logo b {
	font-family: Chivo, system-ui, sans-serif;
	font-size: 1.08rem;
	font-weight: 700;
	display: block;
	line-height: 1.15;
}

.logo small {
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #21409D;
	font-weight: 800;
}

.nav-row {
	display: flex;
	align-items: center;
	gap: 26px;
	font-weight: 700;
	font-size: .95rem;
}

.nav-row a {
	text-decoration: none;
	color: #14424E;
}

.nav-row a:hover {
	color: #21409D;
}

.nav-phone {
	font-family: Chivo, system-ui, sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	text-decoration: none;
}

@media(max-width:900px) {
	.nav-row .hide-sm {
		display: none;
	}
}

/* ---------- hero ---------- */
.hero {
	position: relative;
	color: #fff;
	overflow: hidden;
	background: #16233F;
}

.hero .bg {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}

.hero .bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero .bg::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: linear-gradient(100deg,rgba(8,32,38,.94) 0%,rgba(8,32,38,.86) 42%,rgba(8,32,38,.35) 100%);
}

.hero .wrap {
	position: relative;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 56px;
	align-items: center;
	padding: 76px 0 84px;
}

.hero h1 {
	color: #fff;
}

.hero h1 em {
	font-style: normal;
	color: #FD8001;
}

.hero p.lede {
	font-size: 1.15rem;
	color: #CFE2E5;
	max-width: 34em;
}

.hero-cta {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin: 28px 0 26px;
}

.badges {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	font-size: .9rem;
	font-weight: 700;
	color: #BFD8DC;
}

.badges span {
	display: flex;
	align-items: center;
	gap: 8px;
}

.tick {
	color: #FD8001;
	font-weight: 800;
}

/* quote card */
.quote-card {
	background: #fff;
	color: #16233F;
	border-radius: 20px;
	padding: 28px;
	box-shadow: 0 18px 44px rgba(22,35,63,.13);
}

.quote-card h3 {
	font-size: 1.45rem;
	margin-bottom: .2em;
}

.quote-card .sub {
	font-size: .9rem;
	color: #5B6785;
	margin-bottom: 18px;
}

.field {
	margin-bottom: 12px;
}

.field label {
	display: block;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #5B6785;
	margin-bottom: 5px;
}

.field input,.field select,.field textarea {
	width: 100%;
	padding: 12px 13px;
	border: 1.5px solid rgba(22,35,63,.12);
	border-radius: 10px;
	font: inherit;
	font-size: .95rem;
	background: #FAFBFF;
}

.field input:focus,.field select:focus,.field textarea:focus {
	outline: none;
	border-color: #21409D;
	background: #fff;
}

.grid2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.quote-card .btn {
	width: 100%;
	justify-content: center;
	margin-top: 8px;
}

.fineprint {
	font-size: .78rem;
	color: #7A9096;
	text-align: center;
	margin: 12px 0 0;
}

/* ---------- trust strip ---------- */
.trust {
	background: #F1F4FB;
	border-bottom: 1px solid rgba(22,35,63,.12);
}

.trust .wrap {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 28px;
	padding: 30px 0;
	text-align: center;
}

.trust .n {
	font-family: Chivo, system-ui, sans-serif;
	font-size: 2.1rem;
	font-weight: 700;
	color: #21409D;
	line-height: 1;
}

.trust .l {
	font-size: .85rem;
	font-weight: 700;
	color: #5B6785;
	margin-top: 4px;
}

.sec {
	padding: 82px 0;
}

.section-head {
	max-width: 44em;
	margin-bottom: 44px;
}

.section-head.center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

/* ---------- services ---------- */
.cards {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 20px;
}

.card {
	border: 1px solid rgba(22,35,63,.12);
	border-radius: 14px;
	padding: 26px;
	background: #fff;
	transition: .2s;
	position: relative;
}

.card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 44px rgba(22,35,63,.13);
	border-color: transparent;
}

.card .ico {
	width: 44px;
	height: 44px;
	border-radius: 11px;
	background: #EAF2F2;
	display: grid;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
	margin-bottom: 14px;
}

.card p {
	font-size: .95rem;
	color: #55617D;
	margin-bottom: 0;
}

.card .more {
	display: inline-block;
	margin-top: 14px;
	font-weight: 800;
	font-size: .87rem;
	color: #21409D;
	text-decoration: none;
}

.card.feature {
	background: linear-gradient(150deg,#16233F,#14424E);
	color: #fff;
	border-color: transparent;
}

.card.feature p {
	color: #C6DBDE;
}

.card.feature .ico {
	background: rgba(255,255,255,.12);
}

.card.feature .more {
	color: #FD8001;
}

.pill {
	position: absolute;
	top: 18px;
	right: 18px;
	background: #FD8001;
	color: #173300;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
}

/* ---------- process ---------- */
.process {
	background: #EAF2F2;
}

.steps {
	display: grid;
	grid-template-columns: repeat(4,1fr);
	gap: 22px;
	counter-reset: s;
}

.step {
	background: #fff;
	border-radius: 14px;
	padding: 26px 24px;
	position: relative;
}

.step::before {
	counter-increment: s;
	content: "0" counter(s);
	font-family: Chivo, system-ui, sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	color: #21409D;
	opacity: .35;
	display: block;
	margin-bottom: 8px;
}

.step h3 {
	font-size: 1.08rem;
}

.step p {
	font-size: .92rem;
	color: #55617D;
	margin: 0;
}

/* ---------- reviews ---------- */
.reviews {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 20px;
}

.review {
	border: 1px solid rgba(22,35,63,.12);
	border-radius: 14px;
	padding: 26px;
	background: #fff;
}

.stars {
	color: #FD8001;
	letter-spacing: 2px;
	margin-bottom: 10px;
}

.review p {
	font-size: .98rem;
	color: #33525A;
}

.review .who {
	font-weight: 800;
	font-size: .88rem;
	color: #16233F;
}

.awards {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 38px;
}

.award {
	border: 1.5px solid rgba(22,35,63,.12);
	border-radius: 999px;
	padding: 9px 18px;
	font-weight: 800;
	font-size: .85rem;
	color: #14424E;
	background: #fff;
}

/* ---------- areas ---------- */
.areas {
	background: #16233F;
	color: #fff;
}

.areas .wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}

.areas h2 {
	color: #fff;
}

.areas p {
	color: #C6DBDE;
}

.chips {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 8px;
}

.chip {
	border: 1px solid rgba(255,255,255,.22);
	border-radius: 999px;
	padding: 8px 15px;
	font-size: .88rem;
	font-weight: 600;
	color: #DCEAEC;
}

/* ---------- faq ---------- */
.faq-item {
	border-bottom: 1px solid rgba(22,35,63,.12);
	padding: 18px 0;
}

.faq-q {
	cursor: pointer;
	font-weight: 800;
	font-size: 1.05rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 16px;
}

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

/* ---------- final cta ---------- */
.finalcta {
	background: linear-gradient(120deg,#16296B,#21409D);
	color: #fff;
	text-align: center;
}

.finalcta h2 {
	color: #fff;
}

.finalcta p {
	color: #DBE2F6;
	max-width: 38em;
	margin: 0 auto 26px;
}

.finalcta .row {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
}

.site-footer {
	background: #0D1730;
	color: #A9B4CE;
	font-size: .9rem;
	padding: 52px 0 30px;
}

.fgrid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 40px;
	margin-bottom: 34px;
}

.site-footer h4 {
	color: #fff;
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin: 0 0 14px;
}

.site-footer a {
	color: #A9B4CE;
	text-decoration: none;
	display: block;
	margin-bottom: 8px;
}

.site-footer a:hover {
	color: #fff;
}

.legal {
	border-top: 1px solid rgba(255,255,255,.1);
	padding-top: 20px;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-size: .82rem;
}

/* sticky mobile call bar */
.callbar {
	display: none;
}

@media(max-width:980px) {
	.hero .wrap {
		grid-template-columns: 1fr;
		gap: 36px;
		padding: 54px 0 60px;
	}
	
	.cards,.steps,.reviews {
		grid-template-columns: 1fr 1fr;
	}
	
	.trust .wrap {
		grid-template-columns: 1fr 1fr;
		gap: 22px;
	}
	
	.areas .wrap {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	
	.fgrid {
		grid-template-columns: 1fr 1fr;
	}
}

@media(max-width:640px) {
	.sec {
		padding: 56px 0;
	}
	
	.nav-phone {
		display: none;
	}
	
	.logo b {
		font-size: .98rem;
		max-width: none;
	}
	
	.logo small {
		font-size: .62rem;
	}
	
	.site-header .wrap {
		gap: 12px;
		padding: 11px 0;
	}
	
	.btn {
		padding: 13px 20px;
		font-size: .94rem;
	}
	
	.cards,.steps,.reviews,.fgrid {
		grid-template-columns: 1fr;
	}
	
	.topbar {
		font-size: .78rem;
	}
	
	body {
		padding-bottom: 68px;
	}
	
	.callbar {
		display: flex;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 80;
		box-shadow: 0 -6px 20px rgba(0,0,0,.18);
	}
	
	.callbar a {
		flex: 1;
		text-align: center;
		padding: 17px 8px;
		font-weight: 800;
		text-decoration: none;
		font-size: .98rem;
	}
	
	.callbar .c1 {
		background: #FD8001;
		color: #2B1400;
	}
	
	.callbar .c2 {
		background: #16233F;
		color: #fff;
	}
}

/* ---- this page is a full-bleed landing page: hide theme chrome ---- */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > footer.wp-block-template-part,
.wp-block-post-title, .wp-block-template-part.site-header,
.wp-block-template-part.site-footer {
	display: none !important;
}

.wp-site-blocks, .wp-block-group, .entry-content, .wp-block-post-content, main,
.wp-block-group__inner-container {
	max-width: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

.entry-content > *, .wp-block-post-content > * {
	max-width: none !important;
}

body {
	margin: 0 !important;
	overflow-x: hidden;
}

/* ---- FAQ: no , so items render open ---- */
.faq-item {
	border-bottom: 1px solid rgba(22,35,63,.12);
	padding: 18px 0;
}

.faq-q {
	font-weight: 800;
	font-size: 1.05rem;
	display: block;
	margin-bottom: 8px;
}

.faq-item p {
	margin: 0;
	color: #55617D;
}

/* ---- Jetpack shortcode form, skinned to the concept ---- */
.quote-card .contact-form {
	margin: 0;
}

.quote-card .grunion-field-wrap {
	margin-bottom: 12px;
}

.quote-card .grunion-field-label {
	display: block;
	font-family: Inter, system-ui, sans-serif;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #5B6785;
	margin-bottom: 5px;
}

.quote-card input[type=text], .quote-card input[type=email], .quote-card input[type=tel],
.quote-card select, .quote-card textarea {
	width: 100%;
	padding: 12px 13px;
	border: 1.5px solid rgba(22,35,63,.12);
	border-radius: 10px;
	font: inherit;
	font-size: .95rem;
	background: #FAFBFF;
	box-shadow: none;
}

.quote-card input:focus, .quote-card select:focus, .quote-card textarea:focus {
	outline: none;
	border-color: #21409D;
	background: #fff;
}

.quote-card button[type=submit], .quote-card .pushbutton-wide {
	width: 100%;
	background: #FD8001;
	color: #2B1400;
	border: none;
	font-family: Inter, system-ui, sans-serif;
	font-weight: 800;
	font-size: 1rem;
	padding: 15px 28px;
	border-radius: 999px;
	box-shadow: 0 10px 22px rgba(253,128,1,.35);
	cursor: pointer;
	margin-top: 8px;
}

.quote-card button[type=submit]:hover {
	background: #FF9A2E;
}

.mnav {
	display: none;
	position: relative;
}

.mnav summary {
	list-style: none;
	cursor: pointer;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(22,35,63,.2);
	border-radius: 8px;
}

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

.bars {
	position: relative;
	display: block;
	width: 19px;
	height: 2px;
	background: #16233F;
}

.bars:before,.bars:after {
	content: "";
	position: absolute;
	left: 0;
	width: 19px;
	height: 2px;
	background: #16233F;
}

.bars:before {
	top: -6px;
}

.bars:after {
	top: 6px;
}

.mnav[open] summary {
	background: #16233F;
	border-color: #16233F;
}

.mnav[open] .bars,.mnav[open] .bars:before,.mnav[open] .bars:after {
	background: #fff;
}

.mpanel {
	position: absolute;
	right: 0;
	top: 54px;
	background: #fff;
	border: 1px solid rgba(22,35,63,.14);
	border-radius: 12px;
	box-shadow: 0 16px 44px rgba(22,35,63,.18);
	padding: 14px;
	display: grid;
	gap: 4px;
	min-width: 236px;
	z-index: 60;
}

.mpanel a {
	font-weight: 700;
	font-size: .95rem;
	padding: 11px 12px;
	border-radius: 8px;
	color: #16233F;
}

.mpanel a:hover {
	background: #F1F4FB;
}

.mpanel .btn {
	margin-top: 8px;
	text-align: center;
	justify-content: center;
}

@media(max-width:820px) {
	.mnav {
		display: block;
	}
	
	.site-header .btn-dark,.nav-phone {
		display: none;
	}
	
	.logo small {
		display: none;
	}
	
	.logo b {
		font-size: .98rem;
		line-height: 1.15;
	}
	
	.mark {
		width: 36px;
		height: 36px;
		font-size: .85rem;
	}
	
	.nav-row {
		gap: 12px;
	}
}

/* header CTA -> hero amber */
.site-header .btn-dark {
	background: #FD8001;
	color: #2B1400;
	box-shadow: 0 8px 18px rgba(253,128,1,.35);
}

.site-header .btn-dark:hover {
	background: #FF9A2E;
}

/* ---------- LRP additions ---------- */
.hero {
	background: #16296B;
}

.hero .bg::after {
	background: linear-gradient(100deg,rgba(13,23,48,.95) 0%,rgba(22,41,107,.88) 44%,rgba(22,41,107,.30) 100%);
}

.areas {
	background: #16296B;
}

.finalcta {
	background: #16296B;
}

.process {
	background: #F1F4FB;
}

.card .ico img, .card img.thumb {
	width: 100%;
	height: 168px;
	object-fit: cover;
	border-radius: 12px;
	margin-bottom: 16px;
	display: block;
}

.card .ico {
	background: none;
	width: auto;
	height: auto;
	margin: 0;
}

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

.proj {
	border: 1px solid rgba(22,35,63,.12);
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
}

.proj img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}

.proj .cap {
	padding: 16px 18px 20px;
}

.proj .cap b {
	display: block;
	font-size: 1.08rem;
	color: #16233F;
	margin-bottom: 4px;
}

.proj .cap span {
	font-size: .9rem;
	color: #5B6785;
}

.split {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 46px;
	align-items: center;
}

.split img {
	width: 100%;
	border-radius: 18px;
	display: block;
}

.checklist {
	display: grid;
	gap: 11px;
	margin: 20px 0 26px;
}

.checklist span {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-weight: 600;
}

@media(max-width:980px) {
	.logogrid {
		grid-template-columns: 1fr 1fr;
	}
	
	.split {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

@media(max-width:640px) {
	.logogrid {
		grid-template-columns: 1fr;
	}
}

/* ---------- interior pages (added 2026-08-24) ---------- */
.hero.phero .wrap {
	grid-template-columns: 1fr;
	padding: 62px 0 66px;
}

.hero.phero p.lede {
	max-width: 46em;
}

.has-drop {
	position: relative;
	display: inline-block;
}

.has-drop > .drop {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 20px 44px rgba(12,22,40,.20);
	padding: 10px;
	min-width: 330px;
	z-index: 80;
}

.has-drop:hover > .drop {
	display: block;
}

.has-drop > .drop a {
	display: block;
	padding: 9px 12px;
	border-radius: 10px;
	color: #16233F;
	font-weight: 700;
	font-size: .95rem;
}

.has-drop > .drop a:hover {
	background: #F2F5FA;
	color: #21409D;
}

.incl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 13px 34px;
}

.incl span {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-weight: 600;
	color: #16233F;
}

.quoteband {
	background: #16233F;
}

.quoteband h2 {
	color: #fff;
}

.quoteband .section-head p {
	color: #CFE2E5;
}

.quoteband .quote-card {
	max-width: 780px;
	margin: 26px auto 0;
}

@media(max-width:900px) {
	.has-drop.hide-sm {
		display: none;
	}
}

@media(max-width:820px) {
	.incl {
		grid-template-columns: 1fr;
	}
}

/* ---------- industries band (2026-08-24) ---------- */
.areas .indgrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.areas .ind {
	border: 1px solid rgba(255,255,255,.20);
	border-radius: 14px;
	padding: 16px 18px;
	background: rgba(255,255,255,.05);
}

.areas .ind b {
	display: block;
	font-family: Chivo, system-ui, sans-serif;
	font-size: 1rem;
	color: #fff;
	margin-bottom: 5px;
}

.areas .ind span {
	font-size: .87rem;
	color: #C6DBDE;
	line-height: 1.5;
}

@media(max-width:820px) {
	.areas .wrap {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	
	.areas .indgrid {
		grid-template-columns: 1fr;
	}
}

.chero {
	min-height: auto;
	padding: 120px 0 70px;
	background: #21409D;
}

.chero h1 {
	max-width: 16ch;
}

.cgrid {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: 38px;
	align-items: start;
}

.cinfo h2 {
	margin-bottom: 22px;
}

.cinfo .ci {
	border-left: 3px solid #FD8001;
	padding: 4px 0 4px 16px;
	margin-bottom: 24px;
}

.cinfo .ci b {
	display: block;
	font-family: Chivo, system-ui, sans-serif;
	font-size: .8rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #6B7B8C;
	margin-bottom: 6px;
}

.cinfo .ci a {
	display: block;
	font-family: Chivo, system-ui, sans-serif;
	font-size: 1.15rem;
	font-weight: 800;
	color: #21409D;
	text-decoration: none;
	line-height: 1.35;
}

.cinfo .ci span {
	display: block;
	margin-top: 6px;
	font-size: .92rem;
	color: #4A5866;
	line-height: 1.6;
}

@media(max-width:820px) {
	.cgrid {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	
	.chero {
		padding: 100px 0 50px;
	}
}

.tgroup {
	font-size: 1.25rem;
	margin: 46px 0 4px;
	padding-top: 26px;
	border-top: 2px solid #FD8001;
	display: inline-block;
}

.tgsub {
	font-size: .95rem;
	color: #55617D;
	margin: 0 0 22px;
}

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

.tm {
	background: #fff;
	border: 1px solid rgba(22,35,63,.12);
	border-radius: 14px;
	padding: 24px;
}

.tm b {
	display: block;
	font-family: Chivo, system-ui, sans-serif;
	font-size: 1.1rem;
	color: #16233F;
	line-height: 1.2;
}

.tm .role {
	display: block;
	font-family: Chivo, system-ui, sans-serif;
	font-size: .74rem;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #21409D;
	font-weight: 800;
	margin: 7px 0 12px;
}

.tm p {
	font-size: .92rem;
	color: #55617D;
	margin: 0 0 10px;
}

.tm p:last-child {
	margin-bottom: 0;
}

@media(max-width:980px) {
	.tgrid {
		grid-template-columns: 1fr 1fr;
	}
}

@media(max-width:640px) {
	.tgrid {
		grid-template-columns: 1fr;
	}
}

/* ---- blog / latest projects ---- */
body.blog .wp-block-post-title, body.single .wp-block-post-title, body.archive .wp-block-post-title {
	display: block !important;
}

.pagehero {
	padding: 76px 0 26px;
	background: #F1F4FB;
}

.pagehero h1 {
	margin-bottom: .3em;
}

.pagehero .sub {
	max-width: 42em;
	margin: 0 auto;
	color: #5B6785;
	font-size: 1.06rem;
}

.projlist {
	padding: 46px 0 70px;
}

.projgrid {
	display: grid !important;
	grid-template-columns: repeat(3,1fr);
	gap: 30px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.projgrid > li {
	background: #fff;
	border: 1px solid #E4E9F4;
	border-radius: 16px;
	overflow: hidden;
	padding: 0 0 20px;
}

.projgrid .wp-block-post-featured-image {
	margin: 0 0 16px;
}

.projgrid .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}

.projgrid .projcard-title {
	font-size: 1.12rem;
	line-height: 1.25;
	margin: 0 20px .5em;
}

.projgrid .projcard-title a {
	text-decoration: none;
	color: #16233F;
}

.projgrid .projcard-title a:hover {
	color: #21409D;
}

.projgrid .wp-block-post-excerpt {
	margin: 0 20px;
	color: #5B6785;
	font-size: .95rem;
}

.projgrid .wp-block-post-excerpt__more-text {
	display: none;
}

.wp-block-query-pagination {
	margin-top: 42px;
	gap: 10px;
	font-weight: 700;
	color: #21409D;
}

.projsingle {
	padding: 64px 0 70px;
}

.wrap.narrow {
	width: min(760px,92vw);
	margin: 0 auto;
}

.projsingle-title {
	font-size: clamp(2rem,4vw,3rem);
	margin: .1em 0 .6em;
}

.projsingle .wp-block-post-featured-image {
	margin: 0 0 34px;
}

.projsingle .wp-block-post-featured-image img {
	border-radius: 16px;
	width: 100%;
	object-fit: cover;
}

.projpost .lede {
	font-size: 1.18rem;
	color: #16233F;
	font-weight: 500;
}

.projpost .factgrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 28px 0 32px;
}

.projpost .fact {
	background: #F1F4FB;
	border-radius: 12px;
	padding: 14px 16px;
}

.projpost .fact b {
	display: block;
	font-size: .74rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #21409D;
	margin-bottom: 4px;
}

.projpost .fact span {
	color: #16233F;
	font-size: .97rem;
}

.projpost p {
	color: #35405C;
}

.projpost .projcta {
	margin-top: 30px;
	font-weight: 600;
	color: #16233F;
}

.projpost .projcta a {
	color: #21409D;
}

@media(max-width:980px) {
	.projgrid {
		grid-template-columns: 1fr 1fr;
	}
}

@media(max-width:640px) {
	.projgrid {
		grid-template-columns: 1fr;
	}
	
	.projpost .factgrid {
		grid-template-columns: 1fr;
	}
	
	.pagehero {
		padding: 54px 0 20px;
	}
}

/* ---- blog grid overrides (2026-08-24) ---- */
.projlist .wp-block-query {
	max-width: none;
	width: min(1160px,92vw);
	margin-left: auto;
	margin-right: auto;
}

.projgrid.is-layout-grid, ul.projgrid, .projgrid {
	display: grid !important;
	grid-template-columns: repeat(3,minmax(0,1fr)) !important;
	gap: 30px !important;
}

.projgrid > li {
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.projgrid .projcard-title {
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
}

.projgrid .wp-block-post-featured-image img {
	aspect-ratio: 4/3;
	height: auto;
}

@media(max-width:980px) {
	.projgrid.is-layout-grid, ul.projgrid, .projgrid {
		grid-template-columns: repeat(2,minmax(0,1fr)) !important;
	}
}

@media(max-width:640px) {
	.projgrid.is-layout-grid, ul.projgrid, .projgrid {
		grid-template-columns: minmax(0,1fr) !important;
	}
}

/* hide Jetpack's auto-appended date format hint on the date label */
.quote-card .grunion-field-label.date {
	font-size: 0;
}

.quote-card .grunion-field-label.date::after {
	content: "Target start date";
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #5B6785;
}

/* ---------- mobile nav accordions ---------- */
.mpanel {
	max-height: 76vh;
	overflow-y: auto;
}

.macc summary {
	list-style: none;
	cursor: pointer;
	font-weight: 700;
	font-size: .95rem;
	padding: 11px 34px 11px 12px;
	border-radius: 8px;
	color: #16233F;
	display: block;
	position: relative;
}

.macc summary::marker {
	content: "";
	font-size: 0;
}

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

.macc summary::after {
	content: "\25BE";
	font-size: .8rem;
	position: absolute;
	right: 12px;
	top: 11px;
	transition: transform .18s ease;
}

.macc[open] summary {
	background: #F1F4FB;
}

.macc[open] summary::after {
	transform: rotate(180deg);
}

.msub {
	display: grid;
	gap: 2px;
	margin: 2px 0 8px 12px;
	padding-left: 8px;
	border-left: 2px solid rgba(22,35,63,.14);
}

.msub a {
	font-weight: 600;
	font-size: .9rem;
	padding: 9px 10px;
}

@media(max-width:900px) {
	.mnav {
		display: block;
	}
}

/* mobile nav accordion: override theme summary box */
.mpanel .macc > summary {
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	background: transparent !important;
	background-color: transparent !important;
	color: #16233F !important;
	border: 0 !important;
	box-shadow: none !important;
	text-align: left;
}

.mpanel .macc[open] > summary {
	background: #F1F4FB !important;
}