*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f2e9;color:#172116;font-family:"DM Sans",sans-serif;line-height:1.5}.progress{position:fixed;z-index:999;top:0;left:0;width:0;height:3px;background:#e4a82c}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:78px;padding:0 5.5vw;display:flex;align-items:center;justify-content:space-between;color:#fff;transition:.3s}.site-header.scrolled{background:rgba(18,29,18,.94);backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(255,255,255,.08)}.brand{display:flex;gap:11px;align-items:center;color:#fff;text-decoration:none}.brand>span:last-child{display:flex;flex-direction:column;line-height:1}.brand b{font-size:10px;letter-spacing:.16em}.brand small{font-size:8px;letter-spacing:.18em;opacity:.65;margin-top:4px}.bee-mark{width:34px;height:34px;border-radius:50%;background:#e5a62b;display:grid;place-content:center;gap:3px;transform:rotate(-5deg)}.bee-mark i{display:block;width:17px;height:3px;background:#192318;border-radius:5px}.site-header nav{display:flex;gap:27px}.site-header nav a,.nav-pill{color:#fff;text-decoration:none;font-size:11px;font-weight:600}.site-header nav a{opacity:.76}.site-header nav a:hover{opacity:1}.nav-pill{border:1px solid rgba(255,255,255,.3);border-radius:100px;padding:11px 15px}.nav-pill span{color:#e8ac32;margin-left:7px}.menu{display:none;background:none;border:0;color:#fff;font-size:25px}.mobile-nav{display:none}.hero{height:100vh;min-height:760px;position:relative;overflow:hidden;color:#fff}.hero-bg{position:absolute;inset:0;background:url("assets/images/bees-flight.jpg") center/cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,16,8,.9),rgba(7,16,8,.48) 58%,rgba(7,16,8,.18)),linear-gradient(0deg,rgba(7,15,8,.75),transparent 55%)}.hero-inner{position:absolute;left:8vw;top:23vh;max-width:900px}.hero-label{font-size:9px;font-weight:700;letter-spacing:.18em;display:flex;align-items:center;gap:8px;margin-bottom:24px}.hero-label span{width:7px;height:7px;border-radius:50%;background:#e7ab30;box-shadow:0 0 0 6px rgba(231,171,48,.13)}h1,h2,h3{font-family:Fraunces,serif;letter-spacing:-.05em;font-weight:600;margin:0}h1{font-size:clamp(56px,7.4vw,108px);line-height:.87}em{font-style:normal;color:#e0a32b}.hero-inner p{max-width:560px;color:rgba(255,255,255,.72);font-size:16px;margin:30px 0}.hero-actions{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;gap:18px;text-decoration:none;border-radius:100px;padding:14px 18px;font-size:11px;font-weight:700}.btn b{font-size:16px}.gold{background:#e8ab2e;color:#172116}.outline{border:1px solid rgba(255,255,255,.35);color:#fff}.hero-bottom{position:absolute;left:8vw;right:5.5vw;bottom:43px;display:flex;gap:45px;align-items:end}.hero-bottom>div:not(.hero-note){display:flex;flex-direction:column}.hero-bottom b{font-family:Fraunces,serif;font-size:28px;color:#f0b83b}.hero-bottom small{font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.57)}.hero-note{margin-left:auto;display:flex;align-items:center;gap:10px}.hero-note span{font-size:8px;color:#e9ae33}.hero-note i{width:45px;height:1px;background:rgba(255,255,255,.3)}.hero-bee{position:absolute;right:12vw;top:25vh;width:150px;height:150px;border:1px solid rgba(255,255,255,.13);border-radius:50%;display:grid;place-items:center;opacity:.5}.hero-bee:before,.hero-bee:after{content:"";position:absolute;border:1px solid rgba(229,166,43,.55);border-radius:50%;inset:24px}.hero-bee:after{inset:50px}.hero-bee span{color:#e7ac30}.at-glance{padding:0 8vw;background:#182418;color:#fff;display:grid;grid-template-columns:180px 1fr;align-items:stretch}.glance-label{padding:34px 0;font-size:8px;letter-spacing:.16em;color:#aab5a4;display:flex;align-items:center}.glance-grid{display:grid;grid-template-columns:repeat(4,1fr)}.glance-grid>div{padding:30px 22px;border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column}.glance-grid small{font-size:7px;letter-spacing:.15em;color:#879585}.glance-grid strong{font-family:Fraunces,serif;font-size:22px;margin:8px 0 2px;color:#f0b63b}.glance-grid span{font-size:9px;color:#9da79a}.section{padding:120px 8vw}.section-top{display:grid;grid-template-columns:1.05fr .95fr;gap:9vw;align-items:end}.kicker{font-size:9px;font-weight:700;letter-spacing:.18em;color:#737c6c;text-transform:uppercase;display:block;margin-bottom:23px}.section-top h2{font-size:clamp(45px,5.4vw,76px);line-height:.91}.section-top>p{font-size:14px;color:#697265;line-height:1.85;margin:0;max-width:520px}.farm-feature{margin-top:70px;display:grid;grid-template-columns:1.15fr .85fr;min-height:470px}.farm-image{position:relative;background:url("assets/images/hive-frames.jpg") center/cover}.farm-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,10,.4),transparent 55%)}.image-badge{position:absolute;z-index:2;left:30px;bottom:30px;background:rgba(20,31,19,.88);backdrop-filter:blur(10px);padding:14px 16px;color:#fff;display:flex;flex-direction:column}.image-badge b{font-size:8px;letter-spacing:.16em;color:#e8ac31}.image-badge span{font-size:10px;margin-top:5px}.farm-panel{background:#1d2a1d;color:#fff;padding:55px}.panel-label{font-size:8px;letter-spacing:.16em;color:#e6ad33}.farm-panel h3{font-size:42px;line-height:.95;margin:20px 0}.farm-panel p{font-size:13px;line-height:1.8;color:rgba(255,255,255,.58)}.location-facts{border-top:1px solid rgba(255,255,255,.13);margin-top:30px;padding-top:25px;display:flex;flex-direction:column;gap:12px}.location-facts span{font-size:9px;color:#a5afa0}.location-facts b{color:#e9ad31;font-family:Fraunces,serif;font-size:20px;margin-right:6px}.statement{padding:125px 8vw;background:#1b281b;color:#fff;display:flex;justify-content:space-between;align-items:center;overflow:hidden}.statement h2{font-size:clamp(54px,7vw,98px);line-height:.85;margin:25px 0 35px}.statement p{font-size:11px;color:#8e9989}.kicker.light{color:#e8ad32}.statement-orbit{margin-right:10vw;width:270px;height:270px;border:1px solid rgba(255,255,255,.13);border-radius:50%;display:grid;place-items:center;position:relative;color:#e9ad31}.statement-orbit:before,.statement-orbit:after{content:"";position:absolute;border:1px solid rgba(232,173,50,.28);border-radius:50%;inset:35px}.statement-orbit:after{inset:75px}.statement-orbit span{font-family:Fraunces,serif;font-size:50px}.statement-orbit b{position:absolute;bottom:25px;font-size:7px;letter-spacing:.18em}.products{background:#f6f2e9}.product-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:15px;margin-top:70px}.product-card{min-height:500px;position:relative;background:#eae5d8;overflow:hidden}.product-photo{height:250px;background-size:cover;background-position:center}.honey .product-photo{background-image:url("assets/images/honey-drip.jpg")}.wax .product-photo{background-image:url("assets/images/hive-frames.jpg")}.product-info{padding:26px}.product-info small{font-size:8px;letter-spacing:.15em;color:#7e8778}.product-info h3{font-size:38px;margin:18px 0 8px}.product-info p{font-size:12px;color:#687163;line-height:1.7;max-width:300px}.product-info>span{position:absolute;bottom:25px;font-size:9px;font-weight:700;color:#727a6e}.future{background:#dda42b;display:flex;align-items:center}.future-symbol{position:absolute;right:25px;top:25px;font-size:30px;color:#1a2519}.future .product-info{padding-top:75px}.future .product-info p{color:rgba(23,33,22,.7)}.future .product-info small{color:#66501e}.project{background:#eae6db}.funding{display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw;margin-top:70px}.funding-visual{background:#1c291b;color:#fff;min-height:610px;padding:45px;position:relative;overflow:hidden}.funding-number{position:relative;z-index:2;display:flex;flex-direction:column}.funding-number small{font-size:8px;letter-spacing:.15em;color:#a8b2a3}.funding-number strong{font-family:Fraunces,serif;font-size:54px;line-height:1;color:#edb33a;margin:12px 0}.funding-number span{font-size:9px;color:#879384}.donut{width:260px;height:260px;border-radius:50%;background:conic-gradient(#e7a92f 0 40%,#bd8730 40% 52.5%,#737e68 52.5% 65%,#465441 65% 85%,#303d2e 85% 100%);margin:72px auto 25px;display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:168px;height:168px;border-radius:50%;background:#1c291b}.donut div{position:relative;z-index:2;text-align:center}.donut b{display:block;font-family:Fraunces,serif;font-size:42px}.donut span{font-size:8px;letter-spacing:.14em;color:#9ea99b;text-transform:uppercase}.funding-tip{position:absolute;bottom:32px;left:45px;right:45px;border-top:1px solid rgba(255,255,255,.1);padding-top:17px;font-size:10px;color:#7e8b7c}.allocation{display:flex;flex-direction:column}.alloc{border:0;border-bottom:1px solid #d1cdc2;background:transparent;text-align:left;padding:18px 0;display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;cursor:pointer;color:#1b261a;font-family:inherit}.alloc i{font-style:normal;font-size:9px;color:#92998d}.alloc span{display:flex;flex-direction:column}.alloc b{font-size:13px}.alloc small{font-size:10px;color:#858d80;margin-top:3px}.alloc strong{font-size:12px}.alloc:hover,.alloc.active{background:rgba(220,163,43,.08)}.alloc.active i,.alloc.active strong{color:#c78d20}.allocation-total{display:flex;justify-content:space-between;padding-top:25px;font-size:10px;letter-spacing:.14em}.allocation-total b{font-family:Fraunces,serif;font-size:27px;letter-spacing:-.03em}.journey{background:#f6f2e9}.journey-line{display:grid;grid-template-columns:repeat(5,1fr);margin-top:75px;border-top:1px solid #cbc8bd}.journey-line article{position:relative;padding:30px 22px 15px 0;border-right:1px solid #d2cec3;min-height:200px}.journey-line article:not(:first-child){padding-left:22px}.journey-line article>span{position:absolute;top:-14px;left:-14px;width:28px;height:28px;border:1px solid #bfc3b8;border-radius:50%;background:#f6f2e9;display:grid;place-items:center;font-size:8px}.journey-line article:first-child>span{background:#dfa62c;border-color:#dfa62c}.journey-line small{font-size:8px;letter-spacing:.15em;color:#858d80}.journey-line h3{font-size:28px;margin:14px 0 7px}.journey-line p{font-size:11px;color:#727a6e;max-width:160px}.yield{display:flex;justify-content:center;align-items:center;gap:75px;background:#e9e4d8;padding:38px;margin-top:10px}.yield div{display:flex;flex-direction:column}.yield small{font-size:8px;letter-spacing:.15em;color:#818979}.yield b{font-family:Fraunces,serif;font-size:49px;line-height:1;margin:8px 0}.yield span{font-size:9px;color:#777f72}.yield i{font-style:normal;font-size:30px;color:#d79d2b}.market{background:#1c291b;color:#fff;padding:110px 6vw}.market-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;min-height:650px;overflow:hidden;background:#1c291b}.route-map{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(226,165,43,.11),transparent 26%),#1c291b;border:1px solid rgba(255,255,255,.07);min-height:650px}.route-map:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 70%,rgba(255,255,255,.025));}.route-title{position:absolute;z-index:4;left:48px;top:42px}.route-title .kicker{margin-bottom:16px}.route-title h2{font-size:47px;line-height:.9}.outline-map-wrap{position:absolute;inset:125px 30px 55px;display:flex;align-items:center;justify-content:center}.ghana-outline{width:min(92%,570px);height:100%;overflow:visible;display:block}.ghana-shape{fill:rgba(255,255,255,.012);stroke:rgba(239,244,235,.8);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}.route-line{fill:none;stroke:#e1a52d;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 8;filter:drop-shadow(0 0 7px rgba(225,165,45,.28))}.route-dot{fill:#e7aa30;stroke:#1c291b;stroke-width:5}.map-label text{font-family:"DM Sans",sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;fill:#f0b53a}.map-label small{font-family:"DM Sans",sans-serif;font-size:5.5px;letter-spacing:.12em;fill:#879486}.map-caption{position:absolute;z-index:5;left:48px;bottom:28px;font-size:8px;letter-spacing:.1em;color:#697768;text-transform:uppercase}.market-copy{padding:65px 6vw;display:flex;flex-direction:column;justify-content:center;min-width:0}.market-copy .kicker{margin-bottom:20px}.market-copy h2{font-size:clamp(56px,5.2vw,78px);line-height:.86;margin:0 0 28px}.market-copy>p{font-size:13px;line-height:1.85;color:rgba(255,255,255,.57);max-width:460px;margin:0 0 25px}.phase{display:grid;grid-template-columns:85px minmax(0,1fr) auto;gap:16px;padding:18px 0;border-top:1px solid rgba(255,255,255,.12);align-items:center}.phase span,.phase small{font-size:7px;letter-spacing:.14em;color:#e4a932}.phase b{font-size:12px;line-height:1.3}.phase small{color:#879284;text-align:right}.impact{background:#e7e2d5}.impact-grid{display:grid;grid-template-columns:.7fr .7fr 1.2fr;margin-top:70px}.impact-stat{padding:35px 45px 35px 0;border-right:1px solid #cecabe}.impact-stat:not(:first-child){padding-left:45px}.impact-stat b{display:block;font-family:Fraunces,serif;font-size:100px;line-height:.8;color:#d89d2a}.impact-stat span{font-family:Fraunces,serif;font-size:27px;display:block;margin-top:20px}.impact-stat small{font-size:9px;color:#7a8175}.impact-copy{padding:35px 0 35px 60px}.impact-copy small{font-size:8px;letter-spacing:.15em;color:#7a8175}.impact-copy h3{font-size:39px;line-height:.95;margin:15px 0}.impact-copy p{font-size:12px;color:#697163;max-width:360px}.resilience{background:#1b281b;color:#fff;padding:120px 8vw}.resilience-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.resilience h2{font-size:64px;line-height:.87}.resilience>div>p{font-size:12px;color:#849083;max-width:360px;margin-top:25px}.risk-grid{display:grid;grid-template-columns:1fr 1fr}.risk-grid>div{padding:10px 30px 35px 35px;border-left:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.08)}.risk-grid b{font-size:8px;color:#e5a82e}.risk-grid h3{font-size:28px;margin:13px 0 6px}.risk-grid p{font-size:10px;color:#7e8a7d;max-width:220px}.support{background:#f6f2e9}.support-card{display:grid;grid-template-columns:1.15fr .85fr;min-height:500px;background:#dda52b}.support-main{padding:65px}.support-main h2{font-size:68px;line-height:.86;margin:20px 0}.support-main p{max-width:470px;color:rgba(23,33,22,.63);font-size:13px}.support-actions{display:flex;gap:10px;margin-top:28px}.dark{background:#172116;color:#fff}.subtle{border:1px solid rgba(23,33,22,.3);color:#172116}.support-contact{background:#1b281b;color:#fff;padding:65px;display:flex;flex-direction:column;justify-content:center;gap:7px}.support-contact small{font-size:7px;letter-spacing:.15em;color:#899587;margin-top:15px}.support-contact strong,.support-contact a,.support-contact span{font-family:Fraunces,serif;font-size:21px}.support-contact a{color:#e8ac31;text-decoration:none}.support-contact span{font-size:18px;color:#fff}footer{background:#121b12;color:#7f8a7c;padding:27px 8vw;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.12em}footer span{color:#fff}footer a{color:#e3a72e;text-decoration:none}.reveal{opacity:0;transform:translateY(20px);transition:.7s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.site-header nav,.nav-pill{display:none}.menu{display:block}.mobile-nav{position:fixed;z-index:95;top:78px;left:0;right:0;background:#182418;padding:20px 7vw;display:none;flex-direction:column;gap:16px}.mobile-nav.open{display:flex}.mobile-nav a{color:#fff;text-decoration:none;font-size:12px}.hero-inner{left:7vw;right:7vw;top:20vh}.hero-bee{display:none}.hero-bottom{left:7vw;right:7vw;gap:22px}.hero-note{display:none}.at-glance{grid-template-columns:1fr;padding:0 7vw}.glance-label{padding-bottom:0}.glance-grid{grid-template-columns:1fr 1fr}.glance-grid>div{padding:25px 0;border-left:0;border-top:1px solid rgba(255,255,255,.08)}.glance-grid>div:nth-child(odd){margin-right:20px}.section{padding:85px 7vw}.section-top,.farm-feature,.funding,.market,.resilience-inner,.support-card{grid-template-columns:1fr;gap:35px}.farm-image{min-height:320px}.market{padding:75px 7vw}.market-inner{grid-template-columns:1fr;min-height:0}.route-map{min-height:600px}.outline-map-wrap{inset:90px 8px 45px}.route-title{left:30px;top:30px}.route-title h2{font-size:37px}.market-copy{padding:60px 7vw}.market-copy h2{font-size:54px}.phase{grid-template-columns:78px 1fr;gap:12px}.phase small{grid-column:2;text-align:left;margin-top:-7px}.statement{padding:90px 7vw}.statement-orbit{display:none}.product-grid{grid-template-columns:1fr}.product-card{min-height:440px}.journey-line{grid-template-columns:1fr;border-top:0}.journey-line article,.journey-line article:not(:first-child){border-right:0;border-top:1px solid #cbc8bd;padding:30px 0 20px 35px;min-height:150px}.journey-line article>span{left:0;top:-14px}.yield{gap:25px}.yield b{font-size:36px}.route-map{min-height:600px}.map-label text{font-size:8px}.map-label small{font-size:4.5px}.market-copy{padding:70px 7vw}.impact-grid{grid-template-columns:1fr}.impact-stat,.impact-stat:not(:first-child){border-right:0;border-bottom:1px solid #cecabe;padding:35px 0}.impact-copy{padding:45px 0}.resilience{padding:90px 7vw}.support-main,.support-contact{padding:45px}.support-main h2{font-size:56px}footer{flex-direction:column;gap:13px;text-align:center}}@media(max-width:520px){h1{font-size:52px}.hero-inner p{font-size:14px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-bottom>div:nth-child(2),.hero-bottom>div:nth-child(3){display:none}.glance-grid strong{font-size:18px}.section-top h2{font-size:47px}.farm-panel h3{font-size:37px}.product-photo{height:220px}.funding-visual{min-height:520px;padding:30px}.funding-number strong{font-size:43px}.donut{width:220px;height:220px;margin:55px auto 20px}.donut:after{width:140px;height:140px}.alloc{grid-template-columns:26px 1fr auto}.alloc strong{font-size:10px}.journey-line h3{font-size:24px}.yield{padding:28px 20px;gap:12px}.yield b{font-size:28px}.yield i{font-size:20px}.route-title{left:30px;top:35px;font-size:34px}.market-copy h2{font-size:54px}.resilience h2{font-size:52px}.risk-grid{grid-template-columns:1fr}.support-main h2{font-size:51px}.support-actions{flex-direction:column;align-items:flex-start}}

/* V2.4 — intelligent project photography */
.visual-story{padding:120px 8vw;background:#efeae0}
.visual-story-head{display:grid;grid-template-columns:1fr .8fr;gap:9vw;align-items:end;max-width:1200px;margin:0 auto 55px}
.visual-story-head h2{font-size:clamp(45px,5vw,72px);line-height:.9}
.visual-story-head p{font-size:13px;color:#6b7468;line-height:1.85;max-width:470px;margin:0}
.visual-story-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:260px 190px;gap:14px}
.story-image{margin:0;overflow:hidden;background:#d9d4c9;position:relative}
.story-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .7s ease}
.story-image:hover img{transform:scale(1.045)}
.story-large{grid-row:1 / span 2}
.story-honey{grid-column:2 / span 2}
.story-image:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(12,20,12,.18))}
.future{position:relative;overflow:hidden}
.future:before{content:"";position:absolute;inset:0;background:url("assets/images/bee-on-flower.jpg") center/cover;opacity:.22;mix-blend-mode:multiply}
.future .future-symbol,.future .product-info{position:relative;z-index:1}
@media(max-width:900px){.visual-story{padding:85px 7vw}.visual-story-head{grid-template-columns:1fr;gap:25px}.visual-story-grid{grid-template-columns:1fr 1fr;grid-template-rows:260px 220px}.story-large{grid-row:1 / span 2}.story-honey{grid-column:2;grid-row:2}}
@media(max-width:520px){.visual-story-grid{grid-template-columns:1fr;grid-template-rows:280px 220px 220px}.story-large{grid-row:auto}.story-honey{grid-column:auto;grid-row:auto}}

/* V2.3 — accurate vector Ghana market route */
.outline-map-wrap{position:absolute;inset:132px 26px 52px;display:flex;align-items:center;justify-content:center}
.ghana-route-art{width:min(94%,620px);height:100%;display:block;object-fit:contain;object-position:center;filter:drop-shadow(0 18px 30px rgba(0,0,0,.18))}
@media(max-width:900px){
  .route-map{min-height:620px}
  .outline-map-wrap{inset:105px 10px 48px}
  .ghana-route-art{width:100%;height:100%}
}
@media(max-width:520px){
  .route-map{min-height:620px}
  .ghana-route-art{width:100%;height:100%}
}

/* V2.6 — Market Pathway map separation fix
   The heading is a dedicated top band; the route graphic occupies its own canvas below it. */
.market{padding:96px 6vw;background:#1c291b;color:#fff}
.market>.route-map{position:relative;min-height:680px;overflow:hidden;background:#1c291b;border:1px solid rgba(255,255,255,.08)}
.market>.market-copy{position:relative;min-width:0}

/* Keep the heading completely outside the route drawing area. */
.market>.route-map>.route-title{
  position:absolute;
  z-index:10;
  left:44px;
  top:36px;
  width:430px;
  margin:0;
  pointer-events:none;
}
.market>.route-map>.route-title br{display:block}
.market>.route-map>.route-title em{color:#e4a82c}

/* The route drawing starts well below the heading. */
.market>.route-map>svg{
  position:absolute;
  z-index:2;
  left:9%;
  right:9%;
  top:190px;
  width:82%;
  height:405px;
  overflow:visible;
  display:block;
}

/* Subtle map field, separate from the heading. */
.market>.route-map>.map-grid{
  position:absolute;
  z-index:1;
  left:7%;right:7%;top:172px;bottom:48px;
  opacity:.55;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:54px 54px;
  border-top:1px solid rgba(255,255,255,.05);
}

/* Route line styling */
.market>.route-map>svg path{
  fill:none;
  stroke:#e4a82c;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:6 8;
  filter:drop-shadow(0 0 7px rgba(228,168,44,.22));
}

/* Node labels now live only inside the map canvas. */
.market>.route-map>.node{
  position:absolute;
  z-index:6;
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(18,29,18,.88);
  box-shadow:0 5px 18px rgba(0,0,0,.18);
  border-radius:2px;
  white-space:nowrap;
}
.market>.route-map>.node b{
  font-size:8px;
  letter-spacing:.08em;
  color:#f0b53a;
}
.market>.route-map>.node span{
  font-size:6px;
  letter-spacing:.10em;
  color:#879486;
  text-transform:uppercase;
}

/* Node positions correspond to the route graphic and cannot rise into the heading. */
.market>.route-map>.node.farm-node{left:27%;top:355px}
.market>.route-map>.node.tumu{left:37%;top:276px}
.market>.route-map>.node.wa{left:48%;top:245px}
.market>.route-map>.node.bolga{left:57%;top:220px}
.market>.route-map>.node.accra{left:65%;top:430px}

.market>.route-map>.map-foot{
  position:absolute;
  z-index:7;
  left:44px;
  bottom:23px;
  margin:0;
  font-size:7px;
  letter-spacing:.12em;
  color:#687768;
  text-transform:uppercase;
}

/* Right side remains editorial and never overlaps the map. */
.market>.market-copy{
  padding:62px 58px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.market>.market-copy h2{margin:0 0 25px}
.market>.market-copy>p{margin:0 0 24px;max-width:430px}

@media(max-width:900px){
  .market{padding:76px 7vw}
  .market>.route-map{min-height:610px}
  .market>.route-map>.route-title{left:28px;top:28px;width:360px}
  .market>.route-map>.route-title h2{font-size:38px}
  .market>.route-map>.map-grid{left:5%;right:5%;top:150px;bottom:42px}
  .market>.route-map>svg{left:5%;width:90%;top:170px;height:370px}
  .market>.route-map>.node.farm-node{left:22%;top:340px}
  .market>.route-map>.node.tumu{left:32%;top:275px}
  .market>.route-map>.node.wa{left:46%;top:245px}
  .market>.route-map>.node.bolga{left:57%;top:220px}
  .market>.route-map>.node.accra{left:66%;top:405px}
  .market>.market-copy{padding:60px 7vw}
}

@media(max-width:520px){
  .market{padding:58px 5vw}
  .market>.route-map{min-height:535px}
  .market>.route-map>.route-title{left:22px;top:23px;width:280px}
  .market>.route-map>.route-title h2{font-size:32px}
  .market>.route-map>.map-grid{top:132px;bottom:38px;background-size:42px 42px}
  .market>.route-map>svg{left:3%;width:94%;top:155px;height:320px}
  .market>.route-map>.node{padding:5px 7px;gap:5px}
  .market>.route-map>.node b{font-size:7px}
  .market>.route-map>.node span{font-size:5px}
  .market>.route-map>.node.farm-node{left:17%;top:310px}
  .market>.route-map>.node.tumu{left:28%;top:255px}
  .market>.route-map>.node.wa{left:43%;top:230px}
  .market>.route-map>.node.bolga{left:53%;top:210px}
  .market>.route-map>.node.accra{left:59%;top:365px}
  .market>.route-map>.map-foot{left:22px;bottom:16px;font-size:6px}
  .market>.market-copy{padding:50px 22px}
}

/* V2.7 — definitive market map / heading separation */
.market>.route-map{
  position:relative;
  min-height:680px;
  overflow:hidden;
}

/* Explicit heading band: nothing from the route graphic is allowed into this area. */
.market>.route-map>.route-title{
  position:absolute;
  z-index:20;
  left:44px;
  top:34px;
  width:460px;
  height:150px;
  margin:0;
  padding:0;
}

.market>.route-map>.route-title .kicker{
  margin-bottom:20px;
}

.market>.route-map>.route-title h2{
  font-size:52px;
  line-height:.9;
}

/* The route is now a genuinely separate lower canvas. */
.market>.route-map>.outline-map-wrap{
  position:absolute;
  z-index:5;
  left:30px;
  right:30px;
  top:218px;
  bottom:48px;
  inset:auto 30px 48px 30px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.market>.route-map>.outline-map-wrap .ghana-route-art{
  width:100%;
  height:100%;
  max-width:590px;
  display:block;
  object-fit:contain;
  object-position:center center;
}

.market>.route-map>.map-caption{
  position:absolute;
  z-index:25;
  left:44px;
  bottom:20px;
  margin:0;
}

@media(max-width:900px){
  .market>.route-map{
    min-height:610px;
  }

  .market>.route-map>.route-title{
    left:28px;
    top:27px;
    width:390px;
    height:125px;
  }

  .market>.route-map>.route-title h2{
    font-size:42px;
  }

  .market>.route-map>.outline-map-wrap{
    left:18px;
    right:18px;
    top:185px;
    bottom:42px;
    inset:185px 18px 42px;
  }

  .market>.route-map>.outline-map-wrap .ghana-route-art{
    max-width:560px;
  }
}

@media(max-width:520px){
  .market>.route-map{
    min-height:540px;
  }

  .market>.route-map>.route-title{
    left:22px;
    top:22px;
    width:300px;
    height:105px;
  }

  .market>.route-map>.route-title .kicker{
    margin-bottom:13px;
  }

  .market>.route-map>.route-title h2{
    font-size:33px;
  }

  .market>.route-map>.outline-map-wrap{
    left:10px;
    right:10px;
    top:150px;
    bottom:35px;
    inset:150px 10px 35px;
  }

  .market>.route-map>.map-caption{
    left:22px;
    bottom:14px;
    font-size:6px;
  }
}


/* V2.8 — definitive Market Pathway separation and footnote cleanup */
.market > .route-map{
  position:relative;
  min-height:680px;
  overflow:hidden;
}

/* Dedicated editorial heading band. The map cannot enter this area. */
.market > .route-map > .route-title{
  position:absolute;
  z-index:30;
  left:44px;
  top:34px;
  width:480px;
  height:175px;
  margin:0;
  padding:0;
  pointer-events:none;
}

.market > .route-map > .route-title .kicker{
  display:block;
  margin-bottom:18px;
}

.market > .route-map > .route-title h2{
  margin:0;
  font-size:52px;
  line-height:.9;
}

/* A physically separate lower map canvas. */
.market > .route-map > .outline-map-wrap{
  position:absolute;
  z-index:5;
  left:30px;
  right:30px;
  top:235px;
  bottom:28px;
  inset:235px 30px 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.market > .route-map > .outline-map-wrap .ghana-route-art{
  display:block;
  width:auto;
  height:100%;
  max-width:500px;
  max-height:100%;
  object-fit:contain;
  object-position:center center;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.16));
}

/* Remove any legacy footnote/caption if present. */
.market > .route-map > .map-caption,
.market > .route-map > .map-foot{
  display:none !important;
}

@media(max-width:900px){
  .market > .route-map{
    min-height:620px;
  }

  .market > .route-map > .route-title{
    left:28px;
    top:28px;
    width:390px;
    height:145px;
  }

  .market > .route-map > .route-title h2{
    font-size:42px;
  }

  .market > .route-map > .outline-map-wrap{
    left:18px;
    right:18px;
    top:200px;
    bottom:24px;
    inset:200px 18px 24px;
  }

  .market > .route-map > .outline-map-wrap .ghana-route-art{
    max-width:460px;
  }
}

@media(max-width:520px){
  .market > .route-map{
    min-height:555px;
  }

  .market > .route-map > .route-title{
    left:22px;
    top:22px;
    width:300px;
    height:112px;
  }

  .market > .route-map > .route-title .kicker{
    margin-bottom:12px;
  }

  .market > .route-map > .route-title h2{
    font-size:33px;
  }

  .market > .route-map > .outline-map-wrap{
    left:10px;
    right:10px;
    top:158px;
    bottom:18px;
    inset:158px 10px 18px;
  }

  .market > .route-map > .outline-map-wrap .ghana-route-art{
    max-width:380px;
  }
}

/* V2.9 — Interactive Market Pathway */
.market > .route-map > .outline-map-wrap{
  isolation:isolate;
}

.interactive-route-map{
  position:relative;
  z-index:4;
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.18));
}

.interactive-route-map .route-node{
  cursor:pointer;
  transition:filter .2s ease, transform .2s ease;
  transform-box:fill-box;
  transform-origin:center;
  outline:none;
}

.interactive-route-map .route-node:hover,
.interactive-route-map .route-node:focus,
.interactive-route-map .route-node.is-active{
  filter:drop-shadow(0 0 10px rgba(228,168,44,.95));
}

.interactive-route-map .route-node.is-active{
  stroke:#f6c85b;
  stroke-width:3.5;
}

.interactive-route-map .route-label{
  cursor:pointer;
  transition:transform .2s ease, opacity .2s ease;
  transform-box:fill-box;
  transform-origin:center;
}

.interactive-route-map .route-label.is-active rect{
  stroke:#e4a82c;
  stroke-opacity:.75;
}

.interactive-route-map .route-label.is-active text:first-of-type{
  fill:#fff;
}

.interactive-route-map .route-progress{
  transition:filter .25s ease, stroke-width .25s ease;
}

.map-loading{
  position:absolute;
  z-index:8;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  color:#dca22a;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.map-detail{
  position:absolute;
  z-index:12;
  right:18px;
  bottom:18px;
  width:min(265px,42%);
  padding:18px 18px 16px;
  background:rgba(15,27,16,.94);
  border:1px solid rgba(228,168,44,.35);
  box-shadow:0 18px 45px rgba(0,0,0,.28);
  backdrop-filter:blur(12px);
  opacity:0;
  transform:translateY(8px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}

.map-detail.is-visible{
  opacity:1;
  transform:translateY(0);
}

.map-detail-step,
.map-detail-stage{
  display:block;
  color:#e4a82c;
  font-size:7px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.map-detail strong{
  display:block;
  margin-top:7px;
  color:#f4f5ee;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:28px;
  line-height:1;
}

.map-detail b{
  display:block;
  margin-top:5px;
  color:#e4a82c;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.map-detail p{
  margin:10px 0 13px;
  color:#c5cfc2;
  font-size:10px;
  line-height:1.55;
}

.map-hint{
  position:absolute;
  z-index:10;
  left:18px;
  bottom:18px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(15,27,16,.72);
  color:#899589;
  font-size:7px;
  letter-spacing:.12em;
  text-transform:uppercase;
  pointer-events:none;
}

@media(max-width:900px){
  .map-detail{
    right:12px;
    bottom:12px;
    width:min(245px,45%);
    padding:14px;
  }
  .map-detail strong{font-size:24px}
  .map-detail p{font-size:9px}
  .map-hint{left:12px;bottom:12px}
}

@media(max-width:520px){
  .map-detail{
    right:10px;
    left:10px;
    bottom:10px;
    width:auto;
    padding:12px;
  }
  .map-detail strong{font-size:21px}
  .map-detail p{font-size:9px;line-height:1.45;margin:7px 0 9px}
  .map-hint{display:none}
  .interactive-route-map{transform:translateY(-20px) scale(.92)}
}
