/**
 * Estilos del formulario. Los colores replican el formulario Kadence anterior
 * y se pueden ajustar por tema sobreescribiendo estas variables.
 */
.abgn-form-wrap {
	--abgn-navy: #1d3370;
	--abgn-orange: #fe4c1c;
	--abgn-field-bg: #e8ecf5;
	--abgn-radius: 16px;
	--abgn-gap: 18px;
	--abgn-error: #b32d2e;
}

.abgn-form .abgn-fields {
	display: flex;
	flex-wrap: wrap;
	gap: var(--abgn-gap);
}

/* Bloques de maquetación (Columnas, Grupo, etc.) insertados junto a los
   campos: ocupan la fila completa por defecto, en vez de encogerse al
   contenido como haría cualquier otro hijo de un contenedor flex. */
.abgn-form .abgn-fields > :not(.abgn-field) {
	flex-basis: 100%;
	width: 100%;
}

.abgn-form .abgn-field {
	flex: 1 1 calc(var(--abgn-field-width, 100%) - var(--abgn-gap));
	min-width: 220px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.abgn-form .abgn-field--hidden {
	display: none;
}

.abgn-form .abgn-label {
	color: var(--abgn-navy);
	font-size: 15px;
	line-height: 1.3;
}

.abgn-form .abgn-required {
	color: var(--abgn-orange);
}

.abgn-form input[type="text"],
.abgn-form input[type="email"],
.abgn-form input[type="tel"],
.abgn-form input[type="url"],
.abgn-form input[type="number"],
.abgn-form input[type="date"],
.abgn-form select,
.abgn-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 14px;
	background: var(--abgn-field-bg);
	border: 1px solid transparent;
	border-radius: var(--abgn-radius);
	font: inherit;
	font-size: 16px; /* Evita el zoom automático en iOS. */
	color: #1a1a1a;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.abgn-form textarea {
	resize: vertical;
	min-height: 110px;
}

.abgn-form input:focus,
.abgn-form select:focus,
.abgn-form textarea:focus {
	outline: none;
	border-color: var(--abgn-navy);
	box-shadow: 0 0 0 3px rgba(29, 51, 112, .12);
}

.abgn-form .abgn-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
}

.abgn-form .abgn-choice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
}

.abgn-form .abgn-help {
	margin: 0;
	color: #66708a;
	font-size: 13px;
}

.abgn-form .abgn-field-error {
	margin: 0;
	color: var(--abgn-error);
	font-size: 13px;
	min-height: 0;
}

.abgn-form .abgn-field-error:empty {
	display: none;
}

.abgn-form .abgn-field.has-error input,
.abgn-form .abgn-field.has-error select,
.abgn-form .abgn-field.has-error textarea {
	border-color: var(--abgn-error);
}

/* Señuelo antispam: fuera de pantalla, nunca visible para el visitante. */
.abgn-form .abgn-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.abgn-form .abgn-submit-wrap {
	width: 100%;
	margin-top: 8px;
	display: flex;
	align-items: center;
	gap: 12px;
}

.abgn-form .abgn-submit-wrap.has-text-align-center { justify-content: center; }
.abgn-form .abgn-submit-wrap.has-text-align-right { justify-content: flex-end; }

.abgn-form .abgn-submit {
	appearance: none;
	cursor: pointer;
	padding: 12px 28px;
	border: 2px solid var(--abgn-orange);
	border-radius: 20px;
	background: #ffffff;
	color: var(--abgn-orange);
	font: inherit;
	font-weight: 700;
	text-transform: capitalize;
	transition: background .15s ease, color .15s ease;
}

.abgn-form .abgn-submit.is-full {
	width: 100%;
}

.abgn-form .abgn-submit:hover:not(:disabled) {
	background: var(--abgn-orange);
	color: #e8ecf5;
}

.abgn-form .abgn-submit:disabled {
	opacity: .6;
	cursor: progress;
}

.abgn-form .abgn-spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid var(--abgn-field-bg);
	border-top-color: var(--abgn-orange);
	border-radius: 50%;
	animation: abgn-spin .7s linear infinite;
}

.abgn-form .abgn-submit-wrap.is-sending .abgn-spinner {
	display: inline-block;
}

@keyframes abgn-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.abgn-form .abgn-spinner { animation: none; }
}

.abgn-form-message {
	margin-top: 16px;
	border-radius: 12px;
	font-size: 15px;
}

.abgn-form-message:empty {
	display: none;
}

.abgn-form-message.is-success {
	padding: 14px 18px;
	background: #e7f6ec;
	border-left: 4px solid #1f8a4c;
	color: #14532d;
}

.abgn-form-message.is-error {
	padding: 14px 18px;
	background: #fdecea;
	border-left: 4px solid var(--abgn-error);
	color: #7a1d1e;
}

.abgn-form-notice {
	padding: 12px 16px;
	background: #fff8e5;
	border-left: 4px solid #dba617;
	color: #664d03;
}
