{"id":243873,"date":"2026-07-06T01:45:12","date_gmt":"2026-07-06T08:45:12","guid":{"rendered":"https:\/\/taxsmartinvesting.org\/?page_id=243873"},"modified":"2026-07-10T14:30:22","modified_gmt":"2026-07-10T21:30:22","slug":"roth-conversion-strategy","status":"publish","type":"page","link":"https:\/\/taxsmartinvesting.org\/es\/roth-conversion-strategy\/","title":{"rendered":"Roth Conversion Strategies"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Roth Conversion Strategy & Case Study | Tax Smart Investing<\/title>\n<meta name=\"description\" content=\"One client's Roth conversion strategy turned the same conversion into $214,000 more. See the real case study and what it could mean for you.\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n<style>\n  :root{\n    --cream:#faf8f3;\n    --cream-2:#f1efe3;\n    --panel:#ffffff;\n    --sage:#eaf1ea;\n    --hairline:rgba(16,35,26,0.10);\n    --hairline-strong:rgba(16,35,26,0.16);\n    --green-900:#0c3a20;\n    --green-800:#124a29;\n    --green-700:#185c2f;\n    --green-600:#1f7a41;\n    --green-500:#278c4b;\n    --green-400:#3fae66;\n    --green-100:#dcebe0;\n    --coral-500:#c1584e;\n    --coral-100:#f7e5e2;\n    --ink:#0f2016;\n    --ink-dim:#3f5348;\n    --ink-dimmer:#6b7d72;\n    --statement-bg:#0d1712;\n    --statement-line:rgba(246,242,232,0.14);\n    --font-display:'Source Serif 4', Georgia, serif;\n    --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n    --font-mono:'IBM Plex Mono', 'SF Mono', Menlo, monospace;\n    --max:1120px;\n  }\n  *{box-sizing:border-box; margin:0; padding:0;}\n  html{scroll-behavior:smooth;}\n  body{\n    background:var(--cream);\n    color:var(--ink);\n    font-family:var(--font-body);\n    line-height:1.55;\n    -webkit-font-smoothing:antialiased;\n    overflow-x:hidden;\n  }\n  img{max-width:100%; display:block;}\n  a{color:inherit;}\n  .wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}\n  ::selection{background:var(--green-400); color:#08120c;}\n  a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible{\n    outline:2px solid var(--green-600); outline-offset:3px;\n  }\n  @media (prefers-reduced-motion: reduce){\n    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}\n  }\n\n  .eyebrow{\n    display:inline-flex; align-items:center; gap:8px;\n    font-family:var(--font-mono);\n    font-size:11.5px; letter-spacing:0.13em; text-transform:uppercase;\n    color:var(--green-700);\n    font-weight:600;\n  }\n  .eyebrow::before{content:\"\"; width:6px; height:6px; border-radius:50%; background:var(--green-500); box-shadow:0 0 0 3px rgba(39,140,75,0.16);}\n  .eyebrow.on-dark{color:var(--green-300, #7ecb96);}\n  .eyebrow.on-dark::before{background:#3fae66;}\n\n  \/* ---------- BUTTONS ---------- *\/\n  .btn{\n    display:inline-flex; align-items:center; justify-content:center; gap:8px;\n    font-family:var(--font-body); font-weight:700; font-size:15px;\n    padding:13px 24px; border-radius:100px; border:none; cursor:pointer;\n    text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;\n    white-space:nowrap;\n  }\n  .btn-primary{background:var(--green-600); color:#fff; box-shadow:0 10px 24px -10px rgba(31,122,65,0.55);}\n  .btn-primary:hover{background:var(--green-700); transform:translateY(-1px);}\n  .btn-sm{padding:10px 18px; font-size:13.5px;}\n  .btn-ghost{background:transparent; color:var(--ink); border:1px solid var(--hairline-strong);}\n  .btn-ghost:hover{border-color:var(--green-600); color:var(--green-700);}\n  .btn-on-dark{background:var(--green-500); color:#08120c;}\n  .btn-on-dark:hover{background:var(--green-400);}\n\n  \/* ---------- HERO ---------- *\/\n  .hero{\n    position:relative;\n    padding:76px 0 68px;\n    background:\n      radial-gradient(1000px 520px at 85% -15%, rgba(39,140,75,0.13), transparent 60%),\n      linear-gradient(180deg, var(--cream) 0%, var(--cream) 100%);\n    border-bottom:1px solid var(--hairline);\n  }\n  .hero-grid{display:flex; justify-content:center;}\n  .hero-grid > div{max-width:700px; text-align:center;}\n  .hero h1{\n    font-family:var(--font-display); font-weight:600;\n    font-size:clamp(2rem, 3.6vw, 3.1rem); line-height:1.12; letter-spacing:-0.01em;\n    margin:18px 0 20px; color:var(--ink);\n  }\n  .hero h1 em{font-style:italic; color:var(--green-700);}\n  .hero p.lede{font-size:18px; color:var(--ink-dim); max-width:54ch; margin:0 auto 28px;}\n  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:30px; justify-content:center;}\n  .trust-strip{display:flex; flex-wrap:wrap; gap:20px; font-size:13.5px; color:var(--ink-dimmer); justify-content:center;}\n  .trust-strip span{display:flex; align-items:center; gap:8px;}\n  .trust-strip svg{flex:none; color:var(--green-600);}\n\n  \/* ---------- SECTION SCAFFOLDING ---------- *\/\n  section{padding:84px 0;}\n  .section-alt{background:var(--sage);}\n  .section-head{max-width:640px; margin-bottom:42px;}\n  .section-head h2{font-family:var(--font-display); font-weight:600; font-size:clamp(1.55rem, 2.4vw, 2.2rem); line-height:1.2; margin-top:14px; letter-spacing:-0.01em;}\n  .section-head p{color:var(--ink-dim); font-size:16.5px; margin-top:14px;}\n\n  \/* ---------- CASE STUDY (the \"statement\" \u2014 signature dark contrast element) ---------- *\/\n  .case-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}\n  .case-copy p{color:var(--ink-dim); font-size:16px; margin-bottom:14px;}\n  .case-copy ul{list-style:none; margin-top:20px; display:flex; flex-direction:column; gap:12px;}\n  .case-copy li{display:flex; gap:10px; font-size:15px; color:var(--ink);}\n  .case-copy li svg{flex:none; margin-top:3px; color:var(--green-600);}\n\n  .statement{\n    background:var(--statement-bg); color:#f6f2e8;\n    border-radius:20px; padding:34px;\n    box-shadow:0 30px 70px -30px rgba(13,23,18,0.45);\n  }\n  .statement .lc-title{font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.12em; text-transform:uppercase; color:rgba(246,242,232,0.55); margin-bottom:20px;}\n  .lc-row{display:flex; justify-content:space-between; align-items:flex-end; padding:16px 0; border-bottom:1px dashed var(--statement-line);}\n  .lc-row:last-of-type{border-bottom:none;}\n  .lc-name{font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase; color:rgba(246,242,232,0.6); font-weight:600; margin-bottom:6px;}\n  .lc-amount{font-family:var(--font-mono); font-size:clamp(1.5rem,3vw,2rem); font-weight:600;}\n  .val-coral{color:#e0857c;}\n  .val-green{color:#7ecb96;}\n  .lc-sub{font-size:12px; color:rgba(246,242,232,0.45); margin-top:2px;}\n  .lc-callout{\n    margin-top:20px; padding:16px 18px; border-radius:12px;\n    background:linear-gradient(135deg, rgba(63,174,102,0.22), rgba(63,174,102,0.05));\n    border:1px solid rgba(63,174,102,0.4);\n  }\n  .lc-callout .big{font-family:var(--font-mono); font-size:1.8rem; font-weight:700; color:#7ecb96;}\n  .lc-callout .cap{font-size:13px; color:rgba(246,242,232,0.7); margin-top:4px;}\n  .disclaimer{font-size:11.5px; color:var(--ink-dimmer); margin-top:16px; line-height:1.6;}\n  .disclaimer.on-dark{color:rgba(246,242,232,0.45);}\n\n  \/* ---------- PROBLEM ---------- *\/\n  .stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}\n  .stat-card{background:var(--panel); border:1px solid var(--hairline); border-radius:16px; padding:26px 24px;}\n  .stat-card .stat{font-family:var(--font-mono); font-size:1.8rem; font-weight:700; color:var(--coral-500); margin-bottom:10px;}\n  .stat-card h3{font-size:15.5px; font-weight:700; margin-bottom:8px; color:var(--ink);}\n  .stat-card p{font-size:14px; color:var(--ink-dimmer);}\n\n  \/* ---------- WINDOW ---------- *\/\n  .window-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:52px; align-items:center;}\n  .chart-card{background:var(--panel); border:1px solid var(--hairline); border-radius:18px; padding:20px 20px 8px;}\n  .chart-legend{display:flex; gap:20px; margin-top:6px; padding:0 6px 14px; font-size:12.5px; color:var(--ink-dimmer);}\n  .chart-legend span{display:flex; align-items:center; gap:6px;}\n  .dot{width:9px; height:9px; border-radius:50%;}\n\n  \/* ---------- CALCULATOR: MULTI-STEP QUIZ ---------- *\/\n  .calc-shell{\n    background:var(--panel); border:1px solid var(--hairline); border-radius:24px;\n    padding:44px; box-shadow:0 30px 70px -34px rgba(16,35,26,0.25);\n    max-width:640px; margin:0 auto;\n  }\n  .field{margin-bottom:22px;}\n  .field label{display:block; font-size:13px; font-weight:600; letter-spacing:0.02em; color:var(--ink-dim); margin-bottom:10px;}\n  .field-value{font-family:var(--font-mono); color:var(--green-700); font-weight:700;}\n  input[type=range]{\n    -webkit-appearance:none; width:100%; height:6px; border-radius:3px;\n    background:var(--green-500); background-color:rgba(16,35,26,0.10);\n  }\n  input[type=range]::-webkit-slider-thumb{\n    -webkit-appearance:none; width:20px; height:20px; border-radius:50%;\n    background:#fff; border:3px solid var(--green-600); cursor:pointer;\n    box-shadow:0 2px 8px rgba(16,35,26,0.25);\n  }\n  input[type=range]::-moz-range-thumb{\n    width:20px; height:20px; border-radius:50%;\n    background:#fff; border:3px solid var(--green-600); cursor:pointer;\n  }\n  .age-input{\n    width:100%; padding:14px 16px; border-radius:10px; border:1px solid var(--hairline-strong);\n    background:var(--cream); color:var(--ink); font-family:var(--font-mono); font-size:16px;\n  }\n\n  \/* Progress + steps *\/\n  .qz-progress{height:5px; border-radius:3px; background:rgba(16,35,26,0.08); overflow:hidden; margin-bottom:12px;}\n  .qz-progress-fill{height:100%; background:var(--green-500); border-radius:3px; transition:width .3s ease; width:16.6%;}\n  .qz-stepnum{font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-dimmer); margin-bottom:22px;}\n  .qz-step{display:none; animation:fadein .3s ease;}\n  .qz-step.active{display:block;}\n  .qz-step h3{font-family:var(--font-display); font-size:22px; font-weight:600; line-height:1.3; color:var(--ink);}\n  .qz-hint{margin-top:14px; font-size:13.5px; color:var(--ink-dim); background:var(--sage); padding:10px 14px; border-radius:10px;}\n  .qz-hint strong{color:var(--green-700);}\n  .qz-nav{display:flex; justify-content:space-between; align-items:center; margin-top:30px;}\n  .qz-back{background:none; border:none; color:var(--ink-dimmer); font-size:14px; font-weight:600; cursor:pointer; font-family:var(--font-body);}\n  .qz-back:hover{color:var(--ink);}\n  .qz-cards{display:flex; flex-direction:column; gap:10px;}\n  .qz-card{\n    text-align:left; padding:15px 18px; border-radius:12px; border:1px solid var(--hairline-strong);\n    background:var(--cream); color:var(--ink); font-family:var(--font-body); font-weight:600; font-size:14.5px;\n    cursor:pointer; transition:all .15s ease;\n  }\n  .qz-card:hover{border-color:var(--green-400);}\n  .qz-card.selected{background:var(--green-100); border-color:var(--green-500); color:var(--green-700);}\n\n  \/* Reveal + badges *\/\n  .qz-badges{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px;}\n  .qz-badge{\n    background:var(--sage); border:1px solid var(--hairline-strong); border-radius:100px;\n    padding:8px 16px; font-size:12.5px; font-weight:600; color:var(--ink-dim); font-family:var(--font-mono);\n  }\n  .qz-badge strong{color:var(--green-700);}\n\n  .result-card{background:var(--statement-bg); color:#f6f2e8; border-radius:18px; padding:26px; position:relative; overflow:hidden;}\n  .result-note{font-size:11.5px; color:rgba(246,242,232,0.5); margin-top:16px; line-height:1.6;}\n  #blurLayer{filter:blur(9px); user-select:none; pointer-events:none; transition:filter .4s ease;}\n  #blurLayer.revealed{filter:none; user-select:auto; pointer-events:auto;}\n\n  .unlock-gate{\n    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;\n    padding:26px; text-align:center; background:rgba(13,23,18,0.72); backdrop-filter:blur(2px);\n  }\n  .unlock-gate.hidden{display:none;}\n  .unlock-lock{font-size:28px; margin-bottom:10px;}\n  .unlock-gate h4{font-family:var(--font-display); font-size:19px; color:#fff; margin-bottom:6px;}\n  .unlock-gate p{font-size:13.5px; color:rgba(246,242,232,0.7); margin-bottom:18px;}\n  .unlock-gate form{width:100%; max-width:380px;}\n  .lead-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px;}\n  .lead-grid input{\n    padding:12px 14px; border-radius:10px; border:1px solid rgba(246,242,232,0.25);\n    background:rgba(255,255,255,0.95); color:var(--ink); font-family:var(--font-body); font-size:14px; width:100%;\n  }\n  .lead-full{grid-column:1 \/ -1;}\n\n  .next-step{margin-top:36px; padding-top:32px; border-top:1px solid var(--hairline-strong); text-align:center;}\n  .next-step h4{font-family:var(--font-display); font-size:22px; margin-bottom:8px; color:var(--ink);}\n  .next-step p{font-size:14.5px; color:var(--ink-dim); margin-bottom:20px; max-width:52ch; margin-left:auto; margin-right:auto;}\n\n  @keyframes fadein{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}\n\n  \/* ---------- WHY US ---------- *\/\n  .why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:56px;}\n  .why-card{background:var(--panel); border:1px solid var(--hairline); border-radius:16px; padding:28px 24px;}\n  .why-card .mono-tag{font-family:var(--font-mono); font-size:11px; color:var(--green-600); letter-spacing:0.1em; margin-bottom:14px; display:block;}\n  .why-card h3{font-family:var(--font-display); font-size:19px; margin-bottom:10px;}\n  .why-card p{font-size:14.5px; color:var(--ink-dimmer);}\n\n  .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:0; position:relative;}\n  .step{padding:0 24px 0 0; position:relative;}\n  .step:not(:last-child)::after{\n    content:\"\"; position:absolute; top:22px; right:-2px; width:calc(100% - 44px); height:1px;\n    background:repeating-linear-gradient(90deg, var(--hairline-strong) 0 6px, transparent 6px 12px);\n  }\n  .step-num{font-family:var(--font-mono); font-size:13px; color:var(--green-700); border:1px solid var(--green-500); border-radius:50%; width:44px; height:44px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; background:var(--green-100);}\n  .step h4{font-size:16px; margin-bottom:8px;}\n  .step p{font-size:14px; color:var(--ink-dimmer);}\n\n  \/* ---------- FAQ ---------- *\/\n  .faq-list{max-width:760px;}\n  details{border-bottom:1px solid var(--hairline-strong); padding:20px 0;}\n  summary{\n    list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center;\n    font-size:16.5px; font-weight:600; color:var(--ink); gap:16px;\n  }\n  summary::-webkit-details-marker{display:none;}\n  summary .plus{font-family:var(--font-mono); font-size:20px; color:var(--green-600); transition:transform .2s ease; flex:none;}\n  details[open] summary .plus{transform:rotate(45deg);}\n  details p{margin-top:14px; font-size:14.5px; color:var(--ink-dim); max-width:64ch; line-height:1.65;}\n\n  \/* ---------- FINAL CTA ---------- *\/\n  .final-cta{\n    text-align:center; padding:96px 0;\n    background:\n      radial-gradient(800px 420px at 50% 0%, rgba(39,140,75,0.14), transparent 60%),\n      var(--sage);\n    border-top:1px solid var(--hairline);\n  }\n  .final-cta h2{font-family:var(--font-display); font-size:clamp(1.7rem,3.2vw,2.5rem); max-width:720px; margin:16px auto 30px; line-height:1.22; color:var(--ink);}\n\n  \/* ---------- RESPONSIVE ---------- *\/\n  @media (max-width: 880px){\n    .case-grid, .window-grid{grid-template-columns:1fr;}\n    .stat-grid, .why-grid, .steps{grid-template-columns:1fr;}\n    .step:not(:last-child)::after{display:none;}\n    section{padding:60px 0;}\n    .hero{padding:48px 0 48px;}\n    .calc-shell{padding:26px;}\n  }\n<\/style>\n<\/head>\n<body>\n\n\n<main>\n\n  <!-- HERO -->\n  <section class=\"hero\">\n    <div class=\"wrap hero-grid\">\n      <div>\n        <span class=\"eyebrow\">A Real Roth Conversion Story<\/span>\n        <h1>Same IRA. Same Conversion.<br>A <em>$214,000<\/em> Different Tax Bill.<\/h1>\n        <p class=\"lede\">One client converted the exact same 401(k) to a Roth IRA \u2014 modeled two ways. The account, the timing, and the retirement plan were identical. Only the Roth conversion strategy behind it changed. Here's what that difference was actually worth.<\/p>\n        <div class=\"hero-ctas\">\n          <a href=\"#calculator\" class=\"btn btn-primary\">See What Your Conversion Could Look Like<\/a>\n          <a href=\"#case-study\" class=\"btn btn-ghost\">Read the Case Study \u2193<\/a>\n        <\/div>\n        <div class=\"trust-strip\">\n          <span><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Fiduciary-minded planning<\/span>\n          <span><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>No cost, no obligation<\/span>\n          <span><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Actionable advice<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- CASE STUDY -->\n  <section id=\"case-study\">\n    <div class=\"wrap case-grid\">\n      <div class=\"case-copy\">\n        <span class=\"eyebrow\">The Case Study<\/span>\n        <h2 style=\"font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2rem); margin:14px 0 18px; font-weight:600;\">After Sitting Down With His Accountant<\/h2>\n        <p>Here's what one client's 401(k)-to-Roth conversion really looked like once the numbers were run side by side. Same account. Same conversion amount. Same retirement plan. The only variable was how the conversion was structured and executed.<\/p>\n        <p>The gap wasn't a difference in luck or market timing \u2014 it came from the Roth conversion strategy itself.<\/p>\n        <ul>\n          <li><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Executed through institutional partners \u2014 not retail banks, credit unions or brokers (keeping more in your pocket, not theirs)<\/li>\n          <li><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Designed to lower lifetime tax exposure, not just this year's bill<\/li>\n          <li><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>Same conversion you were already planning \u2014 just done smarter<\/li>\n        <\/ul>\n      <\/div>\n\n      <div class=\"statement\">\n        <span class=\"lc-title\">Projected Roth Balance<\/span>\n        <div class=\"lc-row\">\n          <div>\n            <div class=\"lc-name\">Traditional Roth Strategy<\/div>\n            <div class=\"lc-sub\">Standard conversion, retail execution<\/div>\n          <\/div>\n          <div style=\"text-align:right;\"><div class=\"lc-amount val-coral\">$786,000<\/div><\/div>\n        <\/div>\n        <div class=\"lc-row\">\n          <div>\n            <div class=\"lc-name\">With Tax-Smart Investing<\/div>\n            <div class=\"lc-sub\">Same conversion, institutional structure<\/div>\n          <\/div>\n          <div style=\"text-align:right;\"><div class=\"lc-amount val-green\">$1,000,000<\/div><\/div>\n        <\/div>\n        <div class=\"lc-callout\">\n          <div class=\"big\">+$214,000<\/div>\n          <div class=\"cap\">Same conversion, same retirement plan \u2014 a completely different and far more strategic approach.<\/div>\n        <\/div>\n        <p class=\"disclaimer on-dark\">Based on an actual client engagement; identifying details have been removed to protect privacy. This example reflects one client's specific account size, timeline, and tax situation. Results vary by individual and are not a guarantee of future performance for any other client. This is not tax or legal advice \u2014 consult your own tax professional about your situation.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- PROBLEM -->\n  <section class=\"section-alt\" id=\"problem\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">The Other Partner In Your 401(k)<\/span>\n        <h2>The IRS already owns part of your balance. The only question is the price you'll pay for it.<\/h2>\n        <p>Every dollar sitting in a traditional IRA or 401(k) carries a deferred tax bill \u2014 and that bill doesn't stay flat. It grows with the account, and it often comes due at the worst possible moment.<\/p>\n      <\/div>\n      <div class=\"stat-grid\">\n        <div class=\"stat-card\">\n          <div class=\"stat\">Age 73 or 75<\/div>\n          <h3>Required Minimum Distributions<\/h3>\n          <p>Once RMDs begin, the IRS decides how much you withdraw \u2014 and how much you're taxed \u2014 whether you need the income that year or not.<\/p>\n        <\/div>\n        <div class=\"stat-card\">\n          <div class=\"stat\">$2K\u2013$8K+\/yr<\/div>\n          <h3>IRMAA Medicare Surcharges<\/h3>\n          <p>Conversion or RMD income can push your Medicare Part B and D premiums into a higher bracket \u2014 with a two-year lookback that catches many retirees off guard.<\/p>\n        <\/div>\n        <div class=\"stat-card\">\n          <div class=\"stat\">The Widow's Penalty<\/div>\n          <h3>A Sudden Jump to Single Brackets<\/h3>\n          <p>The year after losing a spouse, a surviving spouse often files single \u2014 same income, narrower brackets, and frequently a materially larger tax bill.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- WINDOW -->\n  <section>\n    <div class=\"wrap window-grid\">\n      <div>\n        <span class=\"eyebrow\">The Closing Window<\/span>\n        <h2 style=\"font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2rem); margin:14px 0 18px; font-weight:600;\">Your lowest tax-bracket years might already be ticking.<\/h2>\n        <p style=\"color:var(--ink-dim); font-size:15.5px; margin-bottom:16px;\">Between the year you retire and the year RMDs begin, income for most people temporarily drops \u2014 wages stop, and Social Security often hasn't started yet. That gap is frequently the lowest tax-bracket window left in your lifetime.<\/p>\n        <p style=\"color:var(--ink-dim); font-size:15.5px;\">Once RMDs begin, the IRS sets your minimum withdrawal \u2014 and your control over which bracket you land in narrows considerably. The window doesn't stay open on its own schedule; it closes on the calendar's.<\/p>\n      <\/div>\n      <div class=\"chart-card\">\n        <svg viewBox=\"0 0 560 300\" width=\"100%\" height=\"auto\" role=\"img\" aria-label=\"Chart showing taxable income dropping after retirement and rising sharply once RMDs begin at age 73 to 75\">\n          <line x1=\"40\" y1=\"240\" x2=\"540\" y2=\"240\" stroke=\"rgba(16,35,26,0.14)\" stroke-width=\"1\"\/>\n          <line x1=\"40\" y1=\"20\" x2=\"40\" y2=\"240\" stroke=\"rgba(16,35,26,0.14)\" stroke-width=\"1\"\/>\n          <rect x=\"180\" y=\"20\" width=\"150\" height=\"220\" fill=\"rgba(39,140,75,0.10)\"\/>\n          <text x=\"255\" y=\"38\" text-anchor=\"middle\" fill=\"#1f7a41\" font-family=\"IBM Plex Mono\" font-size=\"11\">CONVERSION WINDOW<\/text>\n          <path d=\"M40,140 C90,150 130,190 180,205 C230,215 280,208 330,195 C400,175 460,90 540,40\" fill=\"none\" stroke=\"#c1584e\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n          <text x=\"60\" y=\"120\" fill=\"#3f5348\" font-family=\"Inter\" font-size=\"11\">Income<\/text>\n          <text x=\"55\" y=\"262\" fill=\"#6b7d72\" font-family=\"IBM Plex Mono\" font-size=\"11\">60<\/text>\n          <text x=\"172\" y=\"262\" fill=\"#6b7d72\" font-family=\"IBM Plex Mono\" font-size=\"11\">Retire<\/text>\n          <text x=\"330\" y=\"262\" text-anchor=\"middle\" fill=\"#0f2016\" font-family=\"IBM Plex Mono\" font-size=\"11\" font-weight=\"600\">Age 73\u201375<\/text>\n          <text x=\"510\" y=\"262\" fill=\"#6b7d72\" font-family=\"IBM Plex Mono\" font-size=\"11\">80<\/text>\n          <line x1=\"330\" y1=\"20\" x2=\"330\" y2=\"240\" stroke=\"rgba(193,88,78,0.45)\" stroke-width=\"1\" stroke-dasharray=\"4 4\"\/>\n          <text x=\"335\" y=\"34\" fill=\"#c1584e\" font-family=\"IBM Plex Mono\" font-size=\"10\">RMDs begin<\/text>\n        <\/svg>\n        <div class=\"chart-legend\">\n          <span><span class=\"dot\" style=\"background:#c1584e;\"><\/span>Taxable income over time<\/span>\n          <span><span class=\"dot\" style=\"background:rgba(39,140,75,0.5);\"><\/span>Lower-bracket conversion window<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- CALCULATOR -->\n  <section class=\"section-alt calc-section\" id=\"calculator\">\n    <div class=\"wrap\">\n      <div class=\"section-head\" style=\"margin-bottom:36px;\">\n        <span class=\"eyebrow\">Your Numbers<\/span>\n        <h2>Build your personalized Roth conversion snapshot.<\/h2>\n        <p>Answer a few quick questions about your situation. We'll estimate your tax bracket, your conversion window, and how a tax-smart Roth conversion strategy compares to a standard conversion \u2014 built on the same mechanics behind the case study above.<\/p>\n      <\/div>\n\n      <div class=\"calc-shell\">\n\n        <!-- ===================== QUIZ (progressive profiling) ===================== -->\n        <div id=\"quiz\">\n          <div class=\"qz-progress\"><div class=\"qz-progress-fill\" id=\"qzProgressFill\"><\/div><\/div>\n          <div class=\"qz-stepnum\" id=\"qzStepLabel\">Step 1 of 6<\/div>\n\n          <!-- Step 1: Balance -->\n          <div class=\"qz-step active\" data-step=\"1\">\n            <h3>What's your current traditional IRA \/ 401(k) balance?<\/h3>\n            <div class=\"field\" style=\"margin-top:26px;\">\n              <label>Balance: <span class=\"field-value\" id=\"balanceOut\">$500,000<\/span><\/label>\n              <input type=\"range\" id=\"balance\" min=\"100000\" max=\"3000000\" step=\"10000\" value=\"500000\">\n            <\/div>\n            <div class=\"qz-nav\"><span><\/span><button type=\"button\" class=\"btn btn-primary qz-next\" data-goto=\"2\">Continue<\/button><\/div>\n          <\/div>\n\n          <!-- Step 2: Filing status -->\n          <div class=\"qz-step\" data-step=\"2\">\n            <h3>What's your tax filing status?<\/h3>\n            <div class=\"qz-cards\" style=\"margin-top:22px;\">\n              <button type=\"button\" class=\"qz-card selected\" data-field=\"filingStatus\" data-value=\"married\">Married Filing Jointly<\/button>\n              <button type=\"button\" class=\"qz-card\" data-field=\"filingStatus\" data-value=\"single\">Single<\/button>\n            <\/div>\n            <div class=\"qz-nav\"><button type=\"button\" class=\"qz-back\" data-goto=\"1\">\u2190 Back<\/button><span><\/span><\/div>\n          <\/div>\n\n          <!-- Step 3: Income -->\n          <div class=\"qz-step\" data-step=\"3\">\n            <h3>What's your approximate household income this year?<\/h3>\n            <div class=\"field\" style=\"margin-top:26px;\">\n              <label>Income: <span class=\"field-value\" id=\"incomeOut\">$150,000<\/span><\/label>\n              <input type=\"range\" id=\"income\" min=\"40000\" max=\"750000\" step=\"5000\" value=\"150000\">\n            <\/div>\n            <p class=\"qz-hint\" id=\"bracketHint\">That puts you in the approximate <strong>22% federal bracket<\/strong>.*<\/p>\n            <div class=\"qz-nav\"><button type=\"button\" class=\"qz-back\" data-goto=\"2\">\u2190 Back<\/button><button type=\"button\" class=\"btn btn-primary qz-next\" data-goto=\"4\">Continue<\/button><\/div>\n          <\/div>\n\n          <!-- Step 4: Age -->\n          <div class=\"qz-step\" data-step=\"4\">\n            <h3>What's your current age?<\/h3>\n            <div class=\"field\" style=\"margin-top:26px; max-width:220px;\">\n              <input type=\"number\" class=\"age-input\" id=\"age\" min=\"35\" max=\"80\" value=\"62\">\n            <\/div>\n            <div class=\"qz-nav\"><button type=\"button\" class=\"qz-back\" data-goto=\"3\">\u2190 Back<\/button><button type=\"button\" class=\"btn btn-primary qz-next\" data-goto=\"5\">Continue<\/button><\/div>\n          <\/div>\n\n          <!-- Step 5: Retirement timing -->\n          <div class=\"qz-step\" data-step=\"5\">\n            <h3>Where are you in your retirement timeline?<\/h3>\n            <div class=\"qz-cards\" style=\"margin-top:22px;\">\n              <button type=\"button\" class=\"qz-card\" data-field=\"retirement\" data-value=\"retired\">Already retired<\/button>\n              <button type=\"button\" class=\"qz-card\" data-field=\"retirement\" data-value=\"soon\">Retiring within 5 years<\/button>\n              <button type=\"button\" class=\"qz-card\" data-field=\"retirement\" data-value=\"later\">5\u201310 years away<\/button>\n              <button type=\"button\" class=\"qz-card\" data-field=\"retirement\" data-value=\"far\">10+ years away<\/button>\n            <\/div>\n            <div class=\"qz-nav\"><button type=\"button\" class=\"qz-back\" data-goto=\"4\">\u2190 Back<\/button><span><\/span><\/div>\n          <\/div>\n\n          <!-- Step 6: Medicare \/ IRMAA -->\n          <div class=\"qz-step\" data-step=\"6\">\n            <h3>Are you enrolled in Medicare, or will be soon?<\/h3>\n            <div class=\"qz-cards\" style=\"margin-top:22px;\">\n              <button type=\"button\" class=\"qz-card\" data-field=\"medicare\" data-value=\"not-yet\">Not yet, and not soon<\/button>\n              <button type=\"button\" class=\"qz-card\" data-field=\"medicare\" data-value=\"soon\">Turning 65 within 2 years<\/button>\n              <button type=\"button\" class=\"qz-card\" data-field=\"medicare\" data-value=\"on\">Already on Medicare<\/button>\n            <\/div>\n            <div class=\"qz-nav\"><button type=\"button\" class=\"qz-back\" data-goto=\"5\">\u2190 Back<\/button><span><\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <!-- ===================== REVEAL (gated by contact info) ===================== -->\n        <div id=\"reveal\" style=\"display:none;\">\n          <div class=\"qz-badges\" id=\"qzBadges\"><\/div>\n\n          <div class=\"result-card\" style=\"position:relative;\">\n            <span class=\"lc-title\" style=\"margin-bottom:16px; display:block;\">Estimated Projected Roth Balance<\/span>\n\n            <div id=\"blurLayer\">\n              <div class=\"lc-row\">\n                <div class=\"lc-name\">Traditional Roth Strategy<\/div>\n                <div class=\"lc-amount val-coral\" id=\"tradResult\" style=\"font-size:1.5rem;\">$0<\/div>\n              <\/div>\n              <div class=\"lc-row\">\n                <div class=\"lc-name\">With Tax-Smart Investing<\/div>\n                <div class=\"lc-amount val-green\" id=\"smartResult\" style=\"font-size:1.5rem;\">$0<\/div>\n              <\/div>\n              <div class=\"lc-callout\">\n                <div class=\"big\" id=\"diffResult\">+$0<\/div>\n                <div class=\"cap\">Potential difference in projected Roth balance, based on the same approach used in the case study.<\/div>\n              <\/div>\n              <p class=\"result-note\">Illustrative estimate only, modeled on one client's actual outcome and scaled to your inputs. It is not a projection, promise, or guarantee of results \u2014 actual outcomes depend on your full tax situation, timing, and market conditions. Not tax or legal advice. *Tax bracket shown is an approximation based on published 2026 federal thresholds and does not account for deductions, credits, or state tax.<\/p>\n            <\/div>\n\n            <!-- ============================================================\n                 GATE \u2014 contact info required to unlock the numbers above.\n                 This form submits straight to a GoHighLevel Inbound Webhook\n                 (see GHL_WEBHOOK_URL near the top of the <script> below) \u2014\n                 no GHL form embed needed, so the styling here is fully yours.\n                 Setup:\n                 1. In GoHighLevel: Automation \u2192 Workflows \u2192 Create Workflow.\n                 2. Add Trigger \u2192 \"Inbound Webhook\" (a Premium Trigger \u2014 make\n                    sure Premium Triggers\/Actions are enabled on your plan).\n                 3. Copy the generated Webhook URL and paste it into\n                    GHL_WEBHOOK_URL in the script below.\n                 4. Submit this form once on the live page so GHL captures a\n                    sample payload, then in the trigger's field mapping, map\n                    first_name \/ last_name \/ email \/ phone to the standard\n                    contact fields, and balance \/ age \/ filing_status \/\n                    income \/ tax_bracket \/ retirement_timeline \/\n                    medicare_status \/ irmaa_relevant \/ traditional_estimate \/\n                    smart_estimate to custom fields.\n                 5. Add workflow actions: Create\/Update Contact, tag it (e.g.\n                    \"Roth Calculator Lead\"), then trigger your SMS\/email\n                    nurture sequence.\n                 ============================================================ -->\n            <div class=\"unlock-gate\" id=\"unlockGate\">\n              <div class=\"unlock-lock\">\ud83d\udd12<\/div>\n              <h4>Enter your info to unlock your full snapshot<\/h4>\n              <p>We'll show your exact numbers instantly \u2014 no cost, no obligation.<\/p>\n              <form id=\"leadForm\">\n                <div class=\"lead-grid\">\n                  <input type=\"text\" name=\"first_name\" placeholder=\"First name\" required>\n                  <input type=\"text\" name=\"last_name\" placeholder=\"Last name\" required>\n                  <input type=\"email\" name=\"email\" class=\"lead-full\" placeholder=\"Email address\" required>\n                  <input type=\"tel\" name=\"phone\" class=\"lead-full\" placeholder=\"Phone number\" required>\n                <\/div>\n                <button type=\"submit\" class=\"btn btn-primary\" style=\"width:100%;\">Unlock My Full Snapshot<\/button>\n              <\/form>\n            <\/div>\n          <\/div>\n\n          <!-- ============================================================\n               GOHIGHLEVEL CALENDAR \u2014 PRIMARY CTA (Book a consultation)\n               Opens GoHighLevel's own hosted booking page directly in a new\n               tab. To point this at a different calendar, swap the href for\n               a fresh Permanent Link \/ Scheduling Link from GoHighLevel:\n               Calendars \u2192 your calendar \u2192 \"\u00b7\u00b7\u00b7\" \u2192 Share.\n               ============================================================ -->\n          <div class=\"next-step\" id=\"book\" style=\"display:none;\" data-gated=\"true\">\n            <h4>Book your free Roth conversion analysis<\/h4>\n            <p>Pick a time that works \u2014 no cost, no obligation. You'll speak with a Tax Smart Investing advisor.<\/p>\n            <a href=\"https:\/\/api.leadconnectorhq.com\/widget\/booking\/YppNg1kuTfev0fMiK61P\" target=\"_blank\" rel=\"noopener\" class=\"btn btn-primary\">Book Your Free Consultation \u2197<\/a>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- WHY US -->\n  <section id=\"why-us\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">Why Clients Work With Us<\/span>\n        <h2>The same conversion. Executed differently.<\/h2>\n      <\/div>\n      <div class=\"why-grid\">\n        <div class=\"why-card\">\n          <span class=\"mono-tag\">01 \u2014 ACCESS<\/span>\n          <h3>Institutional execution<\/h3>\n          <p>Your conversion is executed through institutional partners \u2014 not a retail bank, credit union, or brokerage \u2014 giving your account access most individual clients never see.<\/p>\n        <\/div>\n        <div class=\"why-card\">\n          <span class=\"mono-tag\">02 \u2014 DESIGN<\/span>\n          <h3>Built for lifetime tax exposure<\/h3>\n          <p>We size and schedule your conversion around your entire retirement \u2014 RMDs, IRMAA, Social Security taxation, and legacy plans \u2014 not just this year's return.<\/p>\n        <\/div>\n        <div class=\"why-card\">\n          <span class=\"mono-tag\">03 \u2014 EXECUTION<\/span>\n          <h3>Smarter, not different<\/h3>\n          <p>You were already planning this conversion. We make sure the structure behind it is working as hard as your money is.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"steps\">\n        <div class=\"step\">\n          <div class=\"step-num\">1<\/div>\n          <h4>Free Roth conversion analysis<\/h4>\n          <p>A short conversation to understand your accounts, timeline, and tax situation \u2014 no cost, no obligation.<\/p>\n        <\/div>\n        <div class=\"step\">\n          <div class=\"step-num\">2<\/div>\n          <h4>A custom multi-year plan<\/h4>\n          <p>A bracket-aware conversion schedule mapped to your specific numbers, income, and retirement timeline.<\/p>\n        <\/div>\n        <div class=\"step\">\n          <div class=\"step-num\">3<\/div>\n          <h4>Institutional execution &amp; monitoring<\/h4>\n          <p>Your plan is implemented and revisited every year as brackets, rules, and your circumstances change.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- FAQ -->\n  <section class=\"section-alt\" id=\"faq\">\n    <div class=\"wrap\">\n      <div class=\"section-head\">\n        <span class=\"eyebrow\">Common Questions<\/span>\n        <h2>Roth conversions, explained plainly.<\/h2>\n      <\/div>\n      <div class=\"faq-list\">\n        <details>\n          <summary>Is there an income limit on doing a Roth conversion? <span class=\"plus\">+<\/span><\/summary>\n          <p>No. Unlike direct Roth IRA contributions \u2014 which phase out at higher incomes \u2014 Roth conversions have no income limit and no dollar cap. That's true regardless of how much you earn.<\/p>\n        <\/details>\n        <details>\n          <summary>How do I pay the tax bill without hurting the conversion? <span class=\"plus\">+<\/span><\/summary>\n          <p>Paying the conversion's tax bill from outside savings \u2014 rather than from the IRA itself \u2014 lets the full converted amount move into the Roth and keep growing tax-free. Using IRA funds to cover the tax bill shrinks the very balance you're trying to grow.<\/p>\n        <\/details>\n        <details>\n          <summary>What is \"bracket filling\"? <span class=\"plus\">+<\/span><\/summary>\n          <p>It's the practice of converting just enough each year to use up the room left in your current tax bracket, without spilling into the next one \u2014 spreading a large conversion across several years instead of triggering a single, larger tax bill.<\/p>\n        <\/details>\n        <details>\n          <summary>Will a conversion affect my Medicare premiums? <span class=\"plus\">+<\/span><\/summary>\n          <p>It can. Conversion income raises your MAGI, which can trigger IRMAA surcharges on Medicare Part B and D premiums, on a two-year lookback. This is one of the variables a multi-year plan is built to manage.<\/p>\n        <\/details>\n        <details>\n          <summary>Is this a one-time decision? <span class=\"plus\">+<\/span><\/summary>\n          <p>Rarely. Most effective strategies are executed as a multi-year plan \u2014 converting measured amounts each year during lower-income years, then adjusting annually as income, tax law, and account values change.<\/p>\n        <\/details>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- FINAL CTA -->\n  <section class=\"final-cta\">\n    <div class=\"wrap\">\n      <span class=\"eyebrow\">Ready When You Are<\/span>\n      <h2>Your conversion is already happening. Let's make sure it's working as hard as it should.<\/h2>\n      <a href=\"#calculator\" class=\"btn btn-primary\">See What Your Conversion Could Look Like<\/a>\n    <\/div>\n  <\/section>\n\n<\/main>\n\n\n<script>\n  function fmt(n){ return '$' + Math.round(n).toLocaleString('en-US'); }\n\n  \/\/ ---------- Approximate 2026 federal marginal tax brackets ----------\n  \/\/ Source: IRS Rev. Proc. 2025-32 confirmed thresholds (10% bracket, 37%\n  \/\/ bracket top) with intermediate brackets approximated from published\n  \/\/ inflation adjustments. For illustration only \u2014 not tax advice.\n  const BRACKETS = {\n    single:  [[0,10],[12400,12],[50400,22],[105700,24],[201775,32],[256225,35],[640600,37]],\n    married: [[0,10],[24800,12],[100800,22],[211400,24],[403500,32],[512450,35],[768700,37]]\n  };\n  function marginalBracket(income, status){\n    const table = BRACKETS[status] || BRACKETS.married;\n    let rate = table[0][1];\n    for (const [threshold, r] of table){\n      if (income >= threshold) rate = r; else break;\n    }\n    return rate;\n  }\n\n  \/\/ ---------- Quiz state ----------\n  const answers = { balance: 500000, filingStatus: 'married', income: 150000, age: 62, retirement: null, medicare: null };\n  let currentStep = 1;\n  const TOTAL_STEPS = 6;\n\n  const qzProgressFill = document.getElementById('qzProgressFill');\n  const qzStepLabel = document.getElementById('qzStepLabel');\n\n  function showStep(n){\n    document.querySelectorAll('.qz-step').forEach(el => {\n      el.classList.toggle('active', parseInt(el.dataset.step, 10) === n);\n    });\n    currentStep = n;\n    qzProgressFill.style.width = Math.round((n \/ TOTAL_STEPS) * 100) + '%';\n    qzStepLabel.textContent = 'Step ' + n + ' of ' + TOTAL_STEPS;\n  }\n\n  document.querySelectorAll('.qz-next, .qz-back').forEach(btn => {\n    btn.addEventListener('click', () => showStep(parseInt(btn.dataset.goto, 10)));\n  });\n\n  \/\/ Balance slider\n  const balanceSlider = document.getElementById('balance');\n  const balanceOut = document.getElementById('balanceOut');\n  balanceSlider.addEventListener('input', () => {\n    answers.balance = parseInt(balanceSlider.value, 10);\n    balanceOut.textContent = fmt(answers.balance);\n  });\n\n  \/\/ Income slider + live bracket hint\n  const incomeSlider = document.getElementById('income');\n  const incomeOut = document.getElementById('incomeOut');\n  const bracketHint = document.getElementById('bracketHint');\n  function updateBracketHint(){\n    answers.income = parseInt(incomeSlider.value, 10);\n    incomeOut.textContent = fmt(answers.income);\n    const rate = marginalBracket(answers.income, answers.filingStatus);\n    bracketHint.innerHTML = 'That puts you in the approximate <strong>' + rate + '% federal bracket<\/strong>.*';\n  }\n  incomeSlider.addEventListener('input', updateBracketHint);\n\n  \/\/ Age\n  const ageInput = document.getElementById('age');\n  ageInput.addEventListener('input', () => {\n    let age = parseInt(ageInput.value, 10);\n    if (!isNaN(age)) answers.age = Math.min(Math.max(age, 35), 80);\n  });\n\n  \/\/ Card-select steps (filing status, retirement timing, medicare)\n  document.querySelectorAll('.qz-card').forEach(card => {\n    card.addEventListener('click', () => {\n      const field = card.dataset.field;\n      const value = card.dataset.value;\n      answers[field] = value;\n      \/\/ un-select siblings, select this one\n      card.parentElement.querySelectorAll('.qz-card').forEach(c => c.classList.remove('selected'));\n      card.classList.add('selected');\n      if (field === 'filingStatus') updateBracketHint();\n\n      \/\/ auto-advance after a short beat\n      setTimeout(() => {\n        if (currentStep === 6){\n          finishQuiz();\n        } else {\n          showStep(currentStep + 1);\n        }\n      }, 220);\n    });\n  });\n\n  \/\/ ---------- Finish quiz -> compute results + badges, show reveal ----------\n  const quizEl = document.getElementById('quiz');\n  const revealEl = document.getElementById('reveal');\n  const qzBadges = document.getElementById('qzBadges');\n  const tradResult = document.getElementById('tradResult');\n  const smartResult = document.getElementById('smartResult');\n  const diffResult = document.getElementById('diffResult');\n\n  function retirementLabel(v){\n    return { retired:'Already retired', soon:'Retiring within 5 yrs', later:'5\u201310 yrs away', far:'10+ yrs away' }[v] || '\u2014';\n  }\n\n  function finishQuiz(){\n    \/\/ Compute estimate (illustrative uplift model, anchored to the case\n    \/\/ study's $786k -> $1,000,000 ratio, ~27.2%, adjusted for conversion runway)\n    const baseUplift = 0.2723;\n    const yearsToRMD = Math.max(73 - answers.age, 1);\n    const runwayFactor = Math.min(Math.max(yearsToRMD \/ 11, 0.65), 1.25);\n    const statusFactor = answers.filingStatus === 'single' ? 0.95 : 1.0;\n    const uplift = baseUplift * runwayFactor * statusFactor;\n    const traditional = answers.balance;\n    const smart = answers.balance * (1 + uplift);\n\n    tradResult.textContent = fmt(traditional);\n    smartResult.textContent = fmt(smart);\n    diffResult.textContent = '+' + fmt(smart - traditional);\n\n    const bracket = marginalBracket(answers.income, answers.filingStatus);\n    const irmaaRelevant = answers.medicare === 'soon' || answers.medicare === 'on';\n    const windowLabel = answers.retirement === 'retired'\n      ? 'Window is open now'\n      : ('~' + yearsToRMD + ' yrs to RMDs');\n\n    qzBadges.innerHTML = [\n      '<span class=\"qz-badge\">Tax bracket: <strong>' + bracket + '%<\/strong><\/span>',\n      '<span class=\"qz-badge\">Conversion window: <strong>' + windowLabel + '<\/strong><\/span>',\n      '<span class=\"qz-badge\">IRMAA relevance: <strong>' + (irmaaRelevant ? 'Yes' : 'Not yet') + '<\/strong><\/span>'\n    ].join('');\n\n    \/\/ Full personalized profile \u2014 sent to GoHighLevel as the webhook\n    \/\/ payload when the lead form below is submitted:\n    window.calcContext = {\n      balance: answers.balance, age: answers.age, filingStatus: answers.filingStatus,\n      income: answers.income, taxBracket: bracket, retirementTimeline: answers.retirement,\n      medicareStatus: answers.medicare, irmaaRelevant, traditionalEstimate: Math.round(traditional),\n      smartEstimate: Math.round(smart)\n    };\n\n    quizEl.style.display = 'none';\n    revealEl.style.display = 'block';\n    revealEl.scrollIntoView({behavior:'smooth', block:'start'});\n  }\n\n  \/\/ ---------- Unlock gate: submit to GoHighLevel Inbound Webhook ----------\n  \/\/ Paste your GoHighLevel Inbound Webhook URL here (Automation \u2192 Workflows\n  \/\/ \u2192 your workflow \u2192 Inbound Webhook trigger \u2192 copy Webhook URL). See the\n  \/\/ setup comment in the HTML above the lead form for full instructions.\n  const GHL_WEBHOOK_URL = 'https:\/\/services.leadconnectorhq.com\/hooks\/qXzhJMiOeV5a7E55WRIN\/webhook-trigger\/bc499bb3-b418-4b12-8181-3316b24aacd0';\n\n  const unlockGate = document.getElementById('unlockGate');\n  const blurLayer = document.getElementById('blurLayer');\n  const leadForm = document.getElementById('leadForm');\n  const bookBlock = document.getElementById('book');\n\n  function revealResults(){\n    unlockGate.classList.add('hidden');\n    blurLayer.classList.add('revealed');\n    bookBlock.style.display = 'block';\n  }\n\n  leadForm.addEventListener('submit', async (e) => {\n    e.preventDefault();\n    const submitBtn = leadForm.querySelector('button[type=submit]');\n    submitBtn.disabled = true;\n    submitBtn.textContent = 'Submitting\u2026';\n\n    const payload = {\n      first_name: leadForm.first_name.value,\n      last_name: leadForm.last_name.value,\n      email: leadForm.email.value,\n      phone: leadForm.phone.value,\n      ...window.calcContext\n    };\n\n    let webhookFailed = false;\n    try {\n      \/\/ Standard CORS mode (not 'no-cors') \u2014 this is required so the browser\n      \/\/ actually sends Content-Type: application\/json as written, instead of\n      \/\/ silently downgrading it. GoHighLevel's Inbound Webhook endpoint is\n      \/\/ built to accept cross-origin submissions like this one.\n      const res = await fetch(GHL_WEBHOOK_URL, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application\/json' },\n        body: JSON.stringify(payload)\n      });\n      if (!res.ok) {\n        webhookFailed = true;\n        console.error('GoHighLevel webhook responded with status', res.status);\n      }\n    } catch (err) {\n      webhookFailed = true;\n      console.error('GoHighLevel webhook submission failed:', err);\n      \/\/ Still reveal results below so a network hiccup doesn't block the\n      \/\/ visitor \u2014 but double check GHL's execution log if this happens often.\n    }\n    if (webhookFailed) {\n      \/\/ Optional: surface a subtle note rather than blocking the visitor.\n      console.warn('Lead was not confirmed delivered to GoHighLevel. Data:', payload);\n    }\n\n    revealResults();\n    submitBtn.disabled = false;\n    submitBtn.textContent = 'Unlock My Full Snapshot';\n  });\n\n  \/\/ init\n  updateBracketHint();\n<\/script>\n<\/body>\n<\/html><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-243873","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/pages\/243873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/comments?post=243873"}],"version-history":[{"count":17,"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/pages\/243873\/revisions"}],"predecessor-version":[{"id":243896,"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/pages\/243873\/revisions\/243896"}],"wp:attachment":[{"href":"https:\/\/taxsmartinvesting.org\/es\/wp-json\/wp\/v2\/media?parent=243873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}