/* Formistic — frontend [wpistic_contact_form] shortcode */

.wpistic-formistic-form-wrap { max-width: 640px; margin: 0 auto; }
.wpistic-formistic-form-wrap * { box-sizing: border-box; }

.wpistic-formistic-form {
	background: #fff;
	border: 1px solid #e4e5ee;
	border-radius: 12px;
	padding: 28px;
}
.wpistic-formistic-form-title {
	margin: 0 0 18px;
	font-size: 22px;
	line-height: 1.2;
}
.wpistic-formistic-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.wpistic-formistic-field {
	display: block;
	margin-bottom: 14px;
}
.wpistic-formistic-field > span {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 5px;
}
.wpistic-formistic-field input,
.wpistic-formistic-field textarea {
	width: 100%;
	border: 1px solid #d4d6e2;
	border-radius: 8px;
	padding: 11px 12px;
	font-size: 15px;
	font-family: inherit;
}
.wpistic-formistic-field input:focus,
.wpistic-formistic-field textarea:focus {
	outline: none;
	border-color: #5b4fd6;
	box-shadow: 0 0 0 3px rgba(91,79,214,.16);
}
.wpistic-formistic-form-submit {
	display: inline-block;
	background: #5b4fd6;
	color: #fff;
	border: 0;
	border-radius: 8px;
	padding: 13px 26px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s ease;
}
.wpistic-formistic-form-submit:hover { background: #3f36a8; }

.wpistic-formistic-form-notice {
	border-radius: 8px;
	padding: 13px 16px;
	margin-bottom: 16px;
	font-size: 14px;
}
.wpistic-formistic-form-notice--ok  { background: #e2f4ec; color: #1e7a52; }
.wpistic-formistic-form-notice--err { background: #fbe6e5; color: #b8332b; }

/* File upload field */
.wpistic-formistic-field--file input[type=file] {
	border: 1px dashed #d4d6e2; padding: 14px; background: #fafbff; cursor: pointer;
}
.wpistic-formistic-field__help { display: block; margin-top: 5px; color: #6b7088; font-size: 12px; }

/* Cloudflare Turnstile widget spacing */
.cf-turnstile { margin: 6px 0 14px; }

/* GDPR consent */
.wpistic-formistic-consent {
	display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 16px;
	font-size: 13px; line-height: 1.45;
}
.wpistic-formistic-consent input[type=checkbox] { margin-top: 3px; }
.wpistic-formistic-consent span { color: #4a4f6b; }

/* Honeypot — visually hidden, still in the DOM for bots */
.wpistic-formistic-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 560px) {
	.wpistic-formistic-form { padding: 20px; }
	.wpistic-formistic-form-row { grid-template-columns: 1fr; gap: 0; }
}

/* Newsletter sign-up ([wpistic_formistic_newsletter]) */
.wpistic-formistic-newsletter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.wpistic-formistic-newsletter input[type="email"] { flex: 1 1 200px; padding: 10px 12px; }
.wpistic-formistic-newsletter button { padding: 10px 18px; cursor: pointer; }
.wpistic-formistic-newsletter button[disabled] { opacity: .6; cursor: default; }
.wpistic-formistic-newsletter-status { flex-basis: 100%; font-size: 13px; margin-top: 4px; }
.wpistic-formistic-newsletter-status.is-ok { color: #1a7f37; }
.wpistic-formistic-newsletter-status.is-error { color: #b32d2e; }

/* ============================================================
 * Form skin — driven by per-form style controls (CSS variables)
 * ============================================================ */
.wpistic-formistic-skin { max-width: var(--wpf-width, 640px); }
.wpistic-formistic-skin .wpistic-formistic-form { display: flex; flex-direction: column; gap: var(--wpf-gap, 16px); }
.wpistic-formistic-skin .wpistic-formistic-field input,
.wpistic-formistic-skin .wpistic-formistic-field textarea,
.wpistic-formistic-skin .wpistic-formistic-field select {
	border-radius: var(--wpf-radius, 10px);
}
.wpistic-formistic-skin .wpistic-formistic-form-submit {
	background: var(--wpf-accent, #2563eb);
	color: var(--wpf-btn-text, #ffffff);
	border-radius: var(--wpf-radius, 10px);
}
.wpistic-formistic-skin .wpistic-formistic-field input:focus,
.wpistic-formistic-skin .wpistic-formistic-field textarea:focus,
.wpistic-formistic-skin .wpistic-formistic-field select:focus {
	outline: 2px solid var(--wpf-accent, #2563eb);
	outline-offset: 1px;
}
/* Two-column layout */
.wpistic-formistic-skin--two .wpistic-formistic-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wpf-gap, 16px);
}
.wpistic-formistic-skin--two .wpistic-formistic-form-title,
.wpistic-formistic-skin--two .wpistic-formistic-form-notice,
.wpistic-formistic-skin--two .wpistic-formistic-form-submit,
.wpistic-formistic-skin--two .wpistic-formistic-field--group,
.wpistic-formistic-skin--two .wpistic-formistic-field--file,
.wpistic-formistic-skin--two .wpistic-formistic-consent { grid-column: 1 / -1; }
@media (max-width: 560px) {
	.wpistic-formistic-skin--two .wpistic-formistic-form { grid-template-columns: 1fr; }
}
