@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');
.ab{--g0:#062a16;--g:#0c4a27;--g2:#17793b;--lf:#3fae5a;--gold:#c9a227;--gold2:#f2d174;--cream:#f7f4ea;--ink:#0f2418;--txt:#35463b;--line:#e6e2d3;
font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--txt);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.ab *,.ab *:before,.ab *:after{box-sizing:border-box}
.ab h1,.ab h2,.ab h3,.ab h4{font-family:"Outfit","Inter",sans-serif;color:var(--ink);line-height:1.15;margin:0 0 .5em;font-weight:700;letter-spacing:-.02em}
.ab h1{font-size:clamp(2.3rem,5.4vw,4rem);font-weight:800}
.ab h2{font-size:clamp(1.8rem,3.6vw,2.7rem);margin-top:0}
.ab h3{font-size:1.3rem;margin-top:0}
.ab p{margin:0 0 1.1em}
.ab a{color:var(--g2);text-underline-offset:3px}
.ab a:hover{color:var(--gold)}
.ab ul,.ab ol{margin:0 0 1.2em 1.3em;padding:0}
.ab li{margin-bottom:.45em}
.ab strong{color:var(--ink)}
.ab img,.ab svg{max-width:100%}
.ab-s{padding:84px 22px;position:relative}
.ab-in{max-width:1180px;margin:0 auto;position:relative}
.ab-narrow{max-width:820px;margin:0 auto}
.ab-alt{background:var(--cream)}
.ab-dark{background:linear-gradient(135deg,var(--g0),var(--g) 70%,#116a37);color:#dcebe1}
.ab-dark h2,.ab-dark h3,.ab-dark strong{color:#fff}
.ab-dark a{color:var(--gold2)}
.ab-head{text-align:center;max-width:760px;margin:0 auto 46px}
.ab-head p{font-size:1.12rem;color:#5a6b60;margin:0}
.ab-dark .ab-head p{color:#b9d3c2}
.ab-eyebrow,.ab-kicker{display:inline-block;font-family:"Outfit",sans-serif;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);margin-bottom:.9em}
.ab-eyebrow:before,.ab-kicker:before{content:"";display:inline-block;width:28px;height:2px;background:var(--gold);vertical-align:middle;margin-right:10px}
.ab-dark .ab-eyebrow,.ab-hero .ab-kicker{color:var(--gold2)}
/* buttons */
.ab a.ab-btn,.ab button.ab-btn{display:inline-block;background:linear-gradient(135deg,var(--gold2),var(--gold));color:#201703;font-family:"Outfit",sans-serif;font-weight:700;padding:16px 32px;border-radius:50px;text-decoration:none;border:0;cursor:pointer;font-size:1.02rem;margin:6px 12px 6px 0;box-shadow:0 10px 24px rgba(201,162,39,.35);transition:transform .2s,box-shadow .2s}
.ab a.ab-btn:hover,.ab button.ab-btn:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(201,162,39,.45);color:#201703}
.ab a.ab-btn.o{background:rgba(255,255,255,.06);color:#fff;border:2px solid rgba(255,255,255,.55);box-shadow:none;backdrop-filter:blur(4px)}
.ab a.ab-btn.o:hover{background:#fff;color:var(--g)}
/* hero */
.ab-hero{position:relative;overflow:hidden;color:#e4f0e8;padding:96px 22px 110px;background:radial-gradient(circle at 80% 20%,rgba(63,174,90,.35),transparent 50%),radial-gradient(circle at 10% 90%,rgba(201,162,39,.22),transparent 45%),linear-gradient(135deg,#051f10,#0c4a27 60%,#14693a)}
.ab-hero:before{content:"";position:absolute;inset:0;background-image:var(--ab-hero-img,none);background-size:cover;background-position:center;opacity:.35}
.ab-hero .ab-map{position:absolute;left:50%;bottom:-6%;width:130%;transform:translateX(-50%);color:rgba(255,255,255,.17);pointer-events:none}
.ab-hero .ab-in{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center}
.ab-hero.solo .ab-in{grid-template-columns:1fr}
.ab-hero h1{color:#fff;margin-bottom:.45em;max-width:760px}
.ab-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--gold2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.ab-hero p.ab-sub{font-size:1.22rem;max-width:600px;color:#cfe3d6;margin-bottom:1.6em}
.ab-chiprow{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.ab-chiprow span{font-size:.85rem;font-weight:600;color:#e8f3ec;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);padding:6px 14px;border-radius:30px}
.ab-hv{position:relative;min-height:420px}
.ab-bub{position:absolute;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 24px 50px rgba(0,0,0,.35),inset 0 0 0 4px rgba(255,255,255,.18);animation:abfloat 7s ease-in-out infinite}
.ab-bub svg{width:62%;height:62%}
.ab-bub.b1{width:210px;height:210px;left:4%;top:2%;background:linear-gradient(135deg,#d62f4d,#7a0f26)}
.ab-bub.b2{width:150px;height:150px;right:0;top:0;background:linear-gradient(135deg,#f0b54a,#9a6414);animation-delay:-2s}
.ab-bub.b3{width:130px;height:130px;left:0;bottom:6%;background:linear-gradient(135deg,#f5e4aa,#b89a4a);animation-delay:-4s}
.ab-bub.b4{width:190px;height:190px;right:6%;top:34%;background:linear-gradient(135deg,#a8622f,#3b1d0e);animation-delay:-1s}
.ab-bub.b5{width:140px;height:140px;left:34%;bottom:-2%;background:linear-gradient(135deg,#f1de8d,#c9a227);animation-delay:-3s}
@keyframes abfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.ab-bigart{width:min(380px,100%);aspect-ratio:1;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;box-shadow:0 30px 70px rgba(0,0,0,.4),inset 0 0 0 6px rgba(255,255,255,.18);animation:abfloat 8s ease-in-out infinite;position:relative}
.ab-bigart svg{width:62%;height:62%;filter:drop-shadow(0 12px 14px rgba(0,0,0,.3))}
.ab-bigart:before{content:"";position:absolute;inset:-18px;border-radius:50%;border:2px dashed rgba(255,255,255,.3);animation:abspin 40s linear infinite}
@keyframes abspin{to{transform:rotate(360deg)}}
.pc-hibiscus{background:linear-gradient(135deg,#d62f4d,#7a0f26)}.pc-ginger{background:linear-gradient(135deg,#f0b54a,#9a6414)}.pc-sesame{background:linear-gradient(135deg,#f5e4aa,#b89a4a)}.pc-cocoa{background:linear-gradient(135deg,#a8622f,#3b1d0e)}.pc-shea{background:linear-gradient(135deg,#f1de8d,#c9a227)}.pc-leaf{background:linear-gradient(135deg,#3fae5a,#0c4a27)}
.ab-crumbs{font-size:.85rem;margin-bottom:1.6em}
.ab-crumbs,.ab-crumbs a{color:#a9c6b3;text-decoration:none}
.ab-crumbs a:hover{color:#fff}
.ab-post .ab-crumbs,.ab-post .ab-crumbs a{color:#6b776f}
/* stats */
.ab-statswrap{padding:0 22px;margin-top:-62px;position:relative;z-index:3}
.ab-stats{max-width:1080px;margin:0 auto;background:#fff;border-radius:22px;box-shadow:0 24px 60px rgba(6,42,22,.18);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}
.ab-stats div{padding:28px 18px;text-align:center;border-right:1px solid var(--line)}
.ab-stats div:last-child{border:0}
.ab-stats b{display:block;font-family:"Outfit",sans-serif;font-size:2.3rem;line-height:1;background:linear-gradient(135deg,var(--g2),var(--g));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.ab-stats span{display:block;font-size:.85rem;color:#5a6b60;margin-top:8px;font-weight:600;letter-spacing:.04em}
.ab-trust{background:#fff;border-bottom:1px solid var(--line);padding:16px 22px}
.ab-trust ul{list-style:none;margin:0 auto;padding:0;max-width:1100px;display:flex;flex-wrap:wrap;gap:8px 30px;justify-content:center;font-size:.9rem}
.ab-trust li{margin:0}
.ab-trust b{color:var(--g)}
/* product tiles */
.ab-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ab-tile{display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:26px;padding:34px 26px 28px;min-height:400px;text-decoration:none!important;color:#fff!important;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(6,42,22,.18);transition:transform .3s,box-shadow .3s}
.ab-tile:hover{transform:translateY(-10px);box-shadow:0 30px 60px rgba(6,42,22,.28)}
.ab-tile:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.12);top:-90px;right:-90px}
.ab-tile:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(0,0,0,.1);bottom:-60px;left:-50px}
.ab-tile .art{width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin-bottom:22px;position:relative;z-index:1;box-shadow:inset 0 0 0 3px rgba(255,255,255,.3);transition:transform .4s}
.ab-tile:hover .art{transform:scale(1.08) rotate(-6deg)}
.ab-tile .art svg{width:98px;height:98px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.28))}
.ab-tile h3{color:#fff;font-size:1.45rem;position:relative;z-index:1;margin-bottom:.3em}
.ab-tile p{font-size:.98rem;color:rgba(255,255,255,.9);margin:0 0 1.2em;position:relative;z-index:1}
.ab-tile .go{margin-top:auto;position:relative;z-index:1;background:rgba(255,255,255,.95);color:var(--g);font-family:"Outfit",sans-serif;font-weight:700;padding:10px 22px;border-radius:40px;font-size:.92rem}
.ab-tile.sesame,.ab-tile.shea{color:#2a2208!important}
.ab-tile.sesame h3,.ab-tile.shea h3{color:#2a2208}
.ab-tile.sesame p,.ab-tile.shea p{color:#46380f}
.ab-tile.hibiscus{background:linear-gradient(150deg,#e0395a,#7a0f26)}
.ab-tile.ginger{background:linear-gradient(150deg,#f2b94e,#8f5a10)}
.ab-tile.sesame{background:linear-gradient(150deg,#f7e8b4,#c6a85a)}
.ab-tile.cocoa{background:linear-gradient(150deg,#b06a35,#33180a)}
.ab-tile.shea{background:linear-gradient(150deg,#f4e3a0,#cdaa2c)}
.ab-tile.leaf{background:linear-gradient(150deg,#3fae5a,#08361c)}
/* feature grid */
.ab-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.ab-feat{background:#fff;border-radius:22px;padding:34px 28px;box-shadow:0 8px 30px rgba(6,42,22,.07);border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.ab-feat:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(6,42,22,.13)}
.ab-feat h3{font-size:1.22rem;margin:18px 0 .35em}
.ab-feat p{margin:0;font-size:.98rem;color:#5a6b60}
.ab-fic{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--g2),var(--g));display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(12,74,39,.25);transform:rotate(-6deg)}
.ab-fic svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ab-feat:nth-child(even) .ab-fic{background:linear-gradient(135deg,var(--gold2),var(--gold))}
.ab-feat:nth-child(even) .ab-fic svg{stroke:#2a2208}
/* spotlight */
.ab-spot{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.ab-spot .ab-bigart{width:min(400px,100%)}
.ab-spot h2{color:#fff}
.ab-spots{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0 28px}
.ab-spots div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:14px 16px}
.ab-spots span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);font-weight:700}
.ab-spots b{color:#fff;font-weight:600;font-size:1rem}
/* flow */
.ab-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;position:relative;counter-reset:f}
.ab-flow:before{content:"";position:absolute;left:10%;right:10%;top:44px;border-top:3px dashed var(--gold)}
.ab-fl{text-align:center;position:relative;padding:0 8px}
.ab-fl .n{width:88px;height:88px;border-radius:50%;margin:0 auto 18px;background:linear-gradient(135deg,var(--g2),var(--g));display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px #fff,0 14px 28px rgba(12,74,39,.3);position:relative}
.ab-alt .ab-fl .n{box-shadow:0 0 0 8px var(--cream),0 14px 28px rgba(12,74,39,.3)}
.ab-fl .n svg{width:36px;height:36px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ab-fl .n i{position:absolute;top:-4px;right:-4px;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#201703;font-style:normal;font-weight:800;font-family:"Outfit",sans-serif;font-size:.9rem;display:flex;align-items:center;justify-content:center}
.ab-fl h3{font-size:1.06rem;margin-bottom:.3em}
.ab-fl p{font-size:.9rem;color:#5a6b60;margin:0}
/* map */
.ab-mapbox{position:relative;max-width:1100px;margin:0 auto}
.ab-map{display:block;width:100%;height:auto}
.ab-map .land{stroke-width:.95;stroke-linecap:round;stroke:currentColor;fill:none}
.ab-map .ng{stroke:var(--gold2);stroke-width:1.1;stroke-linecap:round;fill:none}
.ab-map .arc{fill:none;stroke:var(--gold2);stroke-width:.42;stroke-dasharray:1.4 1.6;stroke-linecap:round;animation:abdash 5s linear infinite;opacity:.95}
@keyframes abdash{to{stroke-dashoffset:-30}}
.ab-map .pt{fill:var(--gold2)}
.ab-map .pulse{fill:none;stroke:var(--gold2);stroke-width:.35;transform-box:fill-box;transform-origin:center;animation:abpulse 2.6s ease-out infinite}
@keyframes abpulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(3.2);opacity:0}}
.ab-regions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px}
.ab-regions a{display:inline-flex;align-items:center;gap:10px;padding:11px 20px;border-radius:40px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff!important;text-decoration:none;font-weight:600;font-size:.95rem;transition:background .2s}
.ab-regions a:hover{background:rgba(255,255,255,.22)}
.ab-regions i{width:10px;height:10px;border-radius:50%;background:var(--gold2);box-shadow:0 0 0 4px rgba(242,209,116,.25)}
/* region cards */
.ab-reg{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ab-rc{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 32px rgba(6,42,22,.09);border:1px solid var(--line)}
.ab-rc .top{padding:26px 26px 20px;color:#fff;position:relative;overflow:hidden}
.ab-rc .top:after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.14)}
.ab-rc .top h3{color:#fff;margin:0;font-size:1.4rem;position:relative}
.ab-rc .top span{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;font-weight:600;position:relative}
.ab-rc .bd{padding:20px 26px 26px}
.ab-rc ul{list-style:none;margin:0;padding:0}
.ab-rc li{padding-left:26px;position:relative;margin:0 0 .6em;font-size:.97rem}
.ab-rc li:before{content:"";position:absolute;left:0;top:.5em;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.2)}
.rc1{background:linear-gradient(135deg,#1e5fa8,#0b2f5c)}.rc2{background:linear-gradient(135deg,#c0392b,#6e1d14)}.rc3{background:linear-gradient(135deg,#17793b,#0a3a1d)}.rc4{background:linear-gradient(135deg,#e08a1e,#8a4a05)}.rc5{background:linear-gradient(135deg,#7b3fa0,#3d1a5c)}
/* chips */
.ab-chips{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.ab-chip{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);padding:12px 22px 12px 14px;border-radius:50px;box-shadow:0 6px 18px rgba(6,42,22,.07);font-weight:600;color:var(--ink);font-size:.97rem}
.ab-chip svg{width:38px;height:38px;padding:8px;border-radius:50%;background:linear-gradient(135deg,var(--g2),var(--g));stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* guide cards */
.ab-guides{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ab-gc{background:#fff;border-radius:22px;overflow:hidden;text-decoration:none!important;box-shadow:0 10px 32px rgba(6,42,22,.1);border:1px solid var(--line);transition:transform .25s;display:flex;flex-direction:column}
.ab-gc:hover{transform:translateY(-8px)}
.ab-gc .im{height:150px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.ab-gc .im:after{content:"";position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.14);right:-50px;top:-60px}
.ab-gc .im svg{width:76px;height:76px;position:relative;z-index:1;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}
.ab-gc .tx{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.ab-gc small{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold)}
.ab-gc h3{font-size:1.12rem;margin:.4em 0 .8em;color:var(--ink)}
.ab-gc .rd{margin-top:auto;font-weight:700;color:var(--g2);font-family:"Outfit",sans-serif}
/* credentials */
.ab-creds{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ab-cr{background:#fff;border-radius:18px;padding:24px 20px;text-align:center;border:1px solid var(--line);box-shadow:0 6px 20px rgba(6,42,22,.06)}
.ab-cr svg{width:42px;height:42px;stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px}
.ab-cr span{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#6b776f;font-weight:700}
.ab-cr b{display:block;font-family:"Outfit",sans-serif;font-size:1.25rem;color:var(--ink)}
/* journey (about) */
.ab-jr{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ab-jr .ab-in{max-width:none}
.ab-bridge{background:linear-gradient(160deg,var(--g0),var(--g));border-radius:30px;padding:30px;box-shadow:0 30px 60px rgba(6,42,22,.25);color:#cfe3d6}
/* accordion */
.ab-acc details{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:14px;box-shadow:0 4px 14px rgba(6,42,22,.05)}
.ab-acc summary{cursor:pointer;padding:20px 60px 20px 24px;position:relative;list-style:none;font-family:"Outfit",sans-serif;font-weight:700;font-size:1.15rem;color:var(--ink)}
.ab-acc summary::-webkit-details-marker{display:none}
.ab-acc summary:after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#201703}
.ab-acc details[open] summary:after{content:"\2212"}
.ab-acc .bd{padding:0 24px 12px}
.ab-acc .bd h2{display:none}
.ab-more{max-width:900px;margin:0 auto}
.ab-more summary{cursor:pointer;text-align:center;font-family:"Outfit",sans-serif;font-weight:700;color:var(--g2);padding:14px;list-style:none;font-size:1.05rem}
.ab-more summary::-webkit-details-marker{display:none}
.ab-more[open] summary{margin-bottom:10px}
.ab-more h2,.ab-more h3{font-size:1.4rem;margin-top:1.2em}
/* generic cards */
.ab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin:28px 0}
.ab-grid.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.ab-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 8px 26px rgba(6,42,22,.07);transition:transform .25s}
.ab-card:hover{transform:translateY(-5px)}
.ab-card h3{margin-top:.2em;font-size:1.2rem}
.ab-card p:last-child{margin-bottom:0}
.ab .ab-ic{display:block;width:58px;height:58px;margin-bottom:14px}
.ab .ab-ic svg{display:block;width:58px;height:58px}
.ab-ic.line{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--g2),var(--g));padding:14px;box-shadow:0 8px 16px rgba(12,74,39,.22)}
.ab-ic.line svg{stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;width:30px;height:30px}
.ab-card a.ab-more{font-weight:700;text-decoration:none}
/* steps timeline */
.ab-steps{counter-reset:s;list-style:none;margin:30px 0;padding:0}
.ab-steps li{counter-increment:s;position:relative;padding:6px 0 26px 76px;margin:0;min-height:64px}
.ab-steps li:before{content:counter(s);position:absolute;left:0;top:0;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--g2),var(--g));color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-family:"Outfit",sans-serif;font-size:1.2rem;box-shadow:0 0 0 6px rgba(63,174,90,.18)}
.ab-steps li:after{content:"";position:absolute;left:25px;top:58px;bottom:4px;width:2px;background:repeating-linear-gradient(var(--gold) 0 6px,transparent 6px 12px)}
.ab-steps li:last-child:after{display:none}
.ab-steps b{display:block;color:var(--ink);font-family:"Outfit",sans-serif;font-size:1.18rem}
.ab-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:26px 0}
.ab-facts div{background:#fff;border-radius:16px;padding:16px 20px;border:1px solid var(--line);box-shadow:0 4px 14px rgba(6,42,22,.05);position:relative;overflow:hidden}
.ab-facts div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(var(--gold2),var(--gold))}
.ab-facts span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#6b776f;font-weight:700}
.ab-facts b{color:var(--ink);word-break:break-word;font-family:"Outfit",sans-serif}
/* spec cards */
.ab-specs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:10px 0 24px}
.ab-specs div{background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:14px;padding:16px 18px;box-shadow:0 6px 18px rgba(6,42,22,.06)}
.ab-specs span{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#6b776f;font-weight:700;margin-bottom:4px}
.ab-specs b{font-family:"Outfit",sans-serif;color:var(--ink);font-size:1rem;font-weight:600;line-height:1.3;display:block}
.ab table{width:100%;border-collapse:separate;border-spacing:0;margin:1.4em 0;font-size:.97rem;display:table;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.ab th,.ab td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.ab th{background:var(--g);color:#fff;font-weight:600}
.ab tr:nth-child(even) td{background:var(--cream)}
.ab blockquote{margin:1.6em 0;padding:18px 22px;background:#fdf8ea;border-left:5px solid var(--gold);border-radius:0 14px 14px 0}
.ab blockquote p:last-child{margin-bottom:0}
.ab-toc{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:22px 28px;margin:26px 0}
.ab-toc b{display:block;font-family:"Outfit",sans-serif;font-size:1.15rem;color:var(--ink);margin-bottom:8px}
.ab-toc ol{margin-bottom:0}
.ab-faq details{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:12px;box-shadow:0 4px 14px rgba(6,42,22,.05)}
.ab-faq summary{cursor:pointer;font-family:"Outfit",sans-serif;font-weight:600;font-size:1.06rem;color:var(--ink);padding:18px 60px 18px 22px;list-style:none;position:relative}
.ab-faq summary::-webkit-details-marker{display:none}
.ab-faq summary:after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#201703}
.ab-faq details[open] summary:after{content:"\2212"}
.ab-faq details div{padding:0 22px 8px}
.ab-cta{text-align:center;padding:96px 22px;overflow:hidden;background:radial-gradient(circle at 20% 20%,rgba(63,174,90,.3),transparent 50%),linear-gradient(135deg,#051f10,#0c4a27 70%,#14693a)}
.ab-cta .ab-map{position:absolute;left:50%;top:50%;width:120%;transform:translate(-50%,-50%);color:rgba(255,255,255,.1);pointer-events:none}
.ab-cta h2{margin-top:0;color:#fff;font-size:clamp(2rem,4.4vw,3.2rem)}
.ab-cta p{max-width:660px;margin:0 auto 1.6em;color:#cfe3d6;font-size:1.15rem}
.ab-rel{border-top:4px solid var(--gold);background:var(--cream);padding:30px;border-radius:0 0 16px 16px;margin:42px 0 10px}
.ab-rel h3{margin-top:0}
.ab-rel ul{margin-bottom:0}
.ab-meta{font-size:.88rem;color:#6b776f;margin:0 0 1.6em}
.ab-note{font-size:.88rem;color:#6b776f}
.ab-form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:0 16px 44px rgba(6,42,22,.1)}
.ab-form label{display:block;font-weight:600;color:var(--ink);font-size:.92rem;margin-bottom:5px}
.ab-form input,.ab-form select,.ab-form textarea{width:100%;padding:13px 16px;border:1px solid #d3cfbd;border-radius:12px;font-size:1rem;font-family:inherit;background:#fff;color:var(--ink)}
.ab-form input:focus,.ab-form select:focus,.ab-form textarea:focus{outline:0;border-color:var(--g2);box-shadow:0 0 0 4px rgba(63,174,90,.18)}
.ab-form textarea{min-height:130px}
.ab-form .r{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px}
.ab-form .f{margin-bottom:16px}
.ab-msg{display:none;margin-top:14px;padding:12px 16px;border-radius:12px;background:#e8f4ec;color:#14532d;font-weight:600}
.ab-split{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
.ab-two{columns:2;column-gap:40px}
.ab-two li{break-inside:avoid}
.ab-post{max-width:100%}
.ab-box{background:linear-gradient(135deg,#062a16,#0c4a27);border-radius:22px;padding:40px 30px;text-align:center;color:#cfe3d6;margin:38px 0}
.ab-box h3{color:#fff;margin-top:0;font-size:1.6rem}
.ab-box p{max-width:620px;margin:0 auto 1.2em}
.ab-part{background:#fdf8ea;border-left:5px solid var(--gold);padding:14px 20px;border-radius:0 12px 12px 0;margin:0 0 1.6em;font-size:.95rem}
/* blog category tiles */
.ab-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ab-cats .ab-gc .im{height:130px}
@media(max-width:980px){
.ab-hero .ab-in,.ab-spot,.ab-jr,.ab-split{grid-template-columns:1fr}
.ab-hv{min-height:360px;max-width:460px;margin:30px auto 0;width:100%}
.ab-tiles,.ab-feats,.ab-guides,.ab-reg,.ab-cats{grid-template-columns:repeat(2,1fr)}
.ab-specs{grid-template-columns:repeat(2,1fr)}
.ab-flow{grid-template-columns:1fr;gap:26px}
.ab-flow:before{display:none}
.ab-fl{display:grid;grid-template-columns:88px 1fr;text-align:left;gap:18px;align-items:center}
.ab-fl .n{margin:0}
.ab-creds,.ab-stats{grid-template-columns:repeat(2,1fr)}
.ab-stats div:nth-child(2){border-right:0}
.ab-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
.ab-two{columns:1}
}
@media(max-width:640px){
.ab{font-size:16px}
.ab-s{padding:60px 18px}
.ab-hero{padding:64px 18px 96px}
.ab-tiles,.ab-feats,.ab-guides,.ab-reg,.ab-cats,.ab-spots{grid-template-columns:1fr}
.ab-tile{min-height:0}
.ab-hv{min-height:300px}
.ab-bub.b1{width:150px;height:150px}.ab-bub.b2{width:100px;height:100px}.ab-bub.b3{width:90px;height:90px}.ab-bub.b4{width:130px;height:130px}.ab-bub.b5{width:90px;height:90px}
.ab a.ab-btn{padding:14px 26px}
}
.ab-crim{background:radial-gradient(circle at 15% 20%,rgba(255,120,150,.25),transparent 45%),linear-gradient(135deg,#2b040c,#6e0c23 60%,#a8213d);color:#f6dfe4;overflow:hidden}
.ab-crim h2{color:#fff}.ab-crim p{color:#f1cdd5}
.ab-crim .ab-spots div{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}
.ab-mission{text-align:center;max-width:900px;margin:0 auto}
.ab-mission h2{font-size:clamp(1.9rem,4vw,3rem);line-height:1.2}
.ab-mission h2 em{font-style:normal;color:var(--gold2)}
.ab-brow{display:flex;gap:18px;align-items:center;padding:18px 0;border-bottom:1px dashed rgba(255,255,255,.25)}
.ab-brow:last-child{border:0}
.ab-brow .ic{flex:0 0 66px;height:66px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(0,0,0,.25)}
.ab-brow .ic svg{width:30px;height:30px;stroke:#201703;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ab-brow h3{color:#fff;margin:0 0 .15em;font-size:1.25rem}
.ab-brow p{margin:0;font-size:.97rem;color:#b9d3c2}
.ab-story p{font-size:1.08rem}
.ab-cats .ab-gc .tx p{font-size:.93rem;color:#5a6b60;margin:0 0 .8em}
.ab-flow.c4{grid-template-columns:repeat(4,1fr)}.ab-flow.c4:before{left:12.5%;right:12.5%}
@media(max-width:980px){.ab-flow.c4{grid-template-columns:1fr}}
.ab-hero .ab-map .arc{opacity:.28}.ab-hero .ab-map .pulse,.ab-hero .ab-map .pt{opacity:.35}
.ab-hero .ab-map .ng,.ab-cta .ab-map .ng{stroke:rgba(242,209,116,.55)}
Home › Blog › Export Documentation & Compliance › Certificate of Analysis for Agro Commodities Export Documentation & Compliance · Guide By the Agro-Bridge editorial team · Updated November 2026 · 3 min read
This article is part of our complete guide: Nigerian Agro Export Documents: The Complete Checklist for Buyers and Exporters
A certificate of analysis for agro commodities (COA) is one of the most useful documents in agricultural trade, and one of the easiest to misuse. This article shows buyers how to read a COA and check that it really protects them. It is part of our complete guide to Nigerian agro export documents .
What is a COA?
A COA is a report of test results for a specific batch of product. It lists the parameters tested, the method used, the result and often the specification limit. It is issued by a laboratory, or by the supplier with laboratory support.
Batch-specific or generic?
This is the most important point. A batch-specific COA relates to the lot you are buying, identified by lot number and date. A generic or old COA proves nothing about your shipment. We treat a batch-specific COA, where available, as part of our process, and we do not use a generic specification as a substitute for batch verification.
What a COA usually contains
Section
What to look for
Product and batch
Name, form, lot number, quantity, date of sampling and testing
Sampling
Who sampled and how
Parameters
Moisture, purity, foreign matter and other quality parameters
Food-safety tests
Microbiology, mycotoxins, pesticide residues, heavy metals, as relevant
Methods
Standard methods used
Results and limits
Test result next to the specification limit
Laboratory
Name, address, accreditation, signature and date
How to read a COA in six steps
Match the batch. The lot number, product name and date must match your shipment.
Check who sampled. Independent sampling is stronger than supplier sampling.
Check the lab. Is it independent? Is it accredited (for example to ISO/IEC 17025) for these tests?
Compare each result with your limit. Do not accept "pass" without seeing the numbers.
Check the methods. Different methods give different results. They should be recognised.
Check the date. Old results do not describe fresh loading conditions, especially for moisture.
What a COA does not prove
It does not prove that all bags in the container match the sample.
It does not prove that the product was not changed after testing.
It does not replace inspection at loading.
That is why we use a COA together with sampling, pre-shipment quality control, loading control and documentary control. See the quality-control framework .
COA by commodity: examples of key parameters
Hibiscus: moisture, foreign matter, colour, damaged calyces. See the hibiscus specification guide .
Sesame: purity, moisture, oil content, free fatty acids, Salmonella. See sesame purity explained .
Ginger: moisture, foreign matter, mould, pungency, tests as required. See ginger quality and specifications .
Cocoa: moisture, defect percentages, bean count. See cocoa bean grades .
Shea butter: FFA, peroxide value, moisture, impurities. See shea butter quality tests .
Red flags
A COA with no lot number or date
Results that are perfectly round or identical across different batches
Laboratory details missing or impossible to verify
A COA from before the goods were produced
Reluctance to share the original document
A buyer's COA request, ready to copy
When you ask for a certificate of analysis for agro commodities, be specific. For example:
Please provide a batch-specific COA for lot [number], issued by [laboratory], showing the following parameters and methods: [list parameters]. Please state the sampling date, the sampler and the specification limit beside each result. Please also provide the laboratory's accreditation details.
Independent testing
For higher-value orders, consider asking an independent laboratory to test a sample that you or your inspector draws, in addition to the supplier's COA. Comparing the two is one of the best checks you can make. If the results differ by more than the normal range of the method, ask why. This protects you, and an honest supplier will welcome it.
Ask for it early
Request a batch COA before you commit, and put it in the contract as a condition. To start, request a quote or see the documents we prepare on the export documentation page .
Planning to source from Nigeria? Send us your specification, quantity, packaging, destination and Incoterm. We will review it and reply with the right sourcing and commercial process.
Request a Quote Contact Us