/* Contact Form
   Contact page intro and Gravity Form, scoped to the .jm-contact group block.
   Form rules are prefixed with .jm-contact .gform_wrapper.gravity-theme so they
   outrank the Gravity Forms theme stylesheet without !important.
---------------------------------------------------------------------------- */

.jm-contact {
	margin: 0 auto;
	max-width: 660px;
}

/* Intro
--------------------------------------------- */

.entry-content .jm-contact__eyebrow,
.entry-content .jm-contact__title,
.entry-content .jm-contact__lead {
	text-align: center;
}

.entry-content .jm-contact__eyebrow {
	color: #be8100;
	font-family: 'Alegreya Sans', sans-serif;
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.4;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.entry-content .jm-contact__title {
	color: #111;
	font-family: 'Lora', serif;
	font-size: 36px;
	font-size: 3.6rem;
	font-weight: 400;
	letter-spacing: -1px;
	line-height: 1.2;
	margin: 0 0 16px;
}

.entry-content .jm-contact__lead {
	color: #333;
	font-size: 20px;
	font-size: 2rem;
	line-height: 1.625;
	margin: 0 0 48px;
}

/* Form Layout
--------------------------------------------- */

.jm-contact .gform_wrapper.gravity-theme {
	margin: 0;
}

.jm-contact .gform_wrapper.gravity-theme .gform_heading {
	margin: 0;
}

.jm-contact .gform_wrapper.gravity-theme .gform_required_legend {
	display: none;
}

.jm-contact .gform_wrapper.gravity-theme .gform_fields {
	grid-column-gap: 24px;
	grid-row-gap: 28px;
}

/* Labels
--------------------------------------------- */

.jm-contact .gform_wrapper.gravity-theme .gfield_label {
	color: #111;
	display: block;
	font-family: 'Alegreya Sans', sans-serif;
	font-size: 14px;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.4;
	margin: 0 0 10px;
	padding: 0;
	text-transform: uppercase;
}

.jm-contact .gform_wrapper.gravity-theme .gfield_required {
	color: #be8100;
	font-size: inherit;
}

.jm-contact .gform_wrapper.gravity-theme .gfield_required .gfield_required {
	padding: 0;
}

/* Gravity Forms escapes HTML in labels, so the hint is added here. */
.jm-contact .gform_wrapper.gravity-theme .jm-contact__optional .gfield_label::after {
	color: #767676;
	content: "(optional)";
	font-weight: 400;
	letter-spacing: 0;
	margin-left: 4px;
	text-transform: none;
}

/* Fields
--------------------------------------------- */

.jm-contact .gform_wrapper.gravity-theme .ginput_container input,
.jm-contact .gform_wrapper.gravity-theme .ginput_container select,
.jm-contact .gform_wrapper.gravity-theme .ginput_container textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-color: #fff;
	border: 1px solid #ddd;
	border-radius: 0;
	box-shadow: none;
	box-sizing: border-box;
	color: #333;
	display: block;
	font-family: 'Alegreya Sans', sans-serif;
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.4;
	margin: 0;
	padding: 18px 24px 14px;
	-webkit-transition: border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
	transition:         border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
	width: 100%;
}

.jm-contact .gform_wrapper.gravity-theme .ginput_container select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23333' stroke-width='1.6'/%3E%3C/svg%3E");
	background-position: right 24px center;
	background-repeat: no-repeat;
	background-size: 14px 9px;
	cursor: pointer;
	padding-right: 56px;
}

.jm-contact .gform_wrapper.gravity-theme .ginput_container textarea {
	height: 180px;
	resize: vertical;
}

.jm-contact .gform_wrapper.gravity-theme .ginput_container input::placeholder,
.jm-contact .gform_wrapper.gravity-theme .ginput_container textarea::placeholder {
	color: #767676;
	opacity: 1;
}

.jm-contact .gform_wrapper.gravity-theme .ginput_container input:hover,
.jm-contact .gform_wrapper.gravity-theme .ginput_container select:hover,
.jm-contact .gform_wrapper.gravity-theme .ginput_container textarea:hover {
	border-color: #999;
}

.jm-contact .gform_wrapper.gravity-theme .ginput_container input:focus,
.jm-contact .gform_wrapper.gravity-theme .ginput_container select:focus,
.jm-contact .gform_wrapper.gravity-theme .ginput_container textarea:focus {
	border-color: #be8100;
	box-shadow: 0 0 0 1px #be8100;
	outline: none;
}

/* Validation
--------------------------------------------- */

.jm-contact .gform_wrapper.gravity-theme .gfield_error .gfield_label {
	color: #111;
}

.jm-contact .gform_wrapper.gravity-theme .gfield_error .ginput_container input,
.jm-contact .gform_wrapper.gravity-theme .gfield_error .ginput_container select,
.jm-contact .gform_wrapper.gravity-theme .gfield_error .ginput_container textarea {
	border-color: #b32d2e;
	box-shadow: 0 0 0 1px #b32d2e;
}

.jm-contact .gform_wrapper.gravity-theme .gfield_validation_message,
.jm-contact .gform_wrapper.gravity-theme .validation_message {
	background: none;
	border: 0;
	color: #b32d2e;
	font-size: 14px;
	font-size: 1.4rem;
	line-height: 1.4;
	margin: 8px 0 0;
	padding: 0;
}

.jm-contact .gform_wrapper.gravity-theme .gform_validation_errors {
	background-color: #f4f4f4;
	border: 0;
	border-left: 2px solid #b32d2e;
	border-radius: 0;
	box-shadow: none;
	margin: 0 0 32px;
	padding: 18px 24px;
}

/* Gravity Forms focuses the summary so screen readers announce it; the red bar already marks it. */
.jm-contact .gform_wrapper.gravity-theme .gform_validation_errors:focus {
	outline: none;
}

.jm-contact .gform_wrapper.gravity-theme .gform_validation_errors > h2 {
	color: #333;
	font-family: 'Alegreya Sans', sans-serif;
	font-size: 18px;
	font-size: 1.8rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	margin: 0;
}

.jm-contact .gform_wrapper.gravity-theme .gform_validation_errors > h2 .gform-icon {
	display: none;
}

/* Submit
--------------------------------------------- */

.jm-contact .gform_wrapper.gravity-theme .gform_footer {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 28px;
	margin: 32px 0 0;
	padding: 0;
}

.jm-contact .gform_wrapper.gravity-theme .gform_footer .gform_button {
	background-color: #be8100;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	font-family: 'Alegreya Sans', sans-serif;
	font-size: 14px;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1;
	margin: 0;
	padding: 21px 44px 18px;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	-webkit-transition: background-color 0.1s ease-in-out;
	transition:         background-color 0.1s ease-in-out;
	width: auto;
}

.jm-contact .gform_wrapper.gravity-theme .gform_footer .gform_button:focus,
.jm-contact .gform_wrapper.gravity-theme .gform_footer .gform_button:hover {
	background-color: #333;
	color: #fff;
}

.jm-contact .gform_wrapper.gravity-theme .gform_footer .gform_button:focus-visible {
	outline: 2px solid #be8100;
	outline-offset: 3px;
}

.jm-contact .gform_wrapper.gravity-theme .jm-contact__privacy {
	color: #767676;
	flex: 1 1 220px;
	font-size: 14px;
	font-size: 1.4rem;
	font-style: italic;
	line-height: 1.5;
	margin: 0;
}

/* Confirmation
--------------------------------------------- */

.jm-contact .gform_confirmation_message {
	background-color: #f4f4f4;
	border-left: 2px solid #be8100;
	color: #333;
	font-size: 18px;
	font-size: 1.8rem;
	line-height: 1.5;
	padding: 18px 24px;
}

/* Responsive
--------------------------------------------- */

@media only screen and (max-width: 600px) {

	.entry-content .jm-contact__title {
		font-size: 28px;
		font-size: 2.8rem;
		letter-spacing: -0.75px;
	}

	.entry-content .jm-contact__lead {
		font-size: 18px;
		font-size: 1.8rem;
		margin-bottom: 36px;
	}

	.jm-contact .gform_wrapper.gravity-theme .gform_fields {
		grid-row-gap: 24px;
	}

	.jm-contact .gform_wrapper.gravity-theme .gfield {
		grid-column: 1 / -1;
	}

	.jm-contact .gform_wrapper.gravity-theme .gform_footer .gform_button {
		width: 100%;
	}

	.jm-contact .gform_wrapper.gravity-theme .jm-contact__privacy {
		flex-basis: 100%;
		text-align: center;
	}

}
