/* Contact Form 7 styling (Contact Us page). */

.hvm-form {
	--hvm-navy: #000066;
	--hvm-blue: #0032a0;
	--hvm-gold: #f0b323;
	--hvm-text: #1d1d3a;
	--hvm-muted: #5d6075;
	--hvm-border: #d5d8e6;
	--hvm-field: #f7f8fc;
	--hvm-error: #c62828;
	--hvm-success: #1b7a3d;
	--hvm-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

	position: relative;
	padding: 32px;
	border-top: 4px solid var(--hvm-gold);
	border-radius: 12px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(0, 0, 102, 0.10), 0 2px 6px rgba(0, 0, 102, 0.06);
	font-family: var(--hvm-font);
	color: var(--hvm-text);
}

/* Contact Form 7 wraps lines in <p> and adds <br>; neutralise them
   (the theme's ".main p" rule would otherwise set PT Serif and big margins). */
.main .hvm-form p {
	margin: 0;
	font-family: var(--hvm-font);
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

/* Let the items inside CF7's <p> become the grid / flex items. */
.hvm-form__row > p,
.hvm-form__actions > p {
	display: contents;
}

.hvm-form br {
	display: none;
}

.main .hvm-form .hvm-form__intro {
	margin: 0 0 24px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--hvm-muted);
}

.hvm-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 20px;
}

.hvm-form__field {
	display: block;
	margin: 0 0 20px;
}

.hvm-form__label {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--hvm-navy);
}

.hvm-form__label abbr {
	border: 0;
	text-decoration: none;
	color: var(--hvm-error);
}

.hvm-form__optional {
	font-weight: 400;
	color: var(--hvm-muted);
}

.hvm-form .wpcf7-form-control-wrap {
	display: block;
}

.hvm-form input[type="text"],
.hvm-form input[type="email"],
.hvm-form textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--hvm-border);
	border-radius: 8px;
	background: var(--hvm-field);
	font-family: var(--hvm-font);
	font-size: 15px;
	line-height: 1.5;
	color: var(--hvm-text);
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

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

.hvm-form input::placeholder,
.hvm-form textarea::placeholder {
	color: #9a9db0;
	opacity: 1;
}

.hvm-form input[type="text"]:hover,
.hvm-form input[type="email"]:hover,
.hvm-form textarea:hover {
	border-color: #b4b9d3;
}

.hvm-form input[type="text"]:focus,
.hvm-form input[type="email"]:focus,
.hvm-form textarea:focus {
	outline: none;
	border-color: var(--hvm-blue);
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba(0, 50, 160, 0.15);
}

/* Validation */
.hvm-form .wpcf7-not-valid {
	border-color: var(--hvm-error);
	background: #fff7f7;
}

.hvm-form .wpcf7-not-valid:focus {
	box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.15);
}

.hvm-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: var(--hvm-error);
}

/* Submit */
.hvm-form__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 4px;
}

.hvm-form .hvm-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	margin: 0;
	padding: 14px 32px;
	border: 0;
	border-radius: 8px;
	background: var(--hvm-navy);
	font-family: var(--hvm-font);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #ffffff;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0, 0, 102, 0.25);
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.hvm-form .hvm-form__submit:hover,
.hvm-form .hvm-form__submit:focus {
	color: #ffffff;
	text-decoration: none;
}

.hvm-form .hvm-form__submit:hover {
	background: var(--hvm-blue);
	box-shadow: 0 6px 16px rgba(0, 50, 160, 0.30);
	transform: translateY(-1px);
	text-decoration: none;
}

.hvm-form .hvm-form__submit:active {
	transform: translateY(0);
}

.hvm-form .hvm-form__submit:focus-visible {
	outline: 3px solid var(--hvm-gold);
	outline-offset: 2px;
}

.hvm-form .hvm-form__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

.hvm-form .wpcf7-spinner {
	margin: 0;
}

/* Response message (sits right after the form fields, inside the <form>). */
.wpcf7 form:has(.hvm-form) .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 16px;
	border: 0;
	border-left: 4px solid var(--hvm-blue, #0032a0);
	border-radius: 8px;
	background: #eef2fb;
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #1d1d3a;
	box-shadow: 0 2px 6px rgba(0, 0, 102, 0.06);
}

.wpcf7 form.sent:has(.hvm-form) .wpcf7-response-output {
	border-left-color: #1b7a3d;
	background: #edf7f0;
	color: #14532d;
}

.wpcf7 form.invalid:has(.hvm-form) .wpcf7-response-output,
.wpcf7 form.unaccepted:has(.hvm-form) .wpcf7-response-output,
.wpcf7 form.failed:has(.hvm-form) .wpcf7-response-output,
.wpcf7 form.aborted:has(.hvm-form) .wpcf7-response-output,
.wpcf7 form.spam:has(.hvm-form) .wpcf7-response-output {
	border-left-color: #c62828;
	background: #fdeeee;
	color: #7f1d1d;
}

@media (max-width: 767px) {
	.hvm-form {
		padding: 22px 18px;
	}

	.hvm-form__row {
		grid-template-columns: 1fr;
	}

	.hvm-form .hvm-form__submit {
		width: 100%;
	}
}
