/* Swiss Soil — experience-system.css
   Design system pass (13 Sep 2026). Loaded LAST. Owns:
   1. One semantic type scale for every heading below the hero.
   2. Green discipline: headings are ink; moss = eyebrow, active state, primary action, managed state.
   3. Section rhythm on one master grid (--w) and a spacing scale.
   4. The service cost-compression stage (six spends → one AUM hectare).
   Hero, opening copy, and the living-field simulation are untouched. */

:root{
  --t-page:clamp(48px,4vw,72px);
  --t-section:clamp(38px,3.2vw,56px);
  --t-sub:clamp(25px,2vw,32px);
  --t-lead:clamp(19px,1.35vw,22px);
  --t-body:clamp(16px,1.05vw,18px);
  --t-util:12px;
  --s-section:clamp(56px,6vw,88px);
}

/* ─── 1. TYPE SCALE ───────────────────────────────────────────── */
main .experience-mast h1{font-size:var(--t-page);line-height:.96;max-width:18ch}
main h2:not(.hero h2):not(#living-field h2):not(.scene-copy h2){
  font-size:var(--t-section);line-height:1.02;letter-spacing:-.025em;font-weight:300;font-variation-settings:"wdth" 74;
}
main .intro-side h2{font-size:var(--t-section)}
.gateway-word h2{font-size:var(--t-section);letter-spacing:-.02em;font-variation-settings:"wdth" 80}
.gateway-word span{padding-top:.25em;font-size:12px}
.system-statement h2{font-size:var(--t-sub);max-width:34ch;font-variation-settings:"wdth" 84}
.research-horizon .horizon-title h2,.home-contact h2,.mandate-bottom h2,.instrument-copy h2,#project h2.disp{font-size:var(--t-section)}
.service-price h2{font-size:var(--t-section)}
.delivery-statements h2,.responsibility-scene h2{font-size:var(--t-sub)}
.chapter-link .experience-link,.contact-oversize .experience-link{font-size:var(--t-section)}
main h3{font-size:var(--t-sub)}
main .lead,.intro-copy p:first-child{font-size:var(--t-lead)}
main p{font-size:var(--t-body)}
.mono,.gateway-scroll,.section-note,.source-note,.cost-included,.mandate-top,.documentary-note,.scene-caption,.work-heading .mono,#project .mono,.research-partners .mono{font-size:var(--t-util)!important}
.research-timeline span{font-size:var(--t-sub)}

/* ─── 2. GREEN DISCIPLINE ────────────────────────────────────── */
main h1:not(.hero h1),main h2:not(.hero h2):not(.land-mandate h2),main h3,
#project .research-partners h3,.gateway-word h2,.research-timeline span,.chapter-link .experience-link,.service-price h2,.cols3 .k{color:var(--bone)}
main h2 em,main h1 em,main p em{font-style:normal;color:var(--moss)}
.mono,.experience-mast .mono,.system-statement .mono,.horizon-title .mono,.home-contact .mono,.section-top .mono,.sec-head .mono,.work-heading .mono{color:var(--moss)}
.experience-link:hover{color:var(--moss)}
.research-timeline{border-top-color:var(--line-2)}
.research-timeline>div::before{background:var(--moss)}

/* ─── 3. RHYTHM ──────────────────────────────────────────────── */
.platform-gateway,.system-statement,.research-horizon,.instrument-scene,.home-contact,.chapter-link,.experience-mast,.service-price,.responsibility-scene,.delivery-statements{padding-top:var(--s-section);padding-bottom:var(--s-section)}
.platform-gateway{align-items:start;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px)}
.gateway-word{grid-column:1;align-self:start;margin-top:0}
.platform-gateway{align-items:start!important}
.gateway-caption{grid-column:2;display:flex;flex-direction:column;gap:18px;padding-top:0}
.gateway-caption>p:first-child{margin-top:-2px}
.gateway-caption p{font-size:var(--t-lead);max-width:44ch}
.gateway-caption .gateway-how{font-size:var(--t-body);color:var(--bone-2);max-width:52ch;margin-top:0}
.gateway-links{margin-top:10px}
.system-statement div{padding-top:8px}
.instrument-scene{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,64px)}
.instrument-image img{aspect-ratio:5/4;object-position:50% 35%;mix-blend-mode:multiply;filter:saturate(.85) contrast(1.05)}
.instrument-image{background:var(--peat-2)}
/* legibility over the terraces */
.mandate-bottom{background:linear-gradient(0deg,rgba(24,30,26,.82) 0%,rgba(24,30,26,.45) 55%,transparent 100%)}
.mandate-bottom p{color:rgba(241,236,223,.94)}

/* ─── 4. SERVICE — COST COMPRESSION STAGE ────────────────────── */
.service-stage{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:start}
.service-stage .stage-copy{display:flex;flex-direction:column;gap:22px;position:sticky;top:104px}
.service-stage .stage-copy h2{margin-top:14px}
.service-stage .stage-copy p{max-width:38ch}
.service-stage .stage-copy .experience-link{margin-top:8px}
.service-stage .stage{margin-top:0;border-top:0;padding-top:0}
.service-stage .stage svg{overflow:visible}
.service-stage .stage .replay{top:auto;bottom:-28px;right:0;min-height:44px;display:flex;align-items:center;color:var(--ash)}
.service-stage .stage .replay:hover{color:var(--bone)}
/* stage tokens use website palette; managed parcel = moss (the only green object in the section) */
.service-stage .p-top{fill:var(--moss)}.service-stage .p-side{fill:#46502a}
.service-stage .fee-n{fill:var(--bone)!important}
.service-stage .ll{font-size:15px}.service-stage .cov{font-size:14.5px}.service-stage .btxt{font-size:28px}
/* stage width lets the SVG breathe; on narrow screens the SVG scales and labels remain legible via viewBox */
@media(max-width:1100px){.service-stage{grid-template-columns:minmax(0,1fr)}.service-stage .stage-copy{position:static}}
.service-stage .stage-mobile{display:none}
@media(max-width:700px){
  .service-stage .stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:center;padding-bottom:44px}
  .service-stage .stage svg{min-width:0;width:100%;grid-column:1}
  /* the SVG keeps geometry only; labels move to .stage-mobile */
  .service-stage .stage .ll,.service-stage .stage .ldr,.service-stage .stage .g-brk,.service-stage .stage .g-fee,.service-stage .stage .g-one{display:none}
  .service-stage .stage-mobile{display:block;grid-column:2;min-width:0}
  .stage-mobile .mono{display:block;margin-bottom:6px}
  .stage-mobile strong{display:block;font-weight:300;font-size:clamp(24px,7vw,30px);letter-spacing:-.02em;line-height:1.05}
  .stage-mobile ul{margin:10px 0 8px;display:flex;flex-direction:column;gap:5px}
  .stage-mobile li{font-size:14px;line-height:1.35;color:var(--bone);overflow-wrap:anywhere;hyphens:auto}
  .stage-mobile strong,.stage-mobile small,.stage-mobile .mono{overflow-wrap:anywhere}
  .service-stage .stage{overflow-x:clip}
  .stage-mobile small{display:block;font-size:12px;line-height:1.4;color:var(--ash)}
  .stage-mobile .sm-before,.stage-mobile .sm-after{transition:opacity .5s}
  .stage-mobile .sm-after{display:none}
  .service-stage .stage.s1 .sm-before{display:none}
  .service-stage .stage.s1 .sm-after{display:block}
  .service-stage .stage .replay{bottom:0}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){.stage-mobile .sm-before{display:none}.stage-mobile .sm-after{display:block}}
.service-stage .stage .stage-static-note{display:none;font-size:var(--t-util);color:var(--ash);margin:0}
.service-stage .stage{padding-bottom:40px}
@media(prefers-reduced-motion:reduce){.service-stage .lay.ground,.service-stage .g-parcel,.service-stage .g-fee,.service-stage .g-one{opacity:1!important;transform:none!important}.service-stage .lay.b1,.service-stage .lay.b2,.service-stage .lay.b3,.service-stage .lay.n1,.service-stage .lay.n2,.service-stage .lay.n3,.service-stage .g-brk{display:none}.service-stage .stage .replay{display:none}.service-stage .stage .stage-static-note{display:block;position:absolute;left:0;bottom:-30px}}

/* ─── MOBILE FLOORS ──────────────────────────────────────────── */
@media(max-width:900px){
  .research-partners .mono,#project .mono,.work-heading .mono,.scene-caption{font-size:12px!important}
  .scene-copy h2{font-size:clamp(36px,8vw,54px)}
}
@media(max-width:480px){
  #project .research-timeline{grid-template-columns:minmax(0,1fr);gap:18px}
  #project .research-timeline>div{padding-right:0}
  #project .research-timeline strong{max-width:none}
}

/* ─── V3: THE VINEYARD PROBLEM — deck slide-3 hectare graphic (ported, website palette) ── */
.vineyard-problem{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:center}
.vp-copy h2{margin-top:14px;max-width:16ch}
.vp-copy p{margin-top:24px;max-width:48ch;font-size:var(--t-body);line-height:1.5}
.hectare{min-width:0}
.hectare svg{width:100%;height:auto;display:block;overflow:visible}
.hectare .ll{font-size:17px}.hectare .lv{font-size:13.5px}
.hectare .g-top{fill:#5a6138;fill-opacity:.65;stroke:#454a2b;stroke-width:1.4;stroke-opacity:.8}
.hectare .g-side{fill:#454a2b;fill-opacity:.72}
.hectare .rows line{stroke:#2f3320;stroke-opacity:.4;stroke-width:1.2}
.hectare .f-top{stroke-width:1.2;stroke-opacity:.75}
.hectare .c-lab2 .f-top{fill:#8c6d52;fill-opacity:.5;stroke:#6d5340}.hectare .c-lab2 .f-side{fill:#6d5340;fill-opacity:.6}
.hectare .c-mach .f-top{fill:#a09079;fill-opacity:.5;stroke:#7c6d58}.hectare .c-mach .f-side{fill:#7c6d58;fill-opacity:.6}
.hectare .c-lease .f-top{fill:#5e7a8e;fill-opacity:.5;stroke:#48606f}.hectare .c-lease .f-side{fill:#48606f;fill-opacity:.6}
.hectare .c-plant .f-top{fill:#77804c;fill-opacity:.5;stroke:#5c6339}.hectare .c-plant .f-side{fill:#5c6339;fill-opacity:.6}
.hectare .c-admin .f-top{fill:#8f6b74;fill-opacity:.5;stroke:#71535b}.hectare .c-admin .f-side{fill:#71535b;fill-opacity:.6}
.hectare .c-fert .f-top{fill:#d3a84c;fill-opacity:.5;stroke:#ab873a}.hectare .c-fert .f-side{fill:#ab873a;fill-opacity:.6}
.hectare .n-top{fill:#c4693f;fill-opacity:.55;stroke:#a3502f;stroke-width:1.3;stroke-opacity:.8}
.hectare .n-side{fill:#a3502f;fill-opacity:.62}
.hectare text{font-family:'Archivo',sans-serif}
.hectare .ll{font-size:18px;fill:var(--bone);font-weight:400}
.hectare .lv{font-size:14px;font-weight:500;letter-spacing:.02em;fill:var(--bone);font-variant-numeric:tabular-nums}
.hectare .lv .u{font-size:10.5px;font-weight:400;fill:var(--bone-2);letter-spacing:.08em}
.hectare .ll.n{fill:#a3502f;font-weight:500}
.hectare .lay.n1 .lv,.hectare .lay.n2 .lv,.hectare .lay.n3 .lv{fill:#a3502f}
.hectare .ldr{stroke:rgba(26,20,16,.3);stroke-width:1}.hectare .ldr.n{stroke:rgba(163,80,47,.5)}
.hectare .glbl{font-size:10.5px;letter-spacing:.22em;fill:var(--bone-2);font-weight:500}
.hectare .brk{stroke:rgba(26,20,16,.4);stroke-width:1.2;fill:none}.hectare .brk.n{stroke:rgba(185,96,63,.65)}
.hectare .btxt{font-size:24px;font-weight:400;fill:var(--bone);letter-spacing:-.02em}
.hectare .btxt2{font-size:10px;letter-spacing:.18em;fill:var(--bone-2);font-weight:500}
.hectare .btxtn{font-size:24px;font-weight:400;fill:#a3502f;letter-spacing:-.02em}
.hectare .btxtn2{font-size:10px;letter-spacing:.18em;fill:#a3502f;font-weight:500}
/* choreography: held until the block scrolls in (.play), then the deck's sequence */
.hectare .lay,.hectare .g-basebrk,.hectare .g-newbrk{opacity:0}
.hectare .lay{transform:translateY(14px)}
.hectare.play .lay.ground{animation:rise .8s cubic-bezier(.22,.68,.24,1) .2s forwards}
.hectare.play .lay.b1{animation:rise .6s cubic-bezier(.22,.68,.24,1) .6s forwards}
.hectare.play .lay.b2{animation:rise .6s cubic-bezier(.22,.68,.24,1) .85s forwards}
.hectare.play .lay.b3{animation:rise .6s cubic-bezier(.22,.68,.24,1) 1.1s forwards}
.hectare.play .lay.b4{animation:rise .6s cubic-bezier(.22,.68,.24,1) 1.35s forwards}
.hectare.play .lay.b5{animation:rise .6s cubic-bezier(.22,.68,.24,1) 1.6s forwards}
.hectare.play .lay.b6{animation:rise .6s cubic-bezier(.22,.68,.24,1) 1.85s forwards}
.hectare.play .g-basebrk{animation:appear .7s ease 2.2s forwards}
.hectare.play .lay.n1{animation:rise .6s cubic-bezier(.22,.68,.24,1) 3.1s forwards}
.hectare.play .lay.n2{animation:rise .6s cubic-bezier(.22,.68,.24,1) 3.35s forwards}
.hectare.play .lay.n3{animation:rise .6s cubic-bezier(.22,.68,.24,1) 3.6s forwards}
.hectare.play .g-newbrk{animation:appear .7s ease 4.0s forwards}
@media(prefers-reduced-motion:reduce){.hectare .lay,.hectare .g-basebrk,.hectare .g-newbrk{opacity:1!important;transform:none!important;animation:none!important}}
@media(max-width:900px){.vineyard-problem{grid-template-columns:minmax(0,1fr)}.vp-copy p{max-width:none}.hectare{margin-inline:calc(var(--pad) * -1);overflow-x:auto;-webkit-overflow-scrolling:touch}.hectare svg{min-width:720px;padding:0 var(--pad)}}

/* ─── V3: SERVICE — fee line replaces the facts row ──────────────── */
.stage-fee{grid-column:1;border-top:1px solid var(--line);padding-top:18px;margin-top:0;font-size:var(--t-lead);color:var(--bone)}
.stage-fee .mono{display:block;margin-bottom:8px}

/* ─── V3: THE COGNITIVE VINEYARD — project section + page ────────── */
.project-section{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px clamp(24px,3vw,40px)}
.project-head{grid-column:1/-1}
.project-head .section-top{margin-bottom:28px}
.project-head h2{margin:0 0 18px}
.project-head .lead{max-width:44ch}
.project-intro{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);margin-top:16px;max-width:none}
.project-intro p{max-width:none;font-size:var(--t-body)}
.project-goals{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);margin-top:36px;padding-top:32px;border-top:1px solid var(--line)}
.project-goals .work-heading h3{margin:18px 0 14px}
.goal-list{margin:0;padding:0;list-style:none;counter-reset:goal;border-top:1px solid var(--line)}
.goal-list li{counter-increment:goal;display:grid;grid-template-columns:2.4ch minmax(0,1fr);grid-template-areas:'n t' 'n d';gap:0 18px;padding:20px 0;border-bottom:1px solid var(--line)}
.goal-list li::before{grid-area:n}.goal-list strong{grid-area:t}.goal-list p{grid-area:d}
.goal-list li::before{content:counter(goal,decimal-leading-zero);font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--moss);padding-top:6px;font-variant-numeric:tabular-nums}
.goal-list strong{display:block;font-weight:400;font-size:19px;line-height:1.25;margin-bottom:8px;color:var(--bone)}
.goal-list p{margin:0;font-size:15.5px;line-height:1.55;max-width:60ch}
.project-section .research-timeline{grid-column:1/span 6;margin:36px 0 0;align-self:start}
.project-section .research-partners{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.project-section .research-partners h3{margin:12px 0 8px;font-size:var(--t-sub)}
.project-section .research-partners p{font-size:15px;max-width:30ch}
.project-implications{grid-column:7/span 6;margin-top:36px;order:0}
.project-implications .mono{display:block;margin-bottom:14px}
.project-implications p{font-size:var(--t-lead);line-height:1.45;max-width:none;color:var(--bone)}
.project-more{grid-column:1/-1;margin-top:24px}
@media(max-width:900px){.project-intro,.project-implications,.project-section .research-timeline{grid-column:1/-1}.project-intro{grid-template-columns:1fr}.project-goals{grid-template-columns:minmax(0,1fr);gap:24px}.project-section .research-partners{grid-template-columns:minmax(0,1fr)}.project-implications{margin-top:32px}}
/* project page blocks */
.project-block{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);border-top:1px solid var(--line)}
.project-block>.mono{display:block;margin-bottom:14px}
.project-block>h2{margin-bottom:28px}
.project-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.project-cols p{max-width:none}
.deliverable-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line);columns:2;column-gap:40px}
.deliverable-list li{break-inside:avoid;padding:16px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.55;color:var(--bone-2)}
.project-block.instrument-scene{display:grid}
@media(max-width:900px){.project-block.instrument-scene{grid-template-columns:minmax(0,1fr)}.project-block.instrument-scene>*{min-width:0}}
@media(max-width:900px){.project-cols{grid-template-columns:1fr}.deliverable-list{columns:1}}
.service-fiduciary{max-width:var(--w);margin:0 auto;padding:0 var(--pad) var(--s-section);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px)}
.service-fiduciary .mono{grid-column:1/-1;display:block}
.service-fiduciary .lead{max-width:none}
.service-fiduciary p:not(.lead){padding-top:6px}
@media(max-width:900px){.service-fiduciary{grid-template-columns:minmax(0,1fr)}}

/* long German eyebrows must wrap, never widen the page */
.mono,.section-top,.ledger-head{overflow-wrap:anywhere;min-width:0}
.section-top{flex-wrap:wrap}
@media(max-width:480px){.section-top .section-note{display:block;text-align:left}}

/* AGROSTASIS: the one green heading on the homepage (Jim, 13 Sep) */
main #agrostasis.platform-gateway .gateway-word h2{color:var(--moss)}
.gateway-how{margin-top:18px;font-size:var(--t-body);line-height:1.55;color:var(--bone-2);max-width:60ch}

/* ─── FORMATTING PASS (13 Sep, Jim's review) ─────────────────── */
.home-contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(28px,4vw,64px)}
.home-contact-copy{padding-top:8px}
.home-contact-copy p{max-width:48ch}
.home-contact-email{display:inline-block;margin-top:18px;font-size:var(--t-lead);color:var(--bone);text-decoration:none;border-bottom:1px solid var(--line-2)}
.home-page-link{display:inline-flex;gap:.45em;align-items:baseline;width:fit-content;border-bottom:1px solid var(--bone);padding-bottom:2px;font-size:14px}
.home-page-link span:last-child{opacity:.7}
.footer-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;align-items:center;gap:32px}
.footer-main p{margin:0;font-size:15px;color:var(--bone-2)}
.footer-main nav{display:flex;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.footer-base{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:18px var(--pad) 28px}
.footer-base>*:last-child{text-align:right}
.experience-mast .mono,.intro-side h2{max-width:none}
/* section chrome: same top rule + rhythm everywhere */
main>section:not(#top):not(#living-field):not(.after-field){border-top:1px solid var(--line)}

/* gateway links: left-aligned under the copy, not pinned right */
.platform-gateway .gateway-links{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:14px 28px;align-items:center}
.platform-gateway .gateway-caption p{align-self:flex-start}
.home-contact{padding-top:var(--s-section);padding-bottom:var(--s-section);gap:clamp(28px,4vw,64px)}
.home-contact h2{font-size:var(--t-section);margin-top:14px}
.home-contact-copy{justify-content:flex-start;gap:18px}
.home-contact-copy p{font-size:var(--t-lead)}
.home-contact-email{font-size:var(--t-lead)}

.service-stage .one-lv{font-size:11px}
.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;left:0;top:0}.skip-link:focus{width:auto;height:auto;clip:auto;clip-path:none;left:16px;top:16px;padding:8px 12px;background:var(--peat);z-index:99}

/* ─── ARC REBUILD (13 Sep) ───────────────────────────────────── */
.landing{color:var(--moss)!important;font-size:var(--t-sub)!important;font-weight:300;letter-spacing:-.015em;line-height:1.25;max-width:30ch;margin-top:30px!important;padding-top:22px;border-top:1px solid var(--line)}
.vp-copy p{font-size:var(--t-body);max-width:40ch;margin-top:18px}
.vp-copy h2{max-width:18ch}
.growing{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:start}
.growing-head h2{margin-top:14px;max-width:16ch}
.growing-copy p{font-size:var(--t-lead);max-width:46ch;line-height:1.45}
.growing-copy p+p{margin-top:20px}
.shift-landing{max-width:var(--w);margin:0 auto;padding:0 var(--pad) var(--s-section)!important;border-top:0!important;min-height:0}
.shift-landing{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,120px)}.shift-landing .landing{grid-column:2;margin-top:0!important}
#cognitive{padding-bottom:28px!important}
.gateway-caption .landing{margin-top:10px!important}
.platform-gateway .gateway-links{margin-top:6px}
.project-home{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:start}
.ph-head h2{margin-top:14px;max-width:16ch}
.ph-copy p{font-size:var(--t-lead);max-width:46ch;line-height:1.45}
.ph-copy p+p{margin-top:20px}
.ph-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:32px 0 0;padding-top:22px;border-top:1px solid var(--line)}
.ph-facts .mono{display:block;margin-bottom:8px;white-space:nowrap}
.ph-facts strong{font-weight:300;font-size:var(--t-sub);letter-spacing:-.02em;line-height:1.1;font-variation-settings:"wdth" 80}
.ph-copy .landing{margin-top:28px!important}
.ph-copy .home-page-link{margin-top:28px}
.stage-fee.landing{border-top:0;padding-top:0}
@media(max-width:900px){.growing,.project-home,.shift-landing{grid-template-columns:minmax(0,1fr)}.shift-landing .landing{grid-column:1}.ph-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:480px){.ph-facts{grid-template-columns:minmax(0,1fr)}}

.ph-head h2{max-width:14ch}
.vp-copy .landing,.growing-copy .landing,.stage-fee.landing{max-width:32ch}
@media(max-width:900px){.ph-facts .mono{white-space:normal}}

/* ─── FLOW CONSISTENCY (13 Sep, pass 2) ──────────────────────── */
/* every two-column narrative block shares one grid: 5/7 with the same gap */
.vineyard-problem,.growing,.project-home,.home-contact,.service-stage{grid-template-columns:minmax(0,5fr) minmax(0,7fr)!important;gap:clamp(28px,4vw,64px)!important;align-items:start!important}
.platform-gateway{grid-template-columns:minmax(0,5fr) minmax(0,7fr)!important;gap:clamp(28px,4vw,64px)!important}
/* right-column measure: one width */
.vp-copy p,.growing-copy p,.ph-copy p,.home-contact-copy p,.gateway-caption p,.stage-copy p{max-width:46ch!important}
.vp-copy p{font-size:var(--t-lead)}
/* landing lines: one size everywhere */
.landing{font-size:var(--t-lead)!important;font-weight:400;letter-spacing:0;line-height:1.4;max-width:40ch!important;margin-top:28px!important;padding-top:20px;border-top:1px solid var(--line)}
/* service handoff spans under both columns, aligned to the copy column */
.stage-fee.landing{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;margin-top:8px!important;max-width:none!important}
/* project headline: section scale, 4 lines max */
.ph-head h2{font-size:var(--t-section);max-width:14ch}
.ph-facts strong{font-size:22px}
.ph-facts .mono{font-size:11px!important}
/* AGROSTASIS footer strip: one axis, left aligned */
.platform-gateway .gateway-links{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:28px;margin-top:8px;padding-top:18px;border-top:1px solid var(--line)}
.platform-gateway .gateway-scroll{margin:0}
/* stage coverage text legible */
.service-stage .cov{font-size:16px}.service-stage .one-ll{font-size:17px}.service-stage .one-lv{font-size:12px}.service-stage .fee-n{font-size:34px}
/* manifesto gets the same eyebrow pattern */
#cognitive .intro-side::before{content:"The shift";display:block;font-size:var(--t-util);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--moss);margin-bottom:14px}
@media(max-width:900px){.vineyard-problem,.growing,.project-home,.home-contact,.service-stage,.platform-gateway{grid-template-columns:minmax(0,1fr)!important}}

#cognitive .intro-grid,.shift-landing{grid-template-columns:minmax(0,5fr) minmax(0,7fr)!important;gap:clamp(28px,4vw,64px)!important}
@media(max-width:900px){#cognitive .intro-grid,.shift-landing{grid-template-columns:minmax(0,1fr)!important}}

/* ─── MOBILE (13 Sep, pass 3) — placed LAST so it wins over every desktop !important above ─── */
@media(max-width:900px){
  .vineyard-problem,.growing,.project-home,.home-contact,.service-stage,.platform-gateway,#cognitive .intro-grid,.shift-landing{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:24px!important}
  .platform-gateway .gateway-word,.platform-gateway .gateway-caption,.shift-landing .landing,.stage-fee.landing,.vp-copy,.hectare,.growing-head,.growing-copy,.ph-head,.ph-copy,.home-contact>div{grid-column:1!important;min-width:0}
  .gateway-word h2{font-size:clamp(34px,10vw,44px)!important}
  .gateway-caption>p:first-child{margin-top:0}
  .vp-copy p,.growing-copy p,.ph-copy p,.home-contact-copy p,.gateway-caption p,.stage-copy p{max-width:none!important}
  .landing{max-width:none!important}
  /* hectare graphic: fit the viewport, no horizontal scroll */
  .hectare{margin-inline:0!important;overflow:visible!important}
  .hectare svg{min-width:0!important;width:100%!important;padding:0!important}
  .hectare .ll{font-size:22px}.hectare .lv{font-size:17px}.hectare .glbl{font-size:13px}.hectare .btxt,.hectare .btxtn{font-size:30px}.hectare .btxt2,.hectare .btxtn2{font-size:12.5px}
  .ph-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  /* footer stacks */
  .footer-main{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px!important;align-items:start!important}
  .footer-main>*{min-width:0}
  .footer-main nav{justify-content:flex-start!important;gap:12px 20px!important}
  .footer-base{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  .footer-base>*:last-child{text-align:left!important}
}
@media(max-width:480px){.ph-facts{grid-template-columns:minmax(0,1fr)!important}}

/* hectare on phones: SVG shows the slab stack only, the numbers become HTML */
.hectare-mobile{display:none}
@media(max-width:700px){
  .hectare{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .hectare svg{max-height:300px}
  .hectare .ll,.hectare .lv,.hectare .ldr,.hectare .g-basebrk,.hectare .g-newbrk,.hectare .glbl{display:none}
  .hectare-mobile{display:block;border-top:1px solid var(--line);padding-top:14px}
  .hectare-mobile ul{list-style:none;margin:0;padding:0}
  .hectare-mobile li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--bone)}
  .hectare-mobile li b{font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--bone-2)}
  .hm-head{margin-bottom:6px}
  .hm-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0 12px;border-bottom:1px solid var(--bone)}
  .hm-total strong{font-weight:300;font-size:34px;letter-spacing:-.03em;line-height:1;font-variation-settings:"wdth" 78}
  .hm-add li{color:var(--bone-2)}.hm-add li b{color:#a3502f}
  .hm-more{border-bottom:0;padding-bottom:0}.hm-more strong{color:#a3502f;font-size:26px}
}

/* ─── PASS 4 (Jim): AGROSTASIS thesis line, wide stage, fee row ── */
.gateway-caption .gateway-thesis{font-size:var(--t-sub)!important;line-height:1.2;letter-spacing:-.015em;font-weight:300;color:var(--bone);max-width:24ch!important;margin:0 0 6px}
/* service: copy row on top (5/7 with an empty right cell for rhythm), the stage on its own full-width row so the SVG can be ~1200px wide */
.service-stage-wide{grid-template-columns:minmax(0,5fr) minmax(0,7fr)!important;grid-template-rows:auto auto auto;align-items:start!important}
.service-stage-wide .stage-copy{grid-column:1;grid-row:1}
.service-stage-wide .stage{grid-column:1/-1;grid-row:2;margin-top:8px;width:100%}
.service-stage-wide .stage svg{width:100%;height:auto;display:block}
.service-stage-wide .stage-fee{grid-column:1/-1;grid-row:3}
/* the stage's own labels at full width */
.service-stage-wide .ll{font-size:17px}.service-stage-wide .lv{font-size:14px}.service-stage-wide .cov{font-size:15px}.service-stage-wide .one-ll{font-size:16px}.service-stage-wide .one-lv{font-size:11.5px}.service-stage-wide .fee-n{font-size:34px}.service-stage-wide .btxt{font-size:28px}
@media(min-width:1500px){.service-stage-wide .stage{max-width:1120px;margin-inline:auto}}
/* tablet band (700–1100): hectare labels collide with the stack; use the mobile HTML ledger there too */
@media(max-width:1100px){
  .hectare .ll,.hectare .lv,.hectare .ldr,.hectare .g-basebrk,.hectare .g-newbrk,.hectare .glbl{display:none}
  .hectare-mobile{display:block;border-top:1px solid var(--line);padding-top:14px}
  .hectare-mobile ul{list-style:none;margin:0;padding:0}
  .hectare-mobile li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--bone)}
  .hectare-mobile li b{font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--bone-2)}
  .hm-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0 12px;border-bottom:1px solid var(--bone)}
  .hm-total strong{font-weight:300;font-size:34px;letter-spacing:-.03em;line-height:1;font-variation-settings:"wdth" 78}
  .hm-add li{color:var(--bone-2)}.hm-add li b{color:#a3502f}
  .hm-more{border-bottom:0;padding-bottom:0}.hm-more strong{color:#a3502f;font-size:26px}
  .vineyard-problem{align-items:start!important}
  .hectare{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .hectare svg{max-height:360px}
}
@media(max-width:900px){.service-stage-wide .stage-copy,.service-stage-wide .stage,.service-stage-wide .stage-fee{grid-column:1!important}}

/* service copy spans the row: head left, body right, on the shared 5/7 grid; stage below full width */
.service-stage-wide .stage-copy{grid-column:1/-1!important;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:start}
.service-stage-wide .sc-head h2{margin-top:14px;max-width:16ch}
.service-stage-wide .sc-body p{font-size:var(--t-lead);max-width:46ch;line-height:1.45}
.service-stage-wide .sc-body p+p{margin-top:20px}
.service-stage-wide .sc-body .home-page-link{margin-top:24px}
.service-stage-wide .stage{margin-top:40px}
/* AGROSTASIS footer strip: left-aligned under the copy, one rule */
.platform-gateway .gateway-links{justify-content:flex-start!important;border-top:0!important;padding-top:0!important;margin-top:4px!important}
.gateway-caption .landing{border-top:1px solid var(--line)}
.home-contact-email{margin-top:6px}
@media(max-width:900px){.service-stage-wide .stage-copy{grid-template-columns:minmax(0,1fr)}.service-stage-wide .sc-body p{max-width:none}}

.platform-gateway .gateway-links{align-self:stretch!important;width:100%;margin-left:0!important}

/* ─── PHONE STAGE (Jim screenshot): full width, graphic above the before/after text ─── */
@media(max-width:700px){
  .service-stage-wide .stage,#home-stage,#service-page-stage{grid-column:1/-1!important;width:100%!important;max-width:none!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;justify-items:stretch;padding-bottom:44px}
  .service-stage .stage svg{grid-column:1!important;width:min(100%,360px)!important;height:auto!important;max-height:260px;margin:0 auto;display:block}
  .service-stage .stage-mobile{grid-column:1!important;width:100%;min-width:0}
  .stage-mobile strong{font-size:clamp(28px,8vw,36px)}
  .stage-mobile li{font-size:16px;hyphens:manual}
  .stage-mobile .mono{overflow-wrap:normal}
  .service-stage .stage .replay{left:auto;right:0;bottom:8px}
}

.supported-by{max-width:var(--w);margin:0 auto;padding:var(--s-section) var(--pad);border-top:1px solid var(--line)}
.supported-by .mono{color:var(--moss)}
.sb-marquee{margin-top:28px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.sb-track{display:flex;width:max-content;animation:sb-scroll 42s linear infinite}
.sb-marquee:hover .sb-track{animation-play-state:paused}
.sb-list{list-style:none;margin:0;padding:0;display:flex;gap:20px;padding-right:20px}
.sb-logo{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:10px;height:120px;padding:0 34px;background:#fff;border:1px solid var(--line);border-radius:6px}
.sb-logo img{height:56px;width:auto;max-width:240px;object-fit:contain}
.sb-logo.inno img:first-child{height:44px}
@keyframes sb-scroll{to{transform:translateX(-50%)}}
@media (max-width:600px){.sb-logo{height:88px;padding:0 22px}.sb-logo img{height:40px;max-width:170px}.sb-logo.inno img:first-child{height:32px}.sb-list{gap:12px;padding-right:12px}.sb-track{animation-duration:32s}}
@media (prefers-reduced-motion:reduce){.sb-marquee{-webkit-mask-image:none;mask-image:none}.sb-track{animation:none;width:auto}.sb-list{flex-wrap:wrap}.sb-list[aria-hidden]{display:none}}

/* Desktop: cost graphic stays right of the copy, wider column + larger labels */
@media(min-width:901px){
section.vineyard-problem{max-width:1440px;grid-template-columns:minmax(0,4fr) minmax(0,8fr)!important;align-items:center!important}
.vineyard-problem .vp-copy p{max-width:40ch!important}
.service-stage-wide .btxt2,.service-stage-wide .glbl,.service-stage-wide .p-lbl{font-size:12.5px}
}

/* Project page: title, Innosuisse line, then the collaboration */
.experience-mast .mast-sub{margin-top:18px;font-size:var(--t-sub);font-weight:300;letter-spacing:-.01em;color:var(--bone-2)}
.project-collab{max-width:var(--w);margin:0 auto;padding:0 var(--pad) var(--s-section)}
.project-collab .research-partners{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:20px;padding-top:28px;border-top:1px solid var(--line)}
.project-collab .research-partners h3{margin:12px 0 8px;font-size:var(--t-sub);color:var(--bone)}
.project-collab .research-partners p{font-size:15px;max-width:30ch}
.project-head h2{max-width:22ch}
@media(max-width:900px){.project-collab .research-partners{grid-template-columns:minmax(0,1fr);gap:24px}}

/* AGROSTASIS: Sense / Model / Act / Adapt tabs */
.platform-gateway .ag-tabs{grid-column:1/-1!important;margin-top:clamp(24px,4vw,48px);min-width:0}
.ag-tablist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-2);border-bottom:1px solid var(--line)}
.ag-tablist button{display:flex;align-items:baseline;gap:12px;padding:20px 8px 18px 0;text-align:left;color:var(--ash);border-top:3px solid transparent;margin-top:-2px;transition:color .2s,border-color .2s;min-height:44px}
.ag-tablist button:hover{color:var(--bone)}
.ag-tablist button[aria-selected=true]{color:var(--bone);border-top-color:var(--moss)}
.ag-tablist button:focus-visible{outline:2px solid var(--moss);outline-offset:2px}
.ag-n{font-size:var(--t-util);letter-spacing:.12em;color:var(--moss)}
.ag-l{font-size:var(--t-sub);font-weight:300;letter-spacing:-.02em;line-height:1}
.ag-panel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);padding:clamp(28px,4vw,48px) 0 0;min-height:260px}
.ag-panel[hidden]{display:none}
.ag-panel:focus-visible{outline:2px solid var(--moss);outline-offset:6px}
.ag-panel h3{font-size:var(--t-sub);font-weight:300;letter-spacing:-.02em;line-height:1.15;max-width:18ch;color:var(--bone)}
.ag-body p{font-size:var(--t-lead);line-height:1.45;max-width:52ch;color:var(--bone)}
.ag-body p+p,.ag-body p+ul{margin-top:18px}
.ag-body .ag-status{font-size:var(--t-util);letter-spacing:.12em;text-transform:uppercase;color:var(--moss)}
.ag-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.ag-grid li{padding:16px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.ag-grid strong{font-weight:500;font-size:17px;color:var(--bone)}
.ag-grid span{font-size:15px;color:var(--bone-2);line-height:1.4}
.ag-grid em{font-style:normal;font-size:var(--t-util);letter-spacing:.12em;text-transform:uppercase;color:var(--moss);margin-top:4px}
.ag-agents{grid-template-columns:minmax(0,1fr)}
@media(max-width:900px){.ag-panel{grid-template-columns:minmax(0,1fr);gap:18px;min-height:0}.ag-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.ag-tablist button{flex-direction:column;gap:6px;padding:14px 4px 12px 0}.ag-l{font-size:20px}}

/* Mobile tabs: 2x2 grid, clear active state, roomier agent list */
@media(max-width:600px){
.ag-tablist{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0}
.ag-tablist button{flex-direction:row;align-items:baseline;gap:10px;padding:14px 14px;margin:0;border:1px solid var(--line-2);border-radius:6px;background:transparent}
.ag-tablist button[aria-selected=true]{background:var(--moss);border-color:var(--moss);color:#fff}
.ag-tablist button[aria-selected=true] .ag-n{color:rgba(255,255,255,.75)}
.ag-l{font-size:19px}
.ag-panel{padding-top:24px;gap:14px}
.ag-panel h3{font-size:24px;max-width:none}
.ag-body p{font-size:17px}
.ag-grid li{padding:14px 0;gap:6px}
.ag-grid strong{font-size:17px;display:block}
.ag-grid span{display:block;font-size:15px}
.ag-grid em{display:block}
.platform-gateway .gateway-links{flex-direction:column!important;align-items:flex-start!important;gap:14px!important}
}

.ag-body p+.ag-grid{margin-top:24px}
@media(max-width:600px){.ag-body p+p{margin-top:14px}}

/* Mobile cost list: total on one line with its label underneath, unambiguous ranges */
@media(max-width:900px){
.hm-total{flex-direction:column;align-items:flex-start;gap:6px;padding:18px 0 14px}
.hm-total strong{white-space:nowrap;font-size:40px}
.hm-more{padding-top:16px}
.hm-more strong{font-size:30px}
.hectare-mobile li span{min-width:0}
.hm-add{margin-top:6px}
}

/* Service graphic: coloured supplier layers and ground instead of pale/white */
.service-stage .g-top{fill:#5a6138;fill-opacity:.65;stroke:#454a2b;stroke-width:1.4;stroke-opacity:.8}
.service-stage .g-side{fill:#454a2b;fill-opacity:.72}
.service-stage .lay.b1 .f-top{fill:#8c6d52;fill-opacity:.55;stroke:#6d5340}.service-stage .lay.b1 .f-side{fill:#6d5340;fill-opacity:.65}
.service-stage .lay.b2 .f-top{fill:#d3a84c;fill-opacity:.55;stroke:#ab873a}.service-stage .lay.b2 .f-side{fill:#ab873a;fill-opacity:.65}
.service-stage .lay.b3 .f-top{fill:#5e7a8e;fill-opacity:.55;stroke:#48606f}.service-stage .lay.b3 .f-side{fill:#48606f;fill-opacity:.65}
.service-stage .lay.n1 .f-top{fill:#8f6b74;fill-opacity:.55;stroke:#71535b}.service-stage .lay.n1 .f-side{fill:#71535b;fill-opacity:.65}
.service-stage .lay.n2 .f-top{fill:#a09079;fill-opacity:.55;stroke:#7c6d58}.service-stage .lay.n2 .f-side{fill:#7c6d58;fill-opacity:.65}
.service-stage .lay.n3 .f-top{fill:#77804c;fill-opacity:.55;stroke:#5c6339}.service-stage .lay.n3 .f-side{fill:#5c6339;fill-opacity:.65}
