/* ==========================================================================
   Eastern Trading — Design System
   Palette: Deep Navy (dominant), White, Gold (sparing), Light Blue (selective)
   ========================================================================== */

:root{
  /* Palette extracted directly from the Eastern Trading Imports logo
     (navy wordmark + arrow, gold ribbon, light-blue globe band). */
  --navy-950:#0a121f;
  --navy-900:#101d32;
  --navy-800:#182a49; /* exact logo navy */
  --navy-700:#223c68;
  --navy-600:#2c4e87;
  --blue-500:#4a85b7; /* exact logo light blue */
  --blue-400:#72a0c7;
  --blue-300:#b3c9dc;
  --blue-100:#ebeef0;
  --gold-600:#a97d2d;
  --gold-500:#c9973a; /* logo gold */
  --gold-400:#d7af67;
  --gold-100:#f1e5d0;
  --white:#ffffff;
  --off-white:#f7f8fa;
  --grey-50:#f4f5f7;
  --grey-100:#eceef1;
  --grey-300:#c7ccd4;
  --grey-500:#7c8494;
  --grey-700:#4a5162;
  --ink:#0d1526;

  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

  --container: 1240px;
  --gutter: clamp(20px, 5vw, 64px);

  --ease: cubic-bezier(.4,0,.2,1);
  --ease-out-expo: cubic-bezier(.16,1,.3,1);
  --dur-fast: .25s;
  --dur-med: .6s;
  --dur-slow: 1.1s;

  --radius-sm: 3px;
  --radius-md: 6px;
  --shadow-sm: 0 2px 10px rgba(6,15,31,.06);
  --shadow-md: 0 12px 40px rgba(6,15,31,.10);
  --shadow-lg: 0 24px 70px rgba(6,15,31,.18);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,p{margin:0;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;}
section{position:relative;}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-weight:800;
  letter-spacing:-0.01em;
  line-height:1.08;
  color:var(--navy-900);
}
.h1{font-size:clamp(2.6rem,4.6vw,4.4rem);}
.h2{font-size:clamp(2rem,3.2vw,3rem);}
.h3{font-size:clamp(1.4rem,2vw,1.9rem);}
.h4{font-size:1.05rem;}
p.lead{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.65;color:var(--grey-700);}
p{font-size:1rem;line-height:1.75;color:var(--grey-700);}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-600);
}
.eyebrow::before{content:'';width:26px;height:1.5px;background:var(--gold-500);display:inline-block;}
.eyebrow.on-dark{color:var(--gold-400);}
.eyebrow.center{justify-content:center;}
.eyebrow.center::before{display:none;}

.section-head{max-width:640px;margin-bottom:52px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head .h2{margin-top:14px;}
.section-head p{margin-top:18px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 32px;
  font-size:.82rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  border-radius:2px;border:1px solid transparent;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
  white-space:nowrap;
  position:relative;overflow:hidden;isolation:isolate;
}
.btn::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg, transparent 35%, rgba(255,255,255,.55) 48%, rgba(255,255,255,.55) 52%, transparent 65%);
  mix-blend-mode:overlay;
  transform:translateX(-130%);
  transition:transform .65s var(--ease-out-expo);
}
.btn:hover::before{transform:translateX(130%);}
.btn-gold{background:var(--gold-500);color:var(--navy-950);}
.btn-gold:hover{background:var(--gold-400);transform:translateY(-2px);box-shadow:0 10px 28px rgba(201,151,58,.38),var(--shadow-md);}
.btn-outline-light{border-color:rgba(255,255,255,.55);color:var(--white);background:transparent;}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.08);transform:translateY(-2px);}
.btn-outline-navy{border-color:var(--navy-700);color:var(--navy-800);background:transparent;}
.btn-outline-navy:hover{background:var(--navy-900);color:#fff;border-color:var(--navy-900);transform:translateY(-2px);}
.btn-navy{background:var(--navy-900);color:#fff;}
.btn-navy:hover{background:var(--navy-800);transform:translateY(-2px);box-shadow:0 10px 28px rgba(16,29,50,.35),var(--shadow-md);}
.btn-arrow{position:relative;padding-right:28px;}
.btn-arrow::after{content:'→';margin-left:2px;transition:transform var(--dur-fast) var(--ease);}
.btn-arrow:hover::after{transform:translateX(4px);}
.btn-block{width:100%;}

/* ---------- Scroll progress ---------- */
.scroll-progress{
  position:fixed;top:0;left:0;right:0;height:2.5px;z-index:300;
  background:linear-gradient(90deg,var(--gold-500),var(--gold-400));
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform .12s linear;
}

/* ---------- Nav ---------- */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  padding:26px 0;
  transition:padding var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
  background:transparent;
}
.site-nav .container{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.site-nav.is-solid{background:rgba(10,24,48,.97);backdrop-filter:blur(10px);padding:16px 0;box-shadow:0 1px 0 rgba(255,255,255,.06);}
.site-nav.on-light:not(.is-solid) .brand-word,
.site-nav.on-light:not(.is-solid) .nav-link{color:var(--navy-900);}

.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.brand-mark-img{
  height:38px;width:auto;flex-shrink:0;display:block;
}
.brand-word{
  color:#fff;font-weight:800;font-size:1.02rem;letter-spacing:.02em;line-height:1.15;
  display:flex;flex-direction:column;
}
.brand-word small{
  font-weight:600;font-size:.6rem;letter-spacing:.18em;color:var(--gold-400);text-transform:uppercase;margin-top:2px;
}

.nav-links{display:flex;align-items:center;gap:30px;}
.nav-link{
  font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.86);position:relative;padding:6px 0;white-space:nowrap;
  transition:color var(--dur-fast) var(--ease);
}
.nav-link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold-400);transition:width var(--dur-fast) var(--ease);}
.nav-link:hover,.nav-link.is-active{color:#fff;}
.nav-link:hover::after,.nav-link.is-active::after{width:100%;}
.nav-cta{display:flex;align-items:center;gap:18px;}
.nav-cta .btn{padding:13px 26px;}

.nav-burger{display:none;flex-direction:column;gap:5px;width:26px;background:none;border:0;padding:6px;}
.nav-burger span{display:block;width:100%;height:2px;background:#fff;transition:transform var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease);}
.site-nav.on-light:not(.is-solid) .nav-burger span{background:var(--navy-900);}

.mobile-panel{
  position:fixed;inset:0;z-index:199;background:var(--navy-950);
  display:flex;flex-direction:column;justify-content:center;
  padding:32px var(--gutter);
  transform:translateY(-100%);opacity:0;transition:transform .45s var(--ease),opacity .3s var(--ease);
  pointer-events:none;
}
.mobile-panel.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
.mobile-panel .nav-link{font-size:1.3rem;color:#fff;padding:14px 0;display:block;border-bottom:1px solid rgba(255,255,255,.08);}
.mobile-panel .btn{margin-top:26px;}

/* ---------- Hero ---------- */
.hero{
  min-height:88vh;display:flex;align-items:center;
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--navy-950) 0%, var(--navy-800) 55%, var(--navy-700) 100%);
  color:#fff;
  padding-top:120px;padding-bottom:80px;
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media .photo-panel{position:absolute;inset:0;border-radius:0;}
.hero-media::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg, rgba(6,15,31,.94) 0%, rgba(6,15,31,.82) 32%, rgba(10,24,48,.55) 58%, rgba(10,24,48,.35) 100%);
}

/* Aurora glow — ambient movement behind the hero copy */
.hero-aurora{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;}
.hero-aurora span{
  position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;
  mix-blend-mode:screen;
}
.hero-aurora span:nth-child(1){
  width:46vw;height:46vw;max-width:620px;max-height:620px;
  background:radial-gradient(circle, rgba(201,151,58,.55), transparent 68%);
  top:-14%;left:52%;animation:auroraDrift1 22s ease-in-out infinite;
}
.hero-aurora span:nth-child(2){
  width:36vw;height:36vw;max-width:520px;max-height:520px;
  background:radial-gradient(circle, rgba(74,133,183,.55), transparent 68%);
  bottom:-18%;left:66%;animation:auroraDrift2 26s ease-in-out infinite;
}
.hero-aurora span:nth-child(3){
  width:28vw;height:28vw;max-width:380px;max-height:380px;
  background:radial-gradient(circle, rgba(74,133,183,.35), transparent 68%);
  top:22%;left:8%;animation:auroraDrift3 30s ease-in-out infinite;
}
@keyframes auroraDrift1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-6%,8%) scale(1.12);}}
@keyframes auroraDrift2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(8%,-6%) scale(1.08);}}
@keyframes auroraDrift3{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(5%,10%) scale(1.15);}}

.hero .container{position:relative;z-index:2;min-width:0;width:100%;}
.hero-content{max-width:620px;min-width:0;}
.hero-content .eyebrow{margin-bottom:22px;}
.hero-content .h1{color:#fff;margin-bottom:24px;}
.hero-content .h1 .accent{
  background:linear-gradient(100deg,var(--gold-400),var(--gold-500) 55%,var(--gold-600));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-content p.lead{color:rgba(255,255,255,.86);margin-bottom:14px;}
.hero-content p.sub{color:rgba(255,255,255,.68);font-size:1rem;margin-bottom:38px;max-width:560px;}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;}

.hero-content > *{opacity:0;transform:translateY(24px);animation:heroIn 1s var(--ease-out-expo) both;}
.hero-content > *:nth-child(1){animation-delay:.15s;}
.hero-content > *:nth-child(2){animation-delay:.30s;}
.hero-content > *:nth-child(3){animation-delay:.45s;}
.hero-content > *:nth-child(4){animation-delay:.58s;}
.hero-content > *:nth-child(5){animation-delay:.72s;}
@keyframes heroIn{to{opacity:1;transform:translateY(0);}}

.hero-trustbar{
  position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.14);
  margin-top:64px;padding-top:26px;
  opacity:0;animation:heroIn 1s var(--ease-out-expo) both;animation-delay:.9s;
}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.marquee-track{display:flex;width:max-content;gap:44px;animation:marqueeScroll 26s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.hero-trustbar ul{display:flex;flex-wrap:nowrap;gap:44px;flex-shrink:0;}
.hero-trustbar li{
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);
  display:flex;align-items:center;gap:10px;white-space:nowrap;
}
.hero-trustbar li::before{content:'';width:5px;height:5px;background:var(--gold-500);border-radius:50%;}
@keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.scroll-cue{
  position:absolute;left:50%;bottom:28px;z-index:2;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  opacity:0;animation:heroIn 1s var(--ease-out-expo) 1.1s both, cueBob 2.4s ease-in-out 2.1s infinite;
}
.scroll-cue span{width:1px;height:30px;background:linear-gradient(180deg,rgba(255,255,255,.65),transparent);}
@keyframes cueBob{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,8px);}}

/* page hero (interior pages) */
.page-hero{
  background:linear-gradient(160deg,var(--navy-950),var(--navy-800));
  color:#fff;padding:190px 0 100px;position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(circle at 15% 20%, rgba(201,160,74,.10), transparent 40%), radial-gradient(circle at 85% 80%, rgba(63,127,196,.16), transparent 45%);
}
.page-hero > .photo-panel{position:absolute;inset:0;opacity:.55;}
.page-hero .container{position:relative;z-index:1;}
.page-hero .eyebrow{margin-bottom:18px;}
.page-hero .h1{color:#fff;max-width:760px;}
.page-hero p.lead{color:rgba(255,255,255,.78);max-width:620px;margin-top:20px;}
.breadcrumb{display:flex;gap:8px;align-items:center;font-size:.75rem;color:rgba(255,255,255,.5);letter-spacing:.06em;text-transform:uppercase;margin-bottom:26px;}
.breadcrumb a:hover{color:#fff;}

/* ---------- Photo placeholder panels ---------- */
.photo-panel{
  position:relative;overflow:hidden;background:
    linear-gradient(135deg,var(--navy-800) 0%,var(--navy-700) 45%,var(--navy-600) 100%);
  isolation:isolate;
}
.photo-panel::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(ellipse at center, black 0%, transparent 78%);
}
.photo-panel::after{
  content:'';position:absolute;inset:-10%;
  background:radial-gradient(circle at 30% 25%, rgba(220,185,106,.16), transparent 42%),
             radial-gradient(circle at 75% 75%, rgba(111,163,216,.22), transparent 48%);
  animation:ppDrift 16s ease-in-out infinite;
}
/* Real photography — hide the placeholder grid texture and ambient colour
   wash (both are placeholder-only decoration; on a real, bright photo the
   wash blows out toward white, so real photos are shown at full fidelity). */
.photo-panel.has-photo::before{display:none;}
.photo-panel.has-photo::after{display:none;}
.pp-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.1s var(--ease-out-expo);
}
.commodity-card:hover .pp-photo{transform:scale(1.09);}
.split:hover .pp-photo,.featured:hover .pp-photo{transform:scale(1.05);}
@keyframes ppDrift{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(-2.5%,3%) scale(1.06);}
}
.photo-panel .pp-icon{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.16);z-index:1;
  animation:ppFloat 6s ease-in-out infinite;
}
.photo-panel .pp-icon svg{width:34%;max-width:220px;height:auto;}
@keyframes ppFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.photo-panel .pp-tag{
  position:absolute;left:18px;bottom:16px;z-index:2;
  font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.42);
  border-left:2px solid rgba(201,160,74,.55);padding-left:10px;
  max-width:78%;line-height:1.5;
}
.pp-shine{
  position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
}
.pp-shine::after{
  content:'';position:absolute;top:-40%;bottom:-40%;left:-30%;width:22%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.16), transparent);
  transform:skewX(-18deg);
  animation:ppShine 8s ease-in-out infinite;
  animation-delay:calc(var(--shine-delay, 0) * 1s);
}
@keyframes ppShine{
  0%{left:-30%;opacity:0;}
  8%{opacity:.9;}
  22%{opacity:0;}
  100%{left:130%;opacity:0;}
}
.photo-panel.light .pp-shine::after{background:linear-gradient(115deg, transparent, rgba(10,24,48,.07), transparent);}
.photo-panel.light{background:linear-gradient(135deg,var(--blue-100),var(--grey-50));}
/* stagger the shine sweep across grids so cards don't pulse in unison */
.commodity-grid .commodity-card:nth-child(4n+1) .pp-shine::after{animation-delay:0s;}
.commodity-grid .commodity-card:nth-child(4n+2) .pp-shine::after{animation-delay:1.8s;}
.commodity-grid .commodity-card:nth-child(4n+3) .pp-shine::after{animation-delay:3.6s;}
.commodity-grid .commodity-card:nth-child(4n+4) .pp-shine::after{animation-delay:5.4s;}
.commodity-grid .commodity-card:nth-child(4n+2) .photo-panel::after{animation-delay:-4s;}
.commodity-grid .commodity-card:nth-child(4n+3) .photo-panel::after{animation-delay:-8s;}
.commodity-grid .commodity-card:nth-child(4n+4) .photo-panel::after{animation-delay:-12s;}
.commodity-grid .commodity-card:nth-child(4n+2) .pp-icon{animation-delay:-1.5s;}
.commodity-grid .commodity-card:nth-child(4n+3) .pp-icon{animation-delay:-3s;}
.commodity-grid .commodity-card:nth-child(4n+4) .pp-icon{animation-delay:-4.5s;}
.photo-panel.light::before{background-image:linear-gradient(rgba(10,24,48,.05) 1px, transparent 1px),linear-gradient(90deg, rgba(10,24,48,.05) 1px, transparent 1px);}
.photo-panel.light .pp-icon{color:rgba(10,24,48,.10);}
.photo-panel.light .pp-tag{color:rgba(10,24,48,.4);border-left-color:rgba(169,129,47,.6);}

/* ---------- Split sections ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;min-width:0;}
.split .split-media{min-height:560px;position:relative;overflow:hidden;min-width:0;}
.split .split-media > .photo-panel{position:absolute;inset:0;}
.split .split-copy{display:flex;align-items:center;min-width:0;}
.split-copy-inner{padding:80px var(--gutter);max-width:560px;margin-left:auto;min-width:0;}
.split.media-left{direction:rtl;}
.split.media-left .split-copy-inner{direction:ltr;margin-left:0;margin-right:auto;}

.bleed-section{padding:0;position:relative;overflow:hidden;}
.bleed-section > .photo-panel{position:absolute;inset:0;}
.section{padding:120px 0;}
.section.tight{padding:90px 0;}
.bg-white{background:var(--white);}
.bg-off{background:var(--off-white);}
.bg-navy{background:linear-gradient(180deg,var(--navy-950),var(--navy-800));color:#fff;}
.bg-navy .h2,.bg-navy .h3{color:#fff;}
.bg-navy p{color:rgba(255,255,255,.72);}

/* ---------- Trust feature grid ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:56px;}
.feature-grid > *{min-width:0;}
.feature-item{border-top:2px solid var(--gold-500);padding-top:20px;}
.feature-item h4{margin-bottom:10px;color:var(--navy-900);}
.feature-item p{font-size:.94rem;}
.feature-grid.on-dark .feature-item{border-top-color:var(--gold-400);}
.feature-grid.on-dark h4{color:#fff;}

/* ---------- Commodity cards ---------- */
.commodity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.commodity-card{
  background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
  display:flex;flex-direction:column;
}
.commodity-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.commodity-card .photo-panel{height:210px;}
.commodity-card .photo-panel .pp-icon{align-items:flex-start;padding-top:20px;}
.commodity-card .photo-panel .pp-icon svg{width:26%;max-width:64px;}
.commodity-card .photo-panel .pp-tag{
  font-size:.58rem;line-height:1.45;max-width:88%;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.commodity-card-body{padding:26px 24px 30px;flex:1;display:flex;flex-direction:column;}
.commodity-card-body .tag{font-size:.66rem;font-weight:700;letter-spacing:.12em;color:var(--gold-600);text-transform:uppercase;margin-bottom:8px;}
.commodity-card-body h3{font-size:1.15rem;margin-bottom:12px;color:var(--navy-900);}
.commodity-card-body p{font-size:.9rem;flex:1;}
.commodity-card-body .card-link{margin-top:16px;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-800);display:inline-flex;align-items:center;gap:8px;}
.commodity-card-body .card-link::after{content:'→';transition:transform var(--dur-fast) var(--ease);}
.commodity-card:hover .card-link::after{transform:translateX(4px);}

.markets-cta{margin-top:64px;text-align:center;background:var(--off-white);border:1px solid var(--grey-100);padding:56px var(--gutter);border-radius:var(--radius-md);}
.markets-cta h3{margin-bottom:12px;}
.markets-cta p{max-width:560px;margin:0 auto 26px;}

/* ---------- Global connection / process ---------- */
.world-map-wrap{position:absolute;inset:0;opacity:.55;z-index:0;pointer-events:none;}
.world-map-wrap .ring{transform-origin:600px 300px;animation:mapSpin linear infinite;}
.world-map-wrap .ring-1{animation-duration:140s;}
.world-map-wrap .ring-2{animation-duration:100s;animation-direction:reverse;}
.world-map-wrap .ring-3{animation-duration:70s;}
@keyframes mapSpin{to{transform:rotate(360deg);}}
.world-map-wrap .map-path{
  stroke-dasharray:900;stroke-dashoffset:900;
  transition:stroke-dashoffset 2.4s var(--ease-out-expo);
}
.world-map-wrap.is-visible .map-path{stroke-dashoffset:0;}
.world-map-wrap .map-dot{animation:mapDotPulse 3.2s ease-in-out infinite;transform-origin:center;transform-box:fill-box;}
@keyframes mapDotPulse{0%,100%{opacity:.75;transform:scale(1);}50%{opacity:1;transform:scale(1.6);}}
.process-row{
  display:flex;align-items:center;justify-content:space-between;margin-top:60px;flex-wrap:wrap;gap:18px 0;
}
.process-step{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;min-width:100px;text-align:center;}
.process-step .num{
  width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(220,185,106,.55);
  display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--gold-400);font-size:.95rem;
}
.process-step span.label{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;}
.process-arrow{color:rgba(255,255,255,.3);font-size:1.2rem;flex:0 0 auto;padding:0 6px;}
.process-note{max-width:640px;margin:44px auto 0;text-align:center;}
.process-note p{color:rgba(255,255,255,.66);}

/* ---------- Featured commodity editorial ---------- */
.featured{display:grid;grid-template-columns:1.1fr .9fr;align-items:stretch;}
.featured .photo-panel{min-height:620px;}
.featured-copy{display:flex;align-items:center;background:var(--off-white);}
.featured-copy-inner{padding:80px var(--gutter);max-width:520px;}

/* ---------- Numbered approach cards ---------- */
.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 36px;margin-top:60px;position:relative;}
.approach-card{position:relative;padding-top:8px;}
.approach-card .num{font-size:2.4rem;font-weight:800;color:var(--gold-500);opacity:.85;line-height:1;margin-bottom:18px;font-variant-numeric:tabular-nums;}
.approach-card h4{margin-bottom:10px;font-size:1.15rem;}
.approach-card p{font-size:.92rem;}
.approach-line{
  position:absolute;top:20px;left:0;right:0;height:1px;background:repeating-linear-gradient(90deg, var(--grey-300) 0 6px, transparent 6px 12px);
  z-index:-1;display:none;
}

/* ---------- Icon list ---------- */
.icon-list{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 40px;margin-top:44px;}
.icon-list-item{display:flex;gap:16px;align-items:flex-start;}
.icon-list-item .icn{
  width:44px;height:44px;flex-shrink:0;border-radius:50%;
  border:1px solid var(--gold-400);display:flex;align-items:center;justify-content:center;color:var(--gold-500);
}
.icon-list-item .icn svg{width:20px;height:20px;}
.icon-list-item h4{font-size:.98rem;margin-bottom:4px;}
.icon-list-item p{font-size:.88rem;}
.bg-navy .icon-list-item h4{color:#fff;}
.bg-navy .icon-list-item .icn{border-color:rgba(220,185,106,.55);}
.icon-list-4col{grid-template-columns:repeat(4,1fr);max-width:760px;margin:50px auto 0;}
.icon-list-item-stack{flex-direction:column;text-align:center;align-items:center;}
.icon-list-item-stack h4{margin-top:12px;}
.icon-list-on-dark .icon-list-item-stack h4{color:#fff;}

/* ---------- Info grid (documentation) ---------- */
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--grey-100);border:1px solid var(--grey-100);margin-top:50px;}
.info-cell{background:#fff;padding:30px 24px;}
.info-cell .idx{font-size:.72rem;font-weight:700;color:var(--gold-600);letter-spacing:.1em;margin-bottom:10px;}
.info-cell h4{font-size:.98rem;}
.disclaimer-note{margin-top:34px;font-size:.82rem;color:var(--grey-500);border-top:1px solid var(--grey-100);padding-top:22px;}

/* ---------- Opportunities ---------- */
.opp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:54px;}
.opp-card{background:#fff;border:1px solid var(--grey-100);border-radius:var(--radius-md);padding:30px;box-shadow:var(--shadow-sm);}
.opp-card .opp-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;}
.opp-status{font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:20px;background:var(--gold-100);color:var(--gold-600);}
.opp-ref{font-size:.72rem;color:var(--grey-500);font-family:monospace;letter-spacing:.03em;}
.opp-card h4{font-size:1.1rem;margin-bottom:4px;}
.opp-card .cat{font-size:.78rem;color:var(--grey-500);margin-bottom:18px;}
.opp-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;margin-bottom:22px;}
.opp-meta div span{display:block;}
.opp-meta .lbl{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-500);margin-bottom:3px;}
.opp-meta .val{font-size:.88rem;color:var(--navy-900);font-weight:600;}
.opp-card .btn{width:100%;}
.opp-note{margin-top:44px;text-align:center;padding:40px;background:var(--off-white);border-radius:var(--radius-md);}

/* ---------- Forms ---------- */
.form-panel{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:52px;}
.form-panel.on-dark{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);box-shadow:none;}
.form-panel h3{margin-bottom:8px;}
.form-panel > p{margin-bottom:32px;}
.bg-navy .form-panel > p{color:rgba(255,255,255,.65);}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.field{margin-bottom:20px;}
.field.full{grid-column:1/-1;}
.field label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-700);margin-bottom:8px;}
.on-dark .field label{color:rgba(255,255,255,.75);}
.field input,.field select,.field textarea{
  width:100%;padding:13px 14px;border:1px solid var(--grey-300);border-radius:2px;
  font-size:.92rem;background:#fff;color:var(--ink);transition:border-color var(--dur-fast);
}
.on-dark .field input,.on-dark .field select,.on-dark .field textarea{
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.25);color:#fff;
}
.on-dark .field input::placeholder,.on-dark .field textarea::placeholder{color:rgba(255,255,255,.4);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold-500);}
.field textarea{resize:vertical;min-height:110px;}
.field-file{
  border:1.5px dashed var(--grey-300);border-radius:2px;padding:22px;text-align:center;font-size:.84rem;color:var(--grey-500);
}
.on-dark .field-file{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.6);}
.field-file input{margin-top:10px;}
.form-success{display:none;text-align:center;padding:40px 0;}
.form-success.is-visible{display:block;}
.form-success .icn-ok{width:56px;height:56px;border-radius:50%;background:var(--gold-100);color:var(--gold-600);display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
.on-dark .form-success .icn-ok{background:rgba(220,185,106,.16);color:var(--gold-400);}
.form-success h4{margin-bottom:10px;}
form.is-submitted .form-fields{display:none;}
form.is-submitted .form-note{display:none;}
/* Honeypot — invisible to people, present for spam bots that fill every field */
.field-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;}
.form-note{margin-top:16px;font-size:.78rem;color:var(--grey-500);text-align:center;}
.on-dark .form-note{color:rgba(255,255,255,.5);}

.cta-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}

/* ---------- Final CTA ---------- */
.final-cta{position:relative;overflow:hidden;}
.final-cta .photo-panel{position:absolute;inset:0;opacity:.5;}
.final-cta .container{position:relative;z-index:1;}
.final-cta-inner{text-align:center;max-width:720px;margin:0 auto;}
.final-cta .h1{color:#fff;margin-bottom:20px;}
.final-cta p.lead{color:rgba(255,255,255,.78);margin-bottom:44px;}
.final-cta-btns{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}
.final-cta-btns .btn{min-width:250px;}
.final-cta .fine{margin-top:26px;font-size:.82rem;color:rgba(255,255,255,.5);}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950);color:rgba(255,255,255,.65);padding:90px 0 0;}
.footer-top{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:40px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-top > *{min-width:0;}
.footer-logo-link{display:inline-flex;align-items:center;gap:16px;margin-bottom:22px;}
.footer-logo-icon{height:52px;width:auto;flex-shrink:0;}
.footer-logo-text{display:flex;flex-direction:column;line-height:1.02;}
.footer-logo-text .l1,.footer-logo-text .l2{font-weight:800;font-size:1.5rem;letter-spacing:.01em;color:#fff;}
.footer-logo-text small{margin-top:8px;font-weight:600;font-size:.64rem;letter-spacing:.18em;color:var(--gold-400);text-transform:uppercase;}
.footer-brand p{color:rgba(255,255,255,.55);max-width:280px;font-size:.92rem;}
.footer-col h5{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-400);margin-bottom:20px;}
.footer-col li{margin-bottom:12px;}
.footer-col a{font-size:.88rem;color:rgba(255,255,255,.6);transition:color var(--dur-fast);}
.footer-col a:hover{color:#fff;}
.footer-col .muted{color:rgba(255,255,255,.35);font-size:.82rem;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:26px 0;font-size:.78rem;color:rgba(255,255,255,.4);flex-wrap:wrap;gap:12px;}
.footer-bottom a{color:rgba(255,255,255,.5);}
.footer-bottom a:hover{color:#fff;}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(34px) scale(.975);filter:blur(6px);transition:opacity .9s var(--ease-out-expo), transform .9s var(--ease-out-expo), filter .9s var(--ease-out-expo);}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
.reveal-stagger > *{opacity:0;transform:translateY(26px) scale(.975);filter:blur(5px);transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo), filter .8s var(--ease-out-expo);}
.reveal-stagger.is-visible > *{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.03s;}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.10s;}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.17s;}
.reveal-stagger.is-visible > *:nth-child(4){transition-delay:.24s;}
.reveal-stagger.is-visible > *:nth-child(5){transition-delay:.31s;}
.reveal-stagger.is-visible > *:nth-child(6){transition-delay:.38s;}
.reveal-stagger.is-visible > *:nth-child(7){transition-delay:.45s;}
.reveal-stagger.is-visible > *:nth-child(8){transition-delay:.52s;}

@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-stagger > *{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
  .hero-aurora,.photo-panel::after,.photo-panel::before,.pp-icon,.pp-shine::after,.world-map-wrap .ring,.world-map-wrap .map-dot,.marquee-track,.scroll-cue,.hero-content > *{animation:none !important;}
  .world-map-wrap .map-path{transition:none !important;stroke-dashoffset:0 !important;}
  .hero-content > *{opacity:1 !important;transform:none !important;}
}

/* ---------- Misc ---------- */
.divider{height:1px;background:var(--grey-100);}
.badge-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px;}
.legal-content h2{margin-top:44px;margin-bottom:14px;font-size:1.3rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p,.legal-content li{color:var(--grey-700);margin-bottom:14px;}
.legal-content ul{padding-left:22px;list-style:disc;}
.legal-updated{color:var(--grey-500);font-size:.85rem;margin-bottom:40px;}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1080px){
  .nav-links,.nav-cta{display:none;}
  .nav-burger{display:flex;flex-shrink:0;}
  .brand{min-width:0;}
  .brand-word{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .feature-grid{grid-template-columns:repeat(2,1fr);}
  .commodity-grid{grid-template-columns:repeat(2,1fr);}
  .approach-grid{grid-template-columns:repeat(2,1fr);}
  .info-grid{grid-template-columns:repeat(2,1fr);}
  .opp-grid{grid-template-columns:repeat(2,1fr);}
  .split,.featured{grid-template-columns:1fr;}
  .split .split-media,.featured .photo-panel{min-height:340px;}
  .split-copy-inner{padding:64px var(--gutter);max-width:100%;margin:0;}
  .featured-copy-inner{padding:64px var(--gutter);max-width:100%;}
  .cta-split{grid-template-columns:1fr;}
}
@media (max-width:420px){
  .brand-word{font-size:.86rem;}
  .brand-mark-img{height:32px;}
  .btn{white-space:normal;text-align:center;line-height:1.3;}
}
@media (max-width:720px){
  .section{padding:80px 0;}
  .hero{min-height:auto;padding-top:150px;padding-bottom:60px;}
  .hero-ctas{flex-direction:column;align-items:stretch;}
  .hero-ctas .btn{width:100%;}
  .hero-trustbar ul{gap:12px 24px;}
  .feature-grid{grid-template-columns:1fr;}
  .commodity-grid{grid-template-columns:1fr;}
  .approach-grid{grid-template-columns:1fr;}
  .info-grid{grid-template-columns:1fr;}
  .opp-grid{grid-template-columns:1fr;}
  .icon-list{grid-template-columns:1fr;}
  .field-grid{grid-template-columns:1fr;}
  .process-row{flex-direction:column;}
  .process-arrow{transform:rotate(90deg);padding:2px 0;}
  .final-cta-btns{flex-direction:column;align-items:stretch;}
  .final-cta-btns .btn{width:100%;min-width:0;}
  .footer-top{grid-template-columns:1fr 1fr;gap:36px;}
  .footer-brand{grid-column:1/-1;}
  .form-panel{padding:30px 22px;}
  .page-hero{padding:150px 0 70px;}
}
