:root{
  --paper:#f4f1ea;
  --paper-2:#e7dfd0;
  --ink:#17201c;
  --ink-soft:#33413a;
  --moss:#2f6650;
  --moss-dark:#1e4636;
  --amber:#d99a2b;
  --line:#17201c;
  --radius:2px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Archivo", system-ui, sans-serif;
  font-size:18px;
  line-height:1.55;
}
a{color:var(--ink)}
.topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 28px;border-bottom:3px solid var(--line);
  position:sticky;top:0;background:var(--paper);z-index:10;
}
.mark{font-weight:800;letter-spacing:.14em;font-size:.85rem}
.topbar-link{font-weight:700;text-decoration-thickness:2px;text-underline-offset:4px}
main{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:"Fraunces", Georgia, serif;text-wrap:balance;line-height:1.02;margin:0}
h1{font-size:clamp(3rem, 8vw, 6.2rem);font-weight:900;letter-spacing:-.02em}
h2{font-size:clamp(2rem,4.5vw,3.4rem);font-weight:900;margin-bottom:22px}
h3{font-size:1.45rem;font-weight:600;margin-bottom:10px}
p{text-wrap:pretty;margin:0 0 14px}
.hero{
  display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;
  padding:72px 0 64px;border-bottom:3px solid var(--line);
}
.lede{font-size:1.35rem;color:var(--ink-soft);max-width:34rem;margin-top:24px}
.hero-actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:30px}
.button{
  background:var(--ink);color:var(--paper);font-weight:800;text-decoration:none;
  padding:16px 24px;border:3px solid var(--ink);border-radius:var(--radius);
}
.button:hover{background:var(--moss-dark);border-color:var(--moss-dark)}
.text-link{font-weight:700;text-underline-offset:4px}
.roof-figure{margin:0;border:3px solid var(--line);background:var(--paper-2);border-radius:var(--radius)}
.roof-figure svg{display:block;width:100%;height:auto}
.roof-figure figcaption{padding:14px 18px;border-top:3px solid var(--line);font-weight:700}
section{padding:64px 0;border-bottom:3px solid var(--line)}
.look-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:3px solid var(--line)}
.look-grid article{padding:26px;border-right:3px solid var(--line);border-bottom:3px solid var(--line);min-height:190px}
.look-grid article:nth-child(3n){border-right:none}
.look-grid .wide{grid-column:span 2}
.look-grid .alt{background:var(--ink);color:var(--paper)}
.look-grid .alt p{color:var(--paper)}
.systems-head{max-width:46rem}
.system-list{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:30px}
.system-list article{border-top:10px solid var(--moss);padding:24px 4px 0}
.system-list article + article{border-top-color:var(--amber)}
.best{font-weight:800;color:var(--moss-dark)}
.process ol{list-style:none;counter-reset:steps;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:22px 40px}
.process li{counter-increment:steps;border-top:3px solid var(--line);padding-top:16px}
.process li::before{content:counter(steps, decimal-leading-zero);display:block;font-weight:800;color:var(--moss);letter-spacing:.12em;margin-bottom:8px}
.fit-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.fit-cols > div{padding:28px;border:3px solid var(--line);border-radius:var(--radius)}
.fit-yes{background:#e4ecdf}
.fit-no{background:#efe3d8}
.fit-cols ul{margin:10px 0 0;padding-left:20px}
.fit-cols li{margin:9px 0}
.faq details{border-top:3px solid var(--line);padding:18px 0}
.faq details:last-child{border-bottom:3px solid var(--line)}
.faq summary{font-family:"Fraunces", Georgia, serif;font-size:1.35rem;font-weight:600;cursor:pointer}
.faq details p{margin-top:10px;max-width:46rem;color:var(--ink-soft)}
.estimate{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px}
.estimate p{color:var(--ink-soft);font-size:1.12rem}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{font-weight:700;display:grid;gap:7px}
label.full{grid-column:1 / -1}
input,select,textarea{
  font:inherit;padding:13px 12px;border:3px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);width:100%;
}
button{
  grid-column:1 / -1;background:var(--moss);color:#fff;border:3px solid var(--moss-dark);
  font:inherit;font-weight:800;padding:15px 22px;cursor:pointer;border-radius:var(--radius);
}
button:hover{background:var(--moss-dark)}
.hidden{display:none}
footer{
  max-width:1180px;margin:0 auto;padding:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-weight:800;letter-spacing:.08em;font-size:.85rem;
}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
@media (max-width: 820px){
  body{font-size:17px}
  .hero,.systems-head,.system-list,.process ol,.fit-cols,.estimate,form{grid-template-columns:1fr}
  .look-grid{grid-template-columns:1fr}
  .look-grid article,.look-grid .wide{grid-column:auto;border-right:none}
  .hero{padding-top:44px}
  .topbar{padding:15px 18px}
  main{padding:0 18px}
}
