/* Contact page. */

body.contact-page {
	background: #ffffff;
}

body.contact-page .site {
	padding-top: var(--hero-inset);
}

body.contact-page .site-main--contact {
	padding-block: 0;
}

body.contact-page .site-header {
	background-color: transparent;
}

body.contact-page .site-header.is-scrolled {
	background-color: rgb(1 19 37 / 0.92);
	backdrop-filter: blur(12px);
}

body.contact-page.has-mobile-nav-open .site-header {
	background-color: var(--color-navy);
}

.contact-hero {
	position: relative;
	width: calc(100% - (var(--hero-inset) * 2));
	margin-top: calc(var(--header-height) * -1);
	margin-inline: auto;
	min-height: 30.75rem;
	overflow: hidden;
	border-radius: 1.5rem;
	color: #f5f5f5;
	background: #011325;
}

.contact-hero__media {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.contact-hero__image {
	width: 100%;
	height: 115%;
	object-fit: cover;
	object-position: center 62%;
}

.contact-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(88deg, rgb(0 0 0 / 0.58) 23.45%, rgb(0 0 0 / 0.12) 74.71%);
}

.contact-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 30.75rem;
	padding-top: calc(var(--header-height) + 3.25rem);
	padding-bottom: 3rem;
}

.contact-hero__kicker {
	margin-bottom: 1rem;
	color: #0fdf84;
	font-weight: 600;
}

.contact-hero__kicker .section-kicker__rule {
	width: 30px;
	background: #0fdf84;
}

.contact-hero__title {
	max-width: 40rem;
	margin: 0 0 1.25rem;
	color: #f5f5f5;
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 4.5vw, 4.0625rem);
	font-weight: 600;
	line-height: 1.06;
}

.contact-hero__title span {
	color: #0fdf84;
}

.contact-hero__lede {
	max-width: 37.7rem;
	margin: 0;
	color: rgb(255 255 255 / 0.93);
	font-size: 1rem;
	line-height: 1.547;
}

.contact-message {
	padding: 4.75rem 0 1rem;
}

.contact-message__heading {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 2rem;
}

.contact-message__heading h2 {
	margin: 0;
	color: #1c1b1b;
	font-family: var(--font-display);
	font-size: clamp(2rem, 3vw, 3rem);
	font-weight: 500;
	line-height: 1.345;
}

.contact-message__heading p {
	max-width: 22rem;
	margin: 0;
	color: rgb(1 1 1 / 0.6);
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.3;
	text-align: right;
}

.contact-message__layout {
	display: grid;
	gap: 2rem;
	align-items: stretch;
}

.contact-message__form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	padding: 2.5rem 2.125rem;
	border: 2px solid #ededed;
	border-radius: 0.75rem;
	background: #ffffff;
}

.contact-message__row {
	display: grid;
	gap: 1rem;
}

.contact-message__form label {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	color: rgb(1 1 1 / 0.8);
	font-size: 0.875rem;
	font-weight: 500;
}

.contact-message__form .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.contact-message__form .contact-form__fields {
	display: grid;
	gap: 1.25rem 1rem;
}

.contact-message__form .contact-form__fields > p {
	margin: 0;
}

.contact-message__form .contact-form__fields br {
	display: none;
}

.contact-message__form .contact-form__fields > p:has(label.contact-form__span) {
	grid-column: 1 / -1;
}

.contact-message__form input:not(.wpcf7-submit),
.contact-message__form select,
.contact-message__form textarea {
	width: 100%;
	height: 2.5rem;
	padding: 0.375rem 0.75rem;
	border: 0;
	border-radius: 0.75rem;
	color: #1c1b1b;
	background: #f3f3f5;
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 400;
}

.contact-message__form textarea {
	height: 4rem;
	min-height: 4rem;
	padding-top: 0.5rem;
	resize: none;
}

.contact-message__form .wpcf7-form-control:focus {
	outline: none;
	border-color: transparent;
	box-shadow: none;
}

.contact-message__form input::placeholder,
.contact-message__form textarea::placeholder {
	color: #717182;
}

.contact-message__form select {
	appearance: none;
	padding-right: 2.25rem;
}

.contact-message__form .wpcf7-form-control-wrap:has(select) {
	position: relative;
	display: block;
}

.contact-message__form .wpcf7-form-control-wrap:has(select)::after {
	content: "";
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 1rem;
	height: 1rem;
	background: url("../../images/careers/icon-chevron.svg") center / contain no-repeat;
	transform: rotate(180deg);
	pointer-events: none;
}

.contact-message__select {
	position: relative;
}

.contact-message__select select {
	appearance: none;
	padding-right: 2.25rem;
	color: #717182;
}

.contact-message__select select:valid,
.contact-message__select select option {
	color: #1c1b1b;
}

.contact-message__select select option[value=""] {
	color: #717182;
}

.contact-message__select img {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 1rem;
	height: 1rem;
	transform: rotate(180deg);
	pointer-events: none;
}

.contact-message__file-box {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	height: 2.5rem;
	padding: 0 0.75rem;
	border-radius: 0.75rem;
	background: #f3f3f5;
}

.contact-message__file-btn {
	display: inline-flex;
	align-items: center;
	height: 1.625rem;
	padding: 0 0.62rem;
	border-radius: 0.5rem;
	color: #717182;
	background: #ffffff;
	font-size: 0.6165rem;
	font-weight: 500;
}

.contact-message__file-name {
	color: #717182;
	font-size: 0.75rem;
	font-weight: 400;
}

.contact-message__file-box .wpcf7-form-control-wrap {
	position: absolute;
	inset: 0;
}

.contact-message__file input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.contact-message__form .wpcf7-submit {
	align-self: flex-start;
	width: auto;
	height: 3.1875rem;
	min-height: 3.1875rem;
	padding: 0.25rem 3.5rem 0.25rem 1.75rem;
	border: 0;
	border-radius: 2.5rem;
	color: #ffffff;
	background-color: #0d8651;
	background-image:
		url("../../images/contact/icon-arrow.svg"),
		radial-gradient(circle at center, #ffffff 0 1.15rem, transparent 1.16rem);
	background-repeat: no-repeat;
	background-position:
		right 0.95rem center,
		right 0.28rem center;
	background-size:
		0.975rem,
		2.438rem 2.438rem;
	box-shadow: 0 11px 16px rgb(0 0 0 / 0.25);
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.34;
	cursor: pointer;
}

.contact-message__form .wpcf7-spinner {
	align-self: center;
}

.contact-message__form .wpcf7-response-output {
	margin: 0;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	font-size: 0.875rem;
}

.contact-message__form .wpcf7-form.sent .wpcf7-response-output {
	border-color: #0d8651;
	color: #0d8651;
	background: #e8f8f0;
}

.contact-message__form .wpcf7-form.invalid .wpcf7-response-output,
.contact-message__form .wpcf7-form.failed .wpcf7-response-output,
.contact-message__form .wpcf7-form.aborted .wpcf7-response-output,
.contact-message__form .wpcf7-form.spam .wpcf7-response-output {
	border-color: #8a1f1f;
	color: #8a1f1f;
	background: #fdecec;
}

.contact-message__submit,
.contact-cta__submit {
	align-self: flex-start;
	box-shadow: 0 11px 16px rgb(0 0 0 / 0.25);
}

.contact-message__submit .button__icon,
.contact-cta__submit .button__icon {
	background: #ffffff;
}

.contact-message__notice,
.contact-cta__notice {
	margin: 0;
	padding: 0.75rem 1rem;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	font-weight: 400;
}

.contact-message__notice.is-success,
.contact-cta__notice.is-success {
	color: #0d8651;
	background: #e8f8f0;
}

.contact-message__notice.is-error,
.contact-cta__notice.is-error {
	color: #8a1f1f;
	background: #fdecec;
}

.contact-message__photo {
	position: relative;
	min-height: 22rem;
	margin: 0;
	overflow: hidden;
	border-radius: 1rem;
}

.contact-message__photo img {
	position: absolute;
	top: -7.72%;
	left: -40.82%;
	width: 203%;
	height: 115.18%;
	max-width: none;
	object-fit: cover;
}

.contact-facts {
	padding: 4.5rem 0 5rem;
}

.contact-facts ul {
	display: grid;
	gap: 2.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.contact-facts li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.9rem;
	text-align: center;
}

.contact-facts img {
	width: 34px;
	height: 34px;
}

.contact-facts__clock {
	width: 31px;
	height: 31px;
}

.contact-facts h2 {
	margin: 0;
	color: #1c1b1b;
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.2;
}

.contact-facts a,
.contact-facts p {
	margin: 0;
	color: rgb(1 1 1 / 0.6);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.45;
	text-decoration: none;
}

.contact-cta {
	position: relative;
	min-height: 21.5rem;
	overflow: hidden;
	color: #ffffff;
	background: #02080c;
}

.contact-cta__media {
	position: absolute;
	inset: 0;
}

.contact-cta__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.contact-cta__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	padding-block: 4.5rem;
}

.contact-cta h2 {
	max-width: 36rem;
	margin: 0 0 1rem;
	font-family: var(--font-display);
	font-size: clamp(2rem, 3.4vw, 3rem);
	font-weight: 500;
	line-height: 1.345;
}

.contact-cta p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
}

.contact-cta__form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.contact-cta__form input {
	width: min(100%, 15.375rem);
	height: 3.4375rem;
	padding: 0 1.25rem;
	border: 1px solid #ffffff;
	border-radius: 2.625rem;
	color: #ffffff;
	background: rgb(0 0 0 / 0.1);
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 500;
}

.contact-cta__form input::placeholder {
	color: #ffffff;
}

.contact-cta__notice {
	flex-basis: 100%;
}

@media (min-width: 64rem) {
	.contact-message__heading p {
		text-align: right;
	}

	.contact-message__layout {
		grid-template-columns: minmax(0, 48rem) minmax(16rem, 30rem);
		gap: 3.125rem;
	}

	.contact-message__row,
	.contact-message__form .contact-form__fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.contact-message__photo {
		min-height: 100%;
	}

	.contact-facts ul {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 2rem;
	}

	.contact-cta__inner {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.contact-cta__form {
		justify-content: flex-end;
	}
}

@media (max-width: 40rem) {
	.contact-hero,
	.contact-hero__inner {
		min-height: 26rem;
	}

	.contact-message__heading p {
		font-size: 1rem;
		text-align: left;
	}
}
