/* ==========================================================================
   STEP — Contact Form 7 styling (loaded on the contact template only)
   ========================================================================== */

.wpcf7 form { display: grid; gap: 1.25rem; }
.wpcf7 .form-row { display: grid; grid-template-columns: 1fr; gap: 1.25rem; } /* one field per row */
.wpcf7 p { margin: 0; }
.wpcf7 label { display: grid; gap: .45rem; font-size: var(--fs-sm); font-weight: 500; color: var(--step-text); }
.wpcf7 .wpcf7-form-control-wrap { display: block; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	min-height: 54px;
	padding: .8rem 1rem;
	font: inherit; font-size: 1rem; color: var(--step-text);
	background: var(--step-white);
	border: 1px solid var(--step-border);
	border-radius: var(--radius);
	transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
	-webkit-appearance: none; appearance: none;
}
.wpcf7 textarea { min-height: 160px; resize: vertical; line-height: 1.7; }
.wpcf7 select {
	padding-inline-end: 2.75rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%233C4A34' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
}
.is-rtl .wpcf7 select { background-position: left 1rem center; }
.wpcf7 input:hover, .wpcf7 select:hover, .wpcf7 textarea:hover { border-color: rgba(60, 74, 52, .35); }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
	outline: none; border-color: var(--step-primary); box-shadow: 0 0 0 3px rgba(60, 74, 52, .12);
}
.wpcf7 ::placeholder { color: #9A9F95; }
.wpcf7 input[type="tel"], .wpcf7 input[type="email"] { direction: ltr; }
.is-rtl .wpcf7 input[type="tel"], .is-rtl .wpcf7 input[type="email"] { text-align: right; }

/* Checkbox / radio / acceptance */
.wpcf7 .wpcf7-list-item { margin: 0 0 .5rem; margin-inline-end: 1.25rem; display: inline-flex; }
.wpcf7 .wpcf7-list-item label { display: inline-flex; align-items: center; gap: .6rem; font-weight: 400; cursor: pointer; }
.wpcf7 input[type="checkbox"], .wpcf7 input[type="radio"] {
	width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--step-primary);
}

/* Submit */
.wpcf7 input[type="submit"], .wpcf7 button[type="submit"] {
	justify-self: start;
	min-height: 54px; padding: .9rem 2.2rem;
	font: inherit; font-size: var(--fs-sm); font-weight: 600; color: #fff;
	background: var(--step-primary); border: 1px solid var(--step-primary); border-radius: var(--radius);
	cursor: pointer; transition: background-color .3s var(--ease);
}
.wpcf7 input[type="submit"]:hover { background: var(--step-primary-dark); }
.wpcf7 input[type="submit"] {
	background-image: linear-gradient(100deg, rgba(255,255,255,0) 40%, rgba(255,255,255,.35) 50%, rgba(255,255,255,0) 60%);
	background-size: 250% 100%; background-position: 130% 0; background-repeat: no-repeat;
}
.wpcf7 input[type="submit"]:hover { background-position: -30% 0; transition: background-position .75s var(--ease), background-color .3s var(--ease); }
.wpcf7 input[type="submit"]:disabled { opacity: .6; cursor: not-allowed; }
.wpcf7 .wpcf7-spinner { margin: 0; margin-inline-start: .75rem; vertical-align: middle; }

/* Validation */
.wpcf7 .wpcf7-not-valid { border-color: var(--step-error) !important; }
.wpcf7 .wpcf7-not-valid-tip { margin-top: .35rem; font-size: var(--fs-xs); color: var(--step-error); }
.wpcf7 form .wpcf7-response-output {
	margin: .5rem 0 0; padding: 1rem 1.25rem;
	border: 1px solid var(--step-border); border-inline-start-width: 3px;
	font-size: var(--fs-sm); border-radius: var(--radius);
}
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--step-primary); background: var(--step-primary-light); color: var(--step-primary-dark); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: var(--step-error); background: #FBF1F0; color: var(--step-error); }

@media (max-width: 575.98px) {
	.wpcf7 input[type="submit"] { width: 100%; }
}

/* CF7 inherits the site locale (RTL); follow the page language instead */
.is-ltr .wpcf7, .is-ltr .wpcf7 form { direction: ltr; text-align: left; }
.is-rtl .wpcf7, .is-rtl .wpcf7 form { direction: rtl; text-align: right; }

/* Submit spans the card on the request page */
.request-form .wpcf7 input[type="submit"] { width: 100%; min-height: 58px; font-size: 1rem; }
