:root{--ink:#3a2a1a;--text:#513814;--muted:#6a5336;--paper:#f6ebd2;--white:#fff;--line:#e8d8b5;--copper:#7c5209;--orange:#c56f25;--danger:#b3261b;--font-display:'Aleo',Georgia,serif;--font-body:'Maven Pro',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--font-body)}a{color:var(--copper);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--copper);outline-offset:3px}.skip{position:absolute;top:-100px;left:12px;background:#f6ebd2;padding:12px;z-index:100}.skip:focus{top:12px}.wrap{width:min(100% - 40px,1160px);margin-inline:auto}.header{background:var(--ink);color:white}.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}.brand{font:700 22px var(--font-display);color:#fff;text-decoration:none}.brand small{font:600 13px var(--font-body);color:#dc9a1a;margin-left:8px}.header nav{display:flex;flex-wrap:wrap;gap:14px}.header nav a{color:#fff;text-decoration:none;font:600 15px var(--font-body)}main{min-height:60vh}h1,h2,h3{font-family:var(--font-display);line-height:1.2}h1{font-size:clamp(34px,5vw,54px);letter-spacing:-.025em;margin:.25em 0}h2{font-size:clamp(27px,3vw,34px)}h3{font-size:20px}.eyebrow{color:var(--copper);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.hero,.section{padding:56px 0}.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:48px}.hero p{max-width:52ch}.hero img,.feature-img{width:100%;height:auto;border-radius:20px;box-shadow:0 14px 28px #0001}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{display:block;padding:22px;background:#f6ebd2;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);min-height:170px}.card h3{margin:8px 0}.card p{margin:0;color:var(--text)}.tag{color:var(--copper);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.notice{padding:16px 20px;border-left:4px solid var(--orange);background:#f6ebd2;border-radius:0 10px 10px 0}.danger{border-left-color:var(--danger);background:#f6ebd2}.prose{max-width:70ch;margin:0 auto;padding:40px 0 80px}.prose p,.prose li{color:var(--text)}.prose li{padding-bottom:8px}.tool-card{padding:22px;background:#f6ebd2;border:1px solid var(--line);border-radius:12px;margin:20px 0}.field{display:grid;gap:8px;margin:18px 0}.field label{font-weight:700}.field input,.field select{font:inherit;font-size:16px;background:#f6ebd2;border:1px solid #6a5336;border-radius:6px;padding:10px;max-width:360px;min-height:44px}.field small{color:var(--muted)}.button{display:inline-block;border:0;border-radius:6px;background:var(--ink);color:#fff;padding:10px 16px;text-decoration:none;font:700 15px var(--font-body);min-height:44px;cursor:pointer}.button.secondary{background:#f6ebd2;color:var(--ink);border:1px solid var(--line)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.photo-pair figure{margin:0;background:#f6ebd2;border:1px solid var(--line);padding:12px;border-radius:12px}.photo-pair img{display:block;width:100%;height:280px;object-fit:cover;border-radius:8px}.photo-pair figcaption{padding:10px 0 2px;color:var(--text)}footer{background:var(--ink);color:#ddd;padding:36px 0}footer a{color:#fff}.diagram{background:#f6ebd2;border:1px solid var(--line);border-radius:12px;padding:16px;margin:20px 0}.diagram img{width:100%;height:auto;display:block}.diagram figcaption{color:var(--muted);font-size:14px;padding-top:8px}.video-embed{position:relative;aspect-ratio:16/9;background:var(--line);border-radius:12px;display:grid;place-items:center;color:var(--muted);margin:20px 0}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:12px}.draft-banner{background:#fff3dc;color:#5a3418;padding:12px 20px;text-align:center;font-weight:700}.muted{color:var(--muted)}@media(max-width:700px){.hero-grid{grid-template-columns:1fr;gap:22px}.grid,.photo-pair{grid-template-columns:1fr}.header .wrap{align-items:flex-start;padding:16px 0;flex-direction:column}.hero,.section{padding:36px 0}.photo-pair img{height:300px}.brand{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.tool-layout{max-width:1160px}.tool-intro{max-width:68ch}.tool-intro p{color:var(--text)}.tool-columns{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:24px;align-items:start}.tool-note{background:#f6ebd2;border:1px solid var(--line);border-radius:12px;padding:16px}.tool-columns .tool-card{margin:20px 0}.tool-card h2{margin-top:0}.choice-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.chip{border:1px solid var(--line);border-radius:50px;background:#f6ebd2;color:var(--ink);padding:9px 13px;font:600 14px var(--font-body);min-height:44px;cursor:pointer}.chip[aria-pressed="true"]{background:var(--ink);color:white}.tool-card input[type=checkbox]{width:20px;height:20px;vertical-align:middle;accent-color:var(--copper)}fieldset.field{border:0;padding:0;margin:18px 0}fieldset.field label{font-weight:400}fieldset.field legend{font-weight:700}.date-list{padding:0;list-style:none}.date-list li{display:flex;justify-content:space-between;gap:12px;background:var(--paper);border-radius:8px;margin:8px 0;padding:11px 14px}.date-list li:first-child{background:#e8d8b5}.date-list small{color:var(--muted)}.saved-item{border:1px solid var(--line);padding:14px;border-radius:9px;margin:10px 0}.saved-item p{margin:6px 0}.error{color:#b3261b;font-weight:700}.tool-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.photo-pair{gap:10px}.tool-card .photo-pair figure{padding:8px}.tool-card .photo-pair img{height:210px}@media(max-width:800px){.tool-columns{grid-template-columns:1fr}}@media(max-width:500px){.tool-card{padding:18px}.date-list li{display:block}.date-list small{display:block}.tool-card .photo-pair img{height:260px}.actions>*{max-width:100%;text-align:center}}

[hidden]{display:none!important}
.related{margin:28px 0;padding-top:14px;border-top:1px solid var(--line)}.related h2{font-size:26px}.related a{color:var(--copper)}
.tool-hero{margin:24px 0 0;max-width:340px}
.tool-hero img{width:100%;height:auto;border-radius:20px;box-shadow:0 14px 28px #0001}
.tool-hero figcaption{font-size:.85rem;color:#555;margin-top:8px}
.source-stamp{font-size:.8rem;color:#666;margin:.5rem 0 1rem}

/* Keep search usable when the home hero narrows. */
.search-box{display:flex;align-items:stretch;flex-wrap:wrap;gap:8px;max-width:520px}
.search-box input{min-width:0;flex:1 1 240px;min-height:44px;padding:10px 12px;border:1px solid #6a5336;border-radius:6px;font:inherit}
.search-box .button{flex:0 0 auto}
@media(max-width:420px){.search-box input{flex-basis:100%}.search-box .button{width:100%}}

/* PRIVATE DRAFT ONLY: remove review-status badges before any public release. */
.review-status{background:#cac9a9;color:#2c4033;padding:8px 20px;text-align:center;font:700 14px/1.4 var(--font-body);border-bottom:1px solid #c9c1a7}
/* Keep the editable service-area disclosure inside the phone viewport. */
@media(max-width:600px){.service-area-popover{left:50%;transform:translateX(-50%);width:min(300px,calc(100vw - 48px))}}

.hero-grid > div > p.hero-lead{font-size:1.12em;line-height:1.45;color:var(--ink);font-weight:600;margin-top:0;margin-bottom:1.2em}
.hero-grid > div > p:not(.hero-lead){margin:0 0 1.05em}

/* Guide index cards are H2 under the page H1; retain card type scale. */
.card-heading{font-size:20px;margin:8px 0}

/* Guide index summaries make the card space useful; text stays readable on phone. */
.card-summary{margin:10px 0 0;color:var(--text,#513814);font:400 16px/1.45 var(--font-body,system-ui,sans-serif)}
.site-frame .card-summary{margin:10px 0 0;color:#513814;font:400 16px/1.45 "KYH Atkinson",system-ui,sans-serif}

/* Larger interaction targets without enlarging the 20px check glyph itself. */
.field:has(input[type=checkbox]) label,.site-frame .field:has(input[type=checkbox]) label,#checklist label,.site-frame #checklist label{display:inline-flex;align-items:center;min-height:44px;padding:8px 4px;cursor:pointer}

/* Cards now carry a useful one-line description; let content, not a fixed blank area, set height. */
.card:has(.card-summary),.site-frame .card:has(.card-summary){min-height:0}
/* Narrow-phone tool layout: long select labels and grid min-content must not widen the page. */
.tool-columns>*{min-width:0}
.tool-columns select,.tool-columns input{max-width:100%;min-width:0}
@media(max-width:500px){main select{max-width:100%;width:min(100%,320px);min-width:0}}

/* Give the existing serial decoder form clear labels and phone-sized controls. */
#sd-form{display:grid;gap:8px;max-width:420px;margin:24px 0 30px}
#sd-form label{font-weight:700}
#sd-form input,#sd-form select{width:100%;min-width:0;min-height:44px;padding:10px;font:inherit;font-size:16px;border:1px solid #6a5336;border-radius:6px;background:#f6ebd2}
#sd-form button[type=submit]{justify-self:start;min-height:44px;padding:10px 16px;cursor:pointer;background:var(--ink);color:#fff;border:0;border-radius:6px;font:700 15px var(--font-body)}

/* Keep long equipment names readable when a reader enlarges text. */
main{overflow-wrap:anywhere}
.hero-grid>*{min-width:0}

main input:not([type=checkbox]):not([type=radio]),main select,main textarea{font:inherit;font-size:16px;background:#f6ebd2;border:1px solid #6a5336;border-radius:6px}

/* Home Passport tools (Oct 8 package) */

.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.chip-row .chip{white-space:nowrap;display:inline-flex;align-items:center;text-decoration:none}

/* Print-only-the-card mode for tools with a Print button; every other page prints whole, safety notices included. */
@media print{body.print-card :is(.draft-banner,.review-status,.header,.skip,footer,.tool-intro,.related,.notice,.no-print,.chip-row){display:none!important}}

@media(max-width:380px){.chip-row .chip{white-space:normal;text-align:left}}

.sketch{margin:12px 0;text-align:center}.sketch img{max-width:100%;height:auto;border-radius:3px}
@media print{.sketch{display:none!important}}

/* thermostat settings goal quiz (Oct 29, 2026) */.tg-quiz fieldset.field label{display:flex;gap:10px;align-items:center;min-height:44px}.tg-quiz input[type=radio],.tg-quiz input[type=checkbox]{width:20px;height:20px;accent-color:var(--copper)}#tg-result .notice a{font-weight:700}
/* Home: house drawing in its own section (build.py home_main). Phones show the guide list first (Andrew, Oct 29). */
#main:has(>.home-drawing) .hero-grid{grid-template-columns:1fr}
#main:has(>.home-drawing)>.home-drawing{padding-top:0}
@media(min-width:701px){#main:has(>.home-drawing)>.hero:first-child{border-bottom:0}}
#main:has(>.home-drawing)>.home-start{background:transparent}
#main:has(>.home-drawing)>#email{background:#f6ebd2}
@media(max-width:700px){#main:has(>.home-drawing){display:flex;flex-direction:column}#main:has(>.home-drawing)>.home-drawing{order:1;padding-top:28px}#main:has(>.home-drawing)>#email,#main:has(>.home-drawing)>.related{order:2}}
/* Home service area map (Nov 7, 2026) */
.home-area{margin:18px 0 8px;max-width:480px}.home-area img{display:block;width:100%;height:auto;border:1px solid #bda477;border-radius:2px;box-shadow:4px 5px 0 #bda477}.home-area figcaption{margin-top:10px;font-size:.95rem}
.home-contact{margin:6px 0 14px;max-width:480px}.home-contact p{margin:0 0 10px}.home-contact .contact-out:empty{display:none}.home-contact .contact-out a{font-weight:700;font-size:1.1rem;word-break:break-all}
@media(max-width:700px){#main:has(>.home-drawing)>.home-area-section{order:3}}
/* Inline citations (Andrew, Nov 7, 2026: claims need proof, citations preferred) */
.cite{font-size:.68em;line-height:0;vertical-align:super;margin-left:1px;white-space:nowrap}.cite a{text-decoration:none;padding:0 1px}.source-list li{margin-bottom:8px}.source-list li:target{background:#f3dfb4;outline:2px solid #dc9a1a}
