:root {
	--navy:#05213d;
	--navy-2:#0a355d;
	--blue:#0e5d95;
	--blue-bright:#187ab8;
	--steel:#666b70;
	--steel-light:#a7adb3;
	--ice:#eef4f8;
	--white:#ffffff;
	--ink:#15202b;
	--muted:#66727f;
	--line:#d9e1e7;
	--shadow:0 18px 45px rgba(4,32,58,.14);
	--radius:18px;
	--max:1180px;
}

* {
	box-sizing:border-box
}

html {
	scroll-behavior:smooth
}

body {
	margin:0;
	font-family:Inter,Arial,sans-serif;
	color:var(--ink);
	background:#fff;
	line-height:1.6
}

a {
	color:inherit
}

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

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

.site-header {
	position:sticky;
	top:0;
	z-index:20;
	background:rgba(255,255,255,.96);
	backdrop-filter:blur(12px);
	border-bottom:1px solid rgba(5,33,61,.1)
}

.nav-wrap {
	height:84px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px
}

.brand {
	display:block;
	width:250px
}

.brand img {
	width:100%;
	height:66px;
	object-fit:cover;
	object-position:50% 31%
}

.site-nav {
	display:flex;
	gap:26px;
	align-items:center
}

.site-nav a {
	text-decoration:none;
	font-size:.93rem;
	font-weight:700;
	color:var(--navy);
	position:relative
}

.site-nav a:after {
	content:"";
	position:absolute;
	left:0;
	right:100%;
	bottom:-8px;
	height:2px;
	background:var(--blue);
	transition:.2s
}

.site-nav a:hover:after,.site-nav a.active:after {
	right:0
}

.nav-cta {
	padding:10px 16px;
	border-radius:10px;
	background:var(--navy)!important;
	color:#fff!important
}

.nav-cta:after {
	display:none
}

.menu-toggle {
	display:none;
	background:none;
	border:0;
	font-size:1.6rem;
	color:var(--navy)
}

.hero {
	min-height:660px;
	position:relative;
	display:flex;
	align-items:center;
	overflow:hidden;
	background:var(--navy)
}

.hero-image {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center
}

.hero-overlay {
	position:absolute;
	inset:0;
	background:linear-gradient(90deg,rgba(2,21,40,.92) 0%,rgba(2,21,40,.74) 38%,rgba(2,21,40,.18) 72%,rgba(2,21,40,.1) 100%)
}

.hero-content {
	position:relative;
	color:#fff;
	padding:100px 0 90px;
	max-width:850px;
	margin-left:max(20px,calc((100vw - var(--max))/2))
}

.eyebrow,.section-kicker {
	text-transform:uppercase;
	letter-spacing:.18em;
	font-size:.77rem;
	font-weight:800;
	color:var(--blue-bright)
}

.hero .eyebrow {
	color:#b9ddf5
}

.hero h1 {
	font-size:clamp(2.5rem,5vw,4.8rem);
	line-height:1.04;
	margin:14px 0 22px;
	max-width:900px
}

.hero-copy {
	font-size:1.17rem;
	max-width:720px;
	color:#e6edf3
}

.hero-actions {
	display:flex;
	gap:14px;
	margin-top:34px;
	flex-wrap:wrap
}

.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:13px 20px;
	border-radius:10px;
	text-decoration:none;
	font-weight:800;
	border:1px solid transparent;
	transition:.2s
}

.btn-primary {
	background:var(--blue);
	color:#fff
}

.btn-primary:hover {
	background:var(--blue-bright);
	transform:translateY(-1px)
}

.btn-secondary {
	border-color:rgba(255,255,255,.65);
	color:#fff;
	background:rgba(255,255,255,.08)
}

.btn-light {
	background:#fff;
	color:var(--navy)
}

.page-hero {
	background:linear-gradient(125deg,var(--navy),var(--navy-2));
	color:#fff;
	padding:95px 0 84px;
	position:relative;
	overflow:hidden
}

.page-hero:after {
	content:"";
	position:absolute;
	right:-120px;
	top:-160px;
	width:520px;
	height:520px;
	border:1px solid rgba(255,255,255,.14);
	border-radius:50%;
	box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.018)
}

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

.page-hero h1 {
	font-size:clamp(2.4rem,5vw,4.2rem);
	margin:10px 0 18px;
	line-height:1.08
}

.page-hero p {
	max-width:760px;
	color:#d7e3ec;
	font-size:1.12rem
}

.crumbs {
	font-size:.85rem;
	color:#a9bfd2
}

.crumbs a {
	text-decoration:none;
	color:#fff
}

.section {
	padding:86px 0
}

.section-alt {
	background:var(--ice)
}

.section-dark {
	background:linear-gradient(145deg,#031b31,#082d4f);
	color:#fff
}

.section h2 {
	font-size:clamp(2rem,3.6vw,3.25rem);
	line-height:1.12;
	margin:8px 0 20px;
	color:var(--navy)
}

.section-dark h2,.light {
	color:#fff!important
}

.split {
	display:grid;
	grid-template-columns:1fr 1.15fr;
	gap:70px;
	align-items:start
}

.prose p {
	margin-top:0;
	color:#4f5c67;
	font-size:1.04rem
}

.section-dark .prose p {
	color:#d6e2eb
}

.service-grid,.card-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:26px;
	margin-top:36px
}

.service-card,.info-card {
	border-radius:var(--radius);
	padding:34px;
	background:#fff;
	color:var(--ink);
	box-shadow:var(--shadow);
	border:1px solid #e8edf1
}

.service-card .service-number {
	font-size:.8rem;
	letter-spacing:.15em;
	font-weight:800;
	color:var(--blue)
}

.service-card h3,.info-card h3 {
	font-size:1.55rem;
	color:var(--navy);
	margin:10px 0 12px
}

.service-card p,.info-card p {
	color:var(--muted)
}

.service-card ul,.feature-list {
	padding-left:20px;
	color:#34424e
}

.service-card li,.feature-list li {
	margin:.55rem 0
}

.service-card .text-link {
	display:inline-block;
	margin-top:12px;
	color:var(--blue);
	font-weight:800;
	text-decoration:none
}

.values-heading {
	display:flex;
	justify-content:space-between;
	gap:40px;
	align-items:end
}

.values-heading>p {
	max-width:480px;
	color:var(--muted)
}

.values-grid {
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:18px;
	margin-top:32px
}

.value-card {
	padding:24px;
	border:1px solid var(--line);
	border-radius:14px;
	background:#fff
}

.value-card strong {
	display:block;
	color:var(--navy);
	font-size:1.08rem;
	margin-bottom:8px
}

.value-card span {
	color:var(--muted);
	font-size:.94rem
}

.icon-row {
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:20px;
	margin-top:32px
}

.icon-box {
	background:#fff;
	border:1px solid var(--line);
	border-radius:14px;
	padding:24px
}

.icon-box b {
	display:block;
	color:var(--navy);
	font-size:1.03rem;
	margin-bottom:6px
}

.icon-box span {
	color:var(--muted);
	font-size:.93rem
}

.big-number {
	font-size:2.4rem;
	font-weight:800;
	color:var(--blue);
	line-height:1;
	margin-bottom:15px
}

.image-strip {
	height:380px;
	position:relative;
	overflow:hidden
}

.image-strip img {
	width:100%;
	height:100%;
	object-fit:cover
}

.image-strip:after {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(90deg,rgba(2,21,40,.35),rgba(2,21,40,.05))
}

.process {
	counter-reset:step;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:22px;
	margin-top:34px
}

.process article {
	counter-increment:step;
	padding:26px;
	background:#fff;
	border-radius:14px;
	border:1px solid var(--line)
}

.process article:before {
	content:"0" counter(step);
	display:block;
	color:var(--blue);
	font-weight:800;
	letter-spacing:.12em;
	margin-bottom:12px
}

.process h3 {
	color:var(--navy);
	margin:0 0 8px
}

.process p {
	color:var(--muted);
	margin:0
}

.cta-band {
	background:linear-gradient(110deg,var(--navy),var(--blue));
	color:#fff;
	padding:56px 0
}

.cta-band .container {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:30px
}

.cta-band h2 {
	color:#fff;
	margin:0 0 8px;
	font-size:2rem
}

.cta-band p {
	margin:0;
	color:#d7e5ef
}

.contact-grid {
	display:grid;
	grid-template-columns:.85fr 1.15fr;
	gap:50px
}

.contact-panel {
	background:var(--navy);
	color:#fff;
	border-radius:var(--radius);
	padding:34px
}

.contact-panel h3 {
	font-size:1.5rem;
	margin-top:0
}

.contact-panel p {
	color:#d7e3ec
}

.contact-form {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:18px
}

.contact-form label {
	font-weight:700;
	color:var(--navy);
	font-size:.9rem
}

.field {
	display:flex;
	flex-direction:column;
	gap:7px
}

.field.full {
	grid-column:1/-1
}

.contact-form input,.contact-form textarea,.contact-form select {
	font:inherit;
	padding:12px 13px;
	border:1px solid #cdd7de;
	border-radius:9px;
	background:#fff
}

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

.form-note {
	grid-column:1/-1;
	color:var(--muted);
	font-size:.86rem
}

.site-footer {
	background:#02172a;
	color:#cdd8e1;
	padding:38px 0
}

.footer-wrap {
	display:grid;
	grid-template-columns:1.3fr .8fr .8fr;
	gap:35px
}

.footer-brand strong {
	display:block;
	color:#fff;
	font-size:1.05rem
}

.footer-brand span {
	font-size:.88rem
}

.footer-links {
	display:grid;
	gap:6px
}

.footer-links a {
	text-decoration:none;
	color:#cdd8e1
}

.footer-bottom {
	border-top:1px solid rgba(255,255,255,.12);
	margin-top:28px;
	padding-top:20px;
	color:#91a5b6;
	font-size:.85rem
}

.badge {
	display:inline-block;
	padding:7px 10px;
	border-radius:999px;
	background:#e8f2f8;
	color:var(--blue);
	font-weight:800;
	font-size:.77rem
}

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

.industry-card {
	padding:26px;
	border-left:4px solid var(--blue);
	background:#fff;
	box-shadow:0 12px 32px rgba(4,32,58,.08)
}

.industry-card h3 {
	color:var(--navy);
	margin:0 0 8px
}

.industry-card p {
	color:var(--muted);
	margin:0
}

.notice {
	padding:18px 20px;
	border:1px solid #b9d1e0;
	border-radius:12px;
	background:#f0f7fb;
	color:#27445b
}

@media(max-width:950px) {
.menu-toggle {
	display:block
}

.site-nav {
	display:none;
	position:absolute;
	top:84px;
	left:0;
	right:0;
	background:#fff;
	padding:20px;
	flex-direction:column;
	align-items:flex-start;
	border-bottom:1px solid var(--line);
	box-shadow:var(--shadow)
}

.site-nav.open {
	display:flex
}

.split,.contact-grid {
	grid-template-columns:1fr
}

.service-grid,.card-grid {
	grid-template-columns:1fr
}

.values-grid {
	grid-template-columns:repeat(2,1fr)
}

.icon-row,.process {
	grid-template-columns:repeat(2,1fr)
}

.industry-grid {
	grid-template-columns:repeat(2,1fr)
}

.footer-wrap {
	grid-template-columns:1fr 1fr
}

.hero-content {
	margin-left:20px
}

.hero {
	min-height:610px
}

.hero-image {
	object-position:42% center
}

}

@media(max-width:620px) {
.container {
	width:min(var(--max),calc(100% - 28px))
}

.brand {
	width:205px
}

.nav-wrap {
	height:74px
}

.site-nav {
	top:74px
}

.hero {
	min-height:580px
}

.hero-content {
	padding:80px 14px 70px 0
}

.hero-overlay {
	background:rgba(2,21,40,.8)
}

.hero h1 {
	font-size:2.45rem
}

.values-grid,.icon-row,.process,.industry-grid,.footer-wrap,.contact-form {
	grid-template-columns:1fr
}

.field.full {
	grid-column:auto
}

.cta-band .container,.values-heading {
	display:block
}

.cta-band .btn {
	margin-top:20px
}

.section {
	padding:64px 0
}

.page-hero {
	padding:72px 0 62px
}

.image-strip {
	height:260px
}

}

/* Version 4 extensions — intentionally matched to the Version 2 visual system */
.nav-dropdown {
	position:relative;
	display:flex;
	align-items:center
}

.dropdown-toggle {
	appearance:none;
	border:0;
	background:transparent;
	color:var(--navy);
	font:inherit;
	font-size:.93rem;
	font-weight:700;
	padding:0;
	cursor:pointer;
	position:relative
}

.dropdown-toggle:after {
	content:"";
	position:absolute;
	left:0;
	right:100%;
	bottom:-8px;
	height:2px;
	background:var(--blue);
	transition:.2s
}

.nav-dropdown:hover .dropdown-toggle:after,.nav-dropdown.open .dropdown-toggle:after,.nav-dropdown.active .dropdown-toggle:after {
	right:0
}

.dropdown-menu {
	display:none;
	position:absolute;
	top:34px;
	left:-18px;
	min-width:260px;
	padding:10px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:12px;
	box-shadow:var(--shadow)
}

.dropdown-menu a {
	display:block;
	padding:11px 12px;
	border-radius:8px
}

.dropdown-menu a:after {
	display:none
}

.dropdown-menu a:hover,.dropdown-menu a.active {
	background:var(--ice);
	color:var(--blue)
}

.nav-dropdown:hover .dropdown-menu,.nav-dropdown.open .dropdown-menu {
	display:block
}

.service-grid {
	grid-template-columns:repeat(3,minmax(0,1fr))
}

.industry-card {
	padding:0;
	overflow:hidden;
	border-left:0;
	border-radius:14px
}

.industry-card img {
	width:100%;
	height:185px;
	object-fit:cover
}

.industry-card-body {
	padding:24px;
	border-left:4px solid var(--blue);
	min-height:180px
}

.support-band {
	padding:58px 0
}

.support-band .container {
	align-items:flex-start
}

.support-copy {
	max-width:460px
}

.licensing-note {
	margin-top:17px!important;
	font-size:.84rem;
	line-height:1.5;
	color:#c5d8e6!important
}

.support-form {
	width:min(100%,570px);
	background:rgba(255,255,255,.08);
	padding:20px;
	border:1px solid rgba(255,255,255,.18);
	border-radius:14px
}

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

.support-form input,.support-form select,.support-form textarea {
	width:100%;
	font:inherit;
	border:1px solid rgba(255,255,255,.2);
	border-radius:9px;
	background:#fff;
	color:var(--ink);
	padding:11px 12px
}

.support-form textarea {
	grid-column:1/-1;
	min-height:95px;
	resize:vertical
}

.support-form button {
	align-self:stretch
}

.form-status {
	grid-column:1/-1;
	font-size:.87rem;
	color:#e7f0f6;
	min-height:1.4em
}

.form-status.success {
	color:#d9f5e4
}

.form-status.error {
	color:#ffd9d9
}

.hp-field {
	position:absolute!important;
	left:-10000px!important;
	width:1px!important;
	height:1px!important;
	opacity:0!important
}

.contact-form .form-status {
	font-size:.9rem;
	min-height:1.4em
}

.contact-form .form-status.success {
	color:#176b43
}

.contact-form .form-status.error {
	color:#9b2b2b
}

.contact-form button:disabled,.support-form button:disabled {
	opacity:.65;
	cursor:wait
}

@media(max-width:950px) {
.nav-dropdown {
	display:block;
	width:100%
}

.dropdown-toggle {
	width:100%;
	text-align:left
}

.dropdown-menu {
	position:static;
	display:none;
	box-shadow:none;
	border:0;
	border-left:2px solid var(--line);
	border-radius:0;
	margin:12px 0 0 6px;
	padding:0 0 0 14px
}

.nav-dropdown:hover .dropdown-menu {
	display:none
}

.nav-dropdown.open .dropdown-menu {
	display:block
}

.service-grid {
	grid-template-columns:1fr
}

.support-band .container {
	display:grid;
	grid-template-columns:1fr;
	gap:26px
}

.support-form {
	width:100%
}

}

@media(max-width:620px) {
.support-fields {
	grid-template-columns:1fr
}

.support-form textarea,.form-status {
	grid-column:auto
}

.industry-card img {
	height:210px
}

}

/* Project Management call-to-action: preserve the full site container width.
   Do not put .support-copy on .container; .support-copy is width-constrained
   on the home page because it sits beside the support contact form. */
.project-management-cta .container {
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	align-items:center;
	gap:clamp(24px,5vw,72px);
}

.project-management-cta .support-copy {
	max-width:780px;
	min-width:0;
}

.project-management-cta .support-copy p {
	line-height:1.7;
}

.project-management-cta .btn {
	white-space:nowrap;
	margin:0;
}

@media(max-width:950px) {
	.project-management-cta .container {
		grid-template-columns:minmax(0,1fr);
		gap:24px;
	}

	.project-management-cta .support-copy {
		max-width:none;
	}

	.project-management-cta .btn {
		justify-self:start;
	}
}
