/* Iowa HVAC Guide - one stylesheet, no frameworks. Clean editorial look: one deep primary (--brand) and one sparing accent (--accent).
   Change the colors in :root to re-theme the whole site. */
:root{--ink:#1b2430;--muted:#5b6573;--bg:#f7f7f5;--card:#fff;--line:#e2e4e7;--line-2:#d3d7dc;--brand:#123c48;--brand-dk:#0c2c36;--accent:#c05a1c;--accent-dk:#a04a14;--tint:#e6eff1;--tint-2:#f2f6f7;--max:72rem;--read:44rem;--radius:10px;--shadow:0 1px 2px rgba(16,24,40,.05);--serif:Georgia,"Iowan Old Style","Palatino Linotype","Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:1.0625rem/1.68 var(--sans);color:var(--ink);background:var(--bg)}
a{color:var(--brand);text-decoration-color:rgba(29,48,71,.35);text-underline-offset:.18em}
a:hover{color:var(--accent-dk);text-decoration-color:currentColor}
img,svg{max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:9}
/* header: white bar, wordmark + monogram */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:relative}
.site-header::before{content:"";display:block;height:3px;background:var(--brand)}
.header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1.5rem;padding-top:.85rem;padding-bottom:.85rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--brand);font:700 1.22rem/1 var(--serif);letter-spacing:-.005em;text-decoration:none}
.brand:hover{color:var(--brand)}
.mono{flex:none;display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:7px;background:var(--brand);color:#fff;font:700 .8rem/1 var(--sans);letter-spacing:.06em}
.main-nav ul{display:flex;flex-wrap:wrap;gap:.1rem .2rem;list-style:none;margin:0;padding:0}
.main-nav a{display:block;color:var(--ink);text-decoration:none;font-size:.94rem;font-weight:500;padding:.4rem .7rem;border-radius:6px}
.main-nav a:hover{background:var(--tint);color:var(--brand)}
.main-nav a[aria-current=page]{color:var(--brand);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}
main{padding-top:1.2rem;padding-bottom:3.5rem}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;padding:0;margin:.2rem 0 1.1rem;font-size:.86rem;color:var(--muted)}
.breadcrumbs li+li::before{content:"/";margin-right:.35rem;color:var(--line-2)}
.breadcrumbs a{color:var(--muted)}
h1,h2{font-family:var(--serif);font-weight:700;color:var(--brand-dk);letter-spacing:-.01em}
h1{font-size:clamp(1.85rem,4.4vw,2.65rem);line-height:1.15;margin:.3rem 0 .7rem}
h2{font-size:1.5rem;line-height:1.28;margin:2.4rem 0 .75rem}
h3{font-size:1.1rem;line-height:1.35;margin:1.5rem 0 .4rem;color:var(--ink)}
.article{max-width:var(--read)}
.article ul,.article ol{padding-left:1.3rem}
.article li{margin:.35rem 0}
.article h2{padding-top:.2rem}
.lead{font-size:1.14rem;color:var(--muted);max-width:var(--read)}
.meta-line{color:var(--muted);font-size:.88rem;margin-top:0;display:flex;flex-wrap:wrap;gap:.3rem .7rem;align-items:center}
.kicker{display:inline-block;color:var(--accent-dk);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.09em}
.callout{display:flex;gap:.75rem;background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);padding:.9rem 1.1rem;margin:1.4rem 0;border-radius:6px}
.callout-ico{flex:none;width:20px;height:20px;color:var(--accent-dk);margin-top:.2rem}
.callout p{margin:.25rem 0}
/* hero: strong type on a soft gradient, thin Iowa outline */
.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:2.5rem;align-items:center;background:linear-gradient(160deg,var(--tint) 0%,#fff 70%);border:1px solid var(--line);border-radius:14px;padding:2.6rem 2.6rem 2.2rem;margin-top:.4rem}
.hero h1{font-size:clamp(2rem,4.8vw,3.05rem);line-height:1.1;margin:.6rem 0 .9rem}
.eyebrow{margin:0;color:var(--accent-dk);font-weight:700;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase}
.hero .lead{font-size:1.1rem}
.hero-art{text-align:center}
.hero-map{display:block;width:100%;height:auto;max-width:22rem;margin:0 auto}
.ia-outline{fill:#fff;stroke:var(--brand);stroke-width:1.4;stroke-linejoin:round;opacity:.9}
.ia-dot{fill:var(--brand);opacity:.75}
.ia-home{fill:var(--accent);stroke:#fff;stroke-width:1.5}
.hero-art-cap{margin:.6rem 0 0;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.hero-cta{margin:1.3rem 0 .4rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hero-stats{display:flex;flex-wrap:wrap;gap:.6rem 2rem;list-style:none;padding:1rem 0 0;margin:1.2rem 0 0;color:var(--muted);font-size:.88rem;border-top:1px solid var(--line)}
.hero-stats strong{display:block;font:700 1.55rem/1.1 var(--serif);color:var(--brand)}
.btn{display:inline-block;background:var(--brand);color:#fff;padding:.68rem 1.15rem;border-radius:7px;text-decoration:none;font-weight:600;font-size:.98rem;border:1px solid var(--brand);margin:0}
.btn:hover{background:var(--brand-dk);border-color:var(--brand-dk);color:#fff}
.btn-ghost{background:#fff;color:var(--brand);border:1px solid var(--line-2)}
.btn-ghost:hover{background:var(--tint);color:var(--brand);border-color:var(--brand)}
.season{display:block;background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:1.1rem 1.35rem;margin:1.8rem 0}
.season h2{font-size:1.15rem;margin:0 0 .3rem}.season p{margin:0;color:var(--ink)}
/* cards */
.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));gap:1rem}
.cards-sm{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.card a{display:flex;flex-direction:column;gap:.45rem;height:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.2rem 1.1rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s}
.card a:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(16,24,40,.08)}
.card-top{display:block}
.card-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--accent-dk);font-weight:700}
.card-title{font:700 1.1rem/1.3 var(--serif);color:var(--brand-dk)}
.card-desc{font-size:.92rem;color:var(--muted)}
.card-more{margin-top:auto;padding-top:.3rem;font-weight:600;font-size:.88rem;color:var(--brand)}
.chip-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.chip-list a{display:inline-block;padding:.3rem .8rem;border:1px solid var(--line-2);border-radius:6px;background:#fff;text-decoration:none;font-size:.94rem}
.chip-list a:hover{border-color:var(--brand)}
.link-list{padding-left:1.2rem}
/* towns */
.region-h{margin-top:1.5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.town-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.65rem}
.town-tile a{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .95rem;text-decoration:none;color:var(--ink);height:100%}
.town-tile a:hover{border-color:var(--brand)}
.tt-name{font-weight:700;color:var(--brand-dk)}.tt-sub{font-size:.8rem;color:var(--muted)}
.town-cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem}
.town-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.35rem 1.05rem .7rem}
.town-card h3{margin:.65rem 0 .1rem}.town-card p{margin:.2rem 0}
.town-row{border-top:1px solid var(--line);padding-top:.2rem}
.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;background:var(--tint);color:var(--muted);padding:.16rem .55rem;border-radius:5px;font-weight:600;vertical-align:middle}
/* trust */
.trust-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}
.trust-list li{background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius);padding:1rem 1.1rem}
.trust-list strong{color:var(--brand-dk)}
.trust-list p{margin:.3rem 0 0;font-size:.92rem;color:var(--muted)}
/* listings */
.listings{margin-top:2.2rem}
.listings-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.2rem 1.15rem 1rem}
.empty-state{background:#fff;border:1px dashed var(--line-2);border-radius:var(--radius);padding:1rem 1.2rem}
.listing-list{list-style:none;padding:0;display:grid;gap:.8rem}
.grid-list{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}
.listing{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.95rem 1.1rem;box-shadow:var(--shadow)}
.listing-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.listing-name{margin:0;font:700 1.1rem/1.3 var(--serif)}
.listing-name a{text-decoration:none;color:var(--brand-dk)}.listing-name a:hover{text-decoration:underline}
.type-tag{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:.05rem .45rem;white-space:nowrap}
.listing-meta{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin:.35rem 0;font-size:.9rem;color:var(--muted)}
.listing-meta span{display:inline-flex;align-items:center;gap:.3rem}
.mico{width:15px;height:15px;color:var(--muted)}
.svc-list{list-style:none;padding:0;margin:.55rem 0;display:flex;flex-wrap:wrap;gap:.35rem}
.svc{display:inline-block;font-size:.78rem;background:#fff;color:var(--ink);border:1px solid var(--line-2);border-radius:5px;padding:.1rem .5rem;font-weight:500}
.article .svc-list,.article .listing-list,.article .cards,.article .chip-list,.article .town-grid{padding-left:0}
.reg-line{margin:.45rem 0}
.reg{font-size:.79rem}.bico{width:15px;height:15px}
.reg-yes{background:#eaf4ee;color:#1e6a3f}.reg-no{background:#fbf1e8;color:#87481a}.reg-unknown{background:#eff1f4;color:#4b5563}
.stat-row{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}
.stat-row li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.5rem .9rem;font-size:.9rem;color:var(--muted)}
.stat-row strong{color:var(--brand);font-size:1.15rem;margin-right:.2rem}
.more-link{font-weight:600}
.sources{font-size:.93rem;border-top:1px solid var(--line);margin-top:2.4rem}
.sources h2{font-size:1.2rem}
.sources li{margin:.35rem 0;word-break:break-word}
.muted{color:var(--muted)}.small{font-size:.86rem}.tbd{background:#fff3cd;padding:.1rem .4rem;border-radius:.25rem}
details summary{cursor:pointer;color:var(--muted)}
/* footer */
.site-footer{background:var(--brand-dk);color:rgba(255,255,255,.8);padding:2.2rem 0;font-size:.92rem}
.site-footer a{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem}
.footer-brand{display:flex;align-items:center;gap:.55rem;font:700 1.12rem/1 var(--serif);color:#fff;margin-top:0}
.footer-brand .mono{background:#fff;color:var(--brand-dk)}
.footer-links{list-style:none;padding:0;margin-top:0;display:flex;flex-wrap:wrap;gap:.4rem 1rem}
.disclaimer{max-width:var(--read)}
@media (max-width:860px){.hero{grid-template-columns:1fr;gap:1.4rem;padding:1.7rem 1.4rem 1.5rem}.hero-art{display:none}.footer-grid{grid-template-columns:1fr}}
@media (max-width:600px){body{font-size:1rem}.header-inner{flex-direction:column;align-items:flex-start;gap:.5rem}.main-nav ul{margin-left:-.6rem}.main-nav a{padding:.35rem .6rem}h2{font-size:1.3rem}.grid-list{grid-template-columns:1fr}.hero-cta .btn{flex:1 1 auto;text-align:center}}
@media print{.site-header,.site-footer,.breadcrumbs{display:none}}
