/* Farm hub only. Shared shell, type, buttons and motion belong to the architect. */
.farm-hero { min-height: min(86vh, 880px); }
.farm-hero .c-hero__media img { object-position: 50% 58%; }
.farm-hero::before { background: linear-gradient(90deg,rgba(16,15,13,.82) 0%,rgba(16,15,13,.43) 54%,rgba(16,15,13,.08) 100%),linear-gradient(0deg,rgba(16,15,13,.6),transparent 42%); }
.farm-hero__text { padding-bottom: clamp(100px,12vw,170px); }
.farm-hero__text .kop1 { max-width: 11ch; }
.farm-scroll { display: inline-flex; align-items: center; gap: 18px; width: fit-content; min-height: 44px; margin-top: 12px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid var(--oker-licht); }
.farm-scroll span { font-size: 25px; line-height: 1; font-weight: 300; }
.farm-hero__caption { position: absolute; z-index: 2; right: var(--gutter); bottom: 22px; max-width: 35ch; margin: 0; text-align: right; color: var(--wit); font-size: 13px; line-height: 1.4; }
.farm-waypoints { background: var(--nacht-2); border-bottom: 1px solid var(--lijn-d); }
.farm-waypoints__inner { min-height: 78px; display: flex; align-items: center; gap: clamp(18px,2.5vw,38px); }
.farm-waypoints span { color: var(--oker-licht); font-size: 11px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; margin-right: auto; white-space: nowrap; }
.farm-waypoints a { color: var(--wit); font-size: 14px; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid transparent; white-space: nowrap; }
.farm-waypoints a:hover { border-color: var(--oker-licht); }
.farm-sectionhead { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: clamp(38px,5vw,76px); }
.farm-sectionhead > p:last-child { max-width: 40ch; margin: 0; color: var(--mist); font-size: 15px; }
.farm-feature { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,6fr); gap: clamp(42px,7vw,112px); align-items: center; }
.farm-feature__image { position: relative; margin: 0; overflow: hidden; background: var(--nacht-2); }
.farm-feature__image img { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: 50% 65%; filter: brightness(.84) saturate(.94); }
.farm-feature__image figcaption { padding: 14px 0 0; max-width: 55ch; font-size: 13px; color: var(--mist); }
.farm-feature__copy { display: grid; gap: 26px; justify-items: start; }
.farm-feature__copy .kop2 { max-width: 10ch; }
.farm-feature__copy > p { max-width: 53ch; color: var(--mist); margin: 0; }
.farm-index { color: var(--oker-licht); font: 600 13px var(--sans); letter-spacing: .18em; }
.farm-chapter-link { display: flex; justify-content: space-between; align-items: center; gap: 30px; width: 100%; border-top: 1px solid var(--oker); border-bottom: 1px solid var(--lijn-d); padding: 20px 0 23px; text-decoration: none; transition: color .25s; }
.farm-chapter-link > span:first-child { display: grid; gap: 4px; }
.farm-chapter-link small { color: var(--oker-licht); font-size: 11px; font-weight: 700; letter-spacing: .19em; }
.farm-chapter-link strong { font: 700 clamp(23px,2.4vw,36px)/1.12 var(--display); letter-spacing: -.025em; }
.farm-chapter-link > span:first-child > span { font-size: 14px; color: var(--mist); }
.farm-chapter-link__arrow { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border: 1px solid var(--oker-licht); border-radius: 50%; color: var(--oker-licht); font-size: 24px; line-height: 1; transition: transform .25s,background .25s,color .25s; }
a.farm-chapter-link:hover .farm-chapter-link__arrow { transform: translate(4px,-4px); background: var(--oker); color: var(--nacht); }
.farm-chapter-link.s-soon { opacity: 1; cursor: default; }
.farm-chapter-link.s-soon .farm-chapter-link__arrow { opacity: .45; }
.farm-chapter-link.s-soon > span:first-child > small { border: 0; padding: 0; font-size: 11px; }
.farm-chapter-link.s-soon > small { align-self: center; }
.farm-growing .s-sectionhead { max-width: 1000px; }
.farm-sequence { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(12px,2.2vw,30px); counter-reset: scene; }
.farm-sequence figure { margin: 0; min-width: 0; }
.farm-sequence__frame { overflow: hidden; background: var(--steen-2); }
.farm-sequence img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; }
.farm-sequence figure:nth-child(1) img { object-position: 50% 75%; }
.farm-sequence figcaption { display: flex; gap: 15px; padding-top: 15px; color: var(--inkt-zacht); font-size: 14px; line-height: 1.4; }
.farm-sequence figcaption b { color: var(--oker-diep); font-size: 12px; letter-spacing: .14em; }
.farm-chapter-link--light { margin-top: clamp(46px,6vw,86px); border-bottom-color: var(--steen-lijn); }
.farm-chapter-link--light small,.farm-chapter-link--light .farm-chapter-link__arrow { color: var(--oker-diep); border-color: var(--oker-diep); }
.farm-chapter-link--light > span:first-child > span { color: var(--inkt-zacht); }
.farm-pictures__head { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.farm-pictures__head .s-sectionhead { margin-bottom: clamp(34px,5vw,70px); }
.farm-pictures__head > a { margin-bottom: clamp(34px,5vw,70px); min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.farm-photo-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: clamp(12px,2vw,24px); }
.farm-photo-grid figure { margin: 0; min-width: 0; }
.farm-photo-grid img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; filter: brightness(.86) saturate(.93); }
.farm-photo-grid figure:first-child img { aspect-ratio: 1/1; }
.farm-photo-grid figcaption { color: var(--mist); font-size: 13px; padding-top: 14px; }
.farm-visit__layout { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,6fr); gap: var(--col-gap); align-items: center; }
.farm-visit__layout > div { display: grid; gap: 24px; justify-items: start; }
.farm-visit__layout h2 { max-width: 11ch; }
.farm-visit__layout p:not(.label) { max-width: 52ch; margin: 0; color: #d0d5cd; }
.farm-visit__layout figure { margin: 0; }
.farm-visit__layout img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; filter: brightness(.82) saturate(.88); }
.farm-visit__layout figcaption { color: #d0d5cd; font-size: 13px; padding-top: 14px; }
.farm-close { background: var(--nacht); }
.farm-close .intro { max-width: 52ch; }
.farm-signup { width: 100%; max-width: 650px; margin-top: clamp(52px,8vw,104px); padding-top: 25px; border-top: 1px solid var(--lijn-d); }
.farm-signup label { display: block; font: 700 21px var(--display); }
.farm-signup p { margin: 8px 0 18px; color: var(--mist); font-size: 14px; }
.farm-signup > div { display: flex; align-items: stretch; border-bottom: 1px solid var(--oker-licht); }
.farm-signup input { flex: 1; min-width: 0; padding: 15px 0; color: var(--wit); background: transparent; border: 0; font: 16px var(--sans); }
.farm-signup input::placeholder { color: var(--mist); }
.farm-signup input:focus { outline: none; }
.farm-signup > div:focus-within { outline: 2px solid var(--oker-licht); outline-offset: 3px; }
.farm-signup button { color: var(--oker-licht); background: transparent; border: 0; padding: 12px 0 12px 16px; min-height: 44px; cursor: pointer; font: 700 13px var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.farm-signup button span { margin-left: 7px; }
.farm-signup small { display: block; min-height: 26px; padding-top: 8px; color: var(--mist); font-size: 13px; }
.farm-signup.is-error small { color: #E6A69E; }
@media(max-width:900px){
  .farm-hero { min-height: 72vh; }
  .farm-hero__caption { left: var(--gutter); right: auto; text-align: left; }
  .farm-feature,.farm-visit__layout { grid-template-columns: 1fr; }
  .farm-feature__image { max-width: 670px; }
  .farm-feature__image img { aspect-ratio: 3/2; }
  .farm-visit__layout figure { max-width: 670px; }
  .farm-visit__layout img { aspect-ratio: 3/2; }
  .farm-waypoints__inner { overflow-x: auto; }
  .farm-waypoints span { display: none; }
}
@media(max-width:560px){
  .farm-hero { min-height: 670px; }
  .farm-hero::before { background: linear-gradient(0deg,rgba(16,15,13,.83),rgba(16,15,13,.28) 75%); }
  .farm-hero__text { padding-top: 95px; padding-bottom: 125px; }
  .farm-hero__caption { bottom: 17px; }
  .farm-sectionhead { display: block; }
  .farm-sectionhead > p:last-child { margin-top: 16px; }
  .farm-feature__image img { aspect-ratio: 4/5; }
  .farm-sequence { grid-template-columns: 1fr; gap: 36px; }
  .farm-sequence img { aspect-ratio: 4/3; }
  .farm-pictures__head { display: block; }
  .farm-pictures__head > a { margin-bottom: 30px; }
  .farm-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .farm-photo-grid figure:first-child { grid-column: 1/-1; }
  .farm-photo-grid figure:first-child img { aspect-ratio: 3/2; }
  .farm-photo-grid img { aspect-ratio: 4/5; }
  .farm-signup > div { flex-wrap: wrap; }
  .farm-signup input { flex-basis: 100%; }
  .farm-signup button { padding-left: 0; }
}

/* v2 Farm pilot: evidence-led editorial scenes, within the existing palette. */
.farm-hero { min-height: min(92svh, 900px); }
.farm-hero__text .kop1 { max-width: 10ch; }
.farm-waypoints__inner { overflow-x: auto; scrollbar-width: thin; }
.farm-waypoints a { flex: none; }
.farm-heritage { background: var(--nacht); }
.farm-heritage__grid { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(0,.82fr); gap: clamp(50px,9vw,150px); align-items: start; }
.farm-heritage .kop2 { max-width: 12ch; margin: 18px 0 28px; }
.farm-heritage__lede { max-width: 55ch; color: var(--mist); font-size: clamp(17px,1.5vw,20px); line-height: 1.65; }
.farm-inline-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 48px; margin-top: 25px; border-bottom: 1px solid var(--oker-licht); color: var(--wit); text-decoration: none; font-weight: 700; }
.farm-inline-link span { color: var(--oker-licht); font-size: 22px; }
.farm-heritage__record { border-top: 1px solid var(--oker); }
.farm-heritage__record > div { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; padding: clamp(26px,3vw,44px) 0; border-bottom: 1px solid var(--lijn-d); }
.farm-heritage__record b { color: var(--oker-licht); font: 600 clamp(30px,3.6vw,52px)/1 var(--display); }
.farm-heritage__record p { max-width: 29ch; margin: 0; color: var(--mist); }
.farm-animals { position: relative; min-height: min(84vh,800px); display: flex; align-items: end; overflow: hidden; background: var(--nacht-3); }
.farm-animals::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(16,15,13,.88),rgba(16,15,13,.30) 70%),linear-gradient(0deg,rgba(16,15,13,.65),transparent 70%); pointer-events: none; }
.farm-animals__image { position: absolute; inset: 0; }
.farm-animals__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.farm-animals__image p { position: absolute; bottom: 20px; right: var(--gutter); z-index: 2; margin: 0; max-width: 32ch; text-align: right; color: var(--wit); font-size: 12px; }
.farm-animals__copy { position: relative; z-index: 3; width: 100%; padding-block: 130px 155px; }
.farm-animals__copy .kop2 { max-width: 12ch; margin: 18px 0 25px; }
.farm-animals__copy > p:not(.label) { max-width: 49ch; color: var(--wit); font-size: clamp(17px,1.5vw,20px); }
.farm-animals__links { display: flex; flex-wrap: wrap; gap: 15px 34px; margin-top: 36px; }
.farm-animals__links a { display: inline-flex; align-items: center; gap: 16px; min-height: 48px; border-bottom: 1px solid var(--oker-licht); color: var(--wit); text-decoration: none; font-weight: 700; }
.farm-animals__links span { color: var(--oker-licht); }
.farm-changes__head { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: clamp(40px,7vw,120px); margin-bottom: clamp(45px,7vw,96px); }
.farm-changes__head .kop2 { max-width: 13ch; margin: 16px 0 0; }
.farm-changes__head > p { max-width: 42ch; color: var(--inkt-zacht); font-size: clamp(17px,1.4vw,19px); }
.farm-decisions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(15px,2vw,30px); }
.farm-decisions article { min-height: 260px; display: flex; flex-direction: column; padding: clamp(24px,3vw,42px); background: var(--steen-2); border-top: 2px solid var(--oker-diep); }
.farm-decisions span { color: var(--oker-diep); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.farm-decisions h3 { margin: auto 0 22px; color: var(--inkt); font: 700 clamp(23px,2.3vw,33px)/1.18 var(--display); }
.farm-decisions p { margin: 0; color: var(--inkt-zacht); font-size: 15px; line-height: 1.5; }
.farm-detail-link { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 48px; padding: 24px 0; border-top: 1px solid var(--oker-diep); border-bottom: 1px solid var(--steen-lijn); color: var(--inkt); text-decoration: none; }
.farm-detail-link small { display: block; margin-bottom: 6px; color: var(--oker-diep); font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.farm-detail-link strong { font: 700 clamp(21px,2.5vw,35px)/1.2 var(--display); }
.farm-detail-link > span:last-child { display: grid; place-items: center; width: 54px; height: 54px; flex: none; border: 1px solid var(--oker-diep); border-radius: 50%; font-size: 26px; }
.farm-lane { background: var(--bos-diep); }
.farm-lane__heading { max-width: 930px; margin-bottom: clamp(50px,8vw,110px); }
.farm-lane__heading .kop2 { max-width: 14ch; margin: 18px 0 25px; }
.farm-lane__heading > p:last-child { max-width: 57ch; color: #d0d5cd; font-size: clamp(17px,1.5vw,20px); }
.farm-lane__layout { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,.7fr); gap: clamp(30px,5vw,80px); }
.farm-lane__visual { position: sticky; top: max(calc(var(--kop-h) + 16px), calc((100svh - var(--lane-visual-height, 580px))/2)); align-self: start; }
.farm-lane__diagram { padding: clamp(17px,2.3vw,30px); border: 1px solid rgba(205,180,135,.4); background: #102b23; box-shadow: 0 24px 80px rgba(0,0,0,.22); transform-origin: center center; }
.farm-lane__diagram-top,.farm-lane__diagram-foot { display: flex; justify-content: space-between; gap: 12px; color: var(--oker-licht); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.farm-lane__diagram-top span:last-child { color: #d0d5cd; }
.farm-lane__diagram svg { display: block; width: 100%; margin: 15px 0; overflow: visible; }
.farm-lane__path,.farm-lane__glow { stroke-dashoffset: 0; }
.farm-lane.is-animated .farm-lane__path,.farm-lane.is-animated .farm-lane__glow { stroke-dasharray: 157; will-change: stroke-dashoffset; }
.farm-lane.is-animated[data-lane-state="0"] .farm-lane__inner { opacity: 0; }
.farm-lane__orbit { transform-box: view-box; }
.farm-lane__orbit--one { transform-origin: 182px 220px; }
.farm-lane__orbit--two { transform-origin: 610px 220px; }
.farm-lane.is-animated .farm-lane__orbit--one { animation: farm-circling 20s linear infinite paused; }
.farm-lane.is-animated .farm-lane__orbit--two { animation: farm-circling 25s linear infinite reverse paused; }
.farm-lane.is-animated.is-visible .farm-lane__orbit { animation-play-state: running; }
.farm-lane.is-animated .farm-lane__traveler { will-change: transform; }
@keyframes farm-circling { to { transform: rotate(360deg); } }
.farm-lane__diagram svg text { fill: #d0d5cd; font: 700 14px var(--sans); letter-spacing: 2px; text-anchor: middle; }
.farm-lane__caption { max-width: 59ch; color: #d0d5cd; font-size: 13px; line-height: 1.5; }
.farm-lane__steps { border-top: 1px solid rgba(205,180,135,.5); }
.farm-lane__steps article { min-height: clamp(220px,22vw,300px); padding: 30px 0 36px; border-bottom: 1px solid rgba(205,180,135,.35); opacity: 1; transition: opacity .3s; }
.farm-lane.is-animated .farm-lane__steps article { opacity: .54; }
.farm-lane.is-animated .farm-lane__steps article.is-current { opacity: 1; }
.farm-lane__steps article > span { color: var(--oker-licht); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.farm-lane__steps h3 { max-width: 15ch; margin: 28px 0 18px; color: var(--wit); font: 700 clamp(26px,3vw,43px)/1.14 var(--display); }
.farm-lane__steps p { max-width: 45ch; color: #d0d5cd; font-size: 16px; line-height: 1.55; }
.farm-lane__controls { display: none; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.farm-lane.is-animated .farm-lane__controls { display: flex; }
.farm-lane__controls button { min-height: 46px; padding: 9px 18px; border: 1px solid rgba(205,180,135,.55); border-radius: 999px; background: transparent; color: var(--wit); font: 700 13px var(--sans); cursor: pointer; }
.farm-lane__controls button[aria-pressed="true"] { background: var(--oker-licht); border-color: var(--oker-licht); color: var(--nacht); }
.farm-lane__controls button:focus-visible,.farm-inline-link:focus-visible,.farm-animals__links a:focus-visible,.farm-detail-link:focus-visible { outline: 2px solid var(--oker-licht); outline-offset: 4px; }
.farm-lane__diagram-foot b { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 5px; border: 1px solid rgba(219,193,140,.55); border-radius: 50%; font-size: 9px; }
.farm-close .farm-inline-link { margin-top: 0; }
@media(min-width:901px){.farm-lane__steps article { min-height: clamp(340px,30vw,420px); }}
@media(max-width:900px){.farm-heritage__grid,.farm-changes__head,.farm-lane__layout { grid-template-columns: 1fr; }.farm-heritage__record { max-width: 720px; }.farm-decisions { grid-template-columns: 1fr 1fr; }.farm-lane__visual { position: static; }.farm-lane__steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; border: 0; margin-top: 36px; }.farm-lane__steps article { min-height: 0; padding: 20px; border: 1px solid rgba(205,180,135,.35); }.farm-lane__steps h3 { font-size: 22px; }.farm-lane__steps p { font-size: 14px; }}
@media(max-width:650px){.farm-hero { min-height: 760px; }.farm-animals { min-height: 780px; }.farm-animals__copy { padding-block: 120px 145px; }.farm-animals__image p { left: var(--gutter); right: auto; text-align: left; }.farm-decisions,.farm-lane__steps { grid-template-columns: 1fr; }.farm-decisions article { min-height: 220px; }.farm-lane__steps { gap: 0; }.farm-lane__steps article { border: 0; border-top: 1px solid rgba(205,180,135,.35); opacity: 1; }.farm-lane__diagram { margin-inline: calc(-1 * var(--gutter)); padding: 15px var(--gutter) 18px; }.farm-lane__diagram svg { margin: 8px 0 2px; }.farm-lane__diagram svg text { font-size: 19px; letter-spacing: .5px; }.farm-lane__diagram-top,.farm-lane__diagram-foot { font-size: 10px; letter-spacing: .06em; }.farm-lane__diagram-foot b { width: 19px; height: 19px; margin-right: 2px; }.farm-lane__caption { font-size: 14px; }.farm-lane__controls { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }.farm-lane.is-animated .farm-lane__controls { display: grid; }.farm-lane__controls button { min-height: 58px; padding: 10px 12px; border-radius: 12px; font-size: 15px; line-height: 1.2; text-align: center; }.farm-lane__controls button:last-child { grid-column: 1 / -1; }.farm-lane__steps article { padding: 24px 0; }.farm-lane__steps h3 { margin: 12px 0; font-size: 26px; }.farm-lane__steps p { font-size: 16px; }.farm-heritage__record > div { grid-template-columns: 1fr; gap: 8px; }.farm-changes__head .kop2 { max-width: 14ch; }}
@media(max-width:650px){.farm-lane.is-animated .farm-lane__steps article{opacity:1}}
@media(prefers-reduced-motion:reduce){.farm-lane__steps article { opacity: 1; transition: none; }.farm-lane__orbit { animation: none !important; }}
