/**
 * ECOTEC · Tema común de formularios (sistema de diseño 2026)
 * Aplica los tokens del sitio a los formularios de: ecotec-forms (.ewf-form, .ecotec-form),
 * ecotec-forms-universal (.efu-form), ecotec-gestores-contacto (.egf-*) y el Buzón de Bienestar (.ecotec-buzon).
 * Se carga después de la hoja de cada plugin (mu-plugin ecotec-formularios-tema.php).
 */
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) {
	--ecf-azul: var(--c-azul, #0049a4);
	--ecf-azul-oscuro: #001d68;
	--ecf-marino: var(--c-marino, #182640);
	--ecf-texto: var(--c-texto, #3d4450);
	--ecf-suave: var(--c-texto-suave, #606060);
	--ecf-borde: var(--c-borde, #dfe4ec);
	--ecf-campo: #f7f9fc;
	--ecf-radio: 1.2rem;
	--ecf-error: #c62828;
	font-family: inherit;
	color: var(--ecf-texto);
	max-width: none;
	padding: 0;
}

/* Rejillas */
:is(.ewf-form .ewf-grid, .ecotec-form .ecotec-grid, .efu-form .efu-grid, .ecotec-buzon .ecotec-buzon__grid) { gap: 1.4rem 1.6rem; }

/* Etiquetas */
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) label {
	margin: 0 0 0.6rem;
	color: var(--ecf-marino);
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.01em;
}
:is(.ewf-form .ewf-req, .efu-form .efu-req, .ecotec-buzon label b) { color: var(--ecf-error); }
:is(.ewf-form .ewf-opt, .ecotec-buzon label em, .efu-form .efu-ayuda, .ecotec-buzon small) { color: var(--ecf-suave); font-weight: 500; }

/* Campos */
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="date"], select, textarea) {
	width: 100%;
	min-height: 4.8rem;
	box-sizing: border-box;
	margin: 0;
	padding: 1.2rem 1.6rem;
	border: 1.5px solid var(--ecf-borde);
	border-radius: var(--ecf-radio);
	background-color: var(--ecf-campo);
	color: var(--ecf-marino);
	font-family: inherit;
	font-size: 1.6rem;
	line-height: 1.4;
	box-shadow: none;
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) textarea { min-height: 13rem; resize: vertical; }
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input, textarea)::placeholder { color: #8a93a3; opacity: 1; }
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 4.4rem;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke='%230049a4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1.5 1.5l5.5 5.5 5.5-5.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.6rem center;
	background-size: 1.4rem auto;
	cursor: pointer;
}
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input, select, textarea):hover:not(:disabled):not([readonly]) { border-color: #c3ccda; }
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input, select, textarea):focus {
	border-color: var(--ecf-azul);
	background-color: #ffffff;
	box-shadow: 0 0 0 4px rgba(0, 73, 164, 0.12);
}
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input, select, textarea):is(:disabled, [readonly]) { background-color: #eef1f5; color: var(--ecf-suave); cursor: not-allowed; }
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input, select, textarea):user-invalid,
.efu-form .efu-invalido { border-color: var(--ecf-error); box-shadow: 0 0 0 4px rgba(198, 40, 40, 0.1); }

/* Casillas y opciones */
:is(.ewf-form .ewf-checkbox, .efu-form .efu-check, .efu-form .efu-radio, .ecotec-buzon .ecotec-buzon__accept, .ecotec-buzon .ecotec-buzon__radios label) {
	display: inline-flex;
	align-items: flex-start;
	gap: 1rem;
	margin-top: 0.8rem;
	color: var(--ecf-texto);
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.45;
	cursor: pointer;
}
:is(.ewf-form, .ecotec-form, .efu-form, .ecotec-buzon) :is(input[type="checkbox"], input[type="radio"]) {
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	min-height: 0;
	margin: 0.1rem 0 0;
	accent-color: var(--ecf-azul);
	cursor: pointer;
}
:is(.ewf-form .ewf-checkbox, .efu-form .efu-check, .efu-form .efu-legal, .ecotec-buzon .ecotec-buzon__accept) a { color: var(--ecf-azul); font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; }

/* Botón de envío */
:is(.ewf-form button[type="submit"], .ecotec-form .ecotec-submit, .efu-form button[type="submit"], .ecotec-buzon .ecotec-buzon__submit) {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.8rem;
	width: 100%;
	min-height: 5.2rem;
	margin-top: 1.6rem;
	padding: 1.4rem 2.4rem;
	border: 0;
	border-radius: 99rem;
	background: var(--ecf-azul);
	color: #ffffff;
	font-family: inherit;
	font-size: 1.6rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.01em;
	box-shadow: 0 12px 28px -14px rgba(0, 73, 164, 0.75);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
:is(.ewf-form button[type="submit"], .ecotec-form .ecotec-submit, .efu-form button[type="submit"], .ecotec-buzon .ecotec-buzon__submit):hover:not(:disabled) {
	background: var(--ecf-azul-oscuro);
	transform: translateY(-1px);
	box-shadow: 0 16px 32px -14px rgba(0, 29, 104, 0.8);
}
:is(.ewf-form button[type="submit"], .ecotec-form .ecotec-submit, .efu-form button[type="submit"], .ecotec-buzon .ecotec-buzon__submit):focus-visible { outline: 3px solid #5ee0ff; outline-offset: 3px; }
:is(.ewf-form button[type="submit"], .ecotec-form .ecotec-submit, .efu-form button[type="submit"], .ecotec-buzon .ecotec-buzon__submit):disabled { opacity: 0.6; transform: none; box-shadow: none; cursor: not-allowed; }

/* Mensajes */
:is(.ewf-form .ewf-error, .ecotec-form .ecotec-message.is-error, .efu-form .efu-error:not(.efu-estado-cedula), .ecotec-buzon .ecotec-buzon__message.is-error) {
	margin-top: 1.2rem;
	padding: 1.2rem 1.6rem;
	border: 1px solid #f3c4c4;
	border-radius: var(--ecf-radio);
	background: #fdeeee;
	color: #a3221b;
	font-size: 1.4rem;
	font-weight: 500;
}
.ewf-form .ewf-error:empty, .ecotec-form .ecotec-message:empty { display: none; }
:is(.ecotec-form .ecotec-message.is-success, .efu-form .efu-ok, .ecotec-buzon .ecotec-buzon__message.is-success) {
	margin-top: 1.2rem;
	padding: 1.2rem 1.6rem;
	border: 1px solid #b7e4c7;
	border-radius: var(--ecf-radio);
	background: #ecf8f0;
	color: #146c43;
	font-size: 1.4rem;
	font-weight: 600;
}

/* ecotec-forms-universal: variables propias */
.efu-form {
	--efu-acento: var(--ecf-azul);
	--efu-texto: var(--ecf-marino);
	--efu-suave: var(--ecf-suave);
	--efu-linea: var(--ecf-borde);
	--efu-radio: var(--ecf-radio);
}

/* Gestores de contacto */
.egf-form-intro h2 { color: var(--c-marino, #182640); font-weight: 700; }
.egf-form-intro p { color: var(--c-texto-suave, #606060); }
.egf-modal__card { border-radius: var(--radio-l, 2.4rem); }
.egf-modal__title { color: var(--c-marino, #182640); }
.egf-modal__cta { border-radius: 99rem; background: var(--c-azul, #0049a4); color: #ffffff; font-weight: 700; }
.egf-modal__cta:hover { background: #001d68; }

/* Buzón de Bienestar: paleta y tarjeta */
.ecotec-buzon {
	--ecotec-primary: var(--ecf-azul);
	--ecotec-primary-dark: var(--ecf-azul-oscuro);
	--ecotec-primary-soft: #eef4fb;
	--ecotec-border: var(--ecf-borde);
	--ecotec-text: var(--ecf-texto);
	--ecotec-muted: var(--ecf-suave);
	overflow: hidden;
	border: 1px solid var(--ecf-borde);
	border-radius: var(--radio-l, 2.4rem);
	box-shadow: 0 24px 60px -32px rgba(0, 29, 104, 0.35);
}
.ecotec-buzon .ecotec-buzon__header h2,
.ecotec-buzon .ecotec-buzon__section-title h3 { color: var(--ecf-marino); }
.ecotec-buzon .ecotec-buzon__section-title span { background: var(--c-celeste, #00b3e6); }
.ecotec-buzon .ecotec-buzon__file { border-radius: var(--ecf-radio); border-color: #c3ccda; background: var(--ecf-campo); }
.ecotec-buzon .ecotec-buzon__notice, .ecotec-buzon .ecotec-buzon__declaration { border-radius: var(--ecf-radio); }
.ecotec-buzon .ecotec-buzon__submit { width: auto; min-width: 22rem; }

@media (max-width: 600px) {
	:is(.ewf-form .ewf-grid, .ecotec-form .ecotec-grid) { grid-template-columns: minmax(0, 1fr); }
	.ecotec-buzon .ecotec-buzon__submit { width: 100%; min-width: 0; }
}
