
	.sjh-contact-page {
		background: #fff;
		color: var(--black);
		overflow-x: clip;
	}

	body:has(.sjh-contact-page),
	body:has(.sjh-contact-page) .wp-site-blocks {
		overflow-x: clip;
	}

	.sjh-contact-page .sjh-contact-intro {
		padding-top: clamp(112px, 8.5vw, 148px);
		padding-bottom: clamp(34px, 4.8vw, 68px);
		border-bottom: 1px solid rgba(13, 76, 61, .14);
	}

	.sjh-contact-intro-grid {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: clamp(22px, 3.6vw, 52px);
		align-items: start;
	}

	.sjh-contact-intro-grid > :first-child {
		padding-top: 0;
	}

	.sjh-contact-page .display {
		max-width: none;
		font-size: var(--sjh-h1-size);
		line-height: var(--sjh-h1-line);
	}

	.sjh-contact-page .intro-copy {
		max-width: min(100%, 1620px);
		font-size: var(--sjh-p-size);
		line-height: var(--sjh-p-line);
	}

	.sjh-contact-hero-media {
		width: 100%;
		aspect-ratio: 16 / 6.1;
		min-height: clamp(320px, 36vw, 560px);
		overflow: hidden;
		background: #111;
	}

	.sjh-contact-hero-media img {
		width: 100%;
		height: 110%;
		display: block;
		object-fit: cover;
		object-position: center 42%;
		transform: translateY(-3.5%);
	}

	.sjh-contact-main {
		padding-top: clamp(62px, 7vw, 104px);
		padding-bottom: clamp(68px, 7.6vw, 112px);
		background:
			linear-gradient(90deg, rgba(13, 76, 61,.045), transparent 36%),
			#fff;
	}

	.sjh-contact-main-grid {
		display: grid;
		grid-template-columns: minmax(320px, .36fr) minmax(520px, .64fr);
		gap: clamp(34px, 5.4vw, 88px);
		align-items: start;
	}

	.sjh-contact-details {
		position: sticky;
		top: 104px;
	}

	.sjh-contact-details .section-title {
		margin-bottom: clamp(18px, 2.4vw, 30px);
		font-size: var(--sjh-h2-size);
		line-height: var(--sjh-h2-line);
	}

	.sjh-contact-details p {
		max-width: 660px;
		margin: 0;
		color: #222;
		font: 400 var(--sjh-p-size)/var(--sjh-p-line) var(--body);
	}

	.sjh-contact-detail-list {
		display: grid;
		margin-top: clamp(28px, 3.8vw, 54px);
		border-top: 1px solid rgba(13, 76, 61, .24);
	}

	.sjh-contact-detail-list a {
		position: relative;
		display: grid;
		gap: 8px;
		padding: 20px 0 20px 18px;
		border-bottom: 1px solid rgba(13, 76, 61, .22);
		transition: padding-left .32s cubic-bezier(.16, 1, .3, 1), border-color .28s ease, color .28s ease;
	}

	.sjh-contact-detail-list a::before {
		content: "";
		position: absolute;
		left: 0;
		top: 22px;
		width: 6px;
		height: 6px;
		border-radius: 50%;
		background: var(--blue);
		transform: scale(.72);
		transition: transform .32s cubic-bezier(.16, 1, .3, 1);
	}

	.sjh-contact-detail-list a:hover,
	.sjh-contact-detail-list a:focus-visible {
		padding-left: 26px;
		border-color: rgba(13, 76, 61, .62);
	}

	.sjh-contact-detail-list a:hover::before,
	.sjh-contact-detail-list a:focus-visible::before {
		transform: scale(1);
	}

	.sjh-contact-detail-list span {
		color: var(--blue);
		font: 700 12px/1 Arial, sans-serif;
		letter-spacing: .11em;
		text-transform: uppercase;
	}

	.sjh-contact-detail-list strong {
		color: #111;
		font: 400 clamp(18px, 1.55vw, 24px)/1.38 var(--body);
	}

	.sjh-contact-form-wrap {
		position: relative;
		padding: clamp(30px, 4vw, 56px);
		border: 1px solid rgba(13, 76, 61, .16);
		background: rgba(255,255,255,.88);
		box-shadow: 0 24px 70px rgba(0, 51, 82, .055);
	}

	.sjh-contact-form-wrap::before {
		content: "";
		position: absolute;
		left: -1px;
		right: -1px;
		top: -1px;
		height: 3px;
		background: var(--blue);
	}

	.sjh-contact-alert {
		margin: 0 0 28px;
		padding: 18px 20px;
		border: 1px solid rgba(13, 76, 61, .28);
		color: #111;
		font: 400 17px/1.45 var(--body);
	}

	.sjh-contact-alert.is-success {
		background: rgba(13, 76, 61, .06);
	}

	.sjh-contact-alert.is-error {
		border-color: rgba(190, 45, 45, .35);
		background: rgba(190, 45, 45, .06);
	}

	.sjh-contact-form {
		display: grid;
		gap: clamp(20px, 2.4vw, 30px);
		padding-top: 0;
	}

	.sjh-field-grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(18px, 2.4vw, 30px);
	}

	.sjh-field {
		display: grid;
		gap: 10px;
	}

	.sjh-field label {
		color: var(--blue);
		font: 700 12px/1 Arial, sans-serif;
		letter-spacing: .11em;
		text-transform: uppercase;
	}

	.sjh-field input,
	.sjh-field select,
	.sjh-field textarea {
		width: 100%;
		min-height: 54px;
		border: 0;
		border-bottom: 1px solid rgba(13, 76, 61, .34);
		border-radius: 0;
		background: transparent;
		color: #111;
		font: 400 clamp(19px, 1.8vw, 25px)/1.35 var(--body);
		outline: none;
		transition: border-color .25s ease, background .25s ease, padding-left .25s ease;
	}

	.sjh-field textarea {
		min-height: 168px;
		padding-top: 12px;
		resize: vertical;
	}

	.sjh-field input:focus,
	.sjh-field select:focus,
	.sjh-field textarea:focus {
		border-color: var(--blue);
		background: rgba(13, 76, 61, .035);
		padding-left: 10px;
	}

	.sjh-contact-submit {
		position: relative;
		justify-self: start;
		min-height: 50px;
		padding: 0 26px;
		border: 1px solid var(--blue);
		border-radius: 0;
		background: var(--blue);
		color: #fff;
		overflow: hidden;
		font: 700 12px/1 Arial, sans-serif;
		letter-spacing: .11em;
		text-transform: uppercase;
		box-shadow: 0 0 0 rgba(13, 76, 61,0);
		transition: background .28s ease, color .28s ease, transform .32s cubic-bezier(.16, 1, .3, 1), box-shadow .32s ease;
	}

	.sjh-contact-submit::before {
		content: "";
		display: none;
	}

	.sjh-contact-submit:hover,
	.sjh-contact-submit:focus-visible {
		background: var(--blue);
		color: #fff;
		transform: translateY(-2px);
		box-shadow: 0 14px 34px rgba(13, 76, 61,.22);
	}

	.sjh-contact-submit:hover::before,
	.sjh-contact-submit:focus-visible::before {
		opacity: 1;
		transform: scaleX(1);
	}

	.sjh-contact-hidden {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		overflow: hidden !important;
		clip: rect(1px, 1px, 1px, 1px) !important;
		white-space: nowrap !important;
	}

	.sjh-contact-map-section {
		background: #f7fafb;
		border-top: 1px solid rgba(13, 76, 61, .14);
	}

	.sjh-contact-map-head {
		display: flex;
		justify-content: space-between;
		gap: 32px;
		align-items: end;
		padding-top: clamp(56px, 6.2vw, 92px);
		padding-bottom: clamp(24px, 3vw, 42px);
	}

	.sjh-contact-map-head .section-title {
		max-width: 980px;
		margin: 0;
	}

	.sjh-contact-map {
		width: 100%;
		height: clamp(360px, 40vw, 580px);
		border-top: 1px solid rgba(13, 76, 61, .24);
		background: #e9eef0;
	}

	.sjh-contact-map iframe {
		width: 100%;
		height: 100%;
		display: block;
		border: 0;
		filter: grayscale(.25);
	}

	@media (max-width: 980px) {
		.sjh-contact-intro-grid,
		.sjh-contact-main-grid {
			grid-template-columns: 1fr;
		}

		.sjh-contact-intro-grid > :first-child {
			padding-top: 0;
		}

		.sjh-contact-details {
			position: static;
		}

		.sjh-contact-hero-media {
			aspect-ratio: 4 / 3;
			min-height: clamp(300px, 62vw, 520px);
		}

		.sjh-contact-map-head {
			display: grid;
			align-items: start;
		}
	}

	@media (max-width: 620px) {
		.sjh-contact-page .sjh-contact-intro {
			padding-top: 120px;
		}

		.sjh-contact-form-wrap {
			padding: 26px 20px;
			margin-left: calc(var(--pad, 20px) * -1);
			margin-right: calc(var(--pad, 20px) * -1);
			border-left: 0;
			border-right: 0;
		}

		.sjh-field-grid {
			grid-template-columns: 1fr;
		}

		.sjh-contact-detail-list strong {
			font-size: 21px;
		}
	}
