/* ==========================================================
   KOKO Enterprise — Forms
   ========================================================== */

.form-group {
	margin-bottom: 1.5rem;
}

.form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.form-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2rem;
}

label {
	display: block;
	margin-bottom: .6rem;
	color: var(--color-primary);
	font-size: .92rem;
	font-weight: 600;
	line-height: 1.4;
}

.required {
	color: var(--color-error);
}

input,
textarea,
select {
	width: 100%;
	min-height: 52px;
	padding: .9rem 1rem;
	color: var(--color-text);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font: inherit;
	line-height: 1.5;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
}

input::placeholder,
textarea::placeholder {
	color: var(--color-muted);
	opacity: .72;
}

input:hover,
textarea:hover,
select:hover {
	border-color: var(--color-border-strong);
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--color-accent);
	box-shadow: var(--focus-ring);
}

textarea {
	min-height: 180px;
	resize: vertical;
}

select {
	cursor: pointer;
}

input[type="checkbox"],
input[type="radio"] {
	width: 1.1rem;
	height: 1.1rem;
	min-height: 0;
	margin: 0 .6rem 0 0;
	padding: 0;
	accent-color: var(--color-accent);
}

input[type="file"] {
	padding: .7rem;
}

input:disabled,
textarea:disabled,
select:disabled {
	color: rgba(18, 18, 18, .48);
	background: var(--color-surface-muted);
	cursor: not-allowed;
	opacity: .8;
}

.is-error,
input[aria-invalid="true"],
textarea[aria-invalid="true"],
select[aria-invalid="true"] {
	border-color: var(--color-error);
}

input[aria-invalid="true"]:focus,
textarea[aria-invalid="true"]:focus,
select[aria-invalid="true"]:focus {
	box-shadow: 0 0 0 3px rgba(180, 35, 24, .16);
}

.form-error,
.validation-message {
	display: block;
	margin-top: .5rem;
	color: var(--color-error);
	font-size: .88rem;
	line-height: 1.5;
}

.form-help {
	display: block;
	margin-top: .5rem;
	color: var(--color-text-light);
	font-size: .88rem;
	line-height: 1.5;
}

.search-form {
	display: flex;
	align-items: stretch;
	gap: .75rem;
}

.search-form label {
	flex: 1;
	margin: 0;
}

.search-field {
	height: 100%;
}

.search-submit {
	flex-shrink: 0;
}

.wpcf7-form p {
	margin-bottom: 1.5rem;
}

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

.wpcf7-not-valid {
	border-color: var(--color-error);
}

.wpcf7-not-valid-tip {
	margin-top: .5rem;
	color: var(--color-error);
	font-size: .88rem;
}

.wpcf7-response-output {
	margin: 2rem 0 0 !important;
	padding: 1rem 1.25rem !important;
	border-radius: var(--radius-sm);
}

.wpforms-container .wpforms-field {
	padding: 0 0 1.5rem !important;
}

.wpforms-container .wpforms-field-label {
	margin-bottom: .6rem !important;
	color: var(--color-primary);
	font-size: .92rem !important;
	font-weight: 600 !important;
}

.wpforms-container input,
.wpforms-container textarea,
.wpforms-container select {
	max-width: none !important;
}

form button:focus-visible,
form input:focus-visible,
form textarea:focus-visible,
form select:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 3px;
}

@media (max-width: 768px) {
	.form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.form-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.form-actions .btn,
	.search-submit {
		width: 100%;
	}

	.search-form {
		flex-direction: column;
	}
}
