/*
 * Formularios: un solo diseño para todos (proyectos, contacto, postventa,
 * referidos). Cada formulario conserva sus campos y su distribución en
 * columnas; lo que se unifica es cómo se ven: campos, listas, opciones,
 * el check de la política y el botón.
 *
 * Las hojas de cada página traen el estilo que Elementor le dio a cada
 * formulario, con selectores muy específicos: por eso aquí va !important.
 */

form[data-jc-form] {
	--jf-verde: #8bc34a;
	--jf-verde-osc: #79ad3b;
	--jf-borde: #d9dfd0;
	--jf-texto: #22281c;
	--jf-suave: #8a9083;
	--jf-radio: 12px;
	font-family: Rubik, sans-serif !important;
}

form[data-jc-form] .elementor-form-fields-wrapper { margin: 0 -6px !important; row-gap: 0 !important; }
form[data-jc-form] .elementor-field-group { padding: 0 6px !important; margin: 0 0 12px !important; }

/* Etiquetas, cuando el formulario las muestra */
form[data-jc-form] .elementor-field-label:not(.elementor-screen-only) {
	display: block !important; margin: 0 0 6px !important; padding: 0 !important;
	font: 600 13px/1.3 Rubik, sans-serif !important; color: var(--jf-texto) !important;
}
form[data-jc-form] .elementor-field-required .elementor-field-label:not(.elementor-screen-only)::after { color: var(--jf-verde) !important; }

/* Campos de texto, listas y cuadro de mensaje */
form[data-jc-form] input.elementor-field-textual,
form[data-jc-form] select.elementor-field-textual,
form[data-jc-form] textarea.elementor-field-textual,
form[data-jc-form] .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper):not(.elementor-acceptance-field):not([type=radio]):not([type=checkbox]) {
	width: 100% !important; min-height: 48px !important; margin: 0 !important;
	padding: 12px 16px !important;
	background: #fff !important; color: var(--jf-texto) !important;
	border: 1.5px solid var(--jf-borde) !important; border-radius: var(--jf-radio) !important;
	font: 400 15px/1.4 Rubik, sans-serif !important;
	box-shadow: none !important; outline: 0 !important;
	transition: border-color .15s, box-shadow .15s !important;
}
form[data-jc-form] textarea.elementor-field-textual { min-height: 110px !important; resize: vertical; }
form[data-jc-form] .elementor-field-textual::placeholder { color: var(--jf-suave) !important; opacity: 1 !important; }
form[data-jc-form] .elementor-field-textual:hover { border-color: #c3cdb3 !important; }
form[data-jc-form] .elementor-field-textual:focus {
	border-color: var(--jf-verde) !important;
	box-shadow: 0 0 0 4px rgba(139, 195, 74, .18) !important;
}
form[data-jc-form] .elementor-field-textual[aria-invalid=true] { border-color: #e05a4f !important; }

/* Listas desplegables: sin el marco de Elementor, con su flecha */
form[data-jc-form] .elementor-select-wrapper {
	position: relative !important; width: 100% !important; padding: 0 !important; margin: 0 !important;
	background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
form[data-jc-form] .elementor-select-wrapper::before { display: none !important; }
form[data-jc-form] .elementor-select-wrapper select { -webkit-appearance: none !important; appearance: none !important; padding-right: 42px !important; cursor: pointer; }
form[data-jc-form] .select-caret-down-wrapper {
	position: absolute !important; right: 16px !important; left: auto !important; top: 50% !important;
	transform: translateY(-50%) !important; pointer-events: none; line-height: 0 !important; z-index: 1;
}
form[data-jc-form] .select-caret-down-wrapper svg { width: 11px !important; height: 11px !important; fill: var(--jf-suave) !important; }

/* Preguntas con opciones (radio): tarjetas que se marcan en verde */
form[data-jc-form] .elementor-field-type-html { font: 500 14px/1.45 Rubik, sans-serif !important; color: var(--jf-texto) !important; margin-bottom: 8px !important; }
form[data-jc-form] .elementor-field-type-radio .elementor-field-subgroup,
form[data-jc-form] .elementor-field-type-checkbox .elementor-field-subgroup { display: grid !important; gap: 8px !important; }
form[data-jc-form] .elementor-field-type-radio .elementor-field-option,
form[data-jc-form] .elementor-field-type-checkbox .elementor-field-option {
	position: relative; display: flex !important; align-items: center; gap: 10px; margin: 0 !important; padding: 0 !important;
}
form[data-jc-form] .elementor-field-type-radio .elementor-field-option label,
form[data-jc-form] .elementor-field-type-checkbox .elementor-field-option label {
	flex: 1; margin: 0 !important; padding: 11px 14px 11px 42px !important;
	border: 1.5px solid var(--jf-borde) !important; border-radius: var(--jf-radio) !important; background: #fff !important;
	font: 400 14px/1.35 Rubik, sans-serif !important; color: var(--jf-texto) !important; cursor: pointer;
	transition: border-color .15s, background .15s;
}
form[data-jc-form] .elementor-field-type-radio input,
form[data-jc-form] .elementor-field-type-checkbox input {
	position: absolute; left: 14px; top: 50%; transform: translateY(-50%); margin: 0 !important;
	width: 18px; height: 18px; accent-color: var(--jf-verde); cursor: pointer; z-index: 1;
}
form[data-jc-form] .elementor-field-type-radio input:checked + label,
form[data-jc-form] .elementor-field-type-checkbox input:checked + label { border-color: var(--jf-verde) !important; background: #f4f9ec !important; }

/* Política de datos: siempre el mismo check, ya marcado */
form[data-jc-form] .elementor-field-type-acceptance .elementor-field-option { display: flex !important; align-items: flex-start; gap: 10px; }
form[data-jc-form] .elementor-field-type-acceptance input {
	flex: none; width: 18px !important; height: 18px !important; margin: 1px 0 0 !important; accent-color: var(--jf-verde); cursor: pointer;
}
form[data-jc-form] .elementor-field-type-acceptance label {
	margin: 0 !important; padding: 0 !important; font: 400 13px/1.45 Rubik, sans-serif !important; color: #5d6457 !important; cursor: pointer;
}

/* El reCAPTCHA de Elementor ya no existe: el núcleo frena a los robots */
form[data-jc-form] .elementor-field-type-recaptcha_v3,
form[data-jc-form] .elementor-field-type-recaptcha,
form[data-jc-form] .e-field-step { display: none !important; }

/* Botón */
form[data-jc-form] .e-form__buttons, form[data-jc-form] .elementor-field-type-submit { margin: 4px 0 0 !important; }
form[data-jc-form] button.jc-form__enviar {
	width: 100% !important; min-height: 52px !important; margin: 0 !important; padding: 0 24px !important;
	display: flex !important; align-items: center; justify-content: center;
	background: var(--jf-verde) !important; color: #fff !important;
	border: 0 !important; border-radius: var(--jf-radio) !important;
	font: 600 16px/1 Rubik, sans-serif !important; letter-spacing: .01em; text-transform: none !important;
	box-shadow: 0 8px 18px rgba(139, 195, 74, .28) !important; cursor: pointer;
	transition: background .15s, transform .15s, box-shadow .15s !important;
}
form[data-jc-form] button.jc-form__enviar * { color: inherit !important; font: inherit !important; }
form[data-jc-form] button.jc-form__enviar:hover { background: var(--jf-verde-osc) !important; transform: translateY(-1px); }
form[data-jc-form] button.jc-form__enviar:disabled { opacity: .7; cursor: wait; transform: none; }

/* Mensaje de envío */
form[data-jc-form] .jc-form__estado { margin: 10px 6px 0 !important; font: 500 14px/1.4 Rubik, sans-serif !important; text-align: center; }

@media (max-width: 767px) {
	form[data-jc-form] input.elementor-field-textual,
	form[data-jc-form] select.elementor-field-textual,
	form[data-jc-form] textarea.elementor-field-textual { font-size: 16px !important; } /* sin zoom en iPhone */
}
