/* Multi-page site: photo slots, page banners, infographics, gallery, team */

/* ---------- photo slots ---------- */
.ph{position:relative;overflow:hidden;background:linear-gradient(135deg,#1b2a44,#0e1a2f);aspect-ratio:var(--ar,16/10);margin:0;border-radius:14px;display:block}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .5s,transform .8s}
.ph.ok img{opacity:1}
.ph.ok:hover img{transform:scale(1.04)}
.ph .phm{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:14px;color:#9fb3d1;border:2px dashed rgba(159,179,209,.35);border-radius:inherit;font-size:13px}
.ph.miss .phm{display:flex}
.ph .phm svg{width:34px;height:34px;opacity:.8}
.ph .phm b{color:#fff;font-size:14px}
.ph .phm code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11.5px;color:var(--amber);word-break:break-all}
.ph .phm small{font-size:11.5px;opacity:.85}
.ph .ptag{position:absolute;left:8px;bottom:8px;z-index:3;background:#d32f2f;color:#fff;font:700 11px/1 'JetBrains Mono',ui-monospace,monospace;padding:5px 8px;border-radius:6px;display:none;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.showslots .ph .ptag{display:block}
body.showslots .ph.miss .ptag{display:none}
.ph .cap{margin:0;position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(0deg,rgba(7,13,26,.85),transparent);color:#fff;font-weight:600;font-size:14.5px;z-index:2;pointer-events:none}
.ph.miss .cap{display:none}
.ph.bg{position:absolute;inset:0;aspect-ratio:auto;border-radius:0;z-index:0}
.ph.bg.miss .phm{inset:auto 18px 18px auto;flex-direction:row;padding:8px 12px;background:rgba(7,13,26,.75);border:1px dashed rgba(159,179,209,.5);border-radius:10px}
.ph.bg.miss .phm svg,.ph.bg.miss .phm small,.ph.bg.miss .phm b{display:none}
.ph .tag{position:absolute;top:14px;left:14px;z-index:3;background:#0f1b2d;color:var(--amber);font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:8px}
.ph .gifbadge{position:absolute;top:12px;right:12px;z-index:3;background:var(--amber);color:var(--ink);font-weight:800;font-size:11px;padding:4px 8px;border-radius:6px;letter-spacing:.06em}
.ph.miss .gifbadge{display:none}

/* home hero photo */
.hero-bg{background:#070d1a !important;overflow:hidden}
.hero-bg:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,13,26,.96) 0,rgba(7,13,26,.86) 42%,rgba(7,13,26,.45) 78%,rgba(7,13,26,.6) 100%),linear-gradient(180deg,rgba(7,13,26,.15),rgba(7,13,26,.85))}
@media (max-width:760px){.hero-bg:after{background:linear-gradient(180deg,rgba(7,13,26,.92),rgba(7,13,26,.8))}}

/* service card photo */
.svc-img.ph{height:220px;aspect-ratio:auto;border-radius:0;background-image:none}

/* ---------- inner-page banner ---------- */
.pagehero{position:relative;background:#070d1a;color:#fff;overflow:hidden;isolation:isolate}
.pagehero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,13,26,.94) 0,rgba(7,13,26,.78) 50%,rgba(7,13,26,.4) 100%),linear-gradient(180deg,rgba(7,13,26,.1),rgba(7,13,26,.7))}
.pagehero .pin{position:relative;z-index:2;padding:76px 0 70px;max-width:760px}
.pagehero .crumb{font:600 13px/1 'JetBrains Mono',ui-monospace,monospace;color:#9fb3d1;margin-bottom:16px;letter-spacing:.04em}
.pagehero .crumb a{color:var(--amber);text-decoration:none}
.pagehero h1{color:#fff;font-size:clamp(34px,5vw,58px);line-height:1.05}
.pagehero h1 b{color:var(--amber)}
.pagehero p{color:#d3deef;font-size:clamp(16px,1.6vw,19px);margin-top:16px;max-width:60ch}
.pagehero .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* ---------- layout helpers ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split.flip .pic{order:2}
.split h2{font-size:clamp(26px,3.2vw,38px)}
.split p{color:var(--muted);font-size:17px;margin-top:14px}
.split .tick{margin-top:16px}
.pic .ph{box-shadow:0 20px 50px rgba(15,27,45,.18)}
.pic.stack{position:relative;padding:0 0 34px 34px}
.pic.stack .ph.b{position:absolute;left:0;bottom:0;width:46%;border:5px solid #fff;border-radius:14px;box-shadow:0 14px 34px rgba(15,27,45,.25)}
.sh.c p{margin-inline:auto}
.grid3.gap{gap:22px}
.mini{display:flex;align-items:flex-start;gap:12px;color:var(--muted);font-size:15.5px}
.mini svg{flex:none;color:var(--green);margin-top:3px}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.rv.shown{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.ph img{transition:none}}

/* ---------- infographic: stats band ---------- */
.statband{background:linear-gradient(135deg,#0c1a31,#10284a);padding:54px 0;color:#fff}
.nstats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.nstat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:24px 22px;position:relative;overflow:hidden}
.nstat:before{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(245,165,36,.28),transparent 70%)}
.nstat .si{width:44px;height:44px;border-radius:12px;background:rgba(245,165,36,.16);color:var(--amber);display:grid;place-items:center;margin-bottom:14px}
.nstat .n{font-family:var(--head);font-weight:800;font-size:clamp(34px,4vw,48px);line-height:1;color:#fff}
.nstat .n small{font-size:.45em;color:var(--amber);margin-left:4px;font-weight:700}
.nstat p{color:#b9c9e2;margin-top:8px;font-size:15px}

/* ---------- infographic: supply chain ---------- */
.chain{display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative;margin-top:10px}
.chain:before{content:"";position:absolute;left:8%;right:8%;top:36px;height:4px;background:repeating-linear-gradient(90deg,var(--amber) 0 14px,transparent 14px 24px);z-index:0}
.cn{position:relative;z-index:1;text-align:center;padding:0 8px}
.cn .bub{width:72px;height:72px;border-radius:50%;margin:0 auto 14px;background:#fff;border:4px solid var(--amber);display:grid;place-items:center;color:var(--ink);box-shadow:0 8px 22px rgba(15,27,45,.14)}
.cn.g .bub{border-color:var(--green)}
.cn.b .bub{border-color:var(--blue)}
.cn h4{font-size:16px;margin-bottom:4px}
.cn p{font-size:13.5px;color:var(--muted)}
.cn .k{display:inline-block;font:700 11px/1 'JetBrains Mono',ui-monospace,monospace;color:#9A6200;margin-bottom:8px;letter-spacing:.08em}

/* ---------- infographic: capacity bars ---------- */
.cap-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}
.bar{margin:20px 0}
.bar .bl{display:flex;justify-content:space-between;font-weight:700;margin-bottom:8px;font-size:15px}
.bar .bl span{color:var(--muted);font-weight:600}
.bar .tr{height:22px;background:var(--paper);border-radius:99px;overflow:hidden}
.bar .fi{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--green),#3DDC97);transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.bar.a .fi{background:linear-gradient(90deg,var(--amber),#ffc864)}
.bar.b .fi{background:linear-gradient(90deg,var(--blue),#6aa0ff)}
.capnote{display:flex;gap:10px;align-items:flex-start;background:var(--amber-l);border-radius:12px;padding:14px 16px;margin-top:8px;font-size:15px}

/* ---------- infographic: formula ---------- */
.eq{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:12px}
.eq .t{min-width:150px;flex:1 1 150px;max-width:230px;border-radius:16px;padding:20px 16px;text-align:center;background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px rgba(15,27,45,.06)}
.eq .t small{display:block;font:700 11px/1 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:10px}
.eq .t b{font-family:var(--head);font-size:clamp(24px,3vw,34px);color:var(--ink)}
.eq .t.r{background:var(--green);border-color:var(--green)}
.eq .t.r small{color:#bfeedb}.eq .t.r b{color:#fff}
.eq .op{display:grid;place-items:center;font-family:var(--head);font-weight:800;font-size:34px;color:var(--amber)}
.paybar{max-width:760px;margin:26px auto 0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.paybar .pt{height:16px;border-radius:99px;background:var(--red-l);overflow:hidden;margin:12px 0 10px}
.paybar .pt i{display:block;height:100%;width:0;background:var(--green);transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.paybar .pl{display:flex;justify-content:space-between;font-size:14.5px;color:var(--muted);flex-wrap:wrap;gap:6px}
.paybar .pl b{color:var(--ink)}

/* ---------- infographic: comparison ---------- */
.cmpw{overflow-x:auto;border-radius:18px;border:1px solid var(--line);background:#fff}
.cmp{width:100%;border-collapse:collapse;min-width:640px}
.cmp th,.cmp td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--line);font-size:15.5px;vertical-align:top}
.cmp thead th{background:var(--ink);color:#fff;font-family:var(--head);font-size:17px;border:0}
.cmp thead th:nth-child(2){background:var(--green)}
.cmp thead th:nth-child(3){background:var(--blue)}
.cmp tbody th{color:var(--muted);font-weight:600;width:22%;background:#fafcfe}
.cmp tr:last-child th,.cmp tr:last-child td{border-bottom:0}

/* ---------- infographic: statuses ---------- */
.sflow{display:flex;flex-wrap:wrap;gap:0;justify-content:center;align-items:flex-start}
.sf{flex:1 1 130px;max-width:170px;text-align:center;padding:0 6px;position:relative}
.sf:not(:last-child):after{content:"";position:absolute;top:22px;left:calc(50% + 26px);right:calc(-50% + 26px);height:3px;background:var(--line)}
.sf i{width:46px;height:46px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;font-style:normal;font-weight:800;color:#fff;background:var(--green);position:relative;z-index:1}
.sf.am i{background:var(--amber);color:var(--ink)}
.sf.rd i{background:var(--red)}
.sf b{display:block;font-size:14.5px}
.sf span{font-size:13px;color:var(--muted);display:block;margin-top:2px}

/* ---------- infographic: coverage hub ---------- */
.hubw{background:linear-gradient(160deg,#0a1527,#10284a);border-radius:20px;padding:20px;position:relative;overflow:hidden}
.hubw svg{width:100%;height:auto;max-height:520px}
.hubw text{font-family:'Figtree',system-ui,sans-serif}

/* ---------- process steps with photos ---------- */
.pstep{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-bottom:60px}
.pstep:last-child{margin-bottom:0}
.pstep.flip .pic{order:2}
.pstep .pnum{font-family:var(--head);font-weight:800;font-size:64px;line-height:1;color:var(--amber);opacity:.9}
.pstep h3{font-size:28px;margin:6px 0 10px}
.pstep p{color:var(--muted);font-size:17px}
.pstep .mono{display:inline-block;margin-top:14px}

/* ---------- team ---------- */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.tm{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;text-align:center;box-shadow:0 8px 24px rgba(15,27,45,.06)}
.tm .ph{border-radius:0;--ar:4/5}
.tm .tb{padding:18px 14px 22px}
.tm h3{font-size:19px;margin:0}
.tm p{color:var(--muted);font-size:14.5px;margin-top:4px}
.tm .role{display:inline-block;margin-top:8px;background:var(--green-l);color:var(--green-d);font-weight:700;font-size:12.5px;padding:4px 10px;border-radius:99px}

/* ---------- values ---------- */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.val{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px}
.val .ico{margin-bottom:14px}

/* ---------- gallery ---------- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px}
.gal .ph{aspect-ratio:auto;height:100%;cursor:zoom-in;border-radius:14px}
.gal .w2{grid-column:span 2}
.gal .h2{grid-row:span 2}
.lb{position:fixed;inset:0;background:rgba(5,10,20,.92);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.lb.open{display:flex}
.lb img{max-width:min(1200px,100%);max-height:86vh;border-radius:12px;box-shadow:0 30px 80px #000}
.lb button{position:absolute;top:18px;right:20px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;font-size:20px;cursor:pointer}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:12px}
.mosaic .ph{aspect-ratio:auto;height:100%}
.mosaic .w2{grid-column:span 2}.mosaic .h2{grid-row:span 2}

/* ---------- contact ---------- */
.ccards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;text-align:center}
.cc .ico{margin:0 auto 12px}
.cc h3{font-size:18px;margin:0 0 6px}
.cc p,.cc a{color:var(--muted);font-size:15px;word-break:break-word}
.cc a{font-weight:700;color:var(--ink);text-decoration:none}

/* ---------- misc ---------- */
.band-photo{position:relative;color:#fff;isolation:isolate;overflow:hidden}
.band-photo:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,13,26,.8),rgba(7,13,26,.88))}
.band-photo .wrap{position:relative;z-index:2}
.ctasec{position:relative;isolation:isolate;overflow:hidden}
.ctasec:after{content:"";position:absolute;inset:0;z-index:1;background:rgba(7,13,26,.82)}
.ctasec .wrap{position:relative;z-index:2}
.nav a.on{color:var(--amber)}

/* ---------- photo checklist page ---------- */
.gtable{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.gtable th,.gtable td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14.5px;vertical-align:middle}
.gtable th{background:var(--ink);color:#fff;font-size:13px;letter-spacing:.04em}
.gtable code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12.5px;background:var(--paper);padding:3px 6px;border-radius:5px}
.gtable .th{width:120px}
.gtable .th .ph{--ar:16/10;border-radius:8px}
.gtable .th .ph .phm{display:none !important}
.pill{display:inline-block;border-radius:99px;padding:3px 10px;font-size:12.5px;font-weight:700}
.pill.have{background:var(--green-l);color:var(--green-d)}
.pill.need{background:var(--red-l);color:var(--red)}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .split,.pstep{grid-template-columns:1fr;gap:26px}
  .split.flip .pic,.pstep.flip .pic{order:0}
  .nstats{grid-template-columns:1fr 1fr}
  .chain{grid-template-columns:repeat(3,1fr);row-gap:30px}
  .chain:before{display:none}
  .team{grid-template-columns:1fr 1fr}
  .vals{grid-template-columns:1fr}
  .gal,.mosaic{grid-template-columns:repeat(2,1fr)}
  .ccards{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .nstats{grid-template-columns:1fr}
  .chain{grid-template-columns:1fr 1fr}
  .team{grid-template-columns:1fr 1fr;gap:12px}
  .gal,.mosaic{grid-auto-rows:150px;gap:10px}
  .ccards{grid-template-columns:1fr}
  .pagehero .pin{padding:54px 0 48px}
  .pic.stack{padding:0}
  .pic.stack .ph.b{display:none}
  .eq .op{font-size:26px}
  .gtable .th{display:none}
}
main{overflow-x:clip}
@media (max-width:560px){.sf:not(:last-child):after{display:none}}

/* floating Track button + back-to-top arrow (faint until hovered) */
.fab{position:fixed;right:16px;bottom:18px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.fab>*{pointer-events:auto}
.fab-track{display:inline-flex;align-items:center;gap:7px;background:#F5A524;color:#0F1B2D;font-weight:800;font-size:15px;padding:12px 18px;border-radius:99px;box-shadow:0 6px 18px rgba(15,27,45,.28);opacity:.72;transition:opacity .2s,transform .2s;text-decoration:none}
.fab-track:hover,.fab-track:focus-visible{opacity:1;transform:translateY(-2px)}
.fab-track.gone{opacity:0;pointer-events:none;transform:translateY(8px)}
.fab-top{width:46px;height:46px;border-radius:50%;border:0;background:#0F1B2D;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(15,27,45,.28);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .2s,transform .2s}
.fab-top.show{opacity:.6;transform:none;pointer-events:auto}
.fab-top.show:hover,.fab-top.show:focus-visible{opacity:1}
@media (max-width:600px){.fab{right:12px;bottom:14px}.fab-track span{font-size:14px}}
@media print{.fab{display:none}}

/* stacked comparison table on phones */
@media (max-width:760px){
  .cmpw{border:0;background:transparent;overflow:visible;border-radius:0}
  .cmp{min-width:0}
  .cmp,.cmp thead,.cmp tbody,.cmp tr,.cmp th,.cmp td{display:block;width:100%}
  .cmp thead{display:none}
  .cmp tr{border:1px solid var(--line,#E1E7EE);border-radius:14px;margin-bottom:12px;overflow:hidden;background:#fff}
  .cmp tbody th{background:var(--paper,#EEF2F6);padding:10px 14px;text-align:left}
  .cmp td{padding:10px 14px;border-top:1px solid var(--line,#E1E7EE)}
  .cmp td:before{display:block;font-size:12.5px;font-weight:800;color:var(--green-d,#076c47);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
  .cmp td:nth-of-type(1):before{content:"Groupage / LCL"}
  .cmp td:nth-of-type(2):before{content:"Full container (FCL)"}
  .cmp tbody th{width:100%}
}
