{"id":3045,"date":"2026-05-14T01:47:23","date_gmt":"2026-05-14T01:47:23","guid":{"rendered":"https:\/\/myaiagenthub.com\/?page_id=3045"},"modified":"2026-06-12T22:04:15","modified_gmt":"2026-06-12T22:04:15","slug":"womens-life-budget-planner-form","status":"publish","type":"page","link":"https:\/\/myaiagenthub.com\/es\/womens-life-budget-planner-form\/","title":{"rendered":"Women`s Life &#038; Budget Planner Form"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3045\" class=\"elementor elementor-3045\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3cd371d e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"3cd371d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9df33d2 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"9df33d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Women's Life & Budget Planner<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Sora:wght@300;400;600;700;800&family=DM+Mono:wght@400;500&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n:root {\r\n  --navy: #0f1e36;\r\n  --deep: #1a1a6e;\r\n  --cyan: #38bdf8;\r\n  --cyan-dark: #0ea5e9;\r\n  --green: #22c55e;\r\n  --border: #e2e8f0;\r\n}\r\n* { box-sizing: border-box; margin: 0; padding: 0; }\r\nbody { font-family: 'Sora', sans-serif; background: #f0f6ff; min-height: 100vh; padding: 40px 16px; }\r\n.wrapper { width: 100%; max-width: 580px; margin: 0 auto; }\r\n.header { text-align: center; margin-bottom: 28px; }\r\n.header .emoji { font-size: 48px; display: block; margin-bottom: 10px; }\r\n.header h1 { font-size: 26px; font-weight: 800; color: var(--navy); margin-bottom: 6px; }\r\n.header p { font-size: 14px; color: #64748b; }\r\n\r\n\/* Welcome box *\/\r\n.welcome-box {\r\n  background: #fff;\r\n  border: 2px solid var(--cyan);\r\n  border-radius: 14px;\r\n  padding: 16px 20px;\r\n  margin-bottom: 20px;\r\n  display: flex;\r\n  align-items: flex-start;\r\n  gap: 12px;\r\n}\r\n.welcome-box .w-icon { font-size: 26px; flex-shrink: 0; margin-top: 2px; }\r\n.welcome-box .w-name { font-size: 11px; font-weight: 700; color: var(--cyan-dark); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }\r\n.welcome-box .w-msg { font-size: 14px; color: #1e293b; line-height: 1.6; min-height: 20px; }\r\n\r\n.interview-panel { background: var(--navy); border-radius: 20px; padding: 24px; margin-bottom: 18px; text-align: center; }\r\n.q-label { font-size: 11px; font-weight: 600; letter-spacing: 2px; color: var(--cyan); text-transform: uppercase; margin-bottom: 10px; }\r\n.q-text { font-size: 16px; font-weight: 600; color: #fff; margin-bottom: 18px; line-height: 1.5; min-height: 50px; }\r\n.dots { display: flex; gap: 5px; justify-content: center; margin-bottom: 14px; }\r\n.dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.15); transition: all 0.3s; }\r\n.dot.done { background: var(--green); }\r\n.dot.active { background: var(--cyan); transform: scale(1.3); }\r\n\r\n.mic-btn { width: 76px; height: 76px; border-radius: 50%; background: linear-gradient(135deg, var(--cyan), var(--cyan-dark)); border: none; cursor: pointer; font-size: 32px; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; transition: transform 0.2s; }\r\n.mic-btn:hover { transform: scale(1.05); }\r\n.mic-btn.listening { background: linear-gradient(135deg, #ef4444, #dc2626); animation: micPulse 1s infinite; }\r\n.mic-btn.disabled { opacity: 0.4; cursor: not-allowed; transform: none !important; }\r\n@keyframes micPulse { 0% { box-shadow: 0 0 0 0 rgba(239,68,68,0.5); } 70% { box-shadow: 0 0 0 20px rgba(239,68,68,0); } 100% { box-shadow: 0 0 0 0 rgba(239,68,68,0); } }\r\n.mic-hint { font-size: 12px; color: #64748b; font-family: 'DM Mono', monospace; margin-bottom: 10px; }\r\n\r\n\/* Editable white transcript box *\/\r\n.transcript-box {\r\n  background: #ffffff;\r\n  border: 2px solid var(--cyan);\r\n  border-radius: 10px;\r\n  padding: 12px 14px;\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n  color: #0f1e36;\r\n  font-family: 'Sora', sans-serif;\r\n  min-height: 52px;\r\n  text-align: left;\r\n  margin-bottom: 12px;\r\n  width: 100%;\r\n  resize: vertical;\r\n  display: none;\r\n}\r\n.transcript-box:focus { outline: none; border-color: var(--cyan-dark); background: #ffffff !important; color: #0f1e36 !important; }\r\n\r\n.voice-nav { display: none; gap: 8px; justify-content: center; margin-top: 10px; }\r\n.voice-nav button { padding: 10px 22px; border-radius: 50px; border: none; font-size: 13px; font-family: 'Sora', sans-serif; font-weight: 600; cursor: pointer; }\r\n.btn-confirm { background: var(--green); color: white; }\r\n.btn-redo { background: rgba(255,255,255,0.1); color: #94a3b8; border: 1px solid rgba(255,255,255,0.2) !important; }\r\n\r\n.progress-wrap { margin-bottom: 18px; }\r\n.progress-label { font-size: 11px; color: #94a3b8; font-family: 'DM Mono', monospace; margin-bottom: 6px; }\r\n.progress-bar { background: #e2e8f0; border-radius: 99px; height: 6px; overflow: hidden; }\r\n.progress-fill { height: 100%; background: linear-gradient(90deg, var(--cyan), var(--deep)); border-radius: 99px; transition: width 0.4s; width: 0%; }\r\n\r\n.card { background: #fff; border-radius: 14px; padding: 20px; margin-bottom: 12px; border: 1.5px solid var(--border); box-shadow: 0 2px 10px rgba(15,30,54,0.05); transition: border-color 0.3s; }\r\n.card.active-field { border-color: var(--cyan); }\r\n.card.filled-field { border-color: var(--green); }\r\n.card label { display: block; font-size: 13px; font-weight: 600; color: var(--navy); margin-bottom: 8px; }\r\n.card label span { color: var(--cyan-dark); }\r\n.card input, .card textarea { width: 100%; padding: 11px 14px; border: 1.5px solid var(--border); border-radius: 10px; font-size: 14px; font-family: 'Sora', sans-serif; color: var(--navy); background: #f8fafc; outline: none; transition: border-color 0.2s; resize: vertical; }\r\n.card input:focus, .card textarea:focus { border-color: var(--cyan); background: white; }\r\n.card input.filled, .card textarea.filled { border-color: var(--green); background: #f0fdf4; }\r\n\r\n.submit-btn { width: 100%; background: linear-gradient(135deg, var(--deep), #2d2d9f); color: white; border: none; border-radius: 50px; padding: 18px; font-size: 16px; font-weight: 700; font-family: 'Sora', sans-serif; cursor: pointer; box-shadow: 0 4px 20px rgba(26,26,110,0.3); transition: transform 0.2s, box-shadow 0.2s; margin-top: 8px; }\r\n.submit-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(26,26,110,0.4); }\r\n.submit-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }\r\n#form-message { text-align: center; margin-top: 18px; font-size: 14px; font-weight: 500; line-height: 1.5; padding: 14px; border-radius: 10px; display: none; }\r\n#form-message.success { background: #f0fdf4; color: #166534; display: block; }\r\n#form-message.error { background: #fef2f2; color: #991b1b; display: block; }\r\n#form-message.loading { background: #eff6ff; color: #1d4ed8; display: block; }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"wrapper\">\r\n  <div class=\"header\">\r\n    <span class=\"emoji\">\ud83d\udcb5<\/span>\r\n    <h1>Women's Life &amp; Budget Planner<\/h1>\r\n  <\/div>\r\n\r\n  <!-- Welcome box -->\r\n  <div class=\"welcome-box\">\r\n    <div class=\"w-icon\">\ud83d\udc4b<\/div>\r\n    <div>\r\n      <div class=\"w-name\">Jessica \u2014 Your Budget Planner<\/div>\r\n      <div class=\"w-msg\" id=\"welcomeMsg\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Interview panel -->\r\n  <div class=\"interview-panel\">\r\n    <div class=\"q-label\">Question <span id=\"qNum\">1<\/span> of 7<\/div>\r\n    <div class=\"dots\" id=\"stepDots\"><\/div>\r\n    <div class=\"q-text\" id=\"questionText\">Getting ready...<\/div>\r\n    <button class=\"mic-btn disabled\" id=\"micBtn\" onclick=\"toggleMic()\">\ud83c\udfa4<\/button>\r\n    <div class=\"mic-hint\" id=\"micHint\">Jessica is asking your first question...<\/div>\r\n    <textarea class=\"transcript-box\" id=\"transcriptBox\" rows=\"2\"><\/textarea>\r\n    <div class=\"voice-nav\" id=\"voiceNav\">\r\n      <button class=\"btn-confirm\" onclick=\"confirmAnswer()\">\u2705 Confirm<\/button>\r\n      <button class=\"btn-redo\" onclick=\"redoAnswer()\">\ud83d\udd04 Redo<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"progress-wrap\">\r\n    <div class=\"progress-label\" id=\"progressLabel\">0 of 7 fields completed<\/div>\r\n    <div class=\"progress-bar\"><div class=\"progress-fill\" id=\"progressFill\"><\/div><\/div>\r\n  <\/div>\r\n\r\n  <!-- Form fields -->\r\n  <div class=\"card\" id=\"card_full_name\"><label for=\"full_name\">Full Name <span>*<\/span><\/label><input type=\"text\" id=\"full_name\" placeholder=\"Your full name\" oninput=\"manualFill('full_name')\"><\/div>\r\n  <div class=\"card\" id=\"card_customer_email\"><label for=\"customer_email\">Email Address <span>*<\/span><\/label><input type=\"email\" id=\"customer_email\" placeholder=\"your@email.com\" oninput=\"this.value=this.value.replace(\/\\s\/g,'').toLowerCase(); manualFill('customer_email')\"><\/div>\r\n  <div class=\"card\" id=\"card_monthly_income\"><label for=\"monthly_income\">Monthly Income <span>*<\/span><\/label><textarea id=\"monthly_income\" rows=\"2\" placeholder=\"e.g. $3,500\" oninput=\"manualFill('monthly_income')\"><\/textarea><\/div>\r\n  <div class=\"card\" id=\"card_monthly_expenses\"><label for=\"monthly_expenses\">Monthly Expenses <span>*<\/span><\/label><textarea id=\"monthly_expenses\" rows=\"2\" placeholder=\"e.g. $2,800\" oninput=\"manualFill('monthly_expenses')\"><\/textarea><\/div>\r\n  <div class=\"card\" id=\"card_savings_goal\"><label for=\"savings_goal\">Savings Goal <span>*<\/span><\/label><textarea id=\"savings_goal\" rows=\"2\" placeholder=\"e.g. Save $500\/month, emergency fund\" oninput=\"manualFill('savings_goal')\"><\/textarea><\/div>\r\n  <div class=\"card\" id=\"card_current_debt\"><label for=\"current_debt\">Current Debt (optional)<\/label><textarea id=\"current_debt\" rows=\"2\" placeholder=\"e.g. $5,000 credit card, $12,000 car loan \u2014 or say skip\" oninput=\"manualFill('current_debt')\"><\/textarea><\/div>\r\n  <div class=\"card\" id=\"card_financial_goals\"><label for=\"financial_goals\">Financial Goals <span>*<\/span><\/label><textarea id=\"financial_goals\" rows=\"3\" placeholder=\"Tell me what you want to achieve financially...\" oninput=\"manualFill('financial_goals')\"><\/textarea><\/div>\r\n\r\n  <button class=\"submit-btn\" onclick=\"submitForm()\">\ud83d\udcb5 Get My Financial Plan<\/button>\r\n  <div id=\"form-message\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst questions = [\r\n  { id:'full_name', text:\"Tell me your full name.\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q1-10.mp3', typeOnly:false, listenSec:8 },\r\n  { id:'customer_email', text:\"Please type in your email address.\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q2-13.mp3', typeOnly:true, listenSec:0 },\r\n  { id:'monthly_income', text:\"What's your monthly income?\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q3-8.mp3', typeOnly:false, listenSec:220 },\r\n  { id:'monthly_expenses', text:\"What are your monthly expenses?\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q4-12.mp3', typeOnly:false, listenSec:220 },\r\n  { id:'savings_goal', text:\"What's your savings goal?\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q5-5.mp3', typeOnly:false, listenSec:220 },\r\n  { id:'current_debt', text:\"Current debt \u2014 if you feel uncomfortable talking about it, just say skip.\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q6-6.mp3', typeOnly:false, listenSec:220 },\r\n  { id:'financial_goals', text:\"Tell me what you want to achieve financially.\", audio:'https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Q7-5.mp3', typeOnly:false, listenSec:220 }\r\n];\r\n\r\nconst welcomeText = \"Welcome to the Women's Life and Budget Planner. I'm Jessica, and I'm here to help you take control of your money and your life. I'll guide you through seven quick questions about your income, expenses, and goals \u2014 just tap the mic and talk naturally, or type if that's easier. Once you're done, your personalized financial plan will be in your inbox within minutes. Take your time \u2014 there's no rush.\";\r\nconst sallyWelcome = new Audio('https:\/\/myaiagenthub.com\/wp-content\/uploads\/2026\/06\/Welcome-9.mp3');\r\nlet questionAudios = questions.map(q => new Audio(q.audio));\r\nlet currentQ = 0;\r\nlet isListening = false;\r\nlet filledFields = new Set();\r\nlet recognition = null;\r\nlet sallyPlaying = false;\r\nlet currentFinalText = '';\r\nlet listenTimer = null;\r\n\r\nconst SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\r\nif (SpeechRecognition) {\r\n  recognition = new SpeechRecognition();\r\n  recognition.continuous = true;\r\n  recognition.interimResults = true;\r\n  recognition.lang = 'en-US';\r\n  recognition.onresult = (e) => {\r\n    let interim = '';\r\n    for (let i = e.resultIndex; i < e.results.length; i++) {\r\n      if (e.results[i].isFinal) currentFinalText += e.results[i][0].transcript + ' ';\r\n      else interim = e.results[i][0].transcript;\r\n    }\r\n    const combined = (currentFinalText + interim).trim();\r\n    const box = document.getElementById('transcriptBox');\r\n    box.value = combined;\r\n    box.style.display = 'block';\r\n  };\r\n  recognition.onend = () => { if (isListening) { try { recognition.start(); } catch(e){} } };\r\n  recognition.onerror = () => stopListening();\r\n}\r\n\r\nfunction setSallyState(speaking) {\r\n  sallyPlaying = speaking;\r\n  const mic = document.getElementById('micBtn');\r\n  if (speaking) {\r\n    mic.classList.add('disabled');\r\n    document.getElementById('micHint').innerText = 'Jessica is speaking \u2014 listen for your question...';\r\n  }\r\n}\r\n\r\nfunction buildDots() {\r\n  const c = document.getElementById('stepDots');\r\n  c.innerHTML = questions.map((_,i)=> `<div class=\"dot ${i===currentQ?'active':filledFields.has(questions[i].id)?'done':''}\"><\/div>`).join('');\r\n}\r\n\r\nfunction showQuestion(index) {\r\n  currentQ = index;\r\n  const q = questions[index];\r\n  document.getElementById('qNum').innerText = index + 1;\r\n  document.getElementById('questionText').innerText = q.text;\r\n  document.getElementById('transcriptBox').style.display = 'none';\r\n  document.getElementById('transcriptBox').value = '';\r\n  document.getElementById('voiceNav').style.display = 'none';\r\n  currentFinalText = '';\r\n  buildDots();\r\n\r\n  questions.forEach(qq => {\r\n    const card = document.getElementById('card_' + qq.id);\r\n    if (card) card.classList.remove('active-field');\r\n  });\r\n  const activeCard = document.getElementById('card_' + q.id);\r\n  if (activeCard) activeCard.classList.add('active-field');\r\n\r\n  setSallyState(true);\r\n  const audio = questionAudios[index];\r\n  audio.currentTime = 0;\r\n  audio.play().catch(()=>{});\r\n  audio.onended = () => {\r\n    setSallyState(false);\r\n    if (q.typeOnly) {\r\n      document.getElementById('micBtn').className = 'mic-btn disabled';\r\n      document.getElementById('micHint').innerText = '\ud83d\udce7 Please type your email address in the box below.';\r\n      document.getElementById('transcriptBox').style.display = 'block';\r\n      document.getElementById('transcriptBox').focus();\r\n      document.getElementById('voiceNav').style.display = 'flex';\r\n    } else {\r\n      document.getElementById('micBtn').className = 'mic-btn';\r\n      document.getElementById('micHint').innerText = 'Tap the mic and speak your answer';\r\n    }\r\n  };\r\n}\r\n\r\nfunction replaySally() {\r\n  if (sallyPlaying) {\r\n    questionAudios[currentQ].pause(); questionAudios[currentQ].currentTime = 0;\r\n    sallyWelcome.pause(); sallyWelcome.currentTime = 0;\r\n    sallyPlaying = false;\r\n    document.getElementById('micBtn').classList.remove('disabled');\r\n  } else {\r\n    showQuestion(currentQ);\r\n  }\r\n}\r\n\r\nfunction toggleMic() {\r\n  if (sallyPlaying || document.getElementById('micBtn').classList.contains('disabled')) return;\r\n  if (!SpeechRecognition) { alert('Voice input requires Chrome browser.'); return; }\r\n  isListening ? stopListening() : startListening();\r\n}\r\n\r\nfunction startListening() {\r\n  isListening = true;\r\n  currentFinalText = '';\r\n  const btn = document.getElementById('micBtn');\r\n  btn.classList.add('listening'); btn.innerText = '\u23f9';\r\n  document.getElementById('micHint').innerText = 'Listening... tap again when done';\r\n  document.getElementById('transcriptBox').style.display = 'block';\r\n  document.getElementById('transcriptBox').value = '';\r\n  recognition.start();\r\n\r\n  clearTimeout(listenTimer);\r\n  listenTimer = setTimeout(() => stopListening(), questions[currentQ].listenSec * 1000);\r\n}\r\n\r\nfunction stopListening() {\r\n  isListening = false;\r\n  clearTimeout(listenTimer);\r\n  if (recognition) { recognition.onend = null; try { recognition.stop(); } catch(e){} }\r\n  const btn = document.getElementById('micBtn');\r\n  btn.classList.remove('listening'); btn.innerText = '\ud83c\udfa4';\r\n  const val = document.getElementById('transcriptBox').value.trim();\r\n  if (val) {\r\n    document.getElementById('micHint').innerText = 'Review your answer above \u2014 edit if needed.';\r\n    document.getElementById('voiceNav').style.display = 'flex';\r\n  } else {\r\n    document.getElementById('micHint').innerText = 'Tap the mic and speak your answer';\r\n  }\r\n  if (SpeechRecognition) {\r\n    recognition = new SpeechRecognition();\r\n    recognition.continuous = true;\r\n    recognition.interimResults = true;\r\n    recognition.lang = 'en-US';\r\n    recognition.onresult = (e) => {\r\n      let interim = '';\r\n      for (let i = e.resultIndex; i < e.results.length; i++) {\r\n        if (e.results[i].isFinal) currentFinalText += e.results[i][0].transcript + ' ';\r\n        else interim = e.results[i][0].transcript;\r\n      }\r\n      document.getElementById('transcriptBox').value = (currentFinalText + interim).trim();\r\n    };\r\n    recognition.onend = () => { if (isListening) { try { recognition.start(); } catch(e){} } };\r\n    recognition.onerror = () => stopListening();\r\n  }\r\n}\r\n\r\nfunction confirmAnswer() {\r\n  const q = questions[currentQ];\r\n  let val = document.getElementById('transcriptBox').value.trim();\r\n\r\n  \/\/ Question 6 (current debt) is optional \u2014 allow empty or \"skip\"\r\n  if (!val && q.id !== 'current_debt') { document.getElementById('micHint').innerText = 'Please answer the question first.'; return; }\r\n\r\n  if (q.id === 'customer_email') val = val.replace(\/\\s\/g,'').toLowerCase();\r\n\r\n  const field = document.getElementById(q.id);\r\n  if (field) { field.value = val; if (val) field.classList.add('filled'); }\r\n\r\n  markFilled(q.id);\r\n  document.getElementById('voiceNav').style.display = 'none';\r\n  document.getElementById('transcriptBox').style.display = 'none';\r\n\r\n  setTimeout(() => {\r\n    const next = currentQ + 1;\r\n    if (next < questions.length) showQuestion(next);\r\n    else allDone();\r\n  }, 600);\r\n}\r\n\r\nfunction redoAnswer() {\r\n  document.getElementById('transcriptBox').value = '';\r\n  document.getElementById('voiceNav').style.display = 'none';\r\n  currentFinalText = '';\r\n  document.getElementById('micHint').innerText = 'Tap the mic and speak your answer';\r\n  if (!questions[currentQ].typeOnly) startListening();\r\n}\r\n\r\nfunction allDone() {\r\n  document.getElementById('questionText').innerText = '\ud83c\udf89 All done! Review your answers and hit the button below!';\r\n  document.getElementById('micBtn').style.display = 'none';\r\n  document.getElementById('micHint').innerText = '';\r\n\r\n  buildDots();\r\n}\r\n\r\nfunction markFilled(fieldId) {\r\n  filledFields.add(fieldId);\r\n  const card = document.getElementById('card_' + fieldId);\r\n  if (card) { card.classList.remove('active-field'); card.classList.add('filled-field'); }\r\n  updateProgress();\r\n}\r\n\r\nfunction manualFill(fieldId) {\r\n  const el = document.getElementById(fieldId);\r\n  if (el && el.value.trim()) {\r\n    markFilled(fieldId);\r\n  }\r\n}\r\n\r\nfunction updateProgress() {\r\n  const req = ['full_name','customer_email','monthly_income','monthly_expenses','savings_goal','current_debt','financial_goals'];\r\n  const filled = req.filter(id=>{ const el=document.getElementById(id); return el&&el.value.trim()!==''; }).length;\r\n  const pct = Math.round((filled\/req.length)*100);\r\n  document.getElementById('progressFill').style.width = pct+'%';\r\n  document.getElementById('progressLabel').innerText = `${filled} of 7 fields completed`;\r\n}\r\n\r\nasync function submitForm() {\r\n  const full_name = document.getElementById('full_name').value.trim();\r\n  const customer_email = document.getElementById('customer_email').value.trim();\r\n  const monthly_income = document.getElementById('monthly_income').value.trim();\r\n  const monthly_expenses = document.getElementById('monthly_expenses').value.trim();\r\n  const savings_goal = document.getElementById('savings_goal').value.trim();\r\n  const current_debt = document.getElementById('current_debt').value.trim();\r\n  const financial_goals = document.getElementById('financial_goals').value.trim();\r\n  const msg = document.getElementById('form-message');\r\n\r\n  if (!full_name || !customer_email || !monthly_income || !monthly_expenses || !savings_goal || !financial_goals) {\r\n    msg.className = 'error'; msg.innerText = '\u26a0\ufe0f Please fill in all required fields before submitting.'; return;\r\n  }\r\n\r\n  msg.className = 'loading'; msg.innerText = '\u23f3 Submitting your information... please wait.';\r\n  document.querySelector('.submit-btn').disabled = true;\r\n\r\n  const userMessage = `My name is ${full_name}. My email is ${customer_email}. My monthly income is ${monthly_income}. My monthly expenses are ${monthly_expenses}. My savings goal is ${savings_goal}. My current debt is ${current_debt || 'none'}. My financial goals are: ${financial_goals}.`;\r\n\r\n  try {\r\n    await fetch('https:\/\/api-bcbe5a.stack.tryrelevance.com\/latest\/agents\/trigger', {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json', 'Authorization': 'b831f1f2-22e3-4067-b1f5-c431251db0cc:sk-MTJiOGM2NjktNTRhYy00MDcxLTg0OWMtMGVmM2Q5NWU2NzM5' },\r\n      body: JSON.stringify({\r\n        message: { role: 'user', content: userMessage },\r\n        agent_id: \"519a75fc-a5e6-4b31-8767-44dbae551671\"\r\n      })\r\n    });\r\n    msg.className = 'success'; msg.innerText = '\ud83d\udcb5 Success! Your personalized Financial Plan is being prepared and will be delivered to your email shortly.';\r\n  } catch(err) {\r\n    msg.className = 'error'; msg.innerText = '\u274c Something went wrong. Please try again.';\r\n    document.querySelector('.submit-btn').disabled = false;\r\n  }\r\n}\r\n\r\nwindow.addEventListener('load', () => {\r\n  buildDots();\r\n  const welcomeMsg = document.getElementById('welcomeMsg');\r\n  const words = welcomeText.split(' ');\r\n  let wi = 0;\r\n  sallyWelcome.play().catch(()=>{});\r\n  const wInt = setInterval(() => {\r\n    if (wi < words.length) { welcomeMsg.textContent += (wi===0?'':' ') + words[wi++]; }\r\n    else clearInterval(wInt);\r\n  }, 1000\/2.8);\r\n  sallyWelcome.onended = () => {\r\n    clearInterval(wInt);\r\n    welcomeMsg.textContent = welcomeText;\r\n    setTimeout(() => showQuestion(0), 1500);\r\n  };\r\n  sallyWelcome.onerror = () => {\r\n    welcomeMsg.textContent = welcomeText;\r\n    setTimeout(() => showQuestion(0), 1000);\r\n  };\r\n});\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Women&#8217;s Life &#038; Budget Planner \ud83d\udcb5 Women&#8217;s Life &amp; Budget Planner \ud83d\udc4b Jessica \u2014 Your Budget Planner Question 1 of 7 Getting ready&#8230; \ud83c\udfa4 Jessica is asking your first question&#8230; \u2705 Confirm \ud83d\udd04 Redo 0 of 7 fields completed Full Name * Email Address * Monthly Income * Monthly Expenses * Savings Goal * Current Debt (optional) Financial Goals * \ud83d\udcb5 Get My Financial Plan<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-3045","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/pages\/3045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/comments?post=3045"}],"version-history":[{"count":13,"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/pages\/3045\/revisions"}],"predecessor-version":[{"id":5095,"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/pages\/3045\/revisions\/5095"}],"wp:attachment":[{"href":"https:\/\/myaiagenthub.com\/es\/wp-json\/wp\/v2\/media?parent=3045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}