/* ============================================================
   GRO2GREEN — shared stylesheet
   Palette:
     --forest      #1B2E1F  deep pine (dark sections, header)
     --pine        #24382A  panel bg on dark
     --paper       #F6F1E7  warm paper (light sections)
     --leaf        #4F7942  fern green (primary)
     --leaf-bright #7CA65B  bright leaf (hover/accents)
     --soil        #8B5E3C  soil brown (secondary accent)
     --sage        #D8E2C8  pale sage (light fill)
     --ink         #22281F  body text on paper
   Type:
     Display : "Fraunces"      (organic serif, botanical character)
     Body    : "Work Sans"     (humanist sans)
     Utility : "IBM Plex Mono" (labels, data, specs)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300..700&family=Work+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --forest:#1B2E1F;
  --pine:#24382A;
  --paper:#F6F1E7;
  --leaf:#4F7942;
  --leaf-bright:#7CA65B;
  --soil:#8B5E3C;
  --sage:#D8E2C8;
  --ink:#22281F;
  --cream:#F3EFE3;
  --line: rgba(34,40,31,0.14);
  --line-dark: rgba(246,241,231,0.16);
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}

h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:600;
  line-height:1.08;
  margin:0 0 .5em 0;
  letter-spacing:-0.01em;
}

p{margin:0 0 1em 0;}

a{color:inherit;text-decoration:none;}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--soil);
  display:inline-flex;
  align-items:center;
  gap:.5em;
  margin-bottom:1em;
}
.eyebrow::before{
  content:"";
  width:22px;height:1px;
  background:var(--soil);
  display:inline-block;
}

.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 6vw;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ---------------- Header / Nav ---------------- */
header.site{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--forest);
  color:var(--cream);
  border-bottom:1px solid var(--line-dark);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.1rem 6vw;
  max-width:var(--maxw);
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.28rem;
  color:var(--cream);
}
.brand .mark{
  width:30px;height:30px;
  flex:0 0 auto;
}
.brand .mark svg{width:100%;height:100%;display:block;}
.brand small{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:.6rem;
  letter-spacing:.14em;
  color:var(--sage);
  font-weight:400;
  text-transform:uppercase;
  margin-top:2px;
}

nav.links{
  display:flex;
  gap:2.1rem;
  font-size:.92rem;
}
nav.links a{
  position:relative;
  padding:.2rem 0;
  color:var(--cream);
  opacity:.82;
  transition:opacity .2s ease;
}
nav.links a:hover{opacity:1;}
nav.links a::after{
  content:"";
  position:absolute;
  left:0;bottom:-4px;
  width:0;height:1px;
  background:var(--leaf-bright);
  transition:width .25s ease;
}
nav.links a.active{opacity:1;}
nav.links a.active::after,
nav.links a:hover::after{width:100%;}

.nav-cta{
  font-family:'IBM Plex Mono', monospace;
  font-size:.78rem;
  letter-spacing:.04em;
  border:1px solid var(--line-dark);
  padding:.55rem 1.1rem;
  border-radius:2px;
  color:var(--cream);
  transition:background .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.nav-cta:hover{background:var(--leaf); border-color:var(--leaf);}

.menu-btn{
  display:none;
  background:none;border:0;
  color:var(--cream);
  font-size:1.5rem;
  cursor:pointer;
}

@media (max-width:840px){
  nav.links{
    position:fixed;
    top:64px; left:0; right:0;
    flex-direction:column;
    background:var(--forest);
    padding:1.2rem 6vw 1.8rem;
    gap:1.1rem;
    border-bottom:1px solid var(--line-dark);
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
  }
  nav.links.open{opacity:1; transform:translateY(0); pointer-events:auto;}
  .nav-cta{display:none;}
  .menu-btn{display:block;}
}

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:.82rem;
  letter-spacing:.03em;
  padding:.85rem 1.5rem;
  border-radius:2px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--leaf); color:var(--cream);}
.btn-primary:hover{background:var(--forest);}
.btn-outline{border-color:var(--ink); color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--paper);}
.btn-outline.on-dark{border-color:var(--line-dark); color:var(--cream);}
.btn-outline.on-dark:hover{background:var(--cream); color:var(--forest);}

/* ---------------- Hero (contour rings) ---------------- */
.hero{
  position:relative;
  background:var(--forest);
  color:var(--cream);
  overflow:hidden;
  padding:6.5rem 0 5.5rem;
}
.hero .rings{
  position:absolute;
  right:-10%; top:50%;
  transform:translateY(-50%);
  width:640px; max-width:70vw;
  opacity:.9;
  pointer-events:none;
}
.hero-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:2rem;
  align-items:end;
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 4rem);
  color:var(--cream);
  max-width:11ch;
}
.hero .lede{
  font-size:1.08rem;
  color:var(--sage);
  max-width:46ch;
  margin-bottom:1.8rem;
}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap;}
.hero-stats{
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  border-left:1px solid var(--line-dark);
  padding-left:1.6rem;
}
.hero-stats .stat b{
  display:block;
  font-family:'Fraunces', serif;
  font-size:2rem;
  color:var(--leaf-bright);
  font-weight:600;
}
.hero-stats .stat span{
  font-family:'IBM Plex Mono', monospace;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--sage);
}
@media (max-width:840px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-stats{
    flex-direction:row;
    border-left:0;
    border-top:1px solid var(--line-dark);
    padding-left:0; padding-top:1.4rem;
    gap:2rem;
    flex-wrap:wrap;
  }
  .hero .rings{display:none;}
}

/* ---------------- Sections ---------------- */
section{padding:5.5rem 0;}
section.tight{padding:3.5rem 0;}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin-bottom:3rem;
  flex-wrap:wrap;
}
.section-head h2{font-size:clamp(1.7rem, 3vw, 2.4rem); max-width:16ch;}
.section-head .desc{max-width:38ch; color:#4a4f42; font-size:.98rem;}

.on-dark{background:var(--forest); color:var(--cream);}
.on-dark h2, .on-dark h3{color:var(--cream);}
.on-dark .section-head .desc{color:var(--sage);}
.on-soil{background:var(--soil); color:var(--cream);}
.on-sage{background:var(--sage);}

/* ---------------- Cards / grids ---------------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem;}
@media (max-width:900px){.grid-3{grid-template-columns:1fr;} .grid-2{grid-template-columns:1fr;}}

.card{
  background:var(--cream);
  border:1px solid var(--line);
  padding:2rem 1.8rem;
  border-radius:3px;
  transition:border-color .2s ease, transform .2s ease;
}
.card:hover{border-color:var(--leaf); transform:translateY(-4px);}
.card .tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--leaf);
  margin-bottom:.9rem;
  display:block;
}
.card h3{font-size:1.25rem; margin-bottom:.5rem;}
.card p{color:#4a4f42; font-size:.94rem; margin-bottom:0;}

.icon-leaf{width:34px; height:34px; margin-bottom:1rem; color:var(--leaf);}

/* ---------------- Process / growth timeline (real sequence) ---------------- */
.timeline{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
  margin-top:1rem;
}
.timeline::before{
  content:"";
  position:absolute;
  top:22px; left:0; right:0;
  height:1px;
  background:var(--line-dark);
}
.on-paper .timeline::before{background:var(--line);}
.tl-step{position:relative; padding-top:3.2rem;}
.tl-step .ring{
  position:absolute; top:0; left:0;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid var(--leaf-bright);
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono', monospace;
  font-size:.75rem;
  background:var(--forest);
  color:var(--leaf-bright);
}
.on-paper .tl-step .ring{background:var(--paper); color:var(--leaf);}
.tl-step h4{font-size:1.02rem; margin-bottom:.35rem;}
.tl-step p{font-size:.88rem; color:var(--sage); margin:0;}
.on-paper .tl-step p{color:#4a4f42;}
@media (max-width:840px){
  .timeline{grid-template-columns:1fr 1fr; row-gap:2.4rem;}
  .timeline::before{display:none;}
}

/* ---------------- Table (fertilizer specs) ---------------- */
.spec-table{
  width:100%;
  border-collapse:collapse;
  font-size:.92rem;
}
.spec-table th{
  text-align:left;
  font-family:'IBM Plex Mono', monospace;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--soil);
  border-bottom:1px solid var(--line);
  padding:.7rem .6rem;
}
.spec-table td{
  padding:.85rem .6rem;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.spec-table tr:last-child td{border-bottom:none;}

/* ---------------- Quote / CTA banner ---------------- */
.cta-band{
  background:var(--leaf);
  color:var(--cream);
  padding:3.6rem 0;
  text-align:center;
}
.cta-band h2{color:var(--cream); font-size:clamp(1.6rem,3vw,2.2rem); max-width:24ch; margin:0 auto .6rem;}
.cta-band p{color:var(--sage); max-width:44ch; margin:0 auto 1.6rem;}
.cta-band .btn-outline{border-color:rgba(255,255,255,.5); color:var(--cream);}
.cta-band .btn-outline:hover{background:var(--cream); color:var(--forest);}

/* ---------------- Forms ---------------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;}
.form-grid .full{grid-column:1 / -1;}
@media (max-width:700px){.form-grid{grid-template-columns:1fr;}}
label{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--soil);
  margin-bottom:.5rem;
}
input, select, textarea{
  width:100%;
  font-family:'Work Sans', sans-serif;
  font-size:.96rem;
  padding:.8rem .9rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--ink);
  transition:border-color .2s ease;
}
input:focus, select:focus, textarea:focus{
  outline:2px solid var(--leaf);
  outline-offset:1px;
  border-color:var(--leaf);
}
textarea{resize:vertical; min-height:120px;}

/* ---------------- Contact info cards ---------------- */
.info-list{display:flex; flex-direction:column; gap:1.4rem;}
.info-item{display:flex; gap:1rem; align-items:flex-start;}
.info-item .ic{
  width:38px;height:38px; flex:0 0 auto;
  border-radius:50%;
  background:var(--sage);
  display:flex; align-items:center; justify-content:center;
  color:var(--leaf);
}
.info-item .ic svg{width:18px;height:18px;}
.info-item h4{font-size:.98rem; margin-bottom:.15rem;}
.info-item p, .info-item a{font-size:.92rem; color:#4a4f42;}

/* ---------------- AI Advisor widget ---------------- */
.advisor{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:6px;
  padding:2.4rem;
}
.advisor-step{display:none;}
.advisor-step.active{display:block;}
.advisor-progress{
  display:flex;
  gap:.4rem;
  margin-bottom:1.6rem;
}
.advisor-progress span{
  height:3px; flex:1;
  background:var(--line);
  border-radius:2px;
  overflow:hidden;
}
.advisor-progress span i{
  display:block; height:100%; width:0%;
  background:var(--leaf);
  transition:width .3s ease;
}
.advisor-progress span.done i{width:100%;}
.advisor-q{
  font-family:'IBM Plex Mono', monospace;
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--soil);
  margin-bottom:.6rem;
}
.advisor h3{font-size:1.3rem; margin-bottom:1.3rem;}
.pill-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem;}
@media (max-width:560px){.pill-grid{grid-template-columns:1fr;}}
.pill{
  display:flex; align-items:center; gap:.7rem;
  border:1px solid var(--line);
  border-radius:4px;
  padding:.95rem 1.1rem;
  cursor:pointer;
  background:var(--paper);
  font-size:.94rem;
  transition:border-color .18s ease, background .18s ease;
}
.pill:hover{border-color:var(--leaf-bright);}
.pill.selected{border-color:var(--leaf); background:var(--sage); font-weight:500;}
.pill .dot{
  width:9px; height:9px; border-radius:50%;
  border:1px solid var(--soil);
  flex:0 0 auto;
}
.pill.selected .dot{background:var(--leaf); border-color:var(--leaf);}
.advisor-nav{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:1.8rem;
}
.advisor-back{
  font-family:'IBM Plex Mono', monospace;
  font-size:.8rem;
  color:var(--soil);
  cursor:pointer;
  background:none; border:0;
  visibility:hidden;
}
.advisor-back.show{visibility:visible;}
.advisor-result{display:none;}
.advisor-result.active{display:block;}
.result-card{
  border:1px solid var(--leaf);
  background:var(--sage);
  border-radius:6px;
  padding:1.6rem 1.8rem;
  margin-bottom:1rem;
}
.result-card .tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:.66rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--forest);
  display:block;
  margin-bottom:.4rem;
}
.result-card h4{font-family:'Fraunces', serif; font-size:1.15rem; margin-bottom:.3rem;}
.result-card p{font-size:.92rem; color:#3a4032; margin:0;}
.advisor-restart{
  font-family:'IBM Plex Mono', monospace;
  font-size:.78rem;
  color:var(--soil);
  background:none;border:0;
  text-decoration:underline;
  cursor:pointer;
  padding:0;
  margin-top:.4rem;
}

/* ---------------- Footer ---------------- */
footer.site{
  background:var(--forest);
  color:var(--sage);
  padding:3.5rem 0 1.6rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:2.4rem;
  border-bottom:1px solid var(--line-dark);
}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{
  color:var(--cream);
  font-family:'IBM Plex Mono', monospace;
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:1rem;
  font-weight:500;
}
.footer-grid p, .footer-grid a{font-size:.9rem; color:var(--sage); display:block; margin-bottom:.6rem;}
.footer-grid a:hover{color:var(--cream);}
.footer-brand{
  font-family:'Fraunces', serif;
  color:var(--cream);
  font-size:1.3rem;
  margin-bottom:.7rem;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  padding-top:1.5rem;
  font-size:.78rem;
  color:rgba(216,226,200,.6);
  flex-wrap:wrap;
  gap:.6rem;
  font-family:'IBM Plex Mono', monospace;
}

/* ---------------- Reveal on scroll ---------------- */
.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .6s ease, transform .6s ease;
}
.reveal.in{opacity:1; transform:translateY(0);}

/* Page hero (interior pages, smaller) */
.page-hero{
  background:var(--forest);
  color:var(--cream);
  padding:4.2rem 0 3.4rem;
  position:relative;
  overflow:hidden;
}
.page-hero .rings{position:absolute; right:-14%; top:-30%; width:420px; opacity:.5; pointer-events:none;}
.page-hero h1{font-size:clamp(2rem,4vw,3rem); position:relative; z-index:2;}
.page-hero p{color:var(--sage); max-width:50ch; position:relative; z-index:2;}
