.jm-project-grid {
	--jm-project-navy: var(--jm-navy, #002342);
	--jm-project-sky: var(--jm-sky-blue, #3291c9);
	--jm-project-teal: var(--jm-teal, #11bfd0);
	--jm-project-body: var(--jm-font-body, 1.1rem);
	color: #fff;
}

body.page-id-2115 .et_pb_section_1 {
	background-color: #002342 !important;
	background-image: none !important;
}

body.page-id-2115 .et_pb_section_1 .jm-web-features-intro,
body.page-id-2115 .et_pb_section_1 .et_pb_column {
	background-color: transparent !important;
}

body.page-id-2115 #main-content .et_pb_section_1 .jm-web-features-intro h2 {
	color: #11bfd0 !important;
	text-align: center !important;
}

.jm-project-filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75em 1.75em;
	margin: clamp(2rem, 4vw, 4rem) 0 clamp(2.25rem, 4vw, 4rem);
	border-bottom: 0;
	color: var(--jm-project-teal);
	font-size: 2.16rem;
}

.jm-project-filter {
	margin: 0;
	padding: 0 0 0.35em;
	border: 0;
	border-bottom: 0.14rem solid transparent;
	background: transparent;
	color: var(--jm-project-teal);
	font: 700 1em / 1.2 SourceSans3, Helvetica, Arial, sans-serif;
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.jm-project-filter:hover,
.jm-project-filter:focus-visible,
.jm-project-filter[aria-pressed="true"] {
	border-bottom-color: var(--jm-project-teal);
	color: #fff;
}

.jm-project-filter:focus-visible,
.jm-project-card:focus-visible {
	outline: 0.15rem solid #fff;
	outline-offset: 0.3rem;
}

.jm-project-filter__icon {
	display: inline-flex;
	width: 0.68em;
	height: 0.68em;
	margin-right: 0.3em;
	border: 0.08em solid currentColor;
	border-radius: 50%;
	vertical-align: 0.02em;
}

.jm-project-grid__items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: clamp(2rem, 3vw, 3.5rem);
}

.jm-project-card-wrap {
	display: flex;
	min-width: 0;
}

.jm-project-grid .jm-project-card-wrap[hidden] {
	display: none !important;
}

.jm-project-card {
	display: flex;
	height: 100%;
	flex-direction: column;
	min-width: 0;
	color: #fff;
	text-decoration: none;
}

.jm-project-card__media {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin-bottom: clamp(1rem, 1.5vw, 1.5rem);
	background: linear-gradient(135deg, rgba(50, 145, 201, 0.12), rgba(0, 35, 66, 0.08));
}

.jm-project-card__overlay {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 2rem;
	background: rgba(17, 191, 208, 0.5);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.jm-project-card:hover .jm-project-card__overlay,
.jm-project-card:focus-visible .jm-project-card__overlay {
	opacity: 1;
	visibility: visible;
}

.jm-project-card__overlay-title {
	margin: 0;
	color: var(--jm-project-navy);
	font: 900 clamp(1.5rem, 1.7vw, 2rem) / 1.2 InterBlack, Helvetica, Arial, sans-serif;
	text-align: center;
}

.jm-project-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s cubic-bezier(0.22, 0.84, 0.3, 1);
}

.jm-project-card__categories {
	display: block;
	margin-bottom: 0.65em;
	color: var(--jm-project-teal);
	font: 700 0.78em / 1.3 SourceSans3, Helvetica, Arial, sans-serif;
	letter-spacing: 0.09em;
	text-align: left;
	text-transform: uppercase;
}

.jm-project-card__title {
	margin: 0;
	color: #fff;
	font: 900 clamp(1.5rem, 1.7vw, 2rem) / 1.2 InterBlack, Helvetica, Arial, sans-serif;
	text-align: left;
}

.jm-project-card__excerpt {
	display: block;
	margin-top: 0.8em;
	color: #fff;
	font: 400 var(--jm-project-body) / 1.7 SourceSans3, Helvetica, Arial, sans-serif;
	text-align: left;
}

.jm-project-card__cta {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35em;
	align-self: flex-start;
	margin-top: auto;
	padding: 0.55em 0.9em;
	border: 1px solid var(--jm-project-teal);
	color: var(--jm-project-teal);
	font: 700 var(--jm-project-body) / 1.3 SourceSans3, Helvetica, Arial, sans-serif;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.jm-project-card:hover .jm-project-card__cta,
.jm-project-card:focus-visible .jm-project-card__cta {
	color: #fff;
}

.jm-project-card__cta span {
	display: inline-block;
	transition: transform 0.25s ease;
}

.jm-project-card:hover .jm-project-card__image {
	transform: scale(1.03);
}

.jm-project-card:hover .jm-project-card__cta span,
.jm-project-card:focus-visible .jm-project-card__cta span {
	transform: translateX(0.25em);
}

.jm-project-grid__empty {
	margin: 0;
	color: #fff;
	font: 400 var(--jm-project-body) / 1.7 SourceSans3, Helvetica, Arial, sans-serif;
}

@media (max-width: 1180px) {
	.jm-project-grid__items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jm-project-filters {
		font-size: 1.7rem;
	}
}

@media (max-width: 767px) {
	.jm-project-filters {
		align-items: center;
		flex-direction: column;
		gap: 0.55em;
		font-size: 1.7rem;
	}

	.jm-project-grid__items {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.jm-project-filter,
	.jm-project-card__image,
	.jm-project-card__cta span {
		transition: none;
	}
}
