/* ═══════════════════════════════════════════════════════════════
   Asesor de Negocios — Reviste FLUENT FORMS con el estilo del tema
   ---------------------------------------------------------------
   Se carga solo cuando hay un shortcode de formulario configurado
   (Personalizar → 📩 Formulario de contacto) o el plugin está activo.

   El contenedor `.efc-ff` ya lleva además `.efc-form` (skin Lima) o
   `.exe-form` (skin Oro), así que la tarjeta (fondo, borde, sombra)
   la pone la hoja de la skin; aquí solo se traducen las clases de
   Fluent Forms a los mismos tamaños, colores y espaciados que usa
   `efc_render_form()` / `exe_render_form()`.
   ═══════════════════════════════════════════════════════════════ */

/* ─── 1. Reset del envoltorio del plugin ───────────────────────── */
.efc-ff .fluentform,
.efc-ff .frm-fluent-form { margin: 0; padding: 0; }

.efc-ff .ff-el-group { margin-bottom: 18px; }
.efc-ff .ff-el-group:last-of-type { margin-bottom: 0; }

/* ─── 2. Etiquetas ─────────────────────────────────────────────── */
.efc-ff .ff-el-input--label label {
  display: block;
  font-family: var(--efc-font-body, inherit);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--efc-ink, #222);
  margin-bottom: 8px;
  line-height: 1.35;
}
.efc-ff .ff-el-input--label.ff-el-is-required.asterisk-right label:after {
  content: " *";
  color: var(--efc-ink, #222);
  font-weight: 700;
}

/* ─── 3. Campos ────────────────────────────────────────────────── */
.efc-ff .ff-el-form-control,
.efc-ff .ff-el-input--content input[type="text"],
.efc-ff .ff-el-input--content input[type="email"],
.efc-ff .ff-el-input--content input[type="tel"],
.efc-ff .ff-el-input--content input[type="number"],
.efc-ff .ff-el-input--content select,
.efc-ff .ff-el-input--content textarea {
  width: 100%;
  padding: 14px 16px;
  font-family: var(--efc-font-body, inherit);
  font-size: 15px;
  line-height: 1.5;
  color: var(--efc-ink, #222);
  background: #fff;
  border: 1px solid var(--efc-border, #E8E8E8);
  border-radius: var(--efc-radius, 6px);
  box-shadow: none;
  transition: border-color .2s, box-shadow .2s;
  height: auto;
}
.efc-ff .ff-el-input--content textarea { resize: vertical; min-height: 118px; }

.efc-ff .ff-el-form-control::placeholder,
.efc-ff .ff-el-input--content textarea::placeholder { color: #9a9a9a; opacity: 1; }

.efc-ff .ff-el-form-control:focus,
.efc-ff .ff-el-input--content textarea:focus,
.efc-ff .ff-el-input--content select:focus {
  outline: none;
  border-color: var(--efc-ink, #222);
  box-shadow: 0 0 0 3px rgba(200, 243, 60, .35);
}

/* ─── 4. Columnas (fila de dos campos) ─────────────────────────── */
.efc-ff .ff-t-container.ff-column-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0 18px;
  margin: 0;
}
.efc-ff .ff-t-container .ff-t-cell {
  flex: 1 1 0;
  min-width: 0;
  padding: 0;
}

/* ─── 5. Casilla de privacidad ─────────────────────────────────── */
.efc-ff .ff-el-form-check { margin: 0; }
.efc-ff .ff-el-form-check-label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--efc-body, #666);
  cursor: pointer;
  margin: 0;
  font-weight: 400;
}
.efc-ff .ff-el-form-check-input {
  margin: 3px 0 0;
  flex: none;
  width: auto;
  accent-color: var(--efc-accent, #C8F33C);
}

/* ─── 6. Botón de envío ────────────────────────────────────────── */
.efc-ff .ff_submit_btn_wrapper { margin-top: 4px; text-align: left; }
.efc-ff .ff-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  font-family: var(--efc-font-body, inherit);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .3px;
  padding: 15px 32px;
  border-radius: var(--efc-radius, 6px);
  border: 2px solid var(--efc-accent, #C8F33C) !important;
  background: var(--efc-accent, #C8F33C) !important;
  color: var(--efc-dark, #1D191D) !important;
  cursor: pointer;
  transition: all .25s var(--efc-ease, ease);
  text-transform: none;
  line-height: 1.2;
  height: auto;
}
.efc-ff .ff-btn-submit:hover {
  background: var(--efc-accent-h, #B7E52E) !important;
  border-color: var(--efc-accent-h, #B7E52E) !important;
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(200, 243, 60, .32);
}
.efc-ff .ff-btn-submit.ff-working,
.efc-ff .ff-btn-submit:disabled { opacity: .65; transform: none; }

/* ─── 7. Mensajes de error y de éxito ──────────────────────────── */
.efc-ff .error.text-danger,
.efc-ff .ff-el-is-error .error {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #d13333;
}
.efc-ff .ff-el-is-error .ff-el-form-control { border-color: #d13333; }

.efc-ff + .ff-message-success,
.efc-ff .ff-message-success {
  margin: 14px 0 0;
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 600;
  color: #1f8f3a;
  background: rgba(31, 143, 58, .08);
  border: 1px solid rgba(31, 143, 58, .25);
  border-radius: var(--efc-radius, 6px);
}
.efc-ff .ff-errors-in-stack .error {
  margin-top: 10px;
  font-size: 13.5px;
  color: #d13333;
}

/* ─── 8. Variante de la skin ORO ───────────────────────────────── */
.efc-ff--oro .ff-el-input--label label {
  color: var(--exe-primary, #0A1628);
  letter-spacing: 1px;
  font-size: 12px;
}
.efc-ff--oro .ff-el-input--label.ff-el-is-required.asterisk-right label:after { color: var(--exe-accent, #C9A961); }
.efc-ff--oro .ff-el-form-control,
.efc-ff--oro .ff-el-input--content textarea {
  color: var(--exe-ink, #2D3748);
  border-color: rgba(30, 58, 95, .18);
  border-radius: 2px;
}
.efc-ff--oro .ff-el-form-control:focus,
.efc-ff--oro .ff-el-input--content textarea:focus {
  border-color: var(--exe-accent, #C9A961);
  box-shadow: 0 0 0 3px rgba(201, 169, 97, .22);
}
.efc-ff--oro .ff-el-form-check-input { accent-color: var(--exe-accent, #C9A961); }
.efc-ff--oro .ff-el-form-check-label { color: var(--exe-muted, #718096); }
.efc-ff--oro .ff-btn-submit {
  border-radius: 2px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  border-color: var(--exe-accent, #C9A961) !important;
  background: var(--exe-accent, #C9A961) !important;
  color: var(--exe-primary, #0A1628) !important;
}
.efc-ff--oro .ff-btn-submit:hover {
  background: transparent !important;
  color: var(--exe-accent, #C9A961) !important;
  box-shadow: none;
}
.efc-ff--oro .ff-el-is-error .ff-el-form-control { border-color: #c0392b; }

/* ─── 9. Móvil ─────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .efc-ff .ff-t-container.ff-column-container { display: block; }
  .efc-ff .ff-t-container .ff-t-cell { flex-basis: 100% !important; width: 100%; }
  .efc-ff .ff-btn-submit { padding: 14px 26px; font-size: 13.5px; }
}
