/**
 * Contact Form 7 styling — matches the exact input/button values read out of
 * the MetForm forms these replaced (padding 15px 20px, 1px border, square
 * corners, primary/secondary button colors) rather than CF7's own defaults.
 */

.wpcf7-form p {
	margin: 0 0 15px;
}

/* Paired fields on one row (First/Last name, Phone/Email) — stack on mobile. */
.wpcf7-form .mf-row {
	display: flex;
	gap: 15px;
}

.wpcf7-form .mf-row > p {
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 767px) {
	.wpcf7-form .mf-row {
		flex-direction: column;
		gap: 0;
	}
}

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

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
	width: 100%;
	padding: 15px 20px;
	border: 1px solid var(--plf-color-border);
	border-radius: 0;
	background: transparent;
	color: var(--plf-color-secondary);
	font-family: var(--plf-font-body);
	font-size: var(--plf-body-size);
	line-height: 1.4em;
}

.wpcf7-form textarea {
	/* Explicit height overrides CF7's rows="10" (~255px); ~40% shorter. */
	height: 150px;
	min-height: 60px;
	resize: vertical;
}

/* Dropdown: strip the native arrow, draw our own chevron on the right. */
.wpcf7-form select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	padding-right: 45px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%234B535D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 1.5 7 7.5 13 1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
}

/* Grey the placeholder-like first option while it is the current selection. */
.wpcf7-form select:has( option:first-child:checked ) {
	color: rgba( 75, 83, 93, 0.7 );
}

.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
	color: var(--plf-color-text-black);
	opacity: 0.7;
}

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--plf-color-primary);
}

/* <input type="submit"> can't take ::after (replaced element), so the ↗ arrow
   is drawn as a background SVG on the right, matching the site's other buttons. */
.wpcf7-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	background-color: var(--plf-button-bg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='7' y1='17' x2='17' y2='7'/%3E%3Cpolyline points='7 7 17 7 17 17'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 22px center;
	color: var(--plf-button-color);
	font-family: var(--plf-font-body);
	font-weight: 500;
	font-size: 16px;
	line-height: 22px;
	padding: var(--plf-button-padding-y) 52px var(--plf-button-padding-y) var(--plf-button-padding-x);
	border: none;
	border-radius: var(--plf-button-radius);
	cursor: pointer;
}

.wpcf7-form .wpcf7-submit:hover {
	background-color: var(--plf-button-bg-hover);
}

/* Fine-print legal disclaimer shown under the submit button. */
.wpcf7-form .form-disclaimer {
	margin-top: 18px;
	font-family: var(--plf-font-body);
	font-size: 13px;
	line-height: 1.5;
	font-style: italic;
	color: rgba(75, 83, 93, 0.85);
}

.wpcf7-form .wpcf7-not-valid-tip {
	color: #b32d2e;
	font-size: 13px;
	margin-top: 4px;
	display: block;
}

.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.payment-required .wpcf7-response-output {
	border-color: #b32d2e;
	color: #b32d2e;
}

.wpcf7-form.sent .wpcf7-response-output {
	border-color: var(--plf-color-primary);
	color: var(--plf-color-primary);
}

.wpcf7-response-output {
	margin: 15px 0 0;
	padding: 12px 15px;
	border: 1px solid var(--plf-color-border);
	font-family: var(--plf-font-body);
	font-size: 14px;
}

.wpcf7-spinner {
	margin-left: 10px;
}
