/* CargoNX product page. Site palette: purple #562c51, gold #c5a35e, white / soft grey */
.cx { --purple:#562c51; --deep:#2f1730; --plum:#6f3a69; --gold:#c5a35e; --goldlt:#f4ecd9; --ink:#222; --muted:#777; --soft:#f7f7f7; --line:#ece6ea; color:var(--muted); font-size:15px; line-height:1.7; }
.cx *, .cx *::before, .cx *::after { box-sizing:border-box; }
.cx a { text-decoration:none; }
.cx-wrap { width:100%; max-width:1140px; margin:0 auto; padding:0 20px; }
.cx section { padding:84px 0; }
.cx-kicker { font-family:'bold',sans-serif; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.cx h1, .cx h2 { font-family:'bold',sans-serif; text-transform:none; letter-spacing:-.02em; line-height:1.15; margin:14px 0 16px; }
.cx h2 { font-size:clamp(28px,3.4vw,40px); color:var(--purple); }
.cx h2::after, .cx h1::after { content:none; }
.cx-intro { max-width:680px; font-size:16px; color:var(--muted); margin:0; }
.cx-center { text-align:center; } .cx-center .cx-intro { margin:0 auto; }
.cx-btns { display:flex; flex-wrap:wrap; gap:12px; }
.cx-center .cx-btns { justify-content:center; }
.cx-btn { display:inline-flex; align-items:center; padding:14px 28px; font-family:'bold',sans-serif; font-size:13px; letter-spacing:.07em; text-transform:uppercase; border:2px solid transparent; transition:background .2s,color .2s,border-color .2s,transform .2s; }
.cx-btn:hover { transform:translateY(-2px); }
.cx-btn-gold { background:var(--gold); color:#fff; } .cx-btn-gold:hover { background:#fff; color:var(--purple); }
.cx-btn-line { border-color:rgba(255,255,255,.6); color:#fff; } .cx-btn-line:hover { background:rgba(255,255,255,.12); color:#fff; }
.cx-btn-purple { background:var(--purple); color:#fff; } .cx-btn-purple:hover { background:var(--gold); color:#fff; }
.cx-btn-outline { border-color:var(--gold); color:var(--purple); } .cx-btn-outline:hover { background:var(--gold); color:#fff; }

/* hero */
.cx-hero { background:radial-gradient(circle at 80% 25%,#7b447a 0,transparent 34%),linear-gradient(120deg,#2a1329 0%,#46233f 55%,#6b3466 100%); color:#fff; position:relative; overflow:hidden; padding:130px 0 84px !important; }
.cx-hero::after { content:""; position:absolute; width:560px; height:560px; border:1px solid rgba(197,163,94,.2); border-radius:50%; right:-160px; top:-200px; box-shadow:0 0 0 55px rgba(197,163,94,.06),0 0 0 110px rgba(197,163,94,.04); pointer-events:none; }
.cx-hero-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; position:relative; z-index:1; }
.cx-hero .cx-kicker { color:var(--gold); }
.cx-hero h1 { color:#fff; font-size:clamp(38px,5vw,60px); max-width:640px; }
.cx-hero h1 em { font-style:normal; color:var(--gold); }
.cx-hero p.cx-lead { font-size:17px; line-height:1.75; color:#e4d3e1; max-width:560px; margin:0 0 28px; }
.cx-hero-note { margin-top:20px; font-size:12px; color:#c9aec6; letter-spacing:.04em; }
.cx-visual { position:relative; display:flex; justify-content:center; align-items:center; min-height:380px; }
.cx-dash { width:min(100%,490px); background:#fff; border-radius:6px; padding:18px; color:var(--ink); box-shadow:0 30px 70px rgba(20,5,20,.55); border-top:4px solid var(--gold); transform:perspective(900px) rotateY(-7deg) rotateX(3deg); }
.cx-dash-head { display:flex; justify-content:space-between; align-items:center; font-family:'bold',sans-serif; font-size:11px; letter-spacing:.06em; margin-bottom:14px; color:var(--purple); }
.cx-live { background:var(--goldlt); color:#8a6a28; padding:4px 10px; border-radius:20px; font-size:9.5px; }
.cx-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.cx-stat { background:var(--soft); border-left:3px solid var(--purple); padding:10px 12px; }
.cx-stat span { display:block; font-size:10px; color:var(--muted); }
.cx-stat b { font-family:'bold',sans-serif; font-size:20px; color:var(--purple); }
.cx-route { margin-top:12px; border:1px solid var(--line); padding:14px; }
.cx-route-t { font-family:'bold',sans-serif; font-size:10px; letter-spacing:.08em; color:var(--ink); margin-bottom:12px; }
.cx-steps { display:flex; align-items:center; gap:8px; font-size:10.5px; color:#555; }
.cx-dot { width:10px; height:10px; border-radius:50%; background:var(--gold); flex:none; }
.cx-dash-line { flex:1; height:2px; background:repeating-linear-gradient(90deg,#d9c9a0 0 5px,transparent 5px 9px); }
.cx-row { display:grid; grid-template-columns:1.4fr .8fr .6fr; gap:8px; border-top:1px solid #f0eaee; padding:9px 0; font-size:10px; color:#777; }
.cx-row:first-of-type { margin-top:14px; }
.cx-row strong { color:var(--ink); }
.cx-row em { font-style:normal; color:#8a6a28; font-weight:700; }
.cx-float { position:absolute; z-index:3; background:#fff; color:var(--purple); padding:10px 14px; font-family:'bold',sans-serif; font-size:11.5px; box-shadow:0 12px 32px rgba(20,5,20,.4); border-left:3px solid var(--gold); }
.cx-float i { color:var(--gold); margin-right:7px; }
.cx-fa { left:-26px; top:-16px; } .cx-fb { right:-8px; bottom:-14px; }
.cx-illus { position:absolute; bottom:-6px; left:50%; transform:translateX(-50%); font-size:10px; color:#c9aec6; letter-spacing:.08em; white-space:nowrap; }

/* trust strip */
.cx-trust { background:#fff; border-bottom:1px solid var(--line); }
.cx-trust .cx-wrap { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; padding-top:22px; padding-bottom:22px; font-size:13px; }
.cx-trust strong { font-family:'bold',sans-serif; letter-spacing:.06em; color:var(--purple); font-size:12.5px; }
.cx-trust span { color:var(--muted); } .cx-trust span i { color:var(--gold); margin-right:7px; }

/* cards */
.cx-grid { display:grid; gap:18px; margin-top:38px; }
.cx-g3 { grid-template-columns:repeat(3,1fr); } .cx-g4 { grid-template-columns:repeat(4,1fr); }
.cx-card { background:#fff; border:1px solid var(--line); border-top:3px solid var(--purple); padding:26px 22px 26px; transition:transform .2s,box-shadow .2s,border-color .2s; }
.cx-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(86,44,81,.14); border-top-color:var(--gold); }
.cx-icon { width:46px; height:46px; display:grid; place-items:center; background:var(--goldlt); color:#a98438; font-size:21px; margin-bottom:16px; border-radius:50%; }
.cx-card h3 { font-family:'bold',sans-serif; font-size:15px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); margin:0 0 8px; }
.cx-card p { margin:0; font-size:14px; line-height:1.65; color:var(--muted); }
.cx-soft { background:var(--soft); }

/* portals */
.cx-portal { background:#fff; border:1px solid var(--line); padding:26px 22px; position:relative; overflow:hidden; }
.cx-portal::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--gold); }
.cx-portal .cx-icon { background:var(--purple); color:var(--gold); }
.cx-portal h3 { font-family:'bold',sans-serif; font-size:16px; color:var(--purple); margin:0 0 8px; text-transform:uppercase; letter-spacing:.03em; }
.cx-portal p { margin:0; font-size:14px; }

/* split + journey */
.cx-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.cx-checks { list-style:none; padding:0; margin:24px 0 28px; }
.cx-checks li { padding:7px 0 7px 28px; position:relative; color:#666; font-size:15px; }
.cx-checks li::before { content:"\2713"; position:absolute; left:0; color:var(--gold); font-weight:900; }
.cx-journey { background:#fff; border:1px solid var(--line); border-top:4px solid var(--purple); padding:26px; box-shadow:0 18px 50px rgba(86,44,81,.1); }
.cx-journey-t { font-family:'bold',sans-serif; font-size:12px; letter-spacing:.14em; color:var(--gold); margin-bottom:10px; }
.cx-step { display:flex; gap:16px; padding:14px 0; border-bottom:1px solid #f0eaee; }
.cx-step:last-child { border:0; }
.cx-num { width:34px; height:34px; flex:none; border-radius:50%; background:var(--purple); color:var(--gold); display:grid; place-items:center; font-family:'bold',sans-serif; font-size:13px; }
.cx-step b { display:block; font-family:'bold',sans-serif; color:var(--ink); font-size:14px; letter-spacing:.03em; text-transform:uppercase; }
.cx-step small { font-size:13px; color:var(--muted); line-height:1.5; display:block; }

/* technology band */
.cx-tech { background:linear-gradient(115deg,#2a1329,#4a2444 70%,#5b2d55); color:#fff; }
.cx-tech h2 { color:#fff; } .cx-tech .cx-intro { color:#dcc9d9; }
.cx-arch { border:1px solid rgba(197,163,94,.35); background:rgba(255,255,255,.05); padding:22px 20px; }
.cx-arch b { display:block; font-family:'bold',sans-serif; color:var(--gold); font-size:14px; letter-spacing:.04em; text-transform:uppercase; margin-bottom:8px; }
.cx-arch span { font-size:13.5px; color:#dcc9d9; line-height:1.6; display:block; }

/* cta */
.cx-cta { background:var(--goldlt); text-align:center; }
.cx-cta h2 { max-width:720px; margin:12px auto 14px; }
.cx-cta p { max-width:620px; margin:0 auto 26px; color:#6d6068; }
.cx-note { font-size:13px; color:#8a7c85; margin:22px 0 0 !important; }

@media (max-width:991px){ .cx-hero-grid,.cx-split{grid-template-columns:1fr;gap:36px;} .cx-g4{grid-template-columns:repeat(2,1fr);} .cx-g3{grid-template-columns:repeat(2,1fr);} .cx-dash{transform:none;} .cx-visual{min-height:340px;} }
@media (max-width:600px){ .cx-float{display:none;} .cx-illus{position:static;transform:none;margin-top:14px;} .cx-visual{display:block;min-height:0;text-align:center;} .cx-dash{text-align:left;}  .cx section{padding:60px 0;} .cx-hero{padding:100px 0 60px !important;} .cx-g3,.cx-g4{grid-template-columns:1fr;} .cx-float{font-size:10px;padding:8px 10px;} .cx-fa{left:0;} .cx-fb{right:0;} .cx-stats{gap:6px;} .cx-stat b{font-size:16px;} .cx-row{font-size:9px;} .cx-trust .cx-wrap{justify-content:center;text-align:center;} }

/* interactive shipment explorer */
.cx-ex { max-width:900px; margin:40px auto 0; background:#fff; border:1px solid var(--line); border-top:4px solid var(--purple); box-shadow:0 18px 50px rgba(86,44,81,.1); }
.cx-ex-tabs { display:grid; grid-template-columns:repeat(6,1fr); background:var(--soft); }
.cx-ex-tab { appearance:none; border:0; background:transparent; padding:16px 6px; font-family:'bold',sans-serif; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; transition:color .2s,background .2s; }
.cx-ex-tab span { display:block; font-size:10.5px; color:var(--gold); margin-bottom:2px; }
.cx-ex-tab:hover { color:var(--purple); background:#fff; }
.cx-ex-tab.active { background:#fff; color:var(--purple); border-bottom-color:var(--gold); }
.cx-ex-tab:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; }
.cx-ex-bar { height:3px; background:var(--line); } .cx-ex-bar i { display:block; height:100%; width:0; background:var(--gold); }
.cx-ex-panel { padding:34px 36px 38px; min-height:230px; }
.cx-ex-pane { display:none; } .cx-ex-pane.active { display:block; animation:cxfade .45s ease; }
.cx-ex-who { display:inline-flex; align-items:center; gap:8px; background:var(--goldlt); color:#8a6a28; font-family:'bold',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:20px; }
.cx-ex-pane h3 { font-family:'bold',sans-serif; font-size:24px; color:var(--purple); margin:16px 0 10px; text-transform:none; }
.cx-ex-pane p { max-width:620px; font-size:15.5px; margin:0 0 18px; }
.cx-ex-chips em { display:inline-block; font-style:normal; font-size:12px; color:var(--purple); border:1px solid var(--line); background:var(--soft); padding:5px 12px; margin:0 8px 8px 0; border-radius:20px; }
@keyframes cxfade { from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:none;} }

/* scroll reveal */
.cx-rv { opacity:0; transform:translateY(18px); transition:opacity .6s ease,transform .6s ease,box-shadow .2s,border-color .2s; }
.cx-rv.cx-in { opacity:1; transform:none; }
.cx-card.cx-rv.cx-in:hover { transform:translateY(-4px); }

/* hero polish */
.cx-live { animation:cxpulse 2s ease-in-out infinite; }
@keyframes cxpulse { 50% { opacity:.55; } }
.cx-float { animation:cxbob 5s ease-in-out infinite; } .cx-fb { animation-delay:-2.5s; }
@keyframes cxbob { 50% { transform:translateY(-6px); } }
@media (prefers-reduced-motion:reduce){ .cx-live,.cx-float,.cx-ex-pane.active{animation:none;} .cx-rv{opacity:1;transform:none;transition:none;} }
@media (max-width:991px){ .cx-ex-tabs{grid-template-columns:repeat(3,1fr);} }
@media (max-width:600px){ .cx-ex-panel{padding:26px 20px 28px;} .cx-ex-pane h3{font-size:20px;} }

/* mobile apps strip */
.cx-apps { margin-top:34px; background:linear-gradient(115deg,#2a1329,#4a2444 70%,#5b2d55); color:#fff; padding:28px 30px; display:grid; grid-template-columns:.8fr 1.6fr; gap:28px; align-items:center; border-left:4px solid var(--gold); }
.cx-apps-t { display:flex; gap:16px; align-items:center; }
.cx-apps-t > i { font-size:44px; color:var(--gold); }
.cx-apps-t b { display:block; font-family:'bold',sans-serif; font-size:18px; }
.cx-apps-t span { font-size:13.5px; color:#dcc9d9; }
.cx-apps-g { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cx-app { display:flex; gap:14px; background:rgba(255,255,255,.07); border:1px solid rgba(197,163,94,.35); padding:16px; }
.cx-app .cx-icon { background:var(--gold); color:#fff; flex:none; margin:0; }
.cx-app h3 { font-family:'bold',sans-serif; font-size:14px; letter-spacing:.04em; text-transform:uppercase; color:var(--gold); margin:0 0 4px; }
.cx-app p { margin:0; font-size:13px; line-height:1.55; color:#dcc9d9; }
@media (max-width:991px){ .cx-apps{grid-template-columns:1fr;} }
@media (max-width:600px){ .cx-apps-g{grid-template-columns:1fr;} .cx-apps{padding:22px 18px;} }
