:root{
  --green:#07512f;
  --green-2:#0f6a43;
  --dark:#0d2d21;
  --soft:#eef6f0;
  --line:#dfe9e2;
  --gold:#c69038;
}

/* Version 12 header: intentionally explicit sizing */
.v12-header{position:relative;z-index:30;background:#fff;border-bottom:1px solid #e4ebe6}
.v12-head-row{width:min(1460px,calc(100% - 52px));min-height:150px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:36px}
.v12-brand{display:flex;align-items:center;gap:28px;text-decoration:none}
.v12-mark{width:118px;height:118px;flex:0 0 118px;border-radius:24px;background:linear-gradient(145deg,#176c47,#0b5434);display:grid;place-items:center;color:#fff;font-size:42px;font-weight:900;letter-spacing:.02em;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.v12-title{font-size:78px;line-height:.95;font-weight:900;letter-spacing:-3.6px;color:var(--green);white-space:nowrap}
.v12-nav{display:flex;align-items:center;gap:34px;flex:0 0 auto}
.v12-nav a{text-decoration:none;color:#13251c;font-size:16px;font-weight:750}
.v12-nav .nav-cta{border:1.5px solid var(--green);border-radius:10px;padding:14px 20px}

/* Vertical one-at-a-time tagline rotator */
.v12-tagbar{width:min(1460px,calc(100% - 52px));height:64px;margin:0 auto 0;display:grid;grid-template-columns:20px 1fr 42px;align-items:center;gap:18px;padding:0 22px;border:1px solid #dde7e0;border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 8px 22px rgba(20,61,44,.08);transform:translateY(15px)}
.v12-tagdot{width:12px;height:12px;border-radius:50%;background:#37a86b;box-shadow:0 0 0 5px rgba(55,168,107,.09)}
.v12-tagwindow{height:30px;overflow:hidden;position:relative;text-align:center}
.v12-tagphrase{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#15362a;font-size:19px;font-weight:760;opacity:0;transform:translateY(115%);transition:transform .55s ease,opacity .55s ease}
.v12-tagphrase.is-active{opacity:1;transform:translateY(0)}
.v12-tagphrase.is-leaving{opacity:0;transform:translateY(-115%)}
.v12-tag-arrows{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green);font-size:18px;line-height:14px;font-weight:900;user-select:none}

/* Meadow hero */
.v12-hero{position:relative;overflow:hidden;padding:88px 0 0;min-height:650px;background:
  radial-gradient(ellipse at 72% 43%,rgba(255,255,255,.88) 0 9%,rgba(255,255,255,0) 30%),
  radial-gradient(ellipse at 88% 28%,rgba(255,255,255,.70) 0 6%,rgba(255,255,255,0) 22%),
  linear-gradient(to bottom,#bfe1f3 0%,#eaf4f4 49%,#a8c87b 50%,#8fba5c 63%,#6fa445 100%)}
.v12-hero::before{content:"";position:absolute;left:-5%;right:-5%;bottom:22%;height:105px;background:
  radial-gradient(ellipse at 6% 88%,#396b39 0 15%,transparent 16%),
  radial-gradient(ellipse at 18% 83%,#4b7e3e 0 16%,transparent 17%),
  radial-gradient(ellipse at 32% 90%,#345f36 0 14%,transparent 15%),
  radial-gradient(ellipse at 48% 84%,#3d743c 0 17%,transparent 18%),
  radial-gradient(ellipse at 63% 90%,#376b39 0 15%,transparent 16%),
  radial-gradient(ellipse at 78% 86%,#44783d 0 18%,transparent 19%),
  radial-gradient(ellipse at 93% 88%,#386d39 0 17%,transparent 18%);opacity:.78;filter:blur(.2px)}
.v12-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:37%;background:
  repeating-linear-gradient(76deg,rgba(255,255,255,.08) 0 2px,transparent 2px 9px),
  linear-gradient(to bottom,rgba(116,168,65,.22),rgba(68,133,46,.42));mix-blend-mode:multiply;pointer-events:none}
.v12-hero-grid{position:relative;z-index:2;width:min(1460px,calc(100% - 52px));margin:0 auto;display:grid;grid-template-columns:minmax(500px,1.02fr) 320px minmax(390px,.82fr);gap:36px;align-items:center}
.v12-copy h1{margin:0;color:#0f2b20;font-size:74px;line-height:1.01;letter-spacing:-3.2px;max-width:720px}
.v12-copy .hero-copy{font-size:19px;line-height:1.52;max-width:650px;color:#365246}
.v12-station-wrap{align-self:end;height:535px;display:flex;align-items:flex-end;justify-content:center;position:relative}
.v12-station{width:300px;max-height:515px;object-fit:contain;filter:drop-shadow(0 18px 15px rgba(8,42,27,.17))}
.v12-station-wrap::after{content:"";position:absolute;bottom:6px;left:50%;width:205px;height:28px;transform:translateX(-50%);border-radius:50%;background:rgba(19,62,33,.22);filter:blur(12px);z-index:-1}
.v12-card{background:linear-gradient(145deg,#123f2c,#0a2f22)!important;border:1px solid rgba(255,255,255,.10);box-shadow:0 24px 55px rgba(12,49,34,.20)!important}
.v12-strip{position:relative;z-index:4;background:linear-gradient(90deg,#073e2c,#0b5339);color:#fff}
.v12-strip .trust-grid div{border-color:rgba(255,255,255,.18)!important}.v12-strip strong{color:#fff!important}.v12-strip span{color:#d8eadf!important}

@media(max-width:1250px){
  .v12-mark{width:92px;height:92px;flex-basis:92px;border-radius:19px;font-size:31px}.v12-title{font-size:58px}.v12-head-row{min-height:126px}.v12-nav{gap:22px}
  .v12-hero-grid{grid-template-columns:minmax(430px,1fr) 240px minmax(360px,.8fr)}.v12-station{width:235px}.v12-copy h1{font-size:62px}
}
@media(max-width:980px){
  .v12-head-row{min-height:108px}.v12-mark{width:76px;height:76px;flex-basis:76px;font-size:25px}.v12-title{font-size:44px;letter-spacing:-2px}.v12-nav a:not(.nav-cta){display:none}
  .v12-tagbar{width:calc(100% - 28px)}.v12-tagphrase{font-size:16px}
  .v12-hero-grid{grid-template-columns:1fr .85fr}.v12-station-wrap{display:none}.v12-copy h1{font-size:58px}
}
@media(max-width:720px){
  .v12-head-row{width:calc(100% - 28px);min-height:92px;gap:14px}.v12-brand{gap:13px}.v12-mark{width:58px;height:58px;flex-basis:58px;border-radius:14px;font-size:20px}.v12-title{font-size:31px;letter-spacing:-1.2px}.v12-nav .nav-cta{padding:10px 12px;font-size:14px}
  .v12-tagbar{height:56px;padding:0 14px;grid-template-columns:14px 1fr 28px;gap:8px}.v12-tagphrase{font-size:14px}
  .v12-hero{padding-top:65px}.v12-hero-grid{width:calc(100% - 28px);grid-template-columns:1fr}.v12-copy h1{font-size:46px;letter-spacing:-2px}.monitor-card{max-width:none}.v12-strip .trust-grid{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.v12-tagphrase{transition:none}}


/* v14: compact left-side continuous tagline ticker */
.v12-tagbar{
  width:min(620px,calc(100% - 52px));
  margin-left:26px;
  margin-right:auto;
  height:48px;
  grid-template-columns:14px 1fr;
  gap:10px;
  padding:0 14px;
  transform:translateY(10px);
}
.v12-tagwindow{
  height:24px;
  overflow:hidden;
  position:relative;
  text-align:left;
}
.v12-tagphrase{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  white-space:nowrap;
  font-size:14px;
  opacity:0;
  transform:translateY(115%);
  transition:transform .55s ease, opacity .25s ease;
  pointer-events:none;
}
.v12-tagphrase.is-active{
  opacity:1;
  transform:translateY(0);
}
.v12-tagphrase.is-leaving{
  opacity:0;
  transform:translateY(-115%);
}
.v12-tag-arrows{display:none}

@media(max-width:720px){
  .v12-tagbar{
    width:calc(100% - 28px);
    margin-left:14px;
    height:44px;
    padding:0 12px;
  }
  .v12-tagphrase{font-size:12px}
}


/* v15: text-only rotating tagline beneath the FarmStorming brand */
.v12-header{
  padding-bottom:0;
}
.v12-tagbar{
  width:390px;
  height:28px;
  margin-left:370px;
  margin-right:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transform:translateY(-8px);
  display:block;
}
.v12-tagdot,
.v12-tag-arrows{
  display:none !important;
}
.v12-tagwindow{
  width:100%;
  height:24px;
  overflow:hidden;
  position:relative;
  text-align:left;
}
.v12-tagphrase{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  white-space:nowrap;
  font-size:14px;
  opacity:0;
  transform:translateY(115%);
  transition:transform .55s ease, opacity .25s ease;
  pointer-events:none;
}
.v12-tagphrase.is-active{
  opacity:1;
  transform:translateY(0);
}
.v12-tagphrase.is-leaving{
  opacity:0;
  transform:translateY(-115%);
}
@media(max-width:900px){
  .v12-tagbar{
    width:calc(100% - 56px);
    margin-left:28px;
    transform:none;
  }
}


/* v17 contact request modal */
.contact-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px}
.contact-modal.is-open{display:flex}
.contact-modal-backdrop{position:absolute;inset:0;background:rgba(9,31,23,.68);backdrop-filter:blur(3px)}
.contact-dialog{position:relative;z-index:1;width:min(860px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.contact-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:32px;line-height:1;color:#345;cursor:pointer}
.contact-dialog h2{margin-top:4px}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.contact-grid label,.contact-message{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#17372b}
.contact-grid label span,.contact-message span{color:#277c50}
.contact-grid input,.contact-grid select,.contact-message textarea{width:100%;box-sizing:border-box;border:1px solid #cddbd3;border-radius:10px;padding:11px 12px;font:inherit;background:#fff;color:#16342a}
.contact-grid input:focus,.contact-grid select:focus,.contact-message textarea:focus{outline:2px solid rgba(44,142,89,.25);border-color:#2c8e59}
.contact-wide{grid-column:1/-1}
.interest-fieldset{margin:22px 0;border:1px solid #dce7e0;border-radius:14px;padding:16px}
.interest-fieldset legend{padding:0 8px;font-weight:800;color:#17372b}
.interest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.interest-grid label{font-weight:600;color:#345;display:flex;gap:8px;align-items:center}
.contact-message textarea{resize:vertical;min-height:130px}
.contact-submit-row{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:18px}
#contact-status{margin:0;font-weight:700;color:#345}
#contact-status.success{color:#237548}
#contact-status.error{color:#a33434}
.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
body.contact-modal-open{overflow:hidden}
@media(max-width:680px){
  .contact-dialog{padding:24px 18px}
  .contact-grid,.interest-grid{grid-template-columns:1fr}
  .contact-wide{grid-column:auto}
  .contact-submit-row{align-items:stretch;flex-direction:column}
}


/* v18 weather-station drag/drop human check */
.contact-launch{font:inherit;cursor:pointer}
.weather-puzzle{margin-top:22px;border:1px solid #dce7e0;border-radius:16px;padding:18px;background:#f8fbf9}
.weather-puzzle-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.weather-puzzle-head h3{margin:2px 0 4px;color:#17372b}
.weather-puzzle-head p{margin:0;color:#587066}
.puzzle-reset{border:1px solid #c8d8cf;background:#fff;border-radius:9px;padding:8px 10px;cursor:pointer;color:#275b43}
.puzzle-layout{display:grid;grid-template-columns:220px 1fr;gap:18px;margin-top:16px}
.puzzle-parts{display:grid;gap:8px;align-content:start}
.puzzle-piece{display:flex;align-items:center;gap:9px;border:1px solid #cbdcd2;background:#fff;border-radius:10px;padding:10px 12px;cursor:grab;color:#174b35;font-weight:750;text-align:left}
.puzzle-piece:active{cursor:grabbing}
.puzzle-piece.placed{opacity:.35;pointer-events:none}
.station-board{position:relative;min-height:310px;border:1px dashed #9eb8aa;border-radius:14px;background:linear-gradient(#eaf5f7 0 60%,#e5f0df 60%);overflow:hidden}
.drop-zone{position:absolute;border:2px dashed rgba(39,124,80,.42);border-radius:9px;display:flex;align-items:center;justify-content:center;color:#55766a;font-size:12px;background:rgba(255,255,255,.58);transition:.18s ease}
.drop-zone.drag-over{border-color:#267e50;background:rgba(215,244,226,.92);transform:scale(1.03)}
.drop-zone.correct{border-style:solid;border-color:#2e8f5a;background:#e4f5e9;color:#185a36;font-weight:800}
.wind-zone{width:115px;height:52px;left:48%;top:18px}
.solar-zone{width:120px;height:64px;left:14%;top:92px;transform:rotate(-8deg)}
.logger-zone{width:92px;height:64px;left:58%;top:124px}
.mast-zone{width:52px;height:145px;left:46%;top:72px}
.tripod-zone{width:145px;height:70px;left:35%;bottom:18px}
.station-success{display:none;position:absolute;right:12px;bottom:10px;background:#fff;border-radius:10px;padding:8px 10px;box-shadow:0 4px 16px rgba(20,61,44,.12);font-size:12px;font-weight:800;color:#1f6e43}
.station-success.show{display:block}
.station-light{display:inline-block;width:9px;height:9px;border-radius:50%;background:#35a865;margin-right:5px;animation:stationBlink 1s infinite}
@keyframes stationBlink{50%{opacity:.25}}
#contact-submit:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:700px){
  .puzzle-layout{grid-template-columns:1fr}
  .puzzle-parts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .station-board{min-height:290px}
}
