MiniMax MiniMax M3 – Personal Finance

via CoreWeave · Generated

  • AIMAC Debt 19.35
  • Cost $0.014
  • Total Violations 25
  • HTML Size 51 KB
  • Em Dashes 21

Screenshot

View MiniMax MiniMax M3 Personal Finance page View Live Page

Accessibility Issues Found

4 Critical 21 Serious

  • color-contrast serious 20 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span>Point</span>
  • label critical 4 instances

    Form elements must have labels

    Example HTML <input type="number" id="start" value="10000" min="0" step="500">
  • link-in-text-block serious 1 instance

    Links must be distinguishable without relying on color

    Example HTML <a href="#">Schedule a 15-minute call</a>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PillarPoint Financial — Strategic Wealth, Engineered for You</title>
<meta name="description" content="PillarPoint Financial helps you navigate investing, credit, retirement planning, tax optimization, and wealth building with clarity and confidence.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;800&family=Source+Sans+3:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
  :root{
    --navy:#0E2A47;
    --navy-dark:#091b30;
    --navy-soft:#163557;
    --gold:#C8A24B;
    --gold-soft:#E8C77A;
    --cream:#FAF6EE;
    --ink:#1a2533;
    --muted:#5b6878;
    --line:#e6e3da;
    --bg:#ffffff;
    --shadow:0 10px 30px rgba(14,42,71,.08);
    --shadow-lg:0 18px 50px rgba(14,42,71,.14);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:'Source Sans 3', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    color:var(--ink);
    background:var(--bg);
    line-height:1.65;
    font-size:17px;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:'Playfair Display', Georgia, serif;color:var(--navy);line-height:1.2;letter-spacing:-.01em}
  h1{font-size:clamp(2.4rem,4.6vw,3.8rem);font-weight:700}
  h2{font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:700;margin-bottom:.6em}
  h3{font-size:1.35rem;font-weight:600;margin-bottom:.4em}
  p{margin-bottom:1em}
  a{color:var(--navy);text-decoration:none;transition:color .2s}
  a:hover{color:var(--gold)}
  .container{max-width:1240px;margin:0 auto;padding:0 28px}

  /* ===== HEADER ===== */
  .topbar{
    background:var(--navy-dark);
    color:#cdd6e3;
    font-size:.85rem;
    padding:8px 0;
  }
  .topbar .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
  .topbar a{color:#cdd6e3}
  .topbar a:hover{color:var(--gold-soft)}
  .topbar .left{display:flex;gap:18px;align-items:center}
  .topbar .right{display:flex;gap:18px;align-items:center}
  .dot{width:7px;height:7px;border-radius:50%;background:#4ade80;display:inline-block;box-shadow:0 0 0 3px rgba(74,222,128,.18)}

  header.main{
    background:#fff;
    border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:50;
    backdrop-filter:saturate(180%) blur(8px);
    background:rgba(255,255,255,.92);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
  .logo{display:flex;align-items:center;gap:12px}
  .logo img{width:46px;height:46px;border-radius:8px;object-fit:cover}
  .logo .brand{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:700;color:var(--navy);letter-spacing:.01em}
  .logo .brand span{color:var(--gold)}
  .tag{display:block;font-size:.72rem;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-top:2px}

  nav.primary ul{list-style:none;display:flex;gap:6px;align-items:center}
  nav.primary a{
    display:inline-block;
    padding:10px 14px;
    color:var(--navy);
    font-weight:600;
    font-size:.95rem;
    border-radius:6px;
    position:relative;
  }
  nav.primary a:hover{background:var(--cream);color:var(--navy)}
  nav.primary a.active{color:var(--navy)}
  nav.primary a.active::after{
    content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--gold);
  }
  .nav-cta{display:flex;gap:10px;align-items:center}
  .btn{
    display:inline-block;
    padding:12px 22px;
    border-radius:8px;
    font-weight:600;
    font-size:.95rem;
    cursor:pointer;
    transition:all .2s ease;
    border:none;
    font-family:inherit;
    text-align:center;
  }
  .btn-primary{background:var(--gold);color:#1a1a1a}
  .btn-primary:hover{background:var(--gold-soft);transform:translateY(-1px);box-shadow:0 8px 20px rgba(200,162,75,.35);color:#1a1a1a}
  .btn-outline{background:transparent;border:1.5px solid var(--navy);color:var(--navy)}
  .btn-outline:hover{background:var(--navy);color:#fff}
  .btn-ghost{background:var(--cream);color:var(--navy)}
  .btn-ghost:hover{background:#f0e9d6}
  .btn-large{padding:16px 30px;font-size:1.02rem}
  .btn-block{display:block;width:100%}

  /* ===== HERO ===== */
  .hero{
    background:
      linear-gradient(135deg, rgba(14,42,71,.92) 0%, rgba(22,53,87,.85) 100%),
      url('https://picsum.photos/1600/900?blur=1') center/cover;
    color:#fff;
    padding:90px 0 110px;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse at 80% 20%, rgba(200,162,75,.18), transparent 60%);
    pointer-events:none;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.15fr 1fr;
    gap:60px;
    align-items:center;
    position:relative;
  }
  .hero .eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(200,162,75,.18);
    color:var(--gold-soft);
    padding:7px 14px;border-radius:30px;font-size:.82rem;font-weight:600;letter-spacing:.06em;
    margin-bottom:22px;text-transform:uppercase;
  }
  .hero h1{color:#fff;margin-bottom:22px}
  .hero h1 .accent{color:var(--gold-soft);font-style:italic}
  .hero p.lead{color:#dde6f2;font-size:1.18rem;max-width:560px;margin-bottom:34px}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap}
  .hero-stats{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
    margin-top:50px;padding-top:30px;border-top:1px solid rgba(255,255,255,.15);
  }
  .hero-stats div h4{color:#fff;font-family:'Source Sans 3',sans-serif;font-size:2.1rem;font-weight:700;margin-bottom:2px}
  .hero-stats div p{color:#aebbd0;font-size:.85rem;margin:0;letter-spacing:.04em}
  .hero-card{
    background:#fff;color:var(--ink);
    border-radius:14px;padding:30px;
    box-shadow:var(--shadow-lg);
    position:relative;
  }
  .hero-card::before{
    content:"";position:absolute;top:-12px;left:30px;width:60px;height:5px;background:var(--gold);border-radius:3px;
  }
  .hero-card .label{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
  .hero-card h3{font-size:1.4rem;margin:8px 0 18px;color:var(--navy)}
  .ticker-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:12px 0;border-bottom:1px solid var(--line);
  }
  .ticker-row:last-of-type{border-bottom:none}
  .ticker-row .name{font-weight:600;color:var(--navy)}
  .ticker-row .val{font-weight:600}
  .up{color:#1a7f5a}
  .down{color:#c0392b}
  .hero-card .small{font-size:.78rem;color:var(--muted)}
  .hero-card .footnote{
    margin-top:18px;padding-top:18px;border-top:1px solid var(--line);
    font-size:.78rem;color:var(--muted);font-style:italic;
  }

  /* ===== TRUST STRIP ===== */
  .trust-strip{
    background:var(--cream);
    padding:28px 0;
    border-bottom:1px solid var(--line);
  }
  .trust-strip .container{
    display:flex;justify-content:space-between;align-items:center;
    flex-wrap:wrap;gap:20px;
  }
  .trust-strip .lbl{color:var(--muted);font-weight:600;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}
  .trust-strip .logos{display:flex;gap:36px;flex-wrap:wrap;align-items:center;opacity:.7}
  .trust-strip .logos span{
    font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--navy);font-weight:700;letter-spacing:.04em;
  }

  /* ===== SECTION BASE ===== */
  section{padding:90px 0}
  .section-head{text-align:center;max-width:760px;margin:0 auto 60px}
  .section-head .eyebrow{
    display:inline-block;color:var(--gold);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.82rem;margin-bottom:14px;
  }
  .section-head p{color:var(--muted);font-size:1.08rem}

  /* ===== SERVICES GRID ===== */
  .services{background:#fff}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
  .card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    padding:32px 28px;
    transition:all .25s ease;
    position:relative;
    overflow:hidden;
  }
  .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
  .card .icon{
    width:54px;height:54px;border-radius:12px;
    background:linear-gradient(135deg,var(--navy),var(--navy-soft));
    color:var(--gold-soft);
    display:flex;align-items:center;justify-content:center;
    font-size:1.5rem;font-weight:700;
    margin-bottom:20px;
  }
  .card h3{margin-bottom:10px}
  .card p{color:var(--muted);font-size:.96rem;margin-bottom:18px}
  .card a.more{
    color:var(--gold);font-weight:700;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;
  }
  .card a.more:hover{color:var(--navy)}
  .card.featured{
    background:linear-gradient(160deg,var(--navy),var(--navy-soft));
    color:#fff;border:none;
  }
  .card.featured h3{color:#fff}
  .card.featured p{color:#cdd6e3}
  .card.featured .icon{background:rgba(200,162,75,.2);color:var(--gold-soft)}
  .card.featured a.more{color:var(--gold-soft)}

  /* ===== WEALTH BUILDING ===== */
  .wealth{background:var(--cream)}
  .two-col{
    display:grid;grid-template-columns:1fr 1.05fr;gap:60px;align-items:center;
  }
  .two-col.reverse{grid-template-columns:1.05fr 1fr}
  .two-col.reverse .text-col{order:2}
  .img-wrap{
    border-radius:16px;overflow:hidden;
    box-shadow:var(--shadow-lg);
    position:relative;
  }
  .img-wrap img{width:100%;height:100%;object-fit:cover;display:block;min-height:420px}
  .img-wrap .badge{
    position:absolute;bottom:20px;left:20px;
    background:rgba(255,255,255,.96);
    padding:14px 18px;border-radius:10px;
    box-shadow:var(--shadow);
    font-size:.85rem;color:var(--navy);font-weight:600;
    display:flex;align-items:center;gap:10px;
  }
  .img-wrap .badge strong{color:var(--gold);font-size:1.3rem;display:block;line-height:1}
  .text-col .eyebrow{
    color:var(--gold);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.82rem;margin-bottom:14px;display:block;
  }
  .text-col h2{margin-bottom:18px}
  .text-col p{color:var(--ink);font-size:1.04rem;margin-bottom:18px}
  .check-list{list-style:none;margin:24px 0 30px}
  .check-list li{
    padding-left:34px;position:relative;margin-bottom:14px;font-size:1.02rem;
  }
  .check-list li::before{
    content:"✓";position:absolute;left:0;top:0;
    width:24px;height:24px;border-radius:50%;
    background:var(--gold);color:#1a1a1a;
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.8rem;
  }

  /* ===== CALCULATOR ===== */
  .calculator{background:#fff}
  .calc-wrap{
    background:linear-gradient(135deg,#fff 50%, var(--cream) 50%);
    border-radius:20px;
    overflow:hidden;
    box-shadow:var(--shadow-lg);
    border:1px solid var(--line);
    display:grid;grid-template-columns:1fr 1fr;
  }
  .calc-form{padding:50px}
  .calc-result{
    padding:50px;background:var(--navy);color:#fff;
    display:flex;flex-direction:column;justify-content:center;
  }
  .calc-result h3{color:#fff;font-size:1.5rem;margin-bottom:24px}
  .result-big{
    font-size:3.2rem;font-family:'Playfair Display',serif;color:var(--gold-soft);font-weight:700;line-height:1;margin-bottom:8px;
  }
  .result-big small{font-size:1rem;color:#aebbd0;font-family:'Source Sans 3',sans-serif;font-weight:400;display:block;margin-top:6px}
  .result-row{
    display:flex;justify-content:space-between;
    padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);
    font-size:.96rem;
  }
  .result-row:last-of-type{border-bottom:none}
  .result-row span:last-child{font-weight:600;color:var(--gold-soft)}
  .field{margin-bottom:22px}
  .field label{display:block;font-weight:600;color:var(--navy);margin-bottom:8px;font-size:.95rem}
  .field label .v{float:right;color:var(--gold);font-weight:700}
  .field input[type="number"], .field input[type="text"]{
    width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:8px;font-size:1rem;font-family:inherit;color:var(--ink);background:#fff;
    transition:border .2s;
  }
  .field input:focus{outline:none;border-color:var(--gold)}
  .field input[type="range"]{
    width:100%;-webkit-appearance:none;height:6px;background:var(--line);border-radius:4px;outline:none;
  }
  .field input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--gold);cursor:pointer;border:3px solid #fff;box-shadow:var(--shadow);
  }
  .field input[type="range"]::-moz-range-thumb{
    width:22px;height:22px;border-radius:50%;background:var(--gold);cursor:pointer;border:3px solid #fff;box-shadow:var(--shadow);
  }
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}

  /* ===== INSURANCE ===== */
  .insurance{background:var(--cream)}
  .insurance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .ins-card{
    background:#fff;border-radius:14px;overflow:hidden;
    box-shadow:var(--shadow);transition:all .25s;
    border:1px solid var(--line);
  }
  .ins-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
  .ins-card img{width:100%;height:200px;object-fit:cover;display:block}
  .ins-card .body{padding:26px}
  .ins-card h3{margin-bottom:10px}
  .ins-card p{color:var(--muted);font-size:.96rem;margin-bottom:18px}
  .ins-card ul{list-style:none;margin-bottom:20px}
  .ins-card ul li{
    font-size:.92rem;color:var(--ink);padding:6px 0 6px 24px;position:relative;
  }
  .ins-card ul li::before{
    content:"›";position:absolute;left:6px;color:var(--gold);font-weight:700;font-size:1.1rem;
  }

  /* ===== TESTIMONIALS ===== */
  .testimonials{background:#fff}
  .test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .test{
    background:var(--cream);
    padding:34px 30px;border-radius:14px;
    border:1px solid var(--line);
    position:relative;
  }
  .test::before{
    content:"\201C";position:absolute;top:-12px;left:24px;
    font-family:'Playfair Display',serif;font-size:5rem;color:var(--gold);line-height:1;
  }
  .test p{font-style:italic;color:var(--ink);margin-bottom:22px;font-size:1.02rem}
  .test-author{display:flex;align-items:center;gap:14px}
  .test-author img{width:48px;height:48px;border-radius:50%;object-fit:cover}
  .test-author .meta strong{display:block;color:var(--navy);font-size:.98rem}
  .test-author .meta span{color:var(--muted);font-size:.85rem}
  .stars{color:var(--gold);margin-bottom:14px;letter-spacing:2px;font-size:1.05rem}

  /* ===== FAQ ===== */
  .faq{background:var(--cream)}
  .faq-list{max-width:880px;margin:0 auto}
  .faq-item{
    background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:14px;
    overflow:hidden;transition:all .2s;
  }
  .faq-item[open]{box-shadow:var(--shadow);border-color:transparent}
  .faq-item summary{
    padding:22px 26px;cursor:pointer;
    font-weight:600;color:var(--navy);font-size:1.05rem;
    list-style:none;display:flex;justify-content:space-between;align-items:center;
  }
  .faq-item summary::-webkit-details-marker{display:none}
  .faq-item summary::after{
    content:"+";font-size:1.6rem;color:var(--gold);font-weight:300;transition:transform .2s;
  }
  .faq-item[open] summary::after{content:"−"}
  .faq-item .answer{padding:0 26px 24px;color:var(--ink);font-size:1rem}

  /* ===== CTA BANNER ===== */
  .cta-banner{
    background:
      linear-gradient(135deg, rgba(14,42,71,.95), rgba(22,53,87,.92)),
      url('https://picsum.photos/1600/600?blur=2') center/cover fixed;
    color:#fff;
    text-align:center;
    padding:90px 0;
  }
  .cta-banner h2{color:#fff;margin-bottom:18px}
  .cta-banner p{color:#cdd6e3;font-size:1.12rem;max-width:640px;margin:0 auto 32px}
  .cta-banner .btn-primary{background:var(--gold);color:#1a1a1a}
  .cta-banner .btn-primary:hover{background:var(--gold-soft)}

  /* ===== FOOTER ===== */
  footer{
    background:var(--navy-dark);color:#aebbd0;
    padding:70px 0 0;font-size:.95rem;
  }
  .footer-grid{
    display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:40px;
    padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.08);
  }
  .footer-grid h4{
    color:#fff;font-family:'Source Sans 3',sans-serif;
    font-size:.9rem;font-weight:700;text-transform:uppercase;
    letter-spacing:.14em;margin-bottom:18px;
  }
  .footer-grid ul{list-style:none}
  .footer-grid ul li{margin-bottom:10px}
  .footer-grid a{color:#aebbd0;font-size:.95rem}
  .footer-grid a:hover{color:var(--gold-soft)}
  .footer-about .brand{
    font-family:'Playfair Display',serif;color:#fff;font-size:1.45rem;font-weight:700;display:block;margin-bottom:14px;
  }
  .footer-about .brand span{color:var(--gold)}
  .footer-about p{color:#aebbd0;margin-bottom:18px;font-size:.96rem;line-height:1.7}
  .social{display:flex;gap:10px}
  .social a{
    width:38px;height:38px;border-radius:8px;
    background:rgba(255,255,255,.06);
    display:flex;align-items:center;justify-content:center;
    color:#aebbd0;font-size:.85rem;font-weight:700;
  }
  .social a:hover{background:var(--gold);color:var(--navy-dark)}
  .newsletter input{
    width:100%;padding:12px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);
    background:rgba(255,255,255,.05);color:#fff;font-family:inherit;font-size:.95rem;margin-bottom:10px;
  }
  .newsletter input::placeholder{color:#7a8aa0}
  .newsletter input:focus{outline:none;border-color:var(--gold)}
  .newsletter button{
    width:100%;padding:12px;border:none;border-radius:8px;
    background:var(--gold);color:var(--navy-dark);font-weight:700;font-family:inherit;cursor:pointer;
  }
  .newsletter button:hover{background:var(--gold-soft)}
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
    padding:24px 0;color:#7a8aa0;font-size:.86rem;
  }
  .footer-bottom .links{display:flex;gap:18px}
  .footer-bottom .links a{color:#7a8aa0}
  .footer-bottom .links a:hover{color:var(--gold-soft)}

  /* ===== SIDEBAR (Resources aside) ===== */
  .resources{
    background:var(--cream);
  }
  .resources-layout{
    display:grid;grid-template-columns:1.4fr 1fr;gap:48px;
  }
  .resource-feature{
    background:#fff;border-radius:14px;padding:36px;box-shadow:var(--shadow);
  }
  .resource-feature img{width:100%;border-radius:10px;margin-bottom:20px;height:280px;object-fit:cover}
  .resource-feature .meta{color:var(--gold);font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;display:block}
  .resource-feature h3{font-size:1.5rem;margin-bottom:12px}
  .resource-feature p{color:var(--muted);margin-bottom:20px}
  .resource-list{list-style:none;margin-top:8px}
  .resource-list li{
    display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);
  }
  .resource-list li:last-child{border-bottom:none}
  .resource-list .thumb{width:90px;height:70px;border-radius:8px;flex-shrink:0;object-fit:cover}
  .resource-list h4{font-size:1.02rem;color:var(--navy);margin-bottom:4px;font-family:'Source Sans 3',sans-serif;font-weight:700}
  .resource-list .meta-sm{color:var(--muted);font-size:.82rem}

  aside.sidebar{
    background:#fff;border-radius:14px;padding:30px;
    box-shadow:var(--shadow);align-self:start;
  }
  aside.sidebar h3{
    font-size:1.15rem;margin-bottom:20px;padding-bottom:14px;border-bottom:2px solid var(--gold);
  }
  .tip{
    padding:18px;background:var(--cream);border-radius:10px;
    margin-bottom:16px;border-left:3px solid var(--gold);
  }
  .tip h4{font-size:1rem;color:var(--navy);font-family:'Source Sans 3',sans-serif;font-weight:700;margin-bottom:6px}
  .tip p{color:var(--ink);font-size:.92rem;margin:0}
  .trend-list{list-style:none;margin-bottom:24px}
  .trend-list li{
    padding:10px 0;border-bottom:1px solid var(--line);
    display:flex;justify-content:space-between;align-items:center;
  }
  .trend-list li:last-child{border-bottom:none}
  .trend-list .tag{font-size:.75rem;color:var(--gold);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
  .trend-list .title{color:var(--navy);font-weight:600;font-size:.95rem}

  /* ===== RESPONSIVE ===== */
  @media (max-width: 980px){
    .hero-grid, .two-col, .two-col.reverse, .calc-wrap, .resources-layout{grid-template-columns:1fr}
    .two-col.reverse .text-col{order:0}
    .grid-3, .grid-4, .test-grid, .insurance-grid, .footer-grid{grid-template-columns:1fr 1fr}
    .hero-stats{grid-template-columns:1fr 1fr 1fr}
    nav.primary ul{display:none}
    section{padding:60px 0}
    .hero{padding:60px 0 80px}
  }
  @media (max-width: 600px){
    .grid-3, .grid-4, .test-grid, .insurance-grid, .footer-grid{grid-template-columns:1fr}
    .hero-stats{grid-template-columns:1fr}
    .field-row{grid-template-columns:1fr}
    .calc-form, .calc-result{padding:32px 24px}
    .container{padding:0 20px}
    .nav{flex-wrap:wrap;gap:14px}
    .nav-cta{width:100%;justify-content:flex-start}
  }
</style>
</head>
<body>

<!-- ============ TOP UTILITY BAR ============ -->
<div class="topbar">
  <div class="container">
    <div class="left">
      <span><span class="dot"></span> Markets Open — NYSE &amp; NASDAQ Trading</span>
    </div>
    <div class="right">
      <a href="#">Client Portal</a>
      <a href="#">Schedule a Call</a>
      <a href="tel:+18005551234">📞 1-800-555-1234</a>
    </div>
  </div>
</div>

<!-- ============ HEADER ============ -->
<header class="main">
  <div class="container">
    <div class="nav">
      <div class="logo">
        <img src="https://placehold.co/92x92/0E2A47/C8A24B?text=PP&font=playfair%20display" alt="PillarPoint Financial logo">
        <div>
          <div class="brand">Pillar<span>Point</span></div>
          <div class="tag">Financial · Wealth · Legacy</div>
        </div>
      </div>
      <nav class="primary">
        <ul>
          <li><a href="#" class="active">Home</a></li>
          <li><a href="#investment">Investment</a></li>
          <li><a href="#credit">Credit</a></li>
          <li><a href="#retirement">Retirement</a></li>
          <li><a href="#insurance">Insurance</a></li>
          <li><a href="#resources">Resources</a></li>
          <li><a href="#about">About</a></li>
        </ul>
      </nav>
      <div class="nav-cta">
        <a href="#calc" class="btn btn-ghost">Calculator</a>
        <a href="#open" class="btn btn-primary">Open Account</a>
      </div>
    </div>
  </div>
</header>

<!-- ============ HERO ============ -->
<section class="hero">
  <div class="container">
    <div class="hero-grid">
      <div>
        <span class="eyebrow">★ Trusted by 142,000+ households</span>
        <h1>Build a <span class="accent">financial blueprint</span> that actually works for your life.</h1>
        <p class="lead">PillarPoint Financial brings together investment management, credit strategy, retirement planning, and tax optimization under one disciplined framework — so every dollar you earn works harder, longer, and smarter.</p>
        <div class="hero-actions">
          <a href="#open" class="btn btn-primary btn-large">Open an Account</a>
          <a href="#guide" class="btn btn-outline btn-large" style="background:transparent;border-color:rgba(255,255,255,.4);color:#fff">Download the 2026 Wealth Guide</a>
        </div>
        <div class="hero-stats">
          <div>
            <h4>$8.4B</h4>
            <p>Assets under advisement</p>
          </div>
          <div>
            <h4>14 yrs</h4>
            <p>Average client tenure</p>
          </div>
          <div>
            <h4>4.9 / 5</h4>
            <p>Independent client rating</p>
          </div>
        </div>
      </div>
      <div class="hero-card">
        <div class="label">Live · Market Snapshot</div>
        <h3>Today's Movers</h3>
        <div class="ticker-row">
          <div>
            <div class="name">S&amp;P 500</div>
            <div class="small">Index · SPX</div>
          </div>
          <div class="up">5,184.40 <span style="font-size:.8rem">+0.62%</span></div>
        </div>
        <div class="ticker-row">
          <div>
            <div class="name">Nasdaq Composite</div>
            <div class="small">Index · IXIC</div>
          </div>
          <div class="up">16,420.12 <span style="font-size:.8rem">+0.84%</span></div>
        </div>
        <div class="ticker-row">
          <div>
            <div class="name">10-Yr Treasury Yield</div>
            <div class="small">Fixed Income · DGS10</div>
          </div>
          <div class="down">4.18% <span style="font-size:.8rem">-0.03</span></div>
        </div>
        <div class="ticker-row">
          <div>
            <div class="name">PP Conservative ETF</div>
            <div class="small">PillarPoint · PPCNX</div>
          </div>
          <div class="up">$58.27 <span style="font-size:.8rem">+0.41%</span></div>
        </div>
        <div class="footnote">Illustrative snapshot. Returns not guaranteed. Past performance does not predict future results.</div>
      </div>
    </div>
  </div>
</section>

<!-- ============ TRUST STRIP ============ -->
<div class="trust-strip">
  <div class="container">
    <span class="lbl">Featured in</span>
    <div class="logos">
      <span>Forbes</span>
      <span>Bloomberg</span>
      <span>The Wall Street Journal</span>
      <span>NerdWallet</span>
      <span>MarketWatch</span>
    </div>
  </div>
</div>

<!-- ============ SERVICES GRID ============ -->
<section class="services" id="investment">
  <div class="container">
    <div class="section-head">
      <span class="eyebrow">Our Core Services</span>
      <h2>Everything your financial life needs, under one roof.</h2>
      <p>Whether you're starting your first brokerage account or restructuring a seven-figure portfolio, our advisors build strategies around your goals — not product quotas.</p>
    </div>
    <div class="grid-3">
      <div class="card">
        <div class="icon">📈</div>
        <h3>Investment Management</h3>
        <p>Diversified portfolio construction across equities, fixed income, ETFs, and alternatives — built around disciplined asset allocation and your personal risk tolerance.</p>
        <a href="#" class="more">Explore Investment →</a>
      </div>
      <div class="card">
        <div class="icon">💳</div>
        <h3>Credit &amp; Debt Strategy</h3>
        <p>Optimize utilization, refinance at the right moment, and structure amortization schedules that compress years off high-interest debt while protecting your credit profile.</p>
        <a href="#" class="more">Plan Your Debt Payoff →</a>
      </div>
      <div class="card featured">
        <div class="icon">🏡</div>
        <h3>Retirement Planning</h3>
        <p>Build a tax-diversified retirement strategy across 401(k), IRA, Roth, and taxable brokerage accounts — designed to deliver predictable income from age 50 through 95.</p>
        <a href="#" class="more">Plan Your Retirement →</a>
      </div>
      <div class="card">
        <div class="icon">🛡️</div>
        <h3>Insurance Solutions</h3>
        <p>Right-sized life, disability, and long-term care coverage that protects your income, your family, and the legacy you're building — without overpaying for bells and whistles.</p>
        <a href="#" class="more">Compare Coverage →</a>
      </div>
      <div class="card">
        <div class="icon">📋</div>
        <h3>Tax Optimization</h3>
        <p>Strategic harvesting, Roth conversions, and entity structuring that can return 1–3% annually to your bottom line through legally minimized tax exposure.</p>
        <a href="#" class="more">See Tax Strategies →</a>
      </div>
      <div class="card">
        <div class="icon">🎯</div>
        <h3>Goal-Based Planning</h3>
        <p>Buying a home? Funding education? Early retirement? We model each milestone with scenario planning and cash-flow projections so the path is clear and measurable.</p>
        <a href="#" class="more">Define Your Goals →</a>
      </div>
    </div>
  </div>
</section>

<!-- ============ WEALTH BUILDING ============ -->
<section class="wealth" id="retirement">
  <div class="container">
    <div class="two-col">
      <div class="img-wrap">
        <img src="https://picsum.photos/700/520?grayscale" alt="Family reviewing financial plan">
        <div class="badge">
          <div>
            <strong>+247%</strong>
            <span style="font-size:.75rem;color:var(--muted);font-weight:500">10-yr avg. balanced portfolio</span>
          </div>
        </div>
      </div>
      <div class="text-col">
        <span class="eyebrow">Wealth Building</span>
        <h2>Time, discipline, and compounding — the three pillars of lasting wealth.</h2>
        <p>Most investors focus on which stocks to pick. The households that actually build generational wealth focus on something different entirely: <strong>behavior</strong>. They automate contributions, rebalance on a schedule, and avoid reacting to market noise.</p>
        <p>Our wealth-building framework rests on three time-tested pillars — consistent contributions, strategic asset allocation, and tax-efficient withdrawal sequencing. We help you build a plan that doesn't require you to be right about the market; it only requires you to stay the course.</p>
        <ul class="check-list">
          <li>Automated dollar-cost averaging into diversified index and active sleeves</li>
          <li>Tax-loss harvesting across taxable accounts to offset realized gains</li>
          <li>Glide-path rebalancing as you approach major life transitions</li>
          <li>Estate planning coordination with your attorney and CPA</li>
        </ul>
        <a href="#open" class="btn btn-primary">Start Your Wealth Plan</a>
      </div>
    </div>
  </div>
</section>

<!-- ============ CALCULATOR ============ -->
<section class="calculator" id="calc">
  <div class="container">
    <div class="section-head">
      <span class="eyebrow">Interactive Tool</span>
      <h2>See how fast your savings can grow.</h2>
      <p>Adjust the sliders to model your contribution, timeline, and expected return. We'll project your future balance in real time.</p>
    </div>

    <div class="calc-wrap">
      <div class="calc-form">
        <div class="field-row">
          <div class="field">
            <label>Starting Balance <span class="v" id="vStart">$10,000</span></label>
            <input type="number" id="start" value="10000" min="0" step="500">
          </div>
          <div class="field">
            <label>Monthly Contribution <span class="v" id="vMonthly">$750</span></label>
            <input type="number" id="monthly" value="750" min="0" step="50">
          </div>
        </div>
        <div class="field">
          <label>Years to Grow <span class="v" id="vYears">20 yrs</span></label>
          <input type="range" id="years" min="1" max="50" value="20">
        </div>
        <div class="field">
          <label>Expected Annual Return <span class="v" id="vRate">7.0%</span></label>
          <input type="range" id="rate" min="1" max="12" value="7" step="0.1">
        </div>
        <div style="background:var(--cream);padding:18px;border-radius:10px;font-size:.9rem;color:var(--muted);margin-top:10px">
          💡 <strong style="color:var(--navy)">Tip:</strong> Most long-term diversified portfolios historically return 6–8% annually after inflation. Adjust based on your asset allocation strategy.
        </div>
      </div>
      <div class="calc-result">
        <h3>Your Projected Balance</h3>
        <div class="result-big" id="rBalance">$0<small id="rDate">at year 20</small></div>
        <div style="margin-top:24px">
          <div class="result-row"><span>Total Contributions</span><span id="rContrib">$0</span></div>
          <div class="result-row"><span>Interest Earned</span><span id="rInterest">$0</span></div>
          <div class="result-row"><span>Effective CAGR</span><span id="rCagr">0%</span></div>
        </div>
        <a href="#open" class="btn btn-primary" style="margin-top:28px">Open a Saving Account</a>
      </div>
    </div>
  </div>
</section>

<!-- ============ INSURANCE ============ -->
<section class="insurance" id="insurance">
  <div class="container">
    <div class="section-head">
      <span class="eyebrow">Insurance Options</span>
      <h2>Coverage that protects what you've built.</h2>
      <p>The right insurance isn't about buying more policies — it's about closing the specific gaps that could derail your financial plan. We audit your coverage holistically and recommend only what's necessary.</p>
    </div>
    <div class="insurance-grid">
      <div class="ins-card">
        <img src="https://picsum.photos/420/240?random=21" alt="Life insurance planning">
        <div class="body">
          <h3>Life Insurance</h3>
          <p>Term, whole, and universal life policies sized to your actual income-replacement need — not what an agent wants to sell.</p>
          <ul>
            <li>10, 20, and 30-year term options</li>
            <li>Permanent coverage with cash value</li>
            <li>No-medical-exam underwriting</li>
          </ul>
          <a href="#" class="btn btn-outline btn-block">Get a Quote</a>
        </div>
      </div>
      <div class="ins-card">
        <img src="https://picsum.photos/420/240?random=22" alt="Disability insurance">
        <div class="body">
          <h3>Disability &amp; Income Protection</h3>
          <p>Your ability to earn is your largest asset. Protect it with short- and long-term disability coverage designed for professionals and business owners.</p>
          <ul>
            <li>60–70% income replacement</li>
            <li>Own-occupation definitions</li>
            <li>Portable coverage options</li>
          </ul>
          <a href="#" class="btn btn-outline btn-block">Compare Plans</a>
        </div>
      </div>
      <div class="ins-card">
        <img src="https://picsum.photos/420/240?random=23" alt="Long-term care planning">
        <div class="body">
          <h3>Long-Term Care</h3>
          <p>Hybrid life/LTC policies and standalone plans that shield your retirement savings from the cost of extended care — currently averaging $110,000 per year.</p>
          <ul>
            <li>Traditional LTC insurance</li>
            <li>Hybrid life + LTC products</li>
            <li>Asset-based protection</li>
          </ul>
          <a href="#" class="btn btn-outline btn-block">Learn More</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ============ CREDIT SECTION ============ -->
<section class="wealth" id="credit" style="background:#fff">
  <div class="container">
    <div class="two-col reverse">
      <div class="img-wrap">
        <img src="https://picsum.photos/700/520?random=33" alt="Credit score monitoring">
        <div class="badge">
          <div>
            <strong>↑ 92 pts</strong>
            <span style="font-size:.75rem;color:var(--muted);font-weight:500">Avg. FICO lift in 8 months</span>
          </div>
        </div>
      </div>
      <div class="text-col">
        <span class="eyebrow">Credit Strategy</span>
        <h2>Your credit score is a financial lever. Use it intentionally.</h2>
        <p>A strong credit profile isn't built by accident — it's engineered through deliberate sequencing of payments, utilization ratios, and strategic new credit. The households with the lowest borrowing costs treat their FICO score as a maintenance discipline, not a mystery.</p>
        <p>Our credit specialists work with you to optimize utilization below 9%, dispute inaccurate reporting, and structure new credit applications to maximize score gains without triggering hard-inquiry damage. The result: lower mortgage rates, better insurance premiums, and access to the most rewarding rewards cards.</p>
        <ul class="check-list">
          <li>Tri-bureau credit report analysis and dispute handling</li>
          <li>Custom debt amortization schedule to compress payoff timeline</li>
          <li>Pre-qualification modeling for major purchases</li>
          <li>Ongoing monitoring with quarterly score reviews</li>
        </ul>
        <a href="#" class="btn btn-primary">Run a Credit Review</a>
      </div>
    </div>
  </div>
</section>

<!-- ============ RESOURCES + SIDEBAR ============ -->
<section class="resources" id="resources">
  <div class="container">
    <div class="section-head">
      <span class="eyebrow">Insights &amp; Education</span>
      <h2>Resources to sharpen every financial decision.</h2>
      <p>From beginner guides to advanced planning tactics, our library is updated weekly by CFP®-credentialed advisors and reviewed by independent auditors.</p>
    </div>
    <div class="resources-layout">
      <div>
        <article class="resource-feature">
          <img src="https://picsum.photos/800/360?random=44" alt="Featured guide">
          <span class="meta">Featured Guide · 38 pages</span>
          <h3>The 2026 Complete Guide to Asset Allocation</h3>
          <p>Modern portfolio theory has evolved. This guide covers strategic vs. tactical allocation, factor investing, and how to build a glide path that adapts to your life stage. Includes worksheets for rebalancing, risk tolerance scoring, and tax-loss harvesting calendars.</p>
          <a href="#" class="btn btn-primary">Download Free Guide</a>
        </article>

        <h3 style="margin-top:50px;margin-bottom:6px;font-size:1.5rem">Latest from the Blog</h3>
        <p style="color:var(--muted);margin-bottom:20px">Actionable writing from our research desk.</p>
        <ul class="resource-list">
          <li>
            <img class="thumb" src="https://picsum.photos/180/140?random=51" alt="">
            <div>
              <h4>Roth Conversion Ladders in a Lower-Tax Year</h4>
              <div class="meta-sm">Tax Planning · 7 min read · Jan 14</div>
            </div>
          </li>
          <li>
            <img class="thumb" src="https://picsum.photos/180/140?random=52" alt="">
            <div>
              <h4>Why Your Emergency Fund Should Live in a HYSA, Not a Brokerage</h4>
              <div class="meta-sm">Savings Strategy · 5 min read · Jan 09</div>
            </div>
          </li>
          <li>
            <img class="thumb" src="https://picsum.photos/180/140?random=53" alt="">
            <div>
              <h4>Amortization, Explained: How Interest Really Compounds Against You</h4>
              <div class="meta-sm">Debt Management · 9 min read · Jan 03</div>
            </div>
          </li>
          <li>
            <img class="thumb" src="https://picsum.photos/180/140?random=54" alt="">
            <div>
              <h4>Five Money Conversations Every Couple Should Have in Year One</h4>
              <div class="meta-sm">Financial Planning · 6 min read · Dec 28</div>
            </div>
          </li>
        </ul>
      </div>

      <aside class="sidebar">
        <h3>Trending Topics</h3>
        <ul class="trend-list">
          <li>
            <span class="title">Roth conversions before year-end</span>
            <span class="tag">Tax</span>
          </li>
          <li>
            <span class="title">I-bond rates &amp; inflation hedges</span>
            <span class="tag">Savings</span>
          </li>
          <li>
            <span class="title">Backdoor Roth IRA strategy</span>
            <span class="tag">Retirement</span>
          </li>
          <li>
            <span class="title">HELOC vs. cash-out refinance</span>
            <span class="tag">Credit</span>
          </li>
          <li>
            <span class="title">529 to Roth IRA rollover</span>
            <span class="tag">Education</span>
          </li>
        </ul>

        <h3 style="margin-top:30px">Planning Tips</h3>
        <div class="tip">
          <h4>🎯 Automate everything</h4>
          <p>Set up automatic transfers on payday. Decisions you don't have to make are decisions you won't skip.</p>
        </div>
        <div class="tip">
          <h4>📅 Rebalance quarterly</h4>
          <p>Calendar-based rebalancing removes emotion from the equation and has historically improved risk-adjusted returns.</p>
        </div>
        <div class="tip">
          <h4>🧾 Track your net worth monthly</h4>
          <p>You can't optimize what you don't measure. A 15-minute monthly check-in compounds into real awareness.</p>
        </div>

        <div style="margin-top:30px;background:var(--navy);color:#fff;padding:24px;border-radius:12px;text-align:center">
          <div style="font-family:'Playfair Display',serif;font-size:1.25rem;margin-bottom:10px;color:#fff">Free Portfolio Review</div>
          <p style="color:#cdd6e3;font-size:.9rem;margin-bottom:16px">30-minute call with a CFP®. No obligation.</p>
          <a href="#" class="btn btn-primary btn-block">Book a Call</a>
        </div>
      </aside>
    </div>
  </div>
</section>

<!-- ============ TESTIMONIALS ============ -->
<section class="testimonials">
  <div class="container">
    <div class="section-head">
      <span class="eyebrow">Client Stories</span>
      <h2>Trusted by households across all 50 states.</h2>
      <p>From first-time savers to high-net-worth families, our clients share why they chose PillarPoint to guide their most important financial decisions.</p>
    </div>
    <div class="test-grid">
      <div class="test">
        <div class="stars">★★★★★</div>
        <p>"For the first time in my life, I understand exactly where my money is going and why. The team rebuilt our asset allocation from scratch and walked us through every assumption. We've already seen the results."</p>
        <div class="test-author">
          <img src="https://i.pravatar.cc/120?u=marcus" alt="">
          <div class="meta">
            <strong>Marcus &amp; Lena Whitfield</strong>
            <span>Clients since 2019 · Raleigh, NC</span>
          </div>
        </div>
      </div>
      <div class="test">
        <div class="stars">★★★★★</div>
        <p>"I came to PillarPoint with $38,000 in credit card debt and no retirement savings. Three years later, I'm debt-free except for my mortgage, maxing my 401(k), and on track to retire at 58. The amortization plan alone changed everything."</p>
        <div class="test-author">
          <img src="https://i.pravatar.cc/120?u=priya" alt="">
          <div class="meta">
            <strong>Priya Sandhu</strong>
            <span>Client since 2022 · Austin, TX</span>
          </div>
        </div>
      </div>
      <div class="test">
        <div class="stars">★★★★★</div>
        <p>"As a small business owner, my finances were tangled with my company's. PillarPoint untangled them, structured my retirement properly, and showed me tax optimization strategies I didn't know existed. They earned every basis point."</p>
        <div class="test-author">
          <img src="https://i.pravatar.cc/120?u=derek" alt="">
          <div class="meta">
            <strong>Derek Holmberg</strong>
            <span>Business owner · Denver, CO</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ============ FAQ ============ -->
<section class="faq">
  <div class="container">
    <div class="section-head">
      <span class="eyebrow">Common Questions</span>
      <h2>Answers to what people ask us most.</h2>
      <p>Can't find what you're looking for? <a href="#">Schedule a 15-minute call</a> with a planner at no cost.</p>
    </div>
    <div class="faq-list">
      <details class="faq-item" open>
        <summary>How is PillarPoint different from a traditional brokerage?</summary>
        <div class="answer">
          <p>Most brokerages earn commissions when you trade, which can create a conflict of interest. PillarPoint operates on a flat advisory fee — typically 0.65% to 0.95% of assets under management — meaning we're compensated for keeping you on track, not for generating transactions. Every recommendation we make is filtered through a fiduciary standard.</p>
        </div>
      </details>
      <details class="faq-item">
        <summary>What's the minimum investment to start working with you?</summary>
        <div class="answer">
          <p>Our core investment platform has no minimum — you can open a brokerage or retirement account with as little as $100. Our full-service wealth management with dedicated advisor access begins at $250,000 in investable assets. For households below that threshold, our digital planning tools and group coaching sessions deliver most of the same framework at a fraction of the cost.</p>
        </div>
      </details>
      <details class="faq-item">
        <summary>Do you only work with people who already have money?</summary>
        <div class="answer">
          <p>Not at all. Many of our most successful clients started with us in their 20s with less than $5,000. We specialize in helping people in the wealth-building phase — the decade or two where small, disciplined decisions compound into the largest gains. Our budgeting tools, credit optimization, and starter investment accounts are designed for exactly this stage.</p>
        </div>
      </details>
      <details class="faq-item">
        <summary>Are you a fiduciary? How do I know you're acting in my interest?</summary>
        <div class="answer">
          <p>Yes — PillarPoint advisors are legally bound to a fiduciary standard under both SEC and state regulations. This means we are required to recommend what is best for you, even if it means recommending a competitor's product or no product at all. Our fee structure, disclosure documents, and Form ADV are publicly available on our compliance page.</p>
        </div>
      </details>
      <details class="faq-item">
        <summary>How do you handle taxes and do I need my own CPA?</summary>
        <div class="answer">
          <p>We coordinate directly with your CPA or tax preparer to implement tax-loss harvesting, Roth conversions, asset location, and year-end planning. If you don't currently have a tax professional, we maintain a vetted network of CPAs and Enrolled Agents we can refer you to — there's no referral fee and no kickback. Our goal is to be one spoke in a well-built financial team.</p>
        </div>
      </details>
      <details class="faq-item">
        <summary>What happens to my account if I switch advisors or move?</summary>
        <div class="answer">
          <p>Your accounts are portable. If you decide PillarPoint isn't the right fit, we handle the entire transfer paperwork at no cost and your assets stay invested throughout the process. We work hard to earn your loyalty every quarter — and we're honest about when a different firm might serve you better.</p>
        </div>
      </details>
    </div>
  </div>
</section>

<!-- ============ CTA BANNER ============ -->
<section class="cta-banner" id="open">
  <div class="container">
    <h2>Your financial blueprint is waiting.</h2>
    <p>Open an account in under 10 minutes, or schedule a complimentary 30-minute review with a CFP®-credentialed advisor. No commitment, no pressure, no commissions.</p>
    <div class="hero-actions" style="justify-content:center">
      <a href="#" class="btn btn-primary btn-large">Open Your Account</a>
      <a href="#" class="btn btn-large" style="background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.3)">Book a Free Review</a>
    </div>
  </div>
</section>

<!-- ============ FOOTER ============ -->
<footer id="about">
  <div class="container">
    <div class="footer-grid">
      <div class="footer-about">
        <span class="brand">Pillar<span>Point</span></span>
        <p>PillarPoint Financial is an independent, fee-only Registered Investment Advisor helping individuals and families build disciplined, tax-efficient wealth since 2009. Headquartered in Boston with advisors serving clients nationwide.</p>
        <div class="social">
          <a href="#" aria-label="LinkedIn">in</a>
          <a href="#" aria-label="Twitter">X</a>
          <a href="#" aria-label="Facebook">f</a>
          <a href="#" aria-label="YouTube">▶</a>
          <a href="#" aria-label="Instagram">◎</a>
        </div>
      </div>

      <div>
        <h4>Services</h4>
        <ul>
          <li><a href="#">Investment Management</a></li>
          <li><a href="#">Retirement Planning</a></li>
          <li><a href="#">Credit &amp; Debt</a></li>
          <li><a href="#">Tax Optimization</a></li>
          <li><a href="#">Insurance</a></li>
          <li><a href="#">Estate Planning</a></li>
        </ul>
      </div>

      <div>
        <h4>Resources</h4>
        <ul>
          <li><a href="#">Wealth Guide 2026</a></li>
          <li><a href="#">Blog &amp; Insights</a></li>
          <li><a href="#">Calculators</a></li>
          <li><a href="#">Glossary</a></li>
          <li><a href="#">Webinars</a></li>
          <li><a href="#">Newsletter</a></li>
        </ul>
      </div>

      <div>
        <h4>Company</h4>
        <ul>
          <li><a href="#">About Us</a></li>
          <li><a href="#">Our Advisors</a></li>
          <li><a href="#">Careers</a></li>
          <li><a href="#">Press</a></li>
          <li><a href="#">Contact</a></li>
          <li><a href="#">Compliance</a></li>
        </ul>
      </div>

      <div class="newsletter">
        <h4>The PillarPoint Brief</h4>
        <p style="color:#aebbd0;font-size:.92rem;margin-bottom:16px">Weekly market commentary and planning insights from our research desk. No spam — unsubscribe anytime.</p>
        <input type="email" placeholder="your@email.com">
        <button>Subscribe</button>
        <p style="font-size:.78rem;color:#7a8aa0;margin-top:14px">By subscribing you agree to our Privacy Policy. We never sell your data.</p>
      </div>
    </div>

    <div class="footer-bottom">
      <div>
        © 2026 PillarPoint Financial, LLC. All rights reserved. · 200 Clarendon Street, 51st Floor, Boston, MA 02116
      </div>
      <div class="links">
        <a href="#">Privacy Policy</a>
        <a href="#">Terms of Service</a>
        <a href="#">Form ADV</a>
        <a href="#">Disclosures</a>
        <a href="#">Accessibility</a>
      </div>
    </div>
  </div>
</footer>

<script>
  // ===== SAVINGS CALCULATOR =====
  const $ = id => document.getElementById(id);
  const fmt = n => '$' + Math.round(n).toLocaleString('en-US');

  function calc(){
    const start   = parseFloat($('start').value)   || 0;
    const monthly = parseFloat($('monthly').value) || 0;
    const years   = parseInt($('years').value, 10);
    const rate    = parseFloat($('rate').value);

    $('vStart').textContent   = fmt(start);
    $('vMonthly').textContent = fmt(monthly);
    $('vYears').textContent   = years + ' yrs';
    $('vRate').textContent    = rate.toFixed(1) + '%';

    const r = rate / 100 / 12;
    const n = years * 12;
    const futureValue = start * Math.pow(1 + r, n)
                      + monthly * ((Math.pow(1 + r, n) - 1) / r);
    const totalContrib = start + monthly * n;
    const interest = futureValue - totalContrib;
    const cagr = years > 0 ? (Math.pow(futureValue / Math.max(totalContrib,1), 1/years) - 1) * 100 : 0;

    $('rBalance').innerHTML = fmt(futureValue) + `<small>at year ${years}</small>`;
    $('rContrib').textContent = fmt(totalContrib);
    $('rInterest').textContent = fmt(interest);
    $('rCagr').textContent = (isFinite(cagr) ? cagr.toFixed(2) : '0.00') + '%';
  }

  ['start','monthly','years','rate'].forEach(id => {
    const el = $(id);
    el.addEventListener('input', calc);
    el.addEventListener('change', calc);
  });
  calc();
</script>
</body>
</html>
View Axe Report (JSON)
{
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.2"
  },
  "testRunner": {
    "name": "axe"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
    "windowWidth": 1280,
    "windowHeight": 720,
    "orientationAngle": 0,
    "orientationType": "landscape-primary"
  },
  "timestamp": "2026-11-12T09:42:02.044Z",
  "url": "https://benchmark.aimac.invalid/a93ca6f0d3e009c791749e0e78ae1a365f852d1a1dff64018c3cc135bbaa6112.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "duplicate-id-aria",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"LinkedIn\">in</a>",
          "target": [
            "a[aria-label=\"LinkedIn\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"LinkedIn\">in</a>",
          "target": [
            "a[aria-label=\"LinkedIn\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body>",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"LinkedIn\">in</a>",
          "target": [
            "a[aria-label=\"LinkedIn\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"LinkedIn\">in</a>",
          "target": [
            "a[aria-label=\"LinkedIn\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"LinkedIn\">in</a>",
          "target": [
            "a[aria-label=\"LinkedIn\"]"
          ]
        }
      ]
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "important-letter-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-word-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-line-height",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "line-height in the style attribute is not set to !important, or meets the minimum"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#guide\" class=\"btn btn-outline btn-large\" style=\"background:transparent;border-color:rgba(255,255,255,.4);color:#fff\">Download the 2026 Wealth Guide</a>",
          "target": [
            "a[href$=\"#guide\"]"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has inner text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button>Subscribe</button>",
          "target": [
            "button"
          ]
        }
      ]
    },
    {
      "id": "bypass",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "internal-link-present",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Valid skip link found"
            },
            {
              "id": "header-present",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Build a <span class=\"accent\">financial blueprint</span> that actually works for your life.</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h4>$8.4B</h4>",
                  "target": [
                    "div:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h4>14 yrs</h4>",
                  "target": [
                    ".hero-stats > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>4.9 / 5</h4>",
                  "target": [
                    ".hero-stats > div:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h3>Today's Movers</h3>",
                  "target": [
                    ".hero-card > h3"
                  ]
                },
                {
                  "html": "<h2>Everything your financial life needs, under one roof.</h2>",
                  "target": [
                    "#investment > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3>Investment Management</h3>",
                  "target": [
                    ".card:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Credit &amp; Debt Strategy</h3>",
                  "target": [
                    ".card:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Retirement Planning</h3>",
                  "target": [
                    ".featured > h3"
                  ]
                },
                {
                  "html": "<h3>Insurance Solutions</h3>",
                  "target": [
                    ".card:nth-child(4) > h3"
                  ]
                },
                {
                  "html": "<h3>Tax Optimization</h3>",
                  "target": [
                    ".card:nth-child(5) > h3"
                  ]
                },
                {
                  "html": "<h3>Goal-Based Planning</h3>",
                  "target": [
                    ".card:nth-child(6) > h3"
                  ]
                },
                {
                  "html": "<h2>Time, discipline, and compounding \u2014 the three pillars of lasting wealth.</h2>",
                  "target": [
                    "#retirement > .container > .two-col > .text-col > h2"
                  ]
                },
                {
                  "html": "<h2>See how fast your savings can grow.</h2>",
                  "target": [
                    "#calc > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3>Your Projected Balance</h3>",
                  "target": [
                    ".calc-result > h3"
                  ]
                },
                {
                  "html": "<h2>Coverage that protects what you've built.</h2>",
                  "target": [
                    "#insurance > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3>Life Insurance</h3>",
                  "target": [
                    ".ins-card:nth-child(1) > .body > h3"
                  ]
                },
                {
                  "html": "<h3>Disability &amp; Income Protection</h3>",
                  "target": [
                    ".ins-card:nth-child(2) > .body > h3"
                  ]
                },
                {
                  "html": "<h3>Long-Term Care</h3>",
                  "target": [
                    ".ins-card:nth-child(3) > .body > h3"
                  ]
                },
                {
                  "html": "<h2>Your credit score is a financial lever. Use it intentionally.</h2>",
                  "target": [
                    ".reverse > .text-col > h2"
                  ]
                },
                {
                  "html": "<h2>Resources to sharpen every financial decision.</h2>",
                  "target": [
                    "#resources > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3>The 2026 Complete Guide to Asset Allocation</h3>",
                  "target": [
                    "article > h3"
                  ]
                },
                {
                  "html": "<h3 style=\"margin-top:50px;margin-bottom:6px;font-size:1.5rem\">Latest from the Blog</h3>",
                  "target": [
                    ".resources-layout > div > h3"
                  ]
                },
                {
                  "html": "<h4>Roth Conversion Ladders in a Lower-Tax Year</h4>",
                  "target": [
                    "li:nth-child(1) > div > h4"
                  ]
                },
                {
                  "html": "<h4>Why Your Emergency Fund Should Live in a HYSA, Not a Brokerage</h4>",
                  "target": [
                    "li:nth-child(2) > div > h4"
                  ]
                },
                {
                  "html": "<h4>Amortization, Explained: How Interest Really Compounds Against You</h4>",
                  "target": [
                    "li:nth-child(3) > div > h4"
                  ]
                },
                {
                  "html": "<h4>Five Money Conversations Every Couple Should Have in Year One</h4>",
                  "target": [
                    "li:nth-child(4) > div > h4"
                  ]
                },
                {
                  "html": "<h3>Trending Topics</h3>",
                  "target": [
                    "aside > h3:nth-child(1)"
                  ]
                },
                {
                  "html": "<h3 style=\"margin-top:30px\">Planning Tips</h3>",
                  "target": [
                    "aside > h3:nth-child(3)"
                  ]
                },
                {
                  "html": "<h4>\ud83c\udfaf Automate everything</h4>",
                  "target": [
                    ".tip:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h4>\ud83d\udcc5 Rebalance quarterly</h4>",
                  "target": [
                    ".tip:nth-child(5) > h4"
                  ]
                },
                {
                  "html": "<h4>\ud83e\uddfe Track your net worth monthly</h4>",
                  "target": [
                    ".tip:nth-child(6) > h4"
                  ]
                },
                {
                  "html": "<h2>Trusted by households across all 50 states.</h2>",
                  "target": [
                    ".testimonials > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h2>Answers to what people ask us most.</h2>",
                  "target": [
                    ".faq > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h2>Your financial blueprint is waiting.</h2>",
                  "target": [
                    ".container > h2"
                  ]
                },
                {
                  "html": "<h4>Services</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Resources</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Company</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h4>The PillarPoint Brief</h4>",
                  "target": [
                    ".newsletter > h4"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#cdd6e3",
                "bgColor": "#091b30",
                "contrastRatio": 11.82,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 11.82"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span><span class=\"dot\"></span> Markets Open \u2014 NYSE &amp; NASDAQ Trading</span>",
          "target": [
            ".left > span"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "data": null,
              "relatedNodes": [],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<input type=\"number\" id=\"start\" value=\"10000\" min=\"0\" step=\"500\">",
          "target": [
            "#start"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/92x92/0E2A47/C8A24B?text=PP&amp;font=playfair%20display\" alt=\"PillarPoint Financial logo\">",
          "target": [
            "img[alt=\"PillarPoint Financial logo\"]"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input type=\"email\" placeholder=\"your@email.com\">",
          "target": [
            "input[type=\"email\"]"
          ]
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<div class=\"card\">",
                  "target": [
                    ".card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"more\">Explore Investment \u2192</a>",
          "target": [
            ".card:nth-child(1) > .more[href=\"#\"]"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\">Client Portal</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ul>",
          "target": [
            "nav > ul"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><a href=\"#\" class=\"active\">Home</a></li>",
          "target": [
            "nav > ul > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/92x92/0E2A47/C8A24B?text=PP&amp;font=playfair%20display\" alt=\"PillarPoint Financial logo\">",
          "target": [
            "img[alt=\"PillarPoint Financial logo\"]"
          ]
        }
      ]
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<summary>How is PillarPoint different from a traditional brokerage?</summary>",
          "target": [
            "details[open=\"\"] > summary"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\">Client Portal</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(1)"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "normal",
                "messageKey": "pseudoContent",
                "expectedContrastRatio": "4.5:1"
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\">",
                  "target": [
                    ".hero"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a pseudo element"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">\u2605 Trusted by 142,000+ households</span>",
          "target": [
            ".hero-grid > div:nth-child(1) > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "17.4pt (23.2px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header class=\"main\">",
                  "target": [
                    "header"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 17.4pt (23.2px), font weight: bold). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>Point</span>",
          "target": [
            ".logo > div > .brand > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 17.4pt (23.2px), font weight: bold). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"services\" id=\"investment\">",
                  "target": [
                    "#investment"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Our Core Services</span>",
          "target": [
            "#investment > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"card\">",
                  "target": [
                    ".card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"more\">Explore Investment \u2192</a>",
          "target": [
            ".card:nth-child(1) > .more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"card\">",
                  "target": [
                    ".card:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"more\">Plan Your Debt Payoff \u2192</a>",
          "target": [
            ".card:nth-child(2) > .more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"card\">",
                  "target": [
                    ".card:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"more\">Compare Coverage \u2192</a>",
          "target": [
            ".card:nth-child(4) > .more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"card\">",
                  "target": [
                    ".card:nth-child(5)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"more\">See Tax Strategies \u2192</a>",
          "target": [
            ".card:nth-child(5) > .more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"card\">",
                  "target": [
                    ".card:nth-child(6)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"more\">Define Your Goals \u2192</a>",
          "target": [
            ".card:nth-child(6) > .more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 10.8pt (14.4px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#faf6ee",
                "contrastRatio": 2.23,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"wealth\" id=\"retirement\">",
                  "target": [
                    "#retirement"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Wealth Building</span>",
          "target": [
            "#retirement > .container > .two-col > .text-col > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"calculator\" id=\"calc\">",
                  "target": [
                    "#calc"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Interactive Tool</span>",
          "target": [
            "#calc > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#faf6ee",
                "contrastRatio": 2.23,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"insurance\" id=\"insurance\">",
                  "target": [
                    "#insurance"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Insurance Options</span>",
          "target": [
            "#insurance > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"wealth\" id=\"credit\" style=\"background:#fff\">",
                  "target": [
                    "#credit"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Credit Strategy</span>",
          "target": [
            ".reverse > .text-col > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#faf6ee",
                "contrastRatio": 2.23,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"resources\" id=\"resources\">",
                  "target": [
                    "#resources"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Insights &amp; Education</span>",
          "target": [
            "#resources > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"resource-feature\">",
                  "target": [
                    "article"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"meta\">Featured Guide \u00b7 38 pages</span>",
          "target": [
            "article > .meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<aside class=\"sidebar\">",
                  "target": [
                    "aside"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tag\">Tax</span>",
          "target": [
            "li:nth-child(1) > .tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<aside class=\"sidebar\">",
                  "target": [
                    "aside"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tag\">Savings</span>",
          "target": [
            "li:nth-child(2) > .tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<aside class=\"sidebar\">",
                  "target": [
                    "aside"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tag\">Retirement</span>",
          "target": [
            "li:nth-child(3) > .tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<aside class=\"sidebar\">",
                  "target": [
                    "aside"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tag\">Credit</span>",
          "target": [
            "li:nth-child(4) > .tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<aside class=\"sidebar\">",
                  "target": [
                    "aside"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tag\">Education</span>",
          "target": [
            "li:nth-child(5) > .tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#ffffff",
                "contrastRatio": 2.4,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"testimonials\">",
                  "target": [
                    ".testimonials"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Client Stories</span>",
          "target": [
            ".testimonials > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.4 (foreground color: #c8a24b, background color: #ffffff, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8a24b",
                "bgColor": "#faf6ee",
                "contrastRatio": 2.23,
                "fontSize": "9.8pt (13.12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"faq\">",
                  "target": [
                    ".faq"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Common Questions</span>",
          "target": [
            ".faq > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.23 (foreground color: #c8a24b, background color: #faf6ee, font size: 9.8pt (13.12px), font weight: bold). Expected contrast ratio of 4.5:1"
        }
      ]
    },
    {
      "id": "label",
      "impact": "critical",
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"number\" id=\"start\" value=\"10000\" min=\"0\" step=\"500\">",
          "target": [
            "#start"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"number\" id=\"monthly\" value=\"750\" min=\"0\" step=\"50\">",
          "target": [
            "#monthly"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"range\" id=\"years\" min=\"1\" max=\"50\" value=\"20\">",
          "target": [
            "#years"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "non-empty-placeholder",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no placeholder attribute"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<input type=\"range\" id=\"rate\" min=\"1\" max=\"12\" value=\"7\" step=\"0.1\">",
          "target": [
            "#rate"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element has no placeholder attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block",
              "data": {
                "messageKey": "fgContrast",
                "contrastRatio": 2.56,
                "requiredContrastRatio": 3,
                "nodeColor": "#0e2a47",
                "parentColor": "#5b6878"
              },
              "relatedNodes": [
                {
                  "html": "<p>Can't find what you're looking for? <a href=\"#\">Schedule a 15-minute call</a> with a planner at no cost.</p>",
                  "target": [
                    ".faq > .container > .section-head > p"
                  ]
                }
              ],
              "impact": "serious",
              "message": "The link has insufficient color contrast of 2.56:1 with the surrounding text. (Minimum contrast is 3:1, link text: #0e2a47, surrounding text: #5b6878)"
            },
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<p>Can't find what you're looking for? <a href=\"#\">Schedule a 15-minute call</a> with a planner at no cost.</p>",
                  "target": [
                    ".faq > .container > .section-head > p"
                  ]
                }
              ],
              "impact": "serious",
              "message": "The link has no styling (such as underline) to distinguish it from the surrounding text"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\">Schedule a 15-minute call</a>",
          "target": [
            "p > a[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2.56:1 with the surrounding text. (Minimum contrast is 3:1, link text: #0e2a47, surrounding text: #5b6878)\n  The link has no styling (such as underline) to distinguish it from the surrounding text"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 10362
      },
      {
        "y": 576,
        "height": 10362
      },
      {
        "y": 1152,
        "height": 10362
      },
      {
        "y": 1728,
        "height": 10362
      },
      {
        "y": 2304,
        "height": 10362
      },
      {
        "y": 2880,
        "height": 10362
      },
      {
        "y": 3456,
        "height": 10362
      },
      {
        "y": 4032,
        "height": 10362
      },
      {
        "y": 4608,
        "height": 10362
      },
      {
        "y": 5184,
        "height": 10362
      },
      {
        "y": 5760,
        "height": 10362
      },
      {
        "y": 6336,
        "height": 10362
      },
      {
        "y": 6912,
        "height": 10362
      },
      {
        "y": 7488,
        "height": 10362
      },
      {
        "y": 8064,
        "height": 10362
      },
      {
        "y": 8640,
        "height": 10362
      },
      {
        "y": 9216,
        "height": 10362
      },
      {
        "y": 9642,
        "height": 10362
      }
    ],
    "scans": 19,
    "max_states": 512,
    "settle_ms": 5000,
    "page_timeout_seconds": 150,
    "layout_stability": "consecutive 100ms size samples within one CSS pixel",
    "animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
    "interactive_states": "not exercised",
    "horizontal_scroll": "not exercised"
  }
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Personal Finance" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.

**Client & Category:**
- Industry: "Personal Finance"
- Description: Banking, investing, budgeting, savings, credit, and personal money management resources.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Personal Finance" category.
2.  **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3.  **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.

**Content & Structure Requirements (Deliver a COMPLETE page):**
-   **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
-   **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Investment", "Credit", "Retirement".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Personal Finance" category. Consider themes similar to: "Insurance Options", "Wealth Building", "Savings Goals".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "amortization", "tax optimization", "asset allocation".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Learn More", "Download Guide", "Open Account".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Personal Finance" sector. Ideas similar but not limited to: "savings goal tracker".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "calculator tools", "trending topics", "financial planning tips".
-   **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
-   **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.