/* Prairie code porch stylesheet */

:root{
  --fieldlight:#EEEFEA;
  --inkdeep:#364038;
  --markgreen:#6C9C74;
  --wellshade:#242C28;
  --boardface:#E0E8E0;
  --roseclay:#C87888;
  --chipsage:#A0B2A2;
  --greenline:#54795C;
  --boardline:#C6D2C6;
  --rosedeep:#9C4E60;
}

*{box-sizing:border-box;}

body{
  margin:0;
  font-size:16px;
  font-family:Georgia, "Times New Roman", serif;
  background:var(--fieldlight);
  color:var(--inkdeep);
  line-height:1.65;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:"Trebuchet MS", "Segoe UI", Verdana, sans-serif;
  color:var(--wellshade);
  line-height:1.18;
  margin:0 0 0.5em;
}

p{margin:0 0 1em;}
a{color:var(--greenline);}
a:hover{color:var(--wellshade);}
ul{margin:0 0 1em;padding-left:1.2em;}

.windmilltruss-wrap{
  background:var(--boardface);
  border-bottom:3px solid var(--markgreen);
}

.windmilltruss{
  display:flex;
  align-items:stretch;
  gap:0;
  max-width:1180px;
  margin:0 auto;
  padding:14px 22px 10px;
  flex-wrap:wrap;
}

.windmilltruss-nameplate{
  flex:0 0 auto;
  align-self:center;
  background:var(--wellshade);
  color:var(--fieldlight);
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.74rem;
  letter-spacing:0.06em;
  font-weight:700;
  padding:10px 16px;
  margin:4px 14px 4px 0;
  max-width:250px;
  line-height:1.35;
  border-left:5px solid var(--markgreen);
}

.windmilltruss-bay{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--fieldlight);
  border:2px solid var(--wellshade);
  border-right-width:0;
  padding:12px 10px;
  text-decoration:none;
}
.windmilltruss-bay:last-child{border-right-width:2px;}
.windmilltruss-bay:nth-child(2){flex:0 0 88px;}
.windmilltruss-bay:nth-child(3){flex:0 0 116px;}
.windmilltruss-bay:nth-child(4){flex:0 0 104px;}
.windmilltruss-bay:nth-child(5){flex:0 0 100px;}
.windmilltruss-bay:nth-child(6){flex:0 0 92px;}

.windmilltruss-link{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.82rem;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:var(--inkdeep);
  text-decoration:none;
  font-weight:600;
  white-space:nowrap;
}
.windmilltruss-bay:hover{background:var(--boardface);}
.windmilltruss-bay.is-active{background:var(--boardface);}

.windmilltruss-bay.is-active::after{
  content:"";
  position:absolute;
  top:-2px;
  right:-2px;
  width:0;
  height:0;
  border-left:16px solid var(--markgreen);
  border-bottom:16px solid transparent;
}

.porchrail{
  display:grid;
  grid-template-columns:56% 44%;
  max-width:1180px;
  margin:0 auto;
  padding:54px 22px 40px;
  gap:0;
  align-items:center;
}

.porchrail-text{padding-right:38px;}

.porchrail-eyebrow{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--greenline);
  margin-bottom:16px;
  border-bottom:2px solid var(--markgreen);
  display:inline-block;
  padding-bottom:6px;
}

.porchrail-headline{
  font-size:2.5rem;
  margin:0 0 4px;
  color:var(--wellshade);
}

.porchrail-display{
  display:block;
  font-size:4.4rem;
  letter-spacing:0.02em;
  color:var(--markgreen);
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-weight:800;
  line-height:1;
  margin:6px 0 18px;
}

.porchrail-lead{
  font-size:1.08rem;
  max-width:44ch;
  color:var(--inkdeep);
}

.porchrail-secondary{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  color:var(--greenline);
  font-weight:700;
  white-space:nowrap;
}

.porchrail-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--markgreen);
  color:#FFFFFF;
  text-decoration:none;
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-weight:700;
  letter-spacing:0.04em;
  padding:15px 22px;
  max-width:440px;
  margin-top:8px;
  border:2px solid var(--greenline);
}
.porchrail-cta:hover{background:var(--greenline);color:#FFFFFF;}
.porchrail-cta-arrow{font-size:1.35rem;}

.porchrail-scene{
  position:relative;
  height:390px;
  background:var(--boardface);
  border:3px solid var(--wellshade);
  overflow:hidden;
}

.porchrail-roof{
  position:absolute;
  top:34px;
  left:26px;
  right:26px;
  height:16px;
  background:var(--wellshade);
  transform:skewY(-5deg);
  border-top:5px solid var(--markgreen);
}

.porchrail-post{
  position:absolute;
  width:14px;
  background:var(--wellshade);
}
.porchrail-post.p1{left:44px;top:50px;height:216px;}
.porchrail-post.p2{left:214px;top:50px;height:216px;}
.porchrail-post.p3{left:346px;top:50px;height:216px;}

.porchrail-rail{
  position:absolute;
  left:26px;
  right:26px;
  top:150px;
  height:12px;
  background:var(--markgreen);
  border-top:3px solid var(--greenline);
}
.porchrail-rail.lower{top:214px;background:var(--markgreen);border-top:none;height:8px;}

.porchrail-board{
  position:absolute;
  left:70px;
  top:66px;
  width:250px;
  height:78px;
  background:var(--wellshade);
  border:3px solid var(--greenline);
  padding:8px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.porchrail-board-card{background:var(--fieldlight);}
.porchrail-board-card.tall{grid-row:span 1;background:var(--boardface);}
.porchrail-board-card.rose{background:var(--roseclay);}

.porchrail-deck{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:118px;
  background:var(--boardface);
  border-top:4px solid var(--chipsage);
}
.porchrail-deck-line{
  position:absolute;
  left:0;right:0;
  height:2px;
  background:var(--chipsage);
}
.porchrail-deck-line.d1{top:34px;}
.porchrail-deck-line.d2{top:70px;}

.porchrail-pump{
  position:absolute;
  left:24px;
  bottom:96px;
  width:40px;
  height:74px;
  background:var(--roseclay);
  border:3px solid var(--rosedeep);
}
.porchrail-pump::before{
  content:"";
  position:absolute;
  left:8px;
  top:-24px;
  width:20px;
  height:24px;
  background:var(--roseclay);
  border:3px solid var(--rosedeep);
  border-bottom:none;
}

.porchrail-barrel{
  position:absolute;
  right:30px;
  bottom:84px;
  width:58px;
  height:66px;
  background:var(--chipsage);
  border:3px solid var(--greenline);
}
.porchrail-barrel::before{
  content:"";
  position:absolute;
  left:-3px;
  top:14px;
  right:-3px;
  height:5px;
  background:var(--greenline);
}
.porchrail-barrel::after{
  content:"";
  position:absolute;
  left:-3px;
  top:42px;
  right:-3px;
  height:5px;
  background:var(--greenline);
}

.porchrail-spout{
  position:absolute;
  right:58px;
  top:36px;
  width:6px;
  height:110px;
  background:var(--wellshade);
}

.porchrail-vane{
  position:absolute;
  right:56px;
  top:-8px;
  width:2px;
  height:52px;
  background:var(--wellshade);
}
.porchrail-vane::before{
  content:"";
  position:absolute;
  top:0;
  left:-20px;
  width:42px;
  height:16px;
  background:var(--markgreen);
  border:2px solid var(--greenline);
  transform:rotate(18deg);
}
.porchrail-vane::after{
  content:"";
  position:absolute;
  top:16px;
  left:-10px;
  width:22px;
  height:12px;
  background:var(--roseclay);
}

.porchrail-caption{
  position:absolute;
  left:20px;
  top:12px;
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.62rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--greenline);
}

.taskboard-section{
  background:var(--fieldlight);
  padding:20px 22px 60px;
}

.taskboard-wrap{
  max-width:1180px;
  margin:0 auto;
}

.taskboard-head{
  display:flex;
  align-items:baseline;
  gap:18px;
  border-bottom:3px solid var(--markgreen);
  padding-bottom:12px;
  margin-bottom:34px;
  flex-wrap:wrap;
}
.taskboard-head h2{font-size:1.9rem;margin:0;flex:0 0 auto;}
.taskboard-head p{margin:0;color:var(--inkdeep);max-width:60ch;font-size:0.96rem;}

.taskboard{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  padding:26px 26px 30px;
  background:var(--boardface);
  border:3px solid var(--wellshade);
  border-top:12px solid var(--wellshade);
  position:relative;
}

.taskboard-clip{
  position:absolute;
  top:-12px;
  left:34px;
  width:64px;
  height:12px;
  background:var(--wellshade);
}

.taskboard-card{
  background:var(--fieldlight);
  border:2px solid var(--boardline);
  padding:18px 20px 20px;
  position:relative;
  border-left:6px solid var(--markgreen);
}
.taskboard-card:nth-child(2){transform:rotate(-0.7deg);flex:1 1 300px;}
.taskboard-card:nth-child(3){transform:rotate(0.6deg);flex:1 1 340px;}
.taskboard-card:nth-child(4){transform:rotate(-0.4deg);flex:1 1 280px;}
.taskboard-card:nth-child(5){transform:rotate(0.8deg);flex:1 1 320px;}
.taskboard-card:nth-child(6){transform:rotate(-0.6deg);flex:1 1 260px;}
.taskboard-card:nth-child(7){transform:rotate(0.5deg);flex:1 1 310px;}

.taskboard-mark{
  display:inline-block;
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--greenline);
  background:var(--boardface);
  border:2px solid var(--markgreen);
  padding:2px 8px;
  margin-bottom:10px;
}
.taskboard-card h3{font-size:1.18rem;margin:0 0 8px;}
.taskboard-card p{font-size:0.93rem;margin:0 0 10px;}
.taskboard-card a{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.82rem;
  font-weight:700;
  text-decoration:none;
  color:var(--greenline);
  border-bottom:2px solid var(--markgreen);
}

.vanesweepband{
  background:var(--wellshade);
  color:var(--fieldlight);
  padding:26px 22px;
  border-top:4px solid var(--markgreen);
  border-bottom:4px solid var(--markgreen);
}
.vanesweepband-inner{
  max-width:1180px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:34px;
}
.vanesweepband-wheel{
  flex:0 0 auto;
  width:74px;
  height:74px;
  border-radius:50%;
  border:4px solid var(--boardface);
  position:relative;
}
.vanesweepband-vane{
  position:absolute;
  top:50%;
  left:50%;
  height:4px;
  background:var(--markgreen);
  transform-origin:0 50%;
}
.vanesweepband-vane.v1{width:52px;transform:rotate(-32deg);}
.vanesweepband-vane.v2{width:40px;transform:rotate(88deg);background:var(--roseclay);}
.vanesweepband-vane.v3{width:46px;transform:rotate(198deg);}
.vanesweepband-vane.v4{width:34px;transform:rotate(300deg);background:var(--greenline);}
.vanesweepband-wheel::after{
  content:"";
  position:absolute;
  top:50%;left:50%;
  width:12px;height:12px;
  margin:-6px 0 0 -6px;
  border-radius:50%;
  background:var(--boardface);
}
.vanesweepband-text{
  font-size:1.22rem;
  color:var(--fieldlight);
  margin:0;
  font-family:"Trebuchet MS", Verdana, sans-serif;
}

.home-copy{
  background:var(--boardface);
  padding:58px 22px 64px;
  border-bottom:3px solid var(--boardline);
}
.home-copy-wrap{
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:46px;
}
.home-copy-main h2{font-size:1.8rem;margin-top:0;}
.home-copy-main p{font-size:1rem;}
.home-copy-aside{
  background:var(--fieldlight);
  border:3px solid var(--wellshade);
  border-top:10px solid var(--markgreen);
  padding:24px;
}
.home-copy-aside h3{font-size:1.1rem;margin-top:0;}
.home-copy-aside ul{padding-left:1.1em;}
.home-copy-aside li{margin-bottom:8px;font-size:0.94rem;}

.home-copy-main .inline-svc{
  color:var(--greenline);
  font-weight:700;
  text-decoration:none;
  border-bottom:2px solid var(--markgreen);
}

.step-run{
  background:var(--fieldlight);
  padding:56px 22px 64px;
}
.step-run-wrap{max-width:1080px;margin:0 auto;}
.step-run h2{font-size:1.8rem;margin-top:0;border-left:8px solid var(--markgreen);padding-left:16px;}
.step-run-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:26px;}
.step-run-item{
  background:var(--boardface);
  border-bottom:6px solid var(--markgreen);
  padding:20px;
}
.step-run-num{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:1.7rem;
  font-weight:800;
  color:var(--markgreen);
  display:block;
  margin-bottom:6px;
}
.step-run-item h3{font-size:1rem;margin:0 0 6px;}
.step-run-item p{font-size:0.9rem;margin:0;}

.rainbarrel{
  background:var(--wellshade);
  color:var(--fieldlight);
  position:relative;
  overflow-x:hidden;
}
.rainbarrel-spout{
  display:flex;
  align-items:center;
  height:20px;
  background:var(--boardface);
  border-bottom:3px solid var(--greenline);
}
.rainbarrel-bracket{
  width:5px;
  height:20px;
  background:var(--chipsage);
  margin-right:120px;
  flex:0 0 auto;
}
.rainbarrel-drip{
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--roseclay);
  margin-left:auto;
  margin-right:50px;
}
.rainbarrel-inner{
  max-width:1180px;
  margin:0 auto;
  padding:44px 22px 26px;
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:48px;
}
.rainbarrel-brand{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:0.04em;
  color:var(--fieldlight);
  margin:0 0 12px;
}
.rainbarrel-blurb{color:#D7DED4;font-size:0.94rem;max-width:52ch;}
.rainbarrel-contact{
  display:block;
  color:#C9D2C5;
  font-size:0.9rem;
  margin:4px 0;
  text-decoration:none;
}
.rainbarrel-contact:hover{color:#FFFFFF;}
.rainbarrel-links-col h3{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.78rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:#B7C4B6;
  margin:0 0 12px;
}
.rainbarrel-link{
  display:block;
  color:#D7DED4;
  text-decoration:none;
  font-size:0.94rem;
  padding:6px 0;
  border-bottom:2px solid var(--markgreen);
}
.rainbarrel-link:hover{color:#FFFFFF;}
.rainbarrel-baseline{
  border-top:2px solid var(--greenline);
  padding:14px 22px;
  max-width:1180px;
  margin:0 auto;
  font-size:0.82rem;
  color:#BFC9BB;
  font-family:"Trebuchet MS", Verdana, sans-serif;
}
.rainbarrel-glyph{
  display:inline-block;
  width:12px;
  height:12px;
  border:2px solid var(--markgreen);
  transform:rotate(45deg);
  margin-right:8px;
  vertical-align:middle;
}

/* Services page */
.page-hero{
  max-width:1180px;
  margin:0 auto;
  padding:48px 22px 34px;
  border-bottom:3px solid var(--markgreen);
}
.page-hero h1{font-size:2.3rem;margin:0 0 10px;}
.page-hero p{font-size:1.05rem;max-width:70ch;color:var(--inkdeep);}

.svc-list{
  max-width:1080px;
  margin:0 auto;
  padding:20px 22px 66px;
}
.svc-item{
  background:var(--boardface);
  border:2px solid var(--boardline);
  border-left:10px solid var(--markgreen);
  padding:26px 28px;
  margin-top:26px;
}
.svc-item:nth-child(even){border-left-color:var(--greenline);}
.svc-item h2{font-size:1.35rem;margin:0 0 10px;}
.svc-item p{font-size:0.98rem;margin:0 0 10px;}
.svc-item .svc-tag{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--greenline);
  font-weight:700;
}

.process-section{
  background:var(--boardface);
  padding:56px 22px 60px;
  border-top:3px solid var(--boardline);
  border-bottom:3px solid var(--boardline);
}
.process-wrap{max-width:1080px;margin:0 auto;}
.process-wrap h2{font-size:1.8rem;margin-top:0;}
.process-list{}
.process-row{
  display:grid;
  grid-template-columns:70px 1fr;
  gap:20px;
  padding:18px 0;
  border-bottom:2px solid var(--boardline);
  align-items:start;
}
.process-row:last-child{border-bottom:none;}
.process-row-num{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:1.4rem;
  font-weight:800;
  color:var(--markgreen);
}
.process-row h3{margin:0 0 6px;font-size:1.08rem;}
.process-row p{margin:0;font-size:0.94rem;}

.cta-band{
  background:var(--markgreen);
  padding:40px 22px;
}
.cta-band-inner{
  max-width:1080px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  flex-wrap:wrap;
}
.cta-band-inner h2{color:#FFFFFF;margin:0;font-size:1.5rem;}
.cta-band-btn{
  background:var(--wellshade);
  color:var(--fieldlight);
  text-decoration:none;
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-weight:700;
  padding:14px 26px;
  border:2px solid var(--wellshade);
  white-space:nowrap;
}
.cta-band-btn:hover{background:var(--greenline);color:#FFFFFF;}

/* Contact page */
.contact-grid{
  max-width:1080px;
  margin:0 auto;
  padding:20px 22px 66px;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:46px;
}
.contact-form label{
  display:block;
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.8rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--greenline);
  margin:16px 0 6px;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  font-family:Georgia, serif;
  font-size:1rem;
  padding:11px 12px;
  border:2px solid var(--wellshade);
  background:#FFFFFF;
  color:var(--inkdeep);
}
.contact-form textarea{min-height:150px;resize:vertical;}
.contact-form button{
  margin-top:18px;
  background:var(--markgreen);
  color:#FFFFFF;
  border:2px solid var(--greenline);
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-weight:700;
  font-size:0.95rem;
  letter-spacing:0.05em;
  padding:14px 30px;
  cursor:pointer;
}
.contact-form button:hover{background:var(--greenline);}
.contact-form-note{font-size:0.82rem;color:var(--greenline);margin-top:10px;}

.contact-info{
  background:var(--boardface);
  border:3px solid var(--wellshade);
  border-top:10px solid var(--markgreen);
  padding:26px;
  align-self:start;
}
.contact-info h2{font-size:1.2rem;margin-top:0;}
.contact-info address{font-style:normal;margin:0 0 16px;font-size:0.96rem;}
.contact-line{display:block;margin:8px 0;font-size:0.94rem;}
.contact-line strong{
  font-family:"Trebuchet MS", Verdana, sans-serif;
  font-size:0.76rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--greenline);
  display:block;
}

.faq-section{
  background:var(--fieldlight);
  padding:10px 22px 66px;
}
.faq-wrap{max-width:1080px;margin:0 auto;}
.faq-wrap h2{font-size:1.7rem;}
.faq-item{
  background:var(--boardface);
  border-left:8px solid var(--markgreen);
  margin-bottom:14px;
  padding:18px 22px;
}
.faq-item h3{margin:0 0 6px;font-size:1.05rem;}
.faq-item p{margin:0;font-size:0.94rem;}

.reveal-ready{
  transition:transform 0.55s ease;
}
.reveal-hidden{
  transform:translateY(26px);
  visibility:hidden;
}
.reveal-shown{
  transform:none;
  visibility:visible;
}

@media (max-width:920px){
  .windmilltruss-nameplate{max-width:none;flex:1 1 100%;margin-bottom:10px;}
  .windmilltruss{justify-content:flex-start;}
  .windmilltruss-bay{flex:1 1 auto !important;min-width:90px;}
  .porchrail{grid-template-columns:1fr;padding-top:36px;}
  .porchrail-text{padding-right:0;margin-bottom:34px;}
  .porchrail-scene{height:340px;}
  .porchrail-display{font-size:3.4rem;}
  .home-copy-wrap{grid-template-columns:1fr;}
  .step-run-grid{grid-template-columns:repeat(2,1fr);}
  .rainbarrel-inner{grid-template-columns:1fr;gap:30px;}
  .contact-grid{grid-template-columns:1fr;}
}

@media (max-width:620px){
  .porchrail-headline{font-size:1.85rem;}
  .porchrail-display{font-size:2.7rem;}
  .step-run-grid{grid-template-columns:1fr;}
  .vanesweepband-inner{flex-direction:column;text-align:center;gap:18px;}
  .taskboard{padding:18px 14px 22px;}
  .process-row{grid-template-columns:48px 1fr;}
}
