:root{--navy:#0f2a44;--ink:#1f2933;--muted:#5b6673;--line:#d9dee4;--band:#f4f5f7;--orange:#e4572e;--serif:Georgia,"Times New Roman",Times,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--ink);background:#fff}
a{color:var(--navy)}
img{max-width:100%;display:block}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
h1,h2,h3{font-family:var(--serif);font-weight:normal;color:var(--navy);line-height:1.2;margin:0 0 .5em}
h1{font-size:32px}
h2{font-size:27px}
h3{font-size:20px}
p{margin:0 0 1em}
section{padding:48px 0;border-top:1px solid var(--line)}
section.hero{border-top:0;padding:28px 0 40px}
.band{background:var(--band)}
/* header */
.top{border-bottom:1px solid var(--line);background:#fff}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font-family:var(--serif);font-size:19px}
.logo{width:30px;height:30px;flex:none}
.nav{display:none;gap:22px;font-size:15px}
.nav a{text-decoration:none;color:var(--ink)}
.nav a:hover{color:var(--navy);text-decoration:underline}
/* hero */
.hero-grid{display:grid;gap:24px}
.kicker{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.8em;padding-left:10px;border-left:3px solid var(--orange)}
.lead{font-size:19px}
.deadline{font-size:15px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
.deadline b{color:var(--ink)}
.hero-photo{margin:0}
.hero-photo img{width:100%;height:auto;border-radius:2px}
/* buttons */
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.btn{display:inline-block;background:var(--navy);color:#fff;border:1px solid var(--navy);padding:12px 20px;font-size:16px;font-family:inherit;text-decoration:none;border-radius:3px;cursor:pointer;text-align:center}
.btn:hover{background:#163a5c}
.btn.ghost{background:#fff;color:var(--navy)}
.btn.ghost:hover{background:var(--band)}
.btn.sm{padding:9px 16px;font-size:15px}
.btn.wide{display:block;width:100%}
.btn[disabled]{opacity:.6}
.note{font-size:14px;color:var(--muted)}
.intro{color:var(--muted)}
/* lookup */
.lookup{display:flex;gap:8px;margin:16px 0}
.lookup input{flex:1;min-width:0}
input,select,textarea{font:inherit;font-size:16px;padding:11px 12px;border:1px solid #b9c1ca;border-radius:3px;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy)}
.result:empty{display:none}
.res{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);padding:14px 16px;margin:10px 0}
.res.hit{border-left-color:#b42318}
.res.clear{border-left-color:#2f7d4a}
.res h3{margin:.3em 0}
.res ul{margin:8px 0 12px;padding-left:20px;font-size:15px}
.res .btn{margin-top:6px}
.meta{font-size:15px;color:var(--muted)}
.pill{font-size:13px;font-weight:600}
.pill.red{color:#b42318}
.pill.green{color:#2f7d4a}
/* pricing */
.prices{display:grid;gap:20px;margin:20px 0}
.price{border:1px solid var(--line);padding:22px 22px 24px;background:#fff}
.price .amt{font-family:var(--serif);font-size:36px;color:var(--navy);margin:.1em 0 .4em}
.price p{font-size:16px}
/* steps */
.steps{margin:16px 0 0;padding-left:22px}
.steps li{margin-bottom:14px;padding-left:4px}
.steps li::marker{font-family:var(--serif);color:var(--navy);font-weight:bold}
.two-col{display:grid;gap:32px}
.plain{margin:0;padding-left:20px}
.plain li{margin-bottom:8px}
/* order form */
#orderform{margin-top:16px}
#orderform label{display:block;font-size:15px;font-weight:600;margin:14px 0 0}
#orderform label input,#orderform label select,#orderform label textarea{margin-top:5px;font-weight:normal}
fieldset{border:1px solid var(--line);background:#fff;padding:10px 16px 14px;margin:0}
legend{font-weight:600;font-size:15px;padding:0 6px}
#orderform label.opt{display:flex;gap:10px;align-items:flex-start;font-weight:normal;font-size:16px;margin:10px 0 0}
label.opt input{width:auto;margin:5px 0 0}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
#orderform .btn.wide{margin-top:22px}
#formmsg{margin:14px 0 0;font-size:16px}
#formmsg:empty{display:none}
#formmsg.ok{background:#eef6f0;border:1px solid #b9d9c3;padding:14px 16px}
#formmsg.err{color:#b42318}
.paynow{margin:14px 0 8px}
.micro{display:block;font-size:13px;color:var(--muted)}
/* faq */
details{border-bottom:1px solid var(--line);padding:14px 0}
details:first-of-type{border-top:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;color:var(--navy);list-style-position:outside}
details p{margin:10px 0 0;font-size:16px}
/* footer */
footer{background:var(--navy);color:#d6dde5;padding:32px 0 40px;font-size:15px}
footer a{color:#fff}
footer b{color:#fff;font-family:var(--serif);font-weight:normal;font-size:18px}
.fine{font-size:12.5px;color:#9fb0c2;margin-top:18px;max-width:720px}
/* paid bar */

@media (min-width:760px){
  .nav{display:flex}
  .prices{grid-template-columns:1fr 1fr}
  .two-col{grid-template-columns:1fr 1fr;gap:48px}
  section{padding:64px 0}
}
@media (min-width:900px){
  h1{font-size:42px}
  h2{font-size:30px}
  section.hero{padding:56px 0 64px}
  .hero-grid{grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
}

/* legal pages + footer links + paid notice (Oct 14, 2026) */
.footlinks{display:inline-block;margin-top:10px;font-size:14px}
.legal{border-top:0;padding:36px 0 56px}
.legal h1{font-size:30px}
.legal h2{font-size:21px;margin-top:1.6em}
.legal .updated{color:var(--muted);font-size:14px}
.legal ul{padding-left:22px;margin:0 0 1em}
.legal li{margin-bottom:.4em}
.paidbar{background:#2f7d4a;color:#fff;padding:16px 20px;font-size:16px;line-height:1.5;text-align:left}
.paidbar .in{max-width:720px;margin:0 auto}
.paidbar b{font-size:18px}
.paidbar a{color:#fff}

/* building details form /start (Oct 14, 2026) */
.intake-sec{border-top:0;padding:28px 0 56px}
.intake-sec h1{font-size:30px}
.ordertag{display:inline-block;font-size:14px;color:var(--navy);background:var(--band);border:1px solid var(--line);padding:4px 10px;border-radius:3px;margin:0 0 6px}
.intake fieldset{margin:18px 0 0;padding:6px 16px 16px}
.intake legend{font-family:var(--serif);font-weight:normal;font-size:19px;color:var(--navy);padding:0 6px}
.intake label{display:block;font-size:15px;font-weight:600;margin:14px 0 0}
.intake label input,.intake label select,.intake label textarea{margin-top:5px;font-weight:normal}
.intake .hint{font-size:14px;color:var(--muted);margin:10px 0 0}
.intake .q{font-size:15px;font-weight:600;margin:16px 0 8px}
.row2,.row3{display:grid;gap:0 14px}
.row3{grid-template-columns:1fr 1fr}.row3>label:first-child{grid-column:1/-1}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{margin:0;flex:1 1 0;min-width:84px}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:block;text-align:center;border:1px solid #b9c1ca;border-radius:3px;padding:10px 8px;font-weight:normal;cursor:pointer;background:#fff}
.seg input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.seg input:focus-visible+span{outline:2px solid var(--orange);outline-offset:1px}
.drop{display:block;border:2px dashed #b9c1ca;border-radius:4px;padding:20px 14px;text-align:center;cursor:pointer;background:var(--band);margin-top:12px!important}
.drop:hover{border-color:var(--navy)}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.drop-t{display:block;font-family:var(--serif);font-size:18px;color:var(--navy);font-weight:normal}
.drop-s{display:block;font-size:14px;color:var(--muted);font-weight:normal}
.filelist{list-style:none;margin:10px 0 0;padding:0}
.filelist:empty{display:none}
.filelist li{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-left:3px solid var(--orange);padding:8px 10px;margin-top:6px;font-size:15px;background:#fff}
.filelist .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filelist .fs{color:var(--muted);font-size:13px}
.filelist .rm{border:0;background:none;color:#b42318;font:inherit;font-size:14px;cursor:pointer;padding:4px}
.intake .note{margin:18px 0 0}
.intake .btn.wide{margin-top:14px;padding:14px 20px;font-size:17px}
#intakemsg{margin:14px 0 0;font-size:16px}
#intakemsg:empty{display:none}
#intakemsg.err{color:#b42318}
.thanks{background:#eef6f0;border:1px solid #b9d9c3;padding:22px 20px;margin-top:8px}
.thanks h2{font-size:24px}
@media (min-width:600px){.row2{grid-template-columns:1fr 1fr}.row3{grid-template-columns:1fr 1fr 1fr}.row3>label:first-child{grid-column:auto}}

/* building details form v2 (Oct 14, 2026): mobile-first, big tap targets, City-records notes */
.intake input,.intake select,.intake textarea{min-height:50px;font-size:17px;padding:12px 13px}
.intake select{appearance:auto;background:#fff}
.intake .req{font-weight:normal;font-size:13px;color:var(--muted)}
.intake .opt-t{font-weight:normal;font-size:13px;color:var(--muted)}
.intake .cityrec{display:block;font-size:13px;font-weight:normal;color:#2f6b45;margin-top:4px}
.intake .cityrec[hidden]{display:none}
.intake .drop{padding:26px 14px}
.intake .drop-t{font-size:20px}
.intake .or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px;margin:18px 0 0}
.intake .or:before,.intake .or:after{content:"";flex:1;border-top:1px solid var(--line)}
.intake .seg span{padding:14px 8px;font-size:16px}
.intake details.more{border:1px solid var(--line);background:#fff;margin:18px 0 0;padding:0 16px}
.intake details.more summary{cursor:pointer;padding:16px 0;font-family:var(--serif);font-size:18px;color:var(--navy);list-style-position:inside}
.intake details.more[open]{padding-bottom:16px}
.intake .btn.wide{min-height:56px;font-size:18px;margin-top:20px}

/* Oct 14 2026 night: annual plan card, checkboxes, check-tool report, portal, admin */
.price.annual{border-color:#e4572e;border-left:4px solid #e4572e}
.price .per{font-size:16px;color:#5b6673;font-weight:normal}
#orderform label.opt.chk{display:flex;gap:10px;align-items:flex-start;font-weight:normal;line-height:1.45}
#orderform label.opt.chk input{width:22px;height:22px;flex:0 0 22px;margin-top:2px}
.ctable{width:100%;border-collapse:collapse;margin:10px 0;font-size:15px}
.ctable td{padding:8px 8px 8px 0;border-bottom:1px solid #e3e6ea;vertical-align:top}
.ctable td:first-child{color:#5b6673;width:44%}
.repform{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.repform input[type=email]{flex:1 1 220px}
.repform label{flex:1 1 100%;font-size:14px;color:#5b6673;display:flex;gap:8px;align-items:center}
.card{background:#fff;border:1px solid #d9dee4;border-radius:6px;padding:18px;margin:0 0 18px}
.card h3{margin:0 0 4px}
.track{display:flex;gap:4px;margin:14px 0 6px;list-style:none;padding:0}
.track li{flex:1;height:8px;border-radius:4px;background:#e3e6ea}
.track li.on{background:#0f2a44}
.track li.now{background:#e4572e}
.tracklbl{font-size:13px;color:#5b6673;margin:0 0 10px}
.tl{list-style:none;padding:0;margin:8px 0 0;font-size:14px}
.tl li{padding:6px 0;border-bottom:1px solid #eef0f2}
.tl time{color:#5b6673;display:inline-block;min-width:118px}
.kv{font-size:14px;color:#5b6673;margin:4px 0}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.adm table{width:100%;border-collapse:collapse;font-size:13px}
.adm th,.adm td{text-align:left;padding:6px;border-bottom:1px solid #e3e6ea;vertical-align:top}
.adm .wrap{max-width:1200px}
.adm textarea,.adm select,.adm input{font-size:14px;padding:6px;width:100%}
.adm .mini{font-size:12px;color:#5b6673}
.tag{display:inline-block;font-size:12px;padding:2px 7px;border-radius:10px;background:#eef0f2;color:#1f2933}
.tag.ok{background:#e1f3e8;color:#1c6b3c}.tag.no{background:#fde8e3;color:#9b2c16}

/* Oct 15 2026: ENERGY STAR section + authorization checkbox on /start */
.intake label.chk{display:flex;gap:12px;align-items:flex-start;font-weight:normal;line-height:1.45;margin-top:18px}
.intake label.chk input{width:24px;height:24px;flex:0 0 24px;margin:2px 0 0;accent-color:#0f2a44}
.intake label.chk .req{white-space:nowrap}

/* address suggestions (addr.js, Oct 15, 2026) */
.ac{position:relative;display:block}
.lookup .ac{flex:1;min-width:0}
.ac-list{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:60;margin:0;padding:0;list-style:none;background:#fff;border:1px solid var(--navy);border-radius:3px;box-shadow:0 8px 24px rgba(15,42,68,.18);max-height:340px;overflow-y:auto;-webkit-overflow-scrolling:touch;text-align:left}
.ac-list[hidden]{display:none}
.ac-list li{display:block;min-height:48px;padding:9px 12px 9px 14px;border-left:3px solid transparent;border-bottom:1px solid #eef0f3;cursor:pointer;-webkit-tap-highlight-color:rgba(228,87,46,.15);line-height:1.3}
.ac-list li.on,.ac-list li:active{background:#fdf1ec;border-left-color:var(--orange)}
.ac-1{display:block;font-size:16px;color:var(--navy);font-weight:600}
.ac-2{display:block;font-size:13.5px;color:var(--muted);margin-top:2px;font-weight:normal}
.ac-list li.ac-src{min-height:0;padding:5px 12px;font-size:12px;color:#8a949e;border-bottom:0;cursor:default;background:#fafbfc}

/* annual plan choice (Oct 15 2026): explicit choice, nothing preselected */
.planpick{border:0;padding:0;margin:18px 0 6px}
.planpick legend{font-weight:600;color:var(--navy);font-size:17px;margin-bottom:8px}
.planpick .req{font-weight:normal;font-size:13px;color:var(--muted);margin-left:6px}
.planpick.err legend .req{color:#b42318;font-weight:600}
#orderform label.plan{display:flex;gap:12px;align-items:flex-start;font-weight:normal;cursor:pointer;margin:0 0 10px;border-radius:6px}
#orderform label.plan input{width:22px;height:22px;margin:3px 0 0;flex:none;accent-color:var(--orange)}
label.plan-yes{border:2px solid var(--orange);background:#fff6f2;padding:16px 16px 14px;box-shadow:0 2px 10px rgba(228,87,46,.15)}
label.plan-yes:has(input:checked){background:#ffe9e0}
label.plan-yes .pbody{display:flex;flex-direction:column;gap:5px}
label.plan-yes .badge{align-self:flex-start;background:var(--orange);color:#fff;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:3px}
label.plan-yes .ptitle{font-family:var(--serif);font-weight:normal;font-size:21px;color:var(--navy);line-height:1.25}
label.plan-yes .pline{font-size:16px;line-height:1.45;color:var(--ink)}
label.plan-yes .pfine{font-size:14px;color:#9b2c16;font-weight:600}
label.plan-yes .pterms{font-size:12.5px;line-height:1.45;color:var(--muted)}
label.plan-no{border:1px solid var(--line);background:#f6f7f8;padding:10px 14px;font-size:14px;color:var(--muted)}
#orderform label.plan-no input{width:18px;height:18px;accent-color:var(--muted)}
ul.flist{margin:4px 0 10px;padding-left:20px;font-size:15px;line-height:1.7}
.addplan{display:block;margin-top:10px;font-size:14px}

/* Oct 15 2026: paid / unpaid (portal + admin), admin as stacked cards on phones */
.unpaidbox{border:2px solid #e4572e;border-radius:6px;padding:12px 14px;margin:10px 0 14px;background:#fffaf8}
.unpaidbox p{margin:6px 0 10px}.unpaidbox .btn{display:inline-block}
.pbadge{display:inline-block;font-weight:bold;font-size:13px;letter-spacing:.03em;text-transform:uppercase;padding:4px 10px;border-radius:4px}
.pbadge.paid{background:#1c6b3c;color:#fff}.pbadge.unpaid{background:#c0392b;color:#fff}
.adm .nextstep{margin:6px 0;font-size:13px;color:#1f2933;background:#f4f5f7;border-left:3px solid #e4572e;padding:4px 8px}
.adm .otwrap{overflow-x:auto}
@media (max-width:700px){
  .adm .otwrap{overflow:visible}
  .adm #ot thead{display:none}
  .adm #ot,.adm #ot tbody,.adm #ot tr,.adm #ot td{display:block;width:auto}
  .adm #ot tr{background:#fff;border:1px solid #d9dee4;border-left:5px solid #c0392b;border-radius:6px;margin:0 0 16px;padding:6px 12px}
  .adm #ot tr.is-paid{border-left-color:#1c6b3c}
  .adm #ot td{border-bottom:1px solid #eef0f2;padding:8px 0;font-size:14px}
  .adm #ot td:last-child{border-bottom:0}
  .adm #ot td::before{content:attr(data-label);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#8a949e;margin-bottom:2px}
  .adm #ot td[data-label="Paid"] .pbadge{font-size:16px;padding:6px 14px}
  .adm #ot td[data-label="Service"]{display:none}
  .adm #ot .upd textarea,.adm #ot .upd select,.adm #ot .upd input{font-size:16px;margin:0 0 6px}
  .adm #ot .upd .btn{width:100%;padding:12px}
  .adm .nextstep{font-size:15px}
  .adm #pt{font-size:12px}
}

/* "Do I need to file?" answer in the building check (Oct 15, 2026) */
.need{border:1px solid var(--line);border-radius:4px;padding:12px 14px;margin:12px 0 6px;background:#f7f9fb}
.need.need-yes{background:#fff6ed;border-color:#f3c79b}
.need.need-no{background:#eef7f1;border-color:#b9dcc4}
.need.need-maybe{background:#fffbea;border-color:#ecd98a}
.need .needq{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#5b6673}
.need p{margin:6px 0 10px;font-size:16px;line-height:1.45}
.need .btn{margin-top:2px}
.need .needlink{display:inline-block;margin:10px 0 0 14px;font-size:15px}
.repform label input[type=checkbox]{flex:0 0 auto;width:auto;margin:0}
.cblsrc{font-size:12px;line-height:1.5;color:#7a8592;margin:12px 0 0}
@media (max-width:700px){.need .btn{display:block;width:100%;padding:14px 16px}.need .needlink{display:block;margin:12px 0 0;text-align:center}}

/* switch plan (Oct 15 2026) */
.need .switchline{margin:6px 0 4px;font-size:14px;color:#1e5b33;font-weight:600}
.switchterms{border:2px solid var(--orange)!important;background:#fff6f2;border-radius:6px;padding:14px 16px 6px!important}
.switchterms .pline{margin:0 0 8px;font-size:15px;line-height:1.5}
.switchterms .pterms{margin:0 0 10px;font-size:13px;line-height:1.5;color:var(--muted)}
.switchterms.err{border-color:#b42318!important}
.switchterms.err legend .req{color:#b42318;font-weight:600}
[hidden]{display:none!important}
.price .switchhl{background:#fff6f2;border-left:4px solid var(--orange);padding:10px 12px;margin:10px 0 12px;font-size:15px;line-height:1.5;border-radius:3px}

/* Building profile card on the check result (Oct 15, 2026) */
.prof{border:1px solid var(--line);border-radius:4px;background:#fff;margin:10px 0 12px;padding:4px 14px 8px}
.prof .profh{font-family:Georgia,'Times New Roman',serif;font-size:18px;color:#0f2a44;padding:10px 0 8px;border-bottom:2px solid #0f2a44;display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.prof .profh span{font-family:Arial,sans-serif;font-size:12px;color:#7a8592}
.prof .pr{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid #eef0f3;font-size:15px;line-height:1.4}
.prof .pk{flex:0 0 34%;color:#5b6673;font-size:13px;padding-top:1px}
.prof .pv{flex:1;color:#1f2933;white-space:pre-line}
.prof .pr.alert .pv{color:#9b2c16;font-weight:600}
.prof .profsrc{margin:8px 0 2px;font-size:12px;color:#7a8592}
.prof .profsrc summary{cursor:pointer;color:#5b6673}
.prof .profsrc ul{margin:6px 0;padding-left:18px}
.prof .profsrc li{margin:3px 0}
.needact{margin:6px 0 4px}
.needact .switchline{margin:6px 0 4px;font-size:14px;color:#1e5b33;font-weight:600}
.needact .needlink{display:inline-block;margin:10px 0 0 14px;font-size:15px}
@media (max-width:700px){.prof{padding:2px 12px 8px}.prof .pr{display:block}.prof .pk{font-size:12px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}.needact .btn{display:block;width:100%;padding:14px 16px;text-align:center}.needact .needlink{display:block;margin:12px 0 0;text-align:center}}

/* /label page (Oct 15, 2026) */
.bbl3{display:flex;gap:8px;margin:10px 0 4px}
.bbl3 div{flex:1;border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:#f7f9fb;text-align:center}
.bbl3 span{display:block;font-size:12px;color:#5b6673;text-transform:uppercase;letter-spacing:.04em}
.bbl3 b{font-size:22px;color:#0f2a44}
.lbln{font-size:15px;line-height:1.5;margin:10px 0}
.lbln.alert{color:#9b2c16}
.lblsteps{padding-left:22px;font-size:15px;line-height:1.5}
.lblsteps li{margin:6px 0}
.lblact{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.lblact .switchline{margin:6px 0 4px;font-size:14px;color:#1e5b33;font-weight:600}
.lblpriv{margin-top:20px}
.btn.ghost.wide{margin-top:8px}
@media (max-width:700px){.lblact .btn,.res .btn.wide{display:block;width:100%;text-align:center}}
