/* Two Shores (tax): a well-kept official form. Warm white paper, black hairlines, boxed numbered fields,
   serif prose, monospace for amounts, dates and form numbers. One navy ink accent; red only for deadlines and warnings. */
:root{
  --paper:#f8f6f0;--paper-hi:#fffefb;--ink:#16181d;--ink-2:#30333a;--sub:#5b5f68;
  --line:rgba(22,24,29,.30);--hair:rgba(22,24,29,.13);--rule:#16181d;
  --navy:#1d2d57;--navy-2:#2c3f73;--navy-tint:#eceff6;
  --zhu:#a8261b;--zhu-lite:#d65a4c;--red-tint:#f8ebe8;
  --gold:#1d2d57;--cream:#f8f6f0;--ok:#2d6a46;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
html{background:var(--paper)}
body{font-family:var(--serif);font-size:17.5px;line-height:1.62;color:var(--ink);background:var(--paper);background-image:none;font-feature-settings:normal}
a{color:var(--navy);text-decoration-color:rgba(29,45,87,.4);text-underline-offset:3px}
a:hover{text-decoration-color:var(--navy)}
h1,h2,h3,.brand{font-family:var(--serif);color:var(--ink)}
.wrap{max-width:880px}
.sheet{max-width:1040px;margin:0 auto;padding:0 24px 80px}

/* ── Header: double rule like the top of a form ── */
.sitebar{padding:18px 0 14px;margin-bottom:34px;border-bottom:3px double var(--rule)}
.brand{font:600 22px/1 var(--serif);letter-spacing:-.005em;gap:11px}
.brandname{position:relative}
.sitenav{gap:4px 22px}
.sitenav a{font:500 12.5px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--sub)}
.sitenav a:hover{color:var(--navy)}
.sitenav a.on{color:var(--navy);box-shadow:inset 0 -2px 0 var(--navy)}

/* ── Type ── */
.kicker{font:500 12.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin:0 0 12px}
h1{font-size:clamp(31px,4.6vw,44px);line-height:1.12;font-weight:600;letter-spacing:-.015em;margin:0 0 12px;overflow-wrap:anywhere}
.sub{font-size:18px;color:var(--ink-2);max-width:62ch;line-height:1.6}
h2{font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:-.005em;margin:40px 0 10px;padding-top:12px;border-top:1px solid var(--rule);display:block}
h3{font-weight:600}
ol,ul{padding-left:1.4em}
li{margin:4px 0}
#out ol{counter-reset:li;list-style:none;padding-left:0}
#out ol>li{counter-increment:li;position:relative;padding:8px 0 8px 44px;border-bottom:1px solid var(--hair);margin:0}
#out ol>li::before{content:counter(li);position:absolute;left:0;top:9px;width:26px;height:26px;border:1px solid var(--rule);font:500 13px/24px var(--mono);text-align:center}
#out ol.hits>li{padding:0;border:0}
#out ol.hits>li::before{content:none}

/* Tool pages: a small form-number line above the title */
.tool .wrap>h1::before{display:block;font:500 12.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:12px;content:"Worksheet"}
.tool-substantial-presence .wrap>h1::before{content:"Worksheet · IRC §7701(b)"}
.tool-fbar-8938 .wrap>h1::before{content:"Worksheet · FinCEN 114 · Form 8938"}
.tool-fx-rates .wrap>h1::before{content:"Reference · Treasury rates of exchange"}
.tool-firpta .wrap>h1::before{content:"Worksheet · IRC §1445 · Form 8288"}
.tool-estate-tax .wrap>h1::before{content:"Worksheet · Form 706 · 706-NA"}
.tool-83b-deadline .wrap>h1::before{content:"Deadline · IRC §83(b) · Form 15620";color:var(--zhu)}

/* ── Card = a form panel ── */
.card{background:var(--paper-hi);border:1px solid var(--rule);border-radius:0;box-shadow:none;padding:22px 22px 18px;margin:26px 0;counter-reset:ln}
.card>.note:first-child{margin-top:0}
.note{font:14px/1.6 var(--serif);color:var(--sub);font-style:italic}

/* Boxed, numbered fields: label in small caps at top-left, the value below */
.form{gap:0;align-items:stretch;margin:0 0 14px;padding:0 1px 1px 0}
.form>label{position:relative;display:flex;flex-direction:column;gap:2px;background:var(--paper-hi);border:1px solid var(--rule);margin:0 -1px -1px 0;padding:7px 12px 6px 12px;min-height:66px;font:500 11px/1.35 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.form>label>span:first-child::before{counter-increment:ln;content:counter(ln);display:inline-block;min-width:18px;height:16px;padding:0 3px;margin-right:7px;background:var(--ink);color:var(--paper-hi);font:600 10.5px/16px var(--mono);text-align:center;letter-spacing:0;vertical-align:1px}
.form>label:focus-within{background:var(--navy-tint);box-shadow:inset 0 0 0 1px var(--navy);z-index:1}
.form input,.form select,input,select{font:500 16.5px var(--mono);color:var(--ink);background:transparent;border:0;border-radius:0;padding:4px 0 2px;min-height:34px;width:100%;box-shadow:none}
.form input:focus,.form select:focus,input:focus,select:focus{outline:none;box-shadow:none;border-color:transparent}
.form input[type=date]{min-width:0}
input::placeholder{color:#a3a6ad}
select{appearance:none;-webkit-appearance:none;padding-right:22px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2316181d'/%3E%3C/svg%3E") no-repeat right 4px center}
/* checkbox-in-a-label rows (FBAR "signature authority only") */
.form>label:has(input[type=checkbox]){flex-direction:row!important;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font:500 14px var(--serif)}
.form input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-height:20px;border:1.5px solid var(--rule);background:var(--paper-hi);display:grid;place-content:center;cursor:pointer;flex:none}
.form input[type=checkbox]:checked{background:var(--navy);border-color:var(--navy)}
.form input[type=checkbox]:checked::after{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
/* buttons sitting inside a field row */
.form>.btn{margin:0 -1px -1px 0;align-self:stretch;min-height:66px}
#trips .form,#accs .form{margin-bottom:10px}

/* ── Buttons: stamp style ── */
.btn{font:600 13px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:var(--navy);color:#fff;border:1.5px solid var(--navy);border-radius:2px;padding:13px 20px;min-height:46px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--rule)}
.btn.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.ghost.rm{color:var(--zhu);border-color:var(--line);font-size:11.5px}
.btn.ghost.rm:hover{background:var(--zhu);color:#fff;border-color:var(--zhu)}
.eg{font:13px var(--mono);color:var(--sub);margin:12px 0 0}
.eg button{color:var(--navy);text-decoration-color:rgba(29,45,87,.4);font-family:var(--mono)}

/* Segmented control, should any tool use it */
.seg{background:transparent;border:1px solid var(--rule);border-radius:0;padding:0}
.seg button{border-radius:0;font:500 13.5px var(--mono);color:var(--ink-2)}
.seg button+button{border-left:1px solid var(--rule)}
.seg button.on{background:var(--navy);color:#fff;box-shadow:none}

/* details / summary: an optional schedule */
details{margin:6px 0 16px;border-top:1px solid var(--rule);border-bottom:1px solid var(--hair)}
details>summary{cursor:pointer;list-style:none;padding:12px 0;font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);display:flex;align-items:center;gap:10px}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"+";width:18px;height:18px;border:1px solid var(--navy);display:inline-grid;place-content:center;font:600 13px/1 var(--mono);flex:none}
details[open]>summary::before{content:"−"}
details>.form{margin-top:4px}
details.fold{border-radius:0;background:transparent}

/* ── The answer: a certified result box ── */
.answer{position:relative;background:var(--paper-hi);color:var(--ink);border:1px solid var(--rule);border-top:6px solid var(--navy);border-radius:0;box-shadow:none;padding:20px 26px 22px;margin:28px 0}
.answer .q{font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.answer .a{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.8vw,44px);line-height:1.12;letter-spacing:-.015em;color:var(--navy);margin-bottom:12px;overflow-wrap:anywhere}
.answer .a b{color:var(--navy);font-weight:700}
.answer .why{font-size:16.5px;line-height:1.65;color:var(--ink-2)}
.answer .why b{color:var(--ink);font-family:var(--mono);font-weight:600;font-size:.94em}
.answer .why a{color:var(--navy)}
.answer th,.answer td{color:var(--ink-2);border-bottom-color:var(--hair)}
.answer tr.hi td{background:var(--navy-tint);color:var(--ink)}
.answer .note{color:var(--sub)}
.answer.soft{border-top-color:var(--sub);border-left:1px solid var(--rule)}
.answer.soft .q{color:var(--sub);letter-spacing:.12em;text-transform:uppercase}
.answer.soft .a,.answer.soft .a b{color:var(--ink)}
.answer.soft .why{color:var(--ink-2)}
.answer.soft .why b{color:var(--ink)}
.answer.soft .why a{color:var(--navy)}
.tool-83b-deadline .answer:not(.soft){border-top-color:var(--zhu)}
.tool-83b-deadline .answer:not(.soft) .a,.tool-83b-deadline .answer:not(.soft) .a b{color:var(--zhu);font-family:var(--mono);font-weight:600}

.warn,.good{border-radius:0;font-size:16px;line-height:1.6;padding:14px 18px}
.warn{background:var(--red-tint);border:1px solid rgba(168,38,27,.25);border-left:4px solid var(--zhu)}
.good{background:#ebf2ed;border:1px solid rgba(45,106,70,.25);border-left:4px solid var(--ok)}

/* Tables: ledger lines, monospace figures */
table{font:15px var(--serif)}
th{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sub);border-bottom:1px solid var(--rule)}
td{border-bottom:1px solid var(--hair)}
td:not(:first-child){font-family:var(--mono);font-size:14.5px}
tr.hi td{background:var(--navy-tint);font-weight:600}
tr.hi td b{color:var(--navy)}
.card table tr:last-child td{border-bottom:0}
.tblwrap{border-top:1px solid var(--rule)}

.items li{background:var(--paper-hi);border:1px solid var(--rule);border-radius:0}
.items li h3{font-family:var(--serif);font-weight:600}
.tag{background:transparent;border:1px solid var(--line);border-radius:0;color:var(--sub);font:500 11px var(--mono);letter-spacing:.05em;text-transform:uppercase;padding:1px 6px}
.tag.hot{border-color:var(--zhu);color:var(--zhu)}
.tag.ok{border-color:var(--ok);color:var(--ok)}
.big{font-family:var(--mono);color:var(--navy);font-weight:600}
.kpi .lb{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.stepno{background:var(--ink);border-radius:0;font-family:var(--mono);box-shadow:none}
.bars .b{background:var(--hair);border-radius:0}
.bars .b i{background:var(--navy);border-radius:0}

/* ── Footer ── */
.sitefoot{margin-top:64px;padding-top:16px;border-top:3px double var(--rule);font:14.5px/1.6 var(--serif);color:var(--sub)}
.sitefoot .gov{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.sitefoot .fine{font:12px/1.6 var(--mono);color:var(--sub)}
.sitefoot a{color:var(--navy)}

/* ── Shared "Part" header ── */
.part-h{display:flex;align-items:baseline;gap:14px;border-top:2px solid var(--rule);padding-top:10px;margin:0 0 18px}
.part-n{flex:none;background:var(--ink);color:var(--paper-hi);font:600 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;transform:translateY(-2px)}
.part-h h2{margin:0;padding:0;border:0;font-size:clamp(22px,3vw,28px)}

/* ── Home ── */
.home .sitebar{margin-bottom:0}
.hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px;padding:52px 0 60px;align-items:start}
.hero h1{font-size:clamp(38px,6.2vw,66px);line-height:1.04;letter-spacing:-.025em;margin:0 0 22px;max-width:14ch}
.hero .lede{font-size:19.5px;line-height:1.6;color:var(--ink-2);max-width:54ch;margin:0 0 28px}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.hero-r{border:1px solid var(--rule);background:var(--paper-hi);margin-top:6px}
.box{position:relative;padding:12px 16px 14px 16px;border-bottom:1px solid var(--rule)}
.box:last-child{border-bottom:0}
.bl{position:absolute;top:0;right:0;width:22px;height:22px;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);font:600 11px/21px var(--mono);text-align:center;color:var(--sub)}
.bt{display:block;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-bottom:4px}
.box p{margin:0;font-size:15.5px;line-height:1.5;color:var(--ink-2)}
.box:nth-child(2) .bt{color:var(--zhu)}
.part{margin:0 0 56px}
.lines{list-style:none;margin:0;padding:0;border:1px solid var(--rule);background:var(--paper-hi)}
.lines li{margin:0;border-bottom:1px solid var(--hair)}
.lines li:last-child{border-bottom:0}
.lines a,.cta-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:0 20px;align-items:center;text-decoration:none;color:var(--ink);padding:18px 22px 18px 0}
.ln{align-self:stretch;display:flex;align-items:flex-start;justify-content:center;padding-top:3px;font:600 15px var(--mono);color:var(--ink);border-right:1px solid var(--hair)}
.lt b{display:block;font:600 21px/1.3 var(--serif);margin-bottom:3px}
.lt>span{display:block;font-size:16px;line-height:1.55;color:var(--ink-2);max-width:62ch}
.lf{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border:1px solid var(--navy);padding:5px 8px;white-space:nowrap}
.lf.deadline{color:var(--zhu);border-color:var(--zhu)}
.lines a:hover{background:var(--navy-tint)}
.lines a:hover b{color:var(--navy)}
.cta-row{grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--rule);background:var(--paper-hi);padding:22px 24px}
.cta-row .go{font:600 13px var(--mono);letter-spacing:.08em;text-transform:uppercase;background:var(--navy);color:#fff;padding:13px 18px;white-space:nowrap}
.cta-row:hover .go{background:var(--ink)}
.fine-box{border:1px solid var(--rule);border-left:4px solid var(--zhu);background:var(--paper-hi);padding:16px 22px}
.fine-box p{margin:0 0 10px;font-size:16px;color:var(--ink-2)}
.fine-box p:last-child{margin:0}

/* ── Checklist ── */
.ck{margin-top:34px}
 .cq{border:1px solid var(--rule);border-bottom-width:0;background:var(--paper-hi);margin:0;padding:16px 20px 18px 0;display:grid;grid-template-columns:52px minmax(0,1fr);min-width:0}
 .cq:last-of-type{border-bottom-width:1px}
 .cq legend{display:contents}
 .cq legend .ln{grid-row:1/4;border-right:0;padding-top:2px}
 .cq .qt{display:block;font:600 18.5px/1.4 var(--serif);margin-bottom:12px;grid-column:2}
 .cq.done .ln{color:var(--navy)}
 .cq.done .ln::after{content:"";display:block}
.opts{grid-column:2;display:flex;flex-wrap:wrap;gap:8px 22px}
.opts.wide{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}
.opt{display:flex;align-items:flex-start;gap:10px;margin:0;font:16px/1.4 var(--serif);color:var(--ink);cursor:pointer;letter-spacing:0;text-transform:none}
.opt input{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;min-height:20px;padding:0;margin:0;border:1.5px solid var(--rule);background:var(--paper-hi);display:grid;place-content:center;cursor:pointer}
.opt input:checked{background:var(--navy);border-color:var(--navy)}
.opt input:checked::after{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.opt input:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.qn{grid-column:2;margin:10px 0 0;font:italic 14.5px/1.5 var(--serif);color:var(--sub)}
.ck-go{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.result{margin-top:48px;scroll-margin-top:16px}
.miss{font:14px/1.6 var(--mono);color:var(--zhu);margin:0 0 16px}
.hits{border:1px solid var(--rule);background:var(--paper-hi)}
.hit{display:grid;grid-template-columns:52px minmax(0,1fr);border-bottom:1px solid var(--hair)!important}
.hit:last-child{border-bottom:0!important}
.hit .ln{padding-top:22px;border-right:1px solid var(--hair)}
.hb{padding:18px 22px 20px}
.hf{margin:0 0 4px;font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.hf .tag{margin-left:6px}
.hb h3{font-size:21px;margin:0 0 6px}
.hb>p:not(.hf){margin:0 0 14px;color:var(--ink-2);font-size:16.5px}
.disc{margin:20px 0 0;padding:14px 18px;border:1px solid var(--rule);border-left:4px solid var(--zhu);background:var(--paper-hi);font-size:15.5px;color:var(--ink-2)}
.disc b{color:var(--ink)}
.page-checklist .wrap>.sub{margin-bottom:0}

@media(max-width:760px){
  .hero{grid-template-columns:1fr;gap:28px;padding:30px 0 44px}
  .lines a{grid-template-columns:40px minmax(0,1fr);padding:16px 16px 16px 0;gap:0 14px}
  .lines .lf{grid-column:2;justify-self:start;margin-top:10px}
  .cta-row{grid-template-columns:1fr;gap:14px}
  .cta-row .go{justify-self:start}
  .opts.wide{grid-template-columns:1fr}
}
@media(max-width:600px){
  body{font-size:16.5px}
  .sheet{padding:0 16px 60px}
  .card{padding:14px 12px 12px}
  .form>label{flex-basis:100%}
  .form>.btn{width:100%;min-height:48px}
  .answer{padding:18px 18px 20px}
   .cq{grid-template-columns:38px minmax(0,1fr);padding:14px 14px 16px 0}
   .cq .qt{font-size:17px}
  .hit{grid-template-columns:38px minmax(0,1fr)}
  .hb{padding:16px 16px 18px}
  .ck-go .btn,.hero-cta .btn{width:100%}
  .lt b{font-size:19px}
}

body.home{font-family:var(--serif);font-size:17.5px;color:var(--ink);letter-spacing:0}
