/* ==========================================================
   Palvi Farm Fresh — global stylesheet
   Tokens → base → layout → components → pages → responsive
   ========================================================== */

/* Fonts are hosted on this site (no request to Google). Instrument Sans = headings, Nunito Sans = text. SIL Open Font License. */
@font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 500 700; font-stretch: 100%; font-display: swap; src: url(../assets/fonts/instrument-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 500 700; font-stretch: 100%; font-display: swap; src: url(../assets/fonts/instrument-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito Sans'; font-style: normal; font-weight: 400 700; font-stretch: 100%; font-display: swap; src: url(../assets/fonts/nunito-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito Sans'; font-style: normal; font-weight: 400 700; font-stretch: 100%; font-display: swap; src: url(../assets/fonts/nunito-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --forest: #285A35;
  --deep: #173B22;
  --fresh: #90C52D;
  --lime: #DCE25A;
  --ivory: #FAF7F0;
  --sage: #EAF0DE;
  --char: #181818;
  --olive: #6B6A45;
  --body: #4E4E4E;
  --line: #DCE3CC;
  --line-strong: #C3CEB0;
  --error: #B9382E;
  --error-on-dark: #FFB4AA;
  --radius: 26px;
  --radius-sm: 14px;
  --pad: 80px;
  --font-display: 'Instrument Sans', Arial, Helvetica, sans-serif;
  --font-body: 'Nunito Sans', Arial, Helvetica, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--body);
  font: 400 17px/1.65 var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--char); margin: 0; letter-spacing: -.02em; }
p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { list-style: none; padding: 0; }
img, svg { max-width: 100%; }
img { display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
:focus-visible { outline: 3px solid var(--fresh); outline-offset: 3px; }
.skip-link { position: absolute; left: -9999px; top: 12px; z-index: 300; background: var(--lime); color: var(--char); padding: 12px 20px; border-radius: 999px; font-weight: 700; }
.skip-link:focus { left: 16px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ic { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: 1440px; margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }
.section { padding: 110px 0; position: relative; }
.section--sage { background: var(--sage); }
.section--white { background: #fff; }
.section--dark { background: var(--deep); color: #D5E3D3; }
.section--forest { background: var(--forest); color: #E1ECDD; }
.section--tight { padding: 80px 0; }
.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 96px; align-items: center; }
.split--wide-left { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.split--top { align-items: start; }
.split--form { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 72px; }
.split--main { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); }
.split--side { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); }
.split--index { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 64px; }
.factbar--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stack > * + * { margin-top: 20px; }
.mt-s { margin-top: 12px; } .mt-m { margin-top: 24px; } .mt-l { margin-top: 40px; } .mt-xl { margin-top: 56px; }
.center { text-align: center; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 18px; }

/* ---------- Typography ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 700 13px/1.2 var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--forest); }
.eyebrow::before { content: ""; width: 11px; height: 11px; border-radius: 0 75% 0 75%; background: var(--fresh); flex-shrink: 0; }
.eyebrow.on { color: var(--lime); }
.h2 { font: 600 clamp(2rem, 3.6vw, 3.4rem)/1.08 var(--font-display); letter-spacing: -.02em; }
.h2.w, .w { color: #fff; }
.h3 { font: 600 clamp(1.4rem, 2vw, 1.75rem)/1.2 var(--font-display); }
.lead { font-size: 1.125rem; line-height: 1.65; }
.lead.w { color: #D5E3D3; }
.muted { color: var(--olive); }
.small { font-size: .9rem; line-height: 1.55; }
.sec-head { max-width: 760px; }
.sec-head .h2, .sec-head .lead { margin-top: 18px; }
.sec-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.sec-head--center .eyebrow { justify-content: center; }
.sec-head--row { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 64px; }
.sec-head--row > div { max-width: 700px; }
.sec-head--row .lead { max-width: 600px; margin-top: 0; }

/* ---------- Buttons & links ---------- */
.btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 100%; text-align: left; min-height: 52px; padding: 0 8px 0 26px; border-radius: 999px; background: var(--lime); color: var(--char); font: 700 16px/1.2 var(--font-display); border: 0; cursor: pointer; transition: background-color .2s ease, transform .2s ease, color .2s ease; }
.btn__ar { width: 36px; height: 36px; border-radius: 50%; background: var(--char); color: var(--lime); display: inline-flex; align-items: center; justify-content: center; transition: transform .2s ease; flex-shrink: 0; }
.btn:hover { background: var(--fresh); }
.btn:hover .btn__ar { transform: translateX(4px); }
.btn:active { transform: scale(.98); }
.btn--dark { background: var(--char); color: #fff; }
.btn--dark .btn__ar { background: var(--lime); color: var(--char); }
.btn--dark:hover { background: var(--forest); }
.btn--outline { padding: 0 26px; background: transparent; color: #fff; border: 1px solid currentColor; }
.btn--outline:hover { background: var(--lime); border-color: var(--lime); color: var(--char); }
.btn--outline-dark { padding: 0 26px; background: transparent; color: var(--char); border: 1px solid var(--char); }
.btn--outline-dark:hover { background: var(--lime); border-color: var(--lime); }
.btn[disabled], .btn.is-loading { opacity: .7; cursor: progress; pointer-events: none; }
.tlink { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 700 16px/1.2 var(--font-display); background-image: linear-gradient(currentColor, currentColor); background-size: 0 2px; background-repeat: no-repeat; background-position: 0 88%; transition: background-size .25s ease; }
.tlink:hover { background-size: 100% 2px; }
.tlink .ic { transition: transform .2s ease; }
.tlink:hover .ic { transform: translateX(4px); }

/* ---------- Header ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; color: #fff; transition: background-color .3s ease, box-shadow .3s ease, color .3s ease; }
.topbar { border-bottom: 1px solid rgba(255,255,255,.16); font-size: 13px; color: #D5E3D3; overflow: hidden; height: 44px; transition: height .3s ease, opacity .3s ease; }
.topbar .container { height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar span { display: inline-flex; align-items: center; gap: 8px; }
.header-main { height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; transition: height .3s ease; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; }
.brand__name { font: 700 24px/1 var(--font-display); letter-spacing: -.01em; white-space: nowrap; }
.nav__link, .header-actions .btn { white-space: nowrap; }
.header-main.container { padding-left: 48px; padding-right: 48px; }
.topbar .container { padding-left: 48px; padding-right: 48px; }
.nav { display: flex; align-items: center; }
.nav__list { display: flex; align-items: center; gap: 18px; }
.nav__item { position: relative; display: flex; align-items: center; }
.nav__link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 15px/1 var(--font-display); color: inherit; transition: color .2s ease; }
.nav__link::before { content: ""; width: 7px; height: 7px; border-radius: 0 75% 0 75%; background: var(--fresh); opacity: 0; transform: scale(.4); transition: opacity .2s ease, transform .2s ease; }
.nav__link:hover { color: var(--lime); }
.nav__link[aria-current] { color: var(--lime); }
.nav__link[aria-current]::before { opacity: 1; transform: none; }
.sub-toggle { width: 28px; height: 44px; margin-left: -6px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.sub-toggle .ic { transition: transform .2s ease; }
.has-sub.open .sub-toggle .ic { transform: rotate(180deg); }
.sub { position: absolute; left: -18px; top: 100%; padding-top: 12px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; z-index: 5; }
.sub__panel { width: 340px; padding: 10px; background: #fff; color: var(--char); border-radius: 22px; box-shadow: 0 24px 60px rgba(16,40,24,.22); border: 1px solid var(--line); }
.has-sub:hover > .sub, .has-sub:focus-within > .sub, .has-sub.open > .sub { opacity: 1; visibility: visible; transform: none; }
.sub__link { display: block; padding: 12px 16px; border-radius: 14px; transition: background-color .2s ease; }
.sub__link:hover, .sub__link:focus-visible { background: var(--sage); }
.sub__link strong { display: block; font: 700 16px/1.3 var(--font-display); color: var(--char); }
.sub__link span { display: block; margin-top: 2px; font-size: 14px; line-height: 1.4; color: var(--olive); }
.sub__link[aria-current] strong { color: var(--forest); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.nav-toggle { display: none; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.45); background: transparent; color: inherit; cursor: pointer; align-items: center; justify-content: center; position: relative; z-index: 130; }
.nav__cta { display: none; }
.nav-overlay { position: fixed; inset: 0; background: rgba(10,24,14,.6); opacity: 0; visibility: hidden; transition: opacity .3s ease; z-index: 95; }
.site-header.is-scrolled { background: var(--ivory); color: var(--char); box-shadow: 0 6px 24px rgba(23,59,34,.10); }
.site-header.is-scrolled .topbar { height: 0; opacity: 0; border-bottom: 0; }
.site-header.is-scrolled .header-main { height: 76px; }
.site-header.is-scrolled .nav__link:hover, .site-header.is-scrolled .nav__link[aria-current] { color: var(--forest); }
.site-header.is-scrolled .nav-toggle { border-color: var(--line-strong); }

/* ---------- Hero (home) ---------- */
.hero { position: relative; color: #fff; background: var(--deep); overflow: hidden; display: flex; flex-direction: column; min-height: min(100svh, 940px); }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,59,34,.96) 0%, rgba(23,59,34,.82) 46%, rgba(16,40,24,.45) 100%); }
.hero__shade::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 320px; background: linear-gradient(0deg, rgba(12,30,18,.9), rgba(12,30,18,0)); }
.hero__body { position: relative; flex: 1; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 64px; align-items: center; padding-top: 200px; padding-bottom: 64px; }
.hero__title { font: 600 clamp(2.9rem, 6.4vw, 5.75rem)/.98 var(--font-display); letter-spacing: -.03em; color: #fff; margin-top: 24px; }
.hero__tag { margin-top: 24px; font: 500 1.6rem/1.3 var(--font-display); color: var(--lime); }
.hero__lead { margin-top: 22px; font-size: 1.2rem; line-height: 1.6; color: #E1ECDD; max-width: 660px; }
.hero__copy .actions { margin-top: 34px; }
.hero__copy .tlink { color: #fff; }
.hero__art-wrap { position: relative; justify-self: end; width: min(420px, 100%); }
.hero__art { position: relative; aspect-ratio: 420 / 540; border: 6px solid var(--ivory); border-radius: 210px 210px 28px 28px; overflow: hidden; background: #2d4a24; isolation: isolate; }
/* soft out-of-focus orchard + light bokeh behind the cut-out farmer */
.hero__art::before { content: ""; position: absolute; inset: -30px; z-index: -2; background: url(../assets/img/hero-bg-pomegranate-800.webp) 30% 40% / cover; filter: blur(16px) saturate(1.15) brightness(.95); }
.hero__art::after { content: ""; position: absolute; inset: 0; z-index: -1; background:
  radial-gradient(circle at 18% 22%, rgba(255,236,150,.55) 0 26px, transparent 27px),
  radial-gradient(circle at 78% 16%, rgba(255,246,190,.5) 0 38px, transparent 39px),
  radial-gradient(circle at 88% 44%, rgba(255,226,130,.4) 0 20px, transparent 21px),
  radial-gradient(circle at 10% 52%, rgba(255,246,190,.4) 0 32px, transparent 33px),
  radial-gradient(circle at 60% 8%, rgba(255,236,150,.4) 0 18px, transparent 19px),
  radial-gradient(circle at 30% 8%, rgba(255,255,220,.35) 0 14px, transparent 15px),
  radial-gradient(ellipse at 50% 30%, rgba(255,240,170,.28), transparent 60%); filter: blur(3px); }
.hero__art img { width: 100%; height: 100%; object-fit: cover; }
.fl { position: absolute; display: inline-flex; align-items: center; gap: 10px; padding: 10px 20px 10px 10px; border-radius: 999px; background: #fff; color: var(--char); font: 700 15px/1.2 var(--font-display); box-shadow: 0 14px 30px rgba(0,0,0,.22); white-space: nowrap; }
.fl i { width: 30px; height: 30px; border-radius: 50%; background: var(--lime); display: inline-flex; align-items: center; justify-content: center; }
.fl--1 { left: -110px; top: 70px; }
.fl--2 { right: -60px; top: 322px; }
.fl--3 { left: -110px; top: 292px; }
.hero__band { position: relative; border-top: 1px solid rgba(255,255,255,.2); }
.hero__band .container { min-height: 112px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; }
.hero__pillars { display: flex; gap: 40px; flex-wrap: wrap; align-items: center; }
.hero__pillars a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font: 700 20px/1 var(--font-display); }
.hero__pillars .ic { color: var(--lime); }
.hero__pillars a:hover { color: var(--lime); }
.scroll-cue { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font: 600 14px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: #E1ECDD; }
.scroll-cue span { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.45); display: inline-flex; align-items: center; justify-content: center; }

/* ---------- Page hero (inner pages) ---------- */
.pagehero { position: relative; background: var(--deep); color: #fff; overflow: hidden; padding: 210px 0 96px; }
.pagehero .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.96) 0%, rgba(23,59,34,.86) 55%, rgba(23,59,34,.6) 100%); }
.pagehero .hero__shade::after { display: none; }
.pagehero__in { position: relative; }
.pagehero__in > h1 { max-width: 940px; }
.pagehero h1 { font: 600 clamp(2.4rem, 5.2vw, 4.6rem)/1.02 var(--font-display); letter-spacing: -.03em; color: #fff; margin-top: 22px; }
.pagehero__sub { margin-top: 22px; font-size: 1.25rem; line-height: 1.55; color: #E1ECDD; max-width: 720px; }
.pagehero .actions { margin-top: 32px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: #D5E3D3; }
.breadcrumb li + li::before { content: "/"; margin-right: 8px; opacity: .6; }
.breadcrumb a:hover { color: var(--lime); text-decoration: underline; }
.breadcrumb [aria-current] { color: #fff; font-weight: 700; }

/* ---------- Ribbon / marquee ---------- */
.ribbon { background: var(--forest); color: #fff; overflow: hidden; height: 132px; display: flex; align-items: center; }
.ribbon__track { display: flex; width: max-content; animation: marquee 45s linear infinite; }
.ribbon:hover .ribbon__track { animation-play-state: paused; }
.ribbon__set { display: flex; align-items: center; gap: 40px; padding-right: 40px; font: 600 clamp(1.4rem, 2.4vw, 2.1rem)/1 var(--font-display); white-space: nowrap; }
.ribbon__set .ic { color: var(--lime); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Cards & content blocks ---------- */
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
a.card:hover, .card--lift:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(23,59,34,.12); border-color: var(--fresh); }
.card--dark { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.2); color: #D5E3D3; }
.card--forest { background: var(--forest); border-color: var(--forest); color: #E1ECDD; }
.card--lime { background: var(--lime); border-color: var(--lime); color: #2A2A20; }
.card h3 { margin-top: 20px; }
.card > h3:first-child, .card > .card__num + h3 { margin-top: 0; }
.card--forest .chain__ar, .card--dark .chain__ar { color: var(--lime); }
.card--forest h3 { color: #fff; }
.card--forest p + p { margin-top: 12px; }
.card p { margin-top: 10px; }
.card__num { font: 600 15px/1 var(--font-display); color: var(--forest); }
.card--forest .card__num, .card--dark .card__num { color: var(--lime); }
.card--forest h3, .card--dark h3 { color: #fff; }
.icb { width: 56px; height: 56px; border-radius: 50%; background: var(--sage); color: var(--forest); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.card--forest .icb, .card--dark .icb { background: rgba(255,255,255,.12); color: var(--lime); }
.feature { display: flex; gap: 18px; align-items: flex-start; }
.feature h3 { font: 600 1.35rem/1.25 var(--font-display); }
.feature p { margin-top: 6px; font-size: 1rem; line-height: 1.55; }
.checklist { display: flex; flex-direction: column; gap: 11px; }
.checklist--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; }
.checklist--3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 32px; }
.checklist li { display: flex; gap: 10px; align-items: flex-start; font-size: 1rem; line-height: 1.45; }
.checklist li .ic { margin-top: 2px; color: var(--forest); }
.on-dark .checklist li .ic, .card--forest .checklist li .ic, .card--dark .checklist li .ic { color: var(--lime); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px; border-radius: 999px; background: #fff; border: 1px solid var(--line-strong); font: 600 15px/1.3 var(--font-body); color: var(--char); }
.chip .ic { color: var(--forest); }
.chip--sage { background: var(--sage); border-color: #D3DCC2; }
.chip--forest { background: var(--forest); border-color: var(--forest); color: #fff; }
.chips--dark .chip { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.25); color: #fff; }
.chain { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 6px; }
.chain__ar { color: var(--forest); display: inline-flex; }
.on-dark .chain__ar { color: var(--lime); }
.numlist { counter-reset: n; border-top: 1px solid var(--line-strong); }
.numlist li { counter-increment: n; display: flex; align-items: center; gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--line-strong); font: 600 1.2rem/1.35 var(--font-display); color: var(--char); }
.numlist li::before { content: counter(n, decimal-leading-zero); font: 600 15px/1 var(--font-display); color: var(--forest); width: 34px; flex-shrink: 0; }
.numlist--cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
.numlist--cols li { font-size: 1.05rem; font-weight: 500; }
.on-dark .numlist, .on-dark .numlist li { border-color: rgba(255,255,255,.25); color: #fff; }
.on-dark .numlist li::before { color: var(--lime); }
.facts { display: grid; grid-template-columns: auto 1fr; gap: 10px 20px; font-size: 1rem; }
.facts dt { font-weight: 700; color: var(--char); }
.facts dd { margin: 0; }
.factbar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.factbar > div { padding: 26px 28px; border-right: 1px solid var(--line); }
.factbar > div:last-child { border-right: 0; }
.factbar dt { font: 700 13px/1.2 var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: var(--olive); }
.factbar dd { margin: 8px 0 0; font: 600 1.3rem/1.3 var(--font-display); color: var(--char); }
.callout { padding: 26px 30px; border-radius: 22px; background: var(--lime); color: var(--char); font-size: 1.02rem; line-height: 1.6; }
.callout--outline { background: #fff; border: 1px solid var(--line-strong); }
.callout strong { font-family: var(--font-display); }
.badge { display: inline-block; padding: 8px 14px; border-radius: 999px; background: var(--lime); color: var(--char); font: 700 12px/1 var(--font-display); letter-spacing: .1em; text-transform: uppercase; }
.badge--forest { background: var(--forest); color: #fff; }

/* images */
.frame { border-radius: 28px; overflow: hidden; }
.frame img, .arch img { width: 100%; height: 100%; object-fit: cover; }
.arch { border-radius: 999px 999px 28px 28px; overflow: hidden; }
.collage { position: relative; width: 100%; max-width: 600px; aspect-ratio: 600 / 680; }
.collage__a { position: absolute; left: 0; top: 0; width: 76%; height: 88%; }
.collage__b { position: absolute; right: 0; bottom: 0; width: 48%; height: 48%; border: 8px solid var(--ivory); border-radius: 28px; overflow: hidden; }
.collage__b img { width: 100%; height: 100%; object-fit: cover; }
.collage__badge { position: absolute; left: 4%; bottom: 3%; width: 42%; padding: 20px 22px; border-radius: 24px; background: var(--lime); color: var(--char); box-shadow: 0 16px 34px rgba(23,59,34,.18); }
.collage__badge strong { display: block; font: 700 2.6rem/1 var(--font-display); }
.collage__badge span { display: block; margin-top: 6px; font-size: .92rem; line-height: 1.4; font-weight: 600; }
.leafart { position: absolute; right: 2%; top: -4%; width: 26%; color: var(--fresh); opacity: .9; }
.cropcard { padding: 14px 14px 24px; }
.cropcard .arch { aspect-ratio: 4 / 4.6; }
.cropcard h3 { margin-top: 20px; padding: 0 10px; font-size: 1.5rem; }
.cropcard p { margin-top: 4px; padding: 0 10px; font-size: .95rem; color: var(--olive); }
.pathcard { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.pathcard__img { aspect-ratio: 16 / 9; }
.pathcard__img img { width: 100%; height: 100%; object-fit: cover; }
.pathcard__body { padding: 30px 32px 34px; display: flex; flex-direction: column; flex: 1; }
.pathcard__body h3 { margin: 0; font-size: 1.6rem; line-height: 1.2; }
.pathcard__body p { margin-top: 10px; }
.pathcard__body .tlink { margin-top: auto; padding-top: 22px; align-self: flex-start; color: var(--char); }

/* steps */
.steps { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 16px; position: relative; counter-reset: s; }
.steps::before { content: ""; position: absolute; left: calc(50% / var(--n, 5)); right: calc(50% / var(--n, 5)); top: 28px; height: 2px; background: #9DB585; }
.steps li { position: relative; text-align: center; counter-increment: s; }
.steps li::before { content: counter(s); display: inline-flex; width: 58px; height: 58px; border-radius: 50%; background: var(--lime); color: var(--char); align-items: center; justify-content: center; font: 700 20px/1 var(--font-display); position: relative; }
.steps li:last-child::before { background: var(--forest); color: #fff; }
.steps li span { display: block; margin-top: 14px; font: 600 1.1rem/1.3 var(--font-display); color: var(--char); }
.on-dark .steps li span { color: #fff; }
.on-dark .steps::before { background: rgba(255,255,255,.3); }
.vsteps { display: flex; flex-direction: column; gap: 16px; counter-reset: v; }
.vsteps li { display: flex; gap: 16px; align-items: flex-start; counter-increment: v; }
.vsteps li::before { content: counter(v); width: 38px; height: 38px; border-radius: 50%; background: var(--forest); color: #fff; display: inline-flex; align-items: center; justify-content: center; font: 700 16px/1 var(--font-display); flex-shrink: 0; }
.vsteps li span { padding-top: 6px; font-size: 1.05rem; line-height: 1.5; }

/* stats */
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.25); }
.stats li { padding: 34px 32px 0; border-right: 1px solid rgba(255,255,255,.18); }
.stats li:first-child { padding-left: 0; }
.stats li:last-child { border-right: 0; }
.stats strong { display: block; font: 600 clamp(3rem, 5.6vw, 5rem)/1 var(--font-display); color: var(--lime); }
.stats span { display: block; margin-top: 14px; font-size: 1.05rem; line-height: 1.5; color: #D5E3D3; }

/* network diagram */
.network { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; align-items: start; }
.network li { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; position: relative; font: 700 1.1rem/1.2 var(--font-display); color: #fff; }
.network li:not(:last-child)::after { content: "↔"; position: absolute; right: -14%; top: 22px; width: 28%; text-align: center; color: var(--lime); font-size: 1.6rem; line-height: 1; }
.network .icb { width: 92px; height: 92px; background: var(--forest); border: 1.5px solid var(--lime); color: var(--lime); }

/* ---------- Forms ---------- */
.form { padding: 40px; border-radius: 28px; }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.field { display: flex; flex-direction: column; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { margin-bottom: 8px; font: 700 14px/1.3 var(--font-display); color: var(--char); }
.req { color: var(--error); margin-left: 3px; }
.inp { width: 100%; min-height: 52px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: #fff; font: 500 16px/1.4 var(--font-body); color: var(--char); transition: border-color .2s ease, box-shadow .2s ease; appearance: none; -webkit-appearance: none; }
select.inp { padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23285A35' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
textarea.inp { padding: 14px 18px; min-height: 130px; resize: vertical; }
.inp:hover { border-color: var(--forest); }
.inp:focus-visible { outline: 3px solid var(--fresh); outline-offset: 2px; border-color: var(--forest); }
.field.invalid .inp { border-color: var(--error); border-width: 2px; }
.field__hint { margin-top: 6px; font-size: .88rem; color: var(--olive); }
.field__err { margin-top: 6px; font-size: .9rem; font-weight: 700; color: var(--error); display: flex; gap: 6px; align-items: center; }
.field__err[hidden] { display: none; }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: .95rem; line-height: 1.5; }
.check input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--forest); flex-shrink: 0; }
.fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.form__group { margin: 34px 0 18px; font: 600 1.25rem/1.2 var(--font-display); color: var(--char); padding-bottom: 12px; border-bottom: 1px solid var(--line); grid-column: 1 / -1; }
.form__group:first-child { margin-top: 0; }
.form__actions { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.form__status { margin-top: 16px; font-weight: 700; min-height: 1.4em; }
.form__status.is-error { color: var(--error); }
.form__note { margin-top: 14px; font-size: .9rem; line-height: 1.5; }
.form-success { padding: 40px; border-radius: 28px; text-align: center; }
.form-success .icb { width: 72px; height: 72px; background: var(--lime); color: var(--char); }
.form-success h3 { margin-top: 20px; }
.form-success[hidden], .form[hidden] { display: none; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* table */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.tbl { width: 100%; border-collapse: collapse; min-width: 720px; }
.tbl th, .tbl td { padding: 18px 22px; text-align: left; border-bottom: 1px solid var(--line); font-size: 1rem; vertical-align: top; }
.tbl thead th { background: var(--sage); font: 700 14px/1.3 var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--char); }
.tbl tbody th { font: 700 1.05rem/1.3 var(--font-display); color: var(--char); }
.tbl tr:last-child th, .tbl tr:last-child td { border-bottom: 0; }

/* sticky index (ecosystem) */
.sticky-index { position: sticky; top: 110px; }
.sticky-index ol { margin-top: 24px; border-left: 2px solid var(--line-strong); }
.sticky-index a { display: block; padding: 10px 0 10px 20px; margin-left: -2px; border-left: 2px solid transparent; font: 600 1.05rem/1.3 var(--font-display); color: var(--body); transition: color .2s ease, border-color .2s ease; }
.sticky-index a:hover { color: var(--forest); border-left-color: var(--fresh); }
.pillar { scroll-margin-top: 120px; }
.pillar + .pillar { margin-top: 24px; }
.pillar__head { display: flex; align-items: center; gap: 18px; }
.pillar__head h2 { font: 600 2rem/1.1 var(--font-display); }

/* CTA band */
.cta-band { position: relative; overflow: hidden; background: var(--deep); color: #fff; padding: 110px 0; }
.cta-band .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95), rgba(23,59,34,.72)); }
.cta-band .hero__shade::after { display: none; }
.cta-band__in { position: relative; }
.cta-band h2 { font: 600 clamp(2.2rem, 5vw, 4.4rem)/1.03 var(--font-display); letter-spacing: -.03em; color: #fff; max-width: 940px; margin-top: 20px; }
.cta-band p.lead { margin-top: 20px; font-size: 1.3rem; color: #E1ECDD; }
.cta-band .actions { margin-top: 34px; }
.cta-band .tlink { color: #fff; }

/* quote */
.quote { font: 500 clamp(1.5rem, 2.4vw, 2.1rem)/1.35 var(--font-display); letter-spacing: -.01em; color: var(--char); }
.quote::before { content: "\201C"; display: block; font-size: 5rem; line-height: .6; color: var(--fresh); margin-bottom: 14px; }
.person { display: flex; align-items: center; gap: 14px; margin-top: 24px; }
.person::before { content: ""; width: 44px; height: 2px; background: var(--fresh); }
.person strong { display: block; font: 700 1.2rem/1.2 var(--font-display); color: var(--char); }
.person span { font-size: .95rem; font-weight: 600; color: var(--olive); }
.placeholder { display: inline-block; padding: 4px 12px; border-radius: 999px; border: 1px dashed var(--olive); color: var(--olive); font-size: .9rem; font-weight: 700; }

/* prose (legal) */
.prose { max-width: 820px; }
.prose h2 { font: 600 1.7rem/1.2 var(--font-display); margin-top: 44px; }
.prose h2:first-child { margin-top: 0; }
.prose p, .prose ul { margin-top: 14px; }
.prose ul { list-style: disc; padding-left: 24px; }
.prose li + li { margin-top: 6px; }
.prose a { color: var(--forest); text-decoration: underline; }

/* ---------- Footer ---------- */
.site-footer { background: var(--deep); color: #D5E3D3; padding: 88px 0 0; position: relative; }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 56px; }
.footer__tag { margin-top: 22px; font: 500 1.4rem/1.3 var(--font-display); color: var(--lime); max-width: 340px; }
.site-footer h3 { font-size: 1.1rem; font-weight: 700; color: #fff; letter-spacing: 0; }
.site-footer ul { margin-top: 14px; }
.footer__links a { display: inline-block; padding: 7px 0; transition: transform .2s ease, color .2s ease; }
.footer__links a:hover { transform: translateX(4px); color: var(--lime); }
.footer__bottom { margin-top: 64px; padding: 26px 0 34px; border-top: 1px solid rgba(255,255,255,.2); display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; font-size: .92rem; }
.to-top { position: fixed; right: 24px; bottom: 24px; z-index: 90; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--lime); color: var(--char); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 10px 24px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
.to-top.show { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--fresh); }

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

/* ---------- Responsive ---------- */
@media (max-width: 1280px) {
  :root { --pad: 48px; }
  .nav__list { gap: 16px; }
  .fl--1 { left: -70px; }
  .fl--2 { right: -40px; }
  .fl--3 { left: -70px; }
}
@media (max-width: 1400px) {
  .nav-toggle { display: inline-flex; }
  .header-actions > .btn { display: none; }
  .nav { position: fixed; top: 0; right: 0; height: 100vh; height: 100dvh; width: min(92vw, 400px); background: var(--deep); color: #fff; transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility .3s; padding: 100px 28px 32px; overflow-y: auto; z-index: 120; flex-direction: column; align-items: stretch; }
  body.nav-open .nav { transform: none; visibility: visible; }
  body.nav-open .nav-overlay { opacity: 1; visibility: visible; }
  body.nav-open { overflow: hidden; }
  body.nav-open .nav-toggle { color: #fff; border-color: rgba(255,255,255,.5); position: fixed; top: 24px; right: 24px; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { flex-wrap: wrap; border-bottom: 1px solid rgba(255,255,255,.14); }
  .nav__link { flex: 1; min-height: 56px; font-size: 1.15rem; color: #fff; }
  .site-header.is-scrolled .nav__link { color: #fff; }
  .site-header.is-scrolled .nav__link:hover, .site-header.is-scrolled .nav__link[aria-current] { color: var(--lime); }
  .sub-toggle { width: 56px; height: 56px; margin: 0; color: #fff; }
  .sub { position: static; width: 100%; padding: 0 0 12px; opacity: 1; visibility: visible; transform: none; display: none; }
  .has-sub:hover > .sub, .has-sub:focus-within > .sub { display: none; opacity: 1; visibility: visible; }
  .has-sub.open > .sub { display: block; }
  .sub__panel { width: 100%; padding: 0 0 0 12px; background: transparent; box-shadow: none; border: 0; color: #fff; }
  .sub__link strong { color: #fff; font-size: 1rem; }
  .sub__link span { color: #B7CCBA; }
  .sub__link:hover, .sub__link:focus-visible { background: rgba(255,255,255,.08); }
  .nav__cta { display: block; margin-top: 28px; }
  .nav__cta .btn { width: 100%; justify-content: space-between; }
  .topbar span:first-child { display: none; }
  .topbar .container { justify-content: flex-end; }
}
@media (max-width: 1100px) {
  .split, .split--wide-left, .split--form, .split--main, .split--side, .split--index { grid-template-columns: minmax(0, 1fr); gap: 56px; }
  .factbar--3 { grid-template-columns: minmax(0, 1fr); }
  .factbar--3 > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__body { grid-template-columns: minmax(0, 1fr); padding-top: 190px; }
  .hero__art-wrap { display: none; }
  .sec-head--row { flex-direction: column; align-items: flex-start; gap: 20px; }
  .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .factbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .factbar > div:nth-child(2) { border-right: 0; }
  .factbar > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats li { padding: 28px 24px 24px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .stats li:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.18); padding-left: 0; }
  .checklist--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sticky-index { position: static; }
  .collage { margin: 0 auto; }
}
@media (max-width: 800px) {
  :root { --pad: 32px; }
  .section { padding: 88px 0; }
  .steps { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .steps::before { left: 28px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .steps li { text-align: left; display: flex; align-items: center; gap: 18px; }
  .steps li span { margin-top: 0; }
  .numlist--cols { grid-template-columns: minmax(0, 1fr); }
  .checklist--2 { grid-template-columns: minmax(0, 1fr); }
  .network { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 8px; }
  .network li::after { display: none; }
  .form { padding: 28px 22px; }
  .form__grid { grid-template-columns: minmax(0, 1fr); }
  .ribbon { height: 104px; }
}
@media (max-width: 640px) {
  :root { --pad: 20px; }
  body { font-size: 16px; }
  .section { padding: 64px 0; }
  .section--tight { padding: 56px 0; }
  .grid--2, .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); }
  .header-main { height: 72px; }
  .site-header.is-scrolled .header-main { height: 64px; }
  .topbar { display: none; }
  .brand__name { font-size: 20px; }
  .hero__body { padding-top: 130px; padding-bottom: 40px; }
  .pagehero { padding: 132px 0 64px; }
  .hero__band .container { flex-direction: column; align-items: flex-start; }
  .hero__pillars { gap: 8px 24px; }
  .hero__pillars a { font-size: 17px; }
  .scroll-cue { display: none; }
  .actions .btn, .actions .btn--outline { width: 100%; justify-content: space-between; }
  .actions .btn--outline, .actions .btn--outline-dark { justify-content: center; }
  .footer__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
  .factbar { grid-template-columns: minmax(0, 1fr); }
  .factbar > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .factbar > div:last-child { border-bottom: 0; }
  .stats { grid-template-columns: minmax(0, 1fr); }
  .stats li, .stats li:nth-child(odd) { border-right: 0; padding-left: 0; }
  .checklist--3 { grid-template-columns: minmax(0, 1fr); }
  .card { padding: 26px 22px; }
  .card--flush { padding: 0; }
  .collage__badge { padding: 14px 16px; }
  .collage__badge strong { font-size: 2rem; }
  .cta-band { padding: 72px 0; }
  .to-top { right: 16px; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* Home hero: let the sunrise photo show through while keeping text readable */
.hero .hero__shade { background: linear-gradient(90deg, rgba(16,40,24,.82) 0%, rgba(16,40,24,.55) 42%, rgba(16,40,24,.12) 100%); }
.hero .hero__shade::after { height: 220px; background: linear-gradient(0deg, rgba(12,30,18,.75), rgba(12,30,18,0)); }
.hero__title, .hero__lead, .hero__tag { text-shadow: 0 2px 18px rgba(8,22,12,.45); }
@media (max-width: 1100px) {
  .hero .hero__shade { background: linear-gradient(180deg, rgba(16,40,24,.66) 0%, rgba(16,40,24,.58) 50%, rgba(16,40,24,.76) 100%); }
}
.hero .hero__shade::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 150px; background: linear-gradient(rgba(12,30,18,.6), rgba(12,30,18,0)); }

/* Home photo bands */
.band-grassroots .hero__bg { object-position: center 55%; }
.band-grassroots .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.62), rgba(23,59,34,.84)); }
.band-grassroots .hero__shade::after { display: none; }
.cta-home .hero__bg { left: auto; right: 0; width: 64%; object-position: center 58%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 32%); mask-image: linear-gradient(90deg, transparent 0, #000 32%); }
.cta-home .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.9) 0%, rgba(23,59,34,.62) 45%, rgba(23,59,34,.12) 100%); }
.cta-home h2, .cta-home p.lead { text-shadow: 0 2px 18px rgba(8,22,12,.4); }

/* About page photos */
.pagehero--about .hero__bg { object-position: center 22%; }
.pagehero--about .hero__shade { background: linear-gradient(90deg, rgba(16,40,24,.88) 0%, rgba(16,40,24,.62) 48%, rgba(16,40,24,.15) 100%); }
.pagehero--about h1, .pagehero--about .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.45); }
.cta-about .hero__bg { object-position: center 25%; }
.cta-about .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.9) 0%, rgba(23,59,34,.62) 45%, rgba(23,59,34,.12) 100%); }
.cta-about h2, .cta-about p.lead { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--about .hero__shade, .cta-about .hero__shade { background: linear-gradient(180deg, rgba(16,40,24,.62), rgba(16,40,24,.74)); }
}
.hero .hero__bg { object-position: 0% 50%; }

/* ---------- Hiring ---------- */
.job-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.jobcard { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.jobcard__img { display: block; aspect-ratio: 4 / 5; background: var(--sage); overflow: hidden; }
.jobcard__img img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .4s ease; }
.jobcard:hover .jobcard__img img { transform: scale(1.03); }
.jobcard__ph { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 24px; text-align: center; color: var(--forest); font: 700 1.2rem/1.3 var(--font-display); }
.jobcard__body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.jobcard__body h3 a:hover { color: var(--forest); text-decoration: underline; }
.jobmeta { display: flex; flex-wrap: wrap; gap: 8px; }
.jobmeta li { padding: 5px 12px; border-radius: 999px; background: var(--sage); font: 600 13.5px/1.3 var(--font-body); color: var(--char); }
.job-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; align-items: start; }
.job-poster { position: sticky; top: 110px; }
.job-poster img { width: 100%; height: auto; border-radius: 22px; border: 1px solid var(--line); box-shadow: 0 18px 44px rgba(23,59,34,.14); }
.job-contact { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.job-contact li { display: flex; gap: 12px; align-items: center; }
.job-contact .ic { color: var(--forest); }
.inp--file { padding: 12px 14px; cursor: pointer; }
.inp--file::file-selector-button { margin-right: 14px; padding: 8px 16px; border: 0; border-radius: 999px; background: var(--forest); color: #fff; font: 700 14px var(--font-display); cursor: pointer; }
@media (max-width: 1100px) {
  .job-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .job-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .job-poster { position: static; max-width: 520px; }
}
@media (max-width: 640px) { .job-grid { grid-template-columns: minmax(0, 1fr); } }

@media (max-width: 1100px) { .cta-home .hero__bg { left: 0; width: 100%; -webkit-mask-image: none; mask-image: none; } }
.arch.portrait { background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 44px rgba(23,59,34,.12); }

/* Our Team banner: globe + growth arrow photo sits on the right, fading into the green on the left */
.pagehero--team .hero__bg { left: auto; right: 0; width: 66%; object-position: 85% center; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%); mask-image: linear-gradient(90deg, transparent 0, #000 30%); }
.pagehero--team .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.94) 0%, rgba(23,59,34,.7) 40%, rgba(23,59,34,.1) 100%); }
.pagehero--team h1, .pagehero--team .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--team .hero__bg { left: 0; width: 100%; object-position: center; -webkit-mask-image: none; mask-image: none; }
  .pagehero--team .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.66), rgba(23,59,34,.78)); }
}

/* Founder's Vision banner: mossy globe on wooden blocks sits on the right */
.pagehero--founder .hero__bg { left: auto; right: 0; width: 70%; object-position: 80% center; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28%); mask-image: linear-gradient(90deg, transparent 0, #000 28%); }
.pagehero--founder .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.7) 38%, rgba(23,59,34,.05) 100%); }
.pagehero--founder h1, .pagehero--founder .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--founder .hero__bg { left: 0; width: 100%; object-position: 75% center; -webkit-mask-image: none; mask-image: none; }
  .pagehero--founder .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.66), rgba(23,59,34,.8)); }
}

/* Ecosystem banner: truck + network lines on the right, text on the darkened left */
.pagehero--eco .hero__bg { object-position: 75% 22%; }
.pagehero--eco .hero__shade { background: linear-gradient(90deg, rgba(16,40,24,.9) 0%, rgba(16,40,24,.62) 45%, rgba(16,40,24,.08) 100%); }
.pagehero--eco h1, .pagehero--eco .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.45); }
@media (max-width: 1100px) { .pagehero--eco .hero__shade { background: linear-gradient(180deg, rgba(16,40,24,.62), rgba(16,40,24,.76)); } }

/* Export Academy banner: learner photo on the right, fading into green on the left */
.pagehero--academy .hero__bg { left: auto; right: 0; width: 58%; object-position: 55% 8%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 34%); mask-image: linear-gradient(90deg, transparent 0, #000 34%); }
.pagehero--academy .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 42%, rgba(23,59,34,.04) 100%); }
.pagehero--academy h1, .pagehero--academy .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--academy .hero__bg { left: 0; width: 100%; object-position: 60% 30%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--academy .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Free Learning banner: leaf-built truck on the right, fading into green on the left */
.pagehero--free .hero__bg { left: auto; right: -6%; width: 60%; object-position: 50% 60%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%); mask-image: linear-gradient(90deg, transparent 0, #000 26%); }
.pagehero--free .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.7) 38%, rgba(23,59,34,.02) 100%); }
.pagehero--free h1, .pagehero--free .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--free .hero__bg { left: 0; right: auto; width: 100%; object-position: 50% 55%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--free .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Contract Farming banner: farmer + banana bunches on the right, fading into green on the left */
.pagehero--farming .hero__bg { left: auto; right: -9%; width: 60%; object-position: 50% 35%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18%); mask-image: linear-gradient(90deg, transparent 0, #000 18%); }
.pagehero--farming .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.7) 40%, rgba(23,59,34,.03) 100%); }
.pagehero--farming h1, .pagehero--farming .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--farming .hero__bg { left: 0; right: auto; width: 100%; object-position: 50% 30%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--farming .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Online Masterclass banner: farmer with tablet sits on the right (image shown from its left edge), fading into green */
.pagehero--online .hero__bg { left: auto; right: 5%; width: 46%; object-position: 0% 40%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
.pagehero--online .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 42%, rgba(23,59,34,.05) 100%); }
.pagehero--online h1, .pagehero--online .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--online .hero__bg { left: 0; width: 100%; object-position: 25% 40%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--online .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}
@media (min-width: 1101px) { .pagehero--online h1 { font-size: clamp(2.4rem, 4.2vw, 3.8rem); } }

/* Residential Masterclass banner: two colleagues in a field on the right, fading into green on the left and top */
.pagehero--residential .hero__bg { top: auto; bottom: 0; height: 84%; left: auto; right: 5%; width: 54%; object-position: 100% 30%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20%); mask-image: linear-gradient(90deg, transparent 0, #000 20%); }
.pagehero--residential .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,1) 0, rgba(23,59,34,0) 26%), linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 42%, rgba(23,59,34,.04) 100%); }
.pagehero--residential h1, .pagehero--residential .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (min-width: 1101px) { .pagehero--residential h1 { font-size: clamp(2.2rem, 3.5vw, 3.2rem); } }
@media (max-width: 1100px) {
  .pagehero--residential .hero__bg { top: 0; bottom: auto; height: 100%; left: 0; right: auto; width: 100%; object-position: 50% 30%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--residential .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Buyer–Seller Connect banner: truck at sunset on the right (image shown from its left edge), fading into green */
.pagehero--buyers .hero__bg { left: auto; right: 2%; width: 50%; object-position: 0% 40%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22%); mask-image: linear-gradient(90deg, transparent 0, #000 22%); }
.pagehero--buyers .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 42%, rgba(23,59,34,.04) 100%); }
.pagehero--buyers h1, .pagehero--buyers .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (min-width: 1101px) { .pagehero--buyers h1 { font-size: clamp(2.2rem, 3.6vw, 3.3rem); } }
@media (max-width: 1100px) {
  .pagehero--buyers .hero__bg { left: 0; right: auto; width: 100%; object-position: 30% 40%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--buyers .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Farmer Registration banner: smiling farmer with kohlrabi on the right, fading into green on the left and top */
.pagehero--registration .hero__bg { top: auto; bottom: 0; height: 80%; left: auto; right: 4%; width: 54%; object-position: 50% 15%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22%); mask-image: linear-gradient(90deg, transparent 0, #000 22%); }
.pagehero--registration .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,1) 0, rgba(23,59,34,0) 24%), linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 42%, rgba(23,59,34,.04) 100%); }
.pagehero--registration h1, .pagehero--registration .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--registration .hero__bg { top: 0; bottom: auto; height: 100%; left: 0; right: auto; width: 100%; object-position: 55% 20%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--registration .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Contact banner: harvest crate and potatoes on the right, fading into green on the left */
.pagehero--contact .hero__bg { left: auto; right: -2%; width: 58%; object-position: 100% 38%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20%); mask-image: linear-gradient(90deg, transparent 0, #000 20%); }
.pagehero--contact .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 44%, rgba(23,59,34,.04) 100%); }
.pagehero--contact h1, .pagehero--contact .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (min-width: 1101px) { .pagehero--contact h1 { font-size: clamp(2.2rem, 3.6vw, 3.3rem); } .pagehero--contact .pagehero__sub { max-width: 600px; } }
@media (max-width: 1100px) {
  .pagehero--contact .hero__bg { left: 0; right: auto; width: 100%; object-position: 50% 50%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--contact .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* Hiring banner: two workers facing a glowing world map; image on the right, fading into green on the left */
.pagehero--hiring .hero__bg { left: auto; right: 0; width: 56%; object-position: 50% 55%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
.pagehero--hiring .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 44%, rgba(23,59,34,.04) 100%); }
.pagehero--hiring h1, .pagehero--hiring .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .pagehero--hiring .hero__bg { left: 0; width: 100%; object-position: 55% 55%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--hiring .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* New logo (Home page demo): shown on a white chip so it reads on the dark hero, the ivory header and the green footer */
.brand__logo { display: inline-flex; align-items: center; background: #fff; border-radius: 14px; padding: 6px 12px; box-shadow: 0 4px 16px rgba(10,24,14,.18); }
.brand__logo img { display: block; height: 54px; width: auto; }
.site-header.is-scrolled .brand__logo { box-shadow: none; padding-left: 0; padding-right: 0; background: transparent; }
.site-header.is-scrolled .brand__logo img { height: 46px; }
@media (max-width: 640px) { .brand__logo img { height: 38px; } }

/* Seedling banner (Residential Masterclass closing): image on the right, soft fade into green on the left */
.cta-seed .hero__bg { left: auto; right: 0; width: 66%; object-position: 40% 55%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%); mask-image: linear-gradient(90deg, transparent 0, #000 30%); }
.cta-seed .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.7) 40%, rgba(23,59,34,.05) 100%); }
.cta-seed h2, .cta-seed p.lead { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (max-width: 1100px) {
  .cta-seed .hero__bg { left: 0; width: 100%; -webkit-mask-image: none; mask-image: none; }
  .cta-seed .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* International Buyers banner: hand touching a young lettuce plant on the right, fading into green */
.pagehero--intl .hero__bg { left: auto; right: 2%; width: 54%; object-position: 70% 50%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
.pagehero--intl .hero__shade { background: linear-gradient(90deg, rgba(23,59,34,.95) 0%, rgba(23,59,34,.72) 42%, rgba(23,59,34,.04) 100%); }
.pagehero--intl h1, .pagehero--intl .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.4); }
@media (min-width: 1101px) { .pagehero--intl h1 { font-size: clamp(2.2rem, 3.6vw, 3.3rem); } }
@media (max-width: 1100px) {
  .pagehero--intl .hero__bg { left: 0; right: auto; width: 100%; object-position: 70% 50%; -webkit-mask-image: none; mask-image: none; }
  .pagehero--intl .hero__shade { background: linear-gradient(180deg, rgba(23,59,34,.68), rgba(23,59,34,.8)); }
}

/* =====================================================================
   Motion & interaction polish
   Calm, professional: short eases, small movements, nothing loops loudly.
   Everything is switched off for visitors who prefer reduced motion (see
   the prefers-reduced-motion block above), and hover effects only apply
   on devices that really hover (not phones).
   ===================================================================== */
:root { --ease: cubic-bezier(.22, .61, .36, 1); --ease-soft: cubic-bezier(.4, 0, .2, 1); }

/* --- Scroll reveal: staggered fade-up. (animation, not transition, so the delay never slows hover effects) --- */
.js .reveal { transition: transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s ease, background-color .28s ease; }
.js .reveal.in { animation: rise .75s var(--ease) backwards; animation-delay: var(--rd, 0s); }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } }
.grid > .reveal:nth-child(2), .job-grid > .reveal:nth-child(2), .split > .reveal:nth-child(2) { --rd: .09s; }
.grid > .reveal:nth-child(3), .job-grid > .reveal:nth-child(3) { --rd: .18s; }
.grid > .reveal:nth-child(4), .job-grid > .reveal:nth-child(4) { --rd: .27s; }
.grid > .reveal:nth-child(5), .job-grid > .reveal:nth-child(5) { --rd: .36s; }
.grid > .reveal:nth-child(6), .job-grid > .reveal:nth-child(6) { --rd: .45s; }
.grid--3 > .reveal:nth-child(4), .grid--4 > .reveal:nth-child(5) { --rd: .09s; }
.grid--3 > .reveal:nth-child(5) { --rd: .18s; }
.grid--3 > .reveal:nth-child(6) { --rd: .27s; }

/* --- Page-top entrance (headline stays static so it paints instantly) --- */
.hero__copy > .eyebrow, .pagehero__in > .breadcrumb, .pagehero__in > .eyebrow { animation: fade-in .8s var(--ease) .05s backwards; }
.hero__tag { animation: rise .8s var(--ease) .15s backwards; }
.hero__copy .actions, .pagehero .actions { animation: rise .8s var(--ease) .35s backwards; }
.hero__art-wrap { animation: rise 1s var(--ease) .2s backwards; }
.hero__band { animation: fade-in 1s ease .5s backwards; }
@keyframes fade-in { from { opacity: 0; } }

/* --- Slow "breathing" of banner photos --- */
.hero > .hero__bg, .pagehero > .hero__bg { animation: drift 26s ease-in-out infinite alternate; transform-origin: 60% 50%; will-change: transform; }
@keyframes drift { to { transform: scale(1.055); } }

/* --- Floating labels beside the hero photo --- */
.fl { animation: float 7s ease-in-out infinite alternate; }
.fl--2 { animation-delay: -2.2s; animation-duration: 8s; }
.fl--3 { animation-delay: -4.1s; animation-duration: 7.5s; }
@keyframes float { from { transform: translateY(0); } to { transform: translateY(-7px); } }

/* --- Scroll cue nudge --- */
.scroll-cue .ic { animation: nudge 2.4s ease-in-out infinite; }
@keyframes nudge { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(4px); } }

/* --- Image frames: smooth zoom --- */
.frame img, .arch img, .pathcard__img img, .collage__b img, .jobcard__img img, .hero__art img { transition: transform .8s var(--ease); }

/* --- Focus polish (keyboard + forms) --- */
.inp { transition: border-color .2s ease, box-shadow .25s ease, background-color .2s ease; }
.inp:focus-visible { box-shadow: 0 0 0 5px rgba(144, 197, 45, .22); }
.field label { transition: color .2s ease; }
.field:focus-within > label { color: var(--forest); }
.check input { transition: transform .15s ease; }
.check input:active { transform: scale(.9); }
.btn { transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--ease), box-shadow .25s ease; }
.btn:active { transform: translateY(0) scale(.98); box-shadow: none; }
.nav__link, .sub__link, .footer__links a, .tlink, .breadcrumb a { -webkit-tap-highlight-color: transparent; }
.brand__logo { transition: transform .3s var(--ease), box-shadow .3s ease; }
.to-top { transition: transform .25s var(--ease), background-color .2s ease, opacity .3s ease, visibility .3s ease; }
.chip, .icb, .numlist li, .checklist li .ic, .vsteps li::before, .steps li::before, .factbar > div, .stats li strong, .callout, .badge, .collage__badge, .tbl tbody tr, .network .icb { transition: transform .28s var(--ease), background-color .25s ease, border-color .25s ease, color .25s ease, box-shadow .28s var(--ease), padding .28s var(--ease); }
.tbl tbody tr { transition: background-color .2s ease; }
.form-success { animation: rise .6s var(--ease) backwards; }

@media (hover: hover) and (pointer: fine) {
  /* Buttons */
  .btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(23, 59, 34, .22); }
  .btn--outline:hover { box-shadow: 0 10px 22px rgba(0, 0, 0, .2); }
  .brand:hover .brand__logo { transform: scale(1.03); }
  .to-top:hover { transform: translateY(-3px); }

  /* Cards: gentle lift, soft shadow, fresh-green edge */
  .card:not(.form):not(.form-success):hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(23, 59, 34, .13); border-color: var(--fresh); }
  .card--forest:not(:hover), .card--dark:not(:hover) { box-shadow: none; }
  .card--forest:hover, .card--dark:hover { box-shadow: 0 18px 40px rgba(0, 0, 0, .25); border-color: var(--lime); }
  .card--lime:hover { box-shadow: 0 18px 40px rgba(144, 168, 30, .35); border-color: #c4cc3f; }
  .card:not(.form):not(.form-success):hover > .icb, .card:hover .feature > .icb, .feature:hover > .icb { background: var(--lime); color: var(--char); transform: scale(1.07) rotate(-5deg); }
  .card--forest:hover > .icb, .card--dark:hover > .icb { background: var(--lime); color: var(--char); }
  .card:hover .card__num { letter-spacing: .06em; }
  .card__num { transition: letter-spacing .3s var(--ease); }

  /* Photos inside frames */
  .frame:hover img, .arch:hover img, .pathcard:hover .pathcard__img img, .cropcard:hover .arch img, .collage__b:hover img, .jobcard:hover .jobcard__img img { transform: scale(1.05); }
  .hero__art:hover img { transform: scale(1.025); }
  .job-poster img { transition: transform .4s var(--ease), box-shadow .4s ease; }
  .job-poster:hover img { transform: translateY(-4px); box-shadow: 0 26px 56px rgba(23, 59, 34, .2); }
  .collage__badge:hover { transform: translateY(-4px) rotate(-1deg); }

  /* Chips, lists, steps */
  .chip:hover { transform: translateY(-2px); background: var(--sage); border-color: var(--fresh); box-shadow: 0 8px 18px rgba(23, 59, 34, .1); }
  .chip--sage:hover { background: #DDE8C8; }
  .chip--forest:hover { background: var(--deep); border-color: var(--deep); }
  .chips--dark .chip:hover { background: rgba(255, 255, 255, .18); border-color: var(--lime); box-shadow: none; }
  .chain .chip:hover { transform: translateY(-2px); }
  .checklist li:hover .ic { transform: scale(1.2); color: var(--fresh); }
  .numlist li:hover { padding-left: 10px; color: var(--forest); }
  .numlist li:hover::before { color: var(--fresh); }
  .vsteps li:hover::before { background: var(--fresh); transform: scale(1.1); }
  .steps li:hover::before { transform: scale(1.1); box-shadow: 0 6px 16px rgba(144, 197, 45, .45); }
  .factbar > div:hover { background: var(--sage); }
  .stats li:hover strong { transform: translateY(-4px); }
  .network li:hover .icb { transform: translateY(-5px) scale(1.06); background: var(--lime); color: var(--char); }
  .callout:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(23, 59, 34, .12); }
  .tbl tbody tr:hover { background: #F4F8EA; }
  .check:hover { color: var(--char); }
  .sub__link:hover { padding-left: 20px; }
  .sub__link { transition: background-color .2s ease, padding .2s var(--ease); }
  .badge:hover { transform: translateY(-1px); }
  .quote:hover::before { transform: translateY(-3px); }
  .quote::before { transition: transform .3s var(--ease); }
  .pillar__head:hover .icb { transform: scale(1.07) rotate(-5deg); background: var(--lime); }
}

/* Inline links inside running text get a quiet animated underline */
.prose a, .card p a, .callout a, .form__note a, .check a, .field__hint a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; transition: background-size .25s var(--ease), color .2s ease; }
@media (hover: hover) and (pointer: fine) { .prose a:hover, .card p a:hover, .callout a:hover, .form__note a:hover, .check a:hover, .field__hint a:hover { background-size: 100% 2px; color: var(--forest); } }

/* Home hero: keep the farmer photo on tablets and phones too (labels hidden; there is no room for them) */
@media (min-width: 761px) and (max-width: 1100px) {
  .hero__body { grid-template-columns: minmax(0, 1fr) 280px; gap: 36px; align-items: center; }
  .hero__art-wrap { display: block; width: 280px; }
  .fl { display: none; }
}
@media (max-width: 760px) {
  .hero__art-wrap { display: block; width: min(250px, 70%); justify-self: start; margin-top: 8px; }
  .fl { display: none; }
}

/* Comparison table: on phones each row becomes a small card instead of a sideways-scrolling table */
@media (max-width: 640px) {
  .table-wrap { overflow: visible; border: 0; background: transparent; }
  .tbl { min-width: 0; }
  .tbl thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tbl, .tbl tbody, .tbl tr, .tbl th, .tbl td { display: block; }
  .tbl tr { margin-bottom: 16px; padding: 6px 0 10px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
  .tbl tr:last-child th, .tbl tr:last-child td { border-bottom: 0; }
  .tbl tbody th { padding: 16px 20px 6px; font-size: 1.2rem; border-bottom: 0; }
  .tbl td { display: flex; justify-content: space-between; gap: 18px; padding: 10px 20px; border-bottom: 1px dashed var(--line); text-align: right; }
  .tbl td:last-child { border-bottom: 0; }
  .tbl td::before { content: attr(data-label); flex: 0 0 38%; text-align: left; font: 700 12px/1.5 var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--olive); }
}

/* Events banner: globe with growing plants, full width, dark green fade on the text side */
.pagehero--events .hero__bg { object-position: center 58%; }
.pagehero--events .hero__shade { background: linear-gradient(90deg, rgba(16,40,24,.88) 0%, rgba(16,40,24,.6) 46%, rgba(16,40,24,.12) 100%); }
.pagehero--events h1, .pagehero--events .pagehero__sub { text-shadow: 0 2px 18px rgba(8,22,12,.45); }
@media (max-width: 1100px) { .pagehero--events .hero__shade { background: linear-gradient(180deg, rgba(16,40,24,.62), rgba(16,40,24,.76)); } }
