#wpfr-root { max-width: 720px; }
.wpfr-card { border:1px solid #e5e5e5; border-radius:12px; padding:16px; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial; }
.wpfr-row { margin: 10px 0; }
.wpfr-row label { display:block; margin-bottom:6px; }
.wpfr-actions { display:flex; gap:8px; margin-top:14px; }
.wpfr-alert { background:#fee; padding:10px; border-radius:8px; margin:10px 0; }
.wpfr-muted { color:#666; }
.wpfr-small { font-size:12px; color:#666; }
input, select, button, textarea { font: inherit; }
input, select { width: 100%; max-width: 520px; padding: 8px; }
button { padding: 10px 12px; cursor: pointer; }


/* Consent block: robust vs theme CSS */
.wpfr-consent { margin: 10px 0; }
.wpfr-consent-label {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: flex-start;
  gap: 10px;
  text-align: left !important;
}
.wpfr-consent-label input[type="checkbox"] {
  width: auto !important;
  max-width: none !important;
  margin-top: 2px;
}
.wpfr-consent-text { display: inline; }
.wpfr-help { font-size: 12px; color: #666; margin-top: 4px; }


.wpfr-field-error{color:#b00020;font-weight:700;margin-top:6px;font-size:14px;}
.wpfr-input-invalid{border:2px solid #b00020 !important; outline:none;}

/* Buttons (Primary / Secondary) */
#wpfr-root .wpfr-btn,
.wpfr-btn {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: transform 0.04s ease, opacity 0.12s ease, filter 0.12s ease;
  user-select: none;
  background-image: none !important;
}

#wpfr-root .wpfr-btn:disabled,
.wpfr-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

#wpfr-root .wpfr-btn.primary,
#wpfr_submit.wpfr-btn.primary,
.wpfr-btn.primary {
  background-color: var(--wpfr-btn-primary-bg, #111827) !important;
  color: var(--wpfr-btn-primary-text, #ffffff) !important;
  -webkit-text-fill-color: var(--wpfr-btn-primary-text, #ffffff) !important;
  border-color: transparent !important;
}

#wpfr-root .wpfr-btn.secondary,
.wpfr-btn.secondary {
  background-color: var(--wpfr-btn-secondary-bg, #e5e7eb) !important;
  color: var(--wpfr-btn-secondary-text, #111827) !important;
  -webkit-text-fill-color: var(--wpfr-btn-secondary-text, #111827) !important;
  border-color: transparent !important;
}

#wpfr-root .wpfr-btn.primary:not(:disabled):hover,
#wpfr_submit.wpfr-btn.primary:not(:disabled):hover,
.wpfr-btn.primary:not(:disabled):hover {
  filter: brightness(1.05);
}

#wpfr-root .wpfr-btn.secondary:not(:disabled):hover,
.wpfr-btn.secondary:not(:disabled):hover {
  filter: brightness(0.97);
}

#wpfr-root .wpfr-btn.primary:not(:disabled):active,
#wpfr-root .wpfr-btn.secondary:not(:disabled):active,
.wpfr-btn.primary:not(:disabled):active,
.wpfr-btn.secondary:not(:disabled):active {
  transform: translateY(1px);
}

#wpfr-root .wpfr-btn:focus-visible,
.wpfr-btn:focus-visible {
  outline: 3px solid rgba(59, 130, 246, 0.55);
  outline-offset: 2px;
}

/* Button text override for nested elements */
#wpfr-root .wpfr-btn.primary *,
#wpfr-root .wpfr-btn.primary:visited,
#wpfr-root .wpfr-btn.primary:hover,
#wpfr-root .wpfr-btn.primary:active,
#wpfr-root .wpfr-btn.primary:focus,
#wpfr-root .wpfr-btn.primary:focus-visible {
  color: var(--wpfr-btn-primary-text, #ffffff) !important;
  -webkit-text-fill-color: var(--wpfr-btn-primary-text, #ffffff) !important;
}

#wpfr-root .wpfr-btn.secondary *,
#wpfr-root .wpfr-btn.secondary:visited,
#wpfr-root .wpfr-btn.secondary:hover,
#wpfr-root .wpfr-btn.secondary:active,
#wpfr-root .wpfr-btn.secondary:focus,
#wpfr-root .wpfr-btn.secondary:focus-visible {
  color: var(--wpfr-btn-secondary-text, #111827) !important;
  -webkit-text-fill-color: var(--wpfr-btn-secondary-text, #111827) !important;
}


/* Auto primary for non-secondary buttons (Elementor may strip/override classes) */
#wpfr-root .wpfr-actions .wpfr-btn:not(.secondary) {
  background-color: var(--wpfr-btn-primary-bg, #111827) !important;
  color: var(--wpfr-btn-primary-text, #ffffff) !important;
  -webkit-text-fill-color: var(--wpfr-btn-primary-text, #ffffff) !important;
}

#wpfr-root .wpfr-actions .wpfr-btn:not(.secondary) * {
  color: var(--wpfr-btn-primary-text, #ffffff) !important;
  -webkit-text-fill-color: var(--wpfr-btn-primary-text, #ffffff) !important;
}


/* Enlarge consent checkbox on touch devices (iOS Safari etc.) */
@media (pointer: coarse) {
  #wpfr-root .wpfr-consent-label input[type="checkbox"] {
    width: 22px !important;
    height: 22px !important;
    transform: scale(1.25);
    transform-origin: top left;
    margin-top: 2px;
  }
  #wpfr-root .wpfr-consent-label {
    padding: 4px 0;
  }
}
