/* Self-hosted fonts: see /fonts/LICENSES.md */
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible";font-style:italic;font-weight:400;font-display:optional;src:url(/fonts/atkinson-hyperlegible-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Charter;font-style:normal;font-weight:400;font-display:optional;src:url(/fonts/charter_regular.woff2) format("woff2")}
@font-face{font-family:Charter;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/charter_bold.woff2) format("woff2")}
@font-face{font-family:Charter;font-style:italic;font-weight:400;font-display:optional;src:url(/fonts/charter_italic.woff2) format("woff2")}
/* bestsolarbatteries.com.au — shared stylesheet (DRAFT, Polish 2026-11-03). Mobile-first; desktop at >=768px. */
:root{--ink:#1d2a24;--muted:#4f5d55;--sand:#fbf7ef;--paper:#fff;--euc:#1f5f4a;--euc-d:#15443a;--wattle:#f2b134;--wattle-t:#fdf1d6;--leaf-t:#e6f0ea;--night:#12201b;--terra:#a4431f;--rule:#d8d2c4;
--serif:Charter,"Bitstream Charter","Sitka Text",Cambria,Georgia,serif;--sans:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
--s1:.25rem;--s2:.5rem;--s3:1rem;--s4:1.5rem;--s5:2.5rem;--s6:4rem;--r:10px;--wrap:72rem;--read:42rem}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 var(--sans);color:var(--ink);background:var(--sand);overflow-wrap:break-word}
h1,h2,h3{font-family:var(--serif);line-height:1.2;margin:var(--s5) 0 var(--s3)}
h1{font-size:2rem;margin-top:var(--s3)}h2{font-size:1.5rem}h3{font-size:1.2rem}
a{color:var(--euc);text-underline-offset:3px}a:hover{color:var(--euc-d)}
:focus-visible{outline:3px solid var(--wattle);outline-offset:2px}
img,svg{max-width:100%;height:auto}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--s3)}
.skip{position:absolute;left:-999px}.skip:focus{left:var(--s3);top:var(--s3);background:var(--paper);padding:var(--s2);z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.draft{color:var(--terra);font-weight:700}
/* header */
.site-head{background:var(--paper);border-bottom:4px solid var(--wattle)}
.site-head .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2);padding-top:var(--s2);padding-bottom:var(--s2)}
.brand{display:flex;align-items:center;min-height:44px}.brand img{width:240px;height:48px}
.nav{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.nav ul{display:flex;gap:var(--s1);list-style:none;margin:0;padding:0;white-space:nowrap}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 var(--s3);border-radius:999px;text-decoration:none;font-weight:600;color:var(--ink)}
.nav a:hover,.nav a[aria-current]{background:var(--leaf-t);color:var(--euc-d)}
/* breadcrumb */
.crumbs ol{display:flex;flex-wrap:wrap;list-style:none;margin:var(--s3) 0 0;padding:0;font-size:1rem}
.crumbs li+li::before{content:"›";padding:0 var(--s2);color:var(--muted)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px}
/* layout */
.layout{display:block}
main{min-width:0}
.lede{font-size:1.1rem;color:var(--muted)}
.byline-mini{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);font-size:1rem;color:var(--muted);margin:var(--s2) 0 var(--s3)}
.byline-mini b{color:var(--ink)}
/* disclosure + notes */
.disclose{background:var(--leaf-t);border-left:6px solid var(--euc);border-radius:var(--r);padding:var(--s3);margin:var(--s3) 0;font-size:1rem}
.disclose p{margin:0 0 var(--s2)}.disclose p:last-child{margin:0}
.handoff{font-size:1rem;color:var(--muted);margin:var(--s2) 0 0}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--s4);border-radius:var(--r);background:var(--euc);color:#fff;font-weight:700;text-decoration:none;border:0;font:inherit;font-weight:700;cursor:pointer}
.btn:hover{background:var(--euc-d);color:#fff}
.btn-alt{background:var(--wattle);color:var(--ink)}.btn-alt:hover{background:#e3a01f;color:var(--ink)}
.btn[aria-disabled]{opacity:1}
.cta-band{display:flex;flex-direction:column;gap:var(--s2);margin:var(--s3) 0}
/* TOC */
.toc{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);margin:var(--s4) 0}
.toc summary{min-height:48px;display:flex;align-items:center;padding:0 var(--s3);font-weight:700;cursor:pointer}
.toc ol{margin:0;padding:0 var(--s3) var(--s3) var(--s5)}
.toc a{display:inline-flex;min-height:44px;align-items:center}
/* tables */
.table-scroll{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);margin:var(--s3) 0}
table{border-collapse:collapse;width:100%;min-width:40rem;font-size:1rem}
caption{text-align:left;padding:var(--s2) var(--s3);font-weight:700}
th,td{padding:var(--s2) var(--s3);text-align:left;vertical-align:top;border-top:1px solid var(--rule)}
thead th{background:var(--night);color:var(--sand);border:0}
tbody th{font-family:var(--serif)}
td .btn{min-height:44px;padding:0 var(--s3);white-space:nowrap}
.badge{display:inline-block;background:var(--wattle);color:var(--ink);font-size:.85rem;font-weight:700;padding:0 var(--s2);border-radius:4px}
/* cards */
.picks{display:grid;gap:var(--s3)}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:var(--s4)}
.card h3{margin-top:0}
.card dl{display:grid;grid-template-columns:auto 1fr;gap:var(--s1) var(--s3);margin:var(--s3) 0}
.card dt{font-weight:700}.card dd{margin:0}
/* checker */
.checker{background:var(--night);color:var(--sand);border-radius:var(--r);padding:var(--s4);margin:var(--s4) 0}
.checker h2{margin-top:0;color:var(--sand)}
.checker a{color:var(--wattle)}
.field{display:flex;flex-direction:column;gap:var(--s1);margin:0 0 var(--s3)}
.field label{font-weight:700}
.field input,.field select{min-height:48px;font:inherit;font-size:1rem;padding:0 var(--s3);border-radius:8px;border:2px solid var(--rule);background:var(--paper);color:var(--ink);width:100%}
.result{background:var(--euc-d);border-radius:8px;padding:var(--s3);margin-top:var(--s3)}
/* state + rebate */
.states{display:grid;gap:var(--s3)}
.state{background:var(--paper);border-top:4px solid var(--euc);border-radius:var(--r);padding:var(--s3)}
.state h3{margin-top:0}
.rebate{background:var(--wattle-t);border:2px solid var(--wattle);border-radius:var(--r);padding:var(--s4);margin:var(--s4) 0}
.rebate h2{margin-top:0}
.asat{display:inline-block;background:var(--ink);color:var(--sand);font-weight:700;padding:var(--s1) var(--s2);border-radius:4px;font-size:1rem}
/* versus */
.vs{display:grid;gap:var(--s3)}
.vs .card{border-top:6px solid var(--euc)}.vs .card+.card{border-top-color:var(--wattle)}
.verdict{background:var(--leaf-t);border-radius:var(--r);padding:var(--s4);margin:var(--s4) 0}
/* author box: round portrait, sun-ring, signature line */
.author{display:grid;grid-template-columns:72px 1fr;gap:var(--s3);align-items:start;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:var(--s4);margin:var(--s5) 0}
.author .face{width:72px;height:72px;border-radius:50%;background:var(--leaf-t);box-shadow:0 0 0 4px var(--wattle);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--euc)}
.author h2{font-size:1.15rem;margin:0}
.author .role{color:var(--muted);margin:0 0 var(--s2)}
.author p{margin:0 0 var(--s2)}
/* guides list */
.guides{list-style:none;padding:0;display:grid;gap:var(--s2)}
.guides a{display:flex;align-items:center;min-height:48px;padding:0 var(--s3);background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);text-decoration:none;font-weight:600}
/* footer */
.site-foot{background:var(--night);color:var(--sand);margin-top:var(--s6);padding:var(--s5) 0;font-size:1rem}
.site-foot a{color:var(--wattle);display:inline-flex;align-items:center;min-height:44px}
.site-foot .cols{display:grid;gap:var(--s4)}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot h2{font-size:1.1rem;color:var(--sand);margin:0 0 var(--s2)}
.foot-disclose{border-top:1px solid #33463e;margin-top:var(--s4);padding-top:var(--s4)}
.aside-cta{display:none}
@media (min-width:768px){
  body{font-size:18px}
  h1{font-size:2.6rem}h2{font-size:1.75rem}
  .wrap{padding:0 var(--s4)}
  .nav{width:auto}
  .brand img{width:260px;height:52px}
  .cta-band{flex-direction:row;align-items:center}
  .picks,.states{grid-template-columns:repeat(2,1fr)}
  .vs{grid-template-columns:1fr 1fr}
  .checker form{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);align-items:end}
  .checker .field{margin:0}
  .author{grid-template-columns:96px 1fr}.author .face{width:96px;height:96px}
  .site-foot .cols{grid-template-columns:2fr 1fr 1fr}
}
@media (min-width:1100px){
  .layout{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:var(--s5)}
  .aside-cta{display:block}
  .aside-cta .sticky{position:sticky;top:var(--s3);background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:var(--s4)}
  .states{grid-template-columns:repeat(3,1fr)}
}
.state a{display:inline-flex;align-items:center;min-height:44px}
/* Forge additions for the Astro port */
.placeholder{background:var(--wattle-t);border:2px dashed var(--terra);border-radius:var(--r);padding:var(--s3);margin:var(--s3) 0}
.missing,.pending{color:var(--terra);font-weight:700}
.proposed-links{background:var(--paper);border:2px dashed var(--euc);border-radius:var(--r);padding:var(--s3);margin:var(--s3) 0;font-size:1rem}
.proposed-links ul{margin:0;padding-left:var(--s4)}
.nav details{position:relative}.nav summary{display:flex;align-items:center;min-height:44px;padding:0 var(--s3);font-weight:600;cursor:pointer;border-radius:999px}
.nav details ul{display:block;position:absolute;z-index:5;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:var(--s2);min-width:16rem;white-space:normal}
.nav details[open]{position:static}@media(min-width:768px){.nav details[open]{position:relative}}

/* Polish responsive pass 2026-11-03 (CSS/layout only; no copy changes) */
small,.cite{font-size:max(16px,.85em)}
/* author box: portrait hidden until real details, so the text takes the full width */
.author{grid-template-columns:1fr}
.author:has(.face){grid-template-columns:72px 1fr}
/* research note blockquotes: a calm note box instead of a deep browser indent */
blockquote.note{margin:var(--s3) 0;padding:var(--s3);background:var(--paper);border-left:4px solid var(--wattle);border-radius:var(--r)}
blockquote.note p{margin:0}
/* lists of links: bigger tap area without moving text */
main li{margin:.4rem 0}
main li>a:first-child{display:inline-block;padding:.6rem 0;min-height:44px}
main li>a:first-child+small{display:inline}
/* tables: sideways-scroll hint (edge shadows) and a sticky first column on small screens */
.table-scroll{background:linear-gradient(90deg,var(--paper) 30%,rgba(255,255,255,0)) 0 0/2.5rem 100% no-repeat local,linear-gradient(270deg,var(--paper) 30%,rgba(255,255,255,0)) 100% 0/2.5rem 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(18,32,27,.18),transparent) 0 0/.8rem 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(18,32,27,.18),transparent) 100% 0/.8rem 100% no-repeat scroll;background-color:var(--paper)}
table{min-width:36rem}
td,th{min-width:7.5rem}
@media (max-width:767px){
  table{min-width:34rem}
  tbody th,thead th:first-child{position:sticky;left:0;z-index:1;background:var(--paper);box-shadow:1px 0 0 var(--rule)}
  thead th:first-child{background:var(--night)}
  .btn{width:100%;text-align:center;padding:.6rem var(--s3);line-height:1.3}
  .checker{padding:var(--s3)}
  .site-head .wrap{padding-top:var(--s1);padding-bottom:0}
  .brand img{width:220px;height:44px}
}
/* buttons: wrap cleanly when a row runs out of room */
.btn{text-align:center;line-height:1.3}
.cta-band{flex-wrap:wrap}
/* checker: 2 tidy columns on tablet/desktop, labels top-aligned, button on its own row */
@media (min-width:768px){
  .checker form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;row-gap:var(--s4)}
  .checker form>.btn{grid-column:1/-1;justify-self:start}
  .cta-band .btn{flex:1 1 14rem}
}
@media (min-width:1100px){.cta-band .btn{flex:0 1 auto}}

/* Polish: components for Verity's page rewrites (content-depth plan section 8) */
.byline-row{font-size:1rem;color:var(--muted);margin:var(--s2) 0 var(--s3)}
.byline-row a{display:inline-block;padding:.6rem 0}
.callout{background:var(--paper);border:1px solid var(--rule);border-left:6px solid var(--euc);border-radius:var(--r);padding:var(--s3) var(--s4);margin:var(--s3) 0}
.callout ul{margin:0;padding-left:1.1rem}.callout li{margin:.45rem 0}
.callout-worth{border-left-color:var(--wattle);background:var(--wattle-t)}
.callout-wa{border-left-color:var(--euc);background:var(--leaf-t)}
.callout-cant{border-left-color:var(--terra)}
.pair{display:grid;gap:var(--s3);margin:var(--s4) 0}
.pair .callout{margin:0}.pair .callout h2{margin-top:0;font-size:1.3rem}
.payback{background:var(--paper);border:2px solid var(--euc);border-radius:var(--r);padding:var(--s3) var(--s4);margin:var(--s5) 0}
.payback h2{margin-top:var(--s2)}
.payback ol{padding-left:1.3rem}.payback ol li{margin:.5rem 0}
.example{background:var(--wattle-t);border-radius:8px;padding:var(--s3);margin:var(--s3) 0}
.example p{margin:0 0 var(--s2)}.example ul{margin:0;padding-left:1.1rem}
.t-compare td:first-child,.t-cards td:first-child{font-weight:700;font-family:var(--serif)}
/* every table stacks into cards at small widths: header row hidden, each cell labelled */
@media (max-width:599px){
  .table-scroll{overflow:visible;border:0;background:none}
  .table-scroll table{min-width:0;display:block}
  .table-scroll thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .table-scroll tbody,.table-scroll tr,.table-scroll td{display:block}
  .table-scroll tr{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);margin:0 0 var(--s3);padding:var(--s2) var(--s3)}
  .table-scroll td{border:0;padding:.35rem 0;min-width:0}
  .table-scroll td:first-child{font-family:var(--serif);font-weight:700;font-size:1.05rem;border-bottom:1px solid var(--rule);padding-bottom:.5rem;margin-bottom:.25rem}
  .table-scroll td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-size:max(16px,.85em);font-weight:700;color:var(--muted)}
  .table-scroll td[data-label=""]::before{display:none}
  .table-scroll tbody th{position:static;box-shadow:none}
}
@media (min-width:768px){.pair{grid-template-columns:1fr 1fr}}
