/* ============================================================
   Insansu Venture — Stylesheet (brand-aligned)
   Type: Fraunces (display) + Public Sans (body)
   Palette drawn from the Insansu Venture logo + product labels
   ============================================================ */

:root{
  --pine: #1F5E22;        /* dark green — headings, wordmark */
  --leaf: #4F9A2D;        /* bright green — accent, CTAs */
  --leaf-dark: #3E7D22;   /* hover state */
  --cream: #F7F2E6;       /* main background */
  --parchment: #ECE1C8;   /* alternate section background */
  --ink: #17231A;         /* dark band — header/footer */
  --ink-soft: #1E2C21;
  --text-dark: #24211A;
  --text-dim: #6E6A57;
  --text-light: #F3EFE2;
  --text-light-dim: #B9C2B2;
  --clay: #B24A2E;        /* tomato / pickle accent */
  --plum: #7E2A58;        /* onion accent */
  --brown: #7A4A22;       /* peanut butter accent */
  --rule: rgba(36,33,26,0.14);
  --rule-light: rgba(243,239,226,0.18);
  --max: 1180px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--cream);
  color: var(--text-dark);
  font-family: "Public Sans", -apple-system, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; }
.container{
  max-width: var(--max);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

h1,h2,h3,h4{
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  line-height: 1.08;
  margin: 0 0 0.5em;
  letter-spacing: -0.01em;
  color: var(--pine);
}
h1{ font-size: clamp(2.6rem, 6vw, 4.6rem); font-weight: 460; }
h2{ font-size: clamp(1.9rem, 3.6vw, 2.8rem); }
h3{ font-size: clamp(1.25rem, 2vw, 1.55rem); font-weight: 560; }
p{ margin: 0 0 1.1em; max-width: 62ch; color: var(--text-dim); }
.lede{ font-size: 1.2rem; color: var(--text-dim); max-width: 46ch; }
.eyebrow{
  font-family: "Fraunces", serif;
  font-style: italic;
  font-size: 1.05rem;
  color: var(--leaf);
  margin: 0 0 0.6em;
}

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(247,242,230,0.94);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--rule);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding: 0.9rem var(--gutter);
}
.brand{
  display:flex; align-items:center; gap:0.6rem;
  text-decoration:none;
}
.brand img{ height: 40px; width:auto; }
.brand-text{
  font-family:"Fraunces", serif; font-weight:600; font-size:1.2rem; color: var(--pine);
}
.site-footer .brand img{ height: 32px; width:auto; }
.site-footer .brand-text{ color: var(--text-light); }
.nav-links{
  display:flex; gap: 2.1rem; list-style:none; margin:0; padding:0;
  font-size: 0.97rem;
}
.nav-links a{
  text-decoration:none;
  color: var(--text-dim);
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  transition: color .18s ease, border-color .18s ease;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{
  color: var(--pine);
  border-color: var(--leaf);
}
.nav-toggle{
  display:none;
  background:none; border:1px solid var(--rule); color: var(--text-dark);
  width: 42px; height: 38px; border-radius: 3px; cursor:pointer;
  font-size: 1.1rem;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  padding: 0.85rem 1.6rem;
  font-size: 0.98rem;
  text-decoration:none;
  border: 1px solid var(--leaf);
  color: #fff;
  background: var(--leaf);
  border-radius: 2px;
  font-weight: 600;
  transition: background .18s ease, color .18s ease;
}
.btn:hover{ background: var(--leaf-dark); border-color: var(--leaf-dark); }
.btn-outline{
  background: transparent; color: var(--pine); border-color: var(--rule);
}
.btn-outline:hover{ border-color: var(--leaf); color: var(--leaf-dark); background:transparent; }

/* on dark bands */
.band-dark .btn-outline{ color: var(--text-light); border-color: var(--rule-light); }
.band-dark .btn-outline:hover{ border-color: var(--leaf); color: var(--leaf); }

/* ---------- Sections ---------- */
section{ padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.section-alt{ background: var(--parchment); }
.band-dark{ background: var(--ink); color: var(--text-light); }
.band-dark h1, .band-dark h2, .band-dark h3{ color: var(--text-light); }
.band-dark p, .band-dark .lede{ color: var(--text-light-dim); }
.band-dark .eyebrow{ color: var(--leaf); }
.rule{ border:0; border-top: 1px solid var(--rule); margin: 0; }
.band-dark .rule{ border-top-color: var(--rule-light); }

/* ---------- Hero ---------- */
.hero{
  padding-top: clamp(3rem, 8vw, 5.5rem);
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.hero-art{
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--rule);
}
.hero-art img{ width:100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; }
.hero-meta{
  display:flex; gap: 2.4rem; margin-top: 2.6rem; flex-wrap: wrap;
}
.hero-meta div{ border-left: 2px solid var(--leaf); padding-left: 1rem; }
.hero-meta .num{
  font-family:"Fraunces", serif; font-size: 1.6rem; color: var(--pine); display:block;
}
.hero-meta .lbl{ font-size: 0.88rem; color: var(--text-dim); }

/* ---------- Value chain rows ---------- */
.chain-list{ margin-top: 2.5rem; }
.chain-row{
  display:grid;
  grid-template-columns: 90px 1fr 1.3fr;
  gap: 2rem;
  padding: 1.9rem 0;
  border-top: 1px solid var(--rule);
  align-items: start;
}
.chain-row:last-child{ border-bottom: 1px solid var(--rule); }
.chain-index{
  font-family:"Fraunces", serif; font-style: italic;
  font-size: 1.05rem; color: var(--leaf);
}
.chain-row h3{ margin-bottom: 0.35em; }
.chain-row p{ margin:0; }

/* ---------- Project rows (editorial list) ---------- */
.proj-list{ margin-top: 2rem; }
.proj-row{
  padding: 2.3rem 0;
  border-top: 1px solid var(--rule);
  display:grid;
  grid-template-columns: 1fr 1.7fr;
  gap: 2.2rem;
}
.proj-row:last-child{ border-bottom: 1px solid var(--rule); }
.proj-tag{
  display:inline-block;
  font-size: 0.82rem;
  color: var(--leaf-dark);
  border: 1px solid currentColor;
  padding: 0.2rem 0.6rem;
  border-radius: 2px;
  margin-bottom: 0.8rem;
}
.band-dark .proj-tag{ color: var(--leaf); }
.proj-meta{ color: var(--text-dim); font-size: 0.95rem; margin-top: 1rem; }
.proj-meta span{ display:block; margin-bottom: 0.3rem; }
.proj-meta strong{ color: var(--text-dark); }
.band-dark .proj-meta strong{ color: var(--text-light); }

/* ---------- Two column ---------- */
.two-col{
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,4.5rem);
  align-items: start;
}

/* ---------- Quote / statement block ---------- */
.statement{
  font-family:"Fraunces", serif;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 440;
  max-width: 26ch;
  line-height: 1.25;
  color: var(--pine);
}
.statement em{ color: var(--leaf-dark); font-style: italic; }

/* ---------- Photo grid (crops) ---------- */
.photo-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  margin-top: 2.2rem;
}
.photo-card{
  border-radius: 4px; overflow:hidden; border:1px solid var(--rule);
  background: #fff;
}
.photo-card img{ width:100%; aspect-ratio: 4/3; object-fit: cover; }
.photo-card .cap{ padding: 0.9rem 1.1rem 1.1rem; }
.photo-card h3{ font-size: 1.05rem; margin-bottom: 0.15em; }
.photo-card p{ margin:0; font-size: 0.92rem; }

/* ---------- Product grid (coming soon) ---------- */
.product-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 2.2rem;
}
.product-card{
  background:#fff; border:1px solid var(--rule); border-radius: 4px; overflow:hidden;
  display:flex; flex-direction:column;
}
.product-card .shot{ aspect-ratio: 3/4; overflow:hidden; }
.product-card .shot img{ width:100%; height:100%; object-fit: cover; object-position: top; }
.product-card .cap{ padding: 1.1rem 1.2rem 1.3rem; position:relative; flex:1; display:flex; flex-direction:column; }
.product-card h3{ font-size:1.1rem; margin-bottom:0.3em; }
.soon-tag{
  display:inline-block; align-self:flex-start;
  font-size: 0.74rem; text-transform: none; letter-spacing: 0.02em;
  padding: 0.22rem 0.6rem; border-radius: 2px; margin-bottom: 0.6rem;
  color:#fff; font-weight:600;
}

/* ---------- Footer ---------- */
.site-footer{
  background: var(--ink);
  color: var(--text-light);
  padding: 3.5rem 0 2.2rem;
}
.footer-grid{
  display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem;
}
.footer-grid p{ color: var(--text-light-dim); }
.footer-grid h4{ font-size: 0.95rem; color: var(--text-light-dim); font-weight:600; font-family:"Public Sans",sans-serif; margin-bottom: 0.9rem;}
.footer-grid a{ text-decoration:none; color: var(--text-light-dim); display:block; margin-bottom:0.55rem; font-size:0.96rem;}
.footer-grid a:hover{ color: var(--leaf); }
.footer-bottom{
  margin-top: 3rem; padding-top: 1.6rem; border-top: 1px solid var(--rule-light);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-size: 0.85rem; color: var(--text-light-dim);
}
.footer-tagline{ font-family:"Fraunces", serif; font-style: italic; color: var(--leaf); font-size:1rem; margin-top:0.4rem;}

/* ---------- Contact form ---------- */
.form-grid{ display:grid; gap: 1.2rem; max-width: 560px; margin-top: 2rem;}
.form-grid label{ display:block; font-size: 0.9rem; margin-bottom: 0.4rem; color: var(--text-dim);}
.form-grid input, .form-grid textarea{
  width:100%; padding: 0.85rem 1rem; font-family: inherit; font-size: 1rem;
  border: 1px solid var(--rule); border-radius: 2px; background: #fff; color: var(--text-dark);
}
.form-grid textarea{ min-height: 130px; resize: vertical; }
.form-note{ font-size: 0.88rem; color: var(--text-dim); margin-top: 1rem; }

/* ---------- Info rows (contact page) ---------- */
.info-row{ display:flex; gap:1.2rem; padding: 1.3rem 0; border-top: 1px solid var(--rule); }
.info-row:last-child{ border-bottom: 1px solid var(--rule); }
.info-row .k{ width: 130px; flex-shrink:0; color: var(--text-dim); font-size:0.92rem; }
.info-row .v{ font-family:"Fraunces", serif; font-size: 1.1rem; color: var(--pine); }

/* ---------- Utility ---------- */
.mt-lg{ margin-top: 3rem; }
.center{ text-align:center; }
.tag-row{ display:flex; gap: 0.6rem; flex-wrap:wrap; margin-top: 1rem; }
.tag{
  font-size: 0.82rem; padding: 0.25rem 0.7rem; border: 1px solid var(--rule);
  border-radius: 2px; color: var(--text-dim);
}

/* ---------- Responsive ---------- */
@media (max-width: 860px){
  .nav-links{ display:none; }
  .nav-toggle{ display:block; }
  .hero-grid{ grid-template-columns: 1fr; }
  .chain-row{ grid-template-columns: 1fr; gap: 0.6rem; }
  .proj-row{ grid-template-columns: 1fr; }
  .two-col{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .photo-grid{ grid-template-columns: repeat(2, 1fr); }
  .product-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px){
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction:column; }
  .photo-grid{ grid-template-columns: 1fr 1fr; }
  .product-grid{ grid-template-columns: 1fr; }
}

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

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 2px solid var(--leaf); outline-offset: 2px;
}

/* ---------- Indigenous vegetables ---------- */
.veg-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}
.veg-card{
  background:#fff; border:1px solid var(--rule); border-left: 3px solid var(--leaf);
  border-radius: 4px; padding: 1.1rem 1.2rem;
}
.veg-card h3{ font-size: 1.1rem; margin-bottom: 0.15em; }
.veg-card p{ margin:0; font-size: 0.92rem; }

/* text-only product shot (no photo yet) */
.product-card .shot-text{
  display:flex; align-items:center; justify-content:center;
  background: var(--pine);
}
.product-card .shot-text span{
  font-family:"Fraunces", serif; font-style: italic; font-size: 1.7rem; line-height:1.15;
  color: var(--cream); text-align:center; padding: 1rem;
}

/* ---------- Order band ---------- */
.order-band{ padding: clamp(2.5rem, 6vw, 4rem) 0; border-top: 1px solid var(--rule); }
.order-row{
  display:grid; grid-template-columns: 1.6fr auto; gap: 2rem; align-items:center;
}

@media (max-width: 860px){
  .veg-grid{ grid-template-columns: repeat(2, 1fr); }
  .order-row{ grid-template-columns: 1fr; }
}

/* keep product card text readable inside dark bands */
.band-dark .product-card h3{ color: var(--pine); }
.band-dark .product-card p{ color: var(--text-dim); }

/* founder portrait */
.portrait-card{ max-width: 380px; justify-self: center; width:100%; }
.portrait-card img{ aspect-ratio: 4/5; object-fit: cover; object-position: center top; }


/* ---------- Floating WhatsApp button ---------- */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:60;
  display:flex; align-items:center; gap:.55rem;
  background:#25D366; color:#fff; text-decoration:none;
  font-weight:600; font-size:.95rem; line-height:1;
  padding:.8rem 1.05rem; border-radius:999px;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
  transition:transform .15s ease, box-shadow .15s ease;
}
.wa-float:hover{ transform:translateY(-2px); box-shadow:0 9px 22px rgba(0,0,0,.32); color:#fff; }
.wa-float svg{ width:24px; height:24px; fill:#fff; flex:none; }
@media (max-width:560px){ .wa-float span{ display:none; } .wa-float{ padding:.9rem; } }

/* ---------- Order links on cards ---------- */
.order-link{
  display:inline-block; margin-top:.7rem;
  font-size:.86rem; font-weight:600; text-decoration:none;
  color:var(--pine); border:1px solid var(--leaf);
  padding:.38rem .8rem; border-radius:999px;
}
.order-link:hover{ background:var(--pine); color:#fff; border-color:var(--pine); }

/* ---------- Map ---------- */
.map-wrap{ border-radius:4px; overflow:hidden; border:1px solid var(--rule); margin-top:1.4rem; }
.map-wrap iframe{ display:block; width:100%; height:380px; border:0; }

/* ---------- News ---------- */
.news-item{ padding:1.8rem 0; border-top:1px solid var(--rule); }
.news-item:first-child{ border-top:none; padding-top:0; }
.news-date{ font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--leaf-dark); font-weight:600; margin-bottom:.3rem; }
.news-item h2{ font-size:1.5rem; margin-bottom:.4em; }
.news-item img{ max-width:560px; width:100%; border-radius:4px; margin-top:.8rem; }

/* ============================================================
   Site-wide polish
   ============================================================ */
:root{ --soil:#2B2118; --soil-soft:#3A2E22; }
::selection{ background: var(--leaf); color:#fff; }
:focus-visible{ outline: 3px solid var(--leaf); outline-offset: 3px; border-radius: 2px; }
.btn{ transition: background .18s ease, color .18s ease, transform .18s ease; }
.btn:active{ transform: translateY(1px); }
.nav-links .nav-cta{
  background: var(--pine); color:#fff; border:1px solid var(--pine);
  padding:.5rem 1rem; border-radius:2px; font-weight:600; font-size:.92rem;
}
.nav-links .nav-cta:hover{ background: var(--leaf-dark); border-color: var(--leaf-dark); color:#fff; }
section{ scroll-margin-top: 80px; }

/* ============================================================
   Front page (index.html) — fp-*
   ============================================================ */
.fp-hero{
  position:relative; isolation:isolate; overflow:hidden;
  min-height: min(86vh, 780px);
  display:flex; flex-direction:column; justify-content:flex-end;
  background: var(--soil); color: var(--text-light);
}
.fp-hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position: 50% 80%; z-index:-2; }
.fp-hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(24,36,24,.90) 0%, rgba(24,36,24,.66) 42%, rgba(24,36,24,.08) 100%),
    linear-gradient(0deg, rgba(24,22,16,.78) 0%, rgba(24,22,16,0) 38%);
}
.fp-hero-body{ width:100%; padding-top: clamp(3rem, 8vh, 6rem); padding-bottom: clamp(1.8rem, 4vh, 2.8rem); }
.fp-hero h1{
  color:#fff; max-width: 15ch; margin-bottom:.4em;
  font-size: clamp(2.5rem, 5.4vw, 4.5rem); font-weight: 440; line-height: 1.02; letter-spacing:-0.02em;
}
.fp-hero .lede{ color: var(--text-light); max-width: 40ch; font-size: 1.18rem; opacity:.92; }
.fp-actions{ display:flex; gap:.9rem; flex-wrap:wrap; margin-top:1.8rem; }
.fp-hero .btn-outline{ color:#fff; border-color: rgba(255,255,255,.55); background: transparent; }
.fp-hero .btn-outline:hover{ background: rgba(255,255,255,.12); border-color:#fff; color:#fff; }
.fp-places{
  display:grid; grid-template-columns: repeat(3, auto); justify-content:start; gap: 0 3rem;
  border-top: 1px solid var(--rule-light); padding-top:1.1rem; margin-top: clamp(1.8rem, 4vh, 3rem);
}
.fp-places div{ font-size:.95rem; color: var(--text-light-dim); line-height:1.4; }
.fp-places strong{ display:block; font-family:"Fraunces",serif; font-weight:500; font-size:1.15rem; color:#fff; }
@media (prefers-reduced-motion: no-preference){
  .fp-hero-body > *{ animation: fpIn .8s cubic-bezier(.2,.7,.2,1) both; }
  .fp-hero-body > *:nth-child(2){ animation-delay:.08s; }
  .fp-hero-body > *:nth-child(3){ animation-delay:.16s; }
  .fp-hero-body > *:nth-child(4){ animation-delay:.28s; }
  @keyframes fpIn{ from{ opacity:0; transform: translateY(14px); } to{ opacity:1; transform:none; } }
}

.fp-section{ padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.fp-statement{
  font-family:"Fraunces",serif; font-weight:420; color: var(--pine);
  font-size: clamp(1.7rem, 3.4vw, 2.7rem); line-height:1.22; letter-spacing:-0.01em;
  max-width: 26ch; margin:0;
}
.fp-intro{ display:grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem,5vw,5rem); align-items:start; }
.fp-intro p{ font-size:1.05rem; }
.fp-intro .fp-statement{ font-size: clamp(1.7rem, 3.4vw, 2.7rem); }

/* field to shelf: a real sequence */
.fp-chain{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 2.6rem; position:relative; }
.fp-chain::before{ content:""; position:absolute; left:0; right:0; top:19px; border-top: 2px dashed var(--leaf); opacity:.55; }
.fp-step{ padding-right: 1.8rem; position:relative; }
.fp-step .n{
  width:40px; height:40px; border-radius:50%; background: var(--pine); color:#fff;
  display:grid; place-items:center; font-family:"Fraunces",serif; font-size:1.1rem; margin-bottom:1.2rem;
  position:relative; box-shadow: 0 0 0 6px var(--cream);
}
.section-alt .fp-step .n{ box-shadow: 0 0 0 6px var(--parchment); }
.fp-step h3{ margin-bottom:.35em; }
.fp-step p{ font-size:.97rem; }

.fp-head{ display:flex; justify-content:space-between; align-items:end; gap:1.5rem; flex-wrap:wrap; margin-bottom: 2rem; }
.fp-head h2{ margin:0; max-width: 18ch; }
.fp-link{ color: var(--pine); font-weight:600; text-decoration:none; border-bottom:2px solid var(--leaf); padding-bottom:2px; }
.fp-link:hover{ color: var(--leaf-dark); }

.fp-crops{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.fp-crop{ background:#fff; border:1px solid var(--rule); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; }
.fp-crop img{ width:100%; aspect-ratio: 4/5; object-fit:cover; }
.fp-crop .cap{ padding: 1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.fp-crop h3{ margin:0; font-size:1.2rem; }
.fp-crop p{ margin:0; font-size:.9rem; }
.fp-crop .order-link{ margin-top:auto; align-self:flex-start; }
.fp-note{ margin-top:1.6rem; max-width: 70ch; }

.fp-video{ background: var(--soil); color: var(--text-light); }
.fp-video-grid{ display:grid; grid-template-columns: minmax(240px, 340px) 1fr; gap: clamp(2rem,6vw,6rem); align-items:center; }
.fp-video video{ width:100%; border-radius:3px; background:#000; aspect-ratio: 9/16; max-height: 76vh; object-fit:cover; }
.fp-video h2{ color:#fff; max-width: 14ch; }
.fp-video p{ color: var(--text-light-dim); font-size:1.08rem; }

.fp-projects{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
.fp-proj{ display:flex; flex-direction:column; text-decoration:none; color:inherit; background:#fff; border:1px solid var(--rule); border-radius:3px; overflow:hidden; transition: border-color .18s ease, transform .18s ease; }
.fp-proj:hover{ border-color: var(--leaf); transform: translateY(-2px); }
.fp-proj img{ width:100%; aspect-ratio: 16/9; object-fit:cover; }
.fp-proj .cap{ padding: 1.3rem 1.4rem 1.5rem; }
.fp-proj .st{ display:inline-block; font-size:.82rem; color: var(--leaf-dark); border:1px solid var(--leaf); border-radius:999px; padding:.15rem .7rem; margin-bottom:.7rem; }
.fp-proj h3{ margin-bottom:.35em; }
.fp-proj p{ margin:0; font-size:.95rem; }
.fp-proj.text{ background: var(--parchment); border-color: transparent; justify-content:center; }

.fp-news{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.fp-news a{ text-decoration:none; border-top: 2px solid var(--pine); padding-top: 1rem; display:block; }
.fp-news a:hover h3{ color: var(--leaf-dark); }
.fp-news .d{ font-size:.85rem; color: var(--text-dim); margin-bottom:.3rem; }
.fp-news h3{ font-size:1.25rem; margin-bottom:.3em; }
.fp-news p{ font-size:.95rem; margin:0; }

.fp-cta{ background: var(--pine); color:#fff; padding: clamp(3.2rem,7vw,5.5rem) 0; }
.fp-cta h2{ color:#fff; max-width: 18ch; }
.fp-cta p{ color: #D6E4D2; max-width: 52ch; font-size:1.08rem; }
.fp-cta .btn{ background:#fff; color: var(--pine); border-color:#fff; }
.fp-cta .btn:hover{ background: var(--cream); }
.fp-cta .btn-outline{ background:transparent; color:#fff; border-color: rgba(255,255,255,.6); }
.fp-cta .btn-outline:hover{ background: rgba(255,255,255,.12); border-color:#fff; }

@media (max-width: 980px){
  .fp-chain{ grid-template-columns: 1fr 1fr; row-gap: 2.4rem; }
  .fp-chain::before{ display:none; }
  .fp-crops{ grid-template-columns: repeat(2,1fr); }
  .fp-news{ grid-template-columns: 1fr; gap:1.4rem; }
}
@media (max-width: 760px){
  .fp-hero{ min-height: 82vh; }
  .fp-hero::before{ background: linear-gradient(0deg, rgba(24,36,24,.92) 0%, rgba(24,36,24,.7) 55%, rgba(24,36,24,.25) 100%); }
  .fp-places{ grid-template-columns: 1fr; gap: .9rem; }
  .fp-intro, .fp-video-grid, .fp-projects{ grid-template-columns: 1fr; }
  .fp-video video{ max-width: 320px; }
}
@media (max-width: 480px){
  .fp-chain{ grid-template-columns: 1fr; }
  .fp-crops{ gap:.8rem; }
  .fp-crop .cap{ padding:.8rem .8rem 1rem; }
}

.fp-proj.wide{ grid-column: 1 / -1; }

.news-gallery{ display:grid; grid-template-columns: repeat(3,1fr); gap:.8rem; margin-top:1rem; max-width:760px; }
.news-gallery figure{ margin:0; }
.news-gallery img{ margin:0; max-width:none; width:100%; aspect-ratio:3/4; object-fit:cover; }
.news-gallery figcaption{ font-size:.85rem; color:var(--text-dim); margin-top:.4rem; line-height:1.35; }
@media (max-width:560px){ .news-gallery{ grid-template-columns:1fr; } .news-gallery img{ aspect-ratio:4/3; } }

/* photo slideshow */
.fp-arrows{ display:flex; gap:.5rem; }
.fp-arrows button{ width:2.6rem; height:2.6rem; border-radius:50%; border:1.5px solid var(--pine); background:transparent; color:var(--pine); font-size:1.1rem; cursor:pointer; }
.fp-arrows button:hover{ background:var(--pine); color:#fff; }
.fp-slides{ display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:0 max(var(--gutter), calc((100% - 1180px)/2 + var(--gutter))) .5rem; scroll-padding-left:max(var(--gutter), calc((100% - 1180px)/2 + var(--gutter))); scrollbar-width:none; }
.fp-slides::-webkit-scrollbar{ display:none; }
.fp-slide{ margin:0; flex:0 0 clamp(240px, 27vw, 340px); aspect-ratio:3/4; position:relative; border-radius:4px; overflow:hidden; scroll-snap-align:start; background:var(--parchment); }
.fp-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.fp-slide figcaption{ position:absolute; left:0; right:0; bottom:0; padding:2.2rem 1rem .9rem; color:#fff; font-size:.95rem; background:linear-gradient(0deg, rgba(23,35,26,.85), rgba(23,35,26,0)); }
@media (max-width:640px){ .fp-slide{ flex-basis:78vw; } }

/* indigenous leafy vegetables feature */
.fp-leafy, .leafy-feature{ display:grid; grid-template-columns: minmax(0,5fr) minmax(0,6fr); gap: clamp(1.2rem,3vw,2.6rem); align-items:center; }
.fp-leafy{ margin-top:1.6rem; background:#fff; border:1px solid var(--rule); border-radius:3px; overflow:hidden; }
.fp-leafy img{ width:100%; height:100%; max-height:420px; object-fit:cover; display:block; }
.fp-leafy > div{ padding: 1.4rem 1.6rem 1.6rem 0; }
.fp-leafy h3{ margin:0 0 .6rem; font-size:1.5rem; }
.fp-leafy .fp-note{ margin-top:1rem; }
.leafy-feature{ margin: 1.4rem 0 2rem; }
.leafy-feature img{ width:100%; max-height:460px; object-fit:cover; border-radius:4px; display:block; }
@media (max-width:760px){ .fp-leafy, .leafy-feature{ grid-template-columns:1fr; } .fp-leafy > div{ padding:0 1.2rem 1.4rem; } }

/* farm weather */
.wx-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.wx-tabs{ display:flex; gap:.4rem; }
.wx-tab{ padding:.55rem 1.1rem; border:1.5px solid var(--pine); background:transparent; color:var(--pine); border-radius:999px; font:600 .95rem 'Public Sans',sans-serif; cursor:pointer; }
.wx-tab[aria-pressed="true"]{ background:var(--pine); color:#fff; }
.wx-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:.7rem; margin-top:1rem; }
.wx-day{ background:#fff; border:1px solid var(--rule); border-radius:4px; padding:.9rem .7rem; text-align:center; display:flex; flex-direction:column; gap:.35rem; }
.wx-d{ font-weight:600; font-size:.9rem; }
.wx-i{ font-size:.85rem; color:var(--leaf-dark); font-weight:600; }
.wx-t{ font-family:'Fraunces',serif; font-size:1.4rem; color:var(--pine); }
.wx-t span{ font-size:1rem; color:#7a7a6a; }
.wx-r{ font-size:.8rem; color:#5d5d50; }
.wx-idx{ margin-top:.2rem; padding:.35rem .2rem; border-radius:3px; font-size:.8rem; font-weight:600; display:flex; flex-direction:column; line-height:1.1; }
.wx-idx small{ font-weight:500; opacity:.8; }
.wx-good{ background:#dff0d4; color:#1F5E22; } .wx-fair{ background:#f6e9b8; color:#6b5300; } .wx-poor{ background:#f3d3cb; color:#8a2f1b; }
.wx-advs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; margin-top:1.4rem; }
.wx-adv{ background:#fff; border:1px solid var(--rule); border-left:5px solid var(--leaf); border-radius:3px; padding:1rem 1.2rem; }
.wx-adv h3{ margin:0 0 .4rem; font-size:1.1rem; } .wx-adv p{ margin:0; font-size:.95rem; }
.wx-lv-warn{ border-left-color:#b8452c; } .wx-lv-watch{ border-left-color:#d19a1f; } .wx-lv-info{ border-left-color:#5b7f95; } .wx-lv-good{ border-left-color:var(--leaf); }
.wx-check{ display:flex !important; gap:.6rem; align-items:flex-start; font-size:.95rem; }
.wx-check input{ width:auto !important; margin-top:.25rem; }
.wx-fs{ border:0; padding:0; margin:0; display:grid; gap:.5rem; } .wx-fs legend{ font-size:.9rem; margin-bottom:.4rem; color:var(--text-dim); }
.wx-hp{ position:absolute; left:-9999px; }
.wx-msg{ margin:0; font-size:.95rem; } .wx-msg.ok{ color:var(--pine); font-weight:600; } .wx-msg.err{ color:#8a2f1b; font-weight:600; }
.wx-soon{ background:#fff; border:1px solid var(--rule); border-radius:4px; padding:1.4rem 1.6rem; max-width:560px; margin-top:1.4rem; }
.wx-soon h3{ margin-top:0; }
@media (max-width:900px){ .wx-days{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:520px){ .wx-days{ grid-template-columns:repeat(2,1fr); } }
[hidden]{ display:none !important; }
