/* heatpumpratings.online stylesheet (design approved 2026-10-28) */
@font-face{font-family:"Geologica";src:url(/static/fonts/geologica-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Geologica";src:url(/static/fonts/geologica-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Geologica";src:url(/static/fonts/geologica-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Geologica";src:url(/static/fonts/geologica-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Gelasio";src:url(/static/fonts/gelasio-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Gelasio";src:url(/static/fonts/gelasio-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Gelasio";src:url(/static/fonts/gelasio-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
:root{
 --frost:#F3F6F8;--sheet:#FFFFFF;--ice:#E3ECF2;
 --ink:#13202B;--ink-2:#3F4D59;--ink-3:#56636E;
 --rule:#D3DCE3;--rule-2:#B4C1CB;
 --claret:#A3203F;--claret-d:#7E1630;--claret-t:#F7E6EA;
 --peer:#8C9CA9;
 --sans:"Geologica",system-ui,-apple-system,"Segoe UI",sans-serif;
 --serif:"Gelasio",Georgia,serif;
 --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;
 --r:4px;--w:1180px;--read:700px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--frost);color:var(--ink);font:400 16px/1.6 var(--sans);font-variant-numeric:tabular-nums lining-nums}
a{color:var(--claret);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--claret-d);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--claret);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;background:#fff;padding:8px;z-index:9}
.frame{max-width:var(--w);margin:0 auto;padding:0 32px}
.mn{overflow-wrap:anywhere;hyphens:none;-webkit-hyphens:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* masthead: one quiet line */
.mast{background:var(--sheet);border-bottom:1px solid var(--rule)}
.mast-in{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:24px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:600 18px/1 var(--sans);letter-spacing:-.01em}
.logo .mark{width:28px;height:28px;flex:none}
.navw{display:flex;gap:24px}
.navw a,.menu nav a{color:var(--ink-2);text-decoration:none;font-size:15px;font-weight:500;padding:6px 0;border-bottom:2px solid transparent}
.navw a[aria-current],.menu nav a[aria-current]{color:var(--ink);border-bottom-color:var(--claret)}
.navw a:hover{color:var(--claret)}
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;font-weight:500;font-size:15px;padding:8px 12px;border:1px solid var(--rule-2);border-radius:var(--r)}
.menu summary::-webkit-details-marker{display:none}

/* type */
h1,h2,h3{font-family:var(--sans);color:var(--ink);margin:0}
h1{font-size:46px;line-height:1.08;font-weight:600;letter-spacing:-.02em}
h2{font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.01em}
h3{font-size:19px;line-height:1.35;font-weight:600}
.lede{font:400 21px/1.55 var(--serif);color:var(--ink);max-width:760px;margin:16px 0 0}
.prose p,.prose li{font:400 17px/1.7 var(--serif);color:var(--ink)}
.prose{max-width:var(--read)}
.cap{font-size:14px;line-height:1.5;color:var(--ink-3)}
.crumb{font-size:14px;color:var(--ink-3);margin:32px 0 12px}
.crumb a{color:var(--ink-3)}
.idline{margin:12px 0 0;font-size:16px;color:var(--ink-2)}
.idline b{font-weight:500;color:var(--ink)}
.sec{margin:64px 0 0}
.sec>h2+p,.sec>h2+.cap{margin-top:8px}
.more{font-weight:500;text-decoration:none}
.more::after{content:" \203A"}

/* buttons, inputs */
.btn{display:inline-block;font:500 15px/1 var(--sans);padding:12px 18px;border-radius:var(--r);background:var(--claret);color:#fff;text-decoration:none;border:0;cursor:pointer}
.btn:hover{background:var(--claret-d);color:#fff}
.btn.ghost{background:transparent;color:var(--claret);box-shadow:inset 0 0 0 1px var(--claret)}
label{font-size:14px;font-weight:500;color:var(--ink-2)}
select,input[type=text],input[type=number]{font:400 16px/1.2 var(--sans);color:var(--ink);background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);padding:10px 12px;min-height:44px;width:100%}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th{font-size:14px;font-weight:500;color:var(--ink-3);text-align:left;padding:8px 10px;border-bottom:1px solid var(--rule-2);vertical-align:bottom}
.tbl td{padding:10px;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl .r{text-align:right}
.tbl tr.me td{background:var(--claret-t)}

/* charts */
.fig{margin:0}
.fig svg{display:block;width:100%;height:auto}
.fig .v-n{display:none}
.fig figcaption{margin-top:8px}

/* footer: light, one column */
.foot{margin-top:96px;border-top:1px solid var(--rule);background:var(--sheet);padding:32px 0 40px}
.foot p{margin:0 0 12px;max-width:820px;font-size:14px;color:var(--ink-3)}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 24px}
.foot-links a{color:var(--ink-2);font-size:15px}

@media (max-width:900px){
 .navw{display:none}.menu{display:block;position:relative}
 .menu nav{position:absolute;right:0;top:48px;background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);padding:8px 16px;display:flex;flex-direction:column;min-width:200px;z-index:5}
}
@media (max-width:640px){
 .frame{padding:0 16px}
 h1{font-size:32px;line-height:1.12}
 h2{font-size:23px}
 .lede{font-size:18px;line-height:1.55}
 .prose p,.prose li{font-size:17px}
 .sec{margin-top:48px}
 .fig .v-w{display:none}.fig .v-n{display:block}
 .foot{margin-top:64px}
 .tbl td.r{text-align:left}
}

.u-head{padding-bottom:8px}
.u-name{font-size:44px}
.u-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;margin-top:40px;align-items:start}
.u-grid .slope{max-width:700px}
.stand h2{font-size:19px;margin-bottom:4px}
.stand .fig svg{max-width:340px;margin-top:12px}
.cold{margin:48px 0 0;padding:20px 0 0;border-top:3px solid var(--ink);max-width:760px}
.cold p{margin:0;font:400 18px/1.6 var(--serif)}
.cold b{font-family:var(--sans);font-weight:600}
.names{columns:3 220px;column-gap:32px;margin:16px 0 0;padding:0;list-style:none}
.names li{break-inside:avoid;padding:6px 0;border-bottom:1px solid var(--rule);font-size:15px}
.names li span.b{color:var(--ink-3)}
.next{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:24px;align-items:center}
.also p{font:400 17px/1.65 var(--serif);max-width:760px}
@media (max-width:1000px){.u-grid{grid-template-columns:1fr;gap:32px}}
@media (max-width:640px){
 .u-name{font-size:30px}
 .m-tbl thead{display:none}
 .m-tbl tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
 .m-tbl td.nm,.m-tbl td:first-child{grid-column:1/-1}
 .m-tbl td.r{text-align:left}
 .m-tbl.mt-tbl tr{grid-template-columns:1fr 1fr}
 .m-tbl td.nm::before{display:none}
 .m-tbl td{border:0;padding:0}
 .m-tbl td::before{content:attr(data-l);display:block;font-size:14px;color:var(--ink-3)}
 .m-tbl td.wide{grid-column:1/-1}
}

.c-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;margin-top:40px;align-items:start}
.lead-tbl td.nm{width:46%}
.mix{margin-top:16px}
.mix .bar{display:flex;height:16px;border-radius:2px;overflow:hidden;margin:6px 0 4px}
.mix .bar span{display:block;height:100%}
.mix dl{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0;font-size:14px;color:var(--ink-2)}
.mix dt{display:inline}.mix dd{display:inline;margin:0 0 0 4px}
.mix h3{font-size:16px;margin-top:20px}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.cl-tbl .gl{width:44px;height:26px;vertical-align:middle}
@media (max-width:1000px){.c-grid{grid-template-columns:1fr;gap:32px}}
@media (max-width:640px){
 .lead-tbl thead,.cl-tbl thead{display:none}
 .lead-tbl tr,.cl-tbl tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
 .lead-tbl td,.cl-tbl td{border:0;padding:0}
 .lead-tbl td::before,.cl-tbl td::before{content:attr(data-l);display:block;font-size:14px;color:var(--ink-3)}
 .lead-tbl td.nm,.cl-tbl td.nm{grid-column:1/-1;width:auto}
 .cl-tbl .r{text-align:left}
}

.lu-map .v-w,.lu-map .v-n{max-width:100%}
.lu-tbl td.nm{width:50%}
.roster details{border-top:1px solid var(--rule)}
.roster summary{cursor:pointer;padding:14px 0;font:600 17px/1.3 var(--sans)}
.roster summary .cap{font-weight:400;margin-left:8px}
@media (max-width:640px){
 .lu-tbl thead{display:none}
 .lu-tbl tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
 .lu-tbl td{border:0;padding:0}.lu-tbl td::before{content:attr(data-l);display:block;font-size:14px;color:var(--ink-3)}
 .lu-tbl td.nm{grid-column:1/-1;width:auto}
}

.band{background:var(--sheet);border-bottom:1px solid var(--rule);padding:48px 0 32px}
.band h1{max-width:900px}
.band .lede{max-width:820px}
.fz{margin-top:32px}
.seg{border:0;padding:0;margin:0 0 20px;display:flex;flex-wrap:wrap;gap:0}
.seg-o{position:relative}
.seg-o input{position:absolute;opacity:0;inset:0}
.seg-o span{display:block;padding:11px 18px;font:500 15px/1.2 var(--sans);color:var(--ink-2);border:1px solid var(--rule-2);margin-left:-1px;cursor:pointer;background:#fff}
.seg-o:first-of-type span{border-radius:var(--r) 0 0 var(--r);margin-left:0}
.seg-o:last-of-type span{border-radius:0 var(--r) var(--r) 0}
.seg-o input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.seg-o input:focus-visible+span{outline:3px solid var(--claret);outline-offset:2px}
.fz-grid{display:grid;grid-template-columns:1fr 2fr 1fr 1fr 1fr 1fr;gap:16px 20px;align-items:end}
.f label{display:block;margin-bottom:6px}
.f-r input{width:100%;accent-color:var(--claret);height:44px}
.f-r output{font-weight:600;color:var(--claret)}
.chk{display:flex;gap:10px;align-items:center;margin-top:16px;font-size:15px;color:var(--ink)}
.chk input{width:20px;height:20px;accent-color:var(--claret)}
.res{margin-top:40px}
.res-h{font-size:30px;line-height:1.2}
.res-m{margin:8px 0 0;font:400 18px/1.5 var(--serif);color:var(--ink-2)}
.f-tbl{margin-top:24px}
.f-tbl td.nm{display:flex;gap:12px;align-items:center;min-width:280px}
.f-tbl td.nm>span{display:flex;flex-direction:column}
.f-tbl .also{font-size:14px;color:var(--ink-3)}
.f-tbl .gl{width:44px;height:26px;flex:none}
.f-tbl tbody tr:hover td{background:#F7F9FA}
.assume{margin:16px 0 0;font-size:14px;color:var(--ink-3);max-width:860px}
.showall{margin-top:16px}
.howto{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:64px}
.howto h2{font-size:22px;margin-bottom:8px}
.howto dl{margin:0}.howto dt{font-weight:600;margin-top:12px}.howto dd{margin:2px 0 0;font:400 17px/1.6 var(--serif)}
.classes{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:start}
.cl-links h3{font-size:16px;margin:16px 0 6px}
.cl-links p{margin:0;line-height:2}
.cl-links a{margin-right:14px;white-space:nowrap}
.ex-list{list-style:none;padding:0;margin:16px 0 0;columns:2 340px;column-gap:48px}
.ex-list li{break-inside:avoid;padding:14px 0;border-top:1px solid var(--rule)}
.ex-list a{font-weight:600;font-size:17px;text-decoration:none}
.ex-list p{margin:4px 0 0;font:400 16px/1.55 var(--serif);color:var(--ink-2)}
.lu-az{margin:12px 0 0;line-height:2.1;max-width:980px}
.lu-az a{margin-right:16px}
@media (max-width:1100px){.fz-grid{grid-template-columns:repeat(3,1fr)}.f-r{grid-column:span 3}}
@media (max-width:900px){.classes,.howto{grid-template-columns:1fr;gap:32px}}
@media (max-width:640px){
 .band{padding:32px 0 24px}
 .seg{display:grid;grid-template-columns:1fr 1fr 1fr}
 .seg-o span{padding:10px 6px;text-align:center;font-size:14px;height:100%}
 .fz-grid{grid-template-columns:1fr 1fr;gap:12px}
 .f-r{grid-column:1/-1}
 .res-h{font-size:24px}
 .f-tbl thead{display:none}
 .f-tbl tr{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px;padding:14px 0;border-bottom:1px solid var(--rule)}
 .f-tbl td{border:0;padding:0;text-align:left}
 .f-tbl td::before{content:attr(data-l);display:block;font-size:14px;color:var(--ink-3);font-weight:400}
 .f-tbl td.nm{grid-column:1/-1;min-width:0}
 .f-tbl td.nm::before{display:none}
}

.pick{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 24px;margin-top:32px}
.pick .f{position:relative}
.pick .f label{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}
.pick .f label b{font:700 15px/1 var(--sans);color:#fff;background:var(--ink);border-radius:50%;width:24px;height:24px;display:inline-grid;place-items:center}
.lb{position:absolute;left:0;right:0;top:100%;z-index:4;background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);margin:4px 0 0;padding:4px 0;list-style:none;max-height:320px;overflow:auto;box-shadow:0 8px 24px rgba(19,32,43,.12)}
.lb li{padding:8px 12px;font-size:15px;cursor:pointer}
.lb li[aria-selected=true],.lb li:hover{background:var(--claret-t)}
.lb li small{color:var(--ink-3);display:block;font-size:14px}
.sbs{margin-top:40px;table-layout:fixed}
.sbs th[scope=row]{font-size:15px;color:var(--ink-2);font-weight:500;width:24%}
.sbs thead th{font-size:16px;color:var(--ink);font-weight:600;vertical-align:bottom}
.sbs thead th b{font:700 14px/1 var(--sans);color:#fff;background:var(--ink);border-radius:50%;width:22px;height:22px;display:inline-grid;place-items:center;margin-right:6px}
.sbs td{font-size:16px}
.sbs td small{display:block;font-size:14px;color:var(--ink-3)}
.sbs td.hi{box-shadow:inset 0 -3px 0 var(--claret)}
.sbs td.hi strong{color:var(--claret)}
.sbs tr.grp th{padding-top:28px;font:600 17px/1.2 var(--sans);color:var(--ink);border-bottom:2px solid var(--ink)}
.keyl{display:none}
@media (max-width:900px){.pick{grid-template-columns:1fr}}
@media (max-width:640px){
 .sbs{table-layout:auto}
 .sbs thead{display:none}
 .keyl{display:block;list-style:none;padding:0;margin:24px 0 0}
 .keyl li{display:flex;gap:8px;padding:4px 0;font-size:15px}
 .keyl b{font:700 14px/1 var(--sans);color:#fff;background:var(--ink);border-radius:50%;width:22px;height:22px;flex:none;display:inline-grid;place-items:center}
 .sbs tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--rule)}
 .sbs tr.grp{border-bottom:2px solid var(--ink);padding-top:24px}
 .sbs th[scope=row]{grid-column:1/-1;width:auto;padding:0;border:0}
 .sbs td{border:0;padding:4px 0 6px;overflow-wrap:anywhere}
 .sbs td::before{content:attr(data-k);font:700 13px/1 var(--sans);color:#fff;background:var(--ink-3);border-radius:50%;width:18px;height:18px;display:inline-grid;place-items:center;margin-right:6px;vertical-align:1px}
}

.art{max-width:var(--read);margin:0 auto}
.art h1{font-size:42px;margin-top:8px}
.art .byline{margin:16px 0 0;font-size:15px;color:var(--ink-3)}
.art .answer{font:400 21px/1.6 var(--serif);margin:32px 0 0}
.art h2{font-size:25px;margin:48px 0 0}
.art p{font:400 18px/1.75 var(--serif);margin:16px 0 0}
.art .wide{margin:32px -110px 0}
.art .wide .cap{padding:0 110px}
.art .wide.fig svg{max-width:720px;margin:0 auto}
.art table{margin-top:24px}
.art .src{margin-top:48px;border-top:1px solid var(--rule);padding-top:16px}
.art .src p,.art .src li{font-size:15px;line-height:1.6;font-family:var(--sans);color:var(--ink-2)}
.art .src ul{padding-left:18px}
.legal h2{font-size:22px;margin:40px 0 0}
.legal p,.legal li{font:400 17px/1.7 var(--serif)}
@media (max-width:960px){.art .wide{margin:32px 0 0}.art .wide .cap{padding:0}}
@media (max-width:640px){
 .art h1{font-size:30px}
 .art .answer{font-size:19px}
 .art p{font-size:17px}
 .g-tbl thead{display:none}
 .g-tbl tr{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
 .g-tbl td{border:0;padding:0;text-align:left}
 .g-tbl td::before{content:attr(data-l);display:block;font-size:14px;color:var(--ink-3)}
 .g-tbl td.nm{grid-column:1/-1;font-weight:600}
}

/* build additions: compact finder, extra tables, hubs */
.fz-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr)}
.more-f{margin-top:16px;border-top:1px solid var(--rule);padding-top:8px}
.more-f summary{cursor:pointer;font:500 15px/1.4 var(--sans);color:var(--ink-2);padding:8px 0}
.fz-grid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;margin-top:8px;max-width:760px}
.h-s{font-size:19px}
.t5-tbl{max-width:760px}
.t5-tbl td:first-child,.t5-tbl th:first-child{width:96px}
.ex-hub{columns:1;max-width:760px}
.cold p b{font-weight:600}
@media (max-width:1100px){.fz-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr)}.f-r{grid-column:auto}}
@media (max-width:800px){.fz-grid{grid-template-columns:1fr 1fr}.f-r{grid-column:1/-1}}
@media (max-width:640px){
 .band{padding:20px 0 16px}
 .band h1{font-size:28px}
 .band .lede{font-size:17px;margin-top:8px}
 .lede-x{display:none}
 .fz{margin-top:16px}
 .seg{margin-bottom:12px}
 .fz-grid{gap:10px 12px}
 .f label{margin-bottom:4px}
 .f-r input{height:36px}
 .chk{margin-top:8px;font-size:14px}
 .more-f{margin-top:8px}
 .fz-grid2{grid-template-columns:1fr 1fr;gap:10px 12px}
 .res{margin-top:20px}
 .m-tbl.t5-tbl tr{grid-template-columns:68px minmax(0,1fr) auto}
 .m-tbl.t5-tbl td:first-child{grid-column:auto}
 .m-tbl.t5-tbl td.nm{grid-column:auto}
 .m-tbl.t5-tbl td.nm::before{display:block;content:attr(data-l)}
}.mn{white-space:nowrap}
@media (max-width:640px){.mn{white-space:normal;overflow-wrap:anywhere}}main>.frame>header:first-child{padding-top:40px}
.art>h1:first-child{margin-top:40px}
@media (max-width:640px){main>.frame>header:first-child{padding-top:24px}.art>h1:first-child{margin-top:24px}}