:root{
  --paper:#F6F7F4; --surface:#FAFBF8; --sunk:#E9ECE4;
  --ink:#12211C; --ink-2:#34443D; --ink-3:#4E6057;
  --primary:#0E5C46; --primary-deep:#083B2D;
  --accent:#E8A020; --accent-soft:#FBE9C6;
  --critical:#9C2B1C;
  --line:#D7DDD5; --line-strong:#B4BFB7;
  --ring:#12211C; --on-primary:#FFFFFF;
  --band:#083B2D; --band-ink:#F2F7F4; --band-2:#C9DAD2; --band-3:#B9CEC4;
  --band-line:#1B5B46; --band-accent:#EFB03A; --cta:#0E5C46;
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Public Sans","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --shell:1140px; --pad:clamp(20px,4.5vw,48px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0D1512; --surface:#152420; --sunk:#101B17;
    --ink:#ECF2EE; --ink-2:#B7C7BF; --ink-3:#9FB2A9;
    --primary:#54C79B; --primary-deep:#8BDCBB;
    --accent:#F2B544; --accent-soft:#3A2C11;
    --critical:#F09484;
    --line:#26362F; --line-strong:#3B4F46;
    --ring:#F2B544; --on-primary:#08130F;
  }
}
:root[data-theme="dark"]{
  --paper:#0D1512; --surface:#152420; --sunk:#101B17;
  --ink:#ECF2EE; --ink-2:#B7C7BF; --ink-3:#9FB2A9;
  --primary:#54C79B; --primary-deep:#8BDCBB;
  --accent:#F2B544; --accent-soft:#3A2C11;
  --critical:#F09484;
  --line:#26362F; --line-strong:#3B4F46;
  --ring:#F2B544; --on-primary:#08130F;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%}
.shell{max-width:var(--shell);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
h1,h2,h3,h4{font-family:var(--f-display);margin:0;line-height:1.1;letter-spacing:-0.02em;text-wrap:balance}
p{margin:0}
a{color:var(--primary);text-underline-offset:3px;text-decoration-thickness:1.5px}
a:hover{color:var(--ink)}

a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{
  outline:3px solid var(--ring);outline-offset:2px;
  box-shadow:0 0 0 7px var(--accent-soft);border-radius:2px;
}

.skip{position:absolute;left:-9999px;top:0;background:var(--band);color:var(--band-ink);padding:14px 20px;z-index:50;font-weight:600}
.skip:focus{left:12px;top:12px;color:var(--band-ink)}

.eyebrow{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:600;font-size:16.5px;
  padding:14px 24px;min-height:52px;border:2px solid var(--primary);
  background:var(--primary);color:var(--on-primary);cursor:pointer;text-decoration:none;
}
.btn:hover{background:var(--primary-deep);border-color:var(--primary-deep);color:var(--on-primary)}
.btn.ghost{background:transparent;color:var(--primary)}
.btn.ghost:hover{background:var(--sunk);color:var(--primary)}
.btn.light{background:var(--accent);border-color:var(--accent);color:#12211C}
.btn.light:hover{background:#F5BC55;border-color:#F5BC55;color:#12211C}

/* header */
.site-head{border-bottom:1px solid var(--line);background:var(--surface);position:relative}
.head-in{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;justify-content:space-between;padding-block:16px}
.wordmark{font-family:var(--f-display);font-weight:800;font-size:21px;letter-spacing:-0.03em;color:var(--ink);text-decoration:none}
.wordmark span{color:var(--primary)}
.site-nav{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
.site-nav a{font-size:16px;color:var(--ink-2);text-decoration:none;font-weight:500;padding:8px 0}
.site-nav a:hover{color:var(--ink);text-decoration:underline}
.site-nav a.btn,.site-nav a.btn:hover{color:var(--on-primary);text-decoration:none}
.final .acts a.btn,.final .acts a.btn:hover{text-decoration:none}
.site-nav a.tel{font-family:var(--f-mono);color:var(--ink);font-size:15px}

/* hero */
.hero{padding-block:clamp(44px,6.5vw,78px);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;gap:34px;align-items:center}
@media(min-width:980px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:52px}}
.hero .photo{min-height:340px}
.hero h1{font-size:clamp(36px,6.4vw,66px);font-weight:800;max-width:16ch}
.hero .sub{margin-top:22px;font-size:clamp(17.5px,2vw,21px);color:var(--ink-2);max-width:56ch}
.scanbox{margin-top:34px;max-width:640px;background:var(--surface);border:1px solid var(--line);padding:20px}
.scanbox .row{display:flex;flex-wrap:wrap;gap:12px}
.scanbox input{
  flex:1 1 240px;font-family:var(--f-body);font-size:16.5px;padding:13px 15px;min-height:52px;
  border:2px solid var(--line-strong);background:var(--paper);color:var(--ink);
}
.scanbox input::placeholder{color:var(--ink-3);opacity:1}
.scanbox .micro{margin-top:14px;font-size:15.5px;color:var(--ink-2)}
.hero .callline{margin-top:20px;font-size:16px;color:var(--ink-2)}
.hero .callline a{font-family:var(--f-mono);font-weight:500}

/* sections */
.sec{padding-block:clamp(46px,6.4vw,80px);border-bottom:1px solid var(--line)}
.sec.alt{background:var(--sunk)}
.sec-head{display:grid;gap:14px;max-width:66ch;margin-bottom:34px}
.sec-head h2{font-size:clamp(26px,3.6vw,40px);font-weight:700}
.sec-head p{color:var(--ink-2)}
.prose{display:grid;gap:16px;max-width:64ch}
.prose p{color:var(--ink-2)}
.prose strong{color:var(--ink);font-weight:600}

/* dark band */
.band{background:var(--band);color:var(--band-ink);border-bottom:6px solid var(--band-accent)}
.band h2{color:var(--band-ink)}
.band .prose p{color:var(--band-2)}
.band .prose strong{color:var(--band-ink)}
.band .eyebrow{color:var(--band-accent)}
.band a{color:var(--band-accent)}
.band a:hover{color:var(--band-ink)}
.band a:focus-visible{outline-color:#FFFFFF;box-shadow:0 0 0 7px rgba(255,255,255,.22)}
.site-foot a:focus-visible{outline-color:#FFFFFF;box-shadow:0 0 0 7px rgba(255,255,255,.22)}
.stats{display:grid;gap:1px;background:var(--band-line);border:1px solid var(--band-line);margin-top:34px}
@media(min-width:720px){.stats{grid-template-columns:repeat(3,1fr)}}
.stat{background:var(--band);padding:24px 22px}
.stat .n{font-family:var(--f-display);font-size:clamp(32px,4.6vw,46px);font-weight:800;color:var(--band-accent);font-variant-numeric:tabular-nums;line-height:1}
.stat .l{margin-top:10px;font-size:15.5px;color:var(--band-2);max-width:32ch}

/* steps */
.steps{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:860px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--surface);padding:26px 24px;display:grid;gap:10px;align-content:start}
.sec.alt .step{background:var(--surface)}
.step .n{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:var(--ink-2)}
.step h3{font-size:19px;font-weight:600}
.step .price{font-family:var(--f-mono);font-size:14px;color:var(--primary);font-weight:500}
.step p{font-size:16px;color:var(--ink-2)}

/* pricing */
.tiers{display:grid;gap:20px}
@media(min-width:900px){.tiers{grid-template-columns:repeat(3,1fr)}}
.tier{background:var(--surface);border:1px solid var(--line);padding:28px 26px;display:grid;gap:16px;align-content:start}
.tier.lead{border:2px solid var(--primary)}
.tier h3{font-size:20px;font-weight:700}
.tier .amt{font-family:var(--f-display);font-size:44px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.tier .amt small{font-family:var(--f-body);font-size:15px;font-weight:400;color:var(--ink-2);letter-spacing:0}
.tier .permo{font-size:15px;color:var(--ink-2);margin-top:-8px}
.tier ul{margin:0;padding-left:20px;display:grid;gap:10px;font-size:16px;color:var(--ink-2)}
.tier .foot{font-size:15px;color:var(--ink-2)}
.quotebox{margin-top:26px;background:var(--paper);border:1px solid var(--line-strong);padding:clamp(22px,3vw,30px);display:grid;gap:18px}
.quotebox h3{font-size:21px;font-weight:700}
.quotebox .range{font-family:var(--f-display);font-size:clamp(24px,3.2vw,32px);font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}
.examples{display:grid;gap:16px}
@media(min-width:760px){.examples{grid-template-columns:1fr 1fr}}
.ex{background:var(--surface);border-left:4px solid var(--accent);padding:18px 20px;display:grid;gap:6px}
.ex .t{font-family:var(--f-display);font-weight:600;font-size:16px}
.ex .d{font-size:15.5px;color:var(--ink-2)}
.ex .p{font-family:var(--f-mono);font-size:16px;color:var(--ink);font-weight:500}
.disclaim{font-size:15px;color:var(--ink-2);font-style:normal}

/* certifications */
.certs{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:28px}
@media(min-width:560px){.certs{grid-template-columns:repeat(2,1fr)}}
.cert{background:var(--surface);padding:20px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.cert .mark{
  width:58px;height:58px;display:grid;place-items:center;text-align:center;
  background:var(--band);color:var(--band-accent);
  font-family:var(--f-display);font-weight:800;letter-spacing:-0.02em;line-height:1;
}
.cert .mark.sm{font-size:13px}
.cert .mark.md{font-size:15px}
.cert .mark.lg{font-size:19px}
.cert .txt{display:grid;gap:4px}
.sec.alt .cert{background:var(--surface)}
.cert .abbr{font-family:var(--f-mono);font-size:13px;color:var(--primary);font-weight:500;letter-spacing:.06em}
.cert .full{font-size:15.5px;color:var(--ink-2)}

/* photo placeholder */
.photo{
  border:2px dashed var(--line-strong);background:var(--sunk);
  padding:28px 22px;display:grid;gap:6px;align-content:center;min-height:190px;
}
.photo .k{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.photo .v{font-size:16px;color:var(--ink-2);max-width:44ch}
figure.shot{margin:0;display:grid;gap:10px}
figure.shot img{display:block;width:100%;height:100%;object-fit:cover;border:1px solid var(--line)}
figure.shot figcaption{font-size:14.5px;color:var(--ink-2);max-width:46ch}
.hero figure.shot img{aspect-ratio:16/10;object-position:56% center}
@media(min-width:980px){.hero figure.shot img{aspect-ratio:3/2}}
.split figure.shot img{aspect-ratio:4/3}
.split{display:grid;gap:28px;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1.15fr .85fr}}

/* platforms */
.plats{display:grid;gap:20px}
@media(min-width:820px){.plats{grid-template-columns:1fr 1fr}}
.plat{background:var(--surface);border:1px solid var(--line);padding:26px 24px;display:grid;gap:14px;align-content:start}
.plat.yes{border-top:5px solid var(--primary)}
.plat.no{border-top:5px solid var(--accent)}
.plat h3{font-size:19px;font-weight:700}
.plat .list{display:flex;flex-wrap:wrap;gap:9px}
.plat .list span{font-family:var(--f-mono);font-size:13.5px;padding:7px 12px;border:1px solid var(--line-strong);color:var(--ink)}
.plat p{font-size:16px;color:var(--ink-2)}

/* tax credit highlight */
.credit{background:var(--accent-soft);border-top:6px solid var(--accent);border-bottom:6px solid var(--accent)}
.credit .eyebrow{color:var(--ink);font-weight:500}
.credit .sec-head h2{font-size:clamp(29px,4vw,46px)}
.credit .prose p{color:var(--ink)}
.credit .prose{font-size:18px}
.credit .prose strong{color:var(--ink)}

/* book a consultation */
.book{display:grid;gap:26px}
@media(min-width:900px){.book{grid-template-columns:1.1fr .9fr;gap:44px;align-items:start}}
.book .ways{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--primary);padding:26px 24px;display:grid;gap:18px}
.book .ways .btn{width:100%}
.book .or{display:grid;gap:14px;padding-top:4px;border-top:1px solid var(--line)}
.book .way{display:grid;gap:3px}
.book .way .lbl{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.book .way a{font-family:var(--f-mono);font-size:17px;font-weight:500;word-break:break-word}
.book .way .note{font-size:14.5px;color:var(--ink-2)}
.privacy{border-left:4px solid var(--accent);background:var(--sunk);padding:16px 20px;font-size:16px;display:grid;gap:10px}
.sec.alt .privacy{background:var(--paper)}
.privacy strong{font-weight:600}
.hero .callline a.book-link{font-family:var(--f-body);font-weight:600}

/* forms */
.leadform{display:grid;gap:14px}
.leadform .row{display:grid;gap:6px}
.leadform label{font-size:14.5px;font-weight:600;color:var(--ink)}
.leadform input{
  font-family:var(--f-body);font-size:16.5px;padding:13px 15px;min-height:52px;width:100%;
  border:2px solid var(--line-strong);background:var(--paper);color:var(--ink);
}
.leadform input::placeholder{color:var(--ink-3);opacity:1}
.leadform .btn{width:100%}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formnote{font-size:15px;color:var(--primary);font-weight:600;min-height:1px}
.formnote.err{color:var(--critical)}
.scanbox .leadform{gap:14px}
@media(min-width:620px){
  .scanbox .leadform{grid-template-columns:1fr 1fr;align-items:end}
  .scanbox .leadform .btn{grid-column:1 / -1}
  .scanbox .leadform .formnote{grid-column:1 / -1}
  .scanbox .leadform .hp{grid-column:1 / -1}
}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;padding:20px 44px 20px 0;position:relative;
  font-family:var(--f-display);font-weight:600;font-size:18px;min-height:52px;display:flex;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--f-mono);font-size:22px;color:var(--primary)}
.faq details[open] summary::after{content:"\2013"}
.faq .a{padding:0 0 24px;display:grid;gap:14px;max-width:66ch}
.faq .a p{color:var(--ink-2);font-size:16px}

/* final cta */
.final{background:var(--cta);color:#FFFFFF;padding-block:clamp(44px,6vw,72px)}
.final h2{color:#FFFFFF;font-size:clamp(27px,3.8vw,42px);font-weight:800;max-width:20ch}
.final p{color:#DCEAE4;margin-top:16px;max-width:54ch}
.final .acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;align-items:center}
.final .btn.light{border-color:var(--accent)}
.final a:focus-visible,.final button:focus-visible{outline-color:#FFFFFF;box-shadow:0 0 0 7px rgba(255,255,255,.25)}
.final .callnote{font-family:var(--f-mono);font-size:17px;color:#FFFFFF;font-weight:500}
.final a.tel{
  color:#FFFFFF;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;
  display:inline-block;padding-block:6px;
}
.final a.tel:hover{color:var(--accent)}

/* footer */
.site-foot{background:var(--band);color:var(--band-2);padding-block:44px;font-size:15.5px}
.foot-grid{display:grid;gap:26px}
@media(min-width:820px){.foot-grid{grid-template-columns:1.2fr 1fr 1fr}}
.site-foot h2{font-family:var(--f-display);font-size:14px;color:var(--band-ink);font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px}
.site-foot a{color:#EAF3EF;text-decoration:underline}
.site-foot a:hover{color:var(--band-accent)}
.site-foot ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.site-foot .wordmark{color:var(--band-ink);font-size:19px}
.site-foot .wordmark span{color:var(--band-accent)}
.legal{margin-top:34px;padding-top:22px;border-top:1px solid var(--band-line);display:grid;gap:8px;font-size:14.5px;color:var(--band-3)}

/* document pages (accessibility statement, 404) */
.doc-head{padding-bottom:0;border-bottom:none}
.doc-head h1{font-size:clamp(32px,5vw,54px);font-weight:800;margin-top:16px;max-width:18ch}
.doc-head .lede{margin-top:20px;font-size:clamp(17px,1.9vw,20px);color:var(--ink-2);max-width:62ch}
.doc{border-bottom:none}
.doc-body{max-width:70ch}
.doc-body h2{font-size:clamp(21px,2.6vw,27px);font-weight:700;margin-top:38px;margin-bottom:12px}
.doc-body h2:first-child{margin-top:0}
.doc-body p{color:var(--ink-2);margin-bottom:14px}
.doc-body p strong{color:var(--ink);font-weight:600}
.doc-body ul{margin:0 0 18px;padding-left:22px;display:grid;gap:11px;color:var(--ink-2)}
.doc-body li strong{color:var(--ink);font-weight:600}
.doc-body .signoff{margin-top:38px;padding-top:20px;border-top:1px solid var(--line);font-size:15.5px}

/* 404 */
.nf{padding-block:clamp(60px,10vw,120px);border-bottom:none}
.nf .code{font-family:var(--f-mono);font-size:13px;letter-spacing:.16em;color:var(--ink-2)}
.nf h1{font-size:clamp(32px,5.4vw,58px);font-weight:800;margin-top:14px;max-width:16ch}
.nf p{margin-top:20px;color:var(--ink-2);max-width:56ch;font-size:18px}
.nf .acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;align-items:center}
.nf .acts .callnote{font-family:var(--f-mono);font-size:16px;color:var(--ink)}
.nf .acts a.tel{
  color:var(--primary);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;
  display:inline-block;padding-block:6px;
}

/* WCAG 2.2 2.5.8 target size: footer links are list items, not inline prose,
   so they need a real tap area rather than the inline exception */
.site-foot ul li a{display:inline-block;padding-block:5px}

.book .ways .orline{font-size:15px;color:var(--ink-2);padding-top:14px;border-top:1px solid var(--line);margin-top:4px}

/* what replaces the form once it has sent */
.leadform[hidden]{display:none}
.formdone{
  display:grid;gap:12px;
  border-left:4px solid var(--primary);background:var(--sunk);
  padding:20px 22px;
}
.formdone[hidden]{display:none}
.formdone .top{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center}
.formdone .tick{
  width:32px;height:32px;display:grid;place-items:center;
  background:var(--primary);color:var(--on-primary);
  font-family:var(--f-display);font-size:18px;font-weight:800;line-height:1;
}
.formdone h2,.formdone h3{font-size:20px;font-weight:700;color:var(--ink)}
.formdone h2:focus-visible,.formdone h3:focus-visible{outline:3px solid var(--ring);outline-offset:4px}
.formdone p{font-size:16px;color:var(--ink-2);max-width:54ch}
.formdone p.small{font-size:14.5px}
.formdone a{font-weight:600}

/* where the numbers come from, sits under the statistics inside the dark band */
.srcline{
  margin-top:22px;font-size:14.5px;line-height:1.65;color:var(--band-3);max-width:84ch;
}
.srcline span{color:var(--band-ink);font-weight:600}

/* how the processing fee is handled, sits under the pricing tiers */
.paynote{
  margin-top:22px;border-left:4px solid var(--accent);background:var(--surface);
  padding:16px 20px;font-size:15.5px;color:var(--ink-2);max-width:80ch;
}
.sec.alt .paynote{background:var(--paper)}

/* marketing consent, ticked by default, on both lead forms */
.leadform .consent{
  display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;
  padding-top:4px;
}
.leadform .consent input[type="checkbox"]{
  width:24px;height:24px;margin:0;min-height:0;padding:0;border:2px solid var(--line-strong);
  accent-color:var(--primary);background:var(--paper);
}
.leadform .consent label{
  font-size:14.5px;font-weight:400;color:var(--ink-2);line-height:1.5;
}
.leadform .consent a{font-weight:600;color:var(--primary)}
.leadform .consent a:hover{color:var(--ink)}
@media(min-width:620px){
  .scanbox .leadform .consent{grid-column:1 / -1}
}
