/* ============================================================
   Brazilian Forms — Base Stylesheet
   CSS custom properties are set inline per widget instance.
   ============================================================ */

/* ── Reset ── */
.bf-wrapper *,
.bf-wrapper *::before,
.bf-wrapper *::after {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ── Wrapper ── */
.bf-wrapper {
  width: 100% !important;
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif) !important;
}

/* ── Grid ── */
.bf-wrapper .bf-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: var(--bf-grid-gap, 14px) !important;
}

/* ── Field containers ── */
.bf-wrapper .bf-field {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--bf-label-spacing, 6px) !important;
}

.bf-wrapper .bf-field.w-100 {
  flex: 1 1 100% !important;
}

.bf-wrapper .bf-field.w-50 {
  flex: 1 1 calc(50% - (var(--bf-grid-gap, 14px) / 2)) !important;
  min-width: 200px !important;
}

.bf-wrapper .bf-field.w-33 {
  flex: 1 1 calc(33.333% - (var(--bf-grid-gap, 14px) * 0.67)) !important;
  min-width: 160px !important;
}

/* ── Labels ── */
.bf-wrapper label,
.bf-wrapper .bf-check-label {
  display: block !important;
  font-size: var(--bf-label-size, 0.78rem);
  font-weight: 700;
  color: var(--bf-label-color, #3a5a3a) !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.bf-wrapper .bf-req {
  color: var(--bf-req-color, var(--bf-focus-color, #01A050)) !important;
  margin-left: 2px !important;
}

.bf-wrapper .bf-opt {
  color: var(--bf-opt-color, #9aab9a) !important;
  font-weight: 400;
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0;
}

/* ── Inputs, selects, textareas ── */
.bf-wrapper input[type="text"],
.bf-wrapper input[type="email"],
.bf-wrapper input[type="tel"],
.bf-wrapper input[type="number"],
.bf-wrapper input[type="password"],
.bf-wrapper input[type="date"],
.bf-wrapper select,
.bf-wrapper textarea {
  display: block !important;
  width: 100% !important;
  padding: var(--bf-input-py, 12px) var(--bf-input-px, 14px) !important;
  border: var(--bf-input-border-width, 1.5px) solid var(--bf-input-border-color, #d0ddd0) !important;
  border-radius: var(--bf-input-radius, 10px) !important;
  font-size: var(--bf-input-font-size, 0.95rem);
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif);
  color: var(--bf-input-color, #1a2e1a) !important;
  background: var(--bf-input-bg, #ffffff) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  line-height: 1.5;
  height: auto !important;
  min-height: unset !important;
  max-height: unset !important;
}

.bf-wrapper input::placeholder,
.bf-wrapper textarea::placeholder {
  color: var(--bf-input-placeholder-color, #b0bdb0) !important;
  opacity: 1 !important;
}

.bf-wrapper input:focus,
.bf-wrapper select:focus,
.bf-wrapper textarea:focus {
  border-color: var(--bf-focus-color, #01A050) !important;
  box-shadow: 0 0 0 3px var(--bf-focus-shadow, rgba(1, 160, 80, 0.12)) !important;
}

/* ── Error state ── */
.bf-wrapper input.bf-error,
.bf-wrapper select.bf-error,
.bf-wrapper textarea.bf-error {
  border-color: var(--bf-error-color, #e53e3e) !important;
  box-shadow: 0 0 0 3px var(--bf-error-shadow, rgba(229, 62, 62, 0.10)) !important;
}

.bf-wrapper .bf-errmsg {
  display: none !important;
  font-size: 0.74rem;
  color: var(--bf-error-color, #e53e3e) !important;
}

.bf-wrapper .bf-field.has-error .bf-errmsg {
  display: block !important;
}

/* ── Select — custom arrow ── */
.bf-wrapper select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233a5a3a' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 36px !important;
  cursor: pointer !important;
}

/* ── State UF select with flag image ── */
.bf-wrapper .bf-sel-wrap {
  position: relative !important;
  display: block !important;
}

.bf-wrapper .bf-flag-img {
  position: absolute !important;
  left: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  pointer-events: none !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 1 !important;
}

.bf-wrapper select[data-bf-type="state-uf"] {
  padding-left: 40px !important;
}

/* reCAPTCHA injeta uma textarea oculta — garantir que nunca apareça */
.bf-wrapper .g-recaptcha textarea,
.bf-wrapper textarea[name="g-recaptcha-response"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* ── Textarea ── */
.bf-wrapper textarea {
  resize: vertical !important;
  min-height: 120px !important;
}

/* ── Checkboxes & Radios ── */
.bf-wrapper .bf-checkboxes-wrap {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px 24px !important;
  padding: 4px 0 !important;
}

.bf-wrapper .bf-check-item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bf-wrapper .bf-check-item input[type="checkbox"],
.bf-wrapper .bf-check-item input[type="radio"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: var(--bf-check-size, 19px) !important;
  height: var(--bf-check-size, 19px) !important;
  min-width: var(--bf-check-size, 19px) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1.5px solid var(--bf-check-border-color, var(--bf-input-border-color, #d0ddd0)) !important;
  border-radius: 5px !important;
  background: var(--bf-input-bg, #ffffff) !important;
  cursor: pointer !important;
  box-shadow: none !important;
  flex-shrink: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s !important;
  vertical-align: middle !important;
}

.bf-wrapper .bf-check-item input[type="checkbox"]:focus,
.bf-wrapper .bf-check-item input[type="radio"]:focus {
  outline: none !important;
  border-color: var(--bf-check-color, var(--bf-focus-color, #01A050)) !important;
  box-shadow: 0 0 0 3px var(--bf-focus-shadow, rgba(1, 160, 80, 0.12)) !important;
}

/* Checked state — background */
.bf-wrapper .bf-check-item input[type="checkbox"]:checked {
  background: var(--bf-check-color, var(--bf-focus-color, #01A050)) !important;
  border-color: var(--bf-check-color, var(--bf-focus-color, #01A050)) !important;
}

/* Checkmark via ::before */
.bf-wrapper .bf-check-item input[type="checkbox"]:checked::before {
  content: '' !important;
  position: absolute !important;
  left: 5px !important;
  top: 2px !important;
  width: 5px !important;
  height: 9px !important;
  border: 2px solid #ffffff !important;
  border-top: none !important;
  border-left: none !important;
  transform: rotate(42deg) !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Radio */
.bf-wrapper .bf-check-item input[type="radio"] {
  border-radius: 50% !important;
}

.bf-wrapper .bf-check-item input[type="radio"]:checked {
  border-color: var(--bf-check-color, var(--bf-focus-color, #01A050)) !important;
  background: var(--bf-input-bg, #ffffff) !important;
}

/* Filled dot via ::before */
.bf-wrapper .bf-check-item input[type="radio"]:checked::before {
  content: '' !important;
  position: absolute !important;
  width: 9px !important;
  height: 9px !important;
  border-radius: 50% !important;
  background: var(--bf-check-color, var(--bf-focus-color, #01A050)) !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

.bf-wrapper .bf-check-item span {
  font-size: 0.9rem;
  color: var(--bf-check-text-color, var(--bf-input-color, #1a2e1a)) !important;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.4;
  cursor: pointer !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Submit button ── */
.bf-wrapper .bf-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: var(--bf-btn-py, 14px) var(--bf-btn-px, 24px) !important;
  background: var(--bf-btn-bg, #01A050) !important;
  color: var(--bf-btn-color, #ffffff) !important;
  border: none !important;
  border-radius: var(--bf-btn-radius, 10px) !important;
  font-size: var(--bf-btn-font-size, 1rem);
  font-weight: 700;
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif);
  cursor: pointer !important;
  letter-spacing: 0.02em;
  margin-top: 4px !important;
  transition: background 0.2s, transform 0.1s !important;
  text-decoration: none !important;
  box-shadow: none !important;
  outline: none !important;
  line-height: 1.5;
  height: auto !important;
}

.bf-wrapper .bf-btn:hover:not(:disabled) {
  background: var(--bf-btn-hover, #007234) !important;
}

.bf-wrapper .bf-btn:active:not(:disabled) {
  transform: scale(0.99) !important;
}

.bf-wrapper .bf-btn:disabled {
  opacity: 0.85 !important;
  cursor: not-allowed !important;
}

.bf-wrapper .bf-btn svg {
  flex-shrink: 0 !important;
}

/* ── Spinner ── */
.bf-wrapper .bf-spinner {
  width: 18px !important;
  height: 18px !important;
  border: 2.5px solid rgba(255, 255, 255, 0.35) !important;
  border-top-color: #fff !important;
  border-radius: 50% !important;
  animation: bfSpin 0.7s linear infinite !important;
  display: none !important;
  flex-shrink: 0 !important;
}

@keyframes bfSpin {
  to { transform: rotate(360deg); }
}

.bf-wrapper .bf-btn.loading .bf-spinner  { display: block !important; }
.bf-wrapper .bf-btn.loading .bf-btn-icon { display: none !important; }

/* ── Success message ── */
.bf-wrapper .bf-success {
  display: none !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 3rem 2rem !important;
  animation: bfFadeIn 0.4s ease !important;
}

.bf-wrapper .bf-success.bf-visible {
  display: flex !important;
}

@keyframes bfFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.bf-wrapper .bf-success-icon {
  width: 72px !important;
  height: 72px !important;
  background: var(--bf-success-icon-bg, #e8f7ef) !important;
  color: var(--bf-success-icon-color, #01A050) !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 1.5rem !important;
}

.bf-wrapper .bf-success-icon svg {
  stroke: currentColor !important;
}

.bf-wrapper .bf-success h3 {
  font-size: 1.5rem;
  color: var(--bf-success-title-color, #1a2e1a) !important;
  margin-bottom: 0.5rem !important;
  font-weight: 700;
  line-height: 1.3;
}

.bf-wrapper .bf-success p {
  color: var(--bf-success-subtitle-color, #5a7a5a) !important;
  font-size: 0.95rem;
  max-width: 380px !important;
  line-height: 1.6;
}

/* ── Button icon image ── */
.bf-wrapper .bf-btn-icon--img {
  width: 20px !important;
  height: 20px !important;
  object-fit: contain !important;
  flex-shrink: 0 !important;
}

/* ── Button icon (SVG inline + default) ── */
.bf-wrapper .bf-btn-icon {
  width: var(--bf-btn-icon-size, 20px) !important;
  height: var(--bf-btn-icon-size, 20px) !important;
  flex-shrink: 0 !important;
  /* color cascades para fill/stroke="currentColor" nos filhos do SVG */
  color: var(--bf-btn-icon-color, currentColor) !important;
}
.bf-wrapper .bf-btn:hover:not(:disabled) .bf-btn-icon {
  color: var(--bf-btn-icon-hover-color, var(--bf-btn-icon-color, currentColor)) !important;
}

/* ── Custom state select dropdown ── */
.bf-wrapper .bf-custom-select {
  position: relative !important;
  display: block !important;
  width: 100% !important;
}

.bf-wrapper .bf-custom-select__trigger {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: var(--bf-dd-py, var(--bf-input-py, 12px)) var(--bf-dd-px, var(--bf-input-px, 14px)) !important;
  border: var(--bf-dd-border-width, var(--bf-input-border-width, 1.5px)) solid var(--bf-dd-border-color, var(--bf-input-border-color, #d0ddd0)) !important;
  border-radius: var(--bf-dd-radius, var(--bf-input-radius, 10px)) !important;
  font-size: var(--bf-input-font-size, 0.95rem);
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif);
  color: var(--bf-dd-color, var(--bf-input-color, #1a2e1a)) !important;
  background: var(--bf-dd-bg, var(--bf-input-bg, #ffffff)) !important;
  cursor: pointer !important;
  user-select: none !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  box-sizing: border-box !important;
}

.bf-wrapper .bf-custom-select__trigger:focus {
  outline: none !important;
  border-color: var(--bf-dd-active-color, var(--bf-focus-color, #01A050)) !important;
  box-shadow: 0 0 0 3px var(--bf-focus-shadow, rgba(1, 160, 80, 0.12)) !important;
}

.bf-wrapper .bf-custom-select__trigger.bf-error {
  border-color: var(--bf-error-color, #e53e3e) !important;
  box-shadow: 0 0 0 3px var(--bf-error-shadow, rgba(229, 62, 62, 0.10)) !important;
}

.bf-wrapper .bf-custom-select.bf-cs-open .bf-custom-select__trigger {
  border-color: var(--bf-dd-active-color, var(--bf-focus-color, #01A050)) !important;
  box-shadow: 0 0 0 3px var(--bf-focus-shadow, rgba(1, 160, 80, 0.12)) !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.bf-wrapper .bf-cs-flag,
.bf-wrapper .bf-cs-opt-flag {
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bf-wrapper .bf-cs-text {
  flex: 1 !important;
  text-align: left !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.bf-wrapper .bf-cs-placeholder {
  color: var(--bf-dd-placeholder-color, var(--bf-input-placeholder-color, #b0bdb0)) !important;
}

.bf-wrapper .bf-cs-arrow {
  flex-shrink: 0 !important;
  transition: transform 0.2s !important;
  color: var(--bf-label-color, #3a5a3a) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bf-wrapper .bf-custom-select.bf-cs-open .bf-cs-arrow {
  transform: rotate(180deg) !important;
}

.bf-wrapper .bf-custom-select__dropdown {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  background: var(--bf-dd-panel-bg, var(--bf-dd-bg, var(--bf-input-bg, #ffffff))) !important;
  border: var(--bf-dd-border-width, var(--bf-input-border-width, 1.5px)) solid var(--bf-dd-active-color, var(--bf-focus-color, #01A050)) !important;
  border-top: none !important;
  border-bottom-left-radius: var(--bf-dd-radius, var(--bf-input-radius, 10px)) !important;
  border-bottom-right-radius: var(--bf-dd-radius, var(--bf-input-radius, 10px)) !important;
  max-height: 260px !important;
  overflow-y: auto !important;
  z-index: 99999 !important;
  display: none !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10) !important;
}

.bf-wrapper .bf-custom-select.bf-cs-open .bf-custom-select__dropdown {
  display: block !important;
}

/* Dropdown portado ao body (dentro de popups Elementor) */
body > .bf-custom-select__dropdown {
  background: var(--bf-dd-panel-bg, var(--bf-dd-bg, var(--bf-input-bg, #ffffff)));
  border: var(--bf-dd-border-width, var(--bf-input-border-width, 1.5px)) solid var(--bf-dd-active-color, var(--bf-focus-color, #01A050));
  border-top: none;
  border-bottom-left-radius: var(--bf-dd-radius, var(--bf-input-radius, 10px));
  border-bottom-right-radius: var(--bf-dd-radius, var(--bf-input-radius, 10px));
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
}

body > .bf-custom-select__dropdown .bf-custom-select__option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px var(--bf-dd-px, var(--bf-input-px, 14px));
  cursor: pointer;
  font-size: 14px;
  color: var(--bf-dd-color, var(--bf-input-color, #222));
  transition: background 0.15s;
}

body > .bf-custom-select__dropdown .bf-custom-select__option:hover {
  background: var(--bf-dd-option-hover-bg, #f0faf5) !important;
  color: var(--bf-dd-option-hover-color) !important;
}

body > .bf-custom-select__dropdown .bf-custom-select__option.bf-cs-selected {
  background: var(--bf-dd-option-selected-bg, #e6f7ef) !important;
  font-weight: 600;
}

body > .bf-custom-select__dropdown::-webkit-scrollbar {
  width: 5px;
}

body > .bf-custom-select__dropdown::-webkit-scrollbar-track {
  background: transparent;
}

body > .bf-custom-select__dropdown::-webkit-scrollbar-thumb {
  background: #d0ddd0;
  border-radius: 3px;
}

.bf-wrapper .bf-custom-select__dropdown::-webkit-scrollbar {
  width: 5px !important;
}

.bf-wrapper .bf-custom-select__dropdown::-webkit-scrollbar-track {
  background: transparent !important;
}

.bf-wrapper .bf-custom-select__dropdown::-webkit-scrollbar-thumb {
  background: var(--bf-input-border-color, #d0ddd0) !important;
  border-radius: 3px !important;
}

.bf-wrapper .bf-custom-select__option {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 9px var(--bf-dd-px, var(--bf-input-px, 14px)) !important;
  cursor: pointer !important;
  transition: background 0.12s !important;
  font-size: var(--bf-input-font-size, 0.95rem);
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif);
  color: var(--bf-dd-color, var(--bf-input-color, #1a2e1a)) !important;
  margin: 0 !important;
}

.bf-wrapper .bf-custom-select__option:hover {
  background: var(--bf-dd-option-hover-bg, rgba(1, 160, 80, 0.07)) !important;
}

.bf-wrapper .bf-custom-select__option.bf-cs-selected {
  background: var(--bf-dd-option-selected-bg, rgba(1, 160, 80, 0.13)) !important;
  font-weight: 600 !important;
}

/* ── File upload field ── */
.bf-wrapper .bf-upload-wrap {
  position: relative !important;
  width: 100% !important;
}

.bf-wrapper .bf-upload-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  z-index: -1 !important;
  left: 0 !important;
  top: 0 !important;
  pointer-events: none !important;
}

.bf-wrapper .bf-upload-ui {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 28px 20px !important;
  border: 2px dashed var(--bf-input-border-color, #d0ddd0) !important;
  border-radius: var(--bf-input-radius, 10px) !important;
  background: var(--bf-input-bg, #ffffff) !important;
  color: var(--bf-input-placeholder-color, #b0bdb0) !important;
  cursor: pointer !important;
  text-align: center !important;
  transition: border-color 0.2s, background 0.2s, color 0.2s !important;
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif) !important;
  user-select: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.bf-wrapper .bf-upload-ui:hover,
.bf-wrapper .bf-upload-wrap.bf-upload-drag .bf-upload-ui {
  border-color: var(--bf-focus-color, #01A050) !important;
  background: rgba(1, 160, 80, 0.04) !important;
  color: var(--bf-focus-color, #01A050) !important;
}

.bf-wrapper .bf-upload-ui svg {
  flex-shrink: 0 !important;
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bf-wrapper .bf-upload-text {
  font-size: var(--bf-input-font-size, 0.95rem);
  font-weight: 600;
  color: inherit !important;
  line-height: 1.4;
  margin: 0 !important;
  padding: 0 !important;
}

.bf-wrapper .bf-upload-hint {
  font-size: 0.75rem;
  color: inherit !important;
  opacity: 0.75 !important;
  line-height: 1.4;
  margin: 0 !important;
  padding: 0 !important;
}

.bf-wrapper .bf-upload-info {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: var(--bf-input-py, 12px) var(--bf-input-px, 14px) !important;
  border: var(--bf-input-border-width, 1.5px) solid var(--bf-focus-color, #01A050) !important;
  border-radius: var(--bf-input-radius, 10px) !important;
  background: rgba(1, 160, 80, 0.04) !important;
  font-size: var(--bf-input-font-size, 0.95rem) !important;
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.bf-wrapper .bf-upload-filename {
  flex: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  color: var(--bf-input-color, #1a2e1a) !important;
  font-weight: 500 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: var(--bf-input-font-size, 0.95rem) !important;
}

.bf-wrapper .bf-upload-remove {
  flex-shrink: 0 !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  border: none !important;
  background: var(--bf-error-shadow, rgba(229, 62, 62, 0.10)) !important;
  color: var(--bf-error-color, #e53e3e) !important;
  font-size: 18px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  transition: background 0.15s !important;
  font-family: inherit !important;
}

.bf-wrapper .bf-upload-remove:hover {
  background: var(--bf-error-color, #e53e3e) !important;
  color: #ffffff !important;
}

/* Error state on upload UI */
.bf-wrapper .bf-field.has-error .bf-upload-ui {
  border-color: var(--bf-error-color, #e53e3e) !important;
  color: var(--bf-error-color, #e53e3e) !important;
}

/* ── Captcha field ── */
.bf-wrapper .bf-captcha-field {
  justify-content: flex-start !important;
}

/* Fade-out do Turnstile após verificação */
.bf-wrapper[data-bf-turnstile-fadeout="yes"] .bf-captcha-field {
  max-height: 120px !important;
  overflow: hidden !important;
  transition: opacity 0.4s ease, max-height 0.5s ease, margin-top 0.4s ease, margin-bottom 0.4s ease !important;
}

.bf-wrapper[data-bf-turnstile-fadeout="yes"] .bf-captcha-field.bf-ts-verified {
  opacity: 0 !important;
  max-height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  pointer-events: none !important;
}

/* ── Steps indicator ── */
.bf-wrapper .bf-steps-indicator {
  display: flex !important;
  align-items: flex-start !important;
  width: 100% !important;
  margin-bottom: 24px !important;
  padding: 0 !important;
}

.bf-wrapper .bf-step-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.bf-wrapper .bf-step-num {
  width: var(--bf-step-size, 36px) !important;
  height: var(--bf-step-size, 36px) !important;
  min-width: var(--bf-step-size, 36px) !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  border: 2px solid var(--bf-step-inactive-border, var(--bf-input-border-color, #d0ddd0)) !important;
  background: var(--bf-step-inactive-bg, #ffffff) !important;
  color: var(--bf-step-inactive-color, #9aab9a) !important;
  transition: all 0.25s !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.bf-wrapper .bf-step-item.bf-step-active .bf-step-num {
  background: var(--bf-step-active-bg, var(--bf-focus-color, #01A050)) !important;
  border-color: var(--bf-step-active-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-step-active-color, #ffffff) !important;
}

.bf-wrapper .bf-step-item.bf-step-done .bf-step-num {
  background: var(--bf-step-done-bg, var(--bf-focus-color, #01A050)) !important;
  border-color: var(--bf-step-done-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-step-done-color, #ffffff) !important;
}

.bf-wrapper .bf-step-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--bf-step-label-color, var(--bf-label-color, #3a5a3a)) !important;
  text-align: center !important;
  white-space: nowrap !important;
  text-transform: none;
  letter-spacing: 0;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3;
}

.bf-wrapper .bf-step-line {
  flex: 1 !important;
  height: 2px !important;
  background: var(--bf-step-line-color, var(--bf-input-border-color, #d0ddd0)) !important;
  margin: 0 8px !important;
  margin-top: calc(var(--bf-step-size, 36px) / 2 - 1px) !important;
  align-self: flex-start !important;
  transition: background 0.25s !important;
  padding: 0 !important;
}

.bf-wrapper .bf-step-line.bf-step-line-done {
  background: var(--bf-step-line-done-color, var(--bf-focus-color, #01A050)) !important;
}

/* ── Step panels ── */
.bf-wrapper .bf-step-panel {
  display: none !important;
  flex-wrap: wrap !important;
  gap: var(--bf-grid-gap, 14px) !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.bf-wrapper .bf-step-panel.bf-step-panel-active {
  display: flex !important;
}

/* ── Step navigation ── */
.bf-wrapper .bf-step-nav {
  display: flex !important;
  gap: 12px !important;
  align-items: stretch !important;
  flex-direction: row !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.bf-wrapper .bf-step-nav .bf-btn {
  margin-top: 0 !important;
}
.bf-wrapper .bf-step-nav .bf-btn:not(:only-child) {
  flex-grow: 1 !important;
}

/* ── Botão Próximo ── */
.bf-wrapper .bf-btn.bf-btn-next {
  background: var(--bf-snext-bg, var(--bf-btn-bg, #01A050)) !important;
  color: var(--bf-snext-color, var(--bf-btn-color, #ffffff)) !important;
  border-radius: var(--bf-snext-radius, var(--bf-btn-radius, 10px)) !important;
  padding-top: var(--bf-snext-py, var(--bf-btn-py, 14px)) !important;
  padding-bottom: var(--bf-snext-py, var(--bf-btn-py, 14px)) !important;
  padding-left: var(--bf-snext-px, var(--bf-btn-px, 24px)) !important;
  padding-right: var(--bf-snext-px, var(--bf-btn-px, 24px)) !important;
}
.bf-wrapper .bf-btn.bf-btn-next:hover:not(:disabled) {
  background: var(--bf-snext-hover-bg, var(--bf-btn-hover, #007234)) !important;
  color: var(--bf-snext-hover-color, var(--bf-snext-color, var(--bf-btn-color, #ffffff))) !important;
}

/* ── Botão Anterior ── */
.bf-wrapper .bf-btn-prev {
  flex-grow: 1 !important;
  padding: var(--bf-sprev-py, var(--bf-btn-py, 14px)) var(--bf-sprev-px, var(--bf-btn-px, 24px)) !important;
  background: var(--bf-sprev-bg, transparent) !important;
  color: var(--bf-sprev-color, var(--bf-btn-bg, var(--bf-focus-color, #01A050))) !important;
  border: 1.5px solid var(--bf-sprev-border, var(--bf-btn-bg, var(--bf-focus-color, #01A050))) !important;
  border-radius: var(--bf-sprev-radius, var(--bf-btn-radius, 10px)) !important;
  font-size: var(--bf-sprev-font-size, var(--bf-btn-font-size, 1rem)) !important;
  font-weight: 700 !important;
  font-family: var(--bf-font, 'Segoe UI', system-ui, sans-serif) !important;
  cursor: pointer !important;
  letter-spacing: 0.02em !important;
  transition: background 0.2s, color 0.2s, border-color 0.2s !important;
  outline: none !important;
  box-shadow: none !important;
  line-height: 1.5 !important;
  height: auto !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.bf-wrapper .bf-btn-prev:hover {
  background: var(--bf-sprev-hover-bg, rgba(1, 160, 80, 0.07)) !important;
  color: var(--bf-sprev-hover-color, var(--bf-sprev-color, var(--bf-btn-bg, var(--bf-focus-color, #01A050)))) !important;
  border-color: var(--bf-sprev-hover-border, var(--bf-sprev-border, var(--bf-btn-bg, var(--bf-focus-color, #01A050)))) !important;
}

/* ── Elementor editor: show all step panels always ── */
body.elementor-editor-active .bf-wrapper .bf-step-panel {
  display: flex !important;
}

/* ── Heading field ── */
.bf-wrapper .bf-heading-field {
  display: flex !important;
  align-items: flex-start !important;
  padding-bottom: 0 !important;
  margin-top: var(--bf-heading-mt, 0px) !important;
  margin-bottom: var(--bf-heading-mb, 0px) !important;
}
.bf-wrapper .bf-heading {
  margin: 0;
  padding: 0;
  width: 100%;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--bf-label-color, #1a2e1a);
  line-height: 1.2;
}

/* ── Subheading field ── */
.bf-wrapper .bf-subheading-field {
  display: flex !important;
  align-items: flex-start !important;
  padding-bottom: 0 !important;
  margin-top: var(--bf-subheading-mt, 0px) !important;
  margin-bottom: var(--bf-subheading-mb, 0px) !important;
}
.bf-wrapper .bf-subheading {
  margin: 0;
  padding: 0;
  width: 100%;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--bf-label-color, #3a5a3a);
  line-height: 1.3;
}

/* ── Date Picker ── */
.bf-datepicker {
  position: absolute;
  display: none;
  background: var(--bf-dp-bg, #fff) !important;
  border: 1px solid var(--bf-dp-border, var(--bf-border-color, #ccc)) !important;
  border-radius: var(--bf-dp-radius, 10px) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.14);
  padding: 14px;
  font-family: inherit;
  font-size: 0.875rem;
  user-select: none;
  min-width: 280px;
  z-index: 99999;
  box-sizing: border-box;
}
.bf-dp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  gap: 4px;
}
.bf-dp-nav {
  background: var(--bf-dp-nav-bg, transparent) !important;
  border: 1px solid var(--bf-dp-nav-border, var(--bf-focus-color, #01A050)) !important;
  cursor: pointer;
  font-size: 1.6rem;
  line-height: 1;
  padding: 0 8px;
  color: var(--bf-dp-nav-color, var(--bf-focus-color, #01A050)) !important;
  border-radius: 5px;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  flex-shrink: 0;
}
.bf-dp-nav:hover {
  background: var(--bf-dp-nav-hover-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-nav-hover-color, #fff) !important;
  border-color: var(--bf-dp-nav-hover-bg, var(--bf-focus-color, #01A050)) !important;
}
.bf-dp-title {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.bf-dp-title-month,
.bf-dp-title-year {
  background: none !important;
  border: none !important;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 3px 6px;
  border-radius: 5px;
  color: var(--bf-dp-title-color, #222) !important;
  transition: background 0.12s, color 0.12s;
  line-height: 1.3;
  text-transform: capitalize;
}
.bf-dp-title-month:hover,
.bf-dp-title-year:hover {
  background: var(--bf-dp-day-hover-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-day-hover-color, #fff) !important;
}
.bf-dp-title-month.bf-dp-title-active,
.bf-dp-title-year.bf-dp-title-active {
  background: var(--bf-dp-sel-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-sel-color, #fff) !important;
}
.bf-dp-months,
.bf-dp-years {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  padding: 4px 0;
}
.bf-dp-months button,
.bf-dp-years button {
  background: none !important;
  border: none !important;
  cursor: pointer;
  text-align: center;
  padding: 11px 4px;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--bf-dp-day-color, #222) !important;
  line-height: 1;
  transition: background 0.12s, color 0.12s;
}
.bf-dp-months button:hover,
.bf-dp-years button:hover {
  background: var(--bf-dp-day-hover-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-day-hover-color, #fff) !important;
}
.bf-dp-months button.bf-dp-selected,
.bf-dp-years button.bf-dp-selected {
  background: var(--bf-dp-sel-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-sel-color, #fff) !important;
  font-weight: 700;
}
.bf-dp-dow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  margin-bottom: 4px;
}
.bf-dp-dow span {
  font-weight: 600;
  font-size: 0.7rem;
  color: var(--bf-dp-dow-color, #888) !important;
  padding: 3px 0;
}
.bf-dp-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.bf-dp-days button {
  background: none !important;
  border: none !important;
  cursor: pointer;
  text-align: center;
  padding: 7px 0;
  border-radius: 5px;
  font-size: 0.85rem;
  color: var(--bf-dp-day-color, #222) !important;
  line-height: 1;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.bf-dp-days button:hover {
  background: var(--bf-dp-day-hover-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-day-hover-color, #fff) !important;
}
.bf-dp-days button.bf-dp-today-day {
  font-weight: 700;
  background: none !important;
  border: 1.5px solid var(--bf-dp-today-border, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-today-color, var(--bf-focus-color, #01A050)) !important;
}
.bf-dp-days button.bf-dp-today-day:hover {
  background: var(--bf-dp-day-hover-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-day-hover-color, #fff) !important;
}
.bf-dp-days button.bf-dp-selected {
  background: var(--bf-dp-sel-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-sel-color, #fff) !important;
  border: none !important;
  font-weight: 700;
}
.bf-dp-days button.bf-dp-selected:hover {
  background: var(--bf-dp-sel-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-sel-color, #fff) !important;
}
.bf-dp-footer {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}
.bf-dp-btn-today {
  background: none !important;
  border: 1.5px solid var(--bf-dp-btn-border, var(--bf-focus-color, #01A050)) !important;
  border-radius: 5px;
  color: var(--bf-dp-btn-color, var(--bf-focus-color, #01A050)) !important;
  font-size: 0.8rem;
  padding: 4px 16px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.bf-dp-btn-today:hover {
  background: var(--bf-dp-btn-hover-bg, var(--bf-focus-color, #01A050)) !important;
  color: var(--bf-dp-btn-hover-color, #fff) !important;
}

/* ── Responsive ── */
@media (max-width: 520px) {
  .bf-wrapper .bf-field.w-50,
  .bf-wrapper .bf-field.w-33 {
    flex: 1 1 100% !important;
  }

  .bf-wrapper .bf-step-label {
    display: none !important;
  }
}
