/* My Retirement State — senior-first design system
   Rules: base 20px, dark text (#1a1a1a) on white/cream, no light-gray body text,
   tap targets >= 56px, one idea per screen, plain English. */
:root{
  --ink:#1a1a1a; --ink-soft:#333;
  --paper:#fffdf8; --card:#ffffff;
  --green:#1d6a4f; --green-dark:#14503a; --green-soft:#e7f2ec;
  --gold:#c98a1b; --gold-soft:#faf0da;
  --line:#d8d2c4; --focus:#0b5fff;
  --radius:16px;
}
*{box-sizing:border-box}
html{font-size:20px}
body{margin:0;font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.55;-webkit-text-size-adjust:100%}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.2;margin:0 0 .5em}
h1{font-size:2.3rem} h2{font-size:1.7rem} h3{font-size:1.25rem}
p{margin:0 0 1em}
a{color:var(--green-dark);text-decoration:underline;text-underline-offset:3px}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}
.small{font-size:.85rem;color:var(--ink-soft)}
.center{text-align:center}

/* Header */
header.site{background:#fff;border-bottom:3px solid var(--green)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.logo{font-family:Georgia,serif;font-size:1.45rem;font-weight:700;color:var(--ink);text-decoration:none}
.logo span{color:var(--green)}
nav.main a{display:inline-block;padding:12px 10px;font-weight:600;text-decoration:none;color:var(--ink)}
nav.main a:hover{text-decoration:underline}
@media(max-width:640px){
  header.site .wrap{flex-direction:column;align-items:flex-start;gap:2px}
  .logo{font-size:1.3rem}
  nav.main a{padding:8px 14px 8px 0}
  h1{font-size:1.9rem} .hero h1{font-size:2.1rem}
  .finder{padding:24px 18px}
}

/* Hero */
.hero{background:linear-gradient(180deg,var(--green-soft),var(--paper));padding:56px 0 30px;text-align:center}
.hero h1{font-size:2.6rem;max-width:820px;margin-left:auto;margin-right:auto}
.hero .sub{font-size:1.25rem;max-width:720px;margin:0 auto 1.2em;color:var(--ink-soft)}
.btn{display:inline-block;background:var(--green);color:#fff;font-size:1.2rem;font-weight:700;
  padding:18px 34px;border-radius:60px;text-decoration:none;border:0;cursor:pointer;min-height:60px}
.btn:hover{background:var(--green-dark)}
.btn.secondary{background:#fff;color:var(--green-dark);border:3px solid var(--green)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid var(--focus);outline-offset:2px}
.trustline{margin-top:16px;font-size:1rem;color:var(--ink-soft)}

/* Finder */
.finder{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);
  padding:34px 30px;margin:26px auto 10px;max-width:820px;box-shadow:0 6px 24px rgba(20,60,40,.08)}
.progress{height:14px;background:#eee7d6;border-radius:10px;overflow:hidden;margin-bottom:8px}
.progress i{display:block;height:100%;background:var(--green);width:0;transition:width .3s}
.stepcount{font-size:.9rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--green-dark)}
.finder h2{font-size:1.8rem;margin-top:6px}
.finder .qhelp{color:var(--ink-soft);font-size:1.05rem}
.chips{display:grid;grid-template-columns:1fr;gap:14px;margin:22px 0}
@media(min-width:640px){.chips.two{grid-template-columns:1fr 1fr}}
.chip{display:flex;align-items:center;gap:14px;text-align:left;background:#fff;border:3px solid var(--line);
  border-radius:14px;padding:18px 20px;font-size:1.15rem;font-weight:600;color:var(--ink);cursor:pointer;min-height:64px;width:100%}
.chip .ico{font-size:1.7rem;line-height:1}
.chip small{display:block;font-weight:400;font-size:.92rem;color:var(--ink-soft)}
.chip[aria-pressed="true"]{border-color:var(--green);background:var(--green-soft)}
.chip:hover{border-color:var(--green)}
.privacy{background:var(--gold-soft);border-radius:12px;padding:14px 18px;font-size:1rem;margin:18px 0}
.finder nav.stepnav{display:flex;justify-content:space-between;gap:14px;margin-top:10px}
.btn.back{background:#fff;color:var(--ink);border:3px solid var(--line)}
select.bignum,input.bignum{font-size:1.15rem;padding:16px;border:3px solid var(--line);border-radius:12px;width:100%;background:#fff;color:var(--ink);min-height:64px}

/* Results */
.result-card{border:3px solid var(--green);border-radius:var(--radius);padding:24px 26px;margin:20px 0;background:#fff}
.result-card .rank{font-weight:700;color:var(--green-dark);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}
.result-card h3{font-size:1.6rem;margin:.15em 0 .3em}
.keeps{font-size:1.3rem;font-weight:700;color:var(--green-dark)}
dl.facts{display:grid;grid-template-columns:1fr;gap:6px;margin:14px 0}
@media(min-width:640px){dl.facts{grid-template-columns:1fr 1fr}}
dl.facts div{background:var(--green-soft);border-radius:10px;padding:10px 14px}
dl.facts dt{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--green-dark)}
dl.facts dd{margin:0;font-size:1.1rem;font-weight:600}
table.states{width:100%;border-collapse:collapse;font-size:1rem;background:#fff}
table.states th,table.states td{padding:12px 10px;border-bottom:2px solid var(--line);text-align:left;vertical-align:top}
table.states th{background:var(--green);color:#fff;font-size:.95rem}
table.states tr td:first-child{font-weight:700}

/* Sections & cards */
section.band{padding:52px 0}
.cards{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:720px){.cards{grid-template-columns:1fr 1fr 1fr}}
.dual-cards{display:grid;grid-template-columns:1fr;gap:18px;margin:6px 0 4px}
@media(min-width:720px){.dual-cards{grid-template-columns:1fr 1fr}}
.tool-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:24px}
.tool-card h3{margin-bottom:.3em}
.tool-card a{font-weight:700}
.stategrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:720px){.stategrid{grid-template-columns:repeat(4,1fr)}}
.stategrid a{background:#fff;border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-weight:600;text-decoration:none;color:var(--ink);display:block}
.stategrid a:hover{border-color:var(--green)}
.adslot{border:2px dashed var(--line);border-radius:12px;color:var(--ink-soft);text-align:center;padding:22px;margin:30px 0;font-size:.9rem}

footer.site{background:#17352a;color:#fff;padding:44px 0;margin-top:40px}
footer.site a{color:#fff}
footer.site .small{color:#cfd8d2}

@media print{
  header.site,nav.main,.stepnav,.adslot,.btn{display:none!important}
  body{background:#fff} .finder,.result-card{box-shadow:none;border-color:#999}
}
