/* Contact Form — Validation states */

form[data-cf-form] {
	--cf-error-color: #B84242;
	--cf-alert-color: #DB5937;
}

/* Border override via CSS vars (allows per-form color customization from admin) */
form[data-cf-form] .error-input { box-shadow: var(--cf-error-color) 0px 0px 0px 2px inset !important; }
form[data-cf-form] .alert-input { box-shadow: var(--cf-alert-color) 0px 0px 0px 2px inset !important; }

/* Popup success / error */
.infoPopup { margin-top: 10px; }
.cf-popup--success { color: #00a32a; }
.cf-popup--error   { color: #d63638; }

/* File list */
.cf-file-list {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
}
.cf-file-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	font-size: 0.875em;
}
.cf-file-info {
	flex: 1;
	display: flex;
	align-items: baseline;
	gap: 6px;
	overflow: hidden;
}
.cf-file-name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cf-file-item--invalid .cf-file-name {
	color: var(--cf-error-color, #B84242);
}
.cf-file-reason {
	flex-shrink: 0;
	font-size: 0.85em;
	color: var(--cf-error-color, #B84242);
	white-space: nowrap;
}
.cf-file-remove {
	flex-shrink: 0;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 1.1em;
	line-height: 1;
	padding: 0 2px;
	color: #646970;
}
.cf-file-remove:hover { color: #d63638; }

.cf-file-counter {
	margin: 4px 0 0;
	font-size: 0.8em;
	color: #646970;
	text-align: right;
}
.cf-file-counter--full {
	color: var(--cf-alert-color, #DB5937);
	font-weight: 600;
}
.cf-file-notice {
	margin: 4px 0 0;
	font-size: 0.8em;
	color: var(--cf-alert-color, #DB5937);
}

.cf-file-rejection {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	font-size: 0.8em;
	color: var(--cf-alert-color, #DB5937);
	opacity: 1;
	transition: opacity 0.4s ease;
}
.cf-file-rejection--hiding { opacity: 0; }
.cf-file-rejection li { padding: 1px 0; }
