/* ===========================================================
   forms.css — inputs, textarea, selects.
   =========================================================== */

.form-row { margin-bottom: var(--vc-s-5); }
.form-row label {
	display: block;
	font-family: var(--vc-font-display); font-size: var(--vc-text-sm);
	color: var(--vc-fg-soft); margin-bottom: var(--vc-s-2);
	font-weight: 500;
}
.form-row label span[aria-hidden] { color: var(--vc-accent); margin-left: 4px; }

.form-row input[type=text],
.form-row input[type=email],
.form-row input[type=tel],
.form-row input[type=url],
.form-row input[type=password],
.form-row input[type=search],
.form-row textarea,
.form-row select {
	width: 100%;
	padding: 14px 18px;
	font: inherit; color: var(--vc-fg);
	background: var(--vc-bg-soft);
	border: 1px solid var(--vc-line);
	border-radius: var(--vc-radius);
	transition: border-color var(--vc-dur) var(--vc-ease), background var(--vc-dur) var(--vc-ease);
	min-height: 44px;
}
.form-row textarea { min-height: 140px; resize: vertical; }
.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus {
	outline: 0;
	border-color: var(--vc-accent);
	background: var(--vc-bg-alt);
}
.form-row input::placeholder, .form-row textarea::placeholder { color: var(--vc-muted); }

.form-row select {
	appearance: none; -webkit-appearance: none; -moz-appearance: none;
	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 fill='%238A8A95' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 18px center; padding-right: 44px;
}

.form-row__error { display: block; margin-top: var(--vc-s-1); font-size: var(--vc-text-sm); color: #FF6E7B; min-height: 1.2em; }
.form-row.has-error input,
.form-row.has-error textarea,
.form-row.has-error select { border-color: #FF6E7B; }

/* Split row — 2 cols on tablet+ */
.form-row--split { display: grid; gap: var(--vc-s-5); grid-template-columns: 1fr; }
@media (min-width: 768px) { .form-row--split { grid-template-columns: 1fr 1fr; } }

/* Honeypot */
.contact-form__hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* WP comment form */
.comment-form { display: grid; gap: var(--vc-s-3); }
.comment-form input,
.comment-form textarea { width: 100%; padding: 14px 18px; background: var(--vc-bg-soft); border: 1px solid var(--vc-line); border-radius: var(--vc-radius); color: var(--vc-fg); }
.comment-form .form-submit { margin-top: var(--vc-s-3); }

/* Search form */
.search-form {
	display: flex; gap: var(--vc-s-2); flex-wrap: wrap; align-items: stretch;
}
.search-form__input {
	flex: 1; min-width: 0;
	padding: 14px 18px;
	background: var(--vc-bg-soft);
	border: 1px solid var(--vc-line); border-radius: 999px;
	color: var(--vc-fg);
}
.search-form__input:focus { outline: 0; border-color: var(--vc-accent); }
