.nv-junior-savings { margin-top:32px; padding:28px; background:#fff; border:1px solid #d5e7dc; border-top:3px solid var(--solution-green); }
.nv-junior-savings__head { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.nv-junior-savings__head h3 { margin:12px 0 10px; font-size:1.3rem; line-height:1.4; }
.nv-junior-savings__head p { margin:0; font-size:1rem; color:var(--solution-muted); }
.nv-junior-savings__caption { color:var(--solution-muted); font-size:.9rem; white-space:nowrap; }
.nv-junior-savings__source { display:flex; align-items:center; gap:16px; padding:22px 24px; margin-top:26px; background:#f3faf6; }
.nv-junior-savings__wallet { display:grid; place-items:center; flex:0 0 48px; height:48px; color:var(--solution-blue); border:1px solid var(--solution-green); }
.nv-junior-savings__wallet svg { width:26px; height:26px; }
.nv-junior-savings__source strong { display:block; color:var(--solution-blue); font-size:1.08rem; }
.nv-junior-savings__source div>span { display:block; color:var(--solution-muted); margin-top:4px; font-size:.96rem; }
.nv-junior-savings button { font-family:var(--font-body); cursor:pointer; }
.nv-junior-savings__deposit { display:flex; align-items:center; gap:22px; margin-left:auto; padding:13px 20px; background:var(--solution-green); color:var(--solution-navy); border:0; font-size:1rem; font-weight:400; white-space:nowrap; }
.nv-junior-savings__deposit:disabled { opacity:.65; cursor:wait; }
.nv-junior-savings__flow { position:relative; height:38px; margin-inline:16.66%; border-bottom:1px solid #b7d5c4; }
.nv-junior-savings__flow::before { content:''; position:absolute; left:50%; top:0; height:38px; width:1px; background:#b7d5c4; }
.nv-junior-savings__flow::after { content:''; position:absolute; left:var(--goal-x,0%); bottom:-10px; height:10px; width:1px; background:#b7d5c4; }
.nv-junior-savings__pixel { position:absolute; top:0; left:50%; width:8px; height:8px; background:var(--solution-green); opacity:0; }
.nv-junior-savings.is-running .nv-junior-savings__pixel { animation:nv-junior-deposit 1.45s ease-in-out both; }
.nv-junior-savings.is-running .nv-junior-savings__pixel:nth-child(2) { animation-delay:.16s; }
.nv-junior-savings.is-running .nv-junior-savings__pixel:nth-child(3) { animation-delay:.32s; }
@keyframes nv-junior-deposit { 0%{opacity:0;top:0;left:50%} 12%{opacity:1} 42%{top:34px;left:50%;opacity:1} 85%{top:34px;left:var(--goal-x,0%);opacity:1} 100%{top:45px;left:var(--goal-x,0%);opacity:0} }
.nv-junior-savings__goals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:18px; }
.nv-junior-savings__goal { text-align:left; border:1px solid #d5e7dc; background:#fff; padding:22px; color:var(--solution-blue); min-width:0; }
.nv-junior-savings__goal[aria-pressed=true] { border-color:var(--solution-green); box-shadow:inset 0 -3px var(--solution-green); background:#f7fcf9; }
.nv-junior-savings__goal svg { display:block; width:36px; height:36px; margin-bottom:15px; }
.nv-junior-savings__goal strong { display:block; font-size:1.12rem; line-height:1.4; }
.nv-junior-savings__amount { display:block; color:var(--solution-navy); font-size:1.25rem; font-weight:700; margin:14px 0; }
.nv-junior-savings__amount small { font-size:.92rem; font-weight:400; color:var(--solution-muted); }
.nv-junior-savings__bar { display:block; height:7px; background:#e4eee9; }
.nv-junior-savings__bar>span { display:block; width:0; height:100%; background:var(--solution-green); transition:width .65s ease; }
.nv-junior-savings__foot { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:22px; }
.nv-junior-savings__status { font-size:.98rem; margin:0; color:var(--solution-muted); }
.nv-junior-savings__reset { border:0; border-bottom:1px solid var(--solution-green); padding:8px 0; background:none; color:var(--solution-blue); font-size:.95rem; }
.nv-junior-savings button:focus-visible { outline:2px solid var(--solution-blue); outline-offset:4px; }
@media(max-width:800px) { .nv-junior-savings__source { flex-wrap:wrap; padding:20px; }.nv-junior-savings__deposit { margin-left:0; }.nv-junior-savings__head { display:block; }.nv-junior-savings__caption { display:block; margin-top:12px; }.nv-junior-savings__goals { gap:10px; }.nv-junior-savings__goal { padding:15px; } }
@media(max-width:480px) { .nv-junior-savings { padding:20px 15px; }.nv-junior-savings__goal { padding:14px 8px; }.nv-junior-savings__goal strong { font-size:.98rem; }.nv-junior-savings__amount small { display:block; margin-top:3px; }.nv-junior-savings__foot { display:block; }.nv-junior-savings__reset { margin-top:10px; } }
@media(prefers-reduced-motion:reduce) { .nv-junior-savings.is-running .nv-junior-savings__pixel { animation:none; }.nv-junior-savings__bar>span { transition:none; } }

.nv-junior-savings__source { display:grid; grid-template-columns:48px minmax(0,1fr); }
.nv-junior-savings__deposit { grid-column:1 / -1; justify-self:center; margin:8px 0 0; font-weight:600; border:1px solid #179653; }
.nv-junior-savings__deposit:disabled { cursor:progress; }
.nv-junior-savings__celebration { position:relative; overflow:hidden; margin-top:24px; padding:24px; border-left:3px solid var(--solution-green); background:#f3faf6; text-align:center; }
.nv-junior-savings__celebration[hidden] { display:none; }
.nv-junior-savings__celebration strong { display:block; color:var(--solution-blue); font-size:1.3rem; }
.nv-junior-savings__celebration p { margin:8px 0 0; color:var(--solution-muted); font-size:1rem; }
.nv-junior-savings__confetti { position:absolute; left:var(--x); top:0; width:8px; height:8px; background:var(--color); pointer-events:none; animation:nv-junior-confetti 2.3s var(--delay) ease-out both; }
.nv-junior-savings__goal.is-complete { border-color:var(--solution-green); }
@keyframes nv-junior-confetti { 0% { opacity:0; transform:translateY(-15px); } 12% { opacity:1; } 100% { opacity:0; transform:translate(var(--drift),150px) rotate(var(--turn)); } }

/* A visible amount follows the deposit into the chosen savings goal. */
.nv-junior-savings__transfer { position:absolute; z-index:2; top:0; left:50%; padding:5px 10px; background:#2dc471; color:#002d4a; font-size:.8rem; font-weight:700; opacity:0; border:1px solid #179653; transform:translate(-50%,-50%); pointer-events:none; }
.nv-junior-savings.is-running .nv-junior-savings__transfer { animation:nv-junior-deposit 1.1s ease-in-out both; }
.nv-junior-savings__deposit { min-width:230px; justify-content:center; box-shadow:0 4px 0 #179653; transition:transform .2s,box-shadow .2s; }
.nv-junior-savings__deposit:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 6px 0 #179653; }
@media(prefers-reduced-motion:reduce) { .nv-junior-savings.is-running .nv-junior-savings__transfer { animation:none; } }

/* Foreground impacts remain decorative and respect reduced motion. */
@media(prefers-reduced-motion:reduce) { .nv-junior-success__striker { display:none; } }
