.zcf-form-wrapper { max-width: 560px; }
.zcf-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 16px;
	row-gap: 16px;
}
.zcf-field { margin-bottom: 0; min-width: 0; }
.zcf-field-full,
.zcf-field-submit { grid-column: 1 / -1; }
.zcf-field-submit { position: relative; }
.zcf-field label { display: block; font-weight: 600; margin-bottom: 4px; }
.zcf-field input[type="text"],
.zcf-field input[type="email"],
.zcf-field input[type="tel"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	font-size: 15px;
}

@media (max-width: 600px) {
	.zcf-form { grid-template-columns: 1fr; }
	.zcf-field-half { grid-column: 1 / -1; }
}

.zcf-required { color: #d63638; }
.zcf-phone-group {
	display: flex;
	align-items: stretch;
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #f6f7f7;
}
.zcf-field .zcf-phone-group .zcf-phone-input {
	flex: 1;
	border: none;
	border-radius: 0;
	background: transparent;
}
.zcf-field .zcf-phone-group .zcf-phone-input:focus { outline: none; box-shadow: none; }

/* Country picker */
.zcf-country-picker { position: relative; flex: 0 0 auto; }

.zcf-country-trigger {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 100%;
	min-height: 42px;
	padding: 10px 12px;
	background: transparent;
	border: none;
	border-right: 1px solid #ddd;
	border-radius: 4px 0 0 4px;
	cursor: pointer;
	font-size: 15px;
	color: #50575e;
}
.zcf-country-trigger:hover { background: #ececec; }
.zcf-country-flag { font-size: 18px; line-height: 1; display: inline-flex; align-items: center; }
.zcf-country-caret { font-size: 10px; color: #787c82; }
.zcf-country-dial { font-weight: 600; color: #50575e; }

.zcf-country-dropdown {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	z-index: 100;
	min-width: 280px;
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 6px;
	box-shadow: 0 4px 16px rgba(0,0,0,.15);
	overflow: hidden;
}
.zcf-country-search-wrap { padding: 10px; border-bottom: 1px solid #eee; }
.zcf-country-search {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
}
.zcf-country-list { list-style: none; margin: 0; padding: 4px 0; max-height: 240px; overflow-y: auto; }
.zcf-country-option {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	cursor: pointer;
	font-size: 15px;
	border-left: 3px solid transparent;
}
.zcf-country-option:hover,
.zcf-country-option:focus {
	background: #f0f2f5;
	border-left-color: #2271b1;
}
.zcf-country-option-selected {
	background: #f0f2f5;
	border-left-color: #2271b1;
}
.zcf-country-option-flag { font-size: 20px; display: inline-flex; align-items: center; flex-shrink: 0; }
.zcf-country-option-name { flex: 1; color: #1d2327; }
.zcf-country-option-dial { color: #8c8f94; }
.zcf-country-empty { color: #787c82; cursor: default; }
.zcf-country-empty:hover { background: none; border-left-color: transparent; }

.zcf-field.zcf-has-error input { border-color: #d63638; }
.zcf-field-error { color: #d63638; font-size: 13px; margin-top: 4px; }

.zcf-submit-button {
	display: block;
	width: 100%;
	background: var(--zcf-button-color, #2b1bf0);
	color: #fff;
	border: none;
	padding: 15px 26px;
	border-radius: 4px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .4px;
	cursor: pointer;
}
.zcf-submit-button:hover { filter: brightness(0.92); }
.zcf-submit-button:disabled { opacity: .6; cursor: default; }

.zcf-spinner {
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	display: inline-block;
	width: 16px;
	height: 16px;
	border: 2px solid rgba(255,255,255,.5);
	border-top-color: #fff;
	border-radius: 50%;
	animation: zcf-spin 0.7s linear infinite;
}
@keyframes zcf-spin { to { transform: rotate(360deg); } }

.zcf-form-message { padding: 12px 16px; border-radius: 4px; margin-bottom: 16px; }
.zcf-message-success { background: #d4edda; color: #155724; }
.zcf-message-error { background: #f8d7da; color: #721c24; }
