
@font-face{font-family:"Fraunces";font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces.woff2) format("woff2-variations")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:200 900;src:url(/fonts/source-sans.woff2) format("woff2-variations")}
/* Layout: one flowing column per page, full-bleed photo bands and soft tinted waves between sections; no boxed cards. The fat-grade dial is the single bold moment. */
:root{
  --bg:#fbf9f4;--bg-2:#f3efe6;--bg-3:#eee8dc;--ink:#14241d;--ink-2:#3d4f46;--ink-3:#5d6962;--line:#e4dccc;--green:#1b5a45;--green-ink:#0f3d2e;--green-soft:#d5e5da;--husk:#0f3d2e;--husk-soft:#e6d6c4;--white:#ffffff;--deep:#1d3c30;--coral:#d65a40;--coral-ink:#a63c28;--shadow:0 18px 50px -24px rgba(20,36,29,.3);
  --f-display:"Fraunces","Iowan Old Style",Georgia,serif;
  --f-body:"Source Sans 3","Helvetica Neue",Arial,system-ui,sans-serif;
  --f-text:var(--f-body);
  --f-mono:var(--f-body);
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-io:cubic-bezier(.77,0,.175,1);
  --gutter-l:max(16px,env(safe-area-inset-left,0px)); --gutter-r:max(16px,env(safe-area-inset-right,0px));
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f1512;--bg-2:#16201b;--bg-3:#1b1a15;--ink:#eef1ea;--ink-2:#bcc5be;--ink-3:#8a958e;--line:#2a332e;--green:#86d3a2;--green-ink:#b4e8c6;--green-soft:#1d3a2a;--husk:#f3ead9;--husk-soft:#3a2d20;--white:#1a211c;--deep:#163327;--coral:#f08a70;--coral-ink:#f4a08a;--shadow:0 18px 50px -24px rgba(0,0,0,.7);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0f1512;--bg-2:#16201b;--bg-3:#1b1a15;--ink:#eef1ea;--ink-2:#bcc5be;--ink-3:#8a958e;--line:#2a332e;--green:#86d3a2;--green-ink:#b4e8c6;--green-soft:#1d3a2a;--husk:#f3ead9;--husk-soft:#3a2d20;--white:#1a211c;--deep:#163327;--coral:#f08a70;--coral-ink:#f4a08a;--shadow:0 18px 50px -24px rgba(0,0,0,.7);color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
img,svg{max-width:100%;display:block}
img{height:auto}
picture{display:contents}picture>source{display:none}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--f-display);color:var(--husk);font-weight:500;line-height:1.06;letter-spacing:-.012em;text-wrap:balance;margin:0}
h1{font-size:clamp(2.3rem,5vw,4.3rem);font-variation-settings:"opsz" 120}
h2{font-size:clamp(1.9rem,4.2vw,3.1rem);font-variation-settings:"opsz" 72}
h3,h4{font-family:var(--f-body);font-size:1.25rem;line-height:1.25;font-weight:600;letter-spacing:-.005em}
p{margin:0}
p,li,dd,figcaption,summary{text-wrap:pretty}
.lede{font-size:clamp(1.12rem,1.6vw,1.38rem);line-height:1.45;color:var(--ink-2);max-width:34em}
.eyebrow{font-family:var(--f-body);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink);font-weight:600;display:block}
.mono{font-variant-numeric:tabular-nums;font-weight:600}
.wrap{max-width:1180px;margin-inline:auto;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}
.stack{display:flex;flex-direction:column;gap:1.25rem}
.measure{max-width:62ch}
.muted{color:var(--ink-2)}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--bg)}
@supports not (background:color-mix(in srgb,red 50%,blue)){.nav{background:var(--bg)}}
.nav .wrap{display:flex;align-items:center;gap:1.5rem;min-height:68px}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--husk);font-family:var(--f-display);font-weight:500;font-size:1.5rem;letter-spacing:-.01em;text-decoration:none}
.brand:hover{text-decoration:none}
.brand svg{width:34px;height:34px;flex:none}
.brand small{display:block;font-family:var(--f-text);font-size:.82rem;letter-spacing:0;color:var(--ink-2);font-weight:500;margin-top:1px}
.menu{display:flex;gap:.2rem;margin-left:auto;list-style:none;padding:0;margin-block:0}
.menu a{display:block;padding:.55rem .8rem;border-radius:999px;color:var(--ink-2);font-weight:500;font-size:.94rem;transition:background 140ms ease,color 140ms ease;white-space:nowrap}
@media (hover:hover) and (pointer:fine){.menu a:hover{text-decoration:none;background:var(--bg-2);color:var(--ink)}}
.menu a[aria-current="page"]{background:var(--green);color:var(--btn-ink)}
.menu-btn{margin-left:auto;display:none;background:var(--bg-2);border:0;border-radius:999px;padding:.5rem .9rem;font:inherit;color:var(--ink);cursor:pointer;transition:transform 140ms var(--ease-out)}
.menu-btn:active{transform:scale(.97)}
#main:focus{outline:none}
.skip{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--deep);color:#fff;padding:.7rem 1rem;border-radius:999px;font-weight:600}.skip:focus{top:.75rem}
@media (max-width:960px){
  .menu-btn{display:inline-flex;align-items:center;gap:.5rem}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--line);padding:.5rem var(--gutter-l) 1rem var(--gutter-l);gap:.1rem;box-shadow:var(--shadow)}
  .menu.open{display:flex;animation:menuin 180ms var(--ease-out)}
  @keyframes menuin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .menu a{padding:.8rem .9rem;font-size:1.0625rem}
}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.35rem;border-radius:999px;background:var(--green);color:#fff;font-weight:600;font-size:1.0625rem;border:0;cursor:pointer;font-family:var(--f-body);transition:transform 160ms var(--ease-out),background 160ms ease;text-decoration:none;-webkit-appearance:none;appearance:none}
@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--green-ink);text-decoration:none}.btn.ghost:hover{background:var(--bg-2)}.linkarrow:hover::after{transform:translateX(3px)}}
.btn:active{transform:scale(.97)}
.btn.ghost{background:var(--bg-2);color:var(--ink)}
.btn svg{width:18px;height:18px}
.btn:disabled{opacity:.55;cursor:default;transform:none}
.linkarrow{font-weight:600;display:inline-flex;align-items:center;gap:.4rem}
@media (pointer:coarse){.linkarrow,.news .src,a[href^="tel:"]{padding-block:.6rem;margin-block:-.6rem}}
.linkarrow::after{content:"→";transition:transform 160ms var(--ease-out)}

/* pages + transitions */
.page{display:none}
#page-home{display:block}
.js .page:not(.active),.js #page-home:not(.active){display:none}
.page.active{display:block;animation:pagein 260ms var(--ease-out)}
.page.active.noanim{animation:none}
@keyframes pagein{from{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}
.stagger>*{animation:rise 420ms var(--ease-out) both}
.stagger>*:nth-child(2){animation-delay:50ms}.stagger>*:nth-child(3){animation-delay:100ms}.stagger>*:nth-child(4){animation-delay:150ms}.stagger>*:nth-child(5){animation-delay:200ms}.stagger>*:nth-child(6){animation-delay:250ms}.stagger>*:nth-child(7){animation-delay:300ms}.stagger>*:nth-child(8){animation-delay:350ms}
@keyframes rise{from{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.page.active,.stagger>*,.pulse{animation:none}.btn,.menu a,.linkarrow::after,.trio .pouch{transition:none}html{scroll-behavior:auto}}

/* sections */
section{padding-block:clamp(3.2rem,8vw,6.5rem)}
.band{background:var(--bg-2)}
.band.husk{background:var(--bg-3)}
.band.deep{background:var(--deep);color:#eaf5ec}
.band.deep h2,.band.deep h3{color:#fff}
.band.deep .lede,.band.deep p{color:rgba(255,255,255,.85)}
.band.deep .eyebrow{color:#f2b9a8}
.wave{display:block;width:100%;height:clamp(28px,5vw,64px);color:var(--bg-2);margin-bottom:-1px;position:relative;z-index:1}
.wave.husk{color:var(--bg-3)}
.wave.deep{color:var(--deep)}
.wave.flip{transform:scaleY(-1);margin-bottom:0;margin-top:-1px}
.wave svg{display:block;width:100%;height:100%}

/* hero */
.hero{padding-block:clamp(2.2rem,6vw,5rem) 0;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:center}.packshot{display:grid;place-items:center;background:var(--bg-3);border-radius:28px;padding:2rem}.packshot .pouch{width:min(100%,360px);height:auto;display:block}@media (min-width:901px){.hero.contacthero .wrap{grid-template-columns:1fr 1.05fr}}
.hero.simple .wrap{display:flex;flex-direction:column}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}
.facts{display:flex;flex-wrap:wrap;gap:1.5rem 2.6rem;margin-top:2.4rem}
.facts div b{display:block;font-family:var(--f-display);font-size:1.5rem;color:var(--husk);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.facts div>span{color:var(--ink-3);font-size:.94rem}.facts b span{font:inherit;color:inherit}
.hero-art{position:relative;max-width:100%}.art-in{position:relative}
@media (min-width:901px){.hero.home .wrap{position:relative}.hero.home .hero-art{position:static}.hero.home .hero-art .trio{left:calc(var(--gutter-l) + 2.5rem + (100% - var(--gutter-l) - var(--gutter-r) - 2.5rem) * .58);bottom:0}}
@media (min-width:901px) and (max-width:1199px){.hero.home .wrap .facts{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:1.5rem}.hero.home .wrap .facts div b{white-space:normal}.hero.home .hero-art .trio{left:calc(var(--gutter-l) + 2.5rem + (100% - var(--gutter-l) - var(--gutter-r) - 2.5rem) * .6 + 1rem)}}
.hero-art canvas{position:absolute;left:-40%;top:-30%;width:180%;height:168%;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 52%,#000 58%,transparent 86%);mask-image:radial-gradient(ellipse 50% 50% at 50% 52%,#000 58%,transparent 86%);opacity:0;transition:opacity 900ms ease;pointer-events:none}
.hero-art.ready canvas{opacity:1}
.hero-art.ready .main{opacity:0;transition:opacity 900ms ease}
.use3d .hero-art .main{background:var(--bg-3);box-shadow:none}.use3d .hero-art .main img{opacity:0}.use3d .hero-art canvas{transition-duration:600ms}
.hero-art .badge,.hero-art .trio{z-index:2}
.hero-art .main{border-radius:36% 64% 58% 42% / 44% 38% 62% 56%;overflow:hidden;aspect-ratio:1/0.92}
.hero-art .main img{width:100%;height:100%;object-fit:cover}
.hero-art .trio{position:absolute;left:-9%;bottom:-46%;display:flex;gap:1rem;align-items:flex-end}
.hero-art .trio .carton{width:clamp(136px,14.5vw,212px);height:auto;display:block;margin-left:-4.2rem;margin-bottom:.2rem;position:relative;z-index:0;filter:drop-shadow(0 18px 22px rgb(27 33 29 / .14))}
.hero-art .trio>svg{flex:none}.hero-art .trio .pouch{position:relative;z-index:1}
.hero-art .trio .pouch.bulk{width:clamp(112px,11.5vw,166px)}
.hero.home .hero-art{margin-bottom:clamp(7rem,13vw,11rem)}
@media (min-width:901px){.hero.home{padding-bottom:clamp(2.5rem,4vw,3.5rem)}}
@media (max-width:900px){.hero-art .trio{bottom:-30%;left:0;gap:.5rem}.hero-art .trio .carton{margin-left:-2.6rem}.hero.home .hero-art{margin-bottom:7.5rem}}
.hero-art .trio .pouch{width:clamp(84px,8.6vw,124px);height:auto;display:block;transition:transform 260ms var(--ease-out)}
.hero-art .trio .pouch:nth-child(1){transform:rotate(-6deg)}
.hero-art .trio .pouch:nth-child(2){transform:rotate(2deg)}
@media (hover:hover) and (pointer:fine){.hero-art .trio .pouch:hover{transform:translateY(-14px) scale(1.06)}}
.hero-art .badge{position:absolute;right:2%;top:4%;background:var(--white);color:var(--green-ink);border-radius:999px;padding:.55rem .9rem;font-size:.94rem;font-weight:600;display:flex;align-items:center;gap:.45rem}
.hero-art .badge svg{width:16px;height:16px}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:2.2rem}.hero-art{max-width:520px;width:100%;margin-inline:auto;margin-bottom:1.5rem}.hero-art canvas{top:-44%;height:160%}}

/* vegan statement band */
.vegan{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center}.vegan.three{grid-template-columns:.7fr 1fr 1fr;gap:2.5rem}@media (max-width:900px){.vegan.three{grid-template-columns:1fr}.vegan.three .photo{max-width:320px}}
.vegan h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
.vegan ul{list-style:none;padding:0;margin:0;display:grid;gap:.9rem}
.vegan li{display:flex;gap:.8rem;align-items:flex-start;font-size:1.0625rem}
.vegan li svg{width:26px;height:26px;flex:none;color:#bfe6c9;margin-top:2px}
@media (max-width:860px){.vegan{grid-template-columns:1fr;gap:2rem}}

/* flowing feature list */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 3rem}
.flow>div{display:flex;flex-direction:column;gap:.6rem;min-width:0}
.flow svg.ic{width:44px;height:44px;color:var(--green)}
.flow p{color:var(--ink-2);font-size:1.0625rem}
@media (max-width:860px){.flow{grid-template-columns:1fr 1fr;gap:2rem}}
@media (max-width:540px){.flow{grid-template-columns:1fr}}

/* split with photo */
.split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.split>*{min-width:0}
.split.rev>.photo,.split.rev>.art{order:-1}
.photo{border-radius:28px;overflow:hidden;aspect-ratio:4/3;max-width:100%}
.photo.tall{aspect-ratio:3/4}
.photo.wide{aspect-ratio:16/10}
.photo img{width:100%;height:100%;object-fit:cover}.photo.illo{background:#fff}
.art{border-radius:28px;background:var(--white);padding:clamp(1.2rem,3vw,2.2rem);max-width:100%}
.art svg{width:100%;height:auto}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:2rem}.split.rev>.photo,.split.rev>.art{order:0}}

/* full-bleed photo band */
.bleed{position:relative;min-height:420px;display:grid;align-items:end;color:#fff;overflow:hidden}
.bleed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,14,.58) 0%,rgba(10,20,14,.24) 65%,rgba(10,20,14,.06) 100%),linear-gradient(to top,rgba(10,20,14,.86) 0%,rgba(10,20,14,.56) 55%,rgba(10,20,14,.32) 100%)}
.bleed .wrap{position:relative;z-index:1;padding-block:3rem}
.bleed h1,.bleed h2,.bleed p{color:#fff}
.bleed .lede{color:rgba(255,255,255,.86)}
.bleed .eyebrow{color:#bfe6c9}

/* grade dial */
.dial{background:var(--white);border-radius:32px;padding:clamp(1.3rem,3vw,2.6rem)}
.dial-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.dial-val{font-family:var(--f-display);font-size:clamp(2.8rem,7vw,5.2rem);line-height:1;color:var(--husk);font-weight:500;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.dial-val small{font-size:1.25rem;color:var(--ink-2);font-weight:500;letter-spacing:0;margin-left:.2em;font-family:var(--f-text)}
.scale{position:relative;margin-top:1.4rem;padding-bottom:2.2rem}
.scale input{width:100%;margin:0;-webkit-appearance:none;appearance:none;height:14px;border-radius:999px;background:linear-gradient(90deg,#f1ead9,#dcc19a 45%,#b98a56 80%,#8c5a31);outline:none;cursor:pointer}
.scale input::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--green);border:4px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform 160ms var(--ease-out)}
.scale input::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--green);border:4px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.scale input:active::-webkit-slider-thumb{transform:scale(1.12)}
.ticks{position:absolute;left:0;right:0;top:26px;height:1.6rem}
.ticks span{position:absolute;transform:translateX(-50%);font-size:.82rem;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.ticks span.hot{color:var(--green);font-weight:500}
.ticks span.hot::before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--green);margin:0 auto 3px}
.dial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem 2rem;margin-top:2.2rem}
.dial-grid>div{min-width:0}
.dial-grid b{display:block;font-size:.94rem;letter-spacing:0;color:var(--ink-2);font-weight:600;margin-bottom:.25rem}
.dial-grid span{font-size:1.0625rem}
.dial-grid .yes{color:var(--green);font-weight:600}
.dial-cta{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.grades{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{font-family:inherit;font-size:.94rem;font-weight:500;padding:.5rem .9rem;border:0;border-radius:999px;background:var(--bg-2);color:var(--ink);cursor:pointer;transition:background 140ms ease,border-color 140ms ease,transform 140ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.chip:hover{background:var(--green-soft)}}
.chip:active{transform:scale(.96)}
.chip.on:active{transform:none}
.chip.on{background:var(--green);color:var(--btn-ink);border-color:var(--green)}
.band .chip:not(.on),.bleed .chip:not(.on){background:var(--bg)}
@media (max-width:640px){.dial-grid{grid-template-columns:1fr}.ticks span:not(.hot){display:none}}

/* product rows */
.prow{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding-block:3rem}
.prow>*{min-width:0}
.prow#maltofree{border-top:0;padding-top:1rem}
.prow .packs{display:flex;gap:1.2rem;justify-content:center;align-items:flex-end}
.prow .packs .pouch{width:40%;max-width:210px;height:auto;display:block;transition:transform 220ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.prow .packs .pouch:hover{transform:translateY(-6px)}}
.spec{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.2rem;font-size:1.0625rem;margin-top:.5rem}
.spec dt{font-size:.94rem;color:var(--ink-2);font-weight:600;padding-top:.15rem}
.spec dd{margin:0;min-width:0}
@media (max-width:860px){.prow{grid-template-columns:1fr;gap:1.5rem}}

/* applications icons */
.uses{display:grid;grid-template-columns:1fr 1fr;gap:.45rem 2rem;list-style:none;padding:0;margin:0;font-weight:600;color:var(--ink)}.uses li{padding:.35rem 0}
.apps div{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.94rem;color:var(--ink-2)}
.apps svg{width:54px;height:54px;color:var(--green)}

/* creamer trio */
.trio-cards{display:grid;grid-template-columns:1fr;gap:1.2rem}
.tc{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.tc .lvl{display:flex;gap:4px;margin-bottom:.3rem}
.tc .lvl i{width:22px;height:8px;border-radius:999px;background:var(--line)}
.tc .lvl i.on{background:var(--husk)}
.tc p{color:var(--ink-2);font-size:1.0625rem}
@media (max-width:760px){.trio-cards{grid-template-columns:1fr}}

/* process steps */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;position:relative}
.steps::before{content:"";position:absolute;left:4%;right:4%;top:34px;border-top:2px dashed var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease-out)}
.steps.in::before{transform:scaleX(1)}
.step{position:relative;display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;min-width:0}
.step .ic{width:68px;height:68px;border-radius:50%;background:var(--white);display:grid;place-items:center;color:var(--green);position:relative;z-index:1}
.step .ic svg{width:34px;height:34px}
.step h3{font-size:1.25rem}
.step p{font-size:.94rem;color:var(--ink-2)}
@media (max-width:980px){.steps{grid-template-columns:repeat(2,1fr)}.steps::before{display:none}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* certification grid */
.certs{display:grid;grid-template-columns:repeat(4,1fr);gap:3rem 2.2rem}
.cert{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.cert .logo{height:64px;display:flex;align-items:center;justify-content:flex-start;gap:.75rem;margin-bottom:.6rem}
.cert .logo img{height:auto;max-height:56px;width:auto;max-width:min(100%,190px);object-fit:contain;object-position:left center}
.cert b{font-family:var(--f-body);font-size:1.25rem;color:var(--husk);font-weight:600;line-height:1.2}
.cert span{color:var(--ink-2);font-size:.94rem}
.cert small{font-size:.82rem;color:var(--ink-2);letter-spacing:0}
@media (max-width:900px){.certs{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.certs{grid-template-columns:1fr}}

/* lab gallery */
.gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:1rem}.gallery.materials{grid-template-columns:1fr 1fr 1fr;margin-top:2.5rem}.gallery.materials .photo{aspect-ratio:4/3;height:auto;min-height:0}
.gallery .photo{aspect-ratio:auto;height:100%;min-height:240px;border-radius:22px}.gallery.illos{grid-template-columns:1fr 1fr;align-self:start}.gallery.illos>:first-child{grid-column:1/-1;aspect-ratio:9/7}.gallery.illos>.photo{height:auto;min-height:0}.gallery.illos>:not(:first-child){aspect-ratio:3/4}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr}.gallery>:first-child{grid-column:1/-1}}
@media (max-width:760px){.gallery.materials{grid-template-columns:1fr;margin-top:2rem}.gallery.materials>:not(:first-child){display:none}}

/* map */
.mapwrap{position:relative}
.mapwrap svg{width:100%;height:auto}
.mapwrap .land{fill:color-mix(in srgb,var(--green) 18%,var(--bg-2));stroke:none}
@supports not (background:color-mix(in srgb,red 50%,blue)){.mapwrap .land{fill:var(--green-soft)}}
.mapwrap .route{fill:none;stroke:var(--green);stroke-width:1.1}
.mapwrap .dot{fill:var(--green);stroke:var(--bg);stroke-width:2}
.mapwrap .home{fill:var(--husk);stroke:var(--bg);stroke-width:2}
.mapwrap .pulse{fill:none;stroke:var(--husk);stroke-width:1.5;transform-origin:center;transform-box:fill-box;animation:pulse 2.4s var(--ease-out) infinite}
@keyframes pulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.mapwrap text{font-family:var(--f-text);font-size:.82rem;fill:var(--ink-2)}
.markets{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.markets span{font-size:.94rem;padding:.45rem .85rem;border-radius:999px;background:var(--white);color:var(--ink)}
.js .mapwrap:not(.in) + .markets span{opacity:0;transform:translateY(6px) scale(.92)}
.mapwrap.in + .markets span{opacity:0;animation:chip 420ms var(--ease-out) forwards;animation-delay:calc(var(--i,0) * 90ms + 900ms)}
@keyframes chip{from{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:1;transform:none}}

/* faq */
.faq{max-width:820px;display:grid}.faqsplit{align-items:start}.faqsplit>.photo{position:sticky;top:96px}
.faq details{padding:.2rem 0}.faq details+details{margin-top:.2rem}
.faq summary{cursor:pointer;list-style:none;padding:1.05rem 2.2rem 1.05rem 0;font-family:var(--f-body);font-size:1.25rem;font-weight:600;color:var(--husk);position:relative;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary{transition:color 140ms ease}
.faq summary:active{color:var(--green-ink)}
.faq details[open] p{animation:rise 240ms var(--ease-out) both}
.faq summary::after{content:"+";position:absolute;right:.2rem;top:.95rem;font-weight:400;color:var(--green);font-size:1.5rem;line-height:1;transition:transform 180ms var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 2.2rem 1.2rem 0;color:var(--ink-2);max-width:68ch}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start}
.contact>*{min-width:0}
.form{display:grid;gap:1rem}
.form label{display:grid;gap:.35rem;font-size:.94rem;color:var(--ink-2);font-weight:500}
.form input,.form select,.form textarea{font:inherit;font-size:1.0625rem;padding:.8rem .95rem;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);width:100%;min-width:0;-webkit-appearance:none;appearance:none}
.form select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.4rem}
.form textarea{min-height:130px;resize:vertical}
.form input,.form select,.form textarea,.capture input{transition:border-color 140ms ease,box-shadow 140ms ease}
.form input:focus,.form select:focus,.form textarea:focus,.capture input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form .note{font-size:.94rem;color:var(--ink-3)}
.archive{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.5rem}.archive li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.9rem 1.15rem;background:var(--bg-2);border-radius:14px}.archive a{font-weight:600}.archhead{font-size:clamp(1.35rem,2.2vw,1.65rem)}.archive time,.meta{color:var(--ink-2);font-size:.94rem}.archive time{white-space:nowrap}.post blockquote{margin:.4rem 0;padding:0 0 0 1.2rem;font-family:var(--f-display);font-size:1.25rem;line-height:1.4;color:var(--green-ink)}@media (max-width:560px){.archive li{flex-direction:column;gap:.2rem}}
.policy p,.policy blockquote{max-width:66ch}.post .photo{margin-bottom:.6rem}
.policy h2{font-size:clamp(1.35rem,2.2vw,1.65rem)}.policy .stack{gap:.7rem}#page-privacy .hero.simple .wrap,[id^="page-post"] .hero.simple .wrap{text-align:left;align-items:flex-start}#page-privacy .hero.simple .lede,[id^="page-post"] .hero.simple .lede{margin-inline:0}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.note.err,.capture .done.err{color:#9a2b1e;font-weight:500}
.form .ok{padding:1rem 1.2rem;border-radius:14px;background:var(--green-soft);color:var(--green-ink);font-weight:500;animation:rise 260ms var(--ease-out) both}
.cl{display:grid;gap:1.6rem}
.cl h3{font-size:1.25rem}
.cl .copy{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.cl .copy .mono{font-size:1.0625rem}
.cl button.cp{font:inherit;font-size:.82rem;padding:.3rem .75rem;min-height:36px;min-width:44px;border-radius:999px;border:0;background:var(--bg-2);color:var(--ink-2);cursor:pointer;transition:transform 120ms var(--ease-out),background 140ms ease}
.cl button.cp:active{transform:scale(.96)}
.cl p{color:var(--ink-2)}
@media (max-width:860px){.contact{grid-template-columns:1fr}.form .row{grid-template-columns:1fr}}

/* footer */
footer{padding-block:3.5rem 2.5rem;background:var(--bg-2);font-size:.94rem;color:var(--ink-2)}
footer .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
footer a{color:var(--ink-2)}
footer .legal{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.5rem;color:var(--ink-2);font-size:.94rem}
@media (max-width:760px){footer .wrap{grid-template-columns:1fr 1fr}footer .wrap>:first-child{grid-column:1/-1}}
/* v4 motion: scroll reveal, count-up, map draw, parallax */
.rv{opacity:0;transform:translateY(12px);transition:opacity 520ms var(--ease-out),transform 520ms var(--ease-out);transition-delay:calc(var(--i,0) * 50ms)}
.rv.in{opacity:1;transform:none}
.art-in{will-change:transform}
.mapwrap .route{stroke-dasharray:none;opacity:0;transition:opacity 500ms ease}
.mapwrap:not(.in) .dot{animation:none;opacity:0;transform:scale(.3)}
.mapwrap.in .route{opacity:.5;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1800ms var(--ease-out) forwards;animation-delay:calc(var(--i,0) * 90ms)}
@keyframes draw{to{stroke-dashoffset:0}}
.mapwrap .dot,.mapwrap text.lbl{transform-origin:center;transform-box:fill-box;opacity:0;transform:scale(.3)}
.mapwrap.in .dot,.mapwrap.in text.lbl{animation:pop 420ms var(--ease-out) forwards;animation-delay:calc(var(--i,0) * 90ms + 900ms)}
@keyframes pop{to{opacity:1;transform:scale(1)}}
.mapwrap text{font-family:var(--f-text);font-size:.82rem;fill:var(--ink-2)}
.mapwrap text.origin{font-weight:500;fill:var(--husk);font-size:.82rem}
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem .6rem .8rem;border-radius:999px;background:var(--green-soft);color:var(--green-ink);font-weight:600;font-size:.94rem;align-self:flex-start;transition:transform 160ms var(--ease-out),background 160ms ease}
@media (hover:hover) and (pointer:fine){.pill:hover{text-decoration:none;background:color-mix(in srgb,var(--green-soft) 80%,var(--green))}.pill:hover span{transform:translateX(3px)}}
.pill:active{transform:scale(.97)}
.pill svg{width:18px;height:18px}
.pill span{transition:transform 160ms var(--ease-out)}

/* spray dryer explainer */
.dryer{background:var(--white);border-radius:28px;padding:clamp(.8rem,2vw,1.8rem)}
.dryer svg{width:100%;height:auto;display:block}
.dryer .hint{display:none;font-size:.82rem;color:var(--ink-2);text-align:center;padding:.4rem 0 .2rem}
@media (max-width:700px){.dryer{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.dryer svg{min-width:760px}.dryer .hint{display:block;position:sticky;left:0}}
.dryer .flowline{stroke-dashoffset:0}
.dryer.run .flowline{animation:flow 1.1s linear infinite}
.dryer.run .flowline.moist{animation-duration:.9s}
@keyframes flow{to{stroke-dashoffset:-13}}
.dryer.run .hotair path{stroke-dasharray:6 6;animation:flow .6s linear infinite}
.dryer.run .swirl path{animation:flow 1.6s linear infinite}
.dryer.run .rotor{animation:spin 1.6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dryer .coil{stroke-dasharray:8 6}
.dryer.run .coil{animation:flow .8s linear infinite}
.dryer .vapour path{opacity:0}
.dryer.run .vapour path{animation:vap 2.4s ease-out infinite}
.dryer.run .vapour path:nth-child(2){animation-delay:.5s}.dryer.run .vapour path:nth-child(3){animation-delay:1s}
@keyframes vap{0%{opacity:0;transform:translateY(8px)}30%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}
.dryer .bub{opacity:0}
.dryer.run .bub{animation:bub 1.4s ease-out infinite}
@keyframes bub{0%{opacity:0;transform:translateY(8px) scale(.6)}30%{opacity:1}100%{opacity:0;transform:translateY(-22px) scale(1.2)}}
.legend{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem 2rem}
.legend>div{display:flex;gap:.8rem;align-items:flex-start;min-width:0;font-size:.94rem;color:var(--ink-2)}
.legend b{flex:none;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:.82rem;font-weight:600}
@media (max-width:860px){.legend{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.legend{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.dryer.run *{animation:none!important}}

.dial-lead{display:flex;align-items:center;gap:1.2rem}
.gauge{width:clamp(84px,10vw,120px);height:auto;flex:none}
#gaugeArc{transition:stroke-dasharray 240ms var(--ease-out)}

.art .ring{transform-origin:center;transform-box:fill-box;transform:scale(.55);opacity:0}
.rv.in.art .ring,.rv.in .art .ring{animation:pop 700ms var(--ease-out) forwards}
.rv.in.art .ring:nth-child(2),.rv.in .art .ring:nth-child(2){animation-delay:90ms}.rv.in.art .ring:nth-child(3),.rv.in .art .ring:nth-child(3){animation-delay:180ms}.rv.in.art .ring:nth-child(4),.rv.in .art .ring:nth-child(4){animation-delay:270ms}
.dr{stroke-dasharray:1;stroke-dashoffset:1}
.rv.in .dr{animation:draw 1s var(--ease-out) forwards;animation-delay:120ms}
@media (prefers-reduced-motion:reduce){.art .ring{transform:none;opacity:1;animation:none}.dr{stroke-dasharray:none;stroke-dashoffset:0;animation:none}}
/* why powder */
.why{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem 3rem}.stack>.btn{align-self:flex-start}.why.one{grid-template-columns:1fr;gap:1.3rem}.why.one>div{display:block}.why.one>div>h3+p{margin-top:.3rem}
.why>div{display:flex;gap:1rem;align-items:flex-start;min-width:0}
.why>div::before{content:none}
.why h3{font-size:1.25rem;margin-bottom:.3rem}
.why p{color:var(--ink-2);font-size:1.0625rem}
@media (max-width:640px){.why{grid-template-columns:1fr}}
/* spec capture */
.capture{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1.4rem;padding:1rem 1.1rem;border-radius:20px;background:var(--bg-2)}
.capture label{flex:1 1 240px;display:grid;gap:.3rem;font-size:.82rem;color:var(--ink-2);font-weight:500}
.capture input{font:inherit;font-size:1.0625rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);width:100%;-webkit-appearance:none;appearance:none}
.capture .btn{flex:none;align-self:end}
.capture .done{flex:1 1 100%;color:var(--green-ink);font-weight:500;animation:rise 260ms var(--ease-out) both}
/* documents list */
.docgroups{display:grid;grid-template-columns:1fr 1fr;gap:2rem 3rem}
.docgroups>div{min-width:0}
.docgroups h3{margin-bottom:.6rem}
.docs{display:grid;grid-template-columns:1fr;gap:0;list-style:none;padding:0;margin:0}
.docs li{display:flex;gap:.7rem;align-items:flex-start;padding:.6rem 0;font-size:1.0625rem;min-width:0}
.docs li svg{width:22px;height:22px;flex:none;color:var(--green);margin-top:2px}
.docs li small{display:block;color:var(--ink-3);font-size:.82rem}
@media (max-width:760px){.docgroups{grid-template-columns:1fr}}
/* logistics figures */
.ship{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem 2rem}
.ship>div{min-width:0;padding-top:1rem;border-top:2px solid var(--green-soft)}
.ship b{display:block;font-family:var(--f-display);font-size:clamp(1.8rem,3vw,2.4rem);color:var(--husk);font-weight:500;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.ship b small{font-size:1.0625rem;color:var(--ink-2);font-weight:500;margin-left:.2em;font-family:var(--f-text)}
.ship span{display:block;color:var(--ink-2);font-size:.94rem;margin-top:.4rem}
@media (max-width:760px){.ship{grid-template-columns:1fr 1fr}}
/* sustainability metrics */
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem 2.5rem}
.metrics>div{min-width:0;display:flex;flex-direction:column;gap:.4rem}
.metrics b{font-family:var(--f-display);font-size:clamp(2.2rem,4.5vw,3.4rem);color:var(--husk);font-weight:500;letter-spacing:-.025em;line-height:1;font-variant-numeric:tabular-nums}
.metrics b small{font-size:1.0625rem;color:var(--ink-2);font-weight:500;letter-spacing:0;margin-left:.2em;font-family:var(--f-text)}
.metrics>div>span{color:var(--ink-2);font-size:1.0625rem}.metrics b span{font:inherit;color:inherit}
.metrics small.src{font-size:.82rem;color:var(--ink-2);letter-spacing:0}
@media (max-width:760px){.metrics{grid-template-columns:1fr}}
.apps{grid-template-columns:repeat(7,1fr)}
@media (max-width:900px){.apps{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.apps{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.menu.open,.faq details[open] p,.form .ok,.capture .done{animation:none}.mapwrap .route,.mapwrap.in .route{opacity:.5;animation:none;stroke-dasharray:4 4;stroke-dashoffset:0}.mapwrap .dot,.mapwrap text.lbl,.mapwrap.in .dot,.mapwrap.in text.lbl{opacity:1;transform:none;animation:none}.js .mapwrap + .markets span,.mapwrap.in + .markets span{opacity:1;transform:none;animation:none}}
.preview-tag{position:fixed;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:55;font-size:.82rem;letter-spacing:0;background:var(--deep);color:#fff;padding:.45rem .8rem;border-radius:999px;opacity:.92;pointer-events:none}

/* ===== v32 merge: serif catchphrase, range, facility, R&D, CTA bands, news ===== */
:root{--btn-ink:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--btn-ink:#0f1512}}
:root[data-theme="dark"]{--btn-ink:#0f1512}
.btn{color:var(--btn-ink)}
.bleed video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero.home::before{content:"";position:absolute;width:560px;height:560px;right:-220px;top:-40px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--coral) 16%,transparent),transparent 65%);pointer-events:none}
.hero .wrap>.stack{position:relative;z-index:2}
.hero.home .stagger>h1,.hero .stagger>.lede,.bleed .lede{animation:slide 560ms var(--ease-out) both}.hero .stagger>.lede,.bleed .lede{animation-delay:70ms}
@keyframes slide{from{transform:translateY(12px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.hero.home .stagger>h1,.hero .stagger>.lede,.bleed .lede{animation:none}}
@media (min-width:901px){.hero.home .facts{display:grid;grid-template-columns:max-content max-content max-content;gap:1.2rem 2.4rem}.hero.home .facts div b{font-size:1.5rem;white-space:nowrap}.hero.home .facts div>span{display:block;max-width:12em}}
.hero.home h1{font-size:clamp(2.7rem,6.4vw,5.6rem);line-height:.98;letter-spacing:-.02em}
.hero.home h1 .leafw{color:var(--green)}
.hero.home h1 .accent{color:var(--coral);position:relative;display:inline-block;white-space:nowrap;padding-right:.04em}
.hero.home h1 .accent svg{position:absolute;left:-2%;width:104%;bottom:-.16em;height:.26em;overflow:visible;pointer-events:none}
.hero.home h1 .accent path{fill:none;stroke:var(--coral);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:uline 900ms 420ms var(--ease-out) forwards}
@keyframes uline{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.hero.home h1 .accent path{animation:none;stroke-dashoffset:0}}
.sechead{display:flex;flex-direction:column;gap:.7rem;max-width:44rem;margin-bottom:clamp(1.8rem,4vw,2.8rem)}
.sechead>.btn{align-self:flex-start;margin-top:.4rem}
.sechead.row{max-width:none;flex-direction:row;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;flex-wrap:wrap}
.sechead.row>div{display:flex;flex-direction:column;gap:.7rem;max-width:40rem}
/* product range */
.range{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
.range.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.range.five{grid-template-columns:repeat(6,minmax(0,1fr))}.range.five>.prod{grid-column:span 2}.range.five>.prod:nth-child(-n+2){grid-column:span 3}

@media (max-width:760px){.range.five{grid-template-columns:1fr}.range.five>.prod,.range.five>.prod:nth-child(-n+2){grid-column:auto}}
.range.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.prod{display:flex;flex-direction:column;gap:.55rem;color:inherit;text-decoration:none}
.prod:hover{text-decoration:none}
.prod .shot{background:#fff;border-radius:22px;overflow:hidden;aspect-ratio:4/5;margin-bottom:.5rem;box-shadow:inset 0 0 0 1px var(--line)}
.prod .shot.illo{background:#f3eee6}
.prod .shot.wide{aspect-ratio:16/10}
.cre{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.25rem) clamp(1rem,2vw,1.5rem)}
.cre .prod.wideb{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.5rem);align-items:center}
.cre .prod.wideb .shot{aspect-ratio:4/3;margin:0}.cre .prod.wideb .shot img{object-fit:contain}
.cre .prod.wideb .txt{display:flex;flex-direction:column;gap:.55rem;padding-inline:clamp(0rem,2vw,1.5rem)}
@media (max-width:760px){.cre,.cre .prod.wideb{grid-template-columns:1fr}.cre .prod.wideb .txt{padding:0}}
.opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2rem) clamp(1.5rem,3vw,2.5rem);margin:clamp(2rem,4vw,3rem) 0 clamp(3rem,6vw,4.5rem)}

.opts h3{font-size:1.25rem;margin-bottom:.4rem}
.opts p{color:var(--ink-2)}
@media (max-width:900px){.opts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.opts{grid-template-columns:1fr}}
.prod .shot img{width:100%;height:100%;object-fit:cover;transition:transform 420ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){.prod:hover .shot img{transform:scale(1.045)}.prod:hover h3{color:var(--coral-ink)}}
.prod .tag{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--coral-ink)}
.prod h3{font-size:1.25rem;transition:color 160ms ease}
.prod p{color:var(--ink-2);font-size:1.0625rem;line-height:1.5}
.prod .go{margin-top:auto;padding-top:.3rem;font-weight:600;color:var(--green)}
.prod .go::after{content:" →"}
.prod.tile .shot{display:grid;place-items:center;background:var(--bg-3);box-shadow:none}
.prod.tile .shot svg{width:46%;height:auto}
@media (max-width:980px){.range{grid-template-columns:repeat(2,minmax(0,1fr))}.range.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.range,.range.three{grid-template-columns:1fr 1fr;gap:.9rem}.prod h3{font-size:1.25rem}.prod p{font-size:.94rem}}
/* real facility photos */
.facility{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(150px,17vw,230px);gap:clamp(.6rem,1.2vw,1rem)}
.facility figure{margin:0;position:relative;border-radius:20px;overflow:hidden;grid-column:span 4}
.facility figure.w6{grid-column:span 6}.facility figure.w8{grid-column:span 8}.facility figure.w5{grid-column:span 5}.facility figure.w7{grid-column:span 7}.facility figure.w3{grid-column:span 3}
.facility figure.t2{grid-row:span 2}
.facility img{width:100%;height:100%;object-fit:cover}
.facility figcaption{position:absolute;left:.75rem;bottom:.75rem;background:rgba(251,249,244,.92);color:#14241d;font-size:.82rem;font-weight:600;padding:.35rem .75rem;border-radius:999px;max-width:calc(100% - 1.5rem)}
@media (max-width:760px){.facility{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.facility figure,.facility figure.w6,.facility figure.w8,.facility figure.w5,.facility figure.w7,.facility figure.w3{grid-column:span 1}.facility figure.wide-m{grid-column:span 2}.facility figure.t2{grid-row:span 1}.facility figcaption{font-size:.82rem;left:.5rem;bottom:.5rem}}
/* numbered cards (R&D, packaging) */
.rd-top{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;margin-bottom:clamp(1.8rem,4vw,3rem)}
.rd-top .photo{aspect-ratio:16/10}
@media (max-width:560px){.rdh{font-size:1.5rem}}
.nsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);counter-reset:step}
.nsteps>div{background:var(--bg);border-radius:22px;padding:clamp(1.4rem,2.6vw,2rem);display:flex;flex-direction:column;gap:.7rem;box-shadow:inset 0 0 0 1px var(--line)}
.band .nsteps>div{background:var(--bg)}
.nsteps .n{font-family:var(--f-display);font-weight:500;font-size:2.2rem;line-height:1;color:var(--coral)}
.nsteps h3{font-size:1.25rem}
.nsteps p{color:var(--ink-2);font-size:1.0625rem}
@media (max-width:900px){.rd-top{grid-template-columns:1fr}.nsteps{grid-template-columns:1fr}}
/* CTA band, closes every page */
.cta{padding-block:clamp(2.5rem,6vw,5rem)}
.cta .card{position:relative;overflow:hidden;isolation:isolate;background:var(--deep);border-radius:clamp(22px,3vw,32px);padding:clamp(2.2rem,6.5vw,5.6rem);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem 3rem;align-items:center;color:#fff}
.cta .card::after{content:"";position:absolute;z-index:-1;width:420px;height:420px;right:-90px;top:-150px;border-radius:50%;background:radial-gradient(circle,rgba(214,90,64,.42),transparent 64%)}
.cta .eyebrow{color:rgba(255,255,255,.88)}
.cta h2{color:#fff;max-width:21em;margin-top:.9rem;font-size:clamp(1.7rem,3.6vw,3rem)}
.cta p{color:rgba(255,255,255,.78);max-width:46ch;margin-top:1rem;font-size:1.0625rem}
.cta .btn{background:#fff;color:#14241d;padding:1rem 1.6rem;font-size:1.0625rem}
@media (hover:hover) and (pointer:fine){.cta .btn:hover{background:#f3efe6}}
@media (max-width:760px){.cta .card{grid-template-columns:1fr;padding:2rem 1.4rem}.cta .btn{justify-self:start}.cta h2{font-size:1.5rem}}
/* news */
.news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.2rem,2.4vw,1.8rem)}
.news .ni{display:flex;flex-direction:column;gap:.6rem}
.news .media{border-radius:20px;overflow:hidden;aspect-ratio:16/10;margin-bottom:.4rem;background:var(--bg-3);display:grid;place-items:center;text-align:center;padding:0}
.news .media img{width:100%;height:100%;object-fit:cover}
.news .media.type{padding:1.4rem;font-family:var(--f-display);font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.05;color:var(--husk)}
.news .media.type small{display:block;font-family:var(--f-body);font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--coral-ink);margin-bottom:.6rem}
.news .media.type.d{background:var(--deep);color:#fff}.news .media.type.d small{color:#f2b9a8}
.news .media.type.g{background:var(--green-soft)}
.news .meta{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--coral-ink)}
.news h3{font-size:1.25rem}
.news p{color:var(--ink-2);font-size:1.0625rem}
.news .src{font-weight:600;font-size:.94rem;margin-top:auto}
.news .src::after{content:" ↗"}
@media (max-width:900px){.news{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.news{grid-template-columns:1fr}}
.certrow{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.certrow span{font-size:.82rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;background:var(--bg-2);color:var(--ink-2)}
.botan{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.botan>div{border-radius:20px;padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;background:var(--bg)}
.botan svg{width:40px;height:40px;color:var(--green)}
.botan h3{font-size:1.25rem}.botan p{font-size:.94rem;color:var(--ink-2)}
@media (max-width:900px){.botan{grid-template-columns:1fr 1fr}}

/* large screens: scale the whole layout so it never looks zoomed out */
@media (min-width:1700px){html{zoom:1.12}}
@media (min-width:1950px){html{zoom:1.28}}
@media (min-width:2250px){html{zoom:1.45}}
@media (min-width:2600px){html{zoom:1.68}}
@media (min-width:2950px){html{zoom:1.9}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bulkband{padding-block:clamp(3.5rem,8vw,6.5rem)}
.bulkart{position:relative;min-height:clamp(360px,42vw,560px)}
.bulkart .b-pallet{position:absolute;right:0;top:0;width:62%;height:auto}
.bulkart .b-pack{position:absolute;left:-2%;bottom:0;width:78%;height:auto}
.bulkband .stack>.btn{align-self:flex-start}
@media (max-width:860px){.bulkart{min-height:0;aspect-ratio:1/1;max-width:520px;width:100%;margin-inline:auto}}
