/* Self-hosted text fonts (latin subset, variable weight) */
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 400 700; font-display: optional; src: url(/assets/fonts/hanken-grotesk.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 700; font-display: optional; src: url(/assets/fonts/jetbrains-mono.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root{--bg:#f8fafc;--card:#fff;--ink:#0f172a;--ink2:#1e293b;--mute:#64748b;--line:#e2e8f0;--line2:#f1f5f9;--blue:#1d4ed8;--blue-d:#1e40af;--blue-t:rgba(37,99,235,.08);--green:#047857;--green-t:rgba(5,150,105,.1);--r:.5rem;--r-xl:1rem;--r-2xl:1.5rem;
--sh:0 1px 3px 0 rgba(15,23,42,.04),0 1px 2px -1px rgba(15,23,42,.02);--sh-l:0 10px 15px -3px rgba(15,23,42,.08),0 4px 6px -4px rgba(15,23,42,.04);
--sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-d);text-decoration:underline}
img,svg{max-width:100%}
.wrap{max-width:1160px;margin:0 auto;padding:0 1rem}
@media(min-width:768px){.wrap{padding:0 2rem}}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:99;border-radius:var(--r)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--ink);font-weight:700;font-size:1.05rem;letter-spacing:-.01em}
.brand:hover{text-decoration:none;color:var(--ink)}
.logo{width:34px;height:34px;border-radius:9px;background:var(--blue);display:grid;place-items:center}
.logo svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav{display:none;gap:1.5rem;align-items:center}
.nav a{color:#475569;font-size:.92rem;font-weight:500}.nav a:hover{color:var(--ink);text-decoration:none}
.nav a[aria-current]{color:var(--blue)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.1rem;border-radius:var(--r);background:var(--blue);color:#fff;font-weight:600;font-size:.92rem;border:0;cursor:pointer;transition:background .15s,transform .05s}
.btn:hover{background:var(--blue-d);color:#fff;text-decoration:none}.btn:active{transform:scale(.99)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover{background:var(--line2);color:var(--ink)}
.menu{display:block}.menu summary{list-style:none;cursor:pointer;padding:.5rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;line-height:0}
.menu summary::-webkit-details-marker{display:none}
.menu[open] .menu-panel{display:grid}
.menu-panel{display:none;position:absolute;left:0;right:0;top:64px;background:#fff;border-bottom:1px solid var(--line);padding:1rem;gap:.15rem;box-shadow:var(--sh-l)}
.menu-panel a{padding:.6rem .5rem;color:var(--ink);font-weight:500;border-radius:var(--r)}.menu-panel a:hover{background:var(--line2);text-decoration:none}
@media(min-width:900px){.nav{display:flex}.menu{display:none}}

/* hero */
.hero{background:linear-gradient(180deg,#eff4ff,var(--bg));padding:2rem 0 2.5rem;text-align:center}
.hero.compact{padding:1.75rem 0 2rem}
.badges{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.1rem}
.badge{font:600 .68rem/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:.45rem .8rem;border-radius:99px;background:#fff;color:#475569;box-shadow:var(--sh)}
.badge.g{color:var(--green)}
h1{font-size:clamp(1.85rem,4.5vw,2.5rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 .6rem;font-weight:700}
.lede{color:#475569;max-width:44rem;margin:0 auto 1.6rem;font-size:1.05rem}
.crumbs{font-size:.82rem;color:var(--mute);margin-bottom:1rem}.crumbs a{color:var(--mute)}

/* calculator */
.calc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-l);padding:1.1rem;text-align:left}
.calc-card#calculator{min-height:1360px}@media(min-width:960px){.calc-card#calculator{min-height:900px}}
@media(min-width:768px){.calc-card{padding:2rem}}
.calc-grid{display:grid;gap:1.75rem}
@media(min-width:960px){.calc-grid{grid-template-columns:7fr 5fr;align-items:start}.calc-result{position:sticky;top:84px}}
.calc-form{display:grid;gap:1rem}
.seg{display:inline-flex;background:var(--line2);padding:.25rem;border-radius:var(--r);justify-self:start}
.seg button{border:0;background:transparent;padding:.5rem 1.2rem;border-radius:.4rem;font:600 .85rem var(--sans);color:#475569;cursor:pointer;transition:all .15s}
.seg button.on{background:#fff;color:var(--blue);box-shadow:var(--sh)}
.row2{display:grid;gap:1rem}.row3{display:grid;gap:.75rem}
@media(min-width:560px){.row2{grid-template-columns:1fr 1fr}.row3{grid-template-columns:repeat(3,1fr)}}
[hidden]{display:none!important}
.field label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem;color:var(--ink2)}
.field small{display:block;color:var(--mute);font-size:.72rem;margin-top:.25rem}
.input-wrap{position:relative;display:flex;align-items:center}
.prefix,.suffix{position:absolute;color:var(--mute);font:500 .85rem var(--mono);pointer-events:none}.prefix{left:.85rem}.suffix{right:.85rem}
input,select{width:100%;padding:.62rem .85rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);font:500 .92rem var(--mono);color:var(--ink);min-height:44px}
input{padding-left:1.8rem}input.noprefix{padding-left:.85rem;padding-right:2.6rem}
select{font-family:var(--sans);appearance:none;padding-right:2.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") no-repeat right .85rem center}
input:focus,select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.adv{background:var(--bg);border-radius:var(--r);padding:.9rem 1rem}.adv summary{cursor:pointer;font-weight:600;font-size:.92rem;margin-bottom:.9rem}
.adv .bonus{margin-top:.75rem;max-width:16rem}
.fine{font-size:.75rem;color:var(--mute);margin:0}
.calc-result{background:var(--ink);color:#f1f5f9;border-radius:var(--r-2xl);padding:1.4rem;border:1px solid rgba(37,99,235,.3)}
.res-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.pill{font:600 .65rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:.4rem .7rem;border-radius:99px;background:rgba(5,150,105,.2);color:#6ee7b7}
.pill.ghost{background:rgba(255,255,255,.1);color:#cbd5e1}
.net{font:700 clamp(2.1rem,6vw,2.7rem)/1.1 var(--mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:.9rem 0 .2rem}
.net-sub{color:#94a3b8;font-size:.85rem;margin-bottom:1rem}
.bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:#334155}
.bar i,.legend i{display:block}.c-net{background:#10b981}.c-fed{background:#3b82f6}.c-fica{background:#f59e0b}.c-st{background:#a78bfa}.c-pre{background:#64748b}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem .9rem;padding:0;margin:.7rem 0 1rem;font-size:.72rem;color:#94a3b8;min-height:2.6rem}
.legend li{display:flex;align-items:center;gap:.35rem}.legend i{width:8px;height:8px;border-radius:50%}
.break{width:100%;border-collapse:collapse;font-size:.85rem;min-height:14rem;display:table}#r-rows{min-height:14rem;display:table-row-group}
.break th{font-weight:400;text-align:left;color:#cbd5e1;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.break td{text-align:right;font:500 .85rem var(--mono);font-variant-numeric:tabular-nums;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.break tr.strong th,.break tr.strong td{color:#fff;font-weight:700}
.res-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem}
.res-foot div{background:rgba(255,255,255,.06);border-radius:var(--r);padding:.6rem .7rem}
.res-foot span{display:block;font-size:.65rem;color:#94a3b8;line-height:1.3}.res-foot b{font:600 .9rem var(--mono)}

/* sections & content */
section.blk{padding:2.5rem 0}
h2{font-size:clamp(1.4rem,3vw,1.75rem);line-height:1.3;letter-spacing:-.015em;margin:0 0 .75rem}
h3{font-size:1.1rem;margin:1.4rem 0 .4rem;letter-spacing:-.01em}
.sec-sub{color:#475569;max-width:44rem;margin:0 0 1.5rem}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.25rem;box-shadow:var(--sh)}
.card h3{margin:.1rem 0 .35rem}.card p{margin:0;color:#475569;font-size:.92rem}
a.card{display:block;color:inherit;transition:border-color .15s,box-shadow .15s}a.card:hover{text-decoration:none;border-color:#93b4f5;box-shadow:var(--sh-l)}
.card .go{display:inline-block;margin-top:.7rem;font-size:.85rem;font-weight:600;color:var(--blue)}
.tag{font:600 .62rem/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:.3rem .55rem;border-radius:99px;background:var(--blue-t);color:var(--blue);display:inline-block;margin-bottom:.5rem}
.tag.g{background:var(--green-t);color:var(--green)}
.states{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}
.states a{display:flex;justify-content:space-between;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.6rem .8rem;color:var(--ink);font-weight:500;font-size:.9rem}
.states a:hover{border-color:#93b4f5;text-decoration:none;background:var(--blue-t)}
.states em{font:600 .62rem var(--mono);font-style:normal;color:var(--green);background:var(--green-t);padding:.15rem .4rem;border-radius:99px}
.states em.t{color:var(--blue);background:var(--blue-t)}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:1.2rem;box-shadow:var(--sh)}
.steps li::before{content:"0" counter(s);font:600 .8rem var(--mono);color:var(--blue);display:block;margin-bottom:.5rem}
.steps b{display:block;margin-bottom:.3rem}.steps span{color:#475569;font-size:.9rem}

.prose{max-width:46rem}.prose p,.prose li{color:#334155}.prose ul,.prose ol{padding-left:1.25rem}.prose li{margin:.3rem 0}
.prose h2{margin-top:2.2rem}
.callout{background:var(--blue-t);border:1px solid rgba(37,99,235,.2);border-radius:var(--r-xl);padding:1rem 1.25rem;margin:1.25rem 0;color:#1e3a8a}
.callout p{margin:0;color:inherit}
.tablewrap{overflow-x:auto;margin:1rem 0;border:1px solid var(--line);border-radius:var(--r-xl);background:#fff}
table.data{width:100%;border-collapse:collapse;font-size:.9rem;min-width:520px}
table.data th{background:var(--line2);text-align:left;padding:.65rem .9rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#475569}
table.data td{padding:.65rem .9rem;border-top:1px solid var(--line2)}
table.data td.n,table.data th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
table.data tr.hl td{background:var(--green-t);font-weight:700}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);margin-bottom:.6rem;box-shadow:var(--sh)}
.faq summary{cursor:pointer;padding:1rem 1.2rem;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font:500 1.3rem var(--mono);color:var(--mute)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0;padding:0 1.2rem 1.1rem;color:#475569}
.related{display:flex;flex-wrap:wrap;gap:.5rem}
.related a{background:#fff;border:1px solid var(--line);border-radius:99px;padding:.4rem .9rem;font-size:.86rem;color:var(--ink);font-weight:500}
.related a:hover{border-color:#93b4f5;background:var(--blue-t);text-decoration:none}
.cta{background:var(--ink);color:#fff;border-radius:var(--r-2xl);padding:2rem 1.25rem;text-align:center}
.cta h2{color:#fff}.cta p{color:#94a3b8;max-width:36rem;margin:0 auto 1.2rem}
.cta .btn{background:var(--blue)}
.meta{font-size:.8rem;color:var(--mute);margin:.25rem 0 1.5rem}

/* footer */
.site-footer{background:#fff;border-top:1px solid var(--line);margin-top:2rem;padding:2.5rem 0 1.5rem;font-size:.9rem}
.foot{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.foot h4{font:600 .7rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:0 0 .7rem}
.foot a{display:block;color:#475569;padding:.2rem 0}.foot a:hover{color:var(--blue)}
.foot p{color:var(--mute);margin:.5rem 0 0;max-width:22rem}
.legal{border-top:1px solid var(--line);margin-top:1.75rem;padding-top:1rem;color:var(--mute);font-size:.78rem}

/* mobile sticky summary */
.mbar{display:none}
@media(max-width:959px){.mbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--ink);color:#fff;padding:.7rem 1rem;justify-content:space-between;align-items:center;font-size:.85rem;box-shadow:0 -6px 20px rgba(15,23,42,.2)}
.mbar b{font:700 1.1rem var(--mono)}.mbar a{color:#93c5fd;font-weight:600}body{padding-bottom:58px}}
@media print{.site-header,.site-footer,.mbar{display:none}}

/* ---- SaaS polish ---- */
.hero{position:relative;overflow:hidden;background:radial-gradient(900px 340px at 50% -10%,rgba(37,99,235,.14),transparent 70%),linear-gradient(180deg,#eef4ff,var(--bg))}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(15,23,42,.06) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%);pointer-events:none}
.hero .wrap{position:relative}
h1{background:linear-gradient(180deg,#0f172a,#1e3a8a);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero.compact h1{font-size:clamp(1.7rem,4vw,2.2rem)}
.hdr-cta{display:none}@media(min-width:900px){.hdr-cta{display:inline-flex}}
.adv summary{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:0}.adv[open] summary{margin-bottom:.9rem}
.adv summary span{font-weight:400;color:var(--mute);font-size:.78rem}.adv .sub{font:600 .7rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mute);margin:.9rem 0 .5rem}
.adv{border:1px dashed var(--line)}
.allf{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1.1rem;min-height:4.2rem}
.allf div{background:rgba(255,255,255,.06);border-radius:var(--r);padding:.55rem .5rem;text-align:center}
.allf span{display:block;font-size:.65rem;color:#94a3b8}.allf b{font:600 .88rem var(--mono)}
.net{background:linear-gradient(90deg,#fff,#a7f3d0);-webkit-background-clip:text;background-clip:text;color:transparent}
.calc-card{border-color:rgba(37,99,235,.18);box-shadow:0 20px 50px -20px rgba(37,99,235,.25),var(--sh-l)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1.75rem 0 0;text-align:center}
.stats div{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:1rem;box-shadow:var(--sh)}
.stats b{display:block;font:700 1.5rem var(--mono);color:var(--blue);letter-spacing:-.02em}.stats span{font-size:.8rem;color:var(--mute)}
.ico{width:42px;height:42px;border-radius:12px;background:var(--blue-t);display:grid;place-items:center;margin-bottom:.8rem}
.ico svg{width:22px;height:22px;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card{transition:transform .15s,box-shadow .15s,border-color .15s}a.card:hover{transform:translateY(-2px)}
section.alt{background:#fff;border-block:1px solid var(--line)}
.finder{display:flex;gap:.6rem;flex-wrap:wrap;max-width:34rem;margin:0 0 1.25rem}
.finder input{flex:1;min-width:200px;padding-left:.9rem;font-family:var(--sans)}
.cta{background:radial-gradient(600px 220px at 50% 0,rgba(37,99,235,.45),transparent),var(--ink)}
.calc-grid>*,.calc-form>*,.row2>*,.row3>*,.field{min-width:0}
.calc-grid{grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.calc-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.row2,.row3{grid-template-columns:minmax(0,1fr)}
@media(min-width:560px){.row2{grid-template-columns:repeat(2,minmax(0,1fr))}.row3{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* header dropdowns and grouped menus */
.dd{position:relative}.dd>a{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem 0}
.dd>a:after{content:"";width:.4rem;height:.4rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55}
.dd-panel{display:none;position:absolute;top:100%;left:-1rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-l);padding:1rem 1.2rem;gap:1.5rem;z-index:60}
.dd-panel.right{left:auto;right:-1rem}
.dd:hover .dd-panel,.dd:focus-within .dd-panel{display:flex}
.dd-panel.wide>div{min-width:15rem}.dd-panel.narrow>div{min-width:12rem}
.dd-panel a{display:block;padding:.35rem .25rem;white-space:nowrap;color:var(--ink);font-weight:500;font-size:.9rem;border-radius:var(--r)}
.dd-panel a:hover{background:var(--line2);color:var(--blue)}
.dd-panel h5,.menu-panel h5{margin:0 0 .3rem;font:700 .68rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.menu-panel{max-height:calc(100vh - 64px);overflow:auto}
.menu-panel h5{padding:.6rem .5rem 0}

/* footer */
.site-footer{background:#f8fafc;padding:3rem 0 1.5rem}
.foot-top{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;justify-content:space-between;padding-bottom:1.75rem;border-bottom:1px solid var(--line)}
.foot-brand p{color:var(--mute);margin:.6rem 0 0;max-width:34rem;font-size:.88rem}
.foot-cols{display:grid;gap:1.75rem 1.5rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:1.75rem 0}
@media(min-width:760px){.foot-cols{grid-template-columns:repeat(4,minmax(0,1fr))}}
.foot-cols h3,.foot-cols h2,.foot-states h3{font:600 .7rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:0 0 .7rem}
.foot-cols a{display:block;color:#475569;padding:.22rem 0;font-size:.88rem;line-height:1.35}.foot-cols a:hover{color:var(--blue);text-decoration:none}
.foot-states{padding:1.25rem 0 1.5rem;border-top:1px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips a{padding:.3rem .8rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:#475569;font-size:.82rem}
.chips a:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.chips a.all{border-color:transparent;background:transparent;color:var(--blue);font-weight:600}
.site-footer .legal{border-top:1px solid var(--line);margin:0;padding-top:1.1rem;display:grid;gap:.4rem}
.site-footer .legal span{font-weight:600;color:#475569}
.site-footer .legal p{margin:0;max-width:60rem}

/* compact footer */
.foot-top{align-items:flex-start;padding-bottom:1.5rem;gap:2rem}
.foot-top .foot-cols{padding:0;display:flex;flex-wrap:wrap;gap:1.5rem 3rem;grid-template-columns:none}
.foot-top .foot-cols>div{min-width:11rem}
.foot-top{flex-wrap:nowrap}
.foot-brand{flex:1 1 16rem;min-width:0}.foot-brand p{max-width:20rem}
.foot-top .foot-cols{flex:0 1 auto;gap:1.5rem 2.5rem}
.foot-top .foot-cols>div{min-width:0}
@media(max-width:820px){.foot-top{flex-wrap:wrap}.foot-top .foot-cols{gap:1.5rem 2rem}}

/* --- Donut Chart & Visual Breakdown --- */
.chart-section{margin:0.75rem 0 1rem;display:flex;justify-content:center;min-height:140px}
.donut-wrap{position:relative;width:140px;height:140px}
.donut-chart{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.donut-val{font:700 16px var(--mono);fill:#fff;text-anchor:middle;transform:rotate(90deg);transform-origin:50px 50px}
.donut-lbl{font:500 8.5px var(--sans);fill:#94a3b8;text-anchor:middle;text-transform:uppercase;letter-spacing:0.05em;transform:rotate(90deg);transform-origin:50px 50px}

/* --- Action Buttons (Share & Print) --- */
.res-actions{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;margin-top:1.1rem}
.btn-action{display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.55rem 0.8rem;border-radius:var(--r);background:rgba(255,255,255,0.08);color:#f1f5f9;border:1px solid rgba(255,255,255,0.15);font:600 0.82rem var(--sans);cursor:pointer;transition:all 0.15s ease}
.btn-action:hover{background:rgba(255,255,255,0.16);color:#fff;border-color:rgba(255,255,255,0.3);transform:translateY(-1px)}
.btn-action:active{transform:scale(0.98)}

/* --- Toast Popup --- */
.toast-popup{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);background:#0f172a;color:#10b981;border:1px solid #10b981;padding:0.6rem 1.2rem;border-radius:99px;font:600 0.88rem var(--sans);box-shadow:0 10px 25px rgba(0,0,0,0.3);z-index:999;animation:toastFade 0.25s ease}
@keyframes toastFade{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

/* --- Official Print Paystub Stylesheet --- */
@media print {
  body { background: #fff !important; color: #000 !important; font-size: 12pt !important; }
  .site-header, .site-footer, .hero h1, .hero .lede, .hero .badges, .hero .crumbs, .adv, .seg, .calc-form, .res-actions, .res-foot, .allf, .chart-section, .bar, .legend, .mbar, .prose, .blk, .toast-popup { display: none !important; }
  .hero { background: none !important; padding: 0 !important; }
  .calc-card { border: none !important; box-shadow: none !important; padding: 0 !important; max-width: 100% !important; }
  .calc-result { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; border-radius: 4px !important; padding: 1.5rem !important; }
  .calc-result::before { content: "OFFICIAL US PAYCHECK STATEMENT (ESTIMATE)"; display: block; font: 700 14pt var(--mono); text-align: center; border-bottom: 2px solid #000; padding-bottom: 8px; margin-bottom: 15px; }
  .res-top .pill { background: none !important; color: #000 !important; font-size: 10pt !important; font-weight: 700 !important; border: 1px solid #000; }
  .net { color: #000 !important; font-size: 22pt !important; font-weight: 800 !important; margin: 5px 0 !important; -webkit-text-fill-color: #000 !important; }
  .net-sub { color: #333 !important; font-size: 10pt !important; }
  .break { width: 100% !important; margin-top: 15px !important; }
  .break th { color: #000 !important; border-bottom: 1px solid #ccc !important; font-size: 10pt !important; padding: 6px 0 !important; }
  .break td { color: #000 !important; border-bottom: 1px solid #ccc !important; font-size: 10pt !important; padding: 6px 0 !important; font-weight: 600 !important; }
  .break tr.strong th, .break tr.strong td { font-weight: 800 !important; border-top: 2px solid #000 !important; border-bottom: 2px solid #000 !important; }
}


/* Editorial Images & Figures */
.img-figure{margin:1.8rem 0;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:var(--sh)}
.img-figure img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.img-figure.fig-diagram img{aspect-ratio:5/3}
.img-figure figcaption{padding:.65rem .9rem;font-size:.82rem;color:var(--mute);background:var(--bg);border-top:1px solid var(--line);display:flex;align-items:center;gap:.5rem}
.img-figure figcaption svg{width:15px;height:15px;flex-shrink:0;stroke:var(--blue)}
.hero-img-wrap{margin:1.5rem auto 0;max-width:900px;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-l);border:1px solid var(--line)}
.hero-img-wrap img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.logo.logo-usa{background:transparent;box-shadow:none;border-radius:0}
.logo.logo-usa svg{width:30px;height:30px}
/* mobile: 16px form text prevents iOS zoom on focus; comfortable tap targets */
@media(max-width:899px){
  input,select,textarea{font-size:16px}
  .menu summary{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
  .menu-panel a{padding:.75rem .5rem}
  .seg button{min-height:44px}
}

p a:not(.btn),.prose li a,.faq a,.note a{text-decoration:underline;text-underline-offset:2px}

.foot-state-links{display:flex;flex-wrap:wrap;gap:.15rem 1rem}.foot-state-links a{color:#475569;font-size:.84rem;padding:.2rem 0;min-height:24px}.foot-state-links a:hover{color:var(--blue)}
