/* Formulár preberá farby z témy cez CSS premenné; fallbacky pre iné témy. */
.kv-form {
	--kv-bg: var(--c-surface, #fff);
	--kv-fg: var(--c-text, #16181d);
	--kv-muted: var(--c-muted, #5d6470);
	--kv-line: var(--c-line, #d9dde3);
	--kv-accent: var(--c-accent, #2f6bff);
	--kv-accent-fg: var(--c-accent-fg, #fff);
	--kv-danger: var(--c-danger, #c62f3b);
	--kv-ok: var(--c-ok, #1d7a4b);
	color: var(--kv-fg);
}
.kv-form [hidden] { display: none !important; }
.kv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.kv-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.kv-field--full { grid-column: 1 / -1; }
.kv-field label { font-weight: 600; font-size: .92rem; }
.kv-field label small { font-weight: 400; color: var(--kv-muted); }
.kv-form input[type=text], .kv-form input[type=email], .kv-form input[type=tel], .kv-form select, .kv-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; color: var(--kv-fg);
	background: var(--kv-bg); border: 1px solid var(--kv-line); border-radius: var(--radius-ui, 10px); padding: 11px 13px;
	transition: border-color .15s, box-shadow .15s;
}
.kv-form textarea { resize: vertical; min-height: 140px; }
.kv-form input:focus, .kv-form select:focus, .kv-form textarea:focus {
	outline: none; border-color: var(--kv-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--kv-accent) 25%, transparent);
}
.kv-form [aria-invalid=true] { border-color: var(--kv-danger); }
.kv-error { margin: 0; min-height: 0; font-size: .85rem; color: var(--kv-danger); }
.kv-error:empty { display: none; }
.kv-hint { margin: 2px 0 0; font-size: .88rem; color: var(--kv-muted); }
.kv-counter { margin: 0; font-size: .8rem; color: var(--kv-muted); text-align: right; }
.kv-consent { margin-top: 18px; }
.kv-consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .88rem; color: var(--kv-muted); }
.kv-consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--kv-accent); }
.kv-consent a { color: var(--kv-accent); }
.kv-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.cf-turnstile { margin-top: 16px; }
.kv-actions { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.kv-btn {
	font: inherit; font-weight: 600; font-size: 1rem; cursor: pointer; border: 0; border-radius: var(--radius-ui, 10px);
	padding: 13px 24px; background: var(--kv-accent); color: var(--kv-accent-fg); transition: filter .15s, transform .05s;
}
.kv-btn:hover:not(:disabled) { filter: brightness(1.08); }
.kv-btn:active:not(:disabled) { transform: translateY(1px); }
.kv-btn:disabled { opacity: .55; cursor: not-allowed; }
.kv-note { margin: 0; font-size: .85rem; color: var(--kv-muted); }
.kv-alert { margin-top: 18px; padding: 14px 16px; border-radius: var(--radius-ui, 10px); font-size: .95rem; border: 1px solid; }
.kv-alert--success { color: var(--kv-ok); border-color: currentColor; background: color-mix(in srgb, var(--kv-ok) 8%, transparent); }
.kv-alert--error { color: var(--kv-danger); border-color: currentColor; background: color-mix(in srgb, var(--kv-danger) 8%, transparent); }
@media (max-width: 640px) { .kv-grid { grid-template-columns: 1fr; } }

