/* Calculator pages: shared by the income tax page and every kit-built calculator */

/* Hero */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:center;padding-top:40px;padding-bottom:132px}
.crumbs{font-size:14.5px;color:var(--sky-on-navy);margin:0 0 22px}
.crumbs a{color:var(--sky-on-navy);text-decoration:none}
.crumbs a:hover{color:#fff}
.hero h1{font-size:clamp(34px,4.6vw,58px);line-height:1.04;font-weight:700;letter-spacing:-0.035em;max-width:15ch}
.hero .lede{font-size:clamp(17px,1.5vw,19px);color:#C9D9E8;margin:20px 0 34px;max-width:46ch;line-height:1.55}

.hero-art{position:relative;justify-self:end;width:min(100%,420px)}
.shield{width:100%;aspect-ratio:420/470;position:relative}
.shield img{width:100%;height:100%;object-fit:cover;clip-path:url(#shieldClip)}
.sms{position:absolute;left:-56px;bottom:56px;width:300px;background:#fff;color:var(--navy);border-radius:16px;padding:14px 16px 14px 14px;display:flex;gap:12px;box-shadow:0 24px 48px -16px rgba(0,0,0,.45);font-size:14.5px;line-height:1.35}
.sms-icon{width:36px;height:36px;border-radius:10px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex:none}
.sms-icon svg{width:20px;height:20px}
.sms b{display:block;font:600 14px/1.2 var(--display);margin-bottom:2px}
.sms .amt{font:700 20px/1.2 var(--display);letter-spacing:-0.02em;display:block;margin-top:2px}
.sms small{color:var(--mute);font-size:12.5px}
.photo-credit{position:absolute;right:0;bottom:-26px;font-size:11.5px;color:#6F8DA9}
.photo-credit a{color:inherit}

/* Calculator */
.calc{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:28px;align-items:start;margin-top:-92px;position:relative;z-index:2}
.card{background:#fff;border-radius:var(--r-l);box-shadow:var(--shadow-paper);padding:10px 32px 28px}
.basics{display:flex;gap:16px;flex-wrap:wrap;padding:20px 0 22px;border-bottom:1px solid var(--line)}
.basics > div{flex:1;min-width:220px}
.step{padding:26px 0 24px;border-bottom:1px solid var(--line)}
.step:last-of-type{border-bottom:0;padding-bottom:6px}
.step-head{display:flex;gap:14px;align-items:baseline;margin-bottom:6px}
.step-no{font:700 15px/1 var(--display);color:var(--blue);width:28px;height:28px;border-radius:50%;background:#E6F1FC;display:grid;place-items:center;flex:none;transform:translateY(5px)}
.step h2{font-size:21px;line-height:1.3;font-weight:600;letter-spacing:-0.015em}
.step-hint{margin:0 0 18px 42px;color:var(--mute);font-size:15.5px;line-height:1.45}
.step-body{margin-left:42px}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 20px}
.fld label,.lbl{display:block;font:500 15px/1.3 var(--display);margin-bottom:7px;letter-spacing:-0.005em}
.fld .help{display:block;color:var(--mute);font-size:14px;line-height:1.35;margin-top:6px;min-height:1.35em}
.only-old{white-space:nowrap;display:inline-block;font:500 12px/1 var(--body);color:var(--steel);background:var(--mist);border-radius:999px;padding:3px 8px;margin-left:6px;vertical-align:2px;letter-spacing:0}
.money{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:var(--r-s);background:#fff;transition:border-color .15s, box-shadow .15s}
.money:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(1,120,217,.14)}
.money > span{padding-left:14px;color:var(--mute);font-weight:500}
.money input{flex:1;width:100%;min-width:0;border:0;background:transparent;font:600 18px/1 var(--display);letter-spacing:-0.01em;color:var(--navy);padding:14px 14px 14px 6px}
.money input:focus{outline:none}
.money input::placeholder{color:#A9B9C9;font-weight:500}
.money .per{padding:0 12px 0 0;color:var(--mute);font-size:14.5px;white-space:nowrap}
.salary-row{display:flex;gap:12px;align-items:flex-start}
.salary-row .money{flex:1}
.salary-row .money input{font-size:22px;padding:16px 14px 16px 6px}

.seg{display:inline-flex;background:var(--mist);border-radius:999px;padding:4px;gap:2px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:block;padding:9px 16px;border-radius:999px;font:500 14.5px/1.2 var(--display);color:var(--steel);white-space:nowrap}
.seg input:checked + span{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(7,39,67,.18)}
.seg input:focus-visible + span{outline:3px solid var(--blue);outline-offset:1px}
.salary-row .seg{margin-top:9px}
.note{font-size:14px;color:var(--mute);margin:8px 0 0}

select.city{appearance:none;width:100%;border:1.5px solid var(--line);border-radius:var(--r-s);padding:14px 40px 14px 14px;font:500 17px var(--display);color:var(--navy);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23436581' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center/20px no-repeat;cursor:pointer}
select.city:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(1,120,217,.14)}
.metro-note{font-size:14px;margin:8px 0 0;color:var(--green);font-weight:500}
.metro-note.no{color:var(--mute);font-weight:400}

.check{display:flex;gap:10px;align-items:center;font-size:15.5px;margin-top:10px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--navy)}

details.more{margin-top:22px;border-top:1px dashed var(--line);padding-top:18px}
details.more summary{cursor:pointer;list-style:none;font:500 15.5px/1.3 var(--display);color:var(--blue);display:inline-flex;gap:8px;align-items:center}
details.more summary::-webkit-details-marker{display:none}
details.more summary::before{content:"+";width:22px;height:22px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:15px;line-height:1}
details.more[open] summary::before{content:"−"}
details.more .grid2{margin-top:18px}


/* Field groups by regime */
.grp{display:flex;align-items:center;gap:12px;margin:22px 0 14px;font:500 13.5px/1.2 var(--display);color:var(--steel)}
.grp::after{content:"";flex:1;height:1px;background:var(--line)}
.step-body > .grp:first-child,details.more > .grp:first-of-type{margin-top:4px}
details.more .grid2{margin-top:0}
details.more summary{margin-bottom:6px}
/* Paired fields: labels share a two-line slot, so inputs in a row always line up */
.grid2 > .fld > label:first-child{display:flex;align-items:flex-end}
.help[hidden],.check[hidden]{display:none}
.fld .help:empty{display:none}
.salary-row .money{flex:0 1 340px}

/* Result */
.result{position:sticky;top:92px;background:var(--navy);color:#fff;border-radius:var(--r-l);padding:28px 26px 0;overflow:hidden;box-shadow:0 0 0 1px var(--navy-line), var(--shadow-paper)}
.year-line{font-size:14.5px;color:var(--sky-on-navy);margin:0}
.verdict{font:600 26px/1.2 var(--display);letter-spacing:-0.02em;margin:6px 0 4px}
.slip-note{font-size:13px;color:var(--sky-on-navy);margin:6px 0 0}
.slip-note.warn{color:#FFB46B;font-weight:500;font-size:14px}

details.how{margin:18px 0 0;border-top:1px solid var(--navy-line);padding:14px 0}
details.how + details.how{margin-top:0}
details.how summary{cursor:pointer;padding:12px 0;margin:-12px 0;list-style:none;font:500 15px/1.3 var(--display);color:#fff;display:flex;justify-content:space-between}
details.how summary::-webkit-details-marker{display:none}
details.how summary::after{content:"+";color:var(--sky-on-navy);font-size:20px;line-height:.8}
details.how[open] summary::after{content:"−"}
.how table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}
.how th{font:500 13px var(--display);color:var(--sky-on-navy);text-align:right;padding:6px 0 6px 10px}
.how th:first-child{text-align:left;padding-left:0}
.how td{padding:5px 0 5px 10px;text-align:right;color:#fff;font-family:var(--display);font-size:13.5px}
.basic-fld{margin-top:18px;max-width:340px}
.basic-fld.need .money{border-color:var(--orange)}
.limits{padding-top:12px}
.limits ul{margin:10px 0 0;padding-left:1.1em;color:#C9D9E8;font-size:14.5px;line-height:1.5}
.limits li{margin:4px 0}
.how td:first-child{text-align:left;padding-left:0;color:#C9D9E8;font-family:var(--body);font-size:14.5px}
.how tr.sum td{border-top:1px solid var(--navy-line);font-weight:600;color:#fff}

.nudge{background:var(--orange-soft);color:var(--navy);margin:0 -26px;padding:20px 26px 24px}
.nudge p{margin:0 0 14px;font-size:16.5px;line-height:1.45}
.nudge p b{font-weight:600}
.nudge .btn{width:100%}
.nudge small{display:block;text-align:center;color:var(--steel);font-size:13.5px;margin-top:10px}

/* Expert section */
.expert{padding:120px 0 96px}
.expert .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:center}
.expert h2{font-size:clamp(30px,3.6vw,44px);line-height:1.08;font-weight:700;letter-spacing:-0.03em;max-width:13ch}
.expert .lede{color:var(--steel);font-size:18px;margin:18px 0 28px;max-width:42ch}
.expert-facts{display:flex;gap:28px;margin-top:26px;flex-wrap:wrap}
.expert-facts div{font-size:15px;color:var(--steel);display:flex;gap:8px;align-items:center}
.expert-facts svg{width:20px;height:20px;color:var(--green);flex:none}


/* Expert conversations: one at a time, auto-advancing */
.thread{background:var(--mist);border-radius:var(--r-l);padding:24px 28px 20px}
.thread-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.thread-label{margin:0;font:500 14.5px var(--display);color:var(--steel)}
.thread-pause{width:34px;height:34px;border-radius:50%;border:0;background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 2px rgba(7,39,67,.12)}
.thread-pause svg{width:14px;height:14px}
.thread-pause .i-play,.thread.is-paused .thread-pause .i-pause{display:none}
.thread.is-paused .thread-pause .i-play{display:block}
.convos{display:grid}
.convo{grid-area:1/1;display:grid;gap:12px;align-content:start}
.convo[hidden]{display:grid !important;visibility:hidden}
.who{justify-self:end;display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--steel)}
.who b{color:var(--navy);font-weight:600}
.av{width:34px;height:34px;border-radius:50%;flex:none;object-fit:cover;display:grid;place-items:center;font:600 13px var(--display);background:#DCE8F4;color:var(--navy)}
.msg{display:flex;gap:10px;align-items:flex-end;max-width:88%}
.msg p{margin:0;padding:13px 17px;font-size:16px;line-height:1.45;border-radius:18px}
.msg.q{justify-self:end}
.msg.q p{background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.msg.a p{background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(7,39,67,.08)}
.msg.a .av{background:#fff;box-shadow:0 1px 2px rgba(7,39,67,.12)}
.msg.a .av img{width:22px;height:22px}
.typing{justify-self:start;margin-left:44px;background:#fff;border-radius:18px 18px 18px 4px;padding:14px 16px;display:none;gap:5px;box-shadow:0 1px 2px rgba(7,39,67,.08)}
.typing span{width:7px;height:7px;border-radius:50%;background:#9DB0C3;animation:blink 1s infinite}
.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
/* Sequence: question, typing, answer */
.convo.play .who,.convo.play .msg.q{animation:pop .35s ease-out both}
.convo.play .typing{display:flex;animation:typing 1.5s .5s both}
.convo.play .msg.a{animation:pop .35s 1.9s ease-out both}
@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes typing{0%{opacity:0;max-height:60px;padding:14px 16px;margin-top:0}10%,85%{opacity:1;max-height:60px;padding:14px 16px;margin-top:0}100%{opacity:0;max-height:0;padding:0 16px;margin-top:-12px}}
.dots{display:flex;gap:6px;margin-top:20px}
.dot{width:8px;height:8px;border-radius:999px;border:0;padding:0;background:#C3D0DD;cursor:pointer;transition:width .25s, background .25s}
.dot[aria-current="true"]{width:26px;background:var(--navy)}
.dot:hover{background:var(--steel)}
.thread-note{margin:12px 0 0;font-size:13px;color:var(--mute)}
@media (prefers-reduced-motion:reduce){.convo.play .typing{display:none}}

/* Slabs + FAQ */
.learn{background:var(--mist);padding:88px 0}
.learn .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}
.learn h2{font-size:clamp(26px,2.8vw,34px);line-height:1.15;font-weight:700;letter-spacing:-0.025em}
.learn .sub{color:var(--steel);margin:10px 0 22px}
.tabs{display:inline-flex;background:#fff;border-radius:999px;padding:4px;margin-bottom:16px;box-shadow:inset 0 0 0 1px var(--line)}
.tabs button{border:0;background:transparent;border-radius:999px;padding:9px 18px;font:500 15px var(--display);color:var(--steel);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--navy);color:#fff}
.slab-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r-m);overflow:hidden;font-size:16px}
.slab-table th,.slab-table td{padding:13px 18px;text-align:left;border-bottom:1px solid var(--line)}
.slab-table th{font:500 14px var(--display);color:var(--steel)}
.slab-table td:last-child,.slab-table th:last-child{text-align:right;font-family:var(--display);font-weight:600}
.slab-table tr:last-child td{border-bottom:0}
.slab-foot{font-size:14.5px;color:var(--mute);margin:12px 0 0}
.faq details{border-bottom:1px solid #D3DDE7;padding:0}
.faq details[open]{padding-bottom:18px}
.faq details:first-of-type{border-top:1px solid #D3DDE7;margin-top:22px}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font:500 17.5px/1.4 var(--display);letter-spacing:-0.01em;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue);font-size:24px;line-height:1;font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq p{margin:10px 0 0;color:#2B4A67;max-width:60ch}

/* More calculators */
.more-calcs{padding:88px 0 96px}
.more-calcs h2{font-size:clamp(26px,2.8vw,34px);line-height:1.15;font-weight:700;letter-spacing:-0.025em}
.more-calcs .sub{color:var(--steel);margin:10px 0 30px}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--line);border-radius:var(--r-m);overflow:hidden;border:1px solid var(--line)}
.tile{background:#fff;padding:26px 24px;display:flex;gap:16px;align-items:flex-start;text-decoration:none;color:var(--navy)}
.tile .ico{width:44px;height:44px;border-radius:12px;background:var(--mist);color:var(--navy);display:grid;place-items:center;flex:none}
.tile .ico svg{width:24px;height:24px}
.tile h3{font:600 17px/1.3 var(--display);letter-spacing:-0.01em}
.tile p{margin:4px 0 0;color:var(--mute);font-size:15px;line-height:1.45}
.tile .soon{display:inline-block;margin-top:10px;font:500 12.5px/1 var(--display);color:var(--steel);background:var(--mist);border-radius:999px;padding:5px 9px}


/* Trust points (hero) */
.trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px}
.trust li{display:flex;align-items:center;gap:8px;font-size:15.5px;color:#DCE7F1}
.trust svg{width:18px;height:18px;color:var(--green-on-navy);flex:none}

/* Result: empty and filled states */
.empty-sub{color:#C9D9E8;font-size:16px;margin:6px 0 0;max-width:38ch}
.gain{margin:2px 0 0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
#gainAmt{font:700 clamp(36px,3.4vw,44px)/1.05 var(--display);letter-spacing:-0.03em;color:var(--green-on-navy)}
.gain-unit{font:600 20px/1.2 var(--display);color:var(--green-on-navy)}
.gain-sub{color:#C9D9E8;font-size:16px;margin:6px 0 0}

/* Per month / per year */
.view-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px;flex-wrap:wrap}
.view-label{font:500 14px var(--display);color:var(--sky-on-navy)}
.seg-dark{background:var(--navy-2);box-shadow:inset 0 0 0 1px var(--navy-line)}
.seg-dark span{color:var(--sky-on-navy)}
.seg-dark input:checked + span{background:#fff;color:var(--navy)}

/* Comparison table */
.cmp{width:100%;border-collapse:separate;border-spacing:0;background:#fff;color:var(--navy);border-radius:var(--r-m);overflow:hidden;table-layout:fixed}
.cmp th,.cmp td{padding:12px 14px;text-align:right;border-bottom:1px solid var(--line);vertical-align:bottom}
.cmp thead th{font:600 15px/1.25 var(--display);letter-spacing:-0.01em;padding-top:16px;vertical-align:top}
.cmp thead th:first-child{width:36%}
.cmp tbody th{text-align:left;font:500 14.5px/1.25 var(--display);color:var(--navy)}
.cmp tbody th small{display:block;font:400 13px/1.3 var(--body);color:var(--mute);margin-top:2px}
.cmp td{font:600 16px/1.2 var(--display);letter-spacing:-0.01em;white-space:nowrap}
.cmp tr:last-child th,.cmp tr:last-child td{border-bottom:0}
.cmp .take th,.cmp .take td{background:var(--mist)}
.cmp .take td{font-size:19px;font-weight:700}
.cmp .ti th,.cmp .ti td{font-size:14px}
.cmp .ti td{font-weight:500;color:var(--steel)}
.cmp .tag{display:none;margin:6px 0 0 auto;width:max-content;font:600 11.5px/1 var(--display);color:var(--green);background:var(--green-soft);border-radius:999px;padding:5px 8px}
.cmp .win{background:#F2FBF6}
.cmp .take .win{background:var(--green-soft)}
.cmp .take td.win{color:#017A42}
.cmp thead th.win .tag{display:block}
.ex-pill{display:inline-block;margin:10px 0 4px;font:500 13px/1 var(--display);color:var(--navy);background:#FFD9B3;border-radius:999px;padding:7px 11px}
.is-example #gainAmt,.is-example .gain-unit{color:#C9D9E8}
.cmp.example td{color:var(--steel)}
.cmp.example .take td.win{color:var(--steel)}
.cmp.example .win,.cmp.example .take .win{background:#F6F9FC}
.cmp.example .tag{color:var(--steel);background:var(--mist)}


/* Nudge: quiet until the visitor has entered their numbers */
.nudge.quiet{background:var(--navy-2);color:#DCE7F1;border-top:1px solid var(--navy-line)}
.nudge.quiet .btn{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px #5B87B0}
.nudge.quiet .btn:hover{box-shadow:inset 0 0 0 1.5px #fff}
.nudge.quiet small{color:var(--sky-on-navy)}
.nudge:not(.quiet) .btn{background:var(--orange);color:var(--navy)}
.nudge:not(.quiet) .btn:hover{background:var(--orange-hover)}


/* Illustrations and icons */
.hero-ill{display:none}
.step-ico{position:relative;width:48px;height:48px;flex:none;transform:translateY(6px)}
.step-ico img{width:48px;height:48px;display:block}
.step-ico .step-no{position:absolute;right:-6px;bottom:-4px;width:22px;height:22px;font-size:12px;background:var(--navy);color:#fff;box-shadow:0 0 0 2px #fff;transform:none}
.step-head{align-items:center;gap:16px}
.step-hint,.step-body{margin-left:64px}
.tile .ico{width:56px;height:56px;background:var(--mist);border-radius:14px}
.tile .ico img{width:44px;height:44px}
.spot-ill{width:min(100%,400px);height:auto;margin:0 0 20px;display:block;-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent);mask-image:linear-gradient(180deg,#000 78%,transparent)}
.slab-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.slab-head img{width:240px;height:auto;flex:none;margin:0 0 6px}
@media (min-width:641px) and (max-width:1080px){
  /* Tablet: expert text on the left, illustration on the right; conversations full width below */
  .expert-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,40%);column-gap:36px;align-items:center;
    grid-template-areas:"h2 ill" "lede ill" "cta ill" "facts facts"}
  .expert-text .spot-ill{grid-area:ill;width:100%;margin:0}
  .expert-text h2{grid-area:h2;align-self:end} .expert-text .lede{grid-area:lede}
  .expert-text > .btn{grid-area:cta;justify-self:start;align-self:start} .expert-facts{grid-area:facts}
}
@media (max-width:860px){
  /* Tablet: illustration beside the headline, so the right half isn't empty */
  .hero-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,38%);column-gap:28px;align-items:center;
    grid-template-areas:"crumbs crumbs" "h1 ill" "lede ill" "trust trust"}
  .hero .crumbs{grid-area:crumbs} .hero h1{grid-area:h1;align-self:end} .hero .lede{grid-area:lede;align-self:start}
  .hero-ill{grid-area:ill;display:block;width:100%;height:auto;margin:0}
  .trust{grid-area:trust}
}
@media (max-width:640px){
  .step-hint,.step-body{margin-left:0}
  .step-ico{width:40px;height:40px}
  .step-ico img{width:40px;height:40px}
  .hero-text{display:block}
  .hero-ill{width:190px;margin:0 0 16px}
  .slab-head{flex-direction:column;align-items:flex-start}
  .slab-head img{width:220px;margin:12px 0 4px}
  .spot-ill{width:240px}
}

/* Mobile result bar */
.mbar{display:none}

@media (max-width:1080px){
  .calc{grid-template-columns:minmax(0,1fr)}
  .result{position:static}
  .expert .wrap,.learn .wrap{grid-template-columns:minmax(0,1fr);gap:40px}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:minmax(0,1fr);padding-bottom:112px}
  .hero-art{display:none}
}
@media (max-width:640px){
  .hero .wrap{padding-top:24px;padding-bottom:96px}
  .crumbs{margin-bottom:14px}
  .hero .lede{margin:14px 0 24px}
        .calc{margin-top:-72px;gap:20px}
  .card{padding:4px 18px 22px;border-radius:var(--r-m)}
  .step-hint,.step-body{margin-left:0}
  .step-hint{margin-top:6px}
  .grid2{grid-template-columns:1fr;gap:14px}
  .fld .help:empty{display:none}
  .salary-row{flex-direction:column;gap:10px}
  .salary-row .seg{margin-top:0}
  .basics > div{min-width:0;flex-basis:100%}
  .result{border-radius:var(--r-m);padding:24px 18px 0}
  .cmp th,.cmp td{padding:11px 10px}
  .cmp thead th:first-child{width:34%}
  .cmp td{font-size:15px}
  .cmp .take td{font-size:16.5px}
  .trust li{font-size:14.5px}
  .nudge{margin:0 -18px;padding:18px 18px 22px}
  .hero h1{font-size:31px}
  .expert{padding:72px 0 64px}
      .thread{padding:18px 16px 16px;border-radius:var(--r-m)}
  .msg{max-width:94%}
  .msg p{font-size:15.5px}
  .learn,.more-calcs{padding:64px 0}
  .tiles{grid-template-columns:1fr}
  .tile{padding:20px}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--navy);color:#fff;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));align-items:center;gap:12px;transform:translateY(110%);transition:transform .25s}
  .mbar.show{transform:none}
  .mbar a{flex:1;color:#fff;text-decoration:none;line-height:1.25;min-width:0}
  .mbar .m-l{display:block;font-size:13px;color:var(--sky-on-navy)}
  .mbar .m-v{display:block;font:600 17px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mbar .btn{padding:12px 16px;font-size:15px}
  body.has-mbar{padding-bottom:72px}
}
.scope-note{margin:10px 0 0;font-size:14px;line-height:1.45;color:#FFD9B3;border-left:3px solid #FFB46B;padding:2px 0 2px 10px}
.sources{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:14.5px;color:var(--mute)}
.sources p{margin:0 0 8px}
.sources b{color:var(--navy);font-weight:600}
.sources ul{list-style:none;margin:0;padding:0}
.sources li{margin:6px 0}
.sources a{color:var(--navy);font-weight:500}
.sources li span{display:block;font-size:13px}
.trust a{color:inherit;text-decoration:underline;text-decoration-color:rgba(220,231,241,.4);text-underline-offset:3px}
.trust a:hover{text-decoration-color:currentColor}
.more-note{margin:12px 0 0;font-size:14.5px;line-height:1.45;color:var(--mute)}
.parity{margin:4px 0 12px}
.parity summary{cursor:pointer;padding:12px 0;margin:-12px 0;color:var(--blue);font:500 14.5px/1.3 var(--display);list-style:none;display:inline-flex;gap:6px;align-items:center}
.parity summary::-webkit-details-marker{display:none}
.parity summary::after{content:"+";font-size:16px}
.parity[open] summary::after{content:"−"}
.parity p{margin:10px 0;font-size:14px}
.parity table{width:100%;border-collapse:collapse;font-size:14px;background:var(--paper);border-radius:var(--r-s);overflow:hidden}
.parity th,.parity td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.parity th:first-child,.parity td:first-child{text-align:left}
.parity th{font:500 13px/1.2 var(--display);color:var(--steel)}
.parity tr:last-child td{border-bottom:0}

/* ---------- Calculator kit (pages built from src/templates/calculator.html) ---------- */
.hero-fig{justify-self:end;width:min(100%,460px)}
.hero-fig img{width:100%;height:auto;display:block}
@media (max-width:860px){ .hero-fig{display:none} }
.money.plain input{padding-left:14px}
.fld.wide{grid-column:1 / -1}
.scope-note p{margin:0}
.scope-note p + p{margin-top:6px}

/* Key figures */
.stats{margin:22px 0 0;background:#fff;color:var(--navy);border-radius:var(--r-m);overflow:hidden}
.stats .st{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line)}
.stats .st:last-child{border-bottom:0}
.stats dt{font:500 14.5px/1.3 var(--display);color:var(--navy)}
.stats dt small{display:block;font:400 13px/1.3 var(--body);color:var(--mute);margin-top:2px}
.stats dd{margin:0;font:600 17px/1.2 var(--display);letter-spacing:-0.01em;white-space:nowrap;text-align:right}
.stats .strong{background:var(--mist)}
.stats .strong dd{font-size:20px;font-weight:700}
.stats .tone-gain.strong{background:var(--green-soft)}
.stats .tone-gain dd{color:#017A42}
.stats .tone-tax dd{color:#B4540A}
.stats.example dd,.stats.example .tone-gain dd{color:var(--steel)}
.stats.example .strong{background:#F6F9FC}

/* Charts */
.kit-chart{margin:22px 0 0}
.kit-chart .split{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--navy-2);gap:2px}
.kit-chart .split span{display:block;height:100%;min-width:2px;transition:width .35s ease}
.kit-chart svg{display:block;width:100%;height:150px}
.kit-chart .ticks{position:relative;height:18px;margin-top:6px;font-size:12.5px;color:var(--sky-on-navy)}
.kit-chart .ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.kit-chart .ticks span:first-child{transform:none}
.kit-chart .ticks span:last-child:not(:first-child){transform:translateX(-100%)}
.legend{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.legend li{display:flex;align-items:center;gap:8px;font-size:14.5px;color:#DCE7F1}
.legend i{width:10px;height:10px;border-radius:3px;flex:none}
.legend b{margin-left:auto;font:600 14.5px var(--display);color:#fff}
.kit-chart.example{opacity:.6}
.sched-wrap{max-height:340px;overflow:auto;margin-top:10px}
.kit-table table{width:100%;border-collapse:collapse;font-size:13.5px}
.kit-table th{position:sticky;top:0;background:var(--navy);font:500 12.5px var(--display);color:var(--sky-on-navy);text-align:right;padding:6px 0 6px 8px}
.kit-table td{padding:5px 0 5px 8px;text-align:right;color:#fff;font-family:var(--display);white-space:nowrap}
.kit-table th:first-child,.kit-table td:first-child{text-align:left;padding-left:0}

/* Explainer beside the FAQ */
.explain .rule-list{margin:0 0 26px;padding-left:1.3em;display:grid;gap:10px;font-size:16.5px;line-height:1.5;color:#2B4A67}
.explain .rule-list b{color:var(--navy);font-weight:600}
.explain .mini-h{font:600 18px/1.3 var(--display);letter-spacing:-0.01em;margin:0 0 12px}
.explain p{color:#2B4A67}
.explain .slab-table td:not(:first-child),.explain .slab-table th:not(:first-child){text-align:right}

/* Expert section on kit pages: a short static exchange */
.kit-thread .thread-label{margin-bottom:16px}
.kit-thread{display:grid;gap:12px;align-content:start}
.kit-thread .msg{max-width:88%}

/* Related and hub tiles */
a.tile{transition:background .15s}
a.tile:hover{background:#F7FAFD}
a.tile:hover h3{color:var(--blue)}
.tile .ico-glyph{color:var(--steel)}
.tile .ico-glyph svg{width:28px;height:28px}
.more-calcs .sub a{color:var(--blue);font-weight:500}

/* /calculators/ hub */
.hub-hero .wrap{padding-bottom:72px;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.hub-ill{width:100%;max-width:420px;height:auto;justify-self:end}
.hub-count{margin:0;color:var(--sky-on-navy);font-size:16px}
.hub-count b{color:#fff;font:700 20px var(--display)}
.hub-nav{display:flex;flex-wrap:wrap;gap:8px;margin:32px 0 8px}
.hub-nav a{font:500 14.5px/1 var(--display);color:var(--navy);background:var(--mist);border-radius:999px;padding:10px 14px;text-decoration:none}
.hub-nav a:hover{background:#E3ECF5}
.hub-group{padding:40px 0 8px;scroll-margin-top:90px}
.hub-group h2{font-size:clamp(24px,2.4vw,30px);line-height:1.15;font-weight:700;letter-spacing:-0.02em;margin-bottom:18px}
.hub-group:last-child{padding-bottom:96px}
@media (max-width:860px){ .hub-hero .wrap{grid-template-columns:minmax(0,1fr)} .hub-ill{display:none} }
.ex-pill{line-height:1.35}
.hub-group .tiles{background:transparent;gap:0;border:0;border-radius:0;overflow:visible}
.hub-group .tile{border:1px solid var(--line);margin:0 -1px -1px 0}
.kit .seg{max-width:100%;flex-wrap:wrap}
@media (max-width:640px){ .kit .seg span{padding:9px 13px} }
.hero-fig img{filter:drop-shadow(0 18px 30px rgba(0,0,0,.28))}
.result[data-tone="tax"] #gainAmt,.result[data-tone="tax"] .gain-unit{color:#FFB46B}
.result[data-tone="neutral"] #gainAmt,.result[data-tone="neutral"] .gain-unit{color:#fff}
.result.is-example #gainAmt,.result.is-example .gain-unit{color:#C9D9E8}
@media (max-width:420px){
  .explain .slab-table{font-size:14px}
  .explain .slab-table th,.explain .slab-table td{padding:10px 8px;overflow-wrap:anywhere}
}

/* Text inputs for codes (GSTIN, IFSC, HSN): shown in capitals as typed, evenly spaced */
.money.text input:not(:placeholder-shown) { text-transform: uppercase; letter-spacing: .04em; }

/* Lookup results (IFSC branches, HSN codes): text columns, left aligned, wrapping; codes stay on one line */
.how.is-text th,.how.is-text td{text-align:left;white-space:normal;vertical-align:top}
.how.is-text td{font-family:var(--body);font-size:14px;line-height:1.4;padding-right:10px}
.how.is-text td:first-child{font-family:var(--display);white-space:nowrap;color:#fff;font-size:13.5px}
.how.is-text .sched-wrap{max-height:460px}

/* Print button (document tools such as rent receipts) */
.btn-print{width:100%;margin-top:14px;background:#fff;color:var(--navy);border:1.5px solid #fff}
.btn-print:hover{background:var(--mist)}
#printDoc{display:none}
/* When printing a document, only the document prints */
@media print{
  body.has-print-doc > *:not(#printDoc){display:none !important}
  body.has-print-doc #printDoc{display:block}
  body.has-print-doc{background:#fff}
}
.rr{border:1.5px solid #1b2a3a;border-radius:6px;padding:18px 22px;margin:0 0 14px;font:400 13.5px/1.55 "Mukta",Arial,sans-serif;color:#111;break-inside:avoid;page-break-inside:avoid}
.rr h2{font:600 17px "Poppins",Arial,sans-serif;margin:0 0 4px;letter-spacing:.02em}
.rr .rr-meta{display:flex;justify-content:space-between;font-size:12.5px;color:#444;margin-bottom:10px}
.rr p{margin:0 0 8px}
.rr .rr-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:18px;gap:16px}
.rr .rr-sign{min-width:200px;border-top:1px solid #333;padding-top:4px;text-align:center;font-size:12.5px}
.rr .rr-stamp{width:62px;height:70px;border:1px dashed #666;display:flex;align-items:center;justify-content:center;text-align:center;font-size:10.5px;color:#555}
.rr .rr-land{font-size:12.5px}
.rr-summary{break-after:page;page-break-after:always}
.rr-table{width:100%;border-collapse:collapse;margin:6px 0 12px;font-size:13px}
.rr-table th,.rr-table td{border-bottom:1px solid #ccc;padding:4px 6px;text-align:left}
.rr-table td:last-child,.rr-table th:last-child{text-align:right}
.rr-table .rr-total td{font-weight:600;border-top:1.5px solid #333}
